Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Условный, безусловный переход, выбор в языках программирования.



Условные операторы предназначены для выбора одного из возможных действий в зависимости от нек-го условия. При этом одно из действий м/б пустым, т.е. отсутствовать. В качестве условия выбора исп-ся зн-е логического выр-я. В Pascal им. 2 условных оператора: if, case. Оператор условия if явл. одним из самых попул-х ср-в изменяющих естественный порядок выполнения пр-мы.

if < условие> then < опер-р1> else < опер-р2>;

Перед else; не ставится. На блок-схеме:

 

 


Сначала проверяется условие, рез-м к0го получается зн-е булевского типа. Если зн-е истинно True, то выполняется опер-р1, указанный после слова then, если рез-т ложный False, то выпол-ся опер-р2(else). Условный оператор может быть неполным, т.е. не содержать часть «else < оператор 2> ». В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.

Пример: составим программу, которая определяет длину общей части двух отрезков числовой оси, заданных координатами своих концов соответственно а, b и с, d (а < b, с < d). Если отрезки имеют общую часть, то левая координата общей части отрезков m равнамаксимальному из чисел а и с, а правая n - минимальному из чисел b и d.

program cross; var a, b, c, d, m, n, l: real; begin

writeln('введите координаты концов отрезков'); read(a, b, с, d);

writeln; if a< c then m: =c else m: =a; if b< d then n: =b else n: =d;

if m< n then l: =n-m else 1: =0; writeln(" длина общей части отрезков=', 1: 6: 2) end.

В бейсик IF < условие> THEN < оператор1> ELSE < оператор2> - условный оператор;

В Си if/else Общий вид оператора:

If(< выражение> ) < оператор1>

else < оператор2>;

Оператор выбора Case обеспечивает выбор из произвольного числа имеющихся вариантов. Оператор if обеспечивает выбор 2 альтернатив.

Формат выбора Case:

case < выр-е -селектор> of

< список1>: < опер-р1>;

< списокN>: < опер-рN>

else < опер-рN+1>

end;

Опер-р Case работает след-м образом: сначала вычисл-ся зн-е выр-я-селектора, а затем обеспечивается реализация того опер-ра, константа выбора к-го соотв-ет текущему зн-ю селектора. Если ни одна из конст. не равна текущему зн-ю селектора выполняется опер-р, стоящий за словом else. Селектор д/относится к одному из целочисл-х типов, булевскому, литерному или пользоват-му. Тип констант д/совпадать с типом селектора. Правило использования Case: *зн-е выр-я переключателя селектора д/принадлежать к дискретному типу. *все конст. предшествующие оператором альтернатив д/иметь тип совмест-м с типом выр-ия. *все конст-ты в альтернативах д/б уникальны в пределах оператора варианта, т.е. он допускает повторность, диапозоны не д/пересекаться.

Пр.Case d of

1…15: Writeln(‘Перва декада’);

16…31: Writeln(‘Вторая декада’)

else Writeln(‘Ошибка’)

end;

Оператор варианта имеет следующую форму:

case < выражение> of

< список констант 1> : < оператор 1>;

< список констант 2> : < оператор 2>;

…………………………

< список констант N> : < оператор N>

end.

Выражение, стоящее между служебными словами case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы.

Оператор варианта вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает.

В качестве примера приведем программу, которая в зависимости от номера месяца выдает сообщение о времени года.

program seasons; var k: integers; begin writeln('введите номер месяца'); readin(k);

case k of

1, 2, 12: writeln('зима');

3, 4, 5: writeln('весна');

6, 7, 8: writeln('лето');

9, 10, 11: writeln('осень') end end.

В Си В тех случаях, когда в программе необходимо произвести выбор одногоиз нескольких вариантов, удобно применять оператор switch. Его синтаксис:

switch (< выражение> )

{

case < константа1>: < список операторов1>;

case < константа2>: < список операторов2>;

case < константаN>: < список операторовN>;

default: < список операторов>;

}

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

Метки, имеющиеся в операторе switch, должны быть константами или константными выражениями (выражениями, операнды которого константы) целого или символьного типа. Запрещается использовать в качестве метки переменную. Значением выражения в скобках должна быть величина целого или символьного типа. Список операторов варианта может быть либо пустым, либо заканчиваться одним из операторов завершения (break, continue, goto, return). Если у вариантов нет общих частей, то рекомендуется каждый вариант завершать оператором break.

Также сущ-ет оператор безусловного перехода goto, к-й означает перейти к… и примен-ся в случаях, когда после выполнения нек-го оператора надо выпол-ть не след-й по порядку, а какой-либо др. отмеченный меткой оператор.

опер-р; goto M; опер-р; … M: опер-р

Данный опер-р наз. избыточным и подвергается критике, т.к. способствует созданию малопонятных и трудно воспринимаемых программ. Их необходимо применять для передачи управления только вниз по тексту пр-мы, причем расстояние перехода не д/превышать одной страницы экрана.

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

В Си форма записи аналогична: goto < метка>;...

< метка>: < оператор>

безусловный переход в Бейсик: GOTO < номер строки>.

 


Поделиться:



Популярное:

  1. E) право на свободный выбор труда
  2. XII. 1. ВЫБОР СПОСОБА ПЛАВАНИЯ
  3. А. И. Черевко. Расчет и выбор судовых силовых трансформаторов для полупроводниковых преобразователей. Севмашвтуз, 2007.
  4. Аксиоматика теории потребительского выбора, принципы рационального поведения
  5. Алгоритм формирования техники двигательных действий легкоатлетических упражнений. Характеристика и технология обучения технике легкоатлетического вида из школьной программы (по выбору).
  6. Анкета «Мой выбор профессии»
  7. Базовый рынок и его границы. Макросегментирование и микросегментационный анализ. Стратегии выбора целевых сегментов.
  8. Борьба за выбор путей общественного развития в феврале-октябре 1917г.
  9. В задачах 13.1-13.20 даны выборки из некоторых генеральных совокупностей. Требуется для рассматриваемого признака
  10. В условиях развитой рыночной экономики потребитель имеет возможность выбора оптимального поставщику Продавец со своих позиций стремится найти и заключить сделку наиболее устраивающим его покупателем.
  11. Введение. Методы выбора и оценки тем научных исследований в области производства ткани.
  12. Вопрос 2. Выбор партнеров на мировом рынке


Последнее изменение этой страницы: 2016-05-03; Просмотров: 786; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.011 с.)
Главная | Случайная страница | Обратная связь