mon petit prog en PASCAL marche pas mais je vois pa l'erreur....HELP - Delphi/Pascal - Programmation
Marsh Posté le 18-09-2004 à 18:15:04
exact mais le pb doit etre avant ca..... parce que je vien de recompiler et c pareil....
ca me soule un peu ca...g du planté ma procedure de calcul....
Marsh Posté le 18-09-2004 à 18:31:57
"God is real unitl declared as integer"
(sinon je vois pas ce qui va pas dans le programme, il compile et donne des résultats)
Marsh Posté le 19-09-2004 à 07:43:00
Bonjour, déjas le calcul c'est
delta := ( b*b) - ( 4* a * c ) ;
et il faut que tu donnes la condition, si a différent de 0
car la division par 0 provoque une erreur.
Donc commence par if a!=0 then et il faut que delta soit
suppérieur a 0 car les racines des nombre négatifs ça ne
fonctionne pas !! donc if delta >=0 then
puis tu continues avec
tes autres conditions.
Marsh Posté le 19-09-2004 à 14:48:58
pour le "a" different de 0 et c aussi dailleurs !!!
jy avait pa pensé donc fodra ke je vois
par contre le reste est bon car je traite bien les cas de delta<0 / delta>0 / et de delta=0
bon ben je vois ca ce soir !!
Marsh Posté le 20-09-2004 à 11:03:51
Bien le C différent de 0 c'est pas la peine,
il ne sert à déterminer que le discriminant
et ne sert plus pour les calculs.
Les prog acceptent la multiplication par 0.
Marsh Posté le 20-09-2004 à 13:27:30
Bon, si ça plante, tu devrais procéder par étapes :
- Tu tapes un petit programme, qui se contente de lire a, b et c, et de calculer et afficher Delta. Tu vois si ça marche.
- Et après, tu fais ton programme pour calculer et afficher les solutions.
Parce que, suivant le compilateur, tu peux avoir un problème du genre conflit de types(le read renvoie un String).
D'ailleurs, si je me souviens bien de mon Pascal, dans tes Write(ln), a est considéré comme une String, alors que Delta est un Real (c'est pour ça que tu utilise le : larg : deci), non ?
Et sinon, pour le calcul et l'affichage des solutions, tu devrais afficher a, b, c et Delta avant la boucle.
Et peut-être envisager un Case, plutot qu'un enchaînement de IF ...
Marsh Posté le 25-09-2004 à 12:21:14
salut,
ajoutes readln; just avant le dernier end de ton programme,
n'oublies pas de prendre en compt les conditions de "a=0" et "c=0" et autres,
Marsh Posté le 06-10-2004 à 09:09:05
bon c'est resolu smaine tavé raison mais jlé trouvé avant lol
merci a tous kan meme
Marsh Posté le 17-09-2004 à 17:52:14
bon c'est un prog tou con pour le second degré
demande de a , b ,c et il donne les solutions en fonction du delta (<0 /=0/>0....)
voila le code.... si vous trouvez...(moi il marche juska ce kon tape entrée après avoir donné "c"..)
""""
program degre2;
const
larg = 20;
deci = 4;
var
a,b,c,delta,solu1,solu2,solu0 : real;
begin
writeln ('Calcul second degre par FLB');
writeln(' ');
write (' Valeur de "a" ?? : ');
readln ( a );
write (' Valeur de "b" ?? : ');
readln ( b );
write (' Valeur de "c" ?? : ');
readln ( c );
delta := sqr ( b ) - ( 4* a * c ) ;
if delta > 0 then begin;
solu1 := ( -b - sqrt ( delta ) ) / ( 2* a );
solu2 := ( -b + sqrt ( delta ) ) / ( 2* a );
write (' a = ',a);
write (' b = ',b);
writeln (' c = ',c);
writeln (' Delta = ' , delta : larg : deci);
writeln (' Solution 1 = ' , solu1 :larg : deci);
writeln (' Solution 2 = ' , solu2 :larg : deci);
end
else begin;
if delta = 0 then begin
solu0 := -b / (2* a);
write (' a = ',a);
write (' b = ',b);
writeln (' c = ',c);
writeln (' Delta = ' , delta : larg : deci);
writeln (' Solution Unique = ' , solu0 :larg : deci);
end
else begin
writeln (' !! Pas de solutions dans R !! ');
end;
end;
end.
""""
voila si vous trouvez une erreur....?? dites le moi !!
http://flbcars.free.fr
---------------
http://flbcars.free.fr