Конструкция select case
Близка по логике работы с IF. Конструкции взаимозаменяемы при решении большинства задач. Формат конструкции представлен только многострочной формой, которая может содержать вложенные блоки аналогичного строения.
Конструкция получает параметр и в зависимости от его значения выполняет тот или иной блок операторов. Параметром может быть значение переменной любого типа или значение выражения. Если значение удовлетворяет условию, то программа выполняет блок операторов данного CASE и передаёт управление за пределы конструкции.
CASE условие– это действие, поэтому операторы данного CASE должны записываться с новой строки или в этой же строке через двоеточие.
Между SELECT KASE и первым KASE нельзя размещать ничего кроме комментариев.
Условные выражения за KASE могут быть записаны в форматах:
Число. Например, KASE 5.
Диапазон от меньшего значения к большему. Например, KASE 10 TO 20.При записи от большего значения к меньшему, будет проверяться только первое значение.
Условие. В записи условия название параметра обязательно заменяется словом IS. Например, условие X > 10, должно быть записано как KASE IS > 10.Еслив KASE будет несколько условий, разделённых запятыми, то он сработает при выполнении любого из них.
Сочетание форматов 1 – 3, разделённых запятыми. Например, KASE 5, 15, 10 TO 20, IS > 10.Программа отработает блок операторов, соответствующий данному KASE, если выполняется, хотя бы одно из перечисленных условий.
Формат конструкции: ... SELECT KASE CASE условие 1 Блок операторов_1 CASE условие 2 Блок операторов_2 ... [CASE ELSE Блок операторов_n] END SELEKT ... | Блок-схема конструкции: |
Задание: Ввести число от 1 до 999 и определить количество знаков в нём. Если введено число, не принадлежащее данному диапазону, то сообщить об этом.
CLS INPUT “Введите значение Х”; Х SELECT CASE X CASE 1, 2, 3, 4, 5, 6, 7, 8, 9 PRINT “Одна цифра” CASE 10 TO 99 PRINT “Две цифры” CASE IS <= 0, IS >= 1000 PRINT “Ошибка ввода” CASE ELSE PRINT “Три цифры” END SELECT END |
Контрольные задания:
1. | Составить блок-схему и код программы вычисления значения Y по заданному математическому выражению, при заданных с клавиатуры данных, предусмотрев возможность проверки значений знаменателя, подкоренного выражения и повторного ввода данных: |
2. | Составить блок-схему и код программы вычисления значения Y по заданному математическому выражению, при заданных с клавиатуры данных, предусмотрев возможность проверки значений знаменателя, подкоренного выражения и повторного ввода данных: |
3. | Составить блок-схему и код программы, которая в зависимости от введённого числа либо вычисляет функцию, либо выдаёт сообщение, что функция не определена и предлагает ввести новое значение аргумента: |
4. | Составить блок-схему и код программы, которая в зависимости от введённого числа либо вычисляет функцию, либо выдаёт сообщение, что функция не определена и предлагает ввести новое значение аргумента: |
5. | Составить блок-схему и код программы, для вычисления функции: |
6. | Составить блок-схему и код программы, для вычисления функции: |
7. | Составить блок-схему и код программы, для вычисления функции: |
8. | Составить блок-схему и код программы, определяющей чётность или нечётность любого вводимого с клавиатуры целого числа. |
9. | Составить блок-схему и код программы, находящей меньшее из двух введённых с клавиатуры чисел. |
10. | Составить блок-схему и код программы, находящей сумму двух меньших из трёх введённых с клавиатуры положительных целых чисел. |
11. | Составить блок-схему и код программы, находящей, большее и меньшее из трёх введённых с клавиатуры чисел. |
12. | Заданы длины сторон треугольника – A, B, C. Составить блок-схему и код программы, определяющей является ли треугольник равнобедренным. |
13. | Составить блок-схему и код программы, которая по четырёхзначному номеру года, заданному с клавиатуры определит столетие (например, для 1476 г. – ответ XIV век). Учесть, что началом века считается первый, а не нулевой год. |
14. | Какое значение будет иметь переменная X после выполнения операторов: X = 0 If A > 0 THEN IF B > 0 THEN X = 1 ELSE X = 2 при значениях переменных A и B: A = 1, B = 1 A = 1, B = - 1 A = - 1, B = 1 |
15. | Если N = 3, то, какое значение будет иметь переменная S после выполнения операторов: S = 1: K = 2 1: IF K > N THEN GOTO 2 S = S * K K = K + 1 GOTO 1 2: PRINT “S =”; S |
16. | Записать фрагмент кода программы по данной блок – схеме: |