Программирование на языке Паскаль. Циклы с условием

Слайд 2

Цикл с неизвестным числом шагов

Пример: Отпилить полено от бревна. Сколько раз надо

Цикл с неизвестным числом шагов Пример: Отпилить полено от бревна. Сколько раз
сделать движения пилой?
Задача: Ввести целое число (<2000000) и определить число цифр в нем.
Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.
Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0, т.е. надо делать «пока n <> 0».

Слайд 3

Алгоритм

начало

count

конец

нет

да

n <> 0?

count := 0;

count := count + 1;
n := n

Алгоритм начало count конец нет да n 0? count := 0; count
div 10;

обнулить счетчик цифр

ввод n

выполнять «пока n <> 0»

Слайд 4

Программа

program qq;
var n, count: integer;
begin
writeln('Введите целое число');
read(n);
count := 0;

Программа program qq; var n, count: integer; begin writeln('Введите целое число'); read(n);
while n <> 0 do begin
count := count + 1;
n := n div 10;
end;
writeln('В числе ', n, ' нашли ',
count, ' цифр');
end.

while n <> 0 do begin
count := count + 1;
n := n div 10;
end;

, n1: integer;

n1 := n;

n1,

выполнять «пока n <> 0»

Слайд 5

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

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;

Слайд 6

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

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

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

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

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

Слайд 7

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

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;

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

Слайд 8

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

Слайд 9

Задания

«1»: Ввести целое число и найти сумму его цифр.
Пример:
Введите целое число:
1234
Сумма

Задания «1»: Ввести целое число и найти сумму его цифр. Пример: Введите
цифр числа 1234 равна 10.