Урок 27-28
Тема: Вложенные циклы. Решение задач.
Цель: объяснить принцип работы вложенных циклов; отрабатывать навык решения задач с вложенными циклами.
-
Проверка домашнего задания
-
Самостоятельная работа.
-
Новый материал.
При решении некоторых задач приходится использовать вложенные циклы. Внутренний и внешний циклы могут быть любыми из трех рассмотренных ранее циклов. Правила организации как внешнего, так и внутреннего циклов такие же, как и для простого цикла каждого из этих видов. Но при использовании вложенных циклов необходимо соблюдать следующее условие: внутренний цикл должен полностью укладываться в циклическую часть внешнего цикла.
-
Решение задач.
Задача 1. Найти все целочисленные решения системы
Задача 2. Найти все двузначные числа, сумма квадратов цифр которых делится на 19.
Задача 3. В десятичной записи числа 42..4 две цифры пропущены. Восстановите их, если известно, что это число кратно 72.
program z1;
uses crt;
var a,b,c:integer;
begin
for a:= 0 to 9 do
for b:=0 to 9 do
begin
c:=42004+a*100+b*10;
if c mod 72=0 then write (c:6);
end;
end.
42 264, 42 624, 42 984.
Задача 4. Представить натуральное число m в виде суммы квадратов двух натуральных чисел.
Задача 5. К числу 0884 слева и справа приписали по цифре так, чтобы полученное число было бы полным квадратом целого числа.(208849=4572)
program z1;
uses crt;
var a,b,c:integer;
d:real;
begin
for a:= 1 to 9 do
for b:=0 to 9 do
begin
c:=8840+a*100000+b;
d:=sqrt(c);
if d=int(d) then write (c:6);
end;
end.
Задача 6. Имеется 100 руб. Сколько быков, коров и телят можно купить на все эти деньги, если плата за быка – 10 руб., за корову – 5 руб., за теленка – полтинник (0,5 руб.) и надо купить 100 голов скота?
program z1;
uses crt;
var a,b,c:integer;
begin
for a:= 1 to 10 do
for b:=1 to 20 do
for c:=1 to 200 do с:= 100-(a+b);
begin
if (a+b+c=100)and (a*10+b*5+c*0.5=100) then if (a*10+b*5+c*0.5=100)
writeln (a:6,b:6,c:6);
end;
end.
Задача 7. Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
program z1;
uses crt;
var a,b,c:integer;
begin
for a:= 1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
if (a<>b)and (b<>c)and (a<>c) then write ((a*100+b*10+c):5);
end.
Задача 8. Напечатать таблицу умножения.
program tablumnog;
uses crt;
var a,b,n:integer;
begin
for a:= 1 to 9 do begin
for b:=1 to 9 do
write (a:3,'*',b,'=',a*b:2);
writeln ;
end;
end.
Задача 9*. Найти все совершенные числа, меньшие числа n.(Совершенное число, равно сумме всех своих делителей, исключая самого себя, например 6=1+2+3.)(6, 28, 496, 8128,…, всего найдено 24 совершенных числа.)
program z3;
uses crt;
var i,j,n,m:integer;
begin
write('введи число'); read(n);
for i:= 2 to n do begin
m:=0;
for j:=1 to i-1 do
if i mod j=0 then m:=m+j;
if m=i then writeln (i) ;
end;
end.
Задача 10*. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-степень, равна самому числу (напр., 153=13+53+33). Получить все числа Армстронга, состоящие трех цифр. (153, 370, 371, 407)
program z1;
uses crt;
var a,b,c,n: integer;
begin
for a:=100 to 999 do
begin
c:=0;n:=a;
while n<>0 do
begin
b:=n mod 10;
c:=c+sqr(b)*b;
n:=n div 10;
end;
if a=c then writeln (a);
end;
end.
-
Итог урока.
5. Домашнее задание.
-
Найти все целочисленные решения системы
-
-
Найти все трехзначные числа, у которых сумма кубов его цифр равна самому числу.
-
Определить количество трехзначных натуральных чисел, сумма цифр которых равна целому числу n (0<n<28).
program z1;
uses crt;
var a,b,c,n,i: integer;
begin
read (n);
for a:=1 to 9 do
for b:=0 to 9 do
for c:=9 to 9 do
begin
if a+b+c=n then begin i:=I+1; writeln (a*100+b*10+c);end;
end;
writeln (I);
end.
-
Найти все двузначные числа, которые делятся на n или содержат цифру n.
program z1;
uses crt;
var a,b,c,n,i: integer;
begin
read (n);
for a:=1 to 9 do
for b:=0 to 9 do
if ((a*100+b) mod n=0) or (a=n) or (b=n)then write ((a*100+b*10+c):4);
end.