Задать свой вопрос   *более 50 000 пользователей получили ответ на «Решим всё»

Задача 80894 1) Составить алгоритм в виде блок-схемы...

Условие

1) Составить алгоритм в виде блок-схемы и программу на языке Паскаль, которая печатает "принадлежит", если точка с координатами (x, y) принадлежит заштрихованной области, и "не принадлежит" в противном случае.
2) Составить блок-схему и программу на языке паскаль для вычисления значения функции

информатика ВУЗ 55

Решение

1. Определение принадлежности точки заштрихованному треугольнику

1.1. Анализ рисунка
Из рисунка видно, что закрашена внутренняя область равнобедренного треугольника
A(-1;-1), B(1;-1), C(0;3).

Уравнения его сторон:
• AB : y = –1 , –1 ≤ x ≤ 1 (основание);
• AC : y = 4x + 3 , –1 ≤ x ≤ 0 ;
• BC : y = –4x + 3 , 0 ≤ x ≤ 1 .

Точка (x,y) принадлежит треугольнику ⇔
–1 ≤ x ≤ 1 , –1 ≤ y ≤ 3 и
( x ≤ 0 ⇒ y ≤ 4x+3 ) и
( x ≥ 0 ⇒ y ≤ –4x+3 ).

1.2. Блок-схема (словесное описание)
Начало → ввод x,y → проверка «выход за рамки» (|x|>1 ˅ y<-1 ˅ y>3?)
да → «не принадлежит» → Конец
нет → ветвление «x≤0?» →
Левая сторона: y≤4x+3? → да: «принадлежит», нет: «не принадлежит»
Правая сторона: y≤-4x+3? → да: «принадлежит», нет: «не принадлежит»
→ Конец.

1.3. Программа на Pascal

```pascal
program PointInTriangle;
var
x, y : real;
begin
writeln('Введите x и y:');
readln(x, y);

if (x < -1) or (x > 1) or (y < -1) or (y > 3) then
writeln('не принадлежит')
else
if x <= 0 then { левая половина }
if y <= 4*x + 3 then
writeln('принадлежит')
else
writeln('не принадлежит')
else { правая половина }
if y <= -4*x + 3 then
writeln('принадлежит')
else
writeln('не принадлежит');
end.
```

Пояснение: сначала отсеиваем все точки вне минимального прямоугольника (быстро), затем сравниваем с прямыми AC или BC в зависимости от знака x.

─────────────────────────────────────────────────────────
2. Вычисление функции h (задача 2.3.16)

⎧ e^y + ³√(8·b⁴) , если b ≥ 8
h(b,y)= ⎨
⎩ 6y – sin(8·b³), если b < 8

2.1. Блок-схема (словесно)
Начало → ввод b, y → условие «b ≥ 8?» →
да → h := e^y + (8·b⁴)^(1/3) → вывод h → Конец
нет → h := 6y – sin(8·b³) → вывод h → Конец.

2.2. Программа на Pascal

```pascal
program CalcH;
uses Math; { для exp, power, sin }

var
b, y, h : real;

begin
writeln('Введите b и y:');
readln(b, y);

if b >= 8 then
h := exp(y) + power(8*power(b,4), 1/3) { кубический корень }
else
h := 6*y - sin(8*power(b,3));

writeln('h = ', h:0:6);
end.
```

Пояснение:
• exp(y) – функция e^y;
• power(A,1/3) – кубический корень из A;
• в ветви b<8 используется обычный синус (радианы).

Обе программы можно изобразить указанных выше блок-схемами; логика в коде в точности отражает шаги алгоритмов.

Написать комментарий

Меню

Присоединяйся в ВК