Алгоритмы содержащие команды повторения, называют циклическими. Команды повторения составляют цикл. Цикл - это такая форма организации действий, при которой одна последовательность действий повторяется несколько раз( или не разу), до тех пор , пока выполняются некоторые условия.
II. Существуют три вида циклов. Это: цикл “До”, цикл “Пока”, цикл “ Для...”. Они все состоят из нескольких этапов. Это :
1. Подготовка цикла, в которую входят начальные присвоения;
2. Тело цикла - команды повторения цикла;
3. Условие - обязательная часть циклов “До” и “Пока”.
8-3-5.ppt
Программирование циклических алгоритмов
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ
АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ
Программирование циклических алгоритмов
Ключевые слова
•while ( циклПОКА)
•repeat (циклДО)
•for (цикл с параметрами)
Программирование циклических алгоритмов
Программирование циклов с
заданным условием продолжения
работы
не
т
Условие
да
Тело цикла
Здесь:
<условие>
логическое
выражение;
Общий вид оператора:
while <условие> dodo <оператор>
while
пока оно истинно, выполняется тело цикла;
<оператор> простой или составной оператор,
с помощью которого записано тело цикла.
Программирование циклических алгоритмов
Начало
Список данных
x, y, r, q цел
не
т
x, y
r:=x
q:=0
r >=у
да
r:= r y
q:= q +1
q, r
Конец
program n_14;
var x, y, q, r: integer;
begin
writeln ('Частное и остаток');
write ('Введите делимое x>>');
readln (x);
write ('Введите делитель
y>>');
read (y);
r:=x;
q:=0;
while r>=y do
begin
r:=r-y;
q:=q+1
end;
writeln ('Частное q=', q);
writeln ('Остаток r=', r)
end.
Программирование циклических алгоритмов
Программирование циклов с
заданным условием окончания
работы
Тело цикла
Условие
да
не
т
Общий вид оператора:
repeat <оператор1; оператор2; …; > until
until
repeat
<условие>
Здесь:
<оператор1>; <оператор2>; … операторы, образующие
тело цикла;
<условие> логическое выражение; если оно ложно, то
выполняется тело цикла.
Программирование циклических алгоритмов
program n_15;
var i: integer; x: real;
begin
writeln ('График тренировок');
i:=1;
x:=10;
repeat
i:=i+1;
x:=x+0.1*x;
until x>=25;
writeln ('Начиная с ', i, '-го
дня спортсмен будет пробегать
25 км')
end.
Начало
Список данных
i – цел
x вещ
i := 1
x := 10
i := i +1
x := x +0.1*x
x>= 25
нет
да
i
Конец
Программирование циклических алгоритмов
Программирование циклов с заданным
числом повторений
i = i1, i2
Тело цикла
Общий вид оператора:
forfor <параметр>:=<начальное_значение>
toto <конечное_значение> dodo <оператор>
Здесь:
<параметр> переменная целого типа;
После каждого выполнения тела цикла происходит
<начальное_значение>
увеличение на единицу параметра цикла; условие выхода из
выражения того же типа, что и параметр;
цикла превышение параметром конечного значения.
<оператор> простой или составной оператор тело цикла.
<конечное_значение>
и
Программирование циклических алгоритмов
program n_16;
var i,n:integer;a,y:real;
begin
writeln ('Возведение в
степень');
write ('Введите основание
a>>');
readln (a);
write ('Введите показатель
n>>');
readln (n);
y:=1;
for i:=1 to n do y:=y*a;
writeln ('y=', y)
end.
Начало
Список данных
i, n – цел
a, y – вещ
a, n
y := 1
i = 1, n
y := y * a
y
Конец
Программирование циклических алгоритмов
Различные варианты
программирования
циклического алгоритма
Для решения одной и той же задачи могут быть созданы
разные программы.
Организуем ввод целых чисел и подсчёт количества
введённых положительных и отрицательных чисел. Ввод
должен осуществляться до тех пор, пока не будет введён
ноль.
В задаче в явном виде задано условие окончания работы.
repeat.
Воспользуемся оператором repeat
Программирование циклических алгоритмов
program n_17;
var n, k1, k2: integer;
begin
k1:=0;
k2:=0;
repeat
write ('Введите целое число>>');
readln (n);
if n>0 then k1:=k1+1;
if n<0 then k2:=k2+1;
until n=0;
writeln ('Введено:');
writeln ('положительных чисел – ',
k1);
writeln ('отрицательных чисел – ',
k2)
end.
Начало
Список данных
n, k1, k2 цел
да
да
k1:=k1+1
k2:=k2+1
нет
k1:=0
k2:=0
n
n > 0
нет
n < 0
нет
n = 0
да
k1, k2
Конец
Программирование циклических алгоритмов
Ввод осуществляется до тех пор, пока не будет введён ноль.
Работа продолжается, пока n 0.
while:
Воспользуемся оператором while
program n_18;
var n, k1, k2: integer;
begin
k1:=0;
k2:=0;
n:=1;
while n<>0 do
begin
writeln ('Введите целое
число>>');
read (n);
if n>0 then k1:=k1+1;
if n<0 then k2:=k2+1;
end;
writeln ('Введено:');
writeln ('положительных – ', k1);
writeln ('отрицательных – ', k2)
end.
Начало
Список данных
n, k1, k2 цел
нет
k1:=0
k2:=0
n:=1
n <> 0
да
n
n > 0
нет
k1, k2
Конец
да
k1:=k1+1
k2:=k2+1
Программирование циклических алгоритмов
Самое главное
В языке Паскаль имеются три вида операторов
цикла:
while циклПОКА)
repeat (циклДО)
for (цикл с параметром).
Если число повторений тела цикла известно, то
лучше воспользоваться оператором for; в остальных
случаях используются операторы while и repeat.
Программирование циклических алгоритмов
Вопросы и задания
Дана последовательность операторов:
Требовалось написать программу вычисления факториала числа n
Напишите программу, которая выводит на экран таблицу
Напишите программу, которая выводит на экран таблицу
Дана последовательность операторов:
Напишите программу, выводящую на экран изображение
(факториал числа n есть произведение всех целых чисел от 1до n).
степеней двойки (от нулевой до десятой).
a:=1;
умножения на n (n целое число в диапазоне от 2 до 10,
Напишите программу, в которой осуществляется ввод
a:=1;
шахматной доски, где чёрные клетки изображаются
Сколько раз будет выполнен цикл?
Программист торопился и написал программу неправильно.
Проанализируйте следующий цикл:
Рекомендуемый вид экрана после выполнения программы
b:=2;
вводимое с клавиатуры).
целых чисел (ввод осуществляется до тех пор, пока не
b:=1;
звёздочками, а белые пробелами. Рекомендуемый вид
Ниже приведён фрагмент его программы, в котором содержится
а) for i:=0 to 15 do s:=s+1;
while a 5
г) for i:=10 to 10 do s:=s+1;
while k8;
в) всех чётных чисел в диапазоне от 1 до n;
* * * *
2 4
Обоснуйте свою точку зрения.
Используйте оператор repeat.
f:=f*k;
s:=a+b
b:=b+2;
5 * 3 = 15
д) k:=5;
* * * *
3 8
г) всех двузначных чисел.
k:=k+1
Сколько раз будет повторён цикл и какими будут значения
for i:=k1 to k+1 do s:=s+1;
5 * 4 = 20
4 16
end;
Найдите ошибки. Допишите необходимые операторы.
s
переменных
после
5 32
* * * *
5 * 5 = 25
s:=a+b
последовательности операторов?
6 64
Сколько раз будет повторен цикл и какими будут
5 * 6 = 30
Пример выходных данных
Пример входных данных
7 128
* * * *
значения переменных a, b, s после исполнения этой
5 * 7 = 35
8 256
последовательности операторов?
5! = 120
Введите n> 5
5 * 8 = 40
9 512
10 1024
5 * 9 = 45
6! = 720
5 * 10 = 50
* * * *
b,
* * * *
Введите n> 6
данных
a,
исполнения
этой
Программирование циклических алгоритмов
Опорный конспект
В языке Паскаль имеются три вида операторов цикла:
for (цикл с параметром)
Число повторений
цикла известно
repeat (циклДО)
while (циклПОКA)
Число повторений
цикла неизвестно
while (циклПОКA)repeat (циклДО)for (цикл с параметром)Число повторений цикла известно Число повторений цикла неизвестно
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.