Лекция 3.Вложенные циклы FOR. автор: Садовский Ефим Моисеевич 1. Повторение. Цикл For. Общий вид. Недостатки.
2. Вложенные циклы FOR. Один из приемов легкого решения целого класса стандартных задач. Вложенные циклы for применяются в том случае, если необходим полный перебор вариантов, зависящих от нескольких переменных. Рассмотрим несколько примеров. Пример 1. Вывести на экран таблицу умножения в виде: 1х1=1 1х2=2 1х3=3 … 9х9=81 Обратите внимание, что от 1 до 9 изменяется значение двух множителей, поэтому решение будет выглядеть так:program primer1;
var a,b,c:integer;
begin
for a:=1 to 9 do
for b:=1 to 9 do
begin
c:=a*b;
writeln(a,'x',b,'=',c);
end;
end. Сначала значение а=1, а переменная b принимает значения от 1 до 9, затем значение а увеличивается на 1, а b опять перебирается от 1 до 9. Цикл выполнится 9*9=81 раз. Вопрос: Почему нельзя написать сразу for a:=1 to 81 do ? Ответ: Потому что нам необходимо, чтобы от 1 до 9 изменялось значение двух переменных.
Пример 2: Вывести на экран все трехзначные числа, сумма цифр которых равна N. Пытаться перебирать все трехзначные числа от 100 до 999, затем каким-то образом делением и вычитанием выделять отдельные цифры, искать их сумму, сравнивать с N достаточно сложно. Попробуем решить задачу, исходя из того, что трехзначное число состоит из 3 цифр, причем первая изменяется от 1 до 9, а вторая и третья – от 0 до 9.program primer1;
var i,j,k,n:integer;
begin
write('Введите N=');
readln(n);
for i:=1 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
if i+j+k=n then writeln(i,j,k);
end. Оператор writeln(i,j,k) выводит на экран три цифры без пробела, поэтому они на экране выглядят как одно число. Хотя можно было вывести, учитывая, что i-сотни, j-десятки, k-единицы, и так: writeln(i*100+j*10+k);
3. Решение задач. 1. Вывести на экран все четырехзначные числа, у которых сумма цифр кратна 9. 2. Сколько существует «счастливых» четырехзначных билетов? Счастливым считается билет, у которого сумма первых двух цифр равна сумме двух последних. 3. Сколько раз в написании всех трехзначных чисел встречается цифра N? 4. Сколько существует способов выдачи банкоматом суммы S тысяч рублей, если в него заложены купюры по 5 тысяч, 10 тысяч и 50 тысяч рублей?
pascal, pascal, pascal, pascal, for pascal, for pascal, вложенные for, вложенные for, вложенные for,
|