Dhifallah Fethi Admin
Messages : 74 Date d'inscription : 02/03/2011
| Sujet: Exercices_1 à 5 (Agorithmes récurrents) Lun 28 Mar - 2:12 | |
| Exercices (Agorithmes récurrents) Exercice 1:Soit la suite (U) définie par:Code: U0= 2 U1= 3 Un = Un-1+ 2*Un-2 pour tout n >= 2 En supposant que cette suite est croissante, écrire un programme permettant de lire un entier x (x > 2), de vérifier et d'afficher s'il est un terme de la suite U ou non. Dans l'affirmative afficher son rang. Correction de l'exercice 1: - Code:
-
program ex1;
uses wincrt;
var x,u,r:integer;
procedure saisie (var x:integer);
begin
repeat
writeln ('saisir l''entier x');
readln (x);
until (x>2);
end;
procedure calcul (x:integer; var u,r:integer);
var uap,up:integer;
begin
r:=2;
up:=2;
u:= 3;
repeat
uap := up;
up := u;
u:= up+ 2 * uap;
r:= r+1
until (u>=x);
end;
begin
saisie (x);
calcul (x,u,r);
if (x=r) then
writeln (x,' un terme de la suite')
else
writeln (x,' n''est pas un terme de la suite');
end. Exercice 2:Ecrire un programme qui permet de calculer puis d'afficher la racine carrée d'un réel positif x en utilisant la suite suivante:Code: U0 = (1+x)/2 Un+1 = (Un+ x/Un)/2 Il s'agit de calculer les premiers termes de cette suite jusqu'à ce que la différence entre deux termes successifs devient inferieur ou égale à 10^-4. Le dernier terme calculé est une valeur approchée de √x à 10^-4 près Correction de l'exercice 2: - Code:
-
program ex2;
uses wincrt;
var x,r:real;
procedure saisie (var x:real);
begin
repeat
writeln ('saisir un reel positif');
readln (x);
until (x>0);
end;
function racine (x:real):real;
var u,up:real;
begin
u:= (1+x)/2;
repeat
up := u;
u:= (up + x / up)/2;
until (abs(u-up) <= 0.0001);
racine := u;
end;
begin
saisie (x);
r:= racine(x);
writeln(r:5:2,' est la racine carée de ',x:5:2);
end. Exercice 3:La suite de Fabonacci est définie par : F0= 1 F1= 1 Fn= Fn-1 + Fn-2 Ecrire un programme qui permet de saisir un entier naturel n strictement superieur à 1 puis calculer et afficher, pour toutes les valeurs de i inferieur ou égales à n, les valeurs du rapport: Fi/Fi-1 Correction de l'exercice 3: - Code:
-
program ex3; uses wincrt; var f0,f1,fn,i,n:integer; procedure saisie(var n:integer); begin repeat writeln('donner u, entier > 1'); readln(n); until (n>1); end; procedure calcul(n:integer); var i:integer; begin for i:=1 to n do begin fn:=f0+f1; writeln('le ',i,' rapport est ',(fn/f1):0:2); f0:=f1; f1:=fn; end; end; begin f0:=1; f1:=1; saisie(n); calcul(n); end. Exercice 4:Soit la suite (Pi), i impaire définie par:Code: P1= 2 Pi = Pi-2 * (i-1)/i * (i+1)/i Ecrire un programme qui permet de calculer et d'afficher les termes de la suite P jusqu'à ce que la différence entre deux termes consécutifs devient inferieure ou égale à 10-4 Exercice 5:Sachant que sin(x) = x/1! - x3/3! + x5/5! - x7/7! + x9/9! - ... Pour x très proche de zéro Ecrire un programme qui permet d'afficher sin(x) en utilisant la formule ci-dessus. Le calcul s'arrête quand la différence entre deux termes consécutifs devient inferieure ou égale à 10^-4. la dernière somme calculée est une valeur approchée de sin(x). | |
|