Similar presentations:
Циклы в языке Pascal
1. Циклы в языке Pascal.
2.
Цикл – это конструкция,предназначенная для организации
многократного исполнения
последовательности действий.
Тело цикла – многократно повторяющиеся
действия
3. Разновидности циклов:
ЦиклыЦикл с
предусловием
(While)
Цикл с
постусловием
(Repeat)
Цикл с
параметром
(For … to …)
4. Цикл с предусловием
While <условие выхода из цикла> do<оператор>;
Нет
?
Да
оператор
5. Цикл с предусловием
Как работает цикл:Сначала проверяется условие и если оно верно, то
осуществляется переход к телу цикла. После
выполнения операторов тела цикла возвращаемся
для проверки условия. Так будет повторяться до тех
пор пока условие не станет ложным, после чего цикл
прекратит выполняться.
Если тело цикла содержит 2 и больше операторов, то
оно заключается в операторные скобки begin … end.
6. Пример №1:
Вычислить сумму ряда 1 + 1,5 + 2 + 2,5 + .. + 30var
sum:real;
n:real;
begin
sum:=0;
n:=1;
while n <= 30 do
begin
sum:=sum+n;
n:=n+0.5;
end;
writeln ('Сумма равна: ',sum);
end.
7. Цикл с постусловием
Repeat<операторы>
Until <условие выхода из цикла>;
оператор
+
?
Да
Нет
8. Цикл с постусловием
Как работает цикл:Сначала выполняется тело цикла, после чего
осуществляется переход к проверке условия. Если
условие ложно, то возвращаемся к выполнению тела
цикла. Так будет повторяться до тех пор пока
условие не станет верным, после чего цикл
прекратит выполняться.
Т.к. тело цикла находится между служебными
словами repeat … until, то операторные скобки не
требуются.
9. Пример №2:
Печатать «ноль» указанное количество разvar
i,n:integer;
Begin
write ('количество раз');
readln(n);
i:=1;
repeat
write(0);
i:=i+1
until i>n
end.
10. Цикл с параметром
Прямой пересчетFor i:=N1 to N2 do
<операторы;>
Обратный пересчет
For i:=N2 down to N1 do
<операторы>;
N2>=N1
N2>=N1
11. Цикл с параметром
Как работает цикл:Сначала переменной i присваивается первоначальное
значение N1, затем значение i сравнивается с
конечным значением N2 и если i <= N2, то
осуществляется переход к телу цикла. После
выполнения тела цикла значение i увеличивается
ровно на 1 и опять повторяется сравнение с N2. Так
продолжается до тех пор пока значение i не станет
больше значения N2.
Цикл обратного пересчета работает аналогично с
разницей в том, что значение i каждый раз
уменьшается на 1 и i >=N1. Если значение i станет
меньше значения N1, то цикл прекратит работу.
Если тело цикла содержит 2 и больше операторов, то
оно заключается в операторные скобки begin … end.
12. Пример №3:
Напишите программу, которая выводит значенияфункции y=kx+b на интервале [2,8] с шагом 1.
program for2;
var x,a,n:integer;
k,b:real;
begin
write('Введите значение k = ');
readln(k);
write('Введите значение b = ');
readln(b);
for x:=2 to 8 do
writeln('x=',x,' y=',k*x+b);
end.
13. Пример №4
Пользователь вводит целое число, если онобольше 8 выведите на экран все числа от этого числа до 5 (в
обратном порядке), иначе сообщите об ошибке.
var i, a: integer;
begin
writeln(‘Введите целое число');
readln(a);
if (a > 8) then
for i:=a downto 5 do // цикл вложен в ветку then условного
оператора.
write(i, ' ')
else
writeln(‘Ошибка! Ваше число не > 8.');
readln();
end.
14. Задача №1
Гражданин 1 марта открыл счёт в банке, вложив 1000рублей. Через каждый месяц размер вклада
увеличивается на 2% от имеющейся суммы.
Определить:
Сумму вклада через один, два, …, двенадцать
месяцев.
15. Описательная часть программы:
Program vklad;Var i: integer;
a: real;
16. Математическая модель решения:
Первоначальный вклад а0=10001 месяц: а1=а0+а0*0,02
2 месяц: а2=а1+а1*0,02
---------------------------10 месяц: а10=а9+а9*0,02
Общий случай: an=an-1+an-1*0,02
17. Алгоритм решения:
началоВвести значение
первоначального вклада
счётчик
Выполнять тело
цикла 12 раз
Тело цикла
+
а=а+а*0,02
Вывести результаты
на экран
конец
-
18. Программа:
Цикл с параметром:Program vklad;
Var i: integer;
a: real;
Begin
Writeln (‘введите значение первоначального вклада’);
Readln (а);
For i:=1 to 12 do
begin
a:= a+a*0,02;
writeln (a);
end;
end.
19. Программа:
Цикл с постусловием:Program vklad;
Var i: integer;
a: real;
Begin
Writeln (‘введите значение
первоначального вклада’);
Readln (а);
i:=1;
repeat
a:= a+a*0,02;
writeln (a);
i:=i+1;
until i>12;
end.
Цикл с предусловием:
Program vklad;
Var i: integer;
a: real;
Begin
Writeln (‘введите значение
первоначального вклада’);
Readln (а);
i:=1;
while i<=12 do
begin a:= a+a*0,02;
writeln (a);
i:=i+1; end;
end.
20. Задача №2
Дано целое число, состоящее из разныхцифр. Определить, какая из цифр заданного числа
больше, т. е. найти наибольшую цифру числа.
21. Цикл с предусловием
Var n: longint;max: byte;
begin
readln(n);
if n < 0 then n := abs(n);
max := 0;
if n > 0 then
while n > 0 do begin
if n mod 10 > max then
max := n mod 10;
n := n div 10;
end;
writeln(max);
end.
22. Цикл с постусловием
Var n: longint;max: byte;
begin
readln(n);
if n < 0 then n := abs(n);
max := 0;
if n > 0 then
repeat
if n mod 10 > max then
max := n mod 10;
n := n div 10;
until n<0;
end;
writeln(max);
end.
23. Цикл с параметром ???
24. Задача №3
Вычислить факториал числа заданного склавиатуры.
Факториал числа представляет собой произведение всех
натуральных чисел от 1 до этого числа включительно.
Факториал числа обозначается как само число после которого
следует восклицательный знак. Например, 7!. Таким образом:
7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040
25. Цикл с предусловием
Program factorial_1;Var i, fact,n: integer;
Begin
i:=1;
fact:=1;
write(‘Введите факториал’);
readln(n);
while i<=n do
begin
fact:=fact*i;
i:=i+1;
end;
writeln(‘Факториал’,n,’=’,fact);
End.
26. Цикл с постусловием
Program factorial_2;Var i, fact: integer;
Begin
i:=1;
fact:=1;
write(‘Введите факториал’);
readln(n);
repeat
begin
fact:=fact*1;
i:=i+1;
end;
until i>n;
writeln(‘Факториал’,n,’=’,fact);
End.
27. Цикл с параметром
Program factorial_3;Var i, fact: integer;
Begin
i:=1;
fact:=1;
write(‘Введите факториал’);
readln(n);
for i:=1 to n do
begin
fact:=fact*1;
i:=i+1;
end;
writeln(‘Факториал’,n,’=’,fact);
End.