Слайд 2
Ключевые слова
while ( цикл-ПОКА)
repeat (цикл-ДО)
for (цикл с параметрами)
Слайд 3
Программирование циклов с заданным условием продолжения работы
Общий вид
оператора:
while do
Здесь:
- логическое выражение;
пока оно
истинно, выполняется тело цикла;
<оператор> - простой или составной оператор, с помощью которого записано тело цикла.
Слайд 4
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.
Слайд 5
Программирование циклов с заданным условием окончания работы
Общий вид
оператора:
repeat until
Здесь:
; ; …
- операторы, образующие тело цикла;
<условие> - логическое выражение; если оно ложно, то выполняется тело цикла.
Слайд 6
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.
Слайд 7
Программирование циклов с заданным числом повторений
Общий вид оператора:
for
:=
to do
Здесь:
- переменная целого типа;
и
<конечное_значение> - выражения того же типа, что и параметр;
<оператор> - простой или составной оператор - тело цикла.
Слайд 8
Программирование циклов с заданным числом повторений
Общий вид оператора:
for
:=
to do
После каждого выполнения тела цикла происходит
увеличение на единицу параметра цикла; условие выхода из цикла – превышение параметром конечного значения.
Слайд 9
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.
Слайд 10
Различные варианты программирования циклического алгоритма
Для решения одной и
той же задачи могут быть созданы разные программы.
Организуем
ввод целых чисел и подсчёт количества введённых положительных и отрицательных чисел. Ввод должен осуществляться до тех пор, пока не будет введён ноль.
В задаче в явном виде задано условие окончания работы.
Воспользуемся оператором repeat.
Слайд 11
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.
Слайд 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:=a+1;
b:=b+2;
end;
s:=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. Какой из трёх рассмотренных операторов
цикла является, по вашему мнению, основным, т. е. таким,
что им можно заменить два других?
Обоснуйте свою точку зрения.