русс | укр

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

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

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

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


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

Краткие теоретические сведения


Дата добавления: 2015-01-16; просмотров: 502; Нарушение авторских прав


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

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

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

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

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

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

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



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

Общий вид оператора: goto n;

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

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

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

program P5;

label1,2;

vara, b: integer;

Begin

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

readln(a, b);

1:ifa = bthen goto2;

ifa > bthena: = a - b

elseb: = b - a;

goto1;

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

readln;

End.

Оператор цикла пока. Циклический процесс можно организовать без использования специальных операторов. Но удобнее с операторами циклапока,который имеет вид: whileусловиеdoоператор;

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

program P6;

vara, b:integer;

Begin

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

readln(а, b):

whilea<>bdo

ifa>bthena: = a - b

elseb: = b - a;

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

readln;

End.

Оператор цикла до. Проверка условия в цикле до осу­ществляется после выполнения оператора. Если условие в цик­лепока является условием продолжения повторений, то усло­вие в цикле до — условием выхода из цикла, его завершением. Поэтому для одной и той же задачи эти условия противопо­ложны. Общий вид оператора: repeat операторuntil условие;

Между словамиrepeat (повторить) иuntil (до тех пор пока) можно записать любое количество операторов без использова­ния операторных скобок. Перед словомuntil не ставится точ­ка с запятой.

Программа нахождения наибольшего общего делителя при­мет вид:

program P7;

var a, b:integer;

Begin

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

readln(a, b);

Repeat

if a > bthen a: = a - b;

ifb > athen b: = b - a

until a = b;

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



<== предыдущая лекция | следующая лекция ==>
Методические указания по работе и задания | Readln; end.


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


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

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

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


 


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

 
 

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

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