Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/07/2007, 17h38   #1
Membre habitué
 
Inscription : juin 2006
Messages : 137
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 137
Points : 26
Points : 26
Par défaut Se débarrasser du warning : division par zéro

bonjour je suis dénutant en programmation
Après avoir fait mes équations à la main. voiçi la fin d'un code incomplet qui va me calcluler des coordonnées en faisant l'intersection de trois cercles....
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class cercle {
	var $x;
	var $y;
	var $r;
	     };
$cercle0 = new cercle;
$cercle1 = new cercle;
$cercle2 = new cercle;
 
$N0 = (($cercle1->r)^2-($cercle0->r)^2-($cercle1->x)^2+($cercle0->x)^2-($cercle1->y)^2+($cercle0->y)^2)/(2*($cercle0->y-$cercle1-y));
 
$N1 = (($cercle2->r)^2-($cercle1->r)^2-($cercle2->x)^2+($cercle1->x)^2-($cercle2->y)^2+($cercle1->y)^2)/(2*($cercle1->y-$cercle2-y));
 
echo "coordonnées (xp,yp) de la borne pirate";
 
$xp = ($N1-$N0)*($cercle0->y-$cercle1->y)*($cercle1->y-$cercle2->y)/(($cercle1->x-$cercle0->x)*($cercle1->y-$cercle2->y)+($cercle1->x-$cercle2->x)*($cercle0->y-$cercle1->y));
echo "$xp= ";
 
$yp = (($N1-$N0)*($cercle1->x-$cercle0->x)*($cercle1->y-$cercle2->y)/(($cercle1->x-$cercle0->x)*($cercle1->y-$cercle2->y)+($cercle1->x-$cercle2->x)*($cercle0->y-$cercle1->y)))+$N0;
echo "$yp= ";
Je sais que je fais des divisions mais ceci est juste donc comment je peux faire pour qu'il ne m'affiche plus les warning divisions par zéro?
Merci pour votre aide
liverbird est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 17h43   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
il suffit de tester avant la division si ton dénominateur n'est pas nul
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 09h35   #3
Membre éclairé
 
Avatar de genova
 
Inscription : septembre 2004
Messages : 487
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 487
Points : 397
Points : 397
Envoyer un message via MSN à genova
Ya plusieurs solutions :
- Vérifier que le dénominateur est différent de 0 avant de lancer le calcul
- Attraper l'erreur (try ... catch)
- Masquer l'erreur avec @ comme ceci :
Code :
$yp = @ (($N1-$N0)*($cercle1->x-$cercle0->x)*($cercle1->y-$cercle2->y)/(($cercle1->x-$cercle0->x)*($cercle1->y-$cercle2->y)+($cercle1->x-$cercle2->x)*($cercle0->y-$cercle1->y)))+$N0;
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français.

Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
genova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 10h38   #4
Membre habitué
 
Inscription : juin 2006
Messages : 137
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 137
Points : 26
Points : 26
Merci les gars
que je suis bête
liverbird est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h32.


 
 
 
 
Partenaires

Hébergement Web