Урок 25-26
Тема: Операторы цикла на Паскале. Решение задач.
Цель: отрабатывать навык решения задач с использованием операторов цикла, закреплять знания учащихся.
-
Проверка дом. задания
-
Устная работа
3. Решение задач.
Задача 1. Определить сумму цифр натурального числа n и вывести его запись в обратном порядке.
program z3;
uses crt;
var k, s, n: integer; a: longint;
begin
readln (n);
k:=0; s:=0; a:=0;
while n<>0 do
begin
k:=k+1;
s:=s+ n mod 10;
a:= a*10 +n mod 10;
n:= n div 10;
end;
writeln ('число цифр ', k, ' сумма цифр; ', s);
writeln (‘Запись в обр. порядке; ',a);
end.
Задача 2. Произведение N первых нечетных чисел равно p. Сколько сомножителей взято?
program z1; {k -сомножители, a- число сомножителей , s - произведение}
uses crt;
var k,s,p:integer; a: longint;
begin
readln(p);
k:=1; s:=1; a:=0;
while p<>s do
begin
s:=s*k;
k:=k+2;
a:=a+1;
end;
writeln ('число сомножителей; ',a);
end.
Контрольный пример: 105 – 4 сомножителя (105=1*3*5*7).
Задача 3. Найти все трехзначные числа, которые при делении на 47 дают в остатке 43.
program ostatok;
uses crt;
var i, x: integer;
begin
for i:=100 to 999 do
if i mod 47=43 then writeln (i);
end.
Задача 4.
program z2;
uses crt;
var a,b,c,n: integer;
begin
for a:=100 to 999 do
begin
b:=sqr(a);
c:=b mod 1000;
if a=c then writeln (a:7,b:7);
end;
end.
Задача 5. Распечатать в столбик таблицу умножения на 7.
program z1;
uses crt;
var p,i:integer;
begin
for i:= 1 to 9 do begin
p:=i*7;
writeln (i,'*7=',p);
end;
end.
Задача 6. Найти среднее арифметическое квадратов всех целых чисел от a до b. (Значения a и b вводятся с клавиатуры.)
program z1;
uses crt;
var i,a,b,n:integer;s:real;
begin
readln(a,b);
for i:= a to b do begin
s:=s+sqr(i); n:=n+1; end;
s:=s/n;
writeln (s);
end.
Задача 7. Вычислить сумму .
Задача 8. Напечатать минимальное число, большее 200, которое нацело делиться на 17.
4. Итог урока.
5. Домашнее задание.
1. Вывести на экран все целые числа от a до b, кратные некоторому числу с.
2. Найти среднее арифметическое квадратов всех целых чисел от 1 до 100.
program z1;
uses crt;
var i:integer;s:real;
begin
for i:= 1 to 100 do
s:=s+sqr(i);
s:=s/100;
writeln (s);
end.