Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Операторы. Классификация операторов. Запись операторов.




 

Операторы:

· оператор присваивания;

· составной оператор;

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

· оператор выбора;

· операторы цикла for, while и repeat.

 

Оператор присваивания

Оператор присваивания имеет вид:

переменная:=выражение

Действие его заключается в том, что вычисляется значение выражения, стоящего справа от знака присваивания «:=», и оно присваивается переменной, стоящей слева от знака присваивания. При этом значение выражения должно иметь тип либо совпадающий с типом переменной, либо неявно к нему приводящийся. Например, типы byte и integer неявно преобразуются друг к другу, а также к типу real. Интервальный тип и его базовый тип неявно преобразуются друг к другу, неявно преобразуются между собой также интервальные типы, построенные на основе одного базового типа.

 

 

Составной оператор

Составной оператор предназначен для объединения нескольких операторов в один. Он имеет вид:

Begin

Операторы

End

Операторы отделяются друг от друга символом «;». Служебные слова begin и end, окаймляющие операторы, называются операторными скобками. Перед end также может ставиться «;». В этом случае считается, что последним оператором перед end является пустой оператор, не выполняющий никаких действий.

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

 

Структурное обозначение следующее:

 

 

Условный оператор имеет полную и краткую формы.

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

 

if условие then оператор1 else оператор2;

 

В качестве условия указывается некоторое логическое выражение. Если условие оказывается истинным, то выполняется оператор1, в противном случае выполняется оператор2. Например, следующий фрагмент находит максимум значений двух переменных a и b:

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

 

Краткая форма условного оператора имеет вид:

if условие then оператор;

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

if a>b then

Begin

m:=a;

a:=b;

b:=m

End;

В случае конструкции вида

if условие1 then

if условие2 then оператор1

else оператор2;

 

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

if условие1 then

Begin

if условие2 then оператор1

End

else оператор2;

 

Для иллюстрации приведем фрагмент программы решения уравнения ax + b = 0.

if a=0 then

if b=0 then writeln(‘x – любое число’)

else writeln(‘Корней нет’)

Else

Begin

x:= –b/a;

writeln(‘x = ’,x:8:3)

End;

 

 

Оператор выбора

 

Структурное обозначение следующее:

 

 

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

case переключатель of

список выбора 1: оператор1;

...

список выбора N: операторN;

else оператор

End;

 

Переключатель представляет собой выражение порядкового типа (целого, символьного, перечислимого или интервального), а списки выбора содержат константы совместимого типа. Как и в операторе if, ветка else может отсутствовать.

Оператор case работает следующим образом. Если в одном из списков выбора найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку. Если же значение переключателя не найдено ни в одном списке, то выполняется оператор по ветке else или, если ветка else отсутствует, оператор case не выполняет никаких действий.

Список выбора состоит либо из одной константы, либо из диапазона значений вида a..b (константа a должна быть меньше константы b); можно также перечислить несколько констант или диапазонов через запятую:

 

Case DayOfWeek of

1..5: writeln('Будний день');

6,7: writeln('Выходной день');

End;

 

Списки выбора не должны пересекаться. Например, следующий фрагмент

Case i of

Write(1);

Write(2);

End;

приведет к ошибке компиляции «Пересечение диапазонов меток в операторе case».

 

Оператор цикла for

Оператор цикла for имеет одну из двух форм:

for переменная:= начальное значение to конечное значение do

Оператор

или

for переменная:= конечное значение downto начальное значение do

Оператор

 

Структурное обозначение следующее:

 

Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do – телом цикла. Переменная после слова for называется параметром цикла. Если в цикле необходимо выполнить группу операторов, то ее следует заключить в операторные скобки begin … end. Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto – уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла.

Если для цикла for … to начальное значение его переменной больше конечного значения или для цикла for … downto начальное значение переменной меньше конечного значения, то тело цикла не выполнится ни разу.

Изменение переменной-параметра цикла внутри цикла является логической ошибкой. Например, следующий фрагмент со вложенным оператором for является ошибочным:

for i:=1 to 10 do

for i:=1 to 5 do write(i);

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

Var

en: (red,green,blue,white);

c: char;

...

for en:=red to blue do write(Ord(en):2);

for c:='a' to 'z' do write(c);

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных