Тема: Условный оператор. Логические выражения.

Разветвляющимся называется алгоритм, позволяющий выбрать одно из нескольких возможных направлений решения задачи.

В языках программирования ветвление реализуется с помощью условного оператора.

полное ветвление:

if логическое условие then оператор 1

else оператор 2;

неполное ветвление:

if логическое условие then оператор 1;

Буквально перевести эту конструкцию можно так: "Если условие истинно, то выполнить оператор 1, иначе оператор 2"

Перед else точка с запятой не ставится!

Вначале проверяется логическое выражение, если оно верно, то выполняется Оператор 1, после этого выполняется часть программы, расположенная ниже, если условие ложно, то Оператор 1, не выполняется, выполняется оператор ниже.

Логическое условие может содержать одно или несколько условий с функциями and (и), or (или), not (не).

Например, условие для принадлежности числа x интервалу (0;10): (x>0) and (x<10)

Операторы 1 и 2 могут быть простыми и составными.

Если оператор составной (состоит из нескольких команд), то он заключается в логические скобки begin … end;

Задача 1. Составим программу, находящую из двух чисел A и B большее.

a, b – исходные данные

с – результат (большее из чисел)

Program bol;

var a, b, c: integer;

begin

writeln (‘введите два числа’);

readln (a, b);

if a>b then c:=a

else c:=b;

writeln (‘c= ’, c);

end.

Задача 2. Записать условный оператор, определяющий, является ли треугольник со сторонами a, b, c равносторонним?

if (a=b) and (b=c) and (a=c) then writeln(‘треугольник равносторонний’)

else writeln(‘треугольник не равносторонний’);

Задача 3. Дано x. Вычислить F.

if (x>=0) and (x<=4) then F:=4*x*x+5 else F:=1/(3*x);

Задача 4. Найти корни квадратного уравнения ax2+bx+c=0. Если их нет, то сообщить об этом.

Program kor;

var a, b, c: integer;

d, x1,x2 : real;

begin

writeln (‘введите числа a, b, c’);

readln (a, b, c);

d:=b*b-4*a*c;

if d>=0 then begin

if d=0 then begin

x1:=-b/(2*a);

x2:=x1;

end

else begin

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

end;

writeln(‘x1= ’, x1:6:2,’ x2= ’,x2:6:2);

end

else writeln(‘корней нет’);

end.

Рассмотрим еще один пример.

Задача. Вывести на экран большее из двух данных чисел.

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, в противном случае эти действия пропускаются.

Задача. Составить программу, которая, если введенное число отрицательное, меняет его на противоположное.

Program Chisla;
Var
x : integer; {вводимое число}
Begin
writeln('Введите число '); {вводим целое число}
readln(x);
if x<0
then
x:=-x;
writeln (x);
readln;
End.


Задачи для самостоятельного выполнения:

Сумма покупки составляет а рублей. Если а больше 1000 рублей, то предоставляется скидка 15%. Вывести на экран сумму покупки с учетом скидки либо сообщение о том, что скидка не предоставляется. Известны площади круга и квадрата. Определить:
    уместится ли круг в квадрате уместится ли квадрат в круге
Определить, является ли число а делителем числа b Проверить, принадлежит ли число введенное с клавиатуры, интервалу (-5;3). Дано двузначное число. Определить:
    входит ли в него цифра 3 входит ли в него цифра а
Определить, является ли треугольник со сторонами a, b, c равнобедренным Даны три различных числа. Определить, какое из них (первое, второе или третье)
    самое большое самое маленькое является средним


Домашнее задание:

Задание 1. Составьте программу, решающую следующую задачу:

Даны две точки с координатами x1, y1, x2, y2. Определить, какая из двух точек находится ближе к началу координат.

x1, y1, x2, y2 – координаты двух точек (исходные данные)

d1, d2 – расстояния от каждой точки до начала координат (вспомогательные переменные)

результат – выведенная на экран строка:

Первая точка ближе (если d1<d2)

Вторая точка ближе (если d2<d1)

Задание 2. Составьте программу, определяющую, является ли сумма цифр данного четырехзначного числа n четным числом.