Операторы if и case языка Паскаль




Лабораторная работа №1.2

Тема: «Программирование разветвляющихся алгоритмов»

 

Цели работы:

1. Научиться пользоваться простейшими компонентами организации переключений (TСheckBox, TRadioGroup).

2. Использовать при программировании основные конструкции ветвления if then else; case.

3. Написать и отладить программу разветвляющегося алгоритма.

Отчет должен содержать::

1. Теоретическая часть:

1.1. конструкции ветвления

1.2. зависимые и независимые переключатели

2. Формулировка задания

3. Программный код

3.1. Процедуры занесения исходных данных

3.2. Процедуры вычисления с выделением ветвления “if…then”, “case of…”

4. Входные данные и полученный результат

5. Вывод по выполненной работе

Теоретическая часть:

Операторы if и case языка Паскаль

Для программирования разветвляющихся алгоритмов в языке Pascal используются специальные переменные типа boolean, которые могут принимать только два значения - true и false (да, нет), а также операторы if и case. Оператор if проверяет результат логического выражения, или значение переменной типа boolean, и организует разветвление вычислений.

Условный оператор if отвечает за ветвление, т.е. выполнение (или невыполнение) того или иного варианта кода в зависимости от условий. Оператор if используется совместно с ключевым словом then, а в том случае, когда предусмотрен альтернативный вариант выполнения - еще и с else. В целом синтаксис инструкции получается следующим:

if <условие> then <код> [else <альтернативный код>]

В качестве условия может быть использовано любое выражение, которое может быть приведено к булевскому значению, т.е. к false или true. Как правило, это бывают операции сравнения, например:

if a > 5 then b:= 10;

if x <> 0 then y:= 1 else y:=2;

В тех случаях, когда требуется предусмотреть 3 или более вариантов исполнения, используют вложение операторов if друг в друга. Например, если требуется выполнить один вариант когда, когда некая переменная x меньше нуля, другой - если x равна 0, и третий - если x больше нуля, то синтаксис операторов может быть следующим:

if x < 0 then <вариант для x<0> else

if x = 0 then <вариант для x=0> else <вариант для x>0>;

В данном случае использован вложенный оператор if, который выполняется в случае, когда переменная x не меньше 0. Он проверяет, не является ли значением x число 0, и если нет, то, учитывая, что x явно не меньше, чем 0 (это условие к моменту выполнения вложенного оператора if уже проверено внешним, т.е. первым в данном выражении оператором if), значит значение x больше 0.

Условный оператор удобен в тех случаях, когда необходимо проверить 1-2-3 варианта. При большем числе получается слишком громоздкая и неудобная для восприятия конструкция из множества вложенных инструкций. Скажем, если требуется проверить 5 значений переменной x, то получим такую конструкцию:

if x = 1 then;

else if x = 2 then;

else if x = 3 then;

else if x = 4 then;

else if x = 5 then;

Очевидно, что код получается слишком громоздким, и малоэффективным. В таких случаях на помощь приходит семафор - оператор множественного выбора case. Он состоит из выражения, являющегося селектором, списка вариантов, представленного константами или значениями, и необязательной части else. Таким образом, формат оператора case таков:

case [выражение-селектор] of

<значение 1>: <код для значения 1>;

<значение 2>: <код для значения 2>;...

<значение N>: <код для значения N>;

[else <код для непредусмотренных явно значений>;]

end

Единственным ограничением семафора, в сравнении с условным оператором, является то, что в качестве селектора могут выступать лишь данные порядкового типа, скажем, целым числом или же символом.

Оператор выбора case организует разветвления в зависимости от значения некоторой переменной перечисляемого типа.

Например, приведенный выше вариант кода с 4 вложенными условными операторами, при помощи case можно оформить так:

case x of

1:;

2:;

3:;

4:;

5:;

end;

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

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

var

month: integer;

season: string;

...

case month of

1,2,12: season:= "зима";

3..5: season:= "весна";

6..8: season:= "лето";

9..11: season:= "осень";

else season:= "других не знаем!";

end;

В данном случае, если переменная month имеет значения 1, 2 или 12, то переменной season присваивается значение "зима", если же значение переменной month окажется в диапазоне от 3 до 5 (включительно), то season получит значение "весна", и т.д.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: