Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

II Сложные (составные) операторы

Читайте также:
  1. IV. Выпишите из текста все сложные существительных и определите их род
  2. БЕССОЮЗНЫЕ СЛОЖНЫЕ ПРЕДЛОЖЕНИЯ
  3. Зонная теория проводимости. Простые и сложные полупроводники.
  4. Лекция_3. Основные операторы моделей объектов управления
  5. Несложные упражнения для всего отряда.
  6. Операторы ветвления в СИ.
  7. Операторы вызова функций
  8. Операторы объявления
  9. Операторы языка Паскаль

 

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

Несколько команд могут быть записаны в одной строке.

Begin

intCount :=12; a := 34; b:=a/intCount; c:=(a+b)/a; end;

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

Структуру условного оператора в общем виде можно записать следующим образом:

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

где IF, THEN, ELSE – служебные слова (Если … То … Иначе …); <Условие> произвольное выражение или переменная логического типа; <оператор1>, <оператор2> – произвольные операторы языка Object Pascal. Следует отметить, что если оператор1 является составным, а затем идет служебное слово else, то после завершающего его служебного слова end точка с запятой не ставится. Если же служебное слово else не используется, то точка с запятой должна быть.

Как же действует этот оператор? Вначале вычисляется значение условного выражения которое стоит между служебными словами IF и THEN. Если получается результат «истина» (True), то выполняется оператор следующий за служебным словом THEN, т.е. <оператор1>, а <оператор2> пропускается. Если же результатом вычисления будет «ложь» (False), то наоборот <оператор1> будет пропущен, а <оператор2> будет выполнен. Если вместо логического выражения будет использована переменная логического типа, то если она будет иметь значение True, то выполнится <оператор1>, а если ее значение будет равно False, то <оператор2>. Напишем оператор смены значения логической переменной.

Vark : Boolean;

Begin

IFk Then k := False Else k := True;

End;

если переменная k имеет значение «истина», то ей присваивается значение «ложно» и наоборот.

В качестве более серьезного примера использования условного оператора рассмотрим функцию, которая вычисляет арккосинус числа. Как известно, косинус не может быть больше единицы, поэтому арккосинус от числа больше единицы не существует. Именно это условие и проверяется в первом условном операторе. Если передаваемое в функцию число больше единицы, то логическое выражение принимает значение «истина» (True) и выполняется оператор стоящий после служебного слова ELSE.

Function arccos(x : Extended) : Extended;

Begin

IF ABS(x) > 1 THEN begin

MessageDlg('Wrong Number', mtConformation, mbOk); Exit;

end;

IF x=0 THEN arccos:=pi/2

ELSE arccos:=ArcTan(Sqrt(1-Sqr(x))/x) + Pi*Byte(x<0);

End;

Заметим, что наличие служебного слова ELSE вовсе не обязательно, что и показано в этом примере. Такая ситуация встречается, если какое-либо действие требуется выполнить если условие истинно, а если условие не истинно, то просто пропустить его и продолжить выполнение программы. При выполнении условия ABS(x) > 1 происходит выдача сообщения об ошибке и программа останавливается. Ясно, что если это условие не выполняется, то программа будет выполнять следующий оператор, поэтому наличие служебного слова ELSE здесь излишне. Второй условный оператор позволяет избежать ошибки при делении на нуль. Здесь уже служебное слово ELSE необходимо.

Так как <оператор1> и <оператор2> суть произвольные операторы, то они могут содержать в себе другие условные операторы, таким образом реализуется структура вложенных логических операторов.

IFa > b THEN begin

IFa > c Then

Begin

max := a;

IFb > c thenmin := c

elsemin := b; end

Else beginmax := c; min := b; end;

end{THEN}


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

1 | <== 2 ==> | 3 | 4 |


lektsii.net - Лекции.Нет - 2014-2020 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав