Все о Pascal
Главная
Вход
Регистрация
Вторник, 26.11.2024, 04:38Приветствую Вас, программист Гость | RSS
Меню сайта

Категории раздела
Уроки Pascal [36]
Мемы - "Типичный программист" [1]
Задачи [10]
Заработок в интернете [14]
Олимпиадные задчи [1]

Наш опрос
Оцените мой сайт
Всего ответов: 249

Статистика

Форма входа

Главная » Статьи » Уроки Pascal

Урок 14.

 Лекция 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, 
Категория: Уроки Pascal | Добавил: yurabobr1 (13.11.2012)
Просмотров: 2150 | Комментарии: 3 | Теги: значение, число, writeln, сумма, цикл, переменный, тысяча, вывести, экран, цифра | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024