Изучение условного оператора IF. Данная тема является одним из трех китов, на которых стоит программирование на языке Pascal. Без ее изучения невозможно дальнейшее программирование. Она помогает при решении задач, в которых необходимо выбрать одно из двух продолжений. А такая ситуация встречается в задачах по программированию так же часто, как и в жизни мы сталкиваемся с выбором как поступить дальше так или иначе. Тем более, что многие задачи программирования пишутся для того, чтобы облегчить решение задач, с которыми мы встречаемся ежедневно. Данный оператор применяется при решении физических, математических, химических, экономических и других видов задач. Изучение данной темы необходимо начать с повторения следующих вопросов: что такое логическое выражение (условие); правила записи логических выражений на языке Pascal; можно ли использовать в условии «:=». Обратить особое внимание при изучении данной темы необходимо на: принцип действия оператора; отсутствие перед словом ELSE «;»; правила записи составных условий. Оператор IF применяется при написании программ тогда, когда необходимо выбрать одно из двух продолжений. Общий вид оператора: IF <условие> THEN < оператор 1> ELSE <оператор 2>; если тогда иначе Оператор выполняется следующим образом: 1. поверяется условие, идущее после слова IF; 2. если оно истинно, то выполняется <оператор 1> выполнение условного оператора на этом заканчивается; 3. если оно ложно, то выполняется <оператор 2 > и выполнение условного оператора заканчивается. Примечание: 1. Перед словом ELSE «;» не ставится; 2. Иногда в качестве условия могут использоваться составные условия, тогда каждое из них берется в скобки, а между ними ставятся операторы AND(и) или OR (или). Например, a) IF (a mod 3 = 0) and (a mod 5 = 0) THEN writeln (‘число а делится на 15’) ELSE writeln (‘число а не делится на 15’); b) IF (x> 0) or (x < -5 ) THEN y := 15 ELSE y := -x; 3. Бывают случаи, когда в качестве < оператор 1> и <оператор 2> выступают несколько операторов, тогда они объединяются операторными скобками BEGIN и END. Например, IF (x> 0) or (x < -5 ) THEN ВEGIN y := 15: writeln (y); END ELSE BEGIN y := -x; writeln (y); END; 4. Иногда условие ELSE опускают при написании программы, тогда мы получаем неполный оператор IF: IF <условие> THEN < оператор 1>; если тогда В этом случае, если <условие> истинно, то выполняется <оператор 1>, а если ложно, то мы переходим к следующему оператору программы («перепрыгиваем через IF»). Примеры: 1. Написать программу, выводящую на экран слово «Да», если переменная t принимает значение Y, и слово «Нет», если t принимает значение N. Program z1; Uses crt; Var t: char; Begin Clrscr; Writeln (‘Введите одно из двух значений переменной ‘Y’ или ‘N’: ’); Readln (t); If t = ‘Y’ then writeln(‘Да’) else writeln (‘Нет’); Readln; End. 2. Написать программу, нахождения наибольшего из двух чисел а и b, которые вводятся с клавиатуры. Program z2; Uses crt; Var t: char; Begin Clrscr; Writeln (‘Введите число а ’); Readln (а); Writeln (‘Введите число b ’); Readln (b); If a > b then writeln (‘Наибольшее число а’) else writeln (‘Наибольшее число b’); Readln; End. Вопрос: а что, если a=b? Как быть тогда? Возникает еще одно условие. Как будет выглядеть программа в этом случае? 1 способ: Program z2; Uses crt; Var t: char; Begin Clrscr; Writeln (‘Введите число а ’); Readln (а); Writeln (‘Введите число b ’); Readln (b); If a > b then writeln (‘Наибольшее число а’) else if a<b then writeln (‘Наибольшее число b’) else writeln (‘a=b’); Readln; End. 2 способ: Program z2; Uses crt; Var t: char; Begin Clrscr; Writeln (‘Введите число а ’); Readln (а); Writeln (‘Введите число b ’); Readln (b); If a > b then writeln (‘Наибольшее число а’); If a < b then writeln (‘Наибольшее число b’); If a = b then writeln (‘a=b’); Readln; End. Задания: Уровень А. № 1. Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны, а в четвертую степень – отрицательные. №2. Даны действительные числа x и y, не равные друг другу. Меньшее из этих чисел заменить половиной их суммы, а большее - их удвоенным произведением. №3. Подсчитать количество отрицательных чисел среди a,b,c. №4. Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до A минут в месяц – B рублей, а разговоры сверх установленной нормы оплачиваются из расчета C рублей за минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц. №5 Составить программу, определяющую результат гадания на ромашке – «любит – не любит», взяв за исходное данное количество лепестков n. №6. Написать программу, определяющую, пройдет ли график функции 2 y = ax + bx + c через заданную точку с координатами (m, n). Уровень В. №1. Написать программу нахождения суммы большего и меньшего из трех чисел. №2. Написать программу, по длинам сторон распознающую среди всех треугольников АВС прямоугольные. №3. Найти максимальное из чисел: 1-ое число - минимальное из чисел а и b, 2-ое число – минимальное из чисел с и d. №4. Составить программу, осуществляющую перевод величин из радианной меры в градусную и наоборот. Программа должна запрашивать, какой перевод нужно осуществить, и выполнять указанное действие. №5. В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры M. На какой этаж должен доставить этот лифт пассажира? №6. Составить программу, которая проверяла бы, не приводит ли суммирование двух целых чисел А и В к переполнению (т.е. к результату большему чем 32767). Если будет переполнение, то сообщить об этом, иначе вывести сумму этих чисел. Уровень С. №1. Даны действительные числа а, b, с (a > 0). Полностью исследовать квадратное уравнение ax2 + bx + c = 0 (если действительных корней нет, то должно быть выдано сообщение об этом, иначе наитии действительные корни). №2. Найти наибольшее из трех чисел a, b, c. №3. Если сумма трех попарно различных действительных чисел X, Y, Z меньше единицы, то наименьшее из этих чисел заменить полусуммой двух других; в противном случае заменить меньшее из Х, Y полусуммой двух оставшихся значений. Вычисление значений функций №1. Вычислить значение функции. Значение переменной х вводим с клавиатуры: x 2 3x 9, если x 3 , a) f ( x) 1 x 3 6 , если x 3. x 2 4 x 5, если x 2; b) f ( x) 1 x 2 4 x 5 , если x 2. c) f ( x) x 2 x, если 0 x 1; 2 2 x sin x , если x 1 или 1,2 x 2 3x 9, если x 3; 12,1 , если x 3. 2 x 2 1 d) f ( x) x 2 1,1x 9, если x 3 ; e) f ( x) ln( x 3) , если x 3. x2 9 0, если x 0; f) f ( x) x, если 0 x 1; x 4 , если x 1. g) 3x5 8 x 4, если x 3; 1 f ( x) , если 3 x 9; x 2 x , если x 9. x 0. Определение принадлежности точки заштрихованной части плоскости. №1. Определить принадлежит ли точка А(x,y) заштрихованной части плоскости: Примечание: 1. Дано уравнение окружности x2 + y2 = r2 ((x – x0)2 + (y – y0)2 = r2). для точек лежащих внутри окружности условие выглядит так: x2 + y2 < r2 (x – x0)2 + (y – y0)2 < r2); для точек лежащих вне окружности условие выглядит так: x2 + y2 > r2 ((x – x0)2 + (y – y0)2 > r2); для точек лежащих на окружности условие выглядит так: x2 + y2 = r2 ((x – x0)2 + (y – y0)2 = r2); 2. Дано уравнение прямой y = kx + b. Для точек лежащих над прямой условие выглядит так y > kx + b; Для точек, лежащих под прямой, условие выглядит так y < kx + b; Для точек, лежащих на прямой условие выглядит так y = kx + b. 3. Дано уравнение параболы y = ax2 + bx + c. для точек лежащих внутри (над параболой) параболы условие выглядит так: y > ax2 + bx + cy2; для точек лежащих вне (под параболой) параболы условие выглядит так: y < ax2 + bx + cy2; для точек лежащих на параболе условие выглядит так: y = ax2 + bx + cy2. ПРОВЕРОЧНАЯ РАБОТА. Вариант №1. №1. Подсчитать количество положительных чисел среди a, b, c. №2. Написать программу, вычисляющую значение функции. x 2, если x 7; f ( x) ln( x) 9, если x 7. №3. Определить, принадлежит ли точка с координатами х и y заштрихованной части плоскости. Вариант №2. №1. Подсчитать сумму чисел, которые делятся на 5 без остатка среди a, b, c. №2. Написать программу, вычисляющую значение функции. cos 2 x 9, если 1 x 1; f ( x) 2 x x, если x 1 или x 1. №3. Определить, принадлежит ли точка с координатами х и y заштрихованной части плоскости. Вариант №3. №1. Подсчитать произведение четных чисел среди a, b, c. №2. Написать программу, вычисляющую значение функции. x 2 x 9, если x 8; f ( x) 1 x 4 6 , если x 8. №3. Определить, принадлежит ли точка с координатами х и y заштрихованной части плоскости. Вариант №4. №1. Подсчитать сумму чисел остаток от деления которых на 3 равен 1 среди чисел a, b, c. №2. Написать программу, вычисляющую значение функции. x 3 9, если x 13; f ( x) 3 x 1 , если x 13. №3. Определить, принадлежит ли точка с координатами х и y заштрихованной части плоскости.