Program Kvadrat;
var a:real;
begin
writeln('Введите длину стороны квадрата');
readln(a);
writeln('Площадь квадрата = ', sqr(a));
end.
Произведение можно найти с помощью факториала. Эта функция есть и на калькуляторе, так что можно было ей воспользоваться.
10!=10*9*8*7*6*5*4*3*2=3628800
код 0011 - 4 бита или 4/8 = 0.5 байта.
Изображение содержит 800х600 = 480000 точек и если для кждой нужно 0.5 байта, то для изображения потребуется 480000х0.5=240000 байт.
750 Кбайт памяти - это 750х1024 = 768000 байт.
768000 / 240000 = 3.2. Так что всего 3 изображения.
Разбиваем заштрихованную область на контуры, ограниченные линиями, уравнения которых мы можем написать. Считаем, что сами линии (границы области) тоже входят в нее. Если это не так, все неравенства, указанные ниже, должны быть строгими.
В 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
N1 = 21 * 2 + 10 + 9 = 61 => i1 = 6 бит.
k1 = 15 * 6 / 8 = 11 * 1/4 => 12 байт.
N2 = 10 => i2 = 4 бит.
k2 = 4 * 4 / 8 = 16 / 8 = 2 байт.
K = 2 + 12 + 25 = 39 байт
Ответ: 39
Примерно так