IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

Equation du second degré [Turbo Pascal]


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Par défaut Equation du second degré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    program cool;
    uses wincrt;
     var
      a,b,c:integer;
      D:real;
    begin
     write('a= ');readln(a);
     write('b= ');readln(b);
     write('c= ');readln(c);
     D:=b*b-4*a*c;
     if a=0 then
     begin
      if b=0 then
      begin
       if c=0 then
        writeln('Solution: ensemble R')
     else
        writeln('Pas de solution');
      end
      else
       writeln('Solution: ',(-c/b):5:3);
     end
     else
     begin
      if D<0 then writeln('Pas de solution');
      if D=0 then writeln('Solution 1: ',-b/(2*a):5:3);
      if D>0 then writeln('Solution 1: ',(-b-sqrt(D))/(2*a):5:3,'||| Solution 2: ',(-b+sqrt(D))/(2*a):5:3);
     end;
    end.
    J'ai touvé cette solution mais je suis trempé.
    Est-ce que cette partie du programme est vraie et à quoi sert-elle exactement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     if a=0 then
     begin
      if b=0 then
      begin
       if c=0 then
        writeln('Solution: ensemble R')
     else
        writeln('Pas de solution');
      end
      else
       writeln('Solution: ',(-c/b):5:3);
     end
    Merci

  2. #2
    Membre émérite
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    Ca sert à discriminer les cas où l'équation n'est pas du second degré, tout simplement...

    Tiens, a vaut zéro, donc l'équation est du premier degré : bx + c = 0

    Ah, zut ! On a aussi b = 0 donc l'équation n'est même pas du premier degré :
    elle se ramène à c = 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       if c=0 then
        writeln('Solution: ensemble R')
    L'équation 0 = 0 est toujours vraie...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     else
        writeln('Pas de solution');
      end
    Mais par contre si c ne vaut pas zéro, l'équation c = 0 n'a pas de solution.
    Fin du bloc concernant le test de c.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      else
       writeln('Solution: ',(-c/b):5:3);
     end
    On est toujours dans le bloc a = 0, mais b <> 0 : l'équation est vraiment du premier degré, solution évidente.
    Fin du bloc concernant le test de b

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     else
     begin
      if D<0 then writeln('Pas de solution');
      if D=0 then writeln('Solution 1: ',-b/(2*a):5:3);
      if D>0 then writeln('Solution 1: ',(-b-sqrt(D))/(2*a):5:3,'||| Solution 2: ',(-b+sqrt(D))/(2*a):5:3);
     end;
    end.
    Et si a <> 0, alors on a une vraie équation du second degré, résolue par le discriminant.
    Remarque perso : le calcul de D devrait se trouver dans ce bloc, puisqu'il ne prend son sens qu'ici, il est inutile dans les autres cas.
    Remarque perso n° 2 : on voit bien l'intérêt qu'il y a à toujours documenter un code source avec des commentaires...

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Par défaut
    Merci beaucoup , vraiment c'est genial votre expliquation
    Merci ami


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Equation différentielle second degré
    Par Minimonstre dans le forum MATLAB
    Réponses: 0
    Dernier message: 19/03/2012, 22h04
  2. equation du second degre
    Par Manudeparis dans le forum C
    Réponses: 5
    Dernier message: 06/11/2011, 14h42
  3. [Turbo Pascal] [Débutant] Equation du second degré
    Par MEGA-STORM dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 28/11/2008, 17h25
  4. Réponses: 6
    Dernier message: 17/11/2007, 13h17
  5. [TP] Equation du second degré
    Par WhiteTigerZ dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 08/11/2006, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo