Операторы цикла

Содержание

Слайд 2

Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы

Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы
нет необходимости записывать эти команды несколько раз.

В языке программирования PASCAL существует три вида циклов:
Арифметический (перечисляемый) цикл FOR
Логический цикл с предусловием WHILE
Логический цикл с послеусловием REPEAT

Слайд 3

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

2. Цикл с предусловием (пока)

да

нет

WHILE x<10 DO s:=s+x;

3. Цикл
с

1. Цикл с параметром 2. Цикл с предусловием (пока) да нет WHILE
постусловием (до)

да

нет

REPEAT n:=n+1 UNTIL f<9;

Циклические операторы на Pascal

Оператор после do
повторяется до тех
пор, пока логическое
условие истинно

for счетчик:=значение to конечное_значение do тело_цикла;

Слайд 4

Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не

Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число
связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).

Оператор цикла FOR

Цикл for существует в двух формах:

for счетчик:=значение to конечное_значение do тело_цикла;

for счетчик:=значение downto конечное_значение do тело_цикла;

Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.

Слайд 5

Прямой пересчет идет от известного меньшего числа до известного большего, на каждом

Прямой пересчет идет от известного меньшего числа до известного большего, на каждом
шаге прибавляется единица (например, от 20 до 25: 20, 21, 22, 23, 24, 25).
Обратный пересчет – от большего к меньшему. И на каждом шаге вычитается единица.

Слайд 6

Особенностью арифметического цикла является то, что число повторений операторов цикла должно быть

Особенностью арифметического цикла является то, что число повторений операторов цикла должно быть
известно заранее. Решение о выполнении или невыполнении в очередной раз тела цикла принимается до начала его прохождения, поэтому может случиться так, что тело цикла не будет выполнено ни разу.

Арифметический цикл FOR

Слайд 7

Порядок выполнения цикла FOR

Порядок выполнения цикла FOR

Слайд 8

Цикл под номером 1 будет выполняться для счетчика, последовательно принимающего значения –10,

Цикл под номером 1 будет выполняться для счетчика, последовательно принимающего значения –10,
–9, –8, –7, –6, –5, –4,то есть 7 раз.
Цикл под номером 2 не будет выполняться ни разу, так как начальное значение счетчика больше конечного.
Цикл под номером 3 будет выполняться 1 раз для счетчика, равного 3.

Слайд 9

Правильно записаны фрагменты под номерами 1 и 4.
Во фрагментах 2 и

Правильно записаны фрагменты под номерами 1 и 4. Во фрагментах 2 и
3 в операторах тела цикла производится изменение значение счетчика цикла.

Значение счетчика цикла может использоваться в выражениях, входящих в операторы тела цикла, но изменение значения счетчика цикла этими операторами недопустимо.

Слайд 10

Вывести на экран значение y2 (y=1,2,…,10) в возрастающем и убывающем порядке

Примеры использования

Вывести на экран значение y2 (y=1,2,…,10) в возрастающем и убывающем порядке Примеры использования оператора цикла FOR
оператора цикла FOR

Слайд 11

Program KWADRAT;
Uses crt;
Var kw, y: integer;
Begin
Clrscr;
For y:=1 to 10 do
Begin
kw:=

Program KWADRAT; Uses crt; Var kw, y: integer; Begin Clrscr; For y:=1
sqr(y);
Writeln (y:3,kw:5);
End;
Writeln;
For y:=10 downto 1 do
Begin
kw:=sqr(y);
Writeln (y:3,kw:5);
End;
Readln;
End.

Слайд 12

Выбрать наименьшие значение из 20 чисел, вводимых с клавиатуры

Выбрать наименьшие значение из 20 чисел, вводимых с клавиатуры

Слайд 13

program min;
uses crt;
var i:integer;
x,y : real;
begin
clrscr;
writeln ('Enter first');
readln (x);
for

program min; uses crt; var i:integer; x,y : real; begin clrscr; writeln
i:=2 to 20 do
begin
write ('Enter next');
readln (y);
if y end;
writeln ('min=',x:6:2);
readln;
end.

Слайд 14

Вычисление суммы и количества чисел

Вычисление суммы и количества чисел

Слайд 15

Вычислить сумму
n чисел, вводимых
с клавиатуры.

program Summa;
uses crt;
var I, n :integer;
x,

Вычислить сумму n чисел, вводимых с клавиатуры. program Summa; uses crt; var
sum : real;
begin
clrscr;
writeln (‘Enter n’);
readln (n);
sum:=0;
for i:=1 to n do
begin
write (‘Enter x’);
readln (x);
sum:=sum+ x;
end;
writeln (‘sum=’, sum:6:2);
readln;
end.

Слайд 16

Среди всех двузначных чисел найти те, сумма цифр которых равна n (0

Среди всех двузначных чисел найти те, сумма цифр которых равна n (0
и количество этих чисел.

Program Chisla;
uses crt;
var n, i, k, p1, p2:integer;
begin
clrscr;
k:=0;
writeln (‘Vvesti n’);
readln (n);
for i:=10 to 99 do
begin
p1:=i div 10;
p2:= i mod 10;
if (p1+ p2) =n then
begin
writeln (i);
k:=k+1;
end;
end;
writeln (‘Koli4estvo 4isel ’, k);
readln;
end.

Слайд 17

Логические циклы

Логические циклы

Слайд 18

При составлении программ часто возникают ситуации, когда
1. Заранее не известно количество

При составлении программ часто возникают ситуации, когда 1. Заранее не известно количество
повторений цикла;
2. Переменная – счетчик цикла должна изменяться с шагом ≠ 1.
В таких случаях используют

Логические циклы

Слайд 19

- Это циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое

- Это циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие Логические циклы
условие

Логические циклы

Слайд 20

Сравнение циклов While и Repeat

В цикле While проверка условия выполнения цикла находится

Сравнение циклов While и Repeat В цикле While проверка условия выполнения цикла
в начале цикла, а в Repeat – в конце. Цикл Repeat всегда выполняется хотя бы один раз, а цикл While может не выполнятся ни разу.
В цикле While выход из цикла осуществляется, если условие ложно, а в Repeat – если условие истинно.
Между словами Repeat и Until можно размещать несколько операторов без Begin и End, а цикл While…do может содержать только один оператор тела цикла; поэтому нужно использовать Begin и End.

Слайд 21

Оператор с предусловием While

Оператор while (пока) называют оператором цикла с предусловием за

Оператор с предусловием While Оператор while (пока) называют оператором цикла с предусловием
то, что проверка условия выполнения тела цикла производится в самом начале оператора, до операторов тела цикла. Если условие изначально не выполнится, то операторы тела цикла не выполнятся ни разу. Формат оператора:
While <условие выполнения цикла> do begin <тело цикла>; end;
Здесь: <условие выполнения цикла> - булевское выражение; <тело цикла> - операторы, которые будут повторяться.
На русском языке это звучит примерно так:
пока выполняется условие делай начало <тело цикла> конец

Слайд 22

Найти все двузначные числа, кратные 7.

Program Kratn_7;
Uses Crt;
Var k: integer;
Begin
Clrscr;
k:=14;
While k<=99 do

Найти все двузначные числа, кратные 7. Program Kratn_7; Uses Crt; Var k:
Begin
Writeln(k);
k:=k+7;
end;
readln;
end.

При использовании логических циклов необходимо всегда заботиться о том, чтобы переменная, использующаяся в условии завершения цикла, каким-то образом обязательно изменялась в теле цикла. Это может быть команда присваивания ( как в данной программе) или команда ввода.

Слайд 23

Program Summa_2;
Uses Crt;
Var sum, x: real;
K: integer;
Begin
Clrscr;
sum:=0;
k:=1;
While sum<=10 do
Begin
Sum:=sum+1/k;

Program Summa_2; Uses Crt; Var sum, x: real; K: integer; Begin Clrscr;
k:=k+1;
end;
Writeln('Kolichestvo elementov=',k);
readln;
end.

При каком количестве слагаемых последовательности их сумма превысит 10?

Слайд 24

Использование цикла Repeat

Использование цикла Repeat

Слайд 25

Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем,

Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем,
что условие проверяется после очередного выполнения тела цикла (за это и называется циклом с постусловием) и таким образом гарантируется хотя бы однократное выполнение цикла, а во-вторых, тем, что выполнение условия (равенство булевского выражения константе true) является критерием не повторения, а прекращения цикла.
Формат оператора:
Repeat <оператор 1> ; <оператор 2> ; . . . <оператор n>; Until <условие окончания цикла>;

Слайд 26

Алгоритм выполнения:
Выполняется тело цикла (операторы, заключенные между словами repeat / until).
Проверяется условие

Алгоритм выполнения: Выполняется тело цикла (операторы, заключенные между словами repeat / until).
выхода из цикла.
Если условие выполняется, то происходит выход из цикла к первому после repeat  оператору.
Если условие  не выполняется, то алгоритм повторяется с пункта 1.

Слайд 27

Написать программу, которая «задумывает» число в диапазоне от 1 до 9 и

Написать программу, которая «задумывает» число в диапазоне от 1 до 9 и
предлагает пользователю угадать это число за 5 попыток.
Пояснения к программе:
Компьютер может «задумать» число с помощью функции Random.
Количество повторений цикла в этой задаче может быть от 1 до 5 – то есть, заранее не известно.
Так как пользователь должен сделать хотя бы одну попытку, то логично использовать команду цикла Repeat…until.

Слайд 28

Program Ugaday_chislo;
const Npop=5;
var comp, igrok, n: integer;
Begin
Randomize;
comp:=random(9)+1;
Writeln ('Game "Угадай число" ');
Writeln (‘Компьютер

Program Ugaday_chislo; const Npop=5; var comp, igrok, n: integer; Begin Randomize; comp:=random(9)+1;
загадывает число от 1 до 9’);
Writeln (‘Вы должны угадать это число');
Writeln (‘за 5 попыток');
repeat
n:=n+1;
Write (‘Введите число- ');
readln(igrok);
until (n=Npop) or (comp=igrok);
if comp = igrok
then Writeln (‘Угадал!!!')
else Writeln (' Не угадал! Это число - ',comp);
readln; end.

Слайд 29

Алгоритм:

Для того, чтобы не «потерять» заданное число, введем переменную y, значение которой

Алгоритм: Для того, чтобы не «потерять» заданное число, введем переменную y, значение
сначала будет =x.

С- целая часть от деления числа y на 10
R- остаток от деления y на 10
K- кол-во цифр в числе x

Последовательно будем находить целую часть и остаток от деления числа y на 10.Именно остаток от деления будет очередной цифрой x. На каждом шаге будем изменять число y: присваивать ему значение целой части от деления y на 10.Для нахождения количества цифр организуем счетчик, значение которого будет увеличено на 1.Процесс повторяется пока значение числа y не станет меньше 1.

Найти все цифры и их количество заданного произвольного целого числа x>0