Операторы вывода данных
Операторы ввода данных с клавиатуры
Оператор выбора
Условный оператор
Оператор цикла
Оператор перехода к метке
Для сведения
Оператор присваивания:=
x:=1; a:=5. 02; b:= 32*a+Sin(x); S:= 'Иван Иваныч';
Составной оператор Begin "операторы" end;
Операторы вывода данных
Операторы вывода данных на экран
Write("список переменных"); или Writeln("список переменных");
Writeln(a); Writeln(b); Writeln(c); Write('Моя первая программа!');
Writeln(32 *a+Sin(x));
b:=32 *a+Sin(x); Writeln(b);
Writeln(a:5:2);
Writeln(i:8);
а:=5. 02;
Writeln('а=', a:6:2);
а= _ _ 5. 02
n:= '116'; s:= 'Школа N'; Writeln(s:7, n:6);
Школа N _ _ _ 116
Writeln('а=', a: -8:2);
а=5. 02
Writeln('а=', a);
a=5. 0200000000E+00 {тип Real, расчет без сопроцессора}
a=5. 02000000000000E+0000 {тип Double, расчет с сопроцессором}
Пример программы, выполняющей различные операции с переменными разного типа.
Program N_1; {работа с переменными разного типа}
var x, y, z: real; x0, y0: byte; {описание типов переменных}
x1, y1, z1: integer; xb, yb, zb: boolean;
c1, c2, c3: char; s1, s2, s3: string;
Begin
x:= 5. 8;y:= 3. 4; x1:= 43;y1:= 28; {присвоение значений}
c1:= 'Z'; c2:= 'S'; x0:= 65;
xb:= True; yb:= False;
s1:= 'Иванов _ '; s2:= 'Петров _ ';
Writeln('Математические операции:');Z:= x+y; { и т. д. }
Write('x:=', x:3:1, ' _ _ y:=', y:3:1);
Writeln(' _ _ Z:= x+y;', ' _ _ z=', z:5:2);
Writeln; z1:= x1 div y1; { и т. д. }
Write('x1:=', x1:3, ' _ _ y1:=', y1:3);
Writeln(' _ _ Z1:= x1 div y1;', ' _ _ z1=', z1:2);
Writeln; { Пустая строка }
readln; { Задержка экрана до нажатия Enter }
Writeln('Логические операции:');Zb:= xb and yb; { и т. д. }
Write('xb:=', xb, ' _ _ yb:=', yb);
Writeln(' _ _ Zb:= xb and yb;', ' _ _ zb=', zb);
Writeln; { Пустая строка }
readln; { Задержка экрана до нажатия Enter }
Writeln('Операции сравнения:'); Zb:= c1 > c2; { и т. д. }
{ символы сравниваются по номеру ASCII кода }
Write('c1:=', c1, ' _ _ c2:=', c2);
Writeln(' _ _ Zb:= c1 > c2;', ' _ _ zb=', zb); Writeln;
{строки сравниваются по номеру ASCII кода первых символов}
{если первые символы совпадают, то сравниваются вторые и т. д. }
Zb:= S1>S2; { и т. д. }
Write('s1:=', s1, ' _ _ s2:=', s2);
Writeln(' _ _ Zb:= s1 > s2;', ' _ _ zb=', zb);
Writeln; { Пустая строка }
readln; { Задержка экрана до нажатия Enter }
Writeln('Математические функции:');Z:= sin(x *Pi/180); { и т. д. }
Write('x:=', x:4:2);
Writeln(' _ _ Z:= sin(x *Pi/180);', ' _ _ z=', z:10:7);
Writeln; { Пустая строка }
readln; { Задержка экрана до нажатия Enter }
Writeln('Математические процедуры:');
Write('x1:=', x1); Inc(x1); { и т. д. }
Writeln(' _ _ Inc(x1);', ' _ _ x1=', x1);
Writeln; {Пустая строка}
readln; {Задержка экрана до нажатия Enter }
Writeln('Функции преобразования типов:'); c3:= Chr(x0); { и т. д. }
Write('x0:=', x0);
Writeln(' _ _ c3:=Chr(x0);', ' _ _ c3=', c3);
Readln { Задержка экрана до нажатия Enter }
end.
Операторы ввода данных с клавиатуры
Read("список переменных");
Readln("список переменных");
Write('введите значение а='); Readln(a);
введите значение а=.
Readln(a); Readln(b); Readln(c); или Readln(a, b, c);
Readln(с1, с2, с3, c4); {ожидает ввода значений символьных переменных с1, с2, с3, c4, например: "У", "Р", "А", "!" и нажатия Enter }
Writeln(с1, с2, с3, c4); выведет на экран надпись: УРА!
Пример программы возведения положительного числа “x” в степень”n”,
т. е. y=xn. Расчет производится по формуле: y=en*ln(x).
Program N_2; {возведение положительного числа в степень}
Const S='введите значение';
Var n, x, y: real;
BEGIN
Writeln('Программу разработал Иванов');
Writeln('Возведение положительного числа x степень n');
Writeln(S, ' аргумента х>0'); Readln(x);
Write(S, ' показателя степени n='); Readln(n);
y:=exp(n*ln(x));
Writeln('результат y=', y:10:6); writeln('Нажмите Enter');
readln; {задержка экрана до нажатия Enter}
END.
Оператор выбора
Case "параметр" Of
"список помеченных операторов"
Else "оператор" End;
Пример операторов для определения порядка целого числа N от 0 до 999:
Case N of
0..9: writeln('однозначное');
10..99: writeln('двузначное');
100..999: writeln('трехзначное')
else writeln('Число "N" не входит в указанный диапазон') end;
Условный оператор
IF "условие" Then "оператор1" Else "оператор2";
Например, вычисление квадратного корня из числа "a" проводится при условии a>=0,
IF a >= 0 Then b:= Sqrt(a) Else begin WriteLn ('a<0'); Readln; Halt end;
Оператор Halt прекращает выполнение программы.
Пример программы: Автобус движется по заданному маршруту с объявлением названий остановок. Зная остановку, на которой надо выходить, вы принимаете определенное решение: Выхожу, либо - Еду дальше, которое выводится на экран.
PROGRAM octanovka;
CONST A1= 'Бульвар Славы'; A2= 'Горсовет'; { A1, A2, A3, A4 - названия }
A3= 'Спортивная'; A4= 'УГАТУ'; { остановок }
Y= 'Выхожу'; N= 'Еду дальше';
var A, A0: String; { A0 - текущая остановка }
BEGIN
writeln('Ввести нужную остановку из списка:');
writeln(A1:15, A2:15, A3:15, A4:15);
Writeln; readln(A); Writeln; { A - нужная остановка }
IF (A<>A1) and (A<>A2) and (A<>A3) and (A<>A4)
then begin Writeln('Нет такой остановки'); readln; Halt end;
A0:= A1; {объявление остановки }
IF A = A0 then begin writeln(Y, A:15); readln; Halt end
else writeln(A0:-15, N:12);
A0:= A2; {объявление остановки }
IF A = A0 then begin writeln(Y, A:15); readln; Halt end
else writeln(A0:-15, N:12);
A0:= A3; {объявление остановки }
IF A = A0 then begin writeln(Y, A:15); readln; Halt end
else writeln(A0:-15, N:12);
A0:= A4; {объявление остановки }
writeln(Y, A:15); readln;
END.
Для разложения целого числа на цифры удобно применять операции: MOD и DIV. Например, если дано трехзначное число "N" ("N" соответствует "X1X2X3"), то цифры: X1X2X3, составляющие это число определяются блоком операторов:
X3:= N mod 10; N:= N div 10;
X2:= N mod 10; N:= N div 10; X1:= N;
Если требуется определить, делится ли вещественное число "A" нацело на число "B", то можно применять функции Frac(x); и Int(x); например:
x:= A/B;
If Frac(x) = 0 then writeln('Число "A" делится нацело на число "B"');
If Int(x) = x then writeln('Число "A" делится нацело на число "B"');
Оператор цикла
С параметром
For i:= N1 To N2 Do "оператор";
For i:= N1 DownTo N2 Do "оператор";
Пример расчета конечной суммы последовательности:
12 + 32 + 52 +... + (2*N-1)2; SN = N*(4*N2-1)/3;
PROGRAM SUM_K; { расчет конечной суммы }
var a, S, Sn, i, N: word;
Begin
write('Введите число членов суммы N='); readln(N);
S:= 0;
For i:= 1 to N do begin { цикл суммирования }
a:= Sqr(2 * i-1); S:= S+a end;
Sn:= N * (4 * N * N-1) div 3;
Writeln('Конечная сумма S=', S:-10:2);
Writeln('Расчет конечной суммы по формуле Sn=', Sn:-10:2);
Writeln('Нажми Enter'); readln
End.
С условием
While "условие" DO "оператор";
Repeat "операторы" Until "условие";
"условие" - выражение логического типа (Boolean).
Расчет суммы членов бесконечного ряда с заданной погрешностью.
N:= 0; a:= 1; SN:= 1; e:= 2. 7182828; S:= (e2 + 1)/e;
repeat N:= N+1; k:= 1/((2 * N-1) * 2 * N); a:= a * k;
SN:= SN+a;
Writeln('Частичная сумма Sn=', Sn:-11:6, '_ _ n=', n:2);
until abs(S-Sn) < eps; { eps - допустимая погрешность расчетов}
Writeln('_ _ _ Сумма ряда S =', S:-11:6);
Операторы цикла с условием могут применяться для анализа правильности вводимых данных, например, необходимо ввести |X|<1 ("защита от дурака"):
Repeat Write('введите значение |х|<1;_ _x='); readln(x)
until abs(x)<1;
Операторы ограничения и прерывания цикла