Задача 3. На плоскости декартовыми координатами заданы 10 точек:
На плоскости декартовыми координатами заданы 10 точек:
{x1,y1},{x2,y2}, ...,{х10,у10}.
Вывести полярные координаты точки, имеющей наибольший полярный радиус. Вычисление полярных координат одной точки оформить подпрограммой. Расчетные формулы для вычисления полярных координат следующие:
, где а и b -декартовы координаты точки.
Решение:
#include "stdafx.h"
#include<math.h>
void PK(float a, float b, float *ro, float *fi)
/* безтиповая функция для расчета полярных координат точки */
{
*ro = sqrt(a*a + b*b);
*fi = atan(b/a);
}
int main()
{
float X[10], Y[10]; // масcивы для декартовых координат точек
float R[10], F[10]; // масcивы для полярных координат точек
int i, N;
float maxR;
printf("Введите абсциссы 10 точек\n");
for (i=0;i<10;i++) scanf("%f",&X[i]);
printf(" Введите ординаты 10 точек\n");
for (i=0;i<10;i++) scanf("%f",&Y[i]);
maxR = 0;
for (i=0;i<10;i++)
{
PK(X[i],Y[i],&R[i],&F[i]);
if (R[i]>maxR) // поиск максимального радиуса
{
maxR =R[i];
N=i; /*запоминаем номер точки, радиус которой больше, чем у предыдущих */
}
}
printf("romax=%f fimax=%f\n", R[N],F[N]);/* вывод полярных координат точки с номером N */
return 0;
}
Дата добавления: 2015-02-10; просмотров: 725;