русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ветвление по ряду условий (оператор case)


Дата добавления: 2014-11-27; просмотров: 1699; Нарушение авторских прав


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

Пример 5.4.
Преобразование введенного целого числа из диапазона (0..4) в его словесное представление

Program Digitl;
var
Num: integer;
begin
write('Введитечисло:');
readln(Num);
if Num = 0 then
writeln('Нуль');
if Num = 1 then
writeln('Один');
if Num = 2 then
writeln('Два');
if Num = 3 then
writeln( 'Три');
if Num = 4 then
writeln('Четыре');
readln end.

 

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

Case <выражение порядкового типа> of
<значение1>:<оператор1>;
<значениеN>:<операторN>
else <оператор>
end

 

Пример 5.5.
Использование структуры case ... of для перевода целого числа в его словесное представление

Program Digit2;
var Num: integer;
begin
write('Введитечисло:');
readln(Num);
caseNumof
0:writeln('Нуль');
1:writeln('Один');
2:writeln('Два' );
3:writeln('Три ');
4:writeln('Четыре')
elsewriteln('Введено другое число')
end;
readln
end.

 

Ниже приведена блок-схема алгоритма решения этой задачи (рис. 5.9).

 

Рис. 5.9. Блок-схема алгоритма, выводящая словесное представление введенного с клавиатуры числа (не большего 4)

 

Переменная Num является селектором в операторе case. По значению селектора происходит переход на соответствующую метку.

Селектор должен принадлежать к порядковому типу (то есть он не может иметь тип real)!

 

Пример 5.6.
Определение номера квартала по введенному номеру месяца

Program Digit3;
var
Num:integer;
begin
write('Введите номер месяца:');
readln(Num);
case Num of
1,2,3 : writeln('Первыйквартал');
4,5,6 : writeln('Второй квартал');
7.. 9 : writeln('Третий квартал'); { метка 7..9 -
интервал чисел от 7 до 9: то же самое, что и 7,8,9}
10..12: writeln('Четвертый квартал')
elsewriteln('Некорректный ввод')
end;
readln
end.



 

При переходе на метку может выполняться целый блок операторов, который оформляется с помощью структуры begin ... end.

 

Задание 5.11.
Написать программу, в которой в переменную типа Char вводится символ с клавиатуры. Программа выдает сообщение о том, какой символ был введен:
- цифра от 0 до 9;
- латинская строчная буква;
- латинская заглавная буква.

При записи меток в операторе case можно использовать интервальный тип. Например, интервал для латинских заглавных букв записывается: 'A'. .'Z'.
Если нужно учесть строчную латиницу, то интервал
для меток будет выглядеть так: 'A'. .'Z','a'. .'z'.

 

Выводы

1. Существуют задачи, решение которых включает анализ логического условия. Такие задачи описываются разветвляющимся алгоритмом (сравните с линейным алгоритмом).
2. При ветвлении анализируется логическое выражение и, в зависимости от его результата, выполняется та или иная ветвь алгоритма.
3. В Паскале оператор ветвления называется if. Он имеет две формы записи — полную и неполную.
4. При полной форме записи if в случае истинности логического условия выполняется один блок программы (после слова then), а в случае ложности — другой (после слова else).
5. При неполной записи оператора if блок else опускается.
6. При переходе на ту или иную ветвь алгоритма после анализа логического условия возможно выполнение блока операторов, который оформляется с помощью структуры begin ... epd.
7. Точка с запятой слева и справа от then и от else не ставится.
8. В случае, когда анализируемое выражение может иметь более двух значений, и при разнйх значениях нужно выполнять разные инструкции, используют оператор case.
9. Оператор case должен заканчиваться ключевым словом end. Это один из тех редких случаев, когда количество операторов begin в программе не будет совпадать с количеством операторов end.
10. Чтобы текст программы был более понятен, вложенные (подчиненные) блоки операторов принято оформлять со сдвигом вправо, лесенкой. При каждом следующем вложении операторы сдвигают еще на несколько позиций вправо.

 

Контрольные вопросы

1. Чем отличается линейный алгоритм от ветвления?
2. Какие ключевые слова используются в Паскале для организации ветвления? Что находится между ними?
3. Чем полное ветвление отличается от неполного?
4. Как оформлять текст программы, чтобы он был понятнее?
5. Что необходимо использовать, если в случае истинности некоторого условия нужно выполнить несколько операторов?
6. Как быть, если в случае истинности некоторого условия никаких действий выполнять не требуется, а в случае ложности нужно выполнить несколько действий?
7. Какую управляющую структуру Паскаля нужно использовать, если проверяемое выражение может принимать несколько возможных значений, и в каждом случае необходимо выполнить разные действия?
saw
8. В каком случае количество операторов begin в программе не должно соответствовать количеству операторов end?

 



<== предыдущая лекция | следующая лекция ==>
Блоки операторов | Многократно повторяющиеся действия


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.