Циклы в языке Pascal

Содержание

Слайд 2

Цикл – это конструкция, предназначенная для организации многократного исполнения последовательности действий.

Цикл – это конструкция, предназначенная для организации многократного исполнения последовательности действий.

Тело

цикла – многократно повторяющиеся действия
Слайд 3

Разновидности циклов:

Разновидности циклов:

Слайд 4

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

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

While <условие выхода из цикла> do
<оператор>;

Слайд 5

Цикл с предусловием Как работает цикл: Сначала проверяется условие и если

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

Как работает цикл:
Сначала проверяется условие и если оно верно,

то осуществляется переход к телу цикла. После выполнения операторов тела цикла возвращаемся для проверки условия. Так будет повторяться до тех пор пока условие не станет ложным, после чего цикл прекратит выполняться.
Если тело цикла содержит 2 и больше операторов, то оно заключается в операторные скобки begin … end.
Слайд 6

Пример №1: Вычислить сумму ряда 1 + 1,5 + 2 +

Пример №1:

Вычислить сумму ряда 1 + 1,5 + 2 + 2,5

+ .. + 30

var
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 ;

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

Repeat
<операторы>
Until <условие выхода из цикла>;

Слайд 8

Цикл с постусловием Как работает цикл: Сначала выполняется тело цикла, после

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

Как работает цикл:
Сначала выполняется тело цикла, после чего осуществляется

переход к проверке условия. Если условие ложно, то возвращаемся к выполнению тела цикла. Так будет повторяться до тех пор пока условие не станет верным, после чего цикл прекратит выполняться.
Т.к. тело цикла находится между служебными словами repeat … until, то операторные скобки не требуются.
Слайд 9

Пример №2: Печатать «ноль» указанное количество раз var i,n:integer; Begin write

Пример №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 N2>=N1

Цикл с параметром

Прямой пересчет
For i:=N1 to N2 do
<операторы;>
N2>=N1

Обратный пересчет
For i:=N2 down

to N1 do
<операторы>;
N2>=N1
Слайд 11

Цикл с параметром Как работает цикл: Сначала переменной i присваивается первоначальное

Цикл с параметром

Как работает цикл:
Сначала переменной 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 на интервале

Пример №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 выведите

Пример №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

Задача №1

Гражданин 1 марта открыл счёт в банке, вложив 1000 рублей.

Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить:
Сумму вклада через один, два, …, двенадцать месяцев.
Слайд 15

Описательная часть программы: Program vklad; Var i: integer; a: real;

Описательная часть программы:

Program vklad;
Var i: integer;
a: real;

Слайд 16

Математическая модель решения: Первоначальный вклад а0=1000 1 месяц: а1=а0+а0*0,02 2 месяц:

Математическая модель решения:

Первоначальный вклад а0=1000
1 месяц: а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

Алгоритм решения:

начало

Ввести значение
первоначального вклада

Выполнять тело
цикла 12 раз

а=а+а*0,02

Вывести результаты
на

экран

конец

-

+

счётчик

Тело цикла

Слайд 18

Программа: Цикл с параметром: Program vklad; Var i: integer; a: real;

Программа:

Цикл с параметром:
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;

Программа:

Цикл с постусловием:
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 Дано целое число, состоящее из разных цифр. Определить, какая

Задача №2

Дано целое число, состоящее из разных цифр. Определить, какая из

цифр заданного числа больше, т. е. найти наибольшую цифру числа.
Слайд 21

Цикл с предусловием Var n: longint; max: byte; begin readln(n); if

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

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

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

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 Вычислить факториал числа заданного с клавиатуры. Факториал числа представляет

Задача №3

Вычислить факториал числа заданного с клавиатуры.

Факториал числа представляет собой произведение

всех натуральных чисел от 1 до этого числа включительно.
Факториал числа обозначается как само число после которого следует восклицательный знак. Например, 7!. Таким образом: 7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040
Слайд 25

Цикл с предусловием Program factorial_1; Var i, fact,n: integer; Begin i:=1;

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

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;

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

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.