| |
Posté le 04 décembre 2005 - 09:20 |
Salut. J'utilise windev9 et je veux savoir comment effectuer une division et afficher son résultat sans faire apparaitre le message d'erreur "division par 0". Je m'explique bien: si A<>0 et B=0 alors A/B doit être égale à 0, ce qui est impossible..... Merci infiniment. |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 09:55 |
Bonjour, Je te conseille de créer une procédure "divise" définie par exemple comme : divise(Numérateur,Dénominateur);
Il te suffit alors de mettre dans ta procédure un SI..ALORS...SINON SI dénominateur=0 ALORS renvoyer 0; SINON renvoyer numérateur/dénominateur; FSI
Ce devrait marcher, et ainsi Windev est "capable" d'effectuer la division par zero Tiens moi au courant par mail pour savoir si ca a marché |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 10:08 |
Si A<>0 et B=0 alors A/B doit être égal à l'infini et non égal à 0. (Impossible évidemment puisque la machine a des limites finies ...) Il faut donc protéger toutes les divisions: Si B<>0 Alors ..Info("Solution: ",A/ Sinon ..Erreur("Impossible") Fin |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 10:22 |
Une méthode comme tant d'autres....
Si A <> 0 et B <> 0 alors C = A/B Fin Si A <> 0 et B = 0 alors C = 0 Fin
Il faudrait peut-être revoir les méthodes de programmation, non ?
Michel. |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 10:27 |
Bonjour,
Sur base de votre formule vous provoquez la division par 0 car B=0
Il faut donc Si A <> 0 et B > 0 alors C = A/B FIN
ou plus simplement
Si B > 0 alors C = A/B FIN
Cordialement
Albert |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 10:29 |
Salut !
On 4-Dec-2005, "JUPITER" <akermi.abderraouf@hotmail.com> wrote:
Salut. J'utilise windev9 et je veux savoir comment effectuer une division et afficher son résultat sans faire apparaitre le message d'erreur "division par 0". Je m'explique bien: si A<>0 et B=0 alors A/B doit être égale à 0, ce qui est impossible..... Merci infiniment.
Ce que tu demandes est impossible ... Une division par zéro devrait donner l'infini et pas zéro ... Même si pour certains, l'infini et zéro se rejoignent quelque part, pour un ordinateur, cette opération est impossible ... Pour éviter cette erreur, il te suffit de tester la valeur du diviseur AVANT ta division. Pour revenir à ton calcul : (C = A/ si B = 0 alors C = 0 sinon C = A/B fin
Une autre méthode apparue avec la version 9, plus concise , mais peut être moins lisible c = b=0 ? 0 sinon A/B elle a l'avantage de pouvoir être utilisée dans une expression ... Par exemple : si on doit avoir C = (A/*10 et que l'on veuille que dans le cas où B=0 le résultat soit 0, on pourra écrire : C = (b=0 ? 0 sinon A/*10
Bien à toi ...
-- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477 |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 10:49 |
Bonjour,
J'utilise windev9 et je veux savoir comment effectuer une division et afficher son résultat sans faire apparaitre le message d'erreur "division par 0". Je m'explique bien: si A<>0 et B=0 alors A/B doit être égale à 0, ce qui est impossible.....
L'explication est bonne mais fausse, dans ton cas A/B = infini et pas 0. (Divise par un très petit nombre, par exemple 1e-30 pour t'en rendre compte) Et il n'est pas possible de réaliser une divisin par 0 dans aucun langage. Tu peux cependant intercepter l'erreur avec un QUAND EXCEPTION et mettre un résultat de ton choix
> Merci infiniment.
"infiniment" c'est le cas de le dire.
De rien
Amitiés.
-- Francis MOREL http://wdmlist.free.fr |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 11:22 |
Dans un message JUPITER disait :
Salut. J'utilise windev9 et je veux savoir comment effectuer une division et afficher son résultat sans faire apparaitre le message d'erreur "division par 0". Je m'explique bien: si A<>0 et B=0 alors A/B doit être égale à 0, ce qui est impossible..... Merci infiniment.
tu as tout dit ... tu dois tester, ou traiter les exceptions
A+ -- Michel HERRSCHER CONSULTANT Président WINDASSO - Association des utilisateurs WxxDEV(c) Tel : +33450870912 Fax:+33450871741 http://www.windasso.org |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 11:38 |
en vision macro algo :
procedure division( A, est un float si B=0 alors renvoyer 0 sinon // si a= 0 alors le renvoyer = 0 renvoyer (A/ fin si
"JUPITER" <akermi.abderraouf@hotmail.com> a écrit dans le message de news:4392a06b$1@news.pcsoft.fr...
Salut. J'utilise windev9 et je veux savoir comment effectuer une division et afficher son résultat sans faire apparaitre le message d'erreur "division par 0".
Je m'explique bien: si A<>0 et B=0 alors A/B doit être égale à 0, ce qui est impossible..... Merci infiniment.
|
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 12:18 |
"JUPITER" <akermi.abderraouf@hotmail.com> a écrit dans le message de news: 4392a06b$1@news.pcsoft.fr...
Salut. J'utilise windev9 et je veux savoir comment effectuer une division et afficher son résultat sans faire apparaitre le message d'erreur "division par 0".
Je m'explique bien: si A<>0 et B=0 alors A/B doit être égale à 0, ce qui est impossible..... Merci infiniment.
Si B=0 je n'effectue pas la division @+ |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2005 - 22:55 |
Le 4 décembre 2005 à 10:29, dans <news:4392b18c$1@news.pcsoft.fr>, Marcel.berman@managingbusiness.be nous disait :
> Une division par zéro devrait donner l'infini et pas zéro ...
Voilà la troisième réponse reprenant cette erreur. Une division par zéro n'existe pas, c'est une opération interdite en mathématiques ! C'est la division par un nombre PROCHE de zéro qui TEND vers l'infini. Pour être encore plus précis, on peut ajouter que selon le signe de ce nombre proche de zéro, le résultat tendra vers + ou - l'infini, ce qui change tout.
-- Eric |
| |
| |
| | | |
|
| | |