Операции отношения =, <, >, <=, >=, <>
возвращают значение типа boolean (true или false)
Выражение отношения – два выражения, связанных операцией отношения.
Семантика:
Вычисляются значения выражений;
Проверяется истинность отношения
Например:
a:=1; b:=2;c:=3;
2*a>=b+c
соответствует 2≥5 значение FALSE
Условный оператор if…then…elseполная форма
Синтаксис:
if <логическое выражение>
then <оператор1>else <оператор2>;
Семантика:
1. Вычисляется значение <логического выражения>
2. Если <логическое выражение> истинно (TRUE), то выполняется оператор1, иначе выполняется оператор2.
Пример:
If2. Дано целое число N.
Если оно положительное, то прибавить к нему 1; если отрицательно вычесть из него 2.
Вывести полученное число.
program if_2;
var n: integer;
begin
write ('введите целое число n=');
readln (n);
if n>0
then n:=n+1
else n:=n-2;
writeln ('n=',n);
end.
Условный оператор if…then…краткая форма (обход)
Синтаксис:
if <логическое выражение> then <оператор1>;
Семантика:
1. Вычисляется значение <логического выражения>
2. Если <логическое выражение> оказывается истинным (TRUE), то выполняется оператор1, иначе переход к следующему оператору.
Пример:
If6. Даны два числа. Вывести большее из них
program a_max_b;
var a,b,max : real;
begin
writeln ('введите числа a и b');
readln (a,b);
writeln ('a=',a,' b=',b);
max:=b;
if a>b then max:=a;
writeln ('max=',max);
end.
Условный оператор
Если в ветвях необходимо выполнить несколько операторов то используется составной оператор (блок - begin…end).
Пример
If9. Даны две переменные A, B. Поместить в A меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.
program aib;
var a,b,v:real;
begin
writeln ('введите числа a и b');
readln(a,b);
writeln ('a=',a,' b=',b);
if a>b then begin v:=a; a:=b; b:=v; end;
writeln ('a=',a,' b=',b);
end.
Решение задач на ветвление
Задача 1. Дано целое число. Если оно положительное, то удвоить его; если отрицательное, то вычесть из него 2; если нулевое, то заменить его на 10. Вывести полученное число .
Задача 2. Даны три числа. Найти наименьшее из них.
Задача 3. Даны координаты точки, не лежащие на OX и OY. Определить номер координатной четверти для точки.
Задача 4. Для данного вещественного x найти значение функции f(х)
Задача 5. Для данного вещественного x найти значение функции f(х).
Задача 6. Программа проверки знания таблицы умножения. Использовать функцию Random(х).
Решение задач на ветвление
Задача 1. Дано целое число. Если оно положительное, то удвоить его; если отрицательное, то вычесть из него 2; если нулевое, то заменить его на 10. Вывести полученное число .
program if_2;
var
n: integer;
begin
write('введите целое число n=');
readln(n);
if n>0
then n:=2*n
else
begin
if n=0
then n:= n+10
else n:=n-2;
end;
writeln ('n=',n);
end.
Решение задач на ветвление
Задача 2. Даны три числа.
Найти наименьшее из них.
program if_2;
var x,y,z,min :real;
begin
writeln ('введите три числа x y z');
readln(x,y,z);
writeln ('x=',x,' y=',y,' z=',z);
min:=x;
if min>y then min:=y;
if min>z then min:=z;
writeln ('min=',min);
end.
Решение задач на ветвление
Задача 3. Даны координаты точки, не лежащие на OX и OY. Определить номер координатной четверти для точки.
program XOY;
var x,y :real;
n: integer;
begin
writeln ('введите координаты точки x y');
readln(x,y);
writeln ('x=',x,' y=',y);
if x>0 then begin
if y>0 then n:=1
else n:=4;
end
else begin
if y>0 then n:=2
else n:=3;
end;
writeln ('четверть n=',n);
end.
Логические операции and, or, not
Логические операции - применяют к операндам типа boolean, они возвращают значение типа boolean
бинарные операции and, or и xor, унарная not,
Логическое выражение – имеют тип boolean.
Not - логическое отрицание
And – логическое умножение
Or - логическое сложение
Xor – или-не, строгое или.
a | b | a and b | a or b | a xor b | not a |
0 | 1 | ||||
1 | 0 | 1 | |||
1 | 0 | 0 | |||
0 |
Вычисление составной функции
По значению x вычислить значение составной функции y, заданной в виде графика
program calc_function_1;
var x, y : real;
begin
writeln(' Введите значение аргумента'); readln(x);
if x < -2 then y := 0;
if (x >= -2) and (x < -1) then y := -x - 2;
if (x >= -1) and (x < 1) then y := x;
if (x >= 1) and (x < 2) then y := -x + 2;
if x >= 2 then y := 0;
writeln('Для x = ', x, ' y = ', y);
end.
Задачи на логические выражения
If28. Дан номер года. Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются).
If29. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д.
If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т. д.
Задачи на логические выражения
If28. Дан номер года. Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются).
Дано:
N – год (integer)
Найти: число дней D
Делится на 4 N mod 4 =0
Делится на 100 N mod 100 =0
Не делится на 400 N mod 400 <>0
(N mod 4=0) and not((N mod 100=0) and (N mod 400<>0))
program god;
var N,D:integer;
begin
writeln ('введите год');
readln (N);
D:=365;
if (N mod 4=0) and not ((N mod 100=0) and (N mod 400<>0)) then D:=366;
writeln('в году ', N, ' число дней=',D);
end.
Задачи на логические выражения
If29. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д.
Дано: N – целое
Найти:словесное описание
Отрицательное четное
(N<0) and (N mod 2=0)
Отрицательное нечетное
(N<0) and (N mod 2<>0)
Нулевое
N=0
Положительное четное
(N>0) and (N mod 2=0)
Положительное нечетное
(N>0) and (N mod 2<>0)
program god;
var N:integer;
begin
write ('введите N=');
readln (N);
if (N<0) and(N mod 2=0) then writeln ('отрицательное четное');
if (N<0) and(N mod 2<>0)
then writeln ('отрицательное нечетное');
if (N=0)
then writeln ('нулевое');
if (N>0) and(N mod 2=0)
then writeln ('положительное четное');
if (N>0) and(N mod 2<>0)
then writeln ('положительное нечетное');
end.
Задачи на логические выражения
If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т. д.
Дано: N – целое (1-999)
Найти:словесное описание
Цифра четная
(N<10) and (N mod 2=0)
Цифра нечетная
(N<10) and (N mod 2<>0)
Двухзначное четное
(10
(10
(N>100) and (N mod 2=0)
Трехзначное нечетное
(N>100) and (N mod 2<>0)
program god;
var N:integer;
begin
write ('введите N=');
readln (N);
if (N<10) and(N mod 2=0) then writeln ('цифра четная');
if (N<10) and(N mod 2<>0) then writeln ('цифра нечетная');
if (10
if (10
if (N>100) and (N mod 2=0) then writeln ('трехзначное четное');
if (N>100) and (N mod 2<>0) then writeln ('трехзначное нечетное');
end.
Задачи на логические выражения
Заданы координаты точки (x,y). Определить, где находится точка.
Program v16_1;
Var x,y:real;
begin
writeln('Введите координаты точки:');
write('x= ');readln(x);
write('y= ');readln(y);
if (x>0) and (y>0) then writeln('Точка находится в первой четверти');
if (x<0) and (y>0) then writeln('Точка находится во второй четверти');
if (x<0) and (y<0) then writeln('Точка находится в третьей четверти');
if (x>0) and (y<0) then writeln('Точка находится в четвертой четверти');
if (x=0) or (y=0) then writeln('Точка находится на оси координат');
end.
Дано: (x,y) - координаты
Найти: четверть
Решение:
(x>0) and (y>0) в первой четверти
(x<0) and (y>0) во второй четверти
(x<0) and (y<0) в третьей четверти
(x>0) and (y<0) в четвертой четверти
(x=0) or (y=0) на оси координат
© ООО «Знанио»
С вами с 2009 года.