Слайд 2
Урок 4
Наконец-то мы вплотную приступим к программированию.
Для усвоения правил написания основных операторов мы будем решать
небольшие задачки, которые быстрей было бы сделать в тетрадке, чем писать программу. Но для сложной программы у нас не хватает знаний.
Мало программ обходится без ввода данных, и совсем нет таких, которые не выводят полученные результаты. Написать такую программу можно, но кому она понадобится?
Слайд 3
4.1.Ввод
Для сообщения данных компьютеру служит оператор ввода.
Он помещает вводимое значение переменной в отведенную для него
ячейку. Оператор ввода:
READ (список переменных ) ;
Где список переменных – последовательность имен переменных, разделенных запятыми.
Например, READ (X,Y,Z);
READ (BETA);
Оператор READ останавливает работу программы и ждет, пока пользователь наберет на клавиатуре число и нажмет . Введенное число помещается в оперативную память, в отведенную ячейку, имеющую имя указанное в операторе. Если список ввода содержит несколько имен, то для каждого надо ввести свое значение. Вводимые числа разделяют пробелами или нажатием клавиши .
Слайд 4
Заканчивается ввод всегда клавишей . После работы этого
оператора курсор располагается за последним введенным символом, но не
переводится на новую строку. Для перевода курсора на новую строку экрана дисплея после ввода данных, используется оператор
READLN (список переменных );
Оператор READLN отличается от READ еще и тем, что, введя необходимое количество данных, пропускает все остальные, набранные до нажатия клавиши .
Слайд 5
4.2. Вывод
Для вывода результатов работы программы служит
оператор
WRITE(список вывода);
Список вывода может содержать имена переменных, числовые
и текстовые константы, выражения. Элементы в списке разделяются запятыми. Если указана переменная, то на экран выводится ее значение, константа выводится без изменения, значения выражений вначале вычисляются, а затем высвечиваются на экране.
Вслед за выражением после двоеточия можно указать ширину поля экрана, в котором разместится выводимое значение. Например, оператор WRITE(10:3, 55:6) высветит на экране .10…..55 (точка означает пробел, пустую позицию экрана). Вывод происходит в том месте экрана, где находится курсор.
Слайд 6
При выводе вещественных значений можно указать, сколько десятичных
цифр следует сохранить в дробной части числа. Количество цифр
указывается вслед за шириной поля после двоеточия. Например, если Х=3.14159, а Y=2.71468, то оператор WRITE(X:6:2,Y:8:3) высветит на экране ..3.14….2.715.
Чтобы прокомментировать выводимые значения, в список вывода можно помещать строки любых символов, заключенные в апострофы ( одинарные кавычки). Например,
WRITE(‘Ответ:’, Х:4,’км/сек.’).
Слайд 7
Эти строки появятся на экране без кавычек. Так
при Х=3.5 этот оператор выведет:
Ответ: 3.5 км/сек.
Перевод курсора на
новую строку осуществляется оператором пустого вывода WRITELN;
Если надо перевести курсор после вывода, то применяется оператор
WRITELN(список вывода);
После вывода результатов работы программы на экран система так быстро возвращается в редактор текстов программы, что пользователь не успевает увидеть эти результаты. Чтобы задержать изображение, в конце программы следует ставить оператор пустого ввода READLN;
Слайд 8
Задача 1
Пусть требуется найти сумму, произведение и разность
двух данных чисел. Для каждого из чисел надо придумать
имя переменной и указать ее тип. Затем ввести эти числа в отведенные ячейки и, используя возможности оператора вывода напечатать результаты.
При решении задач имена присваиваются не только исходным данным, но и результатам, а также получаемым промежуточным значениям. Поскольку в рассматриваемом примере надо получить три результата, введем для них переменные X,Y,Z. В программе этим переменным будут присвоены значения суммы, произведения и разности двух вводимых чисел.
Слайд 9
Блок-схема prim_1
начало
Вывод
Введите 2 числа
ввод a, b
X:=a+b
Y:=a*b
Z:=a-b
Вывод
X, Y, Z
конец
Слайд 10
Program prim_1;
Var a,b,x,y,z:real;
Begin
Write(‘введите два числа’);
Readln(a,b);
X:=a+b;
Y:=a*b;
Z:=a-b;
Writeln(‘a+b=’,x);
Writeln(‘a*b=’,y);
Writeln(‘a-b=’,z);
End.
Слайд 12
Вызвать программу
Вызвать программу
Слайд 13
Задача 2
Составим программу вычисляющую 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:0:2);
writeln('а*b =',p:0:2);
End.
Слайд 16
В данном примере ввод и вывод данных для
каждой переменной осуществляется отдельно. А можно было записать и
так:
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.
Задача 2
Слайд 17
Блок-схема prim_1
начало
Вывод
Введите 2 числа
ввод a, b
s:=a/b;
p:=a*b;
Вывод
S,p
конец
Слайд 20
В этой задаче использовался вещественный тип числа –
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
Формат вывода
Слайд 21
а команда writeln(pi:9:3) выведет строку:
3.142
пропустив перед выводимым числом четыре пробела и выровняв 3.142 (всего 5 знаков) по правому краю девяти знакомест.
Составим программу, выводящую на экран число π.
program zadacha2_2;
Begin
writeln(pi:9:3);
End.
Задача 3
Слайд 24
Задача 4. Задана сторона куба. Вычислить объем куба
и площадь боковой поверхности. Блок – схема.
начало
Вывод
Введите сторону
куба
ввод a
v:=a*a*a
s:=6*a*a
Вывод
V,S
конец
Слайд 25
Изменяя числа в формате вывода(:9:3, :9:2, :17:3, :17:7,
:3:7 и т.д.) просмотрите и проанализируйте полученные результаты.
Задача 4.
Задана сторона куба. Вычислить объем куба и площадь боковой поверхности.
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.
Слайд 28
Задания для самостоятельной работы.
1)Напишите программу, которая запрашивает два
числа, находит остаток от деления первого на второе и
выводит результат.
2)Составьте программу нахождения периметра квадрата, если задана его площадь.
3)Даны два числа. Найти их среднее арифметическое.
4)Найти площадь кольца по заданным внешнему и внутреннему радиусам.
5)Даны катеты прямоугольного треугольника. Найти его периметр.
6)*Поменять местами значения переменных X и Y, не используя дополнительной переменной.
Слайд 29
Правильные ответы задания предыдущего урока.
Запись выражений на
Паскале:
(A+B)/C+SQR(C)/(A-B)
(X+Y)/3*7/(X-Y)
(A-B)/C/((A+B)/D)
(3+(1/2))+C/SQR(A+B)
A*B/C-D/(A*B)
SQR(X)/Y+SQR(Y)/X
Слайд 30
Найдите значения переменных, если это возможно. Учтите, что
число 7.0 является вещественным, т.к. оно имеет дробную часть,
хотя и равную нулю. Операции MOD и DIV можно выполнять только над целыми числами (Урок 2):
a) A:=21 DIV 5=4 b) A:= 2 MOD 3=2
B:= 20 MOD 5=0 B:= 36.0 MOD 6 (нельзя делить веществ)
C:= 14 DIV 6.0 (нельзя делить веществ) C:= 81 DIV 0 (деление на 0)
D:= 14 MOD 0 (деление на 0) D:= 38 DIV 6=6
E:= 5 MOD 13=5 E:= 3 DIV 2=1
Слайд 31
Найдите значения переменных, если это возможно:
a) A:=SQR(100)=10000 b)
A:=sqrt(9)=3.0
B:=sqrt(100)=10.0 B:=SQR(9)=81
C:=SQR(-10)=100
C:=SQRT(-9) (выр. < 0)
D:=SQRT(-10)(выр <0) D:=SQR(-9)=81
E:=SQR(0.9)=0.81 E:=SQRT(0.0)=0.0
F:=SQRT(0)=0.0 F:=SQR(0.1)=0.01
Слайд 32
Найдите значения переменных, если это возможно:
a) A:=ROUND(6.9) =7 b) A:=ROUND(15.39)=15
B:=ROUND(6.48)=6 B:=ROUND(15.8)=16
C:=TRUNC(9.5) =9 C:=TRUNC(-39)=-39
D:=FRAC(9.5) =0.5 D:=FRAC(39)=0.0
E:=INT(9.5)
=9.0 E:=INT(39)=0.0
F:=TRUNC(-17) = -17 F:=TRUNC(5.6)=5
G:=FRAC(17) =0.0 G:=FRAC(-0.3)=-0.3
H:=INT(-17)
=-17.0 H:=INT(1.25)=1.0