Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Министерство образования Республики Беларусь.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

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

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

Общий вид оператора следующий.

Полная форма

switch ВС

case ск1, оператор1;

case ск2, оператор2;

…

case скN, операторN

otherwise оператор

end

Краткая форма

switch ВС

case ск1, оператор1;

case ск2, оператор2;

…

case скN, операторN

end

Здесь

ВС – выражение-селектор или выражение выбора

ск1, ск2, скN- константы выбора,

оператор, оператор1, оператор2, операторN – любые операторы или группы операторов.

Константы выбора могут быть объединены в множества с помощью {}, напримар, {5, 7, 8, 4}.

Графические схемы алгоритма выполнения оператора case приведены на рисунке 1.5.

Порядок выполнения оператора case следующий.

Полная форма

  • Вычисляется выражение-селектор

  • Его значение сравнивается последовательно с константами выбора

  • Если они равны, то выполняется оператор, стоящий после данной константы выбора

  • 4.Если ни одна из констант выбора не равна значению выражения-селектора, то выполняется оператор, стоящий после слова otherwise.

Краткая форма

  • Вычисляется выражение-селектор

  • Его значение сравнивается последовательно с константами выбора

  • Если они равны, то выполняется оператор, стоящий после данной константы выбора

  • Если ни одна из констант выбора не равна значению выражения-селектора, то выполняется оператор, стоящий после оператора otherwise

Пример правильной записи оператора case приведен ниже.

switch n

case 5, disp (‘Отличник’),

case {4,3}, disp (‘Неплохо’),

case 2, disp (‘Нужно подтянуться’),

case1: disp (‘Все пропало’)

otherwise disp (‘Неверная оценка’)

end

1.3.3 Примеры программ разветвляющихся алгоритмов

Задача 2

Условие задачи Вычислить значение характеристики амортизатора передней подвески автомобиля по формуле:

ω, φ1, φ2 – параметры амортизатора;

v – скорость деформации упругого элемента;

k – показатель политропы;

l – идеализированная высота столба газа.

Алгоритмический анализ задачи

Исходные данные:

φ1, φ2 – параметры амортизатора;

v – скорость деформации упругого элемента;

k – показатель политропы;

l – идеализированная высота столба газа.

Результат:

S1 - характеристика амортизатора.

Промежуточное данное:

ω- параметр амортизатора.

Графическая схема алгоритма решения задачи

Графическая схема алгоритма решения задачи приведена на рисунке 1.6.

Текст программы

v=input('Задайте скорость деформации упругого элемента: ');

k=input('Задайте показатель политропы: ');

l=input('Задайте высоту столба газа: ');

f1=input('Задайте параметр амортизатора f1');

f2=input('Задайте параметр амортизатора f2');

w = sqrt(9.8*k/l);

if v <= 0,

S1 = 2*w*f1*v;

else S1 = 2*w*f2*v;

end;

disp ('Характеристика амортизатора подвески: '),

disp(S1)

Тестовый пример:

Тест 1

Задайте скорость деформации упругого элемента: -2

Задайте показатель политропы: 1.25

Задайте высоту столба газа: 0.3

Задайте параметр амортизатора f1 1.2

Задайте параметр амортизатора f2 2.1

Характеристика амортизатора подвески:

-30.6725

Тест 2

Задайте скорость деформации упругого элемента: 2

Задайте показатель политропы: 1.25

Задайте высоту столба газа: 0.3

Задайте параметр амортизатора f1 1.2

Задайте параметр амортизатора f2 2.1

Характеристика амортизатора подвески:

53.6768

Задача 3

Условие задачи Подобрать значение крутящего момента Т для муфты, если задан ее диаметр и известна зависимость:

Диаметр

Крутящий момент

25…28

29…31

39

500

1000

1600

Алгоритмический анализ задачи

Исходные данные:

d – диаметр муфты;

Результат:

Т - крутящий момент.

Графическая схема алгоритма решения задачи

Графическая схема алгоритма решения задачи приведена на рисунке 1.7.

Текст программы

d=input('задайте диаметр');

switch d

case {25,26,27,28}, km=500;

case {29,30,31}, km=1000;

case 39, km=1600;

otherwise, km=0;

disp('неверно задан диаметр'),

end;

disp (['крутящий момент=', km]),

disp (['при d=' ,d])

Тестовый пример:

Тест 1

задайте диаметр 26

крутящий момент= 500

при d=26

Тест 2

задайте диаметр 40

неверно задан диаметр