Операторы языка Паскаль2011.pptx
- Количество слайдов: 36
Операторы языка Паскаль 1. Оператор присваивания 2. Оператор перехода 3. Пустой оператор. Составной оператор 4. Условный оператор 5. Оператор выбора 6. Оператор цикла с известным числом повторений 7. Операторы цикла итерационного типа 09. 02. 2018 Операторы языка 1
Оператор присваивания <переменная> : = <выражение>; - Одноместный минус - Операция NOT - Операции типа умножения - Операции типа сложения - Операции сравнения (отношения) 09. 02. 2018 Операторы языка 2
Операции <операции типа умножения> : : = * | / | div | mod | and <операции типа сложения > : : = + | – | or | xor <операции сравнения> : : = = | <> | < | > | <= | >= | in 09. 02. 2018 Операторы языка 3
Примеры выражений (5. 6>5)and(5<8)=true {true} Not(1>5) {true} ((4+6)<(10 -3))=true {false} 'abc'<'abcd' {true} 'abc'<' abcd' {false} 5>3 and 3<4 {ошибка} 09. 02. 2018 Операторы языка 4
Оператор перехода. Метки GOTO <метка>; < метка> : [<метка>: …] <оператор>; Label m 1, 20, metka; … m 1: x: =5; … 20: metka: w: =10; ; 09. 02. 2018 Операторы языка 5
Составной оператор var a : array [1. . 100] of integer; max, i, n, k : integer; begin write('n='); readln(n); for i : = 1 to n do begin write('a[', i, ']='); readln(a[i]); end; 09. 02. 2018 Операторы языка 6
Составной оператор max : = a[1]; for i : = 1 to n do if a[i]>max then max : = a[i]; k : = 0; for i : = 1 to n do if a[i] <> max then begin k : = k + 1; a[k] : = a[i]; end; for i : = 1 to k do write(a[i], ' '); end. 09. 02. 2018 Операторы языка 7
Условный оператор IF <логическое выражение> THEN <оператор 1> [ ELSE <оператор 2>] ; <следующий оператор>; 09. 02. 2018 Операторы языка 8
Условный оператор … IF A > 0 THEN P: = P + 1 ELSE … IF A > 0 THEN BEGIN S: = S+ A; IF A < 0 THEN O: = O + 1 K: = K + 1 END ; … ELSE N: = N + 1 ; … 09. 02. 2018 Операторы языка 9
Оператор выбора CASE <селекторное выражение> OF <метка> , <метка> : <оператор 1> ; , <метка>. . <метка> , <метка> : <оператор 2> ; , <метка>. . <метка> . . . <метка> , <метка> : <оператор n>; , <метка>. . <метка> [ ELSE <оператор>] END; 09. 02. 2018 Операторы языка 10
Оператор выбора cos x , k=3 sin x , Z= при k=2 ex , при k=1 ln x , при k=0 0 в остальных случаях … CASE K OF 0: Z: =LN(X); 1: Z: =EXP(X); 2: Z: =SIN(X); 3: Z: =COS(X) ELSE Z: =0 END; … 09. 02. 2018 Операторы языка 11
Оператор выбора … VAR V : CHAR; OTVET : STRING; … CASE V OF 'D', 'd', 'Д', 'д': OTVET: ='YES'; 'N', 'n', 'Н', 'н': OTVET: ='NO' ELSE OTVET: = '' END; … 09. 02. 2018 Операторы языка 12
Оператор выбора … VAR V : CHAR; OTVET : STRING; … CASE V OF 'A'. . 'Z', 'a'. . 'z': OTVET: ='буква'; '0'. . '9': OTVET: ='цифра' ELSE OTVET: ='специальный символ' END; … 09. 02. 2018 Операторы языка 13
Операторы цикла - типа арифметической прогрессии - WHILE - REPEAT 09. 02. 2018 Операторы языка 14
Оператор цикла FOR <параметр цикла> : = <выраж. 1> TO <выраж. 2> DOWNTO < оператор > ; 09. 02. 2018 Операторы языка 15
Оператор цикла FOR F: =1; FOR I: =1 TO N DO FOR I: =N DOWNTO 1 DO F: =F*I; … … FOR SIM: = 'A' TO 'Z' DO WRITELN(SIM); 09. 02. 2018 Операторы языка … 16
Оператор цикла FOR {Сумма произведений по строкам} const n = 4; m = 5; var a : array [1. . n, 1. . m] of real; i, j : integer; p, y : real; begin for i : = 1 to n do for j : = 1 to m do read(a[i, j]); 09. 02. 2018 Операторы языка 17
Продолжение y : = 0; for i : = 1 to n do begin p : = 1; for j : = 1 to m do p : = p * a[i, j]; y : = y + p; end; writeln('y=', y); end. 09. 02. 2018 Операторы языка 18
Оператор цикла WHILE <логическое выражение > DO <оператор>; … F: =1; I: =1; WHILE I<=N DO BEGIN F: =F*I; I: =I+1; END; … 09. 02. 2018 Операторы языка 19
Пример задачи 09. 02. 2018 Операторы языка 20
Продолжение program sinx; var x, y, e, u, z : real; k : integer; begin readln(x, e); k : = 0; y : = 0; u : = x; z : = sqr(x); 09. 02. 2018 Операторы языка 21
Продолжение while abs(u) > e do begin y : = y + u; k : = k + 2; u : = -u*z / (k*(k+1)); end; writeln('sin(x)=', sin(x), ' end. 09. 02. 2018 Операторы языка y=', y); 22
Пример задачи Yi+1 =(Yi + X/ Y i ) /2 с точностью program sqrtx; var x : real; eps : real; y 0 : real; y 1 : real; a : real; begin readln(a, eps, if x > 0 then begin 09. 02. 2018 Yi+1 – Yi <= {аргумент} {точность вычисления} {предыдущее приближение} {очередное приближение} {начальное приближение} x); Операторы языка 23
Продолжение y 0 : = a; y 1 : = (y 0 + x/y 0) / 2; while abs(y 1 -y 0) > eps do begin y 0 : = y 1; y 1 : = (y 0 + x/y 0) / 2; end; writeln('y 1=', y 1, ' при x=', x); end else writeln('число ', x, 'меньше нуля '); end. 09. 02. 2018 Операторы языка 24
Оператор цикла REPEAT < оператор 1 > [; < оператор 2 >] [; … < оператор n >] UNTIL <логическое выражение>; 09. 02. 2018 Операторы языка 25
Оператор цикла REPEAT. . . F: =1; I: =1; Repeat F: =F*I; I: =I+1; Until I>N; . . . 09. 02. 2018 Операторы языка 26
Пример задачи program rep; var a, k : integer; c : char; begin k : = 0; repeat writeln('Введите очередное число'); readln(a); 09. 02. 2018 Операторы языка 27
Продолжение if a mod 7 = 0 then k : = k + 1; write('Выйти из цикла? (д, y) '); readln(c) ; until (c='д') or (c='y'); writeln('Количество = ', k); end. 09. 02. 2018 Операторы языка 28
Пример задачи program obmen; var a: array [1. . 30, 1. . 30] of integer; i, j, m, n: integer; k 1, l 1, k 2, l 2: integer; t: integer; begin readln(m, n); for i: = 1 to m do for j: = 1 to n do readln(a[i, j]); k 1: = 2; l 1: = 1; k 2: = 2; l 2: = 1; 09. 02. 2018 Операторы языка 29
Продолжение i: = 2; while i<=m do begin for j: = 1 to n do if a[i, j] > a[k 1, l 1] then begin k 1: = i; l 1: = j; end else if a[i, j] < a[k 2, l 2] then begin k 2: = i; l 2: = j; end; 09. 02. 2018 Операторы языка 30
Продолжение i: = i + 2; end; t: = a[k 1, l 1]; a[k 1, l 1]: = a[k 2, l 2]; a[k 2, l 2]: = t; for i: = 1 to m do begin for j: = 1 to n do write(a[i, j]: 6); writeln; end. 09. 02. 2018 Операторы языка 31
Break и Continue program kon; var a: array [1. . 30] of integer; fl: boolean; i, n: integer; begin readln(n); for i: = 1 to n do readln(a[i]); 09. 02. 2018 Операторы языка 32
Продолжение fl: = false; for i: = 1 to n do begin if a[i] mod 10 <> 3 then continue; writeln('номер 1 числа на 3 - ', i); fl: = true; break; end; if not fl then writeln('нет чисел на 3'); end. 09. 02. 2018 Операторы языка 33
Примеры использования циклов var a, b, c: array [1. . 100] of byte; i, j, k, n, m : byte; begin write('n='); readln(n); write('m='); readln(m); for i: = 1 to n do begin write('a[', i, ']='); readln(a[i]); end; for j: = 1 to m do begin write('b[', j, ']='); readln(b[j]); end; 09. 02. 2018 Операторы языка 34
Примеры использования циклов k: = 0; i: = 1; j: = 1; while (i<=n) and (j<=m) do begin k: = k + 1; if a[i] < b[j] then begin c[k]: = a[i]; i: = i + 1; end else begin c[k]: = b[j]; j: = j + 1; end; 09. 02. 2018 Операторы языка 35
Примеры использования циклов for i: = i to n do begin k: = k + 1; c[k]: = a[i]; end; for j: = j to m do begin k: = k + 1; c[k]: = b[j]; end; for i: = 1 to k do write(c[i], ' '); end. 09. 02. 2018 Операторы языка 36