Red de conocimiento informático - Conocimiento sistemático - Programación remota

Programación remota

Calcule la diferencia de longitud y latitud, calcule el ángulo de arco θ entre las dos ciudades y el centro de la esfera de acuerdo con cosθ = cosθ1cosθ2, y luego calcule la distancia esférica de acuerdo con L = θ * R.

La programación es la siguiente, sólo para que te hagas una idea. Si no lo piensas bien, puedes mejorarlo tú mismo.

# incluir ltstdio.h gt

# incluir ltmath.h gt

# incluir ltstringgt

Usar espacio de nombres estándar

const doble R = 6371,0;

const doble PI = 3,141592653;

Coordenadas estructurales

{

String p>{

int la, lb;

Doble a, b, dx, dy

char cha, chb

Cadena de caracteres ax, ay, bx, por;

ax = A.X;

ay = A.Y;

bx = B.X;

p>

por = B .

la = longitud del hacha();

lb = longitud del bx(); 1]; ax[la-1]= 0;

CHB = bx[lb-1]; bx[l b-1]= 0; datos(), " lf ", ampa);

sscanf(bx.data(), " lf ", ampb

if(cha == chb )

dx = ABS(a-b);

Otros

{

dx = ABS(a b);

if( dx gt; 180)dx = 360-dx;

}

la = ay longitud();

lb = por . /p>

cha = ay[la-1]; ay[la-1]= 0;

CHB = por[l b-1]; ;

sscanf(ay.data(), " lf ", ampa);

sscanf(by.data(), " lf ", ampb); p>if(cha == chb)

dy = ABS(a-b);

Otros

dy = ABS(a b);

dx = dx * PI/180; //Ángulo a radianes

dy = dy * PI/180;

Return acos(cos(dx)* cos (dy)) ;

}

int main()

{

Doble theta, dis

Coordenadas A, B ;

A.x = " 12.35 e ";

A.Y = " 23.05N

B.X = " 30.25E

B.Y = " 20.28 S

theta = GetTheta(A,B);

dis = theta * R;

printf(".2lfkm\n ", dis);

Devuelve 0;

}