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 |
#include <stdio.h> #include <math.h> void rectps (float x1, float y1, float x2, float y2, float *p, float *s){ *p=2*(abs(x1-x2)+abs(y1-y2)); *s=abs(x1-x2)*abs(y1-y2); } int main(void) { int i; for(i=1;i<=3;++i){ float x1,y1,x2,y2; printf("x1:"); scanf("%f", &x1); printf("y1:"); scanf("%f", &y1); printf("x2:"); scanf("%f", &x2); printf("y2:"); scanf("%f", &y2); float s,p; rectps(x1,y1,x2,y2, &p, &s); printf("P: %f\nS: %f\n",p,s); } return 0; } |
Другие задачи из раздела Proc можно посмотреть здесь.
Комментарии: