Слайд 1ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ
Слайд 2Ключевые слова
while ( цикл-ПОКА)
repeat (цикл-ДО)
for (цикл с параметрами)
Слайд 3Программирование циклов с заданным условием продолжения работы
Общий вид оператора:
while
do
Здесь:
- логическое выражение;
пока оно истинно, выполняется тело
цикла;
<оператор> - простой или составной оператор, с помощью которого записано тело цикла.
Слайд 4program 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.
Слайд 5Программирование циклов с заданным условием окончания работы
Общий вид оператора:
repeat
оператор2; …; > until
Здесь:
; ; … - операторы, образующие
тело цикла;
<условие> - логическое выражение; если оно ложно, то выполняется тело цикла.
Слайд 6program 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.
Слайд 7Программирование циклов с заданным числом повторений
Общий вид оператора:
for :=
to
do
Здесь:
- переменная целого типа;
и - выражения
того же типа, что и параметр;
<оператор> - простой или составной оператор - тело цикла.
Слайд 8Программирование циклов с заданным числом повторений
Общий вид оператора:
for :=
to
do
После каждого выполнения тела цикла происходит увеличение на единицу
параметра цикла; условие выхода из цикла – превышение параметром конечного значения.
Слайд 9program 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.
Слайд 10Различные варианты программирования циклического алгоритма
Для решения одной и той же
задачи могут быть созданы разные программы.
Организуем ввод целых чисел
и подсчёт количества введённых положительных и отрицательных чисел. Ввод должен осуществляться до тех пор, пока не будет введён ноль.
В задаче в явном виде задано условие окончания работы.
Воспользуемся оператором repeat.
Слайд 11program 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.
Слайд 12Ввод осуществляется до тех пор, пока не будет введён ноль.
Работа
продолжается, пока n 0.
Воспользуемся оператором 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
Слайд 13Самое главное
В языке Паскаль имеются три вида операторов цикла:
while
(цикл-ПОКА)
repeat (цикл-ДО)
for (цикл с параметром).
Если число повторений тела цикла известно,
то лучше воспользоваться оператором for; в остальных случаях используются операторы while и repeat.
Слайд 14Вопросы и задания
1. Дана последовательность операторов:
a:=1;
b:=2;
while a+b
раз будет повторен цикл и какими будут значения переменных a,
b, s после исполнения этой последовательности операторов?
Слайд 15Вопросы и задания
2. Требовалось написать программу вычисления факториала числа n
(факториал числа n есть произведение всех целых чисел от 1
до n).
Программист торопился и написал программу неправильно.
Ниже приведён фрагмент его программы, в котором содержится пять ошибок:
k:=1;
f:=0;
while k f:=f*k;
k:=k+1
Найдите ошибки. Допишите необходимые операторы.
Слайд 16Вопросы и задания
3. Дана последовательность операторов:
a:=1;
b:=1;
repeat
a:=a+1;
b:=b*2;
until b>8;
s:=a+b
Сколько раз будет повторён цикл и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?
Слайд 17Вопросы и задания
4. Напишите программу, в которой осуществляется ввод целых
чисел (ввод осуществляется до тех пор, пока не будет введён
ноль) и подсчёт суммы и среднего арифметического введённых положительных чисел.
Используйте оператор repeat.
Слайд 18Вопросы и задания
5. Напишите программу, в которой осуществляется ввод целых
чисел (ввод осуществляется до тех пор, пока не будет введён
ноль) и определение максимального (наибольшего) из введённых чисел.
Используйте оператор repeat.
Слайд 19Вопросы и задания
6. Напишите программу вычисления наибольшего общего делителя двух
целых чисел:
а) используйте оператор repeat;
б) используйте оператор while.
Слайд 20Вопросы и задания
7. Сколько раз будет выполнен цикл?
а) for i:=0
to 15 do s:=s+1;
б) for i:=10 to 15 do s:=s+1;
в)
for i:=-1 to 1 do s:=s+1;
г) for i:=10 to 10 do s:=s+1;
д) k:=5;
for i:=k-1 to k+1 do s:=s+1;
Слайд 21Вопросы и задания
8. Напишите программу, которая 10 раз выводит на
экран ваши имя и фамилию.
Слайд 22Вопросы и задания
9. Напишите программу, выводящую на экран изображение шахматной
доски, где чёрные клетки изображаются звёздочками, а белые - пробелами.
Рекомендуемый вид экрана после выполнения программы представлен ниже:
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
Слайд 23Вопросы и задания
10. Напишите программу, которая вычисляет сумму:
а) первых n
натуральных чисел;
б) квадратов первых n натуральных чисел;
в) всех чётных чисел
в диапазоне от 1 до n;
г) всех двузначных чисел.
Слайд 24Вопросы и задания
11. Напишите программу, которая генерирует 10 случайных чисел
в диапазоне от 1 до 20, выводит эти числа на
экран и вычисляет их среднее арифметическое.
Слайд 25Вопросы и задания
12. Напишите программу, которая выводит на экран таблицу
степеней двойки (от нулевой до десятой).
Рекомендуемый вид экрана после
выполнения программы представлен ниже:
Таблица степеней двойки:
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
Слайд 26Вопросы и задания
13. Напишите программу, которая выводит на экран таблицу
умножения на n (n - целое число в диапазоне
от 2 до 10, вводимое с клавиатуры).
Слайд 27Вопросы и задания
14. Какой из трёх рассмотренных операторов цикла является,
по вашему мнению, основным, т. е. таким, что им можно
заменить два других?
Обоснуйте свою точку зрения.
Слайд 28Опорный конспект
while (цикл-ПОКA)
repeat (цикл-ДО)
for (цикл с параметром)
Число повторений
цикла известно
В языке Паскаль имеются три вида операторов цикла:
Число повторений
цикла неизвестно