Цикл в цикле
В теле цикла могут быть самые различные операторы. Мы уже познакомились со случаем, когда внутри цикла используется условный оператор. Сейчас мы познакомимся с более сложным и более интересным вариантом, когда внутри одного цикла находится другой цикл.
Начнём знакомство с составления программы, которая выводит на экран числа от 10 до 29. Выпишем сначала все эти числа в ряд:
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Посмотрите внимательно! Замечаете закономерность? Сначала увеличиваються единицы от 0 до 9, при этом значение десятков не меняется. Только когда перебор единиц завершён, десятки увеличились на 1. После этого опять пошли плясать подряд единицы.
Давайте отразим поведение десяток и едениц в составляемой программе. В переменной a – у нас будут десятки, в b – единицы:
for a := 1 to 2 do
for b := 0 to 9 do
begin
s := a*10 + b;
writeln (s)
end;
Вот они: вложенные циклы! Как только начал выполнение первый цикл “для а”, тут же началось выполнение цикла “для b”. И пока этот внутренний цикл не выполнится (в маленьком прямоугольнике), внешний цикл не продолжит выполнение.
Как вы думаете, сколько всего раз выполниться содержимое маленького прямоугольника? А содержимое большого?
Попробуйте на основе этого примера самостоятельно составить программу, которая выведет на экран числа от 27 до 49, причём чтобы единицы принимали только значения от 7 до 9. То есть на экран должны буть выведены следующие числа:
27 28 29
37 38 39
47 48 49
Теперь несколько небольших заданий на эту тему.
Сколько раз выполниться оператор writeln внутри следующих циклов:
for i := 1 to 5 do
for j := 5 to 10 do
begin
writeln (i+j)
end;
Сколько раз выполнится оператор := внутри следующих циклов:
a := 0;
while a <= 5 do
while a <= 10 do
a := a + 1;
Сколько раз выполнится оператор := внутри следующих циклов:
a := 0;
while a <= 10 do
while a <= 20 do
a := a + 1;
Сколько раз выполнится оператор := внутри следующих циклов:
a := 0;
while a <= 20 do
while a <= 10 do
a := a + 1;
Найти все двузначные числа, которые делятся на сумму своих цифр. Решить, используя вложенные циклы.
- Лекции по Turbo Pascal 7.0
- 1 Курс, «Информатика»
- Интегрированная среда Turbo Pascal 7.0
- Первый шаг
- Создание нового файла
- Набор и редактирование текста программы
- Клавиши перемещения курсора
- Клавиши для редактирования текста:
- Сохранение и открытие программ
- Запуск программы
- Завершение работы
- А теперь, когда вы уже знаете, как набирать и запускать программы на компьютере, начнём изучать язык паскаль.
- Первая программа
- Краткая история
- Что такое программа?
- Зарезервированные слова
- Переменные
- Константы
- Стандартные математические операции
- В информатике, как и в математике, на ноль делить нельзя!
- Оператор присваивания
- Пример программы
- Операторы ввода и вывода.
- Оператор ввода Readln
- Оператор вывода Write
- Самостоятельные задания
- Работа с цифрами
- Выделение цифр числа
- Конструирование числа по его цифрам
- Обобщение
- Самостоятельные задания
- Условный оператор
- Что такое условие?
- Укороченный вариант условного оператора
- Составной оператор
- Составные условия
- “Защита от дурака”
- Вложенные условные операторы
- Оператор выбора Case
- Самостоятельные задания
- Стандартные типы переменных
- Общий обзор стандартных типов.
- Целые типы
- Вещественные типы
- Способ записи вещественных чисел
- Вывод на экран вещественных чисел
- Точность и диапазон вещественных чисел различных типов
- Вещественные функции
- Линейная запись математических выражений
- Логический тип
- Символьные типы
- Стандартные функции для работы со строками
- Стандартные функции для типа char
- Подпрограммы
- Зачем нужны подпрограммы?
- Процедуры
- Аргументы процедуры
- Результаты процедуры
- Функции
- Самостоятельные задания
- Цикл For
- Руками не трогать!
- Нахождение суммы
- Нахождение произведения
- Нахождение количества
- Цикл While ... Do
- Цикл Repeat ... Until
- 2.7. Самостоятельные задания
- Цикл в цикле
- Натуральные числа
- Делители чисел
- Самостоятельные задания.
- Простые числа
- Самостоятельные задания.
- Наибольший общий делитель двух чисел.
- Самостоятельные задания.
- Наименьшее общее кратное двух чисел
- Самостоятельные задания.
- Массивы
- Определение и примеры
- Операции с элементами массива
- Анализ информации в массиве
- Рекуррентные соотношения
- Самостоятельное задание
- Последовательность Фибоначчи
- Другие рекуррентные последовательности
- Оптимизация программ
- Задача про интеллигентного студента.
- Самостоятельные задания
- Оформление программ
- Понятие модуля
- Управление цветом
- Управление звуком
- Опрос клавиатуры
- Управление курсором.
- Дополнительные задачи и вопросы
- Теоретические вопросы
- Практические задачи
- Условия
- Ряды и рекуррентные последовательности
- Просмотр всех команд меню
- Команды меню File
- Команды меню Edit
- Команды меню Search
- Команды меню Run
- Команды меню Compile
- Команды меню Debug
- Команды меню Options
- Команды меню Window
- Команды меню Help
- Синтаксические ошибки
- Ошибки выполнения
- Логические ошибки
- Средства отладки
- Пошаговый режим работы программы
- Просмотр/изменение переменных
- Окно Watch
- 1. Теоретическая часть
- 1.1. Понятие алгоритма и его свойства.
- 1.2. Культура программирования
- 1.3. Устройство компьютера и его компоненты.
- 1.4. Информация
- 1.5. Логика
- 1.6. Системы счисления
- 1.7. Арифметические действия с двоичными числами
- 1.8. Информационные взаимодействия – коммуникации
- 1.9. Информационная революция
- 1.10. Компьютеры и информационное общество.
- 1.11. Польза и опасности компьютеризации.
- 1.12. Киберфобия.
- 1.13. Компьютеры и будущее
- 1.14. Понятие информационного моделирования.
- 2. Толковый словарик