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

Задача 80886 1)Составить блок схему и программу на...

Условие

1)Составить блок схему и программу на языке Паскаль для вычисления значения функции;
2) Составить блок схему и программу на языке Паскаль для решения задачи;

информатика 16

Решение

Ниже даны

• логическая последовательность действий (словесный алгоритм),
• блок-схемы в виде «текстовых» рисунков,
• программы на Pascal/FreePascal,

а также необходимые пояснения к обоим пунктам задания.

────────────────────────────────────────────────────────
1. Вычисление h = (13·√(x³) + sin²(5k)) / (3·x⁵ + 3·e^(–2k³) + 4)
────────────────────────────────────────────────────────
Анализ области определения
• подкоренное выражение x³ ≥ 0 ⇒ x ≥ 0;
• знаменатель D = 3·x⁵ + 3·e^(–2k³) + 4 ≠ 0.

Словесный алгоритм
1. Ввести x, k.
2. Проверить: x ≥ 0? Если нет – сообщение об ошибке.
3. Вычислить
 t₁ = √(x³);
 t₂ = sin(5·k);
 t₃ = t₂²;
 N = 13·t₁ + t₃ — числитель;
 D = 3·x⁵ + 3·e^(–2·k³) + 4 — знаменатель.
4. Проверить: D ≠ 0? Если D≈0 – сообщение об ошибке.
5. h = N / D.
6. Вывести h.

Блок-схема (ASCII-вариант)
```
┌────────┐
│ Старт │
└───┬────┘


┌──────────┐
│ Ввод x,k│
└───┬──────┘

┌──────────────────────┐
│ x<0 ? (ошибка?) │
└───┬──────┬───────────┘
│Нет │Да
│ ▼
│ Сообщение
│ «x<0» → Стоп

┌──────────────────────┐
│ t1:=sqrt(x^3) │
│ t2:=sin(5*k) │
│ t3:=t2^2 │
│ N :=13*t1+t3 │
│ D :=3*x^5+3*exp(-2*k^3)+4│
└───┬──────────────────┘

┌──────────────────────┐
│ |D|<ε ? (≈0 ?) │
└───┬──────┬───────────┘
│Нет │Да
│ ▼
│ Сообщение
│ «D=0» → Стоп

┌───────────────┐
│ h:=N/D │
└───┬───────────┘

┌───────────────┐
│ Вывод h │
└───┬───────────┘

┌────────┐
│ Стоп │
└────────┘
```

Программа на FreePascal/Delphi
```pascal
program CalcH;
uses Math;
var
x, k, h, num, den: Double;
const
EPS = 1E-12;
begin
Write('Введите x = '); ReadLn(x);
Write('Введите k = '); ReadLn(k);

if x < 0 then
begin
Writeln('Ошибка: x должно быть неотрицательным (x >= 0)');
Halt(1);
end;

num := 13 * Sqrt(Power(x,3)) + Sqr(Sin(5*k));
den := 3 * Power(x,5) + 3 * Exp(-2 * Power(k,3)) + 4;

if Abs(den) < EPS then
begin
Writeln('Ошибка: знаменатель обращается в ноль.');
Halt(1);
end;

h := num / den;
Writeln('h = ', h:0:10);
end.
```

────────────────────────────────────────────────────────
2. Средняя скорость автомобиля (половина времени со скоростью a, другая половина – со скоростью b)
────────────────────────────────────────────────────────
Пусть общее время движения — T часов.
• первую половину времени (T/2) машина шла со скоростью a,
• вторую половину времени (T/2) — со скоростью b.

Пройденные пути
S₁ = a·T/2, S₂ = b·T/2, S = S₁ + S₂ = (T/2)(a + b).

Средняя скорость v̅ = S / T = [(T/2)(a + b)] / T = (a + b) / 2.

Итак, если потраченные интервалы времени одинаковы, средняя скорость — обычное арифметическое среднее двух скоростей.

Словесный алгоритм
1. Ввести a, b.
2. v̅ = (a + b) / 2.
3. Вывести v̅.

Блок-схема (ASCII)
```
┌────────┐
│ Старт │
└───┬────┘

┌──────────┐
│ Ввод a,b │
└───┬──────┘

┌───────────────┐
│ v := (a+b)/2 │
└───┬───────────┘

┌───────────────┐
│ Вывод v │
└───┬───────────┘

┌────────┐
│ Стоп │
└────────┘
```

Программа на Pascal
```pascal
program AvgSpeed;
var
a, b, v: Double;
begin
Write('Скорость a (км/ч): '); ReadLn(a);
Write('Скорость b (км/ч): '); ReadLn(b);

v := (a + b) / 2;
Writeln('Средняя скорость за весь путь = ', v:0:3, ' км/ч');
end.
```

Пояснение результата
• Если участки пути равны, надо было бы применять гармоническое среднее.
• В нашей задаче равны интервалы времени, поэтому ответ (a + b)/2 корректен.

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

Меню

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