2. 2
Цикл з невідомим числом кроків
Приклад : Розпиляти деревину. Скільки разів потрібно зробити рух
пилкою?
Задача: Ввести ціле число (<2000000) и опреділить число цифр в
ньому.
Ідея розвязання: Відрізаємо пслідовно останню цифру і збільшуємо
лічилник.
Проблема: Невідомо скільки кроків потрібно зробити
Розвязок: Треба зупинитись, коли n = 0, тобто «поки n <> 0».
n count
123 0
12 1
1 2
0 3
4. 4
Програма
program qq;
var n, count: integer;
begin
writeln(‘Ввеіть ціле число');
read(n);
count := 0;
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. 5
Цикл з умовою
while <умова> do begin
{тіло цикла}
end;
Особливості:
• Можна використовувати складні умови:
• Якщо в тілі цикла лише один оператор, слова begin і
end можна не писать:
while (a < b) and (b < c) do begin
{тіло цикла}
end;
while a < b do
a := a + 1;
6. 6
Цикл з умовою
Особливості:
• Умова перераховуєть кожен раз при вході в цикл
• Якщо умова на вході в цикл хибна, цикл не виконується ні
разу
• Якщо умова ніколи не стане хибною – цикл зациклиться
a := 4; b := 6;
while a > b do
a := a – b;
a := 4; b := 6;
while a < b do
d := a + b;
7. 7
Скільки разів виконується цикл?
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;
зациклювання
8. 8
Завдання
«4»: Ввести ціле число і знайти суму його цифр.
Приклад:
Введіть ціле число:
1234
Сумма цифр числа 1234 равна 10.
«5»: Ввести ціле число і визначити, чи в його записі є дві
одинакові цифри.
Приклад:
Введіть ціле число: Введіть ціле число:
1234 1224
Ні. Да.