Скачать презентацию Алгоритмы циклической структуры В языке ПАСКАЛЬ имеется Скачать презентацию Алгоритмы циклической структуры В языке ПАСКАЛЬ имеется

4 Алгоритмы циклической структуры.ppt

  • Количество слайдов: 22

Алгоритмы циклической структуры Алгоритмы циклической структуры

В языке ПАСКАЛЬ имеется три вида операторов цикла: цикл с предусловием (while), ¡ цикл В языке ПАСКАЛЬ имеется три вида операторов цикла: цикл с предусловием (while), ¡ цикл с постусловием (repeat) ¡ цикл с параметром (for). ¡

Оператор цикла с параметром FOR имеет два варианта записи: for <имя_пер> : = <нач_знач> Оператор цикла с параметром FOR имеет два варианта записи: for <имя_пер> : = <нач_знач> to <кон_знач> do <тело цикла> for <имя_пер> : = <нач_знач> downto <кон_знач> do <тело цикла>

Пример 1. Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы Пример 1. Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту для значений от 15 С до 30 С с шагом в 1 С. Перевод осуществляется по формуле: F=C*1. 8+32.

Решение: Program р1; Var i: integer; f: real; Begin Writeln(‘Температура’); For i: =15 to Решение: Program р1; Var i: integer; f: real; Begin Writeln(‘Температура’); For i: =15 to 30 do Begin F: =i*1. 8+32; Writeln(‘по Цельсию’, i, ‘по Фаренгейту’, f: 5: 2); End.

Пример 2. Вывести на экран натуральные числа от 1 до 9 в обратном порядке. Пример 2. Вывести на экран натуральные числа от 1 до 9 в обратном порядке.

Решение: Program р2; Var i: integer; Begin For i: =9 downto 1 do Writeln(i); Решение: Program р2; Var i: integer; Begin For i: =9 downto 1 do Writeln(i); End.

Цикл с предусловием While. . do While <условие_продолж_цикла> do <тело цикла>; Цикл с предусловием While. . do While <условие_продолж_цикла> do <тело цикла>;

Пример 3. Найти сумму 10 произвольных чисел. Пример 3. Найти сумму 10 произвольных чисел.

Решение: Program р3; Const N=10; Var k, x, s: integer; Begin k: =0; s: Решение: Program р3; Const N=10; Var k, x, s: integer; Begin k: =0; s: =0; {k- количество введенных чисел} while k < n do begin k: =k+1; write(‘Введите число’); readln(x); s: =s+x; end; writeln(‘Сумма чисел равна’, s); end.

Цикл с постусловием Repeat…until Repeat <оператор>. . . <оператор> until <условие окончания цикла> Цикл с постусловием Repeat…until Repeat <оператор>. . . <оператор> until <условие окончания цикла>

Пример 4. Составить программу, которая вводит и суммирует целые числа. Если введено значение 999, Пример 4. Составить программу, которая вводит и суммирует целые числа. Если введено значение 999, то на экран выводится результат суммирования.

Решение: Program р4; Var x, s: integer; Begin S: =0; Repeat Write(‘Ввести число’); Readln(x); Решение: Program р4; Var x, s: integer; Begin S: =0; Repeat Write(‘Ввести число’); Readln(x); If x<>999 then s: =s+x; Until x=999; Writeln(‘Сумма введенных чисел’, s); End.

Стандартные процедуры, изменяющие последовательность выполнения операторов: Break – реализует немедленный выход из цикла, передавая Стандартные процедуры, изменяющие последовательность выполнения операторов: Break – реализует немедленный выход из цикла, передавая управление оператору, стоящему сразу за концом оператора цикла; ¡ Continue – обеспечивает досрочное завершение очередного прохода цикла, передавая управление на конец цикла; ¡ Exit - выполняет выход из программы или подпрограммы, внутри которой записан; ¡ Halt – немедленное завершение выполнения программы. ¡

Пример 5. Написать программу, вычисляющую произведение для n>2. n – вводится с клавиатуры (цикл Пример 5. Написать программу, вычисляющую произведение для n>2. n – вводится с клавиатуры (цикл for).

Решение: Program р5; var i, n, p: longint; begin write(‘Введите число n, большее 2 Решение: Program р5; var i, n, p: longint; begin write(‘Введите число n, большее 2 -х: ’); readln(n); p: =1; for i: =2 to n do p: =p*(1 -1/i*i); write(‘Искомое произведение р=‘, р); end.

Пример 6 Найти сумму всех двузначных чисел, кратных вводимому с клавиатуры числу (цикл repeat). Пример 6 Найти сумму всех двузначных чисел, кратных вводимому с клавиатуры числу (цикл repeat).

Решение: Program р6; var i, n, s: longint; begin write(‘Введите число n: ’); readln(n); Решение: Program р6; var i, n, s: longint; begin write(‘Введите число n: ’); readln(n); s: =0; i: =10; repeat if i mod n =0 then s: =s+i; i: =i+1; until i>99; write(‘Искомая сумма s=‘, s); end.

Пример 7. Вывести таблицу значений функции на отрезке [a, b] с шагом h. Значения Пример 7. Вывести таблицу значений функции на отрезке [a, b] с шагом h. Значения a, b, h должны вводиться с клавиатуры (цикл while).

Решение: Program р7; var a, b, h, f, x: real; begin write(‘Введите число a, Решение: Program р7; var a, b, h, f, x: real; begin write(‘Введите число a, b, h: ’); readln(a, b, h); writeln(‘------------- ’); writeln(‘| x | f |’); writeln(‘------------- ’); x: =a; while x<=b do begin f: =5*x*x-1; writeln(‘| ‘, x: 5: 2, ’ | ‘, f: 5: 2, ’ x: =x+h; end; writeln(‘------------- ’); end. |’);

Вложенные циклы. Пример 8: Вычислить значение переменной Y=2 K+N при всех значениях переменных N=1, Вложенные циклы. Пример 8: Вычислить значение переменной Y=2 K+N при всех значениях переменных N=1, 2, 3 и K=2, 4, 6, 8.

Решение PROGRAM PR; VAR N, K, Y: INTEGER; BEGIN FOR N: =1 TO 3 Решение PROGRAM PR; VAR N, K, Y: INTEGER; BEGIN FOR N: =1 TO 3 DO BEGIN K: =2; WHILE K<=8 DO BEGIN Y: =2*K+N; WRITELN (N: 4, Y: 4); K: =K+2 END END. Здесь внешний цикл организован с использованием оператора FOR, а внутренний - с использованием оператора WHILE. В процессе выполнения вложенных циклов переменные получат следующие значения: N ………… 1 1 2 2 3 3 K ………… 2 4 6 8 Y ………… 5 9 13 17 6 10 14 18 7 11 15 19