Слайд 1Циклические программы
Информатика и ИКТ
9 класс
Гимназия № 1 г. Новокуйбышевска
Учитель информатики:
Красакова О.Н.
Слайд 2Понятие цикла
Информатика и ИКТ. 9 класс
Цикл – последовательность команд, которая
повторяется конечное количество раз.
Виды циклов:
Цикл с параметром
Цикл с предусловием
Цикл
с постусловием
Слайд 3Цикл с параметром
Информатика и ИКТ. 9 класс
FOR i:=a to b
do
begin
…
end;
Заголовок цикла,
где
i – счетчик
а – начальное значение счетчика
b – конечное значение счетчика
Начало цикла
Конец цикла
Слайд 4Пример 1
Напечатать на экране числа от 1 до N.
PROGRAM
primer;
var i,n:integer;
BEGIN
write(‘n=‘); readln(n);
for i:=1 to n do
writeln(i);
END.
Слайд 5Пример 2
Составить программу, которая увеличивает в 2 раза числа от
1 до N.
PROGRAM primer;
var i,n,K:integer;
BEGIN
write(‘n=‘); readln(n);
for i:=1 to n do
k:=2*i;
writeln(k);
END.
Слайд 6Пример 2
Составить программу, которая увеличивает в 2 раза числа от
1 до N.
PROGRAM primer;
var i,n,K:integer;
BEGIN
write(‘n=‘); readln(n);
for i:=1 to n do
begin
k:=2*i;
writeln(k);
end;
END.
Слайд 8Пример 3
Напечатать на экране таблицу квадратов чисел от 1 до
10.
PROGRAM primer;
var i,K:integer;
BEGIN
for i:=1 to
10 do
begin
k:=i*i;
writeln(i,’ в квадрате=’,k);
end;
END.
Слайд 9Задача
Информатика и ИКТ. 9 класс
PROGRAM primer;
var i:integer;
d,k:real;
BEGIN
write(‘Введите курс $=‘); readln(d);
writeln(‘Таблица перевода:’);
for i:=50 to 100 do
begin
k:=i*d;
writeln(i,’$ =‘,k,’ руб’);
end;
END.
Таблица перевода долларов (от 50 до 100) в рубли
Слайд 10Задача
Информатика и ИКТ. 9 класс
Составить программу, которая вычисляет сумму вклада
в банке через N лет, если первоначальный взнос - М
рублей, а процентная ставка - 8,5% годовых.
var i,n:integer; m:real;
BEGIN
write(‘Вклад='); readln(m);
write(‘Годы='); readln(n);
for i:=1 to n do
begin
m:=m+m*0.085;
writeln(i,'–й год:
вклад=',m:6:2,’рублей’);
end;
END.
Слайд 11Задача
Информатика и ИКТ. 9 класс
Слайд 12Задача
Информатика и ИКТ. 9 класс
Найти сумму натуральных чисел от 1
до N.
PROGRAM summa;
var i,n,S:integer;
BEGIN
write(‘n=‘); readln(n);
S:=0;
for i:=1 to n do
S:=S+i;
writeln(‘S=’,S);
END.
Слайд 13Задача
Информатика и ИКТ. 9 класс
Найти сумму натуральных чисел от 1
до N, кратных 5.
PROGRAM summa;
var i,n,S:integer;
BEGIN
write(‘n=‘); readln(n);
S:=0;
for i:=1 to n do
if i mod 5=0 then S:=S+i;
writeln(‘S=’,S);
END.
Слайд 14Задача
Информатика и ИКТ. 9 класс
Найти количество чисел от 1 до
N, кратных 15.
PROGRAM z1;
var I,N,k:integer;
BEGIN
write(‘N=’); readln(N);
k:=0;
for i:=1 to N do
if I mod 15=0 then k:=k+1;
writeln(‘k=‘,k);
END.
Слайд 15Задача
Информатика и ИКТ. 9 класс
Найти количество трехзначных натуральных чисел, оканчивающихся
на 7.
PROGRAM krat7;
var i,k:integer;
BEGIN
k:=0;
for i:=100 to 999 do
if i mod 10=7 then k:=k+1;
writeln(‘k=’,k);
END.
Слайд 16Задача
Информатика и ИКТ. 9 класс
Составить программу, которая печатает на экране
все делители числа N.
PROGRAM krat7;
var i,n:integer;
BEGIN
write(‘n=‘); readln(n);
writeln(‘делители n:’);
for i:=1 to n do
if n mod i=0 then writeln(i);
END.
Слайд 17Задача
Информатика и ИКТ. 9 класс
Составить программу, которая выводит на экран
трехзначные числа , в которых первая цифра равна последней
var i,a,b:integer;
BEGIN
write(‘Числа:');
for i:=100 to 999 do
begin
a:=i div 100;
b:=i mod 10;
if a=b then writeln(i);
end;
END.
Слайд 18Задача
Информатика и ИКТ. 9 класс
Составить программу, которая выводит на экран
трехзначные числа , в которых первая цифра равна последней
var i:integer;
BEGIN
write(‘Числа:');
for i:=100 to 999 do
if i div 100=i mod 10 then writeln(i);
END.
Слайд 19Составить программу, которая печатает на экране все четырехзначные числа, у
которых сумма первой и последней цифры равна 10.
Слайд 20Табулирование функции
Информатика и ИКТ. 9 класс
Задача. Найти значения функции y=x2+2
для х от 3 до 8 с шагом 1.
PROGRAM tab;
var x,y:real;
BEGIN
for x:=3 to 8 do
begin
y:=x*x+2;
writeln('x=',x:6:2,' y=',y:6:2);
end;
readln;
END.
В результате выполнения программы на экране будут напечатаны значения х от 3 до 8 и соответствующие им значения у, найденные в процессе выполнения программы.
Слайд 21Табулирование функции
Информатика и ИКТ. 9 класс
h
Задача. Найти множество значений
функции
В этой задаче начальное и конечное значение х и
шаг изменения h вводятся с клавиатуры и могут изменяться при каждом выполнении программы. В данном случае значение х нельзя использовать в качестве параметра цикла (в предыдущей задаче строка for x:=3 to 8 do), так как параметр цикла может изменяться только с шагом 1, а в данной задаче h может быть любым.
Слайд 22Табулирование функции
Информатика и ИКТ. 9 класс
Ввод исходных данных
PROGRAM tab;
var x,y,a,b,h:real;
n,i:integer;
BEGIN
write('a=');
readln(a);
write('b='); readln(b);
write('h='); readln(h);
n:=round((b-a)/h);
x:=a;
for i:=1 to n+1 do
begin
y:=x*x/(sin(x)+3);
writeln('x=',x:6:2,' y=',y:6:2);
x:=x+h;
end;
END.
Присваивает переменной Х начальное значение отрезка.
Заголовок цикла, в котором параметр i является счетчиком, указывающим сколько раз на данном отрезке нужно вычислить значение У (n+1, т.к. включая концы отрезка)
Конец цикла
Вычисляет количество точек n на отрезке. Round – округляет значение выражения в скобках
Вычисляет значение функции У.
Выводит на экран значение Х и соответствующее ему значение У
Увеличивает значение Х на шаг h.
Слайд 23Задача
Информатика и ИКТ. 9 класс
Вычислить а
a:=4;
For i:=1 to 5 do
a:=2*a-7;
Чему будет равно значение переменной а в результате выполнения
фрагмента программы:
Слайд 24Задача
Информатика и ИКТ. 9 класс
Вычислить а
a:=1;
For i:=5 downto 2 do
a:=a+i;
Слайд 25Чему будет равно значение переменной а после выполнения цикла
a :=
2;
for i:=1 to 4 do
a := a+1;
a
:= 1;
for i:=5 downto 3 do
a := a+i;
Слайд 26Цикл с предусловием
Информатика и ИКТ. 9 класс
WHILE DO
begin
…
end;
Операторы цикла выполняются до тех пор, пока <условие> не станет ложным (условие выполнения цикла)
Слайд 27Цикл с предусловием
Информатика и ИКТ. 9 класс
Найти S
S:=1; i:=1;
while i
< 5 do begin
S := S + i*(i+1);
i := i + 1;
end;
Ответ: S=41
Слайд 28Цикл с предусловием
Информатика и ИКТ. 9 класс
Найти P
p:=0; i:=7;
while i
> 1 do begin
p := p +
i mod 2;
i := i - 1;
end;
Ответ: P=3
Слайд 29Задача
Информатика и ИКТ. 9 класс
Вычислить P
P:=1; i:=3;
while i
do
i := i + 1;
P
:= P * (i div 5);
P:=1*(8 div 5)=1
Ответ: P=1
Слайд 30Цикл с постусловием
Информатика и ИКТ. 9 класс
REPEAT
…
UNTIL
;
Операторы цикла выполняются до тех пор, пока не выполнится
(условие выхода из цикла)
Слайд 31Цикл с предусловием
Информатика и ИКТ. 9 класс
n:=2;
repeat
n:=2*n-1;
Until
n>10;
Найти n
Слайд 32Задача
Информатика и ИКТ. 9 класс
Вычислить s
s:=5; i:=2;
repeat
s:=s+2*i;
i:=i-1
until i
Слайд 33Задача
Информатика и ИКТ. 9 класс
Составить программу, которая проверяет встречается ли
в натуральном числе N цифра 5.
var n,x,a,k:integer;
BEGIN
write('Введите целое число
='); readln(n);
x:=n; k:=0;
repeat
a:=x mod 10; x:=x div 10;
if a=5 then k:=k+1;
until x<1
if k=0 then writeln('Не встречается')
else writeln('Встречается');
END.
Слайд 34A:=2;
For i:=1 to 5 do
a:=a+3;
X:=0;
For i:=3 to
6 do
x:=x+2*i;
A:=2; b:=1;
While b
begin a:=2*a-b; b:=b+2; end;
A:=2;
For i:=1 to 5 do
a:=a+3;
X:=0;
For i:=3 to 6 do
x:=x+2*i;
A:=2; b:=1;
While b<=4 do
begin a:=2*a-b; b:=b+2; end;
Слайд 35Алгоритм Евклида
Информатика и ИКТ. 9 класс
Нахождение НОД (наибольшего общего делимого)
Даны
2 числа N и M.
Сравнить данные числа и наибольшее из
них заменить на разность большего и меньшего.
Повторять до тех пор, пока числа не станут равными.
НОД = N (M)
Слайд 36Алгоритм Евклида
Информатика и ИКТ. 9 класс
НОД (128,80) = 16
Слайд 37Информатика и ИКТ. 9 класс
PROGRAM nod;
var n,m:integer;
BEGIN
Write(‘Введите 2 числа:’);
readln(n,m);
While n<>m do
if n>m then n:=n-m
else m:=m-n;
Writeln(‘НОД=’,n);
END.
Алгоритм Евклида
Слайд 38Цикл с параметром
for i:= n to m do
begin
{тело цикла}
end;
i – параметры цикла
n – начальное значение параметра
m – конечное значение параметра.
Увеличение параметра цикла на 1
for i:= n downto m do
begin
{тело цикла}
end;
Уменьшение параметра цикла на 1
Слайд 39
параметр цикла может быть только целым (integer)
шаг изменения переменной цикла
всегда равен 1 (to) или -1 (downto)
если в теле цикла
только один оператор, слова begin и end можно не писать:
если конечное значение меньше начального, цикл (to) не выполняется ни разу.
Цикл с параметром
for i:=1 to 8 do
writeln('Привет');
Слайд 40
Вывести на экран квадраты и кубы целых чисел от 1
до 10.
Пример программы
program qq1;
var i, i2, i3: integer;
begin
for i:=1 to 8 do begin
i2 := i*i;
i3 := i2*i;
writeln(i,’- в квадрате ’,
i2,’, в кубе ’,i3);
end;
end.
параметр цикла
начальное значение
конечное значение
Слайд 41начало
i, i2, i3
конец
нет
да
i
1;
i2 := i * i;
i3 := i2 * i;
задать начальное
значение переменной цикла
проверить, все ли сделали
вычисляем квадрат и куб
вывод результата
перейти к следующему i
Блок-схема
Слайд 42
Найти сумму целых чисел от 1 до 20 (integer)
Пример программы
program
qq2;
var i, S: integer;
begin
for i:=1 to 20 do
S:=S+i;
writeln(‘Сумма 1-20=‘,S);
end.
Слайд 43Чему будет равно значение переменной а после выполнения цикла
a :=
2;
for i:=1 to 4 do
a := a+1;
a
:= 1;
for i:=5 downto 3 do
a := a+i;