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

Содержание

Слайд 2

Цикл (повтор) – это…

такая форма организации действий, при которой одна и та

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

Слайд 3

Циклы бывают:
Циклы со счетчиком (ДЛЯ), в которых тело цикла выполняется определенное количество

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

Слайд 4

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

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

Слайд 5

Цикл с предусловием

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

тело цикла

условие

да

нет

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

Слайд 6

Цикл с предусловием

while <условие> do begin
{тело цикла}
end;

Особенности:
можно использовать сложные

Цикл с предусловием while do begin {тело цикла} end; Особенности: можно использовать
условия:
если в теле цикла только один оператор, слова begin и end можно не писать:

while (a < b) and (b < c) do begin
{тело цикла}
end;

while a < b do
a := a + 1;

ПОКА

ВЫПОЛНЯТЬ

Слайд 7

Цикл с предусловием

Особенности:
условие пересчитывается каждый раз при входе в цикл
если условие на

Цикл с предусловием Особенности: условие пересчитывается каждый раз при входе в цикл
входе в цикл ложно, цикл не выполняется ни разу
если условие никогда не станет ложным, программа зацикливается

a := 4; b := 6;
while a > b do
a := a – b;

a := 4; b := 6;
while a < b do
d := a + b;

Слайд 8

Вывести на экран «Привет!» 5 раз

i – считает сколько раз напечатали «Привет!»
Сначала

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

начало

Привет!

конец

да

нет

i < 5?

i := 0;

i := i + 1;

Слайд 9

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

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

Слайд 10

Сколько раз выполняется цикл?

a := 4; b := 6;
while a < b

Сколько раз выполняется цикл? a := 4; b := 6; while a
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;

зацикливание

Слайд 11

Замена for на while и наоборот

for i:=1 to 10 do begin
{тело

Замена 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 возможна всегда.

Слайд 12

Ввести целое число и найти сумму его цифр.

Пример: Введите целое число: 1234
Сумма

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

Слайд 13

начало

начало

S:=0

Ввод Х

X>0

да нет

S:=S+X mod 10
X:=X div 10

Вывод S

конец

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

Слайд 14

Программа

program qq;
var х, S: integer;
begin
read (x);
S:=0;
while x > 0 do

Программа program qq; var х, S: integer; begin read (x); S:=0; while

begin
S := S + X mod 10;
X := X div 10;
end;
writeln(S);
end.

Слайд 15

Последовательности

Примеры:
1, 2, 3, 4, 5, …
1, 2, 4, 7, 11, 16, …
1,

Последовательности Примеры: 1, 2, 3, 4, 5, … 1, 2, 4, 7,
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

Слайд 16

Найти сумму всех элементов последовательности,

которые по модулю больше 0,001:

Элемент последовательности (начиная

Найти сумму всех элементов последовательности, которые по модулю больше 0,001: Элемент последовательности
с №2):

b := b+1;

c := 2*c;

z := -z;

Ход решения:

Слайд 17

Алгоритм

начало

S

конец

нет

да

|a| > 0.001?

S := S + a;

S := 0; b := 1;

Алгоритм начало S конец нет да |a| > 0.001? S := S
c := 2; z := -1; a := 1;

начальные значения

a := z*b/c;
b := b + 1; c := 2*c; z := -z;

первый элемент

a := 1;

S := 0;

новый элемент

изменение

Слайд 18

Программа

program qq;
var b, c, z: integer;
S, a: real;
begin
S := 0;

Программа program qq; var b, c, z: integer; S, a: real; begin
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;

начальные значения

увеличение суммы

расчет элемента последовательности

Слайд 19

Задания

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

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

Слайд 20

Цикл с постусловием

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

тело

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

условие

да

нет

Слайд 21

ЗАДАЧА. Ввести целое положительное число (<2000000) и определить число цифр в нем.

ЗАДАЧА. Ввести целое положительное число ( Проблема: Как не дать ввести отрицательное

Проблема: Как не дать ввести отрицательное число или ноль?
Решение: Если вводится неверное число, вернуться назад к вводу данных (цикл!).
Особенность: Один раз тело цикла надо сделать в любом случае => проверку условия цикла надо делать в конце цикла (цикл с постусловием).

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

Слайд 22

Алгоритм

начало

конец

да

нет

n > 0?

тело цикла

условие ВЫХОДА

блок «типовой процесс»

ввод n

основной алгоритм

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

Слайд 23

Программа

program qq;
var n: integer;
begin
repeat
writeln('Введите положительное число');
read(n);
until n >

Программа program qq; var n: integer; begin repeat writeln('Введите положительное число'); read(n);
0;
... { основной алгоритм }
end.

repeat
writeln('Введите положительное число');
read(n);
until n > 0;

until n > 0;

условие ВЫХОДА

Особенности:
тело цикла всегда выполняется хотя бы один раз
после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла

Слайд 24

Сколько раз выполняется цикл?

a := 4; b := 6;
repeat a := a

Сколько раз выполняется цикл? a := 4; b := 6; repeat 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;

зацикливание

Имя файла: Алгоритмы-циклическойструктуры,-программирование-на-языке-PascalЧасть-2.pptx
Количество просмотров: 209
Количество скачиваний: 0