На этой странице дано решение примеров Begin19 - Begin21 из задачника Абрамяна. Здесь рассматриваются решения задач, связанные с координатами точек в прямоугольной декартовой системе координат.
Begin19. Даны координаты двух противоположных вершин прямоугольника: (x1, y1), (x2, y2). Стороны прямоугольника параллельны осям координат. Найти периметр и площадь данного прямоугольника.
var
x1, y1, x2, y2, a, b: real;
begin
writeln('Введите координаты x1 и y1: ');
readln(x1, y1);
writeln('Введите координаты x2 и y2: ');
readln(x2, y2);
writeln;
{ Вычисляем стороны прямоугольников: }
a := abs(x2 - x1);
b := abs(y2 - y1);
{ Выводим результат: }
writeln('Периметр: ', 2 * (a + b):0:2);
writeln('Площадь: ', a * b:0:2);
readln
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**function** Abs(x: real): real;
: Возвращает модуль числа x.**function** Abs(x: real): real;
: Возвращает модуль числа x. Begin20. Найти расстояние между двумя точками с заданными координатами (x1, y1), (x2, y2) на плоскости. Расстояние вычисляется по формуле
((x2 − x1)2 + (y2 − y1)2)1/2.
var
x1, y1, x2, y2, d: real;
begin
writeln('Введите координаты x1 и y1:');
readln(x1, y1);
writeln('Введите координаты x2 и y2:');
readln(x2, y2);
writeln;
{ Расстояние между двумя точками на плоскости: }
d := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
writeln('Расстояние = ', d:0:2);
readln
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**function** Sqrt(x: real): real;
: Возвращает квадратный корень числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x. Begin21. Даны координаты трех вершин треугольника:
(x1, y1), (x2, y2), (x3, y3).
Найти его периметр и площадь, используя формулу для расстояния между двумя точками на плоскости (см. задание Begin20). Для нахождения площади треугольника со сторонами a, b, c использовать формулу Герона:
S = (p·(p − a)·(p − b)·(p − c))1/2,
где p = (a + b + c)/2 — полупериметр.
var
x1, y1, x2, y2, x3, y3, AB, AC, BC, p, S: real;
begin
writeln('Введите координаты вершины A: ');
readln(x1, y1);
writeln('Введите координаты вершины B: ');
readln(x2, y2);
writeln('Введите координаты вершины C: ');
readln(x3, y3);
AB := sqrt(sqr(x2 - x1) + sqr(y2 - y1)); { <-- Длина стороны AB }
AC := sqrt(sqr(x3 - x1) + sqr(y3 - y1)); { <-- Длина стороны AC }
BC := sqrt(sqr(x3 - x2) + sqr(y3 - y2)); { <-- Длина стороны BC }
p := (AB + AC + BC); { <-- Периметр треугольника ABC }
writeln;
writeln(' p = ', p:0:2); { <-- Выводим периметр }
p := p / 2; { <-- Находим полупериметр }
{ Площадь треугольника ABC за формулой Герона: }
S := sqrt(p * (p - AB) * (p - AC) * (p - BC));
writeln(' S = ', S:0:2);
readln
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**function** Sqrt(x: real): real;
: Возвращает квадратный корень числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x.**function** Sqrt(x: real): real;
: Возвращает квадратный корень числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x.**function** Sqrt(x: real): real;
: Возвращает квадратный корень числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x.**function** Sqr(x: real): real;
: Возвращает квадрат числа x.**function** Sqrt(x: real): real;
: Возвращает квадратный корень числа x.