План2
.docxПлан-конспект урока
Тема: Оператор цикла с параметром.
Цели урока:
1. образовательная: обеспечить усвоение понятий оператор цикла с параметром, оператор повторения.
2. развивающая: способствовать развитию мышления учащихся, обеспечить формирование мотивов учения и познавательного интереса.
3. воспитательная: способствовать развитию аккуратности, настойчивости, самостоятельности учащихся; обеспечить формирование научного мировоззрения.
Методы:
-
словесные: беседа.
-
практические: работа с учебником.
-
методы контроля: актуализация знаний, решение задач на закрепление.
Связи: внутрипредметные (прошлая тема)
Литература:
Ход урока:
1. Организационный момент (2 мин).
2. Актуализация опорных знаний (5 мин).
3. Решение задач (35 мин).
4. Подведение итогов. Домашнее задание (3 мин).
Содержание урока.
Актуализация знаний
1. В каких случаях в программе используется оператор for?
2. Какие формы оператора for вы знаете?
3. Чем отличается формы «to» и «downto» оператора for ?
4. Можно ли изменять параметр цикла в теле цикла?
5. Какой тип данных может иметь параметр цикла ? ( Параметр цикла, его начальное и конечное значения должны принадлежать к одному и тому же типу данных (чаще всего это целочисленный тип integer, но могут быть и другие типы, кроме вещественного))
В общем виде оператор for может быть представлен в виде:
for <параметр цикла>:=<начальное значение > to <конечное значение> do <оператор>;
for i:=N1 to N2 do <оператор>; N1<N2
for <параметр цикла>:=<начальное значение > downto <конечное значение> do <оператор>;
for i:=N1 downto N2 do <оператор>; N2<N1.
Важно помнить:
Ø Не рекомендуется изменять параметр цикла в теле цикла с помощью команды присваивания. Это может привести к «зацикливанию» программы (бесконечному повторению тела цикла) либо к неверным результатам выполнения программы.
Ø Если в заголовке оператора for..to начальное значение параметра цикла больше конечного значения, то тело цикла не выполнится ни разу.
Ø Если в заголовке оператора for..downto начальное значение параметра цикла меньше конечного значения, то тело цикла не выполнится ни разу.
Ø При выходе из цикла текущее значение параметра цикла равно конечному значению в операторе for..to и наоборот в операторе for..downto.
Ø Телом цикла может быть не один оператор, а группа операторов (составной оператор), которую обязательно надо заключать в операторные скобки begin… end.
Раздаю 2 варианта задачек на листочках, ученики сидящие за одним компьютером выполняют 1 вариант, их соседи, сидящие за вторым компьютером 2 вариант.
Решение задач
1 вариант
-
Составьте программу вычисления суммы чисел в диапазоне от 5 до 65 (5+6+7+... ...+65).
Program zadacha1;
Var i, sum: integer;
begin
sum:=0; {начальное значение суммы}
for i:=5 to 65 do{параметр цикла i (счетчик цикла) меняется от 5 до 65
с шагом -1}
sum:=sum +i; {тело цикла}
writeln (‘sum=’, sum); {вывод результата}
end.
2. Составьте программу вычисления суммы квадратов чисел от 1 до 20.
Program zadacha2;
Var i, sum:integer;
begin
sum:=0; {начальное значение суммы}
for i:=1 to 20 do {параметр цикла i (счетчик цикла) меняется от 1 до 20
с шагом -1}
sum:=sum+sqr(i); {тело цикла}
writeln (‘sum=’, sum); {вывод результата}
end.
3. Напечатать все двухзначные числа, сумма которых равна 12.
Program zadacha3;
Var i,k,l,a:integer;
begin
for i:=10 to 99 do
begin
k:=i mod 10;
l:=i div 10;
a:=k+l;
if a=12 then writeln (‘i=’,i);
end;
end.
4. Составьте программу вычисления суммы чисел кратных 5 в диапазоне от 1 до 100.
Program zadacha4;
Var i,sum:integer;
Begin
Sum:=0;
for i:=1 to 100 do
begin
if i mod 5 = 0 then
sum:=sum+i;
end;
writeln(‘sum=’, sum);
end.
5. Составьте программу, которая выводит на экран числа кратные 6 и 11 в диапазоне от 6 до 200.
Program zadacha5;
Var i:integer;
Begin
for i:=6 to 200 do
begin
if ( i mod 6 = 0) and (i mod 11=0 ) then
writeln(‘i=’, i);
end;
end.
6*. Даны натуральные числа n, k (n, k<=9999). Из чисел от n до k выберете те, запись которых содержит три одинаковых цифры. Например, числа 6766, 5444, 0006, 0060 содержат ровно три одинаковых цифры.
Program zadacha6;
Var i,n,k,a1,a2,a3,a4,m :integer;
Begin
Writeln('Введите n');
Readln(n);
Writeln('Введите k');
Readln(k);
for i:=n to k do
begin
m:=i;
a1:=m div 1000;
a2:=(m div 100); a2:=a2 mod 10;
a3:=m mod 100; a3:=a3 div 10;
a4:=m mod 10;
if ((a1=a2) and (a2=a4) and (a1<>a3)) or ((a1=a2) And (a1= a3) And (a1<>a4)) or ((a1=a3) and (a1=a4) and (a1<>a2)) or ((a2=a3) and (a3=a4) and (a1<>a2)) then writeln('i=', i);
end;
end.
2 вариант
-
Составьте программу вычисления суммы чисел в диапазоне от 45 до 115 (45+46+47+... ...+115).
Program zadacha1;
Var i, sum: integer;
begin
sum:=0; {начальное значение суммы}
for i:=45 to 115 do{параметр цикла i (счетчик цикла) меняется от 5 до 65
с шагом -1}
sum:=sum +i; {тело цикла}
writeln (‘sum=’, sum); {вывод результата}
end.
-
Составьте программу, которая находит сумму четных чисел и произведение нечетных чисел в диапазоне от 1 до 10.
Program zadacha2;
Var i, sum,P: integer;
begin
sum:=0;
P:=1;
for i:=2 to 100 do
begin
if i mod 2 = 0 then sum:=sum+1
else P:=P*i;
writeln (‘sum=’, sum);
writeln (‘P=’, P);
end;
end.
-
Напечатать все двухзначные числа, сумма которых равна 15.
Program zadacha3;
Var i,k,l,a:integer;
begin
for i:=10 to 99 do
begin
k:=i mod 10;
l:=i div 10;
a:=k+l;
if a=15 then writeln (‘i=’,i);
end;
end.
4. Составьте программу вычисления суммы чисел кратных 6 в диапазоне от 6 до 100.
Program zadacha4;
Var i,sum:integer;
Begin
Sum:=0;
for i:=6 to 100 do
begin
if i mod 6 = 0 then
sum:=sum+i;
end;
writeln(‘sum=’, sum);
end.
5. Составьте программу, которая выводит на экран числа кратные 4 и 11 в диапазоне от 4 до 150.
Program zadacha5;
Var i:integer;
Begin
for i:=4 to 150 do
begin
if ( i mod 4 = 0) and (i mod 11=0 ) then
writeln(‘i=’, i);
end;
end.
6*. Даны натуральные числа n, k (n, k<=9999). Из чисел от n до k выберете те, у которых все четыре цифры различны.
Program zadacha6;
Var i,n,k,a1,a2,a3,a4,m :integer;
Begin
Writeln('Введите n');
Readln(n);
Writeln('Введите k');
Readln(k);
for i:=n to k do
begin
m:=i;
a1:=m div 1000;
a2:=(m div 100); a2:=a2 mod 10;
a3:=m mod 100; a3:=a3 div 10;
a4:=m mod 10;
if (a1<>a2) and (a1<>a3) and (a1<>a4) and (a2<>a3) and (a2<>a4) then writeln('i=', i);
end;
end.
Подведение итогов, кто сколько задач решил, выставление оценок.
Домашнее задание: §3(1-2)