Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRINOME DU SECOND DEGRES


Information sur la source

Catégorie :Maths Classé sous : trinome, seconddégré, maths, mathematiques Niveau : Débutant Date de création : 21/08/2005 Date de mise à jour : 24/05/2006 17:51:08 Vu / téléchargé: 7 163 / 263

Note :
Aucune note

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ce petit programme resoud les trinomes du second degré. Le code est peu commenté car je pense que les noms des composants sont assez éloquents et que les procédures sont assez courtes.
 

Source

  • //projet
  • program Trinome;
  • uses
  • Forms,
  • trinomprinc in 'trinomprinc.pas' {fmTrinome};
  • {$R *.res}
  • begin
  • Application.Initialize;
  • Application.CreateForm(TfmTrinome, fmTrinome);
  • Application.Run;
  • end.
  • //unité
  • unit trinomprinc;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls, Clipbrd, Menus;
  • type
  • TfmTrinome = class(TForm)
  • lbresult: TListBox;
  • donnee1: TEdit;
  • donnee2: TEdit;
  • donnee3: TEdit;
  • txIntro: TLabel;
  • txOp1: TLabel;
  • txOp2: TLabel;
  • txOp3: TLabel;
  • btresoud: TButton;
  • btefface: TButton;
  • bteftout: TButton;
  • MainMenu1: TMainMenu;
  • Fichier1: TMenuItem;
  • Fermer1: TMenuItem;
  • Edition1: TMenuItem;
  • Copierdonnees1: TMenuItem;
  • Copierresultats1: TMenuItem;
  • PopupMenu1: TPopupMenu;
  • Copier1: TMenuItem;
  • Coller1: TMenuItem;
  • Couper1: TMenuItem;
  • txResult: TLabel;
  • PopupMenu2: TPopupMenu;
  • PopupMenu3: TPopupMenu;
  • Copier2: TMenuItem;
  • Coller2: TMenuItem;
  • Couper2: TMenuItem;
  • N1: TMenuItem;
  • Couperdonnes1: TMenuItem;
  • Couperrsultats1: TMenuItem;
  • Copier3: TMenuItem;
  • Coller3: TMenuItem;
  • Couper3: TMenuItem;
  • Aide1: TMenuItem;
  • Lenombrei1: TMenuItem;
  • Aproposde1: TMenuItem;
  • procedure Fermer1Click(Sender: TObject);
  • procedure Copierdonnees1Click(Sender: TObject);
  • procedure Aproposde1Click(Sender: TObject);
  • procedure Copierresultats1Click(Sender: TObject);
  • procedure bteffaceClick(Sender: TObject);
  • procedure Copier1Click(Sender: TObject);
  • procedure Coller1Click(Sender: TObject);
  • procedure Couper1Click(Sender: TObject);
  • procedure bteftoutClick(Sender: TObject);
  • procedure btresoudClick(Sender: TObject);
  • procedure Couperdonnes1Click(Sender: TObject);
  • procedure Couperrsultats1Click(Sender: TObject);
  • procedure Copier2Click(Sender: TObject);
  • procedure Copier3Click(Sender: TObject);
  • procedure Couper2Click(Sender: TObject);
  • procedure Couper3Click(Sender: TObject);
  • procedure Coller2Click(Sender: TObject);
  • procedure Coller3Click(Sender: TObject);
  • procedure Lenombrei1Click(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • fmTrinome: TfmTrinome;
  • implementation
  • {$R *.dfm}
  • procedure TfmTrinome.Fermer1Click(Sender: TObject);
  • begin
  • Close;
  • end;
  • procedure TfmTrinome.Copierdonnees1Click(Sender: TObject);
  • begin
  • Clipboard.AsText :=
  • txOp1.Caption + FloatToStr(StrToFloat(Donnee1.Text)) + txOp2.Caption + FloatToStr(StrToFloat(Donnee2.Text)) + txOp3.Caption + FloatToStr(StrToFloat(Donnee3.Text)) + TxResult.Caption;
  • end;
  • procedure TfmTrinome.Aproposde1Click(Sender: TObject);
  • begin
  • ShowMessage('par Aurelien Martin le 20/08/05');
  • end;
  • procedure TfmTrinome.Copierresultats1Click(Sender: TObject);
  • begin
  • Clipboard.AsText := lbResult.Items.Text;
  • end;
  • procedure TfmTrinome.bteffaceClick(Sender: TObject);
  • begin
  • Donnee1.Clear;
  • Donnee2.Clear;
  • Donnee3.Clear;
  • end;
  • procedure TfmTrinome.Copier1Click(Sender: TObject);
  • begin
  • Clipboard.AsText := Donnee1.SelText;
  • end;
  • procedure TfmTrinome.Coller1Click(Sender: TObject);
  • begin
  • Donnee1.Text := Donnee1.Text + Clipboard.Astext;
  • end;
  • procedure TfmTrinome.Couper1Click(Sender: TObject);
  • begin
  • Clipboard.AsText := Donnee1.SelText;
  • Donnee1.ClearSelection
  • end;
  • procedure TfmTrinome.bteftoutClick(Sender: TObject);
  • begin
  • Donnee1.Clear;
  • Donnee2.Clear;
  • Donnee3.Clear;
  • lbresult.Items.Clear;
  • end;
  • procedure TfmTrinome.btresoudClick(Sender: TObject); //Cette procédure fait tout
  • var
  • Delta: Currency;
  • begin
  • if StrToFloat(Donnee1.Text) = 0 then
  • begin
  • lbResult.Items.Add('Premiere donnée nulle');
  • lbResult.Items.Add('Ce trinome n''est pas du second degé.');
  • lbResult.Items.Add('****************************************************************************');
  • end
  • else
  • begin
  • Delta := StrToFloat(Donnee2.Text) * StrToFloat(Donnee2.Text) - 4 * StrToFloat(Donnee1.Text) * StrToFloat(Donnee3.Text);
  • lbResult.Items.Add('Delta = (' + FloatToStr(StrToFloat(Donnee2.Text)) + ')² - 4 * ' + FloatToStr(StrToFloat(Donnee1.Text)) + ' * ' + FloatToStr(StrToFloat(Donnee3.Text)));
  • lbResult.Items.Add('Delta = ' + FloatToStr(Delta));
  • if Delta < 0 then
  • begin
  • lbResult.Items.Add('Delta négatif');
  • lbResult.Items.Add('Aucun nombre réel solution du trinome');
  • lbResult.Items.Add('X =(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '-V' + FloatToStr(Delta) + ')/(2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
  • lbResult.Items.Add('X =' + FloatToStr(-1 * StrToFloat(Donnee2.Text)/(2 * StrToFloat(Donnee1.Text))) + ' - ' + FloatToStr(sqrt(-1 * Delta) / 2 * StrToFloat(Donnee1.Text)) + 'i');
  • lbResult.Items.Add('ou');
  • lbResult.Items.Add('X =(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '+V' + FloatToStr(Delta) + ')/(2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
  • lbResult.Items.Add('X =' + FloatToStr(-1 * StrToFloat(Donnee2.Text)/(2 * StrToFloat(Donnee1.Text))) + ' + ' + FloatToStr(sqrt(-1 * Delta) / (2 * StrToFloat(Donnee1.Text))) + 'i');
  • lbResult.Items.Add('****************************************************************************');
  • end
  • else if Delta = 0 then
  • begin
  • lbResult.Items.Add('Delta nul');
  • lbResult.Items.Add('Une Solution');
  • lbResult.Items.Add('X=(' + FloatToStr(-1 * StrToFloat(Donnee2.Text)) + ')/ (2*' + Donnee1.Text + ')');
  • lbResult.Items.Add('X=' + FloatToStr(-1 * StrToFloat(Donnee2.Text) / (2 * StrToFloat(Donnee1.Text))));
  • lbResult.Items.Add('****************************************************************************');
  • end
  • else
  • begin
  • lbResult.Items.Add('Delta positif');
  • lbResult.Items.Add('Deux solutions');
  • lbResult.Items.Add('X=(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '-V' + FloatToStr(Delta) + ')/ (2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
  • lbResult.Items.Add('X=' + FloatToStr((-1 * StrToFloat(Donnee2.Text) - sqrt(Delta)) / (2 * StrToFloat(Donnee1.Text))));
  • lbResult.Items.Add('ou');
  • lbResult.Items.Add('X=(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '+V' + FloatToStr(Delta) + ')/ (2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
  • lbResult.Items.Add('X=' + FloatToStr((-1 * StrToFloat(Donnee2.Text) + sqrt(Delta)) / (2 * StrToFloat(Donnee1.Text))));
  • lbResult.Items.Add('****************************************************************************');
  • end;
  • end;
  • end;
  • procedure TfmTrinome.Couperdonnes1Click(Sender: TObject);
  • begin
  • Clipboard.AsText :=
  • txOp1.Caption + FloatToStr(StrToFloat(Donnee1.Text)) + txOp2.Caption + FloatToStr(StrToFloat(Donnee2.Text)) + txOp3.Caption + FloatToStr(StrToFloat(Donnee3.Text)) + TxResult.Caption;
  • Donnee1.Clear;
  • Donnee2.Clear;
  • Donnee3.Clear;
  • end;
  • procedure TfmTrinome.Couperrsultats1Click(Sender: TObject);
  • begin
  • Clipboard.AsText := lbResult.Items.Text;
  • lbResult.Items.Clear;
  • end;
  • procedure TfmTrinome.Copier2Click(Sender: TObject);
  • begin
  • Clipboard.AsText := Donnee2.SelText;
  • end;
  • procedure TfmTrinome.Copier3Click(Sender: TObject);
  • begin
  • Clipboard.AsText := Donnee3.SelText;
  • end;
  • procedure TfmTrinome.Couper2Click(Sender: TObject);
  • begin
  • Clipboard.AsText := Donnee2.SelText;
  • Donnee2.ClearSelection
  • end;
  • procedure TfmTrinome.Couper3Click(Sender: TObject);
  • begin
  • Clipboard.AsText := Donnee3.SelText;
  • Donnee3.ClearSelection
  • end;
  • procedure TfmTrinome.Coller2Click(Sender: TObject);
  • begin
  • Donnee2.Text := Donnee2.Text + Clipboard.Astext;
  • end;
  • procedure TfmTrinome.Coller3Click(Sender: TObject);
  • begin
  • Donnee3.Text := Donnee3.Text + Clipboard.Astext;
  • end;
  • procedure TfmTrinome.Lenombrei1Click(Sender: TObject);
  • var
  • Nbri: TStringList;
  • begin
  • Nbri := TStringList.Create;
  • Nbri.Add('**********************************************************');
  • Nbri.Add('Le nombre i est un nombre de substitution');
  • Nbri.Add('Il n''est pas réel et remplace la racine carrée de -1');
  • Nbri.Add('C''est à dire que la racine carrée d''un nombre négatif');
  • Nbri.Add('est égale à la racine carrée de la distance à 0 de ce');
  • Nbri.Add('nombre multipliée par i.');
  • Nbri.Add('Ce n''est pas un nombre réel -> c''est un nombre complexe');
  • Nbri.Add('**********************************************************');
  • ShowMessage(Nbri.Text);
  • Nbri.Destroy;
  • end;
  • end.
  • //fiche
  • object fmTrinome: TfmTrinome
  • Left = 237
  • Top = 218
  • Width = 486
  • Height = 360
  • HorzScrollBar.ParentColor = False
  • Caption = 'Trinomes du second degré'
  • Color = clWindowText
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = clWindowText
  • Font.Height = -11
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • Menu = MainMenu1
  • OldCreateOrder = False
  • PixelsPerInch = 96
  • TextHeight = 13
  • object txIntro: TLabel
  • Left = 8
  • Top = 16
  • Width = 447
  • Height = 29
  • Align = alCustom
  • Caption = 'Dans un trinôme du second degré tel que '
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = cl3DLight
  • Font.Height = -24
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • end
  • object txOp1: TLabel
  • Left = 0
  • Top = 64
  • Width = 57
  • Height = 29
  • Caption = 'P(x)='
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = cl3DLight
  • Font.Height = -24
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • end
  • object txOp2: TLabel
  • Left = 168
  • Top = 64
  • Width = 38
  • Height = 29
  • Caption = 'X²+'
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = cl3DLight
  • Font.Height = -24
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • end
  • object txOp3: TLabel
  • Left = 312
  • Top = 64
  • Width = 31
  • Height = 29
  • Caption = 'X+'
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = cl3DLight
  • Font.Height = -24
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • end
  • object txResult: TLabel
  • Left = 448
  • Top = 64
  • Width = 27
  • Height = 29
  • Caption = '=0'
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = cl3DLight
  • Font.Height = -24
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • end
  • object lbresult: TListBox
  • Left = 0
  • Top = 162
  • Width = 478
  • Height = 143
  • Align = alBottom
  • Color = clBlack
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = cl3DLight
  • Font.Height = -11
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ItemHeight = 13
  • MultiSelect = True
  • ParentFont = False
  • TabOrder = 0
  • end
  • object donnee1: TEdit
  • Left = 64
  • Top = 72
  • Width = 97
  • Height = 21
  • Color = clInfoText
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = clRed
  • Font.Height = -11
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • PopupMenu = PopupMenu1
  • TabOrder = 1
  • end
  • object donnee2: TEdit
  • Left = 208
  • Top = 72
  • Width = 97
  • Height = 21
  • Color = clWindowText
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = clRed
  • Font.Height = -11
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • PopupMenu = PopupMenu2
  • TabOrder = 2
  • end
  • object donnee3: TEdit
  • Left = 344
  • Top = 72
  • Width = 97
  • Height = 21
  • Color = clWindowText
  • Font.Charset = DEFAULT_CHARSET
  • Font.Color = clRed
  • Font.Height = -11
  • Font.Name = 'MS Sans Serif'
  • Font.Style = []
  • ParentFont = False
  • PopupMenu = PopupMenu3
  • TabOrder = 3
  • end
  • object btresoud: TButton
  • Left = 16
  • Top = 112
  • Width = 121
  • Height = 25
  • Caption = 'Resoudre'
  • Default = True
  • TabOrder = 4
  • OnClick = btresoudClick
  • end
  • object btefface: TButton
  • Left = 160
  • Top = 112
  • Width = 129
  • Height = 25
  • Caption = 'Effacer données'
  • TabOrder = 5
  • OnClick = bteffaceClick
  • end
  • object bteftout: TButton
  • Left = 312
  • Top = 112
  • Width = 129
  • Height = 25
  • Caption = 'Effacer Tout'
  • TabOrder = 6
  • OnClick = bteftoutClick
  • end
  • object MainMenu1: TMainMenu
  • object Fichier1: TMenuItem
  • Caption = 'Fichier'
  • object Fermer1: TMenuItem
  • Caption = 'Fermer'
  • OnClick = Fermer1Click
  • end
  • end
  • object Edition1: TMenuItem
  • Caption = 'Edition'
  • object Copierdonnees1: TMenuItem
  • Caption = 'Copier données'
  • OnClick = Copierdonnees1Click
  • end
  • object Copierresultats1: TMenuItem
  • Caption = 'Copier résultats'
  • OnClick = Copierresultats1Click
  • end
  • object N1: TMenuItem
  • Caption = '-'
  • end
  • object Couperdonnes1: TMenuItem
  • Caption = 'Couper données'
  • OnClick = Couperdonnes1Click
  • end
  • object Couperrsultats1: TMenuItem
  • Caption = 'Couper résultats'
  • OnClick = Couperrsultats1Click
  • end
  • end
  • object Aide1: TMenuItem
  • Caption = 'Aide'
  • object Lenombrei1: TMenuItem
  • Caption = 'Le nombre i'
  • OnClick = Lenombrei1Click
  • end
  • object Aproposde1: TMenuItem
  • Caption = 'A propos de'
  • OnClick = Aproposde1Click
  • end
  • end
  • end
  • object PopupMenu1: TPopupMenu
  • object Copier1: TMenuItem
  • Caption = 'Copier'
  • OnClick = Copier1Click
  • end
  • object Coller1: TMenuItem
  • Caption = 'Coller'
  • OnClick = Coller1Click
  • end
  • object Couper1: TMenuItem
  • Caption = 'Couper'
  • OnClick = Couper1Click
  • end
  • end
  • object PopupMenu2: TPopupMenu
  • object Copier2: TMenuItem
  • Caption = 'Copier'
  • OnClick = Copier2Click
  • end
  • object Coller2: TMenuItem
  • Caption = 'Coller'
  • OnClick = Coller2Click
  • end
  • object Couper2: TMenuItem
  • Caption = 'Couper'
  • OnClick = Couper2Click
  • end
  • end
  • object PopupMenu3: TPopupMenu
  • object Copier3: TMenuItem
  • Caption = 'Copier'
  • OnClick = Copier3Click
  • end
  • object Coller3: TMenuItem
  • Caption = 'Coller'
  • OnClick = Coller3Click
  • end
  • object Couper3: TMenuItem
  • Caption = 'Couper'
  • OnClick = Couper3Click
  • end
  • end
  • end
//projet

program Trinome;

uses
  Forms,
  trinomprinc in 'trinomprinc.pas' {fmTrinome};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TfmTrinome, fmTrinome);
  Application.Run;
end.

//unité

unit trinomprinc;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Clipbrd, Menus;

type
  TfmTrinome = class(TForm)
    lbresult: TListBox;
    donnee1: TEdit;
    donnee2: TEdit;
    donnee3: TEdit;
    txIntro: TLabel;
    txOp1: TLabel;
    txOp2: TLabel;
    txOp3: TLabel;
    btresoud: TButton;
    btefface: TButton;
    bteftout: TButton;
    MainMenu1: TMainMenu;
    Fichier1: TMenuItem;
    Fermer1: TMenuItem;
    Edition1: TMenuItem;
    Copierdonnees1: TMenuItem;
    Copierresultats1: TMenuItem;
    PopupMenu1: TPopupMenu;
    Copier1: TMenuItem;
    Coller1: TMenuItem;
    Couper1: TMenuItem;
    txResult: TLabel;
    PopupMenu2: TPopupMenu;
    PopupMenu3: TPopupMenu;
    Copier2: TMenuItem;
    Coller2: TMenuItem;
    Couper2: TMenuItem;
    N1: TMenuItem;
    Couperdonnes1: TMenuItem;
    Couperrsultats1: TMenuItem;
    Copier3: TMenuItem;
    Coller3: TMenuItem;
    Couper3: TMenuItem;
    Aide1: TMenuItem;
    Lenombrei1: TMenuItem;
    Aproposde1: TMenuItem;
    procedure Fermer1Click(Sender: TObject);
    procedure Copierdonnees1Click(Sender: TObject);
    procedure Aproposde1Click(Sender: TObject);
    procedure Copierresultats1Click(Sender: TObject);
    procedure bteffaceClick(Sender: TObject);
    procedure Copier1Click(Sender: TObject);
    procedure Coller1Click(Sender: TObject);
    procedure Couper1Click(Sender: TObject);
    procedure bteftoutClick(Sender: TObject);
    procedure btresoudClick(Sender: TObject);
    procedure Couperdonnes1Click(Sender: TObject);
    procedure Couperrsultats1Click(Sender: TObject);
    procedure Copier2Click(Sender: TObject);
    procedure Copier3Click(Sender: TObject);
    procedure Couper2Click(Sender: TObject);
    procedure Couper3Click(Sender: TObject);
    procedure Coller2Click(Sender: TObject);
    procedure Coller3Click(Sender: TObject);
    procedure Lenombrei1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  fmTrinome: TfmTrinome;

implementation

{$R *.dfm}

procedure TfmTrinome.Fermer1Click(Sender: TObject);
begin
Close;
end;

procedure TfmTrinome.Copierdonnees1Click(Sender: TObject);
begin
Clipboard.AsText :=
           txOp1.Caption + FloatToStr(StrToFloat(Donnee1.Text)) + txOp2.Caption + FloatToStr(StrToFloat(Donnee2.Text)) + txOp3.Caption + FloatToStr(StrToFloat(Donnee3.Text)) + TxResult.Caption;
end;

procedure TfmTrinome.Aproposde1Click(Sender: TObject);
begin
ShowMessage('par Aurelien Martin le 20/08/05');
end;

procedure TfmTrinome.Copierresultats1Click(Sender: TObject);
begin
Clipboard.AsText := lbResult.Items.Text;
end;

procedure TfmTrinome.bteffaceClick(Sender: TObject);
begin
Donnee1.Clear;
Donnee2.Clear;
Donnee3.Clear;
end;

procedure TfmTrinome.Copier1Click(Sender: TObject);
begin
Clipboard.AsText := Donnee1.SelText;
end;

procedure TfmTrinome.Coller1Click(Sender: TObject);
begin
Donnee1.Text := Donnee1.Text + Clipboard.Astext;
end;

procedure TfmTrinome.Couper1Click(Sender: TObject);
begin
Clipboard.AsText := Donnee1.SelText;
Donnee1.ClearSelection
end;

procedure TfmTrinome.bteftoutClick(Sender: TObject);
begin
Donnee1.Clear;
Donnee2.Clear;
Donnee3.Clear;
lbresult.Items.Clear;
end;

procedure TfmTrinome.btresoudClick(Sender: TObject); //Cette procédure fait tout
var
Delta: Currency;
begin
if StrToFloat(Donnee1.Text) = 0 then
  begin
  lbResult.Items.Add('Premiere donnée nulle');
  lbResult.Items.Add('Ce trinome n''est pas du second degé.');
  lbResult.Items.Add('****************************************************************************');
  end
else
begin
  Delta := StrToFloat(Donnee2.Text) * StrToFloat(Donnee2.Text) - 4 * StrToFloat(Donnee1.Text) * StrToFloat(Donnee3.Text);
  lbResult.Items.Add('Delta = (' + FloatToStr(StrToFloat(Donnee2.Text)) + ')² - 4 * ' + FloatToStr(StrToFloat(Donnee1.Text)) + ' * ' + FloatToStr(StrToFloat(Donnee3.Text)));
  lbResult.Items.Add('Delta = ' + FloatToStr(Delta));
  if Delta < 0 then
    begin
      lbResult.Items.Add('Delta négatif');
      lbResult.Items.Add('Aucun nombre réel solution du trinome');
      lbResult.Items.Add('X =(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '-V' + FloatToStr(Delta) + ')/(2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
      lbResult.Items.Add('X =' + FloatToStr(-1 * StrToFloat(Donnee2.Text)/(2 * StrToFloat(Donnee1.Text))) + ' - ' + FloatToStr(sqrt(-1 * Delta) / 2 * StrToFloat(Donnee1.Text)) + 'i');
      lbResult.Items.Add('ou');
      lbResult.Items.Add('X =(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '+V' + FloatToStr(Delta) + ')/(2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
      lbResult.Items.Add('X =' + FloatToStr(-1 * StrToFloat(Donnee2.Text)/(2 * StrToFloat(Donnee1.Text))) + ' + ' + FloatToStr(sqrt(-1 * Delta) / (2 * StrToFloat(Donnee1.Text))) + 'i');
      lbResult.Items.Add('****************************************************************************');
      end
  else if Delta = 0 then
    begin
      lbResult.Items.Add('Delta nul');
      lbResult.Items.Add('Une Solution');
      lbResult.Items.Add('X=(' + FloatToStr(-1 * StrToFloat(Donnee2.Text)) + ')/ (2*' + Donnee1.Text + ')');
      lbResult.Items.Add('X=' + FloatToStr(-1 *  StrToFloat(Donnee2.Text) / (2 * StrToFloat(Donnee1.Text))));
      lbResult.Items.Add('****************************************************************************');
    end
  else
    begin
      lbResult.Items.Add('Delta positif');
      lbResult.Items.Add('Deux solutions');
      lbResult.Items.Add('X=(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '-V' + FloatToStr(Delta) + ')/ (2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
      lbResult.Items.Add('X=' + FloatToStr((-1 *  StrToFloat(Donnee2.Text) - sqrt(Delta)) / (2 * StrToFloat(Donnee1.Text))));
      lbResult.Items.Add('ou');
      lbResult.Items.Add('X=(' + FloatToStr(-1 * StrToFloat(Donnee2.Text))+ '+V' + FloatToStr(Delta) + ')/ (2*' + FloatToStr(StrToFloat(Donnee1.Text)) + ')');
      lbResult.Items.Add('X=' + FloatToStr((-1 *  StrToFloat(Donnee2.Text) + sqrt(Delta)) / (2 * StrToFloat(Donnee1.Text))));
      lbResult.Items.Add('****************************************************************************');
    end;
  end;

end;

procedure TfmTrinome.Couperdonnes1Click(Sender: TObject);
begin
Clipboard.AsText :=
           txOp1.Caption + FloatToStr(StrToFloat(Donnee1.Text)) + txOp2.Caption + FloatToStr(StrToFloat(Donnee2.Text)) + txOp3.Caption + FloatToStr(StrToFloat(Donnee3.Text)) + TxResult.Caption;
Donnee1.Clear;
Donnee2.Clear;
Donnee3.Clear;
end;

procedure TfmTrinome.Couperrsultats1Click(Sender: TObject);
begin
Clipboard.AsText := lbResult.Items.Text;
lbResult.Items.Clear;
end;

procedure TfmTrinome.Copier2Click(Sender: TObject);
begin
Clipboard.AsText := Donnee2.SelText;
end;

procedure TfmTrinome.Copier3Click(Sender: TObject);
begin
Clipboard.AsText := Donnee3.SelText;
end;

procedure TfmTrinome.Couper2Click(Sender: TObject);
begin
Clipboard.AsText := Donnee2.SelText;
Donnee2.ClearSelection
end;

procedure TfmTrinome.Couper3Click(Sender: TObject);
begin
Clipboard.AsText := Donnee3.SelText;
Donnee3.ClearSelection
end;

procedure TfmTrinome.Coller2Click(Sender: TObject);
begin
Donnee2.Text := Donnee2.Text + Clipboard.Astext;
end;

procedure TfmTrinome.Coller3Click(Sender: TObject);
begin
Donnee3.Text := Donnee3.Text + Clipboard.Astext;
end;

procedure TfmTrinome.Lenombrei1Click(Sender: TObject);
var
Nbri: TStringList;
begin
Nbri := TStringList.Create;
Nbri.Add('**********************************************************');
Nbri.Add('Le nombre i est un nombre de substitution');
Nbri.Add('Il n''est pas réel et remplace la racine carrée de -1');
Nbri.Add('C''est à dire que la racine carrée d''un nombre négatif');
Nbri.Add('est égale à la racine carrée de la distance à 0 de ce');
Nbri.Add('nombre multipliée par i.');
Nbri.Add('Ce n''est pas un nombre réel -> c''est un nombre complexe');
Nbri.Add('**********************************************************');
ShowMessage(Nbri.Text);
Nbri.Destroy;
end;

end.
//fiche

object fmTrinome: TfmTrinome
  Left = 237
  Top = 218
  Width = 486
  Height = 360
  HorzScrollBar.ParentColor = False
  Caption = 'Trinomes du second degré'
  Color = clWindowText
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  Menu = MainMenu1
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object txIntro: TLabel
    Left = 8
    Top = 16
    Width = 447
    Height = 29
    Align = alCustom
    Caption = 'Dans un trinôme du second degré tel que '
    Font.Charset = DEFAULT_CHARSET
    Font.Color = cl3DLight
    Font.Height = -24
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
  end
  object txOp1: TLabel
    Left = 0
    Top = 64
    Width = 57
    Height = 29
    Caption = 'P(x)='
    Font.Charset = DEFAULT_CHARSET
    Font.Color = cl3DLight
    Font.Height = -24
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
  end
  object txOp2: TLabel
    Left = 168
    Top = 64
    Width = 38
    Height = 29
    Caption = 'X²+'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = cl3DLight
    Font.Height = -24
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
  end
  object txOp3: TLabel
    Left = 312
    Top = 64
    Width = 31
    Height = 29
    Caption = 'X+'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = cl3DLight
    Font.Height = -24
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
  end
  object txResult: TLabel
    Left = 448
    Top = 64
    Width = 27
    Height = 29
    Caption = '=0'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = cl3DLight
    Font.Height = -24
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
  end
  object lbresult: TListBox
    Left = 0
    Top = 162
    Width = 478
    Height = 143
    Align = alBottom
    Color = clBlack
    Font.Charset = DEFAULT_CHARSET
    Font.Color = cl3DLight
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ItemHeight = 13
    MultiSelect = True
    ParentFont = False
    TabOrder = 0
  end
  object donnee1: TEdit
    Left = 64
    Top = 72
    Width = 97
    Height = 21
    Color = clInfoText
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clRed
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
    PopupMenu = PopupMenu1
    TabOrder = 1
  end
  object donnee2: TEdit
    Left = 208
    Top = 72
    Width = 97
    Height = 21
    Color = clWindowText
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clRed
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
    PopupMenu = PopupMenu2
    TabOrder = 2
  end
  object donnee3: TEdit
    Left = 344
    Top = 72
    Width = 97
    Height = 21
    Color = clWindowText
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clRed
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
    PopupMenu = PopupMenu3
    TabOrder = 3
  end
  object btresoud: TButton
    Left = 16
    Top = 112
    Width = 121
    Height = 25
    Caption = 'Resoudre'
    Default = True
    TabOrder = 4
    OnClick = btresoudClick
  end
  object btefface: TButton
    Left = 160
    Top = 112
    Width = 129
    Height = 25
    Caption = 'Effacer données'
    TabOrder = 5
    OnClick = bteffaceClick
  end
  object bteftout: TButton
    Left = 312
    Top = 112
    Width = 129
    Height = 25
    Caption = 'Effacer Tout'
    TabOrder = 6
    OnClick = bteftoutClick
  end
  object MainMenu1: TMainMenu
    object Fichier1: TMenuItem
      Caption = 'Fichier'
      object Fermer1: TMenuItem
        Caption = 'Fermer'
        OnClick = Fermer1Click
      end
    end
    object Edition1: TMenuItem
      Caption = 'Edition'
      object Copierdonnees1: TMenuItem
        Caption = 'Copier données'
        OnClick = Copierdonnees1Click
      end
      object Copierresultats1: TMenuItem
        Caption = 'Copier résultats'
        OnClick = Copierresultats1Click
      end
      object N1: TMenuItem
        Caption = '-'
      end
      object Couperdonnes1: TMenuItem
        Caption = 'Couper données'
        OnClick = Couperdonnes1Click
      end
      object Couperrsultats1: TMenuItem
        Caption = 'Couper résultats'
        OnClick = Couperrsultats1Click
      end
    end
    object Aide1: TMenuItem
      Caption = 'Aide'
      object Lenombrei1: TMenuItem
        Caption = 'Le nombre i'
        OnClick = Lenombrei1Click
      end
      object Aproposde1: TMenuItem
        Caption = 'A propos de'
        OnClick = Aproposde1Click
      end
    end
  end
  object PopupMenu1: TPopupMenu
    object Copier1: TMenuItem
      Caption = 'Copier'
      OnClick = Copier1Click
    end
    object Coller1: TMenuItem
      Caption = 'Coller'
      OnClick = Coller1Click
    end
    object Couper1: TMenuItem
      Caption = 'Couper'
      OnClick = Couper1Click
    end
  end
  object PopupMenu2: TPopupMenu
    object Copier2: TMenuItem
      Caption = 'Copier'
      OnClick = Copier2Click
    end
    object Coller2: TMenuItem
      Caption = 'Coller'
      OnClick = Coller2Click
    end
    object Couper2: TMenuItem
      Caption = 'Couper'
      OnClick = Couper2Click
    end
  end
  object PopupMenu3: TPopupMenu
    object Copier3: TMenuItem
      Caption = 'Copier'
      OnClick = Copier3Click
    end
    object Coller3: TMenuItem
      Caption = 'Coller'
      OnClick = Coller3Click
    end
    object Couper3: TMenuItem
      Caption = 'Couper'
      OnClick = Couper3Click
    end
  end
end

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Trinome.cfgTélécharger ce fichier [Réservé aux membres club]Voir ce fichier434 octets
  • Trinome.dofTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 966 octets
  • Trinome.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier211 octets
  • Trinome.identcacheTélécharger ce fichier [Réservé aux membres club]140 octets
  • Trinome.resTélécharger ce fichier [Réservé aux membres club]876 octets
  • Trinome.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier429 568 octets
  • trinomprinc.~dfmTélécharger ce fichier [Réservé aux membres club]5 948 octets
  • trinomprinc.~pasTélécharger ce fichier [Réservé aux membres club]8 210 octets
  • trinomprinc.dcuTélécharger ce fichier [Réservé aux membres club]16 053 octets
  • trinomprinc.dcuilTélécharger ce fichier [Réservé aux membres club]12 419 octets
  • trinomprinc.dfmTélécharger ce fichier [Réservé aux membres club]5 948 octets
  • trinomprinc.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier8 220 octets

Télécharger le zip

Historique

21 août 2005 19:09:11 :
Ajout du message de mise en garde par rapport au changement d'extention de l'exe
22 août 2005 22:37:47 :
Le programme peut maintenant résoudre le trinome meme si Delta est négatif, j'ai modifié le menu principal, ajouté des menis contectuels aux zones d'edition des données et ai ajouté un memo sur le nombre complexe i.
24 mai 2006 16:01:53 :
réglage du texte final de la resolution du trinome pour delta<0, qui affichait auparavant (x-yi)/2c et maintenant x/2c - y/2c*i, x/2c et y/2c étant résolus. correction d'une erreur qui pour delta négatif résolvait -b+VDelta/2*a au lieu de -b+VDelta/(2*a)
24 mai 2006 16:35:28 :
réglage du texte final de la resolution du trinome pour delta<0, qui affichait auparavant (x-yi)/2c et maintenant x/2c - y/2c*i, x/2c et y/2c étant résolus. correction d'une erreur qui pour delta négatif résolvait -b+VDelta/2*a au lieu de -b+VDelta/(2*a)
24 mai 2006 17:51:08 :
réglage du texte final de la resolution du trinome pour delta<0, qui affichait auparavant (x-yi)/2c et maintenant x/2c - y/2c*i, x/2c et y/2c étant résolus. correction d'une erreur qui pour delta négatif résolvait -b+VDelta/2*a au lieu de -b+VDelta/(2*a)

Commentaires et avis

signaler à un administrateur
Commentaire de CptPingu le 21/08/2005 22:01:00

1_Tu ne met pas le .exe, on compilera ton programme.
2_Tu ne met pas les fichiers suivants: .~dfm, .dof, .~pas, .cfg
3_Pas besoin de copier tout ton code dans la fenetre source. Tu ne colle que le principe que tu veu illustrer
4_Pour resoudre un polynome négatif: Delta<0 2 solution:
Soit: ax²+bx+c
Les solutions sont:
-> (-b-(i*Rac(-Delta)))/(2a)
-> (-b+(i*Rac(-Delta)))/(2a)

Avec I=Rac(-1)

signaler à un administrateur
Commentaire de yvessimon le 22/08/2005 17:17:09

Tous est dans la representation des nombre complexes en langage informatique.

La résolution avec delta négatif se fait en séparant les parties réelles et imaginaires.
en untilisant une tabl[0..1 , 0..1] il est possible de ranger les solutions telque:

La partie réelle est mise dans une table[0,0] et table[1,0] et la partie imaginaire dans le table[0,1]et table[1,1] . Table[0,1] contient la racine carré de la valeur absolue. comme il y a 2 racines imaginaires l'une est positive l'autre négative,Table[1,1]=-Table[0,1].

si delta est positif ou nul alors la partie imaginaire est nule d'ou Table[1,1]=-Table[0,1]= 0. et les solutions sont dans Table[0,0] et Table[1,0].

est-ce claire ...

Il existe des programmes avec des nombres complexe..somme multiplication ... pour cela on utilise des vecteurs ou tables ou alors des variants

Voir des exmples sur le site DELPHI

en modifiant légérement la formule de " CptPingu "

on a
-> (-b /(2a) +  i*Rac( |Delta| ) ) /(2a)
-> (-b /(2a) -  i*Rac( |Delta| ) ) /(2a)


Pour visualiser les solutions alors on visualise la partie réelle puis imaginaire.

Bon courage

Pour info   x^4 + a.x^3 + b.x^2 + c.x + d =0
a des solutions avec des racines carré et cubique.

pour x^5 et plus alors c'est autre chose

signaler à un administrateur
Commentaire de Nitruk le 23/08/2005 00:35:24

Je préfère mettre l'exe pour que les membres de CodeS-SourceS qui ne programment pas en Pascal Objet puissent bénéficier du programme, meme si le code source ne leur est d'aucune utilité.

signaler à un administrateur
Commentaire de yvessimon le 23/08/2005 08:34:42

pour ne rentrer que des valeurs numérique dans chacun des événements onKeyPress des edit met le code
procedure TfmTrinome.donnee1KeyPress(Sender: TObject; var Key: Char);
begin
// SEULE LES CHIFFRES 0 à 9 et les caractères ,.-
// #8 POUR POUVOIR EFFACER
// decimalseparator LE S2PARATEUR DECIMAL DU SYSTEME
     if pos(key,'0123456789,.-'#8+decimalseparator )=0 then key :=#0;
// CELON LA FRAPPE DE . ou , c'est   decimalseparator qui est pris en compte
    if pos(key, ',.') <>0 then key := decimalseparator;
// LE decimalseparator n'est accepté qu'une seule fois
    if (key=decimalseparator ) and ( pos(decimalseparator, donnee1.Text) <> 0 ) then key :=#0;
// LE SIGNE - n'est accepté qu'au début
     if ( donnee1.SelStart<>0) and (key='-') then key :=#0;

end;

remarque
les quantités à calculer sont
signe(Delta)
-b /(2a)
sqrt( abs(Delta) ) /(2a)

suivant le signe de delta on ajoute ou non ...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

les maths [ par sheorogath ] alors voila ma question:j'ai un Form2.Edit1 je veut en faire un integer pour y effectuer des operation mathematique comment je dois faire pour arriver Maths [ par jlmcom ] J'ai besoin de réaliser un programme de vérification qui me génère toutes les combinaisons (arrangement sans répétition) de p valeurs d'un tableau de Unité Maths dans delphi? [ par jlmcom ] Il me semble qu'il existait à une époque une unité pascal de fonctions mathématiques.Je viens de faire un tour dans des sources qu'il me restait de de Question en Maths [ par blanc76 ] Salut les amis. Soit N, X, Y des entiers donn&#233;es. je vais d&#233;compos&#233; N en produit des facteurs premiers. puis je cherche toutes les prob Formule Maths en Delphi [ par blanc76 ] Salut mes amis...je suis entrein de cr&#233;er une application en delphi6, cette application contienne des calculs mathematique (log, ln, puissance de Question pour un champion de maths [ par cantador ] Bonjour à tous,J'ai une liste de données de cette manière :ex : 7 enregistrements :           S1     S21        10      3482        45      2303       cherche disquette d'exemples d'un livre [ par mezou59 ] bonjour tout le mondeje cherche la disquette du livre mathematiques en turbo pascal d'alain reverchon et marc ducampsi quelqu' un l'a s'il vous plais Programme de maths Aider moi SVP..... [ par Nina0770 ] Salut,Donc je suis nouvelle programmeuse et je veut réaliser le programme suivant:soit un tableau de 8 cases de type entier, je veut afficher toutes l Quick Report [ par bigjohn02tw ] Salut, J'ai un problème avec l'affichage avec Quick Report. Au fait je ne sais pas faire ce que je veux. Alors aider-moi SVP J'ai des matières classé Maths et "régression linéaire" "moindre carrés" je ne sais ! [ par YB91380 ] BONJOUR, Mon niveau math est assez faible mais je me lance dans un calcul sur les incertitudes de mesure soit :U = a + b.IU1 = 20 pour I = 0U2 = 40


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.