Rambler's Top100

Скачать программы    Все программы автора

19. ОПЕРАТОРЫ ЗАВЕРШЕНИЯ ЦИКЛА

Для всех операторов цикла выход из цикла осуществляется как вследствие естественного окончания оператора цикла, так и с помощью операторов перехода и выхода. В версии ТУРБО ПАСКАЛЬ 7.0 определены стандартные процедуры Break и Continue. Процедура Break выполняет безусловный выход из цикла. Процедура Continue обеспечивает переход к началу новой итерации цикла.

20. ОПЕРАТОР ВАРИАНТА

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор - это средство ветвления вычислительного процесса. Структура условного оператора имеет следующий вид:

IF <условие> THEN < оператор 1 > ELSE < оператор 2 >, где IF, THEN, ELSE — зарезервированные слова (если, то, иначе);

<условие> — произвольное выражение логического типа; < оператор 1 >, < оператор> 2 > — любые операторы языка Турбо Паскаль. Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2>. Например:

var

х, у, max: Integer;

begin

…………..

if x > max then

у := max

else

у := х;

При выполнении этого фрагмента переменная Y получит значение переменной X, если только это значение не превышает МАХ, в противном случае Y станет равно МАХ. Часть ELSE < оператор 2 > условного оператора может быть опущена. Тогда при значении TRUE условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается:

var

х, у, max: Integer;

begin

……………

if x > max then

max := x;

y := х;

В этом примере переменная Y всегда будет иметь значение переменной X, а в МАХ запоминается максимальное значение X. Поскольку любой из операторов <оператор1> и <оператор2> может быть любого типа, в том числе и условным, а в то же время не каждый из “вложенных” условных операторов может иметь часть ELSE < оператор 2 >, то возникает неоднозначность трактовки условий. Эти неоднозначность в Турбо Паскале решается следующим образом : любая встретившаяся часть ELSE соответствует ближайшей к ней “сверху” части THEN условного оператора. Например:

var

a,b,c,d : Integer;

begin

                             a := 1; b := 2; с := 3; d := 4;

if a > b then

if с < d then

if с < 0 then

с := 0

else

a := b; {а равно 1}

if a > b then

if с then

if с then

с := 0

else

else

else a := b; {а. равно 2}

Рассмотрим программу (пример 4), которая вводит произвольно десятичное целое число в диапазоне О...15, преобразует его к шестнадцатеричному и выводит на экран полученный результат.

Пример 4

Program Hex; {Программа вводит с клавиатуры целое число в диапазоне от 0 до 15, преобразует его к шестнадцатеричной системе счисления и выводит результат на экран}

var

n : Integer; {Вводимое число}

ch : Char; {Результат}

begin

Write('n = ') ;

ReadLn(n); {Вводим число }

{Проверяем число на принадлежность к диапазону О...15}

if (n >= 0) and (n <- 15) then

begin {Да, принадлежит диапазону}

if n < 10 then

ch := chr(ord('0') + n;

else

ch := chr(ord('A') + n - 10);

WriteLn('n = ',ch) ;

end ;

else (He принадлежит диапазону}

WriteLn('Ошибка') ;

end.

В шестнадцатеричной системе счисления используется 16 цифр в каждом разряде: цифры О...9 обозначают первые 10 возможных значений разряда, буквы A...F - остальные шесть. В программе учитывается непрерывность и упорядоченность множеств цифр 0...9, букв A...F и их кодов.

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

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

Структура оператора выбора такова:

CASE <ключ выбора> OF <список выбора> [ ELSE <операторы>] END

Здесь CASE, OF, ELSE, ENDзарезервированные слова (случай, из, иначе, конец);

<ключ выбора> — ключ выбора;

<список выбора> — одна или более конструкций вида:

<константа выбора> : <оператор>;

<константа выбора> — константа того же типа, что и выражена <ключ выбора>;

<операторы> — произвольные операторы Турбо Паскаля.

Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ выбора>, а затем в последовательности операторов <список выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу. Составим программу (пример 8), имитирующую работу микрокалькулятора. Программа вводит две строки: первая содержит два произвольных числа, разделенных пробелом, вторая - символ арифметического действия, например:

2 2

*

или

18.35 0.12

/

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

Пример 8

program Calc;

{Программа вводит два числа в первой строке и один из знаков +, - , *, / - во второй и выводит на экран результат соответствующего арифметического действия)

var

operation : Char; {Знак операции}

х, у, z : real; {Операнды и результат}

stop : Boolean; {Признак ошибочной операции и останова}

begin

stop := false;

repeat

WriteLn; {Пустая строка-разделитель}

Write('x,y= ‘);

ReadLn(х,у) ;

Write('операция: ') ;

ReadLn(operation) ;

case operation of

'+ ' : z := x+y;

' - ' : z:= x-y;

‘ * ' : z := x * y;

' / ' : z := x / y;

else

stop := true

end;

if not stop then

WriteLn (' результат ',z) ;

until stop

end.

Любому из операторов списка выбора может предшествовать не одна, а Несколько констант выбора, разделенных запятыми. Например, следующая программа при вводе одного из символов: у или У выведет на экран слово “Да”, а при вводе n или N слово “Нет”:

var

ch : Char;

begin

ReadLn(ch) ;

case ch of

'n','N': WriteLn(‘Heт') ;

'y', 'Y' : WriteLn(‘ Да ') ;

end ;

end.

Вверх

Белорусский рейтинг MyMinsk.com Сайты беларуси Регистр "ЗУБР" Каталог на TIGA.BY, а также  новости, работа, объявления, фото и многое другое Rambler's Top100 Белорусский каталог программ Faststart - рейтинг сайтов, каталог интернет ресурсов, счетчик посещаемос­ти Яндекс.Метрика
Hosted by uCoz