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 / Exemple :
//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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.