Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы Turbo




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

 

1.1. Простые операторы

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

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

Например, для оператора Rezult:=A div B; сначала выполняется целочисленное деление значения переменной Ф на значение переменной В, а затем результат присваивается переменной Rezult.

Оператор безусловного перехода (go to) означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор.

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

Например:

ClrScr; {вызов стандартной процедуры очистки экрана}

InitWork (True); {вызов пользовательской процедуры}.

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

label Metka;

begin

go to Metka; {переход в конец блока}

Metka: {пустой оператор помечен меткой}

End

 

1.2. Структурные операторы

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

Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end.

Условные операторы предназначены для выбора к исполнению одного из возможных действий (операторов) в зависимости от некоторого условия (при этом одно из действий может быть пустым, т.е. отсутствовать). В качестве условий выбора используется значение логического выражения. В Turbo Pascal имеются два условных оператора: if и case.

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

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

Для графического изображения ветвления используется блоки, приведённые на рис. 4.1.

 

 

Рисунок 1. Блок схемы алгоритма принятия решения

 

В ромбе, как правило, записывается условие, на основе которого производится выбор ветви, в которой будет выполняться оператор. В качестве условия могут использоваться операции сравнения, логические операции или переменные логического типа Boolean. При истинности условия (True) выполняется оператор в ветви с надписью "да". "Оператор 2" будет выполнен, если условие примет ложное значение (False). На рис. 4.1 (б) при ложности условия не будет выполнен ни один оператор, такой блок часто называют "обход"

Для записи на языке программирования Pascal ветвящихся вычислительных процессов используется условный оператор:

If <условие> then <оператор_1> else <оператор_2>;

где If, then, else - служебные слова; <условие> - логическое выражение.

 

Эта форма условного оператора приемлема для алгоритма изображённого на рис. 1 (а). При истинности условия, выполняется <оператор_1>, записанный за служебным словом then, в противном случае - <оператор_2>, следующий за служебным словом else.

Допускается использовать сокращённую форму записи условного оператора:

If <условие> then <оператор>;

Данная форма приемлема для алгоритма изображённого на рис. 4.1 (б). Оператор, следующий за служебным словом then, будет выполнен при истинном условии, в противном случае управление передаётся на следующий по порядку оператор.

Допускается использование вложенных условных операторов. При этом после служебных слов then или else записывается очередной условный оператор. Однако необходимо помнить следующее правило - каждому служебному слову else соответствует предыдущее служебное слово then. Степень вложенности неограниченна.

При необходимости выполнить более одного оператора при истинности или ложности условия необходимо использовать составной оператор (его ещё называют операторные скобки). Составной оператор начинается, как и тело программы, служебным словом begin, заканчивается служебным словом end, за которым ставится "; ", между ними записываются операторы, которые необходимо выполнить. Количество операторов, объединяемых составным оператором неограниченно.

begin

<Оператор_1>;

<Оператор_2>;

<Оператор_3>;

<Оператор_N>;

end;

Логические операции

Переменным логического типа можно присвоить результаты операций отношений. Результат операций отношений всегда равен True или False. Как уже было отмечено выше, в качестве условия могут использоваться логические операции. Помимо операций отношений в Pascal существует четыре вида логических операций, которые применимы к переменным логических типов.

Значения логического выражения при использовании бинарной логической операции конъюнкции (And) приведены в таблице 1.

Таблица 1 - Логическая операция конъюнкция

Значение операндов Результат операции
A B A and B
True True True
True False False
False True False
False False False

 

Значения логического выражения при использовании бинарной логической операции дизъюнкции (Or) приведены в таблице 2.

 

Таблица 2 - Логическая операция дизъюнкция

Значение операндов Результат операции
A B A or B
True True True
True False True
False True True
False False False

Значения логического выражения при использовании бинарной логической операции дизъюнкции (Xor) приведены в таблице 3.

 

Таблица 3 - Логическая операция исключающее ИЛИ

Значение операндов Результат операции
A B A xor B
True True False
True False True
False True True
False False False

 

 

Четвёртая унарная логическая операция отрицания (Not) инвертирующая (изменяющая на противоположное) значение операнда приведена в таблице 4.

Таблица 4 - Логическая операция отрицания

Значение операндов Результат операции
A not A
True False
False True

 

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

Например:

(A<=B) and (B>C) or (A<>D). При значении переменных A=10, B=15, C=20, D=25 значение всего выражения равно True. (A<=B) - истинно, (B>C) - ложно, (A<=B) and (B>C) - ложно, (A<>D) - истинно.

 

(A<=B) or (B>C) xor (A<>D). При значении переменных A=10, B=15, C=20, D=25 значение всего выражения равно False. (A<=B) - истинно, (B>C) - ложно, (A<=B) or (B>C) - истинно, (A<>D) - истинно.

not (A<=B) or (B>C). При значении переменных A=10, B=15, C=20 значение всего выражения равно False.

(A<=B) or not(B>C). При значении переменных A=10, B=15, C=20 значение всего выражения равно True.

В логических выражениях принят следующий порядок выполнения операций:

- Not;

- And, *, Div, Mod, /;

- Or, Xor, +, -;

- все операции сравнения.

Пример 4.1. Определить большее из двух целых чисел A и B.

Блок-схема алгоритма решения задачи:

Program Example_4_1;

Var A, B: Integer;

Max: Integer;

Begin

Write ('Введите значение A = '); ReadLn (A);

Write ('Введите значение B = '); ReadLn (B);

If A>=B then Max:=A else Max:=B;

WriteLn ('большее из двух целых чисел A и B: ',Max)

End.

 

Пример 4.2. Определить принадлежит ли вводимое с клавиатуры значение A интервалу [0..9].

Блок-схема алгоритма решения этой задачи аналогична примеру 4.1.

Program Example_4_2;

Var A: Real;

Max: Integer;

Str: String;

Begin

Write ('Введите значение A = '); ReadLn (A);

If (A>=0) and (A<=9) then Str:='принадлежит'

else Str:='не принадлежит';

WriteLn ('Значение A ',Str,' отрезку [0..9]')

End.

Пример 4.3. Значения переменных X, Y, Z вводятся с клавиатуры. Если X Y Z, то все значения возвести в квадрат, при X >Y >Z каждое из них разделить на 2, в противном случае изменить знаки чисел. Изменённые значения переменных вывести на экран.

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

Блок-схема алгоритма решения задачи:

Program Example_4_3;

Var X,Y,Z:Real;

Begin

Write ('Введите значение X,Y,Z');

ReadLn (X,Y,Z);

If (X<=Y)and(Y<=Z) then

begin

X:=Sqr(X); Y:=Sqr(Y); Z:=Sqr(Z)

end

else If (X>Y)and(Y>Z) then

begin

X:=X/2; Y:=Y/2; Z:=Z/2

end

else

begin

X:= -X; Y:= -Y Z:= -Z

end;

WriteLn('X=', X, ' Y=', Y, ' Z=', Z)

End.

 

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

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

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

Приведем некоторые примеры оператора варианта:

Case Operat of

plus: X:= X+Y;

minus: X:= X-Y;

times: X:= X*Y;

End;

Case I of

0, 2, 4, 6, 8: Writeln('Четная цифра');

1, 3, 5, 7, 9: Writeln('Нечетная цифра');

10..100: Writeln('Между 10 и 100');

 




Поделиться с друзьями:


Дата добавления: 2015-06-04; Просмотров: 323; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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