Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Множественное ветвление



 

После поворота событий от плохого к худшему цикл повторится.

Из законов Мэрфи

 

Оператор IF разделяет программу на два набора операторов, выполняемых в зависимости от результата вычисления заданного условия. Бывают ситуации, когда этого недостаточно. Например, пусть мы пишем программу-калькулятор. Она запрашивает у пользователя два числа и код выполняемого над ними действия (1 – сложение, 2 – умножение, 3 – вычитание, 4 - деление). Конечно, можно обойтись и кучей операторов IF, например, так:

 

VAR c:BYTE;

c:=IntToStr(LabeledEdit1.Text);

IF c=1 THEN

r:=a+b;

IF c=2 THEN

r:=a*b

и т.д. Но выглядит такая программа запутанно. Здесь лучше применить оператор множественного ветвления CASE. Для его использования должны соблюдаться два правила: во-первых, во всех проверяемых условиях одна и та же переменная должна сравниваться с константами. Так оно и есть: переменная с сравнивается с единицей, двойкой и т.д. Во-вторых, тип переменной с должен быть ограниченным. Это означает, что можно перечислить все значения этого типа. Скажем, тип BYTE – ограниченный, так как переменная типа BYTE принимает значения только от 0 до 255 и все их можно перечислить. А вот переменная типа REAL принимает бесчисленное множество значений (число дробных чисел в любом интервале бесконечно) и ее нельзя использовать в операторе CASE. Его общий вид таков:

Полная форма Сокращенная форма
CASE переменная OF значение1: оператор1; значение2: оператор2; … значениеN: операторN; ELSE операторM; END; CASE переменная OF значение1: оператор1; значение2: оператор2; … значениеN: операторN; END;

 

Обратите внимание, что слово END относится к самому оператору CASE и не требует никакого парного себе BEGIN. Заменим кучу IF'ов одним CASE:

 

CASE c OF { c – переменная перечислимого типа }

1: r:=a+b; ( если с=1, выполняется оператор r:=a+b )

2: r:=a*b;

3: r:=a-b;

4: IF b<>0 THEN r:=a/b ELSE Label1.Caption:='Деление на ноль'

ELSE

Label1.Caption:='введен неверный код действия'

END;

 

В CASE перечисляются возможные значения переменной, а после них через двоеточие записывается один-единственный оператор (надо больше – пишем BEGIN..END), выполняющийся, если переменная, имя которой указано между словами CASE и OF, равна указанному перед двоеточием значению. В операторе CASE может быть часть "иначе" (ELSE), оператор в которой выполняется, если значение переменной не совпало ни с одним из заданных.

 

Объекты исследования, оборудование, материалы и наглядные пособия

 

Для выполнения работы применяеются:

- IBM-совместимый ПК с ОC Windows XP, 7, 8;

- файловый менеджер Far Commander;

- среда программирования Delphi версий 7.0 и выше.

 

Задание на работу

 

Пример задания на ЛР:

Рассчитать на прочность следующий механизм:

Привод цилиндрическо-цилиндрический

Частота вращения выходного вала, мин-1: 180

Мощность на выходном валу привода, кВт: 1,3

Срок службы привода, тысяч часов: 23

Реверсивность: Нет

 

Порядок выполнения работы

 

1. Выявить ветвление (-я) в разрабатываемом алгоритме.

2. Установить, при помощи каких операторов реализуются выявленные ветвления.

3. Реализовать алгоритм в программном коде

4. Отладить программу

Содержание отчета

 

Отчет содержит распечатку текста программы и копии экрана работающей программы.

 

 




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

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.