Proc5. Описать процедуру RectPS($$x_1$$, $$y_1$$, $$x_2$$, $$y_2$$, $$P$$, $$S$$), вычисляющую периметр $$P$$ и площадь $$S$$ прямоугольника со сторонами, параллельными осям координат, по координатам $$(x1, y1), (x2, y2)$$ его противоположных вершин ($$x1$$, $$y1$$, $$x2$$, $$y2$$ — входные, $$P$$ и $$S$$ — выходные параметры вещественного типа). С помощью этой процедуры найти периметры и площади трех прямоугольников с данными противоположными вершинами.
Формулы:
$$P=2*(a+b)$$
$$S=a*b $$
$$ a=|x_1-x_2| $$
$$ b=|y_1-y_2| $$
$$ P=2*(|x_1-x_2|+|y_1-y_2|) $$
$$ S=|x_1-x_2|*|y_1-y_2| $$
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
program Proc5; procedure RectPS(x1,y1,x2,y2:Real; var P,S:Real); begin P:=2*(abs(x1-x2)+abs(y1-y2)); S:=abs(x1-x2)*abs(y1-y2); end; var i:Integer; x1,y1,x2,y2,P,S:Real; begin Write('x1: '); Readln(x1); Write('y1: '); Readln(y1); Write('x2: '); Readln(x2); Write('y2: '); Readln(y2); RectPS(x1,y1,x2,y2,P,S); Writeln(P,' ',S); end. |
Другие задачи из раздела Proc можно посмотреть здесь.
Комментарии: