Разбиваем заштрихованную область на контуры, ограниченные линиями, уравнения которых мы можем написать. Считаем, что сами линии (границы области) тоже входят в нее. Если это не так, все неравенства, указанные ниже, должны быть строгими.
В I четверти:
Контур - окружность. Уравнение окружности x² + y² = r².
Из графика видно, что r = 6, поэтому все, что лежит внутри круга и на нем, удовлетворяет уравнению x² + y² ≤ 6² или x² + y² ≤ 36
Принадлежность I четверти определяется условием (x ≥ 0) и (y ≥ 0).
Получаем логическое выражение (x² + y² ≤ 36) ∧ (x ≥ 0) ∧ (y ≥ 0)
В IV четверти:
Контур - прямоугольный треугольник. В соответствии с графиком уравнение его гипотенузы y = x - 6.
Принадлежность IV четверти определяется условием (x ≥ 0) и (y ≤ 0).
Получаем логическое выражение (y ≥ x - 6) ∧ (x ≥ 0) ∧ (y ≤ 0)
Точка, принадлежащая заштрихованной области или её контуру, может находиться в одной из рассмотренных выше четвертей, поэтому полученные логические выражения объединяем через ИЛИ:
[(x² + y² ≤ 36) ∧ (x ≥ 0) ∧ (y ≥ 0)] ∨ [(y ≥ x - 6) ∧ (x ≥ 0) ∧ (y ≤ 0)]
Сделаем упрощение:
(x ≥ 0) ∧ { [ (x² + y² ≤ 36) ∧ (y ≥ 0) ] ∨ [ (y ≥ x - 6) ∧ (y ≤ 0) ] }
С учетом старшинства логических операций можно часть скобок опустить
(x ≥ 0) ∧ [ (x² + y² ≤ 36) ∧ (y ≥ 0) ∨ (y ≥ x - 6) ∧ (y ≤ 0) ]
В языке Паскаль это выражение запишется так:
(x>=0) and ((x*x+y*y<=36) and (y>=0) or (y>=x-6) and (y<=0))
Теперь несложно написать саму программу.
<em>// PascalABC.NET 3.3, сборка 1576 от 16.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var (x,y):=ReadReal2('Введите через пробел x и y:');
Writeln((x>=0) and ((x*x+y*y<=36) and (y>=0) or (y>=x-6) and (y<=0)))
end.
<u>Примеры</u>
Введите через пробел x и y: 3 2.5
True
Введите через пробел x и y: 6 0
True
Введите через пробел x и y: 5.8 3
False
Введите через пробел x и y: 3 -2
True
Введите через пробел x и y: 4 -3
False
var
A, B, C, i: Integer;
begin
Write ('Введите значение A: ');
ReadLn (A);
Write ('Введите значение B: ');
ReadLn (B);
Write ('Введите значение C: ');
ReadLn (C);
i := 0;
if A mod 2 = 0 then
Inc (i);
if B mod 2 = 0 then
Inc (i);
if C mod 2 = 0 then
Inc (i);
Writeln ('Количество четных чисел = ' + IntToStr (i));
end;
Ответ:
Приложил скрин, т.к тут выглядит плохо
ꟷꟷꟷꟷꟷꟷ
Не забывайте сказать "Спасибо"! и, если ответ удовлетворил, то выберите его как "Лучший"
Бодрого настроения и добра!
Успехов в учебе!
var
x, sum:integer;
Begin
Write('Введите число '); Readln(x);
while (x > 0) do begin
sum:= sum + x mod 10;
x:=x div 10
end;
if (sum mod 2 = 0)then
Writeln('YES')
else
Writeln('NO');
end.
Const
x = 0.75;
eps = 0.5e-3;
var
s, y1, y2, n, sgn, x2, prevf: real;
begin
{для второго члена последовательности}
x2 := sqr(x);
prevf := 2;
y1 := 1; {первый член последовательности}
y2 := x2 / prevf; {второй член последовательности}
s := y1; {накопленная сумма ряда}
n := 1; {последний член последовательности в сумме}
sgn := 1; {знак очередного члена ряда}
while abs(y1 - y2) >= eps do
begin
s := s + y2; {продолжаем накопление}
n := n + 1;
y1 := y2;
x2 := x2 * sqr(x);
prevf := prevf * (2 * n - 1) * 2 * n;
sgn := -sgn;
y2 := sgn * (2 * n - 1) * x2 / prevf
end;
writeln('Сумма ряда из ',n, ' членов равна ', s)
end.
Тестовое решение:
Сумма ряда из 5 членов равна 1.24291779994965