Back
Close

2 - Les variables

Pedro77
3,154 views
Previous: Exercice 5

Exercice 6

Dans l’optique de développer une app pour smartphone permettant de localiser le DEA (Défibrillateur Externe Automatisé) le plus proche de vous et ainsi de peut-être sauver des vies, nous allons développer un prototype permettant de tester l’idée. Dans la problématique, il est nécessaire de pouvoir calculer la distance entre deux points du globe. Ecrivez en C un programme permettant de calculer une distance à partir de coordonnées GPS. Pour l’exercice, utilisez les formules suivantes :

$$x = (longitudeB - longitudeA) \times \cos \left(\frac{latitudeA + latitudeB}{2} \right) $$
$$y = latitudeB - latitudeA $$
$$d = \sqrt{x^2 + y^2} \times 6371 $$

Notes :

  1. Dans cette formule, les latitudes et longitudes sont exprimées en radians.
  2. L'utilisateur encondera les angles de latitudes et longitudes en degrés (comme c'est le cas conventionnellement).
  3. Rappelons-nous que 180° = π radians !
  4. En C, en ajoutant #include <math.h> en début de programme, on a droit à M_PI qui est la constante π (avec une précision suffisante)
  5. La formule donne la distance en km entre les 2 points.
  6. Les calculs peuvent être vérifiés facilement avec Google Maps ou bien avec les valeurs tests suivantes :
    latA = 50.661778
    longA = 5.523157
    latB = 49.000968
    longB = 3.413383
    -> latA (rad) = 0.884215
    -> longA (rad) = 0.096397
    -> latB (rad) = 0.855228
    -> longB (rad) = 0.059575
    -> x = -0.023752
    -> y = -0.028987
    -> d = 238.753505 (km);
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants