Informatique au Lycée Borj Louzir
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Jeux, jouets et Lego : le deuxième à ...
Voir le deal

La récursivité

4 participants

Aller en bas

La récursivité Empty La récursivité

Message  Hanafi Jeu 13 Nov - 21:07

Voici les exercices interessants que j'ai trouvés sur Internet

Exercice : Fonction Ackerman
Ecrire la spécification, déduire l’algorithme et déclarer les objets d’un module récursif permettant de calculer la fonction Ackerman définie par :
A (0, n) = n+1,
A (m, 0) = A (m-1, 1)
A (m, n) = A (m-1, A(m, n-1))

Exercice :
Ecrire la spécification, déduire l’algorithme et déclarer les objets d’un module récursif permettant de calculer le nombre d’occurrences d’un caractère dans une chaîne de caractères.
Hanafi
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Revenir en haut Aller en bas

La récursivité Empty Re: La récursivité

Message  Ilyes KHAILI Lun 24 Nov - 16:20

Bonjour tou le monde cheers
voici la reponse

ex1
uses wincrt;
var m,n:integer;
function Ackerman(m,n:integer):integer;
begin
if m=0 then
Ackerman:=n+1
else
if n=0 then
Ackerman:=Ackerman(m-1,1)
else
Ackerman:=Ackerman(m-1,Ackerman(m, n-1));
end;
begin
write('Donner m = ' );readln(m);
write('Donner n = ' );readln(n);
writeln(Ackerman(m,n));end.

ex2
uses wincrt;
var
ch:string;
c:char;
function occ(ch:string;c:char):integer;
begin
if pos(c,ch)=0 then
occ:=0
else
begin
delete(ch,pos(c,ch),1);
occ:=1+occ(ch,c);
end;
end;
begin
write('Donner une chaïne = ');readln(ch);
write('Donner un caractère = ');readln(c);
if occ(ch,c)=0 then
write(ch,' ne contient pas ',c,'.')
else
write(ch,' contient ',occ(ch,c),' fois ',c,'.')
end.
Very Happy

Ilyes KHAILI

Messages : 24
Date d'inscription : 13/11/2008
Age : 34

Revenir en haut Aller en bas

La récursivité Empty ça marche !

Message  Saafi RAMI Lun 24 Nov - 16:45

Mon Ami Mille Bravo Pour Ton Super Travail
tu ma précédé pour afficher la solution ... Evil or Very Mad
Saafi RAMI
Saafi RAMI

Messages : 37
Date d'inscription : 16/10/2008
Age : 33

http://www.imraude.skyrock.com

Revenir en haut Aller en bas

La récursivité Empty Re: La récursivité

Message  Hanafi Lun 24 Nov - 17:18

PPCM
C'est très bien, Ilyes !!! Bravo. Merci pour le partage. Concernant le PPCM vous avez mille fois raison. Notre fonction marche que pour les petites valeurs. affraid Et pourquoi ? Parce que on change la valeur de max par a ou bien par b a cause de ces instructions : SI a>b Alors max<--a, min<--b SINON max<--b, min<--a. C.à.d, même si on fait le calcul max <--max+(a+b-min) une fois la fonction retourne au début, elle trouve cette fameuse SI et elle affecte à max la valeur de a ou b. Essayez de la corriger. Very Happy
Hanafi
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Revenir en haut Aller en bas

La récursivité Empty PPCM

Message  Hanafi Mer 26 Nov - 14:44

A Ilyes :
Voici le programme de calcul PPCM qui fonctionne avec les grandes valeurs (enfin, pas si grandes, car le type LONGINT comprend l'intervalle [-2147483648..2147483647] Smile

program calcul_ppcm;
uses wincrt;
var a,b,max,min:longint;

function ppcm(max,min:longint):longint;
begin
if max mod min=0 then
ppcm:=max
else
ppcm:=ppcm(max+(a+b-min),min);
end;

begin
repeat
write('Donner a ');
readln(a);
write('Donner b ');
readln(b);
until a*b<>0 ;
if a>b then
begin
max:=a;
min:=b;
end
else
begin
max:=b;
min:=a;
end;
writeln('ppcm=',ppcm(max,min));
end.
Vos commentaires S.V.P
Hanafi
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Revenir en haut Aller en bas

La récursivité Empty 3 en 1

Message  Hanafi Mer 26 Nov - 15:18

Exercice intéressant proposé par Mr Zarrouki Anis du Lycée OKBA de Kairouan pour le DS1 :
Écrire une analyse et un algorithme qui permet de calculer pour un ordre n donné (n>0), la somme approchée de la série définie par :
S=1 + 1/(5*1!) + 1/(25*2!) + ... + 1/(5n * n!)

NB : la solution proposée à cet exercice doit suivre un raisonnement récursif et non itératif.
J'attends vos solutions. bounce ...
Hanafi
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Revenir en haut Aller en bas

La récursivité Empty Re: La récursivité

Message  Hanafi Lun 1 Déc - 22:50

Question Toujours j'attends vos solutionsssssssssssssssssssss !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hanafi
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Revenir en haut Aller en bas

La récursivité Empty Voila mon essai

Message  Mohamedh hafedh bellil Ven 5 Déc - 15:00

uses wincrt;
var
n:integer;


function fact(n:integer):longint;
begin
if n=0 then
fact:=1
else
fact:=n*fact(n-1);
end;

function somme(n:integer):real;
begin
if n=0 then
somme:=1
else
somme:=1/(5*n*fact(n))+somme(n-1);
end;

begin
repeat
write('Donner un entier positif n = ');readln(n);
until n>0;
writeln('La somme S = ',somme(n):2:10);
end.
bounce
Mohamedh hafedh bellil
Mohamedh hafedh bellil

Messages : 7
Date d'inscription : 24/10/2008

Revenir en haut Aller en bas

La récursivité Empty Re: La récursivité

Message  Hanafi Ven 5 Déc - 16:41

C'est bien, Hafedh, juste une petite remarque : il faut calculer 5n et pas 5*n. C'est mieux d'ajouter une fonction puissance ...
Bonne continuation Smile
Hanafi
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Revenir en haut Aller en bas

La récursivité Empty Voila madam

Message  Mohamedh hafedh bellil Ven 5 Déc - 17:25

function puiss(n:integer):longint;
begin
if n=0 then
puiss:=1
else
puiss:=5*puiss(n-1);
end;

et modifier la ligne somme:=1/(5*n*fact(n))+somme(n-1); par somme:=1/(puiss(n)*fact(n))+somme(n-1);
Mohamedh hafedh bellil
Mohamedh hafedh bellil

Messages : 7
Date d'inscription : 24/10/2008

Revenir en haut Aller en bas

La récursivité Empty Re: La récursivité

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum