Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3607 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [pascal]résoudre equation avec pascal

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[pascal]résoudre equation avec pascal

n°1988227
ayoubitou
Posté le 27-04-2010 à 22:39:06  profilanswer
 

bonjour  
 je suis entrain de faire un programme pascal qui resolue l'eaquation ax²+bx+c=0 .
j'ai fais un programme mais je coirs que ya une erreure puisque ca marche pas .
 
 
program equation  ;
var Dleta ,a,b,c :real ;
begin
if a=0 then
    if b=0 then
        if c=0 then
         writeln('il y a une infinité de solution')
          else
          writeln('pas de solution')
    else
    x1:=-c/b;
    else
    begin
    Delta:=(b)-4*a*c;
    if delta<0 then
    writeln('Pas de solution réelles')
else
begin
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
end;
end;
end;
readln ;
end .
 
et merci .

mood
Publicité
Posté le 27-04-2010 à 22:39:06  profilanswer
 

n°1988271
gilou
Modérateur
Modosaurus Rex
Posté le 28-04-2010 à 09:43:57  profilanswer
 

Je vois pas comment ca pourrait marcher puisque manifestement vous n'avez pas essayé de le compiler, sinon on n'aurait pas des erreurs flagrantes d'orthographe dans le code que vous avez posté (Dleta puis Delta puis delta)
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
n°1988297
antac
..
Posté le 28-04-2010 à 10:38:11  profilanswer
 

if then if then if... c'est moche... utilise des "and"
ensuite, tes variables n'ont pas le mêmes noms...
tu zapes des points virgules
enfin, tu ne déclare pas toutes les variables

n°1988383
ayoubitou
Posté le 28-04-2010 à 13:01:33  profilanswer
 

bonjour ,
j'ai refais le programme mais ca marche toujours pas .
 
program equation;
var a,b,c,x1,x2,x0,Delta : real ;
begin
writeln ('donner les bornes de lequation ') ;
writeln ('donner la valeur de a ') ;
readln (a) ;
writeln ('donner la valeur de b ') ;
readln (b) ;
writeln ('donner la valeur de c ') ;
readln (c) ;
 
if a =0 then
 writeln('erreur type')
else
 begin
  if a =0 and b=0 then
   begin
   if c =0 then
 
    writeln (' infinite ')
   else
    writeln ('pas de solution')
 
                         else
           begin
           Delta := b*b - (4 *a*c) ;
                          if Delta <0 then
           writeln ('pas de solution')
                                else
                                    begin
                                      if Delta = 0 then
            begin
                     x0 := -b / (2*a) ;
                                          writeln (x0) ;
            end;
                                    end ;
           else
                                            begin
                                            x1 := (-b - sqrt (Delta)) / 2*a ;
                                            x2 := (-b + sqrt (Delta)) / 2*a ;
                                            writeln (x1 ,x2 ) ;
                                            end;
 
                        end;
  end;
        end;
 
 
readln;
end .

n°1988399
Fred999
Rabat-joie
Posté le 28-04-2010 à 13:48:20  profilanswer
 

ayoubitou, t'as 16 ans donc autant prendre de bonnes habitudes dès le départ :o

 

Y a un truc (parmi tant d'autres) qui énerve les développeurs, c'est "ça marche pas". Parce que ça n'aide en RIEN à comprendre où sont les erreurs.

 

Pour qu'on t'aide, merci, donc, soit de décrire précisément le souci, soit de poster la log de compilation, ou toute autre information potentiellement utile.


Message édité par Fred999 le 28-04-2010 à 13:48:39
n°1988402
ayoubitou
Posté le 28-04-2010 à 13:52:02  profilanswer
 

pour l'erreur c'est "error 41 operand types do not match operator"

n°1988406
Un Program​meur
Posté le 28-04-2010 à 13:59:58  profilanswer
 

Il devrait y avoir aussi une indication de ligne.  (En passant, utilise la balise de code, tu nous donneras un code correctement indente et avec les lignes numerotees).  
 
Ce ne serait pas 0.0 plutot que 0 pour avoir des reels (je ne sais plus si Pascal fait la conversion tout seul ou pas) ?


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1988592
antac
..
Posté le 29-04-2010 à 09:10:17  profilanswer
 

ayoubitou a écrit :

bonjour ,
j'ai refais le programme mais ca marche toujours pas .
 
program equation;
var a,b,c,x1,x2,x0,Delta : real ;
begin
writeln ('donner les bornes de lequation ') ;
writeln ('donner la valeur de a ') ;
readln (a) ;
writeln ('donner la valeur de b ') ;
readln (b) ;
writeln ('donner la valeur de c ') ;
readln (c) ;
 
if a =0 then
 writeln('erreur type')
else
 begin
  if a =0 and b=0 then
   begin
   if c =0 then
 
    writeln (' infinite ')
   else
    writeln ('pas de solution')
 
                         else
           begin
           Delta := b*b - (4 *a*c) ;
                          if Delta <0 then
           writeln ('pas de solution')
                                else
                                    begin
                                      if Delta = 0 then
            begin
                     x0 := -b / (2*a) ;
                                          writeln (x0) ;
            end;
                                    end ;
           else
                                            begin
                                            x1 := (-b - sqrt (Delta)) / 2*a ;
                                            x2 := (-b + sqrt (Delta)) / 2*a ;
                                            writeln (x1 ,x2 ) ;
                                            end;
 
                        end;
  end;
        end;
 
 
readln;
end .


 
Tes indentations c'est du n'importe quoi,
Ensuite tu fais à un moment : if - else - end -else ce qui est complétement illogique
pour ton erreur, c'est au niveau de ta première conditionnelle, il te manque des parenthèses.
Voilà le code que tu devrais avoir... (dernière fois que je mâche le travail).
 
program equation;
var a,b,c,x1,x2,x0,Delta : real ;      
writeln ('donner les bornes de lequation ') ;
  writeln ('donner la valeur de a ') ;
  readln (a) ;
  writeln ('donner la valeur de b ') ;
  readln (b) ;
  writeln ('donner la valeur de c ') ;
  readln (c) ;
 
  if a =0 then
     writeln('erreur type')
  else
  begin
       if ((a=0) and (b=0)) then
       begin
            if (c =0) then
                writeln (' infinite ')
            else
                writeln ('pas de solution')
       end
       else
          begin
               Delta := b*b - (4 *a*c) ;
               if Delta <0 then
                    writeln ('pas de solution')
               else
               begin
                   if (Delta = 0) then
                   begin
                      x0 := -b / (2*a) ;
                        writeln (x0) ;
                   end
                   else
                   begin
                        x1 := (-b - sqrt (Delta)) / 2*a ;
                        x2 := (-b + sqrt (Delta)) / 2*a ;
                        writeln (x1 ,x2 ) ;
                   end
               end
 
 
 
           end
  end;              


Message édité par antac le 29-04-2010 à 09:10:49
n°1992298
ayoubitou
Posté le 11-05-2010 à 22:09:31  profilanswer
 

bonjour,
j'ai refais le programme mais j'ai pas les bonnes resultats  
 
program thhh ;
var a,b,c,x1,x2,D : real ;
begin
writeln('donner les trois bornes ') ;
readln (a,b,c) ;
if a=0 then
    if b=0 then
       if c=0 then
       writeln ('R est la solution ')
       else
       writeln ('pas de solution')
    else
    writeln ('la solution est ',-c/b)
else
 
begin
D:=b*b-(4*a*c) ;
if D<0 then
writeln ('pas de solution dans R')
else
    if D=0 then
    writeln('ya une solution',-b/2*a  )
    else
     begin
     x1:=-b-sqrt (D) / 2*a  ;
     x2:=-b+sqrt (D) / 2*a  ;
     writeln ('les solutions ',x1,x2);
     end ;
end;
readln ;
end .

n°1992361
Un Program​meur
Posté le 12-05-2010 à 09:04:12  profilanswer
 

Ajoute les parentheses qui manquent dans le calcul de x1, x2.


---------------
The truth is rarely pure and never simple (Oscar Wilde)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [pascal]résoudre equation avec pascal

 

Sujets relatifs
Petit problème à résoudre sur carte de France interactive Flash:)aidez moi à resoudre mon problème
Petit problème à résoudre sur fichier flash décompilé[pascal] programme pascal qui transforme "123" en "102030" résolu
Notice Index : je n'arrive pas à résoudre le probleme[Pascal] probleme
resoudre numeriquement erf(x), et alternative a scan fbesoin d'aide sur 2 exercices en pascal
j'ai quelques exercice à faire en langage pascal... 
Plus de sujets relatifs à : [pascal]résoudre equation avec pascal


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)