mon petit prog en PASCAL marche pas mais je vois pa l'erreur....HELP

mon petit prog en PASCAL marche pas mais je vois pa l'erreur....HELP - Delphi/Pascal - Programmation

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
Reply

Marsh Posté le 17-09-2004 à 17:52:14   

Reply

Marsh Posté le 18-09-2004 à 00:29:36    

up!!!!!!!!!!!


---------------
http://flbcars.free.fr
Reply

Marsh Posté le 18-09-2004 à 13:41:33    

pas de ; après begin

Reply

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....


---------------
http://flbcars.free.fr
Reply

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)


Message édité par Taz le 18-09-2004 à 18:37:27
Reply

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.

Reply

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 !!


---------------
http://flbcars.free.fr
Reply

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.

Reply

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 ...


Message édité par macgawel le 20-09-2004 à 13:31:12
Reply

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,

Reply

Marsh Posté le 25-09-2004 à 12:21:14   

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed