- ///////////////////////////////////////////////////////////
- // Fichier : uNewton.pas //
- // Auteur : Stéphane HAIMET //
- // Date de création : 14/02/08 //
- // Date de modification : 14/02/08 //
- ///////////////////////////////////////////////////////////
-
- unit uNewton;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Buttons;
-
- type
- TForm1 = class(TForm)
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- eIteration: TEdit;
- eCarree: TEdit;
- eNombre: TEdit;
- bCalculer: TBitBtn;
- bFermer: TBitBtn;
- lMessage: TLabel;
- procedure bCalculerClick(Sender: TObject);
- function verifNbre(nombre:string):string;
- procedure eNombreChange(Sender: TObject);
- private
- { Déclarations privées }
- public
- { Déclarations publiques }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
-
-
- //Quand on clique sur le bouton calculer :
- procedure TForm1.bCalculerClick(Sender: TObject);
- var verif : string;
- nombre, x0, x, marge : real;
- n : integer;
- begin
- //On vérifie le nombre entré ensuite on fait le calcul
- verif:=verifNbre(eNombre.text);
- if(verif='erreur') then
- begin
- lMessage.caption:='Entrez un nombre réel positif';
- end
- else begin
- n:=0;
- nombre:=strtofloat(eNombre.Text);
- x:=(1+nombre)/2;
- repeat
- x0:=x;
- x:=0.5*(x0+nombre/x0);
- n:=n+1;
- marge:=abs((x-x0)/x0);
- until((marge<0.0001)AND(marge>-0.0001));
- eIteration.text:=inttostr(n);
- eCarree.text:=floattostr(x);
- end;
- end;
-
-
- //Fonction qui vérifie le nombre entré :
- function TForm1.verifNbre(nombre:string):string;
- begin
- if (strtofloat(nombre)>0) then
- result:='ok'
- else result:='erreur';
- end;
-
-
- //Quand on change l'édit nombre :
- procedure TForm1.eNombreChange(Sender: TObject);
- begin
- lMessage.caption:='';
- eCarree.Text:='';
- eIteration.text:='';
- end;
-
- end.
///////////////////////////////////////////////////////////
// Fichier : uNewton.pas //
// Auteur : Stéphane HAIMET //
// Date de création : 14/02/08 //
// Date de modification : 14/02/08 //
///////////////////////////////////////////////////////////
unit uNewton;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
eIteration: TEdit;
eCarree: TEdit;
eNombre: TEdit;
bCalculer: TBitBtn;
bFermer: TBitBtn;
lMessage: TLabel;
procedure bCalculerClick(Sender: TObject);
function verifNbre(nombre:string):string;
procedure eNombreChange(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//Quand on clique sur le bouton calculer :
procedure TForm1.bCalculerClick(Sender: TObject);
var verif : string;
nombre, x0, x, marge : real;
n : integer;
begin
//On vérifie le nombre entré ensuite on fait le calcul
verif:=verifNbre(eNombre.text);
if(verif='erreur') then
begin
lMessage.caption:='Entrez un nombre réel positif';
end
else begin
n:=0;
nombre:=strtofloat(eNombre.Text);
x:=(1+nombre)/2;
repeat
x0:=x;
x:=0.5*(x0+nombre/x0);
n:=n+1;
marge:=abs((x-x0)/x0);
until((marge<0.0001)AND(marge>-0.0001));
eIteration.text:=inttostr(n);
eCarree.text:=floattostr(x);
end;
end;
//Fonction qui vérifie le nombre entré :
function TForm1.verifNbre(nombre:string):string;
begin
if (strtofloat(nombre)>0) then
result:='ok'
else result:='erreur';
end;
//Quand on change l'édit nombre :
procedure TForm1.eNombreChange(Sender: TObject);
begin
lMessage.caption:='';
eCarree.Text:='';
eIteration.text:='';
end;
end.