Операторы ввода и вывода информации.



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Операторы ввода и вывода информации.



Для вывода информации на экран компьютера используется оператор: write( )- writeln( )

В скобках необходимо записывать данные, которые будут выведены на экран при выполнении программы.

 

Для ввода информации с клавиатуры в компьютер используется оператор: read( )- readln( )

В скобках необходимо записывать данные, которые мы хотим вводить при работе программы.

Рассмотрим несколько примеров:

Составим программу вычисляющую s = а / b и p=a*b.

program zadacha2_1a;

var a,b,s,p:real;

Begin

writeln('введите число a ');

readln(a);

writeln('введите число b ');

readln(b);

s:=a/b;

p:=a*b;

writeln('а/b =',s);

writeln('а*b =',p);

End.

В данном примере ввод и вывод данных для каждой переменной осуществляется отдельно. А можно было записать и так:

program zadacha2_1b;

var a,b,s:real;

Begin

writeln('введите числа a и b');

readln(a,b);

s:=a/b;

p:=a*b;

writeln('а/b = ',s,' а*b = ',p);

End.

В этой задаче использовался вещественный тип числа – real, поэтому ответ был получен в полулогарифмической форме записи числа. Вспоминаем:

2.5670000000Е+02 следует понимать 2.567 * 102

3.4906710000Е-03 следует понимать 3.490671 * 10-3.

Если мы хотим при выводе на экран реальных чисел указать определённое число знаков после запятой, то можно воспользоваться форматом вывода writeln(a:n1:n2). Где

n1 - количество знакомест выделенных под всё число;

n2 - количество знакомест выделенных под дробную часть числа.

Например команда writeln(pi) выведет строку:

3.1415926536E+00

а команда writeln(pi:9:3) выведет строку:

3.142

пропустив перед выводимым числом четыре пробела и выровняв 3.142 (всего 5 знаков) по правому краю девяти знакомест.

 

Составим программу, выводящую на экран число π.

program zadacha2_2;

Begin

writeln(pi:9:3);

End.

Изменяя числа в формате вывода(:9:3, :9:2, :17:3, :17:7, :3:7 и т.д.) просмотрите и проанализируйте полученные результаты.

 

Задана сторона куба. Вычислить объем куба и площадь боковой поверхности.

program zadacha2_3;

var a,v,s:real; {описание переменных}

Begin

writeln('Введите сторону куба'); {ввод данных}

read(a);

v:=a*a*a; (*вычисление объёма*)

s:=6*a*a; {вычисление площади поверхности}

{вывод результатов}

writeln('Объём = ',v:8:3,' Площадь поверхности = ',s:8:3);

End.

В записанной выше программе использованы поясняющие комментарии. Комментарии - это любой текст, обрамлённый фигурными скобками { и } или символами (* и *).

Вопросы для повторения:

22. Какая команда служит для ввода данных? Для вывода данных?

23. Чем отличается вывод информации на экран компьютера оператором write( ) от вывода оператором writeln( ) ?

24. Как вывести на экран текст?

25. Можно ли вывести на экран несколько переменных или текстов одним оператором writeln()?

26. Что означает число 7 в команде writeln(pi:7:5)? А что означает число 5?

27. Сколько знаков после запятой будет выведено при записи команды: a) writeln(pi:7:5); b) writeln(pi:5:7) ?

28. Какие символы используются для размещения комментариев в программе?

 

Задания для самостоятельной работы:

1. Имеются два числа.

a) Вычислите сумму и разность этих чисел, используя два оператора readln.

b) Перепишите программу так, чтобы использовался один оператор readln.

c) Добавьте комментарии к программе.

2. Имеются три числа. Вычислите их произведение.

3. По заданным сторонам прямоугольника a и b вычислите его периметр и площадь.

4. Человеку сегодня исполнилось R лет. Сколько ему дней? Часов? Минут? Секунд? (Високосные годы не учитывать)

5. После начала некоторого эксперимента прошло t часов m минут и k секунд. Сколько всего секунд длится эксперимент?

6. Задано расстояние между городами в вёрстах. Переведите это расстояние в километры (точность: три знака после запятой) используя данные:

1 верста=500 саженям; 1 сажень=3 аршина; 1 аршин=0.7112 метра

Составление линейных алгоритмов с использованием арифметических операций.

Операции div и mod.

Арифметические операции.

В языке Pascal используется 6 арифметических операций.

арифметическая операция (а=14,b=4) результат

- сложение (+) S:=a+b S=18

- вычитание (-) S:=a-b S=10

- умножение (*) S:=a*b S=56

- деление (/) S:=a / b S=3.5

- целочисленное деление S:=a div b S=3

- остаток от целочисленного деления S:=a mod b S=2

Нет возведения в степень. Если степень целая, её заменяют умножением: а3 ↔ S:=a*a*a

Для возведения числа в произвольную степень используется следующее соотношение: xy=e ln(x ) =eylnx тогда xy=exр(y*ln(x))

 

Рассмотрим несколько примеров:

Заданы два числа. Найдите их сумму.

рrogram zadacha2_4;

var a,b,s:byte;

Begin

writeln('введите целое число a ');

read(a);

write('введите целое число b ');

read(b);

s:=a+b;

writeln('s =',s);

End.

Проанализируйте полученный результат при a+b>255. Поменяйте тип данных byte на integer. Что получается теперь? Просмотрите, до какой предельной суммы a+b вычисления происходят верно? Установите тип данных longint. Просмотрите суммы.

 

Заданы два целых числа k и d. Используя только арифметические операции, найдите целую и дробную части от деления k на d.

program zadacha2_5;

var a,drobn:real;

k,d,cel:integer;

Begin

writeln('введите два числа'); readln(k,d);

cel:=k div d; {целочисленное деление}

a:=k/d; {обычное деление}

drobn:=a-cel;

writeln('целая часть - ',cel);

writeln('дробная часть - ',drobn);

Еnd.

Можно ли было в данной программе все переменные определить как integer или как real? Попробуйте и проанализируйте.

 

Дано трёхзначное число. Чему равны его цифры?

program zadacha2_6;

var a,с1,с2,с3:integer;

Begin

writeln('введите трёхзначное число '); readln(a);

c1:=a div 100;

c2:=(a mod 100) div 10; {или c2:=(a div 10) mod 10;}

c3:=a mod 10;

writeln('первая цифра -',c1);

writeln('вторая цифра -',c2);

writeln('третья цифра -',c3);

Еnd.

Дано действительное число a. Используя только пять операций умножения получить a15.

program zadacha2_7;

var a,b,c,d,s:longint;

Begin

writeln('введите число a'); readln(a);

b:=a*a; {вторая степень}

с:=b*b; {4 степень}

d:=c*a; {5 степень}

s:=d*d*d; {15 степень}

writeln('результат = ',s);

Еnd.

Вопросы для повторения:

29. Чем отличается операция / от операции div?

30. Есть ли в Pascal операция возведения в степень?

31. Выполняется ли равенство:

(264 mod 100) div 10 = (368 div 10) mod 10.

32. Придумайте формулу для нахождения предпоследней цифры числа?

33. Можно ли производить операции mod и div над переменными, которые описаны как real?

34. Как должна быть описана переменная fl, если она вычисляется по формуле fl:=a / b? А как можно описать переменные a и b?

35. Как должна быть описана переменная k, если она вычисляется по формуле k:=a div b? А как нужно описать переменные a и b?

 

Задания для самостоятельной работы:

7. Задано двухзначное число. Чему равна последняя цифра числа?

8. Задано двухзначное число. Чему равна первая цифра числа?

9. В двухзначное число вписать ноль в середину и получить трехзначное число.

10. Найдите сумму цифр заданного трёхзначного числа.

11. Найдите цифры заданного четырёхзначного числа.

12. Задано пятизначное число. Найдите цифры и сумму цифр пятизначного числа.

13. С начала суток прошло k минут. Определите сколько сейчас часов и минут.

14. Идёт k-ая секунда суток. Определить который сейчас час (в часах, минутах и секундах).

15. Робинзон Крузо провёл на острове f дней. Сколько полных недель он пробыл на острове?

16. Поезд перевозит s тонн груза. Сколько автомобилей грузоподъемностью b тонн (b<<s) он способен заменить?

17. Дано действительное число a. Не пользуясь никакими другими операциями кроме умножения, получить:

a) a13 за пять операций;

b) a21 за шесть операций;

c) a3 и a10 за четыре операции;

d) a4 и a12 и a28 за шесть операций.

 

Составление линейных алгоритмов с использованием основных функций.

 



Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.170.64.36 (0.012 с.)