Часто трапляється так, що одні і ті самі вказівки доводиться виконувати кілька разів. Наприклад, щоранку ідучи до школи, ви повторюєте одну і ту саму дію, переставляючи ноги, таким чином ваш крок - це дія, яка повторюється до того часу, поки не буде досягнуто мети. У програмуванні теж трапляються такі випадки, коли потрібно декілька разів виконувати одні і ті самі команди. Їх виконання забезпечує оператор повторення, який дає змогу реалізувати базову алгоритмічну структуру повторення, яку ще називають циклом.
while <умова> do
begin
<серія команд>
end;
Тобто, поки твердження істинне, то вказівка буде повторюватись, це відбуватиметься доти, доки твердження, що лежить в умові циклу не стане хибним.
begin
<серія команд>
end;
Тобто, поки твердження істинне, то вказівка буде повторюватись, це відбуватиметься доти, доки твердження, що лежить в умові циклу не стане хибним.
Розглянемо приклад задачі з використанням оператора циклу while (поки).
Задача 1. Мама купила Катрусі деяку кількість цукерок. Першого дня Катруся з'їла 1 цукерку, наступного - 2, потім - 3 тощо. Якого дня Катруся з'їсть останню цукерку, якщо спочатку їх у неї було N? Число N ввести з клавіатури.
Аналіз умови: N - загальна кількість цукерок. К - номер дня.
Кількість цукерок, які з'їдає дівчинка, збігається з порядковим номером дня, який дорівнює К.
Реалізація на Pascal:
var N,K: byte;
begin
read(N); {вводиться значення N - кількість цукерок, які придбано}
while N>0 do {поки кількість цукерок N більше нуля, виконувати цикл}
begin
K:=K+1; {до порядкового номера дня додати 1, початкове значення К = 0}
N:=N-K; {від загальної кількості цукерок відняти кількість цукерок, яка дорівнює порядковому номеру дня}
end;
write (K) {вивести останній порядковий номер дня}
end.
Задача 2. Підрахувати кількість цифр заданого натурального числа N.
var m, n, k: integer;
begin
write ('Введіть натуральне число: ');
read(n);
k:=0;
while n<>0 do
begin
k:= k+1;
n:= n div 10;
end;
writeln ('Кількість цифр у числі - ', k);
end.
Задача 3. Підрахувати суму цифр натурального числа N.
var n, S, a: integer;
begin
write ('Введіть натуральне число: ');
Read(n);
S:=0;
while n<>0 do
begin
a:= n mod 10;
S:= S+a;
n:= n div 10;
end;
writeln ('Сума цифр становить - ', S);
end.
Задача 1. Мама купила Катрусі деяку кількість цукерок. Першого дня Катруся з'їла 1 цукерку, наступного - 2, потім - 3 тощо. Якого дня Катруся з'їсть останню цукерку, якщо спочатку їх у неї було N? Число N ввести з клавіатури.
Аналіз умови: N - загальна кількість цукерок. К - номер дня.
Кількість цукерок, які з'їдає дівчинка, збігається з порядковим номером дня, який дорівнює К.
Реалізація на Pascal:
var N,K: byte;
begin
read(N); {вводиться значення N - кількість цукерок, які придбано}
while N>0 do {поки кількість цукерок N більше нуля, виконувати цикл}
begin
K:=K+1; {до порядкового номера дня додати 1, початкове значення К = 0}
N:=N-K; {від загальної кількості цукерок відняти кількість цукерок, яка дорівнює порядковому номеру дня}
end;
write (K) {вивести останній порядковий номер дня}
end.
Задача 2. Підрахувати кількість цифр заданого натурального числа N.
var m, n, k: integer;
begin
write ('Введіть натуральне число: ');
read(n);
k:=0;
while n<>0 do
begin
k:= k+1;
n:= n div 10;
end;
writeln ('Кількість цифр у числі - ', k);
end.
Задача 3. Підрахувати суму цифр натурального числа N.
var n, S, a: integer;
begin
write ('Введіть натуральне число: ');
Read(n);
S:=0;
while n<>0 do
begin
a:= n mod 10;
S:= S+a;
n:= n div 10;
end;
writeln ('Сума цифр становить - ', S);
end.
Немає коментарів:
Дописати коментар