
Задача в паскале. Напишите программу по нахождению периметра и площади шестнадцатиугольника


Ответы на вопрос

Привет!
Периметр:
program x;
var
y,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16:integer;
begin
writeln('Введите длины всех сторон шестнадцатиугольника, см: ');
readln(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16);
y:=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16;
writeln('Периметр данного шестнадцатиугольника,см= ',y);
readln;
end.
Площадь:
var a : integer;
S : real;
function SquareTr(a : integer) : real;
begin
SquareTr := (sqrt(3)*a)/2
end;
BEGIN
writeln('Введите сторону шестнадцатиугольника: ');
ReadLn(a);
S := 16 * SquareTr(a);
Writeln('Площадь шестнадцатиугольника со стороной а, равна ', S:16:16);
end.



Конечно, вот пример программы на языке Pascal для вычисления периметра и площади шестнадцатиугольника, предполагая, что у вас есть координаты его вершин:
pascalprogram HexadecagonPerimeterAndArea; var x, y: array[1..16] of real; // Массивы для хранения координат x и y вершин perimeter, area: real; // Переменные для хранения периметра и площади procedure InputCoordinates; var i: integer; begin writeln('Введите координаты вершин шестнадцатиугольника:'); for i := 1 to 16 do begin write('X', i, ': '); readln(x[i]); write('Y', i, ': '); readln(y[i]); end; end; function Distance(x1, y1, x2, y2: real): real; begin // Функция для вычисления расстояния между двумя точками Distance := sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); end; procedure CalculatePerimeter; var i: integer; begin perimeter := 0; for i := 1 to 16 do begin // Вычисляем расстояние между текущей и следующей вершиной perimeter := perimeter + Distance(x[i], y[i], x[i mod 16 + 1], y[i mod 16 + 1]); end; end; procedure CalculateArea; var i: integer; begin area := 0; for i := 1 to 16 do begin // Вычисляем площадь треугольника между первой вершиной и текущей и следующей вершинами area := area + 0.5 * ((x[i] - x[1]) * (y[i + 1] - y[1]) - (y[i] - y[1]) * (x[i + 1] - x[1])); end; area := abs(area); // Площадь всегда положительная end; begin InputCoordinates; CalculatePerimeter; CalculateArea; writeln('Периметр шестнадцатиугольника: ', perimeter:0:2); writeln('Площадь шестнадцатиугольника: ', area:0:2); end.
Эта программа сначала запрашивает координаты вершин шестнадцатиугольника, затем вычисляет его периметр и площадь, используя формулы для расстояния между точками и площади треугольника. Результаты выводятся на экран.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili