Пример 2.2 выполнения задания
С оставить программу вычисления Z – номера области (см. рисунок), в которую попадает точка с координатами (X,Y),
с помощью одного оператора if then else двумя способами:
без применения булевских операций (not, and, or, xor) и сохранением результата в переменной Z1,
с применением булевских операций и сохранением результата в переменной Z2.
Все области, кроме области с номером 1 с границей в виде дуги окружности радиуса R=5, бесконечны. Точку, лежащую на границе областей, можно считать принадлежащей любой из них.
Вывести с поясняющими текстами значения Х, Y и вычисленные значения Z1 и Z2.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
R=5;
var
X,Y:Real;
Z1,Z2:Byte;
begin
//Ввод значения аргумента функции
Write('X, Y: '); ReadLn(X, Y);
//Определение Z1 - номера области, которой принадлежит точка,
//без применения булевских операций.
//Если точка лежит в нижней полуплоскости или на оси X,
if Y<=0 then //то
Z1:=4 //переменной Z1 присвоить значение 4,
else //иначе, то есть точка лежит в верхней полуплоскости,
if Y<=X then //если Y не больше X, то
Z1:=4 //переменной Z1 присвоить значение 4,
else //иначе, то есть точка вне области 4,
if Y<-X then //если точка лежит ниже прямой,
//разделяющей области 2 и 3, то
Z1:=3 //переменной Z1 присвоить значение 3,
else //иначе, то есть точка лежит выше или на прямой,
//разделяющей области 2 и 3,
if X<=0 then //если Х<=0, то
Z1:=2 //переменной Z1 присвоить значение 2,
else //иначе, то есть точка лежит в первой
//четверти в области 1 или 2,
if Sqr(X)+Sqr(Y)<=Sqr(R) then //если расстояние до
//точки от начала координат не превосходит R, то
Z1:=1 //точка лежит в области 1,
else //иначе, то есть расстояние до точки
//от начала координат превосходит R, значит
Z1:=2; //точка лежит в области 2.
WriteLn('Z1 = ', Z1);
//Определение номера Z2 - области, которой принадлежит точка,
//с применением булевских операций.
if (Y<=0)or(Y<=X) then //Если точка принадлежит области 4, то
Z2:=4 //переменной Z2 присвоить значение 4,
else //иначе, то есть точка не принадлежит области 4,
if Y<-X then //если точка принадлежит области 3, то
Z2:=3 //переменной Z2 присвоить значение 3,
else //иначе, то есть точка вне областей 3 и 4,
if (Sqr(X)+Sqr(Y)<=Sqr(R)) and (X>=0) then // если точка
//принадлежит области 1, то
Z2:=1 //переменной Z2 присвоить значение 1,
else //иначе, то есть точка вне областей 1, 3 и 4,
Z2:=2; //переменной Z2 присвоить значение 2.
WriteLn('Z2 = ', Z2);
ReadLn;
end.
Задания 2 для самостоятельной проработки
В заданиях с номерами от 1 до 25 требуется для зависимости Y(X), заданной аналитически или графиком, составить программу вычисления для вводимого X:
Y1 = Y(X) – с помощью минимального числа операторов if then else, без применения булевских операций (not, and, or, xor),
Y2 = Y(X) – с помощью минимального числа операторов if then (без else), с применением булевских операций,
и вывода с поясняющими текстами вычисленных значений Y1 и Y2.
Для значений аргумента, при которых функция не определена, выводить соответствующие сообщения.
В заданиях с графиками функций (см. Пример 2.1 выполнения задания):
стрелка на линии графика указывает открытую границу интервала, в котором функция имеет заданное положением линии значение,
в точках отсутствия линии графика функция не определена.
где скобки обозначают целую часть числа, а знак – остаток от деления целого числа на 2
В заданиях с номерами от 26 до 30 требуется для рисунков, на которых области обозначены римскими цифрами, составить программу вычисления для вводимых X и Y:
Z1 – номера области с помощью минимального числа операторов if then else, без применения булевских операций (not, and, or, xor),
Z2 – номера области с помощью минимального числа операторов if then (без else), с применением булевских операций.
и вывода с поясняющими текстами вычисленных значений Z1 и Z2.
Точку, лежащую на границе областей, можно считать принадлежащей любой из них.
1 Сложные операторы включают в себя другие операторы