Разветвляющиеся алгоритмы if Оператор условия if
Определение «развилки» Разветвляющимся называется такой алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса. Каждый подобный путь называется ветвью алгоритма.
Условие как признак «развилки» Простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют операндами), связанных одним из знаков: - больше, чем... = - больше, чем... или равно <> - не равно = - равно Например, x-y>10; k 11; мама<>папа
Истинность и ложность приложений Выражения, при подстановке в которые некоторых значений переменных, о нем можно сказать истинно (верно) оно или ложно (неверно) называются булевыми (логическими) выражениями. Напоминание Переменная, которая может принимать одно из двух значений: True (правда) или False (ложь), называется булевой (логической) переменной. Примеры: К:=True; Flag:=False; Second:=a+sqr(x)>t
Разберём пример: Задача. Вычислить значение модуля и квадратного корня из выражения (х-у). Для решения этой задачи нужны уже знакомые нам стандартные функции нахождения квадратного корня - Sqr и модуля - Abs. Поэтому Вы уже можете записать следующие операторы присваивания: Koren:=Sqrt(x-y); Modul:=Abs(x-y).
Листинг программы Program Znachenia; Uses Crt; Var x, y : integer; Koren, Modul : real; Begin ClrScr; write (Введите значения переменных х и у через пробел ); readln (x, y); Koren:=Sqrt(x-y); Modul:=Abs(x-y). write (Значение квадратного корня из выражения (х-у) равно ); write (Значение модуля выражения (х-у) равно ); readln; End.
Одно из «золотых» правил программирования Каждая программа, насколько это возможно, должна осуществлять контроль за допустимостью величин, участвующих в вычислениях (разветвление алгоритма в зависимости от условия). Для реализации таких условных переходов в языке Паскаль используют операторы If и Else, а также оператор безусловного перехода Goto.
Оператор IF Алгоритм если х>=у, то вычислить значение квадратного корня, иначе выдать на экран сообщение об ошибочном введении данных. Программный код if x>=y then Koren:=Sqrt(x-y) else write (Введены недопустимые значения переменных);
Общий вид условного оператора if then else Сначала вычисляется значение логического выражения, расположенного за служебным словом IF. Если его результат истина, выполняется, расположенный после слова THEN, а действия после ELSE пропускаются; если результат ложь, то, наоборот, действия после слова THEN пропускаются, а после ELSE выполняется.
Использование операторных скобок Если в качестве оператора должна выполниться серия операторов, то они заключаются в операторные скобки begin-end. Конструкция Begin... End называется составным оператором. if then begin оператор 1; оператор 2;... end else begin оператор 1; оператор 2;... end;
Определение составного оператора Составной оператор - объединение нескольких операторов в одну группу. Группа операторов внутри составного оператора заключается в операторные скобки (begin-end). begin оператор 1; оператор 2; end;
Оптимизированное решение Program Znachenia; Uses Crt; Var x, y : integer; Koren, Modul : real; Begin ClrScr; write (Введите значения переменных х и у через пробел ); read (x, y); if x>=y then begin Koren:=Sqr(x-y) Modul:=Abs(x-y) write (Значение квадратного корня из выражения (х-у) равно ); write (Значение модуля выражения (х-у) равно ); end else write (Введены недопустимые значения переменных); readln; End.
Когда точки с запятой ставить НЕ НАДО! Большинство операторов в программах на языке Паскаль заканчиваются точкой с запятой, но после некоторых операторов точка с запятой не ставится: 1. Каждое описание переменной и определение константы заканчиваются точкой с запятой. 2. Каждый оператор в теле программы завершается точкой с запятой, если сразу за ним не следуют зарезервированные слова End, Else, Until. 3. После определенных зарезервированных слов, таких, как Then, Else, Var, Const, Begin, никогда не ставится точка с запятой.
Нахождение большего из чисел Program Example1; Var x, y : integer; {вводимые числа} Begin writeln(Введите 2 числа ); {вводим два целых числа через пробел} readln(x,y); if x>y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим y} readln; End.
Неполная форма условного оператора if then Если выражение, расположенное за служебным словом IF. в результате дает истину, выполняются действия после слова THEN, в противном случае эти действия пропускаются.
Пишем свой собственный ABS! Program Chisla; Var x : integer; {вводимое число} Begin writeln(Введите число ); {вводим целое число} readln(x); if x<0 then x:=-x; writeln (x); readln; End.
Решение задач Если целое число М делится нацело на целое число N, то вывести на экран частное от деления, в противном случае вывести сообщение М на N нацело не делится. Запишите условный оператор, в котором значение переменной с вычисляется по формуле a+b, если а - нечетное и a*b, если а - четное. Найти количество положительных (отрицательных) чисел среди четырех целых чисел A, B, C, D. Компьютер спрашивает: "Что сегодня нужно всем?" и если получает ответ ЭВМ, то пишет "Ну, конечно ЭВМ!", иначе "Это тоже нужно всем, но нужнее ЭВМ!" Написать программу, рисующую круг в случае введения пользователем числа 1 и квадрат во всех других случаях (использовать текстовый и графический режим).