top of page

Урок 27-28

Тема: Вложенные циклы. Решение задач.

Цель: объяснить принцип работы вложенных циклов; отрабатывать навык решения задач с вложенными циклами.

 

  1. Проверка домашнего задания

  2. Самостоятельная работа.

  1. Новый материал.

При решении некоторых задач приходится использовать вложенные циклы. Внутренний и внешний циклы могут быть любыми из трех рассмотренных ранее циклов. Правила организации как внешнего, так и внутреннего циклов такие же, как и для простого цикла каждого из этих видов. Но при использовании вложенных циклов  необходимо соблюдать следующее условие: внутренний цикл должен полностью укладываться в циклическую часть внешнего цикла.

 

  1. Решение задач.

Задача 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.

 

  1. Итог урока.

 

5. Домашнее задание.

  1. Найти все целочисленные решения системы

  2. Найти все трехзначные числа, у которых сумма кубов его цифр равна самому числу.

  3. Определить количество трехзначных натуральных чисел, сумма цифр которых равна целому числу 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.

  1. Найти все двузначные числа, которые делятся на 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.

bottom of page