русс | укр

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

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

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

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


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

Понятие о цикле


Дата добавления: 2013-12-23; просмотров: 942; Нарушение авторских прав


End.

.................

GOTO 5;

.................

LABEL 25, 0, Loop, 21, lab1;

ELSE

Begin IF условие 2 THEN оператор 1 ELSE оператор 2 end;

ELSE оператор 2;

Begin IF условие 2 THEN оператор 1 end

Создание сложных разветвлений алгоритма

Сокращенный условный оператор

Полный условный оператор

Блок-схему полного условного оператора можно представить так: полной формы.

Рисунок 10. Блок-схема условного оператора

В общем виде полный условный оператор выглядит следующим образом:

IF Логическое выражение THEN Оператор1 ELSE Оператор2 ;

Эта запись читается следующим образом: "если логическое выражение справедливо, то выполняется первый оператор, если ложно - второй оператор". Операторы 1 и 2 могут быть простые или составные. Точка с запятой перед словом ELSE не ставится.

Примеры полных условных операторов:

IF x<0 THEN i:=i+1 ELSE j:=j+1;

IF (x<y) AND (x<>0) THEN begin x:=y/x; y:=y+k end ELSE begin x:=x+0.01; y:=y-k end;

 

Блок-схему сокращенного условного оператора можно представить так:

Рисунок 11. Блок-схема условного оператора сокращенной формы.

В общем виде сокращенный условный оператор выглядит следующим образом:

IF Логическое выражение THEN Оператор ;

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



Примеры использования условного оператора в сокращенной форме:

IF x>y THEN Max:=x;

IF x<>0 THEN begin a:=y/x; Writeln('A= ', a:6:2) end;

 

Операторы, включаемые в условный оператор, в свою очередь также могут быть условными:

IF Логическое выражение THEN Оператор 1 ELSE Оператор 2 ;

Использование таких условных операторов, "вложенных" один в другой, требует осторожности, чтобы не запутаться в их структуре. Например, условный оператор

IF условие 1 THEN IF условие 2 THEN оператор 1 ELSE оператор 2;

можно истолковать двояко:

1) IF условие 1 THEN

2) IF условие 1 THEN

По правилам языка Паскаль имеет место 2-я трактовка, т.е. считается, что каждое слово ELSE соответствует первому предшествующему ему слову THEN. Во избежание ошибок рекомендуется четко выделять желаемую форму условного оператора с помощью операторных скобок begin ... end :

IF j<>0 THEN

begin IF x<0 THEN x:=x-1 end

begin IF x<y THEN x:=x+0.5 ELSE y:=y+0.5 end;

Приведем пример программы, использующей условный оператор.

Program Primer1; Uses Crt; Var x,y,z:Real; Begin TextColor(Yellow); TextBackGround(Blue); ClrScr; Write('x= '); Readln(x); Write('y= '); Readln(y); IF x<0 THEN IF x>y THEN z:=x ELSE z:=y ELSE IF x<y THEN z:=x ELSE z:=y; Writeln('z= ',z:6:2); Readln End.

 

 

4.2.5. Оператор перехода. Пустой оператор

В Паскале принят естественный порядок выполнения операторов, т.е. операторы обычно выполняются в порядке их следования в тексте программы. Между тем ОПЕРАТОР ПЕРЕХОДА позволяет задавать любой желаемый порядок выполнения вычислений.

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

GOTO Метка ;

Любой оператор в программе может быть помечен, т.е. снабжен меткой, которая предшествует оператору и отделяется от него двоеточием:

МЕТКА : ОПЕРАТОР ;

Метка может иметь произвольное имя, в качестве меток также допускается использовать целые числа без знака. Используемая в программе метка должна быть описана в блоке LABEL раздела описаний. Если в программе несколько меток, то в блоке LABEL они приводятся в виде списка, отделяясь друг от друга запятыми:

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

Следует помнить, что частое использование оператора перехода ухудшает наглядность программы, затрудняет ее понимание и отладку. Еще в марте 1968г. на эту тему была опубликована историческая статья голландского программиста Эдсгера Дейкстри "GOTO Statement Considered Harmful" ("о вреде оператора GOTO"). Использование оператора перехода обосновано лишь в отдельных случаях, например для досрочного выхода из цикла или перехода в конец программы для окончания ее работы:

Program Primer; LABEL 25; VAR N,S:Real; Begin Readln(S); Readln(N); IF N<0 THEN begin S:=N+2; GOTO 25 end; ..................... 25: Writeln('S= ',S:6:2) End.

ПУСТОЙ ОПЕРАТОР не предписывает никаких действий, он представляет собой пустую последовательность символов (т.е. отсутствие символов). Как и обычные операторы, пустой оператор может быть помечен меткой. Пустой оператор отделяется от других операторов точкой с запятой.

Наиболее часто пустой оператор используется для того, чтобы поместить в программе "точку", на которую должен осуществляться переход по оператору перехода, но при этом не надо выполнять никаких дополнительных действий; например, надо просто выйти из программы - для этого ставим пустой оператор с меткой перед словом end:

Пустой оператор может быть полезен еще в одном: в Паскале оператор может быть помечен только одной меткой, но если перед некоторым помеченным оператором дополнительно поставить помеченный пустой оператор, то на это место программы можно будет ссылаться по любой из 2-х меток:

1:; 2: A:=B+C;

4.2.6. Комментарии

При программировании желательно вставлять в текст создаваемой программы КОММЕНТАРИЙ - несколько фраз, поясняющих суть выполняемых программой действий. В ходе трансляции текста программы компилятор обходит комментарии, не принимает их во внимание и не включает в исполняемые коды программы. Единственное назначение комментария - служить справочной информацией для человека, читающего текст программы. Отсутствуют универсальные правила для определения мест, где следует располагать комментарии. Размещение и содержание комментариев в основном зависит от личных представлений программиста. Грамотно представленные комментарии позволяют ответить на большинство вопросов, возникающих при знакомстве с текстом программы: что делает данная программа, что обозначает каждая переменная, какова цель данного оператора, и т.д. В Паскале комментарии создаются обрамлением с обоих сторон какой-нибудь текстовой строки условными символами { } или (* *), например:

{ В этом месте программа ожидает ввода числа }

или

(* Конец раздела описаний, начинаем основную программу *).

 

4.2.7. Оператор цикла

При разработке алгоритмов решения большинства задач возникает необходимость многократного повторения однотипных команд. Такой повтор может быть реализован с помощью уже знакомых нам оператора перехода и условного оператора. Предположим, что требуется пять раз вывести на экран слово "ЦИКЛ". Составим соответствующую программу:

Program Primer; Uses Crt; Label Loop; Var i:Integer; {Эта переменная будет использоваться в качестве} {счетчика повторов} Begin TextColor(Yellow); TextBackGround(Blue); ClrScr; {Настроили цвет, очистили экран} i:=1; {Установили начальное значение счетчика} Loop: IF i<=5 THEN Begin Writeln('ЦИКЛ'); i:=i+1; { Значение переменной- счетчика увеличиваем на единицу } GOTO Loop {Повторяем алгоритм от метки LOOP до тех пор,} {пока значение счетчика не превысит 5} End; Readln End.

Напомним, что частота использования оператора GOTO обратно пропорциональна квалификации программиста. Поэтому для организации в программах повторов однотипных команд, подобных приведенному выше примеру, язык Паскаль предлагает в замен оператора GOTO специализированные операторы повтора, называемые операторами цикла. В Паскале имеется три разновидности оператора цикла: цикл с параметром, цикл с предусловием и цикл с постусловием.



<== предыдущая лекция | следующая лекция ==>
Операторы ввода-вывода | Оператор цикла с параметром


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


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

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

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


 


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

 
 

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

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