Главная

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

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

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

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

ТОР 5 статей:

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

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

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

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

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

КАТЕГОРИИ:






Разветвляющийся вычислительный процесс




Этот процесс в Pascal реализуется с помощью условного оператора. Синтаксис условного оператора:


If <Условие> then <Оператор 1>Else <Оператор 2>;


Такая структура условного оператора называется полной формой. Неполная форма условного оператора

Синтаксис


If <Условие> then <Оператор 1>;


Условный оператор может быть простым и составным.

Если после служебного слова then или else стоит не один, а несколько операторов, то они заключаются в операторные скобки (begin … end), и говорят, что такая форма условного оператора называется составной.


If < Условие > then Begin <Оператор 1>; <Оператор 2>; EndElse Begin <Оператор 3>; <Оператор 4>; End;


Если после then или else стоят операторные скобки begin – end, то выполняются действия описанные в них (все последующие операции).

У условного оператора есть вложенная форма или сложная форма. Это форма представляет собой конструкцию, которая содержит после then или else еще один условный оператор.


If <Условие 1> then If <Условие 2> then <Оператор 1> Else <Оператор 2>;Else If <Условие 3> then Begin <Оператор 3>; <Оператор 4>; End;

20. Условный оператор if может быть записан в полной и неполной формах, которые имеют следующий вид.

Неполная форма:

if <Выражение> then <Оператор>;

Полная форма:

if <Выражение> then <Оператор1> else <Оператор2>;

При выполнении условного оператора сначала вычисляется Выражение, результат которого может принимать только булевский тип, а затем, в зависимости от значения результата (True, False), выполняется Оператор1, стоящий после ключевого слова then (если результат равен True), или Оператор2, стоящий после ключевого слова else (если результат равен False).

В случае, когда оператор if записан в неполной форме, при значении результата False управление передается оператору, следующему непосредственно после оператора if, а Оператор1, стоящий за ключевым словом then, пропускается.

Начинающим программистам следует обратить внимание на рассматриваемые ниже синтаксические особенности оператора if.

Напомним, что в Object Pascal операторы разделяются символом; (точка с запятой). Это означает, что внутри любого структурного оператора символ ";" встречаться не должен, иначе все, что стоит после него, будет считаться другим оператором.

Пример с ошибкой:

if А >В then С: = А; <--- Ошибка!

else С: = В;

В показанном выше примере точка с запятой, стоящая перед ключевым словом else заканчивает текст оператора if. А это приводит к синтаксической ошибке, поскольку оператора, начинающегося с ключевого слова else в Object Pascalнет.

Чтобы не допускать таких ошибок целесообразно запомнить следующее правило:

Перед ключевым словом else символ ";" никогда не ставится.

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

begin

....

end

который позволяет интерпретировать группу операторов как один оператор.

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

Обобщенные формы простейшего случая оператора if приведены в таблице 1:

Таблица 1. Обобщенная форма оператора if
Количество операторов в ветви Обобщенная форма оператора if
then else
один один if <Выражение> then <Оператор1> else <Оператор2>;
несколько один if <Выражение> then begin <Оператор1>; <Оператор2>; .... <ОператорN>; end else <ОператорM>;
один несколько if <Выражение> then <Оператор> else begin <Оператор1>; <Оператор2>; .... <ОператорN>; end;
несколько несколько if <Выражение> then begin <Оператор1>; <Оператор2>; .... <ОператорN>; end else begin <ОператорN+1>; <ОператорN+2>; .... <ОператорN+M>; end;

Еще одна синтаксическая сложность корректного использования оператора if возникает при написании вложенных операторов if. В случае, если вложенный оператор if располагается в пределах составного oпeратора, больших проблем не возникает, так как ключевые слова begin и end точно ограничивают область каждой альтернативы.

Например:

if <Выражение> then

begin

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

if <Выражение1> then <Оператор2> else <Оператор3>;

<Оператор4>

end

else

begin

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

if <Выражение2> then <Оператор6>

end;

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

Например:

if <Выражение> then

if <Выражение1> then

<Оператор>

else <Оператор1>;

В таких случаях следует помнить правило:

Ключевое слово else связывается с ближайшим стоящим перед ним ключевым словом if,

которое еще не было связано с каким-либо ключевым словом else.

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

if <Выражение> then

if <Выражение1> then

<Оператор>

else <Оператор1>;

На следующем шаге мы рассмотрим оператор case.

21. Булевским типом называется тип данных, представленный двумя противоположными по смыслу значениями: True (истина) и False (ложь). Данное название "булевский тип" используется в математической литературе для обозначения типа логических выражений в память о выдающемся английском математике Джоне Булле (Boole), заложившем основы математической логики.

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

Например:

var
flag, result: boolean;

Отметим, что во многих случаях наука "Логика" предусматривает только два возможных исхода событий, результатом которых могут быть ответы: "да" и "да". Пусть сравниваются два числа a и b. Операция отношения a < b может иметь два исхода: истина или ложь. Все определяется значениями a и b. Например, если a=2 и b=3, то отношение a < b истинно. Если же a=2 и b=2, то оно ложно. Мы видим, что отношение a < b дает логический результат. Ниже в таблице приведены примеры числовых операций с логическим результатом.

 

Выражения Отношения Результаты логических выражений при:
- - a=2, b=3 a=2, b=2
a<b< td=""></b<> a меньше b true false
a>=b a больше или равно b false true
a>b a больше b false false
a<=b a меньше или равно b true true
a=b a равно b false true
a<>b a не равно b true false


Вы видите сами, что каждое рассмотренное нами логическое выражение имеет только одно значение: "истина" или "ложь" в зависимости от того, выполняется ли данное отношение. Другим примером, который тоже дает логический результат является функция odd(x), которая дает значение true, если ее аргумент нечетный, и false, если аргумент наоборот четный. Можно привести много примеров соотношений в языке Паскаль, для которых результат является логическим и имеет одно из значений: true или false. Так, например, из школьного курса геометрии известно, что "если в каком-либо треугольнике сумма квадратов двух сторон равна квадрату третей стороны, то есть a*a + b*b=c*c, то такой треугольник прямоугорльный". Это предложение называется теоремой, обратной теореме Пифагора. При необходимости можно написать на языке Паскаль операцию условного перехода if, которая будет проверять выполнение данного соотношения в рамках некоторой программы.






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

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