Задача 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;
}
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 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | Поиск по сайту:
|