Вычислить длину стороны a и площадь S восьмиугольника, который или вписан в окружность с радиусом R, или описан вокруг нее - Pascal
Формулировка задачи:
Вычислить длину стороны a и площадь S восьмиугольника, который или вписан в окружность с радиусом R, или описан вокруг нее.
Помогите пожалуйста)Решение задачи: «Вычислить длину стороны a и площадь S восьмиугольника, который или вписан в окружность с радиусом R, или описан вокруг нее»
textual
Листинг программы
uses crt; function S(t:real):real; begin S:=(2+2*sqrt(2))*t*t; end; procedure Opis(r:real;var t:real); begin write('Введите радиус описанной окружности R='); readln(r); t:=r/(1+sqrt(2)/2); writeln('Длина стороны=',t:0:2,' площадь=',S(t):0:2); readln end; procedure Vpis(r:real;var t:real); begin write('Введите радиус вписанной окружности r='); readln(r); t:=2*r/(1+sqrt(2)); writeln('Длина стороны=',t:0:2,' площадь=',S(t):0:2); readln end; var r,a:real; w:char; begin clrscr; repeat clrscr; writeln('Выберите вид восьмиугольника:'); writeln('1-впмсанный'); writeln('2-описанный'); writeln('другое-выход'); readln(w); case w of '1':Vpis(r,a); '2':Opis(r,a); else exit; end; until not(w in ['1','2']); end.
Объяснение кода листинга программы
- В функции S(t) вычисляется площадь восьмиугольника.
- Переменная t используется для хранения радиуса окружности, для которой вычисляется площадь.
- В процедуре Opis(r,var t) запрашивается радиус описанной окружности, затем переменная t инициализируется этим радиусом, после чего вычисляется длина стороны и площадь восьмиугольника.
- В процедуре Vpis(r,var t) запрашивается радиус вписанной окружности, затем переменная t инициализируется этим радиусом, после чего вычисляется длина стороны и площадь восьмиугольника.
- Переменные r и a используются для хранения радиуса и длины стороны соответственно.
- Переменная w используется для хранения введенного пользователем значения, которое определяет тип восьмиугольника.
- В цикле repeat-until выбирается тип восьмиугольника.
- При выборе '1' выполняется процедура Vpis(r,a), при выборе '2' - процедура Opis(r,a).
- Если введенное значение не равно '1' или '2', цикл прерывается.