А26

Задача:

Найти площадь сектора, радиус которого равен 13.7, а дуга содержит заданное число радиан [latex] \varphi[/latex].

Тесты:

Ввод Вывод Результат
1 93.845 Площадь найдена
-1 Неверный ввод Неправильные данные, подсчет невозможен
0.7 65.691 Площадь найдена
8.36 784.544 Площадь найдена
0 Неверный ввод Неправильные данные, подсчет невозможен
3.14 294.673 Площадь найдена

Код программы:

Решение:
Площадь сектора находится по формуле [latex]S=\frac{\varphi}{2}r^2[/latex], после чего выводится на экран. В случае, если введённый угол меньше или равен нулю, программа выдает сообщение о неверном вводе.

Использованную формулу можно найти по этой ссылке,  а здесь  находится код в Ideone.

 

 

Related Images:

Ю 3.4

Задача: Прямоугольник на плоскости [latex]a \le x \le b, \quad c \le y \le d[/latex] задаётся четырьмя числами (его габаритами): [latex]a, b, c, d.[/latex] Последовательно вводятся габариты [latex]n[/latex] прямоугольников. В процессе ввода находить площадь их пересечения, не запоминая самих габаритов.

NI — «no intersection» — нет общего сегмента

[latex]a[/latex] [latex]b[/latex] [latex]c[/latex] [latex]d[/latex] [latex]S[/latex] Комментарий
1 -5 -3 1 4 NI Пройден: нет общего интервала
-2 0 1 4
2 0 4.5 1.2 4.6 NI Пройден: нет общего интервала
2 4 5 7.4
3 2 5 1 4 NI Пройден: общая сторона не считается пересечением, т.к. даёт нулевую площадь
5 6 1 4
4 2 4 2 4 4 Пройден
2 4 2 4
5 2 5 1 4 NI Пройден: не все данные прямоугольники имеют общий сегмент
0 3 2 3
6 7 3 5
6 0 7 0 3 1 Пройден
2 6 1 5
3 5 2 5
4 8 2 3
 

Алгоритм решения:
1. Для удобства, запрограммировать задачу можно, сведя её к одномерному случаю: рассматривать проекции сторон прямоугольников на координатные оси. (см. рис. 1)
2. Проверка на пересечение: данные прямоугольники пересекаются и имеют общую площадь, если их проекции имеют общий интервал значений, больший одной точки.
3. Так как запоминать габариты прямоугольников нельзя по условию, работать будем с габаритами «общего» прямоугольника, которые сохраняются соотв. в переменные [latex]x1 \le x2, y1 \le y2[/latex]. Если новый прямоугольник пересекается с «общим», то определить обновленные габариты общего прямоугольника и рассчитать площадь(см. рис. 2). Если не пересекается, то выполнение программы прерывается, т.к. нужно вывести площадь прямоугольника, общего для всех [latex]n[/latex] прямоугольников.

Значения переменных в условии задачи не ограничены, так что для хранения габаритов был использован тип double, для всех порядковых переменных — тип int.

Протестировать решение можно по ссылке.

Related Images:

Ю1.22

Задача.

Треугольник задается координатами своих вершин на плоскости: [latex]A(x1,y1)[/latex], [latex]B(x2,y2)[/latex], [latex]C(x3,y3)[/latex]. Найти площадь треугольника ABC.

Тесты.

A B C Площадь Комментарий
[latex](0;0)[/latex] [latex](0;4)[/latex] [latex](5;0)[/latex] 10 Пройден
[latex](-1.5;2)[/latex] [latex](2.5;-2)[/latex] [latex](4;4.25)[/latex] 15.5 Пройден
[latex](0;1)[/latex] [latex](0;3)[/latex] [latex](0;4)[/latex] 0 Пройден

В третьем примере имеем вырожденный треугольник, для которого площадь будет равна нулю.

Код.

С++

Java

Решение.

Для вычисления площади воспользуемся формулой:

[latex]S_{ABC}=\frac{\left|(x_{B}-x_{A})(y_{C}-y_{A})-(x_{C}-x_{A}) (y_{B}-y_{A})\right|}{2}[/latex]

Для выполнения программы и проверки тестов можно воспользоваться данной ссылкой (C++) или другой (Java).

Related Images: