Travail du TP C++
D’aprés l’étudiant:
Boumediene Abderrahmene
Groupe tp 4
#include<iostream>
#include <cmath>
// Structure représentant un point GPS avec les coordonnées en degrés décimaux
struct GPSPoint {
double latitude;
double longitude;
};
// Convertit une valeur en degrés en radians
double toRadians(double degrees) {
return degrees * M_PI / 180.0;
}
// Calcule la distance géodésique entre deux points GPS en utilisant la formule de
Haversine
double calculateDistance(const GPSPoint& point1, const GPSPoint& point2) {
double earthRadius = 6371.0; // Rayon moyen de la Terre en kilomètres
// Conversion des coordonnées en radians
double lat1 = toRadians(point1.latitude);
double lon1 = toRadians(point1.longitude);
double lat2 = toRadians(point2.latitude);
double lon2 = toRadians(point2.longitude);
// Calcul des différences de latitude et de longitude
double dLat = lat2 - lat1;
double dLon = lon2 - lon1;
// Formule de Haversine
double a = sin(dLat / 2) * sin(dLat / 2) +
cos(lat1) * cos(lat2) *
sin(dLon / 2) * sin(dLon / 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
// Calcul de la distance en kilomètres
double distance = earthRadius * c;
return distance;
}
int main() {
// Exemple d'utilisation
GPSPoint point1 = {48.8566, 2.3522}; // Paris
GPSPoint point2 = {51.5074, -0.1278}; // Londres
double distance = calculateDistance(point1, point2);
// Affichage de la distance entre les deux points
std::cout << "Distance: " << distance << " km" << std::endl;
return 0;
}
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !