Le programme suivant calcul la racine carrée d'un nombre donné grâce à la méthode de Newton. La marge d'erreur du calcul est de 0.0001.
Source / Exemple :
///////////////////////////////////////////////////////////
// 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.
Conclusion :
Enjoy
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.