Calcul de distance à partir des coordonnées

Soyez le premier à donner votre avis sur cette source.

Vue 50 010 fois - Téléchargée 2 307 fois

Description

Pour tout ceux qui utilise un GPS, ce petit programme calcul la distance en ligne droite qui sépare deux coordonnées.

Conclusion :


Il suffit d?entrée les coordonnées et d?appuyer sur le bouton ?Calcul?.
Si une coordonnée passe au rouge, cela indique une erreur dans cet case.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

posop
Messages postés
1
Date d'inscription
vendredi 16 avril 2010
Statut
Membre
Dernière intervention
12 mai 2010

salut
j'ai télécharger le zip
mais comment ouvrir l'interface?

merci de répondre
pbg40
Messages postés
1
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
28 août 2009

Un peu étonnant, si vous utilisez le code tel quel, il génère une erreur de l'ordre de +10%. La faute au rayon de la terre (ligne 106) codé à 6535 alors qu'il est de 6371 km (+ ou - 5km).
sberdli
Messages postés
2
Date d'inscription
mercredi 1 mars 2006
Statut
Membre
Dernière intervention
22 novembre 2007

une daube quoi....
sneb6
Messages postés
1
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
8 novembre 2007

bon je c ke vou allé dire ke je suis nul mé la g besoin d'aide. g télécharger le fichier zip mé une fois décompréssé j'obtien des fichier keje peu ouvir mé ki son écri dans un charabia. commen pourége faire pour pouvoir utilisé le logiciel merci de me répondre ^_^
f0xi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
patch rapide pour ValidFloat :



function ValidFloat(const S : string) : boolean;
var VX : integer;
const
// ensemble des nombres
VN : set of char = ['0'..'9'];
// ensemble nombres et separateur de decimales
VES : set of char = ['0'..'9','.',','];

function CountAChar(const C : char) : integer;
var CX : integer;
begin
result := 0;
for CX := 1 to Length(S) do begin
if S[CX] = C then Result := Result + 1;
end;
end;

begin
// par defaut on considere que le chiffre representé n'est pas valide.
result := false;

IF
// si la chaine est vide ou bien
(length(S) = 0) or
// si le premier et le dernier caractere n'est pas un chiffre ou bien
( (NOT (S[1] IN VN)) or (NOT (S[Length(S)] IN VN)) ) or
// si il y a plusieurs separateurs identique dans la chaine ou bien
( (CountAChar('.') > 1) or (CountAChar(',') > 1) ) or
// si il y a (au moins) deux separateur different dans la chaine alors
( (pos('.',s) <> 0) and (pos(',',s) <> 0) )
THEN
// on sort...
exit;

for VX := 1 to length(s) do begin
// si l'un des caracteres est invalide on sort...
if NOT (S[VX] IN VES) then exit;
end;
// si tout vas bien jusqu'ici, c'est que la chaine represente bien un nombre valide.
result := true;
end;

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.