1.2 Программирование линейных алгоритмов
Рассмотрим задачу вычисления и вывода на экран компьютера параметров геометрических фигур (рисунок 1.8).
Фигуры более сложной конфигурации рекомендуется расчленить на треугольники и выполнять вычисления для каждого из них. Предполагается, что условия существования заданной фигуры всегда выполняются, поэтому никакой проверки существования в программе не требуется.
В формулах и заданиях для треугольников (рис. 1.8, а) используются следующие обозначения: а, b, с — стороны треугольника; А, В, С — углы треугольника, противолежащие соответствующим сторонам; ha , hb, hc — высоты треугольника, опущенные соответственно на стороны а, b и с; р, S — соответственно половина периметра и площадь треугольника; r, R — радиус соответственно вписанной и описанной окружностей.
а – треугольник; б – ромб; в – трапеция
Рисунок 1.8 – Обозначения элементов геометрических фигур
Приведем основные теоремы и формулы, необходимые для решения треугольников:
- теорема синусов;
- теорема косинусов;
- формула Герона;
В формулах и заданиях для ромба (рис. 1.8, б) используются следующие обозначения: а — сторона ромба; А, В, С, D — углы ромба; d1, d2 — диагонали ромба; р, S— соответственно периметр и площадь ромба.
В формулах и заданиях для трапеции (рис. 1.8, в) используются следующие обозначения: а, с — боковые стороны; b, d— соответственно верхнее и нижнее основания; А, В, С, D — углы; h, e —соответственно высота и диагональ; р, S — соответственно периметр и площадь.
При расчете элементов трапеции кроме приведенных для треугольников соотношений используются формулы:
Для программирования вычислений с помощью приведенных формул в языке С предусмотрена библиотека математических функций, которая содержит, в частности, стандартные функции для вычисления тригонометрических функций sin(x), cos(x) и tan(x), а также обратных тригонометрических функций asin(x), acos(x) и atan(x). Указанная библиотека подключается к программе с помощью директивы # include <math.h>.
Внимание. Аргументы тригонометрических функций обязательно следует выражать в радианах. Результаты вычисления обратных тригонометрических функций также представляются в радианах. Для пересчета углов из градусов в радианы служит соотношение
Примечание. В библиотеке математических функций отсутствует стандартная функция для вычисления котангенса, который может быть вычислен по формуле
Для вычисления арккотангенса следует использовать соотношение
Рассмотрим пример программы (листинг 1.1, рис. 1.9).
Условие задачи. В треугольнике заданы две стороны а, b и угол напротив одной из них А. Определить сторону с, углы B и С и площадь треугольника S (линейные размеры вводить и выводить в см, площадь — в см2, углы — в градусах).
Расчетные формулы. При решении задач воспользуемся следующими формулами:
из теоремы синусов —
сумма углов треугольника 180° —
из теоремы синусов —
Листинг 1.1 Решение треугольника по двум сторонам и углу напротив одной из них.
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;