Тема: Циклические алгоритмы.
Алгоритм, в котором есть цикл, называется циклическим. Цикл – это такая форма действий, при котором одна и та же последовательность действий повторяется несколько раз (или ни разу), в зависимости от истинности некоторого условия. Последовательность команд, которые надо повторить, называется телом цикла. Циклы бывают 3-х видов: цикл «Пока» (с предусловием), цикл «До» (с постусловием) цикл «Для» (с параметром).
Цикл «Пока» Называется «с предусловием» так как тело цикла повторяется, пока выполняется некоторое условие, то есть сначала проверяется условие, а потом выполняется тело цикла. В этом случае тело цикла может не выполниться ни разу, если условие сразу будет ложным.
Запишем цикл «Пока» тремя способами: На естественном языке: Пока Q повторять: Р1. Pn Конец цикла Обозначения: Q – условие по которому ведется цикл, P1…Pn – действия, которые нужно повторить (тело цикла), «конец цикла» - указатель, показывающий какое действие последнее в теле цикла. Тело цикла
На языке блок-схем: На языке Pascal : While Q do begin P1. Pn end Q? P1 Pn Да Нет
Задание: По алгоритму, записанному на естественном языке, записать блок-схему, программу на Паскале и трассировочную таблицу. На естественном языке А=1 В=20 Пока А < В повторять: А=А+1 B=B-2 Конец цикла Вывести А,В Блок-схема: начало конец А=1; В=20 А
Задание: По алгоритму, записанному на естественном языке, записать блок-схему, программу на Паскале и трассировочную таблицу. На Pascal Program a1; Var a,b: integer; Begin A:=1; b:=20; while a
Задание: По алгоритму, записанному на естественном языке, записать блок-схему, программу на Паскале и трассировочную таблицу. Трассировочная таблица: На экране: a=8 b=6 Блок-схема: начало конец А=1; В=20 А
Задача 1: Найти сумму нечетных чисел из отрезка 1,3,..9 1,3,..9– обозн. I S – сумма этих чисел I=I+2 S=S+I Повторять пока I
Задача 1: Найти сумму нечетных чисел из отрезка 1,3,..9 На естественном языке: I=1 S=0 пока I
Задача 1: Найти сумму нечетных чисел из отрезка 1,3,..9 На pascal: Program a2; Var a,b: integer; Begin I:=1; S:=0; while I