План урока
Дата: 3.02.2018
Тема: Практикум по теме «Организация циклов»
Цели:
Обучать работе с циклическими конструкциями в языке Паскаль.
Развивать логическое мышление.
Воспитывать интерес к предмету.
Ход урока:
Организационный момент
Актуализация знаний
Проверка домашнего задания.
Изучение нового материала
Циклы применяются в программах для повторения определенных действий. Если количество повторений заранее известно, то применяется цикл с параметром-счетчиком.
Общий вид цикла с параметром:
for i := A to B do
begin
;
end;
for i := A downto B do
begin
;
end;
Где:
i – параметр;
А – начальное значение параметра;
В – конечное значение параметра;
Начальное и конечное значение параметров может быть представлено константами, переменными, арифметическими выражениями.
Работа цикла For i:=А То В Do :
Сначала вычисляются значения А и В. Если А. Если АВ, то не выполняется ни разу.
Оператор цикла
For i:=А Downtо В Do выполняется аналогичным образом, но значение i изменяется с шагом -1.
Если состоит из нескольких операторов, то операторы цикла берутся в операторные скобки Begin – end.
Задача
Вывести на экран 10 раз свое имя.
var i:integer;
begin
for i:=1 to 10 do
begin
writeln('Лена');
end;
readln;
end.
Задача
Вывести на экран все двузначные числа, сумма цифр которых равна заданному числу N.
var i,n:integer;
begin
writeln('Введите число:');
readln(n);
for i:=10 to 99 do
if (i div 10)+(i mod 10)=n then writeln(i);
readln;
end.
Задача
Среди четырехзначных чисел выбрать те, у которых все цифры различны.
uses crt;
var i,a,b,c,d:integer;
begin
clrscr;
for i:=1234 to 9999 do
begin
a:=i div 1000;
b:=(i div 100) mod 10;
c:=(i mod 100) div 10;
d:=i mod 10;
if (ab) and (ac) and (ad) and (bc) and (bd) and (cd) then writeln(i);
end;
readln;
end.
Задание
Найти сумму целых положительных чисел из промежутка от А до В, кратных 4 (значения переменных А и В вводятся с клавиатуры).
Цикл с предусловием или с предпроверкой используется тогда, когда количество повторений заранее не известно, а задается некоторое условие продолжения цикла.
Оператор цикла с предусловием:
while do
begin
end;
Выполнение цикла с предусловием начинается с проверки условия. Если соблюдается, то выполняется , затем вновь проверяется условие и т.д. Как только перестает соблюдаться - не выполняется.
Цикл с предпроверкой работает до тех пор, пока истинно.
Примечание.
1. Если состоит из нескольких операторов, то они должны быть объединены операторными скобками begin и end.
2. В цикле обязательно должен быть оператор, который влияет на соблюдение условия, иначе произойдет зацикливание.
Задача
Подсчитать количество цифр заданного натурального числа N.
uses crt;
var n:longint;
k:integer;
begin
clrscr;
writeln('Введите натуральное число');
readln(n);
k:=0;
While n0 do
begin
Inc(k); { k:=k+1;}
n:=n div 10;
end;
Writeln('Количество цифр: ',k);
readln;
end.
Задача
Найти количество четных цифр натурального числа.
var n,k:integer;
begin
k:=0;
write('Введите число: '); readln(n);
while n0 do
begin
if (n mod 10) mod 2=0 then inc(k);
n:=n div 10;
end;
writeln('Четных цифр - ',k);
readln;
end.
Для программной реализации циклических алгоритмов с неизвестным заранее числом повторений имеется еще один оператор – оператор цикла с постусловием (постпроверкой), который имеет следующий вид:
Оператор цикла с постусловием:
Repeat {повторять}
Unill ;
Этот оператор отличается от цикла с предусловием тем, что проверка условия производится после очередного выполнения тела цикла. Это обеспечивает выполнение тела цикла хотя бы один раз.
Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова begin и end не нужны.
Последовательность операторов, входящих в тело цикла, выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие соблюдается, цикл завершается. В противном случае – тело цикла выполняется еще раз, после чего снова проверяется соблюдение условия.
Цикл с постусловием работает до тех пор, пока не станет истинным .
Задача
Найти сумму всех нечетных цифр числа.
var n,sum,k:integer;
begin
sum:=0;
k:=0;
write('Введите число: '); readln(n);
repeat
k:=(n mod 10);
if k mod 20 then sum:=sum+k;
n:=n div 10;
until n=0;
writeln('Сумма нечетных цифр - ',sum);
readln;
end.
Вопросы и задания
Среди четырехзначных чисел выбрать те, у которых все четыре цифры различны.
Найти сумму цифр числа, больших 5.
Составить программу, проверяющую является ли последовательность из 10 чисел, введенных с клавиатуры возрастающей.
Сколько раз данная цифра встречается в числе?
Составить программу, проверяющую является ли натуральное число палиндромом, то есть таким, десятичная запись которого читается одинаково слева направо и справа налево.