Оператор множественного выбора.
Оператор множественного выбора CASE N OF является обобщением условного оператора на случай многовариантного выбора (более двух вариантов). В зависимости от значения переменной N, называемой ключом выбора или селектором, выполняется переключение на один из нескольких возможных вариантов дальнейшего выполнения программы. Селектор N – переменная или выражение целого типа.
Синтаксис оператора:
CASE N OF
k1, k2,..., kn: <Оператор A>;
l1, l2,..., ln: <Оператор B>;
.............................;
m1, m2,..., mn: <Оператор C>
ELSE
<Оператор D>
END;
k1, k2, ... kn; l1, l2, ... ln; m1, m2, ... mn - константы выбора, A, B, C, D - операторы языка Pascal (простые или составные).
k1, k2, .... kn - это конкретные числа, для общности обозначенные буквами. Если селектор N принимает любое значение из списка k1, k2, ... kn, то выполняется оператор A. Если N принимает значение, перечисленное во втором списке выбора, а именно, одно из значений l1, l2,...ln, то будет выполнен оператор B. Если N принимает значение из списка m1, m2, ... mn, то будет выполнен оператор С. Если же значения N нет ни в одном из списков выбора, то будет выполнен оператор D. Так же, как и в условном операторе, ветвь ELSE является не обязательной. Если селектор не находит свое значение в списке выбора, а ветвь ELSE отсутствует, то оператор не выполняет никаких действий, и компьютер передаёт управление следующему по порядку оператору программы.
Для примера рассмотрим программу, с помощью которой можно узнавать день недели любого числа текущего месяца.
Program Calendar_November;
var D:integer;
label 10;
Begin
10:writeln('Vvedite datu D');
Readln(D);
CASE D OF
2,9,16,23,30:WRITELN('Ponedelnik');
3,10,17,24:WRITELN('Vtornik');
4,11,18,25:WRITELN('Sreda');
5,12,19,26:WRITELN('Chetverg');
6,13,20,27:WRITELN('Pjatnitsa');
7,14,21,28:WRITELN('Subbota');
1,8,15,22,29:WRITELN('Voskresenje')
ELSE
begin
WRITELN('Oshibka! Povtorite vvod!');
GOTO 10
end;
END; {END OF CASE}
Readln
End.
Можно набрать названия дней недели по-английски: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
Оператор безусловного перехода. Метки и их описание.
Оператор безусловного перехода GOTO имеется во многих алгоритмических языках. Его назначение – безусловная передача управления произвольному оператору программы с указанной меткой.
Синтаксис оператора:
GOTO m;
здесьm - метка оператора, в качестве которой может выступать целое число от 0 до 9999 или идентификатор. Метка может стоять в программе перед любым оператором, но каждая метка может появиться только один раз. Метка отделяется от оператора двоеточием. Перед begin метка не ставится. В программе метки операторов могут следовать в произвольном порядке. После осуществления безусловного перехода к оператору с меткой m в результате выполнения оператора GOTO m выполнение программы продолжается с оператора, непосредственно следующего за оператором с меткой m.
Все использованные в программе метки должны быть описаны в специальном разделе с заголовком Label, который размещается перед основным блоком программы. В разделе Label метки записываются в произвольном порядке через запятую.
На практике, особенно для начинающих, оператор GOTO оказывается полезным, и в языке Pascal можно использовать безусловные переходы по программе, хотя злоупотребление ими все же является признаком невысокой культуры программирования.
Рассмотрим фрагмент программы, с помощью которого можно предложить продолжить работу любой программы или завершить её, включив этот фрагмент после оператора readln перед последним End следующим образом. Созданной с помощью оператора вывода надписью на экране пользователю предлагается ответить на вопрос: продолжить работу программы (для чего набрать с клавиатуры число 1) или завершить её (тогда набрать с клавиатуры число 0). В случае, если выбрано продолжение программы, условный оператор передаст управление тому оператору в начале программы, перед которым стоит метка m, иначе условный оператор передаст управление последнему оператору End, и программа завершит работу.
. . .
Writeln(‘Continue? Yes – 1, No - 0’);
Readln(q);
If q=1 then
Goto m
Else
End.
Целиком пример программы с применением оператора безусловного перехода будет рассмотрен на лабораторном занятии.
Вопросы для самоконтроля
1. Каков синтаксис условного оператора?
2. Какие существуют операции сравнения?
3. Что такое логическое выражение?
4. Какие существуют логические операции?
5. Что такое составной оператор?
6. Синтаксис оператора множественного выбора.
7. Синтаксис оператора безусловного перехода.
8. Метки их применение.
9. Можно ли отказаться от применения оператора безусловного перехода?
СПИСОК ЛИТЕРАТУРЫ
Основная
1. Фаронов, В.В. Турбо Паскаль 7.0. Начальный курс : учебное пособие/Фаронов В.В. – М.: КНОРУС, 2007. – 576 с.
2. Черняков, М.В.Основы информационных технологий: учебник для ВУЗов. / Черняков М.В., Петрушин А.С. М.: ИКЦ Академкнига, 2007. – 407 с.
3. Информатика: базовый курс. / Симонович П.А. [и др.] – СПб.: Изд-во «Питер», 2008, 640 с.
4. Арсеньев, Ю.Н. Информационные системы и технологии/Арсеньев, Ю.Н.. – М.: ЮНИТИ-ДАНА, 2009. – 447 с.
5. Розанов, А.В. Программирование персональных компьютеров. / Розанов А.В., Федоров В.К. Электронный учебник на CD-ROM. Саратов, 2006
Дополнительная
1. Кашина, И.А.Информационно-правовые системы в экономической деятельности. / Кашина И.А. [и др.] –М.: ДМК-ПРЕСС, 2008.
2. Лихтеншейн, В.Е. Информационные технологии в бизнесе: практикум. / Лихтеншейн В.Е., Росс Г.В. – М.: ФиС, 2008. – 509 с.
3. Макаров, В.Ф. Аутентификация электронного документооборота и защита информации с использованием методов ассиметричного преобразования данных / Макаров В.Ф., Нечаев Д.Ю., Уколов В.С. – М.: РГТЭУ, 2007. – 58 с.
4. Барановская, Т.П.Информационные системы и технологии в экономике / Барановская Т.П. [и др.] – М.: Финансы и статистика, 2007. – 412 с.
5. Якубайтис, Э.А. Информационные сети и системы: справочная книга Якубайтис Э.А.. – М.: Финансы и статистика, 2008
Лекция 5.
АЛГОРИТМЫ И ОПЕРАТОРЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ.
Дата добавления: 2016-04-06; просмотров: 1752;