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

Delphi Discussion :

Résolution d'une équation


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Mars 2005
    Messages : 69
    Points : 68
    Points
    68
    Par défaut Résolution d'une équation
    Je suis débutant en Delphi et j'essaie de faire un prog avec un TEdit (ou on écrit une équation de premier ou second degré) et un Tboutton qui servirait à lancer le calcul mais quel est la fonction pour lancer le calcul.

    Merci d'avance

  2. #2
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    748
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 748
    Points : 500
    Points
    500
    Par défaut
    salut ,
    Tous les composants possedent des evements qui se trouvent dans la partie droite de l'explorateur . Selectionne l'evement adequat en doucle cliquant dessus . Un corps de code s'incrit dans ton unité , a toi ensuite de rajouter le code que tu veux executer dans c'est evement .

    dans ton cas , selectionne ton bouton , va dans la partie droite de l'explorateur , double clique dans l'evement Onclick , dans ton unité il va s'incrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     
    end;
    il te reste plus qu'a renseigner ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       bla ..
       bla ..
       bla ..
    end;
    Remarque pour Onclick du bouton , tu as le meme effet si tu double clique directement sur ton bouton.

    bye et bon code
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  3. #3
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut Re: résolution d'une équation
    c'est plutôt vague ton histoire...
    tu devrais commencer par placer trois edits sur ta form où tu rentres les
    valeurs de a,b et c pour une équation du type ax² + bx +c =0, placer
    ensuite un label pour afficher les solutions de l'équation et un bouton où tu fais calculer tes solutions par le discriminent.... (dans le onclick du bouton) à la fin de ton calcul de solutions, tu rentres celles-ci dans le
    caption du label.
    commence déjà par quelque chose de modeste... si tu découvres delphi.


  4. #4
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    je t'ai démarré la résolution d'une équation du second degré pour t'aider.
    tu rentres a,b et c dans trois edits.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    function Tform1.delta(a,b,c:extended):extended;
    begin
    result:=sqr(b)-4*a*c;
    end;
     
    function Tform1.solution1(a,b,c:extended):extended;
    begin
    result:=(-b+sqrt(delta(a,b,c)))/2*a;
    end;
     
    function Tform1.solution2(a,b,c:extended):extended;
    begin
    result:=(-b-sqrt(delta(a,b,c)))/2*a;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if delta(a,b,c)<0 then
    label1.Caption:='solutions complexes'
     
    else if delta(a,b,c)=0 then
    label1.Caption:='solution='+floattostrf(-b/2*a,ffgeneral,4,4)
     
    else
    label1.Caption:='solution1='+floattostrf(solution1(a,b,c),ffgeneral,4,4)+'   solution2='+floattostrf(solution2(a,b,c),ffgeneral,4,4);
    end;
     
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
    if edit1.Text<>''   then
    val(edit1.text,a,code);
    end;
     
    procedure TForm1.Edit2Change(Sender: TObject);
    begin
    if edit2.Text<>'' then
    val(edit2.text,b,code);
    end;
     
    procedure TForm1.Edit3Change(Sender: TObject);
    begin
    if edit3.Text<>'' then
    val(edit3.text,c,code);
    end;
    j'ai testé ça a l'air de rouler.

    associe des événements onkeypress à tes édits pour limiter l'accès des touches pour la saisie. ajoute une condition pour a=0...

  5. #5
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par Archimède
    if delta(a,b,c)<0 then
    label1.Caption:='solutions complexes'

    else if delta(a,b,c)=0 then
    label1.Caption:='solution='+floattostrf(-b/2*a,ffgeneral,4,4)
    Si je me souviens bien de mes cours sur les complexes Dans le cas de Delta = 0, il y a une solution réelle et une autre complexe. Si tu le signales pour Delta < 0, c'est plus logique de le signaler aussi pour Delta = 0...
    Mais sinon c'est la bonne méthode, bien que je ferais plus court
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Button1Click(Sender: TObject);
    var Delta : Extended;
    begin
      Delta := sqrt(b) - 4*a*c;
      if Delta < 0 then
        Label1.Caption := '2 solutions complexes'
      else if Delta > 0 then
        Label2.Caption := Format('Solution 1 = %f ; Solution 2 = %f',
          [(-b-sqrt(Delta))/(2*a), (-b+sqrt(Delta))/(2*a)])
      else
        Label2.Caption := Format('1 solution réelle : %f ; et 1 solution complexe',
          [(-b)/(2*a)]);
    end;
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  6. #6
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    mes souvenirs de cours de maths sont déjà lointains... autant pour moi.
    les complexes pour moi, à part en élec....
    a+

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    je reponds peut etre un peu tard mais mes souvenirs a moi me disent que le cas delta=0 ne correspond nullement a des solutions complexes le programme était donc bon

Discussions similaires

  1. Résolution d'une équation trigonométrique
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 20/08/2009, 17h47
  2. Réponses: 5
    Dernier message: 04/05/2007, 01h51
  3. Résolution d'une équation différentielle
    Par ramrouma dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/02/2007, 14h11
  4. Réponses: 1
    Dernier message: 08/12/2006, 17h13
  5. Résolution d'une équation par Gauss
    Par rahmani01 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/11/2006, 22h15

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