Вложенные условные операторы ЛАБОРАТОРНАЯ РАБОТА №17 ИЗУЧЕНИЕ ИНТЕГРИРОВАННОЙ СРЕДЫ PASCAL: Организация ввода-вывода ЦЕЛЬ РАБОТЫ. Познакомиться с интегрированной средой паскаль, получить практические навыки работы с ней, закрепить сведения лекционного материала. З А Д А Н И Е. Создайте алгоритм (в виде блок-схемы) решения задания согласно предложенному варианту, по составленному алгоритму напишите программу, используя язык Паскаль и операторы ввода-вывода. Порядок выполнения лабораторной работы 1. Внимательно прочитать и уяснить условие задачи, которую предстоит решить. 2. Ознакомиться с необходимым теоретическим материалом лек. 3. Подготовить свой вариант текста программы и решить его с помощью компьютера. 4. Сделать отчет. Что нужно знать для выполнения работы 1. Символы, используемые в схемах программ и правила их применения. 2. Структуру программы. 3. Оператор присваивания, математические и логические операции, их приоритет. 4. Операторы ввода-вывода read(ln), write(ln). 5. Стандартные математические функции Паскаля. 6. Условный оператор if … then…else. 7. Оператор выбора case … of…else…end. 8. Ознакомьтесь с примерами решения задач В листинг программы должны быть включены комментарии: - Информация о задании и задании и данные об учащемся
- Каждой строке программы должен соответствовать свой комментарий
- При вводе информации должно быть предложено в операторе ввода её ввести
- При выводе должна иметь место информация (в операторе вывода о том, что выводится)
- ВНИМАНИЕ! В предложенном вам задании имеется делимое и делитель: ввиду этого не забудьте предварительно сделать проверку на равенство нулю результата вычисления делителя! Это необходимо описать в комментариях. При равенстве делителя нулю – выдавать сообщение: «Деление на 0 не возможно!» и выходить из программы.
Полный условный оператор if логическое_выражение then оператор1 else оператор2; Если логическое выражение имеет значение TRUE, то выполняется оператор1, иначе выполняется оператор2. Всегда выполняется только один из операторов. Перед else точка с запятой не ставится, т.к. if-then-else – единый оператор. Пр. Вычислить m=min(x,y): if x<y then m:=x else m:=y; Пр. Если a и b одного знака, найти их произведение, иначе заменить нулями. if a*b>0 then c:=a*b else begin a:=0; b:=0; end; Из примера видно, что к ветви алгоритма, состоящей более чем из одного оператора, здесь также применяются операторные скобки. Составной условный оператор применяется, когда есть более 2 вариантов расчета. if логическое_выражение1 then оператор1 else if логическое_выражение2 then оператор2 . . . else if логическое_выражениеN then операторN else оператор0; Последовательно проверяются условия 1,2,…,N, если некоторое условие истинно, выполняется соответствующий оператор и управление передается на оператор, следующий за условным. Если все условия ложны, выполняется оператор0. Число ветвей N неограниченно, ветви else оператор0;может и не быть. Пр. Вычислить значение функции, заданной графически: if x<-1 then y:=0 else if x<0 then y:=x+1 else if x<1 then y:=1-x else y:=0; или иначе: if (x<-1) or (x>=1) then y:=0 else if (x<0) then y:=x+1 else y:=1-x; Вложенные условные операторы Когда после ключевых слов then и else вновь используются условные операторы, они называются вложенными. Число вложений может быть произвольно, при этом действует правило: else всегда относится к ближайшему then. Часто вложением полных условных операторов можно заменить использование составного. Пр. Определить, в какой координатной четверти находится точка с координатами (x,y), не лежащая на осях координат. Вариант 1 – без использования вложений if (x>0) and (y>0) then p:=1 else if (x<0) and (y>0) then p:=2 else if (x<0) and (y<0) then p:=3 else p:=4; Вариант 2 – с вложениями if x>0 then begin if y>0 then p:=1 else p:=4; end else begin if y>0 then p:=2 else p:=3; end; В первом фрагменте программе проверяется от 2 до 6 условий, во втором – всегда только 2 условия. Здесь использование вложений дало существенный выигрыш в производительности. Пр 2.Вычислить значение y, равное знаку числа x. Способ 1: if x>1 then y:=1 else if x=0 then y:=0 else y:=-1; Способ 2: if x>1 then y:=1 else begin if x=0 then y:=0 else y:=-1; end; Здесь в обеих вариантах проверяется не более 2 условий, способы примерно равноценны. Оператор выбора. Для случаев, когда требуется выбор одного значения из конечного набора вариантов, оператор if удобнее заменять оператором case: case выражение of список1: оператор1; список2: оператор2; . . . списокN: операторN; else оператор0; end; Оператор выполняется так же, как составной условный оператор. Выражение должно иметь порядковый тип (целый или символьный). Элементы списка перечисляются через запятую, ими могут быть константы и диапазонызначений того же типа, что тип выражения. Диапазоны указываются в виде: |