русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Организация циклов


Дата добавления: 2014-11-27; просмотров: 2738; Нарушение авторских прав


В своей практической деятельности человек постоянно сталкивается с задачами, при решении которых требуется многократно повторять одни и те же действия. Для составле­ния алгоритмов решения таких задач используются команды повторения (цикла).

Рассмотрим следующий пример. Пусть требуется опреде­лить остаток от деления числа М на число N (М и N — про­извольные натуральные числа). Самый простой способ реше­ния этой задачи заключается в следующем: проверяем, не меньше ли М, чем N (если М < N, то М и есть остаток от де­ления М на N); если М ≥ N, то уменьшаем значение М на значение N (т. е. вычитаем из М число N и дальнейшие дей­ствия осуществляем с результатом этой операции, который для удобства мы снова обозначим М); снова проверяем, не стало ли М меньше N, если не стало, то еще раз уменьшаем значение М на величину значения N и т. д.

Эти две операции (сравнения и вычитания) повторяются до тех пор, пока очередное значение М не станет меньше значе­ния N. Значение М в этот момент и будет остатком от деле­ния заданных вначале чисел.

Как видно, в этом примере несколько раз повторяется одна и та же последовательность действий.

Компьютер может заданное число раз выполнить одни и те же действия с разными данными. Повторяющиеся действия в программировании называются циклом. Если изобразить цикл в виде блок-схемы, то получатся две разные структуры (рис. 34). Цикл не может выполняться вечно, в этом случае нарушается свойство алгоритма решить задачу за конечное чис­ло шагов. Цикл заканчивается по какому-либо условию. Про­верка этого условия может производиться в начале каждого повторяющегося шага, в этом случае цикл называется пока.При проверке условия в конце каждого шага цикл называется до.Разновидностью цикла доявляется цикл пересчет.

99

Цикл до

Цикл пока



Рис. 34. Циклические структуры

В цикле покасначала проверяется условие, и если оно вы­полняется, т. е. логическое выражение истинно, то выполня­ется оператор и снова проверяется условие. Записанное в цикле покаусловие является условием продолжения цикла. Как только оно перестанет выполняться, цикл завершится. На рисунке 34 выход из ромба «+» (или да) означает выполнение условия цикла, «—» (или нет)— невыполнение. Цикл покане выполнится ни разу, если условие при входе в структуру ока­залось ложным. Как правило, цикл покасодержит условие повторения, а цикл до — условие окончания работы цикла. Обе структуры имеют один вход и один выход. Однако цикл довсегда выполняется хотя бы один раз, потому что условие проверяется после выполнения действия. Это затрудняет про­верку правильности программы, поэтому лучше использовать цикл пока.Оператор в цикле может быть простым или со­ставным, заключенным в операторные скобки. В этом случае в цикле могут повторяться несколько операторов, а не один. Повторяющиеся в цикле операторы называются телом цикла.

Циклы можно организовывать, используя различные сред­ства языка Паскаль.

Оператор безусловного перехода.Этот оператор позволяет перейти без проверки условия либо на один из предыдущих операторов, либо на один из последующих, т. е. изменить по­рядок выполнения команд. Общий вид оператора:

goto n;

где п — целое число, не более чем из четырех цифр, называе­мое меткой. Метка появляется в программе три раза: 1) в опи­сательной части в разделе Label; 2) в операторе goto;3) перед оператором, на который осуществляется безусловный пере­ход, в этом случае метка от оператора отделяется двоеточием.

Организация циклов с помощью операторов условного и без­условного переходов.Пусть требуется вычислить наибольший общий делитель двух натуральных чисел А и В. Воспользуемся алгоритмом Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равны.

Исходные данные Первый шаг Второй шаг Третий шаг НОД(А,В)=5
А=25 А=10 А=10 А=5  
В=15 В=15 В=5 В=5  

programE5;

label1,2;

var a, b: integer;

Begin

write('введите два натуральных числа');

readln(a, b); 1:

1: if a = b then goto 2;

if a > b then a: = a - b else b: = b - a;

goto 1;

2: write('НОД = ',a);

Readln

End.

Оператор цикла пока.Как видно из предыдущего примера, циклический процесс можно организовать без использования специальных операторов. Однако при составлении достаточно серьезных программ использовать оператор безусловного пе­рехода не рекомендуется, так как можно быстро запутаться при проверке программы. Оператор цикла покаимеет вид:

whileусловие do оператор;

и выполняется следующим образом: оператор (тело цикла) повторяется до тех пор, пока выполняется условие (истинно логическое выражение). Оператор может быть простым или составным, заключенным в операторные скобки begin ... end.Для алгоритма Евклида программа примет вид:

programE6;

var a, b: integer;

Begin

write('введите два натуральных числа');

readln(a, b);

whilea<>b do

ifa>b then a: = a - b elseb: = b - a;

write ('НОД= ', a);

readln;



<== предыдущая лекция | следующая лекция ==>
Условный оператор | End. 101


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.194 сек.