Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Изменения контуров и сортировка в двумерном массиве чисел на Turbo Pasca...
База данных студентов на Turbo Pascal (Списки) + Пояснительная записка
База данных студентов на Delphi (файл записей) + Блок схемы

Вложенные операторы цикла


Если телом цикла является циклическая структура, то такие циклы называют вложенными. Цикл, содержащий в себе другой цикл, называют внешним, а цикл, содержащийся в теле другого цикла, называют внутренним. Внешний и внутренний циклы могут быть трех видов: циклами с предусловием while, циклами с постусловием repeat или циклами с параметром for.
Правила организации внешнего и внутреннего циклов такие же, как и для простого цикла каждого из видов. Но при программировании вложенных циклов необходимо соблюдать следующее дополнительное условие: все операторы внутреннего цикла должны полностью располагаться в теле внешнего цикла.
Рассмотрим пример простой задачи, решение которой предполагает использование вложенных циклов, — задачи вывода на экран таблицы умножения. С использованием цикла for вариант решения данной задачи может быть следующим:
program Tab__Umn1;
var
I,J : byte;
begin
for I:=1 to 10 do {Внешний цикл}
for J:=1 to 10 do {Внутренний цикл}
Writeln (I, ' * ', J, ' = ', I*J); {Тело внутреннего цикла}
end.



Проанализируем действие данной программы. В разделе описания переменных описываются переменные I, J целого типа byte, выполняющие функции управляющих переменных циклов for.
Выполнение программы начинается с внешнего цикла. При первом обращении к оператору внешнего цикла for вычисляются значения начального (1) и конечного (10) парамет-ров цикла и управляющей переменной I присваивается начальное значение 1.
Затем циклически выполняется следующее:
1. Проверяется условие 1<= 10.
2. Если оно соблюдается, то выполняется оператор в теле цикла, т. е. выполня-ется внутренний цикл.
2.1. При первом обращении к оператору внутреннего цикла for вычисляются значения начального (1) и конечного (10) параметров цикла и управляющей переменной J присваивается начальное значение 1.
Затем циклически выполняется следующее:
2.2. Проверяется условие J<=10.
2.3. Если оно удовлетворяется, то выполняется оператор в теле цикла, т. е. оператор Writeln (I, ' * ', J, ' = ', I*J), выводящий на экран строку табли-цы ум¬ножения в соответствии с текущими значениями переменных I и J.
2.4. Затем значение управляющей внутреннего цикла J увеличивается на единицу и оператор внутреннего цикла for проверяет условие J<=10. Если условие соблюдается, то выполняется тело внутреннего цикла при неизменном значении управляющей переменной внешнего цикла до тех пор, пока выполняется условие J<= 10.
Если условие J<=10 не удовлетворяется, т. е. как только J станет больше 10, оператор тела цикла не выполняется, внутренний цикл завершается и управление в программе передается за пределы оператора for внутреннего цикла, т. е. на оператор for внешнего цикла.
3. Значение параметра цикла I увеличивается на единицу, и проверяется условие 1<=10. Если условие 1<=10 не соблюдается, т. е. как только I станет больше 10, оператор тела цикла не выполняется, внешний цикл завершается и управление в программе передается за пределы оператора for внешнего цикла, т. е. на оператор end, и программа завершает работу.
Таким образом, на примере печати таблицы умножения наглядно видно, что при вложении циклов изменение управляющей переменной вложенного цикла проходит полный цикл от начального до конечного значения при неизменном значении управляющей переменной внешнего цикла, затем значение управляющей переменной внешнего цикла изменяется на единицу и опять изменение параметра внутреннего цикла претерпевает изменения от начального до конечного значения с шагом, равным единице. И так до тех пор, пока значение параметра внешнего цикла не станет больше конечного значения, определенного в операторе for внешнего цикла.
Опубликовал Kest April 03 2010 17:48:02 · 1 Комментариев · 21561 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Елена February 02 2012 08:40:15
в таблице умножения участуют цифры от 1 до 9. Я бы в качестве конечных параметров I и J использовала бы 9
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Моделирование дви...
Стелтинг Стивен, ...
Работа с картотеками
Run
MpegPlay
LaserTank [Исходн...
DeleteEdit
CoolControls v3.0...
Применение фильтр...
Искусство програм...
С. Г. Горнаков - ...
CoolDev TipsSyste...
Assistant
Черный круг двига...
Шифрование по алг...
Progressbar
Dealer
PHP 5
Delphi 2005. Разр...
100 компонентов о...

Топ загрузок
Приложение Клие... 100793
Delphi 7 Enterp... 98030
Converter AMR<-... 20298
GPSS World Stud... 17060
Borland C++Buil... 14244
Borland Delphi ... 10376
Turbo Pascal fo... 7392
Калькулятор [Ис... 6082
Visual Studio 2... 5232
Microsoft SQL S... 3674
Случайные статьи
Где мы находимся?
Анализ слов
Класс Worker в кон...
Профилирование XHT...
Логичность и миним...
Фильтрация таблиц ...
Игровые автоматы. ...
Модификации с бесп...
WDTABLE (РАЗНОСТНА...
Секреты: принцип р...
сканирование
Вы используете кли...
Иерархии настраива...
Официальный сайт к...
Линии не имели общ...
Перепелиный комбикорм
Описание абстрактн...
однасторона
Файл main.срр — пр...
Произвольные фигуры
Нуждается ли комму...
Что такое Introslo...
Depósito e l...
Занимают ли таблиц...
Проблемы, связанны...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?