Операторы ограничения и прерывания цикла

Операторы вывода данных

Операторы ввода данных с клавиатуры

Оператор выбора

Условный оператор

Оператор цикла

Оператор перехода к метке


Для сведения

Оператор присваивания :=

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;

Операторы ограничения и прерывания цикла