© М.Е.Макарова http :// uchinfo . com . ua
- Что такое вложенные циклы.
- Как они применяются в программах.
- Как можно сократить количество повторений цикла.
- Для чего используются команды цикла?
- Как записывается команда цикла FOR ?
- Как в цикле записать команду присваивания, чтобы она вычисляла сумму чисел? Количество?
- Какое начальное значение должно быть у переменной, в которой накапливаем произведение чисел?
- Как записывается команда цикла, в которой счетчик цикла уменьшается?
- Можно ли изменять значение верхней границы цикла в теле цикла?
- Можно ли в теле цикла использовать команду сравнения?
Цикл называется вложенным , если он находится в теле другого цикла.
for i :=0 to n do
begin
for j :=0 to m d o
begin
for k :=0 to w do
begin
end;
end;
end;
Внутренний цикл должен полностью находиться в теле внешнего цикла.
Цикл j
Цикл k
Цикл i
Сколько можно купить быков, коров и телят, если бык стоит 10 рублей, корова -5 рублей, теленок – 0,5 рубля и на 100 рублей надо купить 100 животных.
Решение
B – количество быков
K - количество коров
T - количество телят.
После этого можно записать два уравнения:
10b+5k+0,5t=100 b+k+t=100 ,
Преобразуем их:
20b+10k+t=200 b+k+t=100
На 100 рублей можно купить:
- Не больше 10 быков, 0 ≤ b ≥10
- Не больше 20 коров , 0 ≤ k ≥20
- Не больше 200 телят , 0 ≤ t ≥200
Program Pokupka1;
Uses Crt;
Var b, k, t:integer;
Begin
Clrscr;
for b:=0 to 10 do
for k:=0 to 20 do
for t:=0 to 200 do
if (20*b+10*k+t=200) and (b+k+t=100)
then
writeln('Bkov ',b,' korov ',k,' telyat ', t);
readln;
end.
Сколько раз будет проверяться условие в данной программе?
Значение b изменяется 11 раз – от 0 до 10;
k - 21, t - 201 Таким образом, условие будет проверяться 11*21*201 = 46431 раз .
11*21*201 = 46431
Если известно количество быков и коров, то количество телят можно вычислить по формуле:
t:=100-(b+k);
Цикл по переменной t можно исключить.
Количество повторений проверки условия становиться 11*21=231
Program Pokupka2;
Uses Crt;
Var b, k, t:integer;
Begin
Clrscr;
for b:=0 to 10 do
for k:=0 to 20 do
begin
t:=100-(b+k);
if 20*b+10*k+t=200
then
writeln('Bkov ',b,' korov ',k,' telyat ', t);
end;
readln;
end.
В кассе есть монеты по 2, 5 и 10 копеек. Сколькими способами можно выдать сдачу на некоторую сумму Sum ?
Program S dacha;
Uses Crt;
Var Sum, Xmax, Ymax, Zmax, x, y, z, p:integer;
Begin
Clrscr;
Writeln ('Vvedite Summu'); Readln (Sum); p:=0;
Xmax:=Sum div 2; Ymax:=Sum div 5; Zmax:=Sum div 10;
Writeln (' 2 5 10 Vsego monet');
Writeln ('______________________');
for x:=0 to Xmax do
for y:=0 to Ymax do
for z:=0 to Zmax do
if 2*x+5*y+10*z=Sum
then
begin
writeln(x:3,y:3,z:3,x+y+z:8);
p:=p+1;
end;
If p=0 then writeln('Variantov net')
else writeln ('Vsego ', p,' variantov');
readln;
end.
СТО, СОТ и ТОС – трехзначные числа.
Определить цифры С, Т и О и вывести их на экран
СТО =С*100+Т*10+О
Program Summa ;
Uses Crt;
Var c, t, o, p, Cto, Toc, Cot:integer;
Begin Clrscr;
Writeln (' CTO+COT=TOC');
Writeln;
for c:=1 to 9 do
for t:=1 to 9 do
for o:=0 to 9 do
begin
Cto:=c*100+t*10+o;
Cot:=c*100+o*10+t;
Toc:=t*100+o*10+c;
if Cto+Cot=Toc then
begin
writeln(Cto:4,Cot:4,Toc:4);
p:=p+1;
end;
End;
If p=0 then writeln('Variantov net')
else writeln ('Vsego ', p,' variantov');
readln; end.
- Какой цикл можно назвать вложенным?
- Какие правила записи вложенных циклов?
- Могут ли циклы «пересекаться» друг с другом?
- Для чего нужно стараться сократить количество повторений циклов?
1. Определить сколько существует «счастливых» автобусных билетов в одной серии с номерами от 000000 до 999999.
«Счастливым» считается билет, сумма первых трех цифр которого равна сумме вторых трех цифр.
2. С клавиатуры вводится 10 различных произвольных чисел.
а) Найти разность между наибольшим и наименьшим из них.
б) Порядковый номер наибольшего и наименьшего числа.
3. Вычислить:
Эту задачу нужно решать с конца, т.е., использовать цикл с уменьшающимся счетчиком.
1. Выучить § 21.
2. Стр. 142 № 11
3. Написать программу, которая выводит на экран квадрат Пифагора – таблицу умножения.
1
1
2
2
1
3
3
2
2
. . .
3
4
3
4
9
4
6
5
6
5
9
6
8
9
6
7
12
18
10
27
8
7
15
12
8
36
9
14
18
16
45
9
21
10
54
24
10
18
63
27
20
72
30
81
90

Вложенные циклы_Составление программ (118.5 KB)

