'

Алгоритмы циклической структуры, программирование на языке Pascal Часть 2

Понравилась презентация – покажи это...





Слайд 0

Алгоритмы циклической структуры, программирование на языке Pascal Часть 2 8 «Б» и 10 «Б» классы


Слайд 1

Цикл (повтор) – это… такая форма организации действий, при которой одна и та же последовательность действий повторяется несколько раз ( или ни разу) до тех пор, пока выполняется некоторое условие.


Слайд 2

Циклы бывают: Циклы со счетчиком (ДЛЯ), в которых тело цикла выполняется определенное количество раз; Циклы с условием (ПОКА и ДО), в которых тело цикла выполняется до тех пор, пока выполняется условие.


Слайд 3

Цикл с неизвестным числом шагов Циклы с условием (ПОКА и ДО), в которых тело цикла выполняется до тех пор, пока выполняется условие.


Слайд 4

Цикл с предусловием пока условие истинно, выполняется тело цикла тело цикла условие да нет


Слайд 5

Цикл с предусловием while <условие> do begin {тело цикла} end; Особенности: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: while (a < b) and (b < c) do begin {тело цикла} end; while a < b do a := a + 1; ПОКА ВЫПОЛНЯТЬ


Слайд 6

7 Цикл с предусловием Особенности: условие пересчитывается каждый раз при входе в цикл если условие на входе в цикл ложно, цикл не выполняется ни разу если условие никогда не станет ложным, программа зацикливается a := 4; b := 6; while a > b do a := a – b; a := 4; b := 6; while a < b do d := a + b;


Слайд 7

Вывести на экран «Привет!» 5 раз i – считает сколько раз напечатали «Привет!» Сначала i=0, затем проверяется условие i<5, пока оно выполняется будем выполнять: печатать «Привет!» и значение i увеличивать на 1. Цикл заканчивается как только i примет значение 5. начало Привет! конец да нет i < 5? i := 0; i := i + 1;


Слайд 8

program qq; var i: integer; begin i:= 0; while i<5 do begin writeln(‘Привет!'); i := i + 1; end; end.


Слайд 9

10 Сколько раз выполняется цикл? a := 4; b := 6; while a < b do a := a + 1; 2 раза a = 6 a := 4; b := 6; while a < b do a := a + b; 1 раз a = 10 a := 4; b := 6; while a > b do a := a + 1; 0 раз a = 4 a := 4; b := 6; while a < b do b := a - b; 1 раз b = -2 a := 4; b := 6; while a < b do a := a - 1; зацикливание


Слайд 10

11 Замена for на while и наоборот for i:=1 to 10 do begin {тело цикла} end; i := 1; while i <= 10 do begin {тело цикла} i := i + 1; end; for i:=a downto b do begin {тело цикла} end; i := a; while i >= b do begin {тело цикла} i := i - 1; end; Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла. Замена цикла for на while возможна всегда.


Слайд 11

Ввести целое число и найти сумму его цифр. Пример: Введите целое число: 1234 Сумма цифр числа 1234 равна 10. Надо определить цифру и прибавить её к предыдущей сумме. Цифра – остаток от деления числа Х на 10. Число X – целая часть от деления числа Х на 10. Действия выполняем до тех пор пока Х не станет <=0


Слайд 12

начало S:=0 Ввод Х X>0 да нет S:=S+X mod 10 X:=X div 10 Вывод S конец


Слайд 13

Программа program qq; var х, S: integer; begin read (x); S:=0; while x > 0 do begin S := S + X mod 10; X := X div 10; end; writeln(S); end.


Слайд 14

15 Последовательности Примеры: 1, 2, 3, 4, 5, … 1, 2, 4, 7, 11, 16, … 1, 2, 4, 8, 16, 32, … an = n a1 = 1, an+1 = an+1 a1 = 1, an+1 = an + n an = 2n-1 a1 = 1, an+1 = 2an b1 = 1, bn+1 = bn+1 c1 = 2, cn+1 = 2cn


Слайд 15

16 Найти сумму всех элементов последовательности, которые по модулю больше 0,001: Элемент последовательности (начиная с №2): b := b+1; c := 2*c; z := -z; Ход решения:


Слайд 16

17 Алгоритм начало S конец нет да |a| > 0.001? S := S + a; S := 0; b := 1; c := 2; z := -1; a := 1; начальные значения a := z*b/c; b := b + 1; c := 2*c; z := -z; первый элемент a := 1; S := 0; новый элемент изменение


Слайд 17

18 Программа program qq; var b, c, z: integer; S, a: real; begin S := 0; z := -1; b := 1; c := 2; a := 1; while abs(a) > 0.001 do begin S := S + a; a := z * b / c; z := - z; b := b + 1; c := c * 2; end; writeln('S =', S:10:3); end. z := - z; b := b + 1; c := c * 2; переход к следующему слагаемому S := 0; z := -1; b := 1; c := 2; a := 1; начальные значения увеличение суммы расчет элемента последовательности


Слайд 18

19 Задания На «4»: Найти сумму элементов последовательности с точностью 0,001: Ответ: S = 1.157 На «5»: Найти сумму элементов последовательности с точностью 0,001: Ответ: S = 1.220


Слайд 19

Цикл с постусловием повторяется выполнение тела цикла до того, как условие станет истинным тело цикла условие да нет


Слайд 20

21 ЗАДАЧА. Ввести целое положительное число (<2000000) и определить число цифр в нем. Проблема: Как не дать ввести отрицательное число или ноль? Решение: Если вводится неверное число, вернуться назад к вводу данных (цикл!). Особенность: Один раз тело цикла надо сделать в любом случае => проверку условия цикла надо делать в конце цикла (цикл с постусловием). Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.


Слайд 21

22 Алгоритм начало конец да нет n > 0? тело цикла условие ВЫХОДА блок «типовой процесс» ввод n основной алгоритм


Слайд 22

23 Программа program qq; var n: integer; begin repeat writeln('Введите положительное число'); read(n); until n > 0; ... { основной алгоритм } end. repeat writeln('Введите положительное число'); read(n); until n > 0; until n > 0; условие ВЫХОДА Особенности: тело цикла всегда выполняется хотя бы один раз после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла


Слайд 23

24 Сколько раз выполняется цикл? a := 4; b := 6; repeat a := a + 1; until a > b; 3 раза a = 7 a := 4; b := 6; repeat a := a + b; until a > b; 1 раз a = 10 a := 4; b := 6; repeat a := a + b; until a < b; зацикливание a := 4; b := 6; repeat b := a - b; until a < b; 2 раза b = 6 a := 4; b := 6; repeat a := a + 2; until a < b; зацикливание


Слайд 24

25 Задания (с защитой от неверного ввода) На«4»: Ввести натуральное число и определить, верно ли, что сумма его цифр равна 10. Пример: Введите число >= 0: Введите число >= 0: -234 1233 Нужно положительное число. Нет Введите число >= 0: 1234 Да На«5»: Ввести натуральное число и определить, какие цифры встречаются несколько раз. Пример: Введите число >= 0: Введите число >= 0: 2323 1234 Повторяются: 2, 3 Нет повторов.


×

HTML:





Ссылка: