[PDF] Corrigés des exercices sur les fonctions récursives



Previous PDF Next PDF







Suite de Syracuse - ac-rouenfr

1 SUITE DE SYRACUSE On définit la suite (u n) de la manière suivante : u 0 est un entier positif non nul donné Pour n dans ℕ : = 2 =3 +1 ˘ Ecrire un programme permettant de conjecturer le comportement de la suite pour n suffisamment grand



Devoir à la maison n°2 - MathXY

En répétant l’opération, on o tient une suite d'entiers positifs dont haun ne dépend que de son prédécesseur Par exemple, à partir du nombre 5, on construite la suite de Syracuse du nombre 5 : 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1 Lothar Collatz énonça une conjecture en 1937 : une suite de Syracuse partant de n'importe quel



TD Info3n: Corrigé

TD Info3n: Corrigé PCSI 2 Lycée Pasteur 20 septembre 2007 Exercice 1 Une petite procédure Maple calculant le rang du premier terme de la suite de Syracuse alanvt 1 :



TP no 1 : À la découverte de Python (exercices 8 à 12)

Correction de l’exercice 11 – La suite de Syracuse, aussi appelée suite de Collatz, fournit une des plus célèbres conjectures non élucidées à ce jour, à l’énoncé particulièrement simple : pour toute valeur initiale n, la suite définit



Vendredi 14 juin 2013 – de 9h 00 à 13h 00 Deuxième épreuve d

Voici, en exemple, les cinq premiers termes de la suite de Syracuse commençant par 7 : 7 - 22 - 11 - 34 - 17 1 a) Donner les dix premiers termes de la suite de Syracuse dont le premier terme est 3 b) Donner les dix premiers termes de la suite de Syracuse dont le premier terme est 5



Maple TD2 - persocransorg

4 Ecrire une proc edure prenant une s equence en param etre et renvoyant la somme de ses el ements 5 Ecrire a nouveau la proc edure du 2 1 1 avec les r eponses aux questions pr ec edentes 3 4 Suite de Syracuse Par d e nition, la suite de Syracuse est : 8



Corrigés des exercices sur les fonctions récursives

Exercice 7 1 2 Fibonacci Ecrire une fonction qui calcule les valeurs de la série de Fibonacci, définie par : – u 0 = 0 – u 1 = 1 – u n = u n 1 +u n 2 Ecrivez cette fonction sous forme itérative et sous forme récursive



LANGAGE C Exercices corrigés 1

Exercice 3 : a) Calculez la racine carrée X d'un nombre réel positif A par approximations successives en utilisant la relation de récurrence suivante: XJ+1 = (XJ + A/XJ) / 2 X1 = A La précision du calcul J est à entrer par l'utilisateur b) Assurez-vous lors de l'introduction des données que la valeur pour A est un réel positif et que J



Suites et séries de fonctions - maths-francefr

La suite de fonctions (fn)n∈N converge simplement vers la fonction f sur D si et seulement si pour chaque x de D, la suite numérique (fn(x))n∈N converge vers le nombre f(x) On dit dans ce cas que f est la limite simple sur D de la suite de fonctions (fn)n∈N Exemple 1 Pour x ∈ [0,1]et n ∈ N, on pose fn(x)=xn Si x ∈ [0,1[, lim n



Exercices de base avec Python - IREM de la Réunion

Exercices de base avec Python Résultat du programme avec vérification : >python ' /SecondesEnAmjhms-Python2 py' Nombre de secondes à convertir : 12345678912 Cette durée correspond à 391 années de 365 jours, plus 5 mois de 30 jours, 24 jours, 19 heures, 15 minutes et 12 secondes > Exercices à faire Exercices sur les chaînes de caractères

[PDF] la suite définie

[PDF] la suite du texte "Le bleu qui fait mal aux yeux"

[PDF] La Suite numérique

[PDF] La supercificie de la Terre est environ de 5,1 x 10 puissance 8 km²

[PDF] La supersitition

[PDF] la superstition

[PDF] la surface (fraction)

[PDF] la surface du globe

[PDF] La surveillance la prévision et la prévention

[PDF] la survie sur l ile p 182 francaix

[PDF] la syllabation en poésie

[PDF] La symbolique chevaleresque dans l'enluminure

[PDF] la symbolique du crane dans arts plastics (peinture,sculture)

[PDF] La symétrie axiale

[PDF] La symétrie axiale - DM de maths

Corrigés des exercices sur les fonctions

récursives

Exercice 7.1.1sous-programmes récursifs

Pour chacun des sous-programmes, nous donnerons les paramètres en précisant le paramètre sur

lequel porte la récurrence, le cas de base (valeur de ce paramètre pour lequel le calcul s"arrête) et la

variation qui affecte le paramètre à chaque appel récursif.

1. Ecrire un sous-programme récursif qui calcule la somme des n premiers carrés. Par exemple, si

n vaut 3, ce sous-programme calculera12+ 22+ 32. Ce sous programme n"est défini que pour un n supérieur à 0. - Un seul paramètre n, qui doit être positif. - cas de base : n=1. - variation de n à chaque appel : -1

2. Ecrire un sous-programme récursif qui calcule la somme des éléments positifs d"un tableau.

- Deux paramètres : un tableau d"entiers tab et un indice ind. Le but de la fonction est de renvoyer la somme des entiers positifs du tableau compris entre ind et la fin du tableau. Pour avoir le résultat pour tout le tableau, il faut appeler la fonction avec pour indice 0. - cas de base : ind=tab.length. - variation de ind à chaque appel : +1

3. Ecrireunsous-programmerécursifquivérifiesiunechaînedecaractèreestunpalindrôme.Pour

cela vous utiliserez les méthodescharAtetlengthde la classeString.s.charAt(i) renvoie le ième caractère de la chaînesets.length()renvoie la longueur des. - Deux paramètres : une chaîne s et un indice ind - cas de base : ind=s.length()/2. En effet, à chaque appel, on va vérifier la correspondance de 2 caractères. Il est inutile de parcourir le tableau en entier. - variation de ind à chaque appel : +1

4. Ecrire un sous-programme récursif qui réarrange les éléments d"un tableau en ordre inverse.

- Deux paramètres : une tableau d"entiers tab et un indice ind - cas de base : ind=tab.length/2. En effet, à chaque appel, on va inverser 2 caractères. Il ne faut surtout pas faire un parcours complet du tableau, sinon chaque élément est changé de place deux fois et revient à sa position d"origine. - variation de ind à chaque appel : +1

5. Ecrire un sous-programme récursif qui calcule la valeur numérique d"une chaîne de caractères

composée de chiffres.Ici encore, deux paramètres : la chaîne et un indice. Cette fois, nous parcourons la chaîne de droite à gauche, ce qui simplifie la tâche. Cas de base : 0. Pas de calcul : -1. 1 Si cela vous aide, vous pouvez commencer par chercher une formule qui exprime le calcul récursif

à effectuer.

de la section 13.3.1 du cours. Remarquez comment est fait le traitement d"exception dans cet exemple; c"est un peu diffé- rent de ce que nous avons vu jusqu"ici.classExo20_1{ static intsommePremiersCarres(intn)throwsHorsDomaine{ if(n==1){ return1; }else if(n>0){ return(n*n)+sommePremiersCarres(n-1); throwHorsDomaine.typique; static intsommePositifs(int[] tab,intindice)throwsHorsDomaine{ if(indice >= tab.length){ return0; }else if(indice>=0){ if(tab[indice]>0){ returntab[indice]+sommePositifs(tab, indice+1); }else{ returnsommePositifs(tab, indice+1); throwHorsDomaine.typique; static booleanpalindrome(String s,intnieme)throwsHorsDomaine{ if(nieme > s.length() /2){ return true; if((nieme<0) || (nieme > s.length() /2)){ throwHorsDomaine.typique; return(s.charAt(nieme) == s.charAt(s.length()-nieme-1)) && palindrome(s, nieme+1); static voidordreInverse(int[] tab,intindice)throwsHorsDomaine{ if(indice<0){ throwHorsDomaine.typique; }else if(indice < tab.length /2){ inttampon; tampon = tab[indice]; tab[indice] = tab[tab.length-indice-1]; tab[tab.length-indice-1]=tampon; ordreInverse(tab,indice+1); static intvaleurDeChar(charc)throwsHorsDomaine{ if(c == "0"){ return0; }else if(c == "1"){

2 NFA031

c

CNAM 2012

return1; }else if(c == "2"){ return2; }else if(c == "3"){ return3; }else if(c == "4"){ return4; }else if(c == "5"){ return5; }else if(c == "6"){ return6; }else if(c == "7"){ return7; }else if(c == "8"){ return8; }else if(c == "9"){ return9; throwHorsDomaine.typique; static intvaleurNumerique(String s,intindice)throwsHorsDomaine{ charc = s.charAt(indice); if(indice == 0){ returnvaleurDeChar(c); }else{ return(valeurNumerique(s, indice-1) *10 + valeurDeChar(c)); public static voidmain(String[] args)throwsHorsDomaine{ int[] test = {1, 5, -5, 10, -10, 3}; for(inti=0; iTerminal.ecrireInt(test[i]);

Terminal.ecrireChar("");

Terminal.sautDeLigne();

ordreInverse(test,0); for(inti=0; iTerminal.ecrireInt(test[i]);

Terminal.ecrireChar("");

Terminal.sautDeLigne();

classHorsDomaineextendsException{ staticHorsDomaine typique =newHorsDomaine();

NFA031

c

CNAM 2012 3

Exercice 7.1.2Fibonacci

Ecrire une fonction qui calcule les valeurs de la série de Fibonacci, définie par : -u0= 0 -u1= 1 -un=un1+un2

Ecrivez cette fonction sous forme itérative et sous forme récursive. Laquelle des deux variantes

est préférable ici?classExo20_2{ static intfiboIteratif(intn){ if((n == 0) || (n == 1)){ returnn; }else{ intmoinsDeux = 0; intmoinsUn = 1; intnouveau; for(inti=2; i}La forme récursive est plus facile à écrire et plus proche de la définition de la fonction, mais

elle est moins efficace que la version itérative. Dans la version itérative, une valeur de la suiteunest

conservée pendant deux tours de boucles successifs (d"abord dans moinsUn, puis dans moinsDeux),

alors que dans la version récursive, comme il n"y a pas de possibilité de conserver une valeur dans une

variable entre deux appels récursifs, la valeur est recalculée. Il y a un effet cumulatif. Voici par exemple les appels effectués pour le calcul de fiboRecursif(5).

4 NFA031

c

CNAM 2012

fibo(5)fibo(3) fibo(4) fibo(1) fibo(2) fibo(2) fibo(3) fibo(0) fibo(1) fibo(0) fibo(1) fibo(1) fibo(2) fibo(0)

fibo(1)On voit que fiboRecursif(2) est appelé trois fois, fiboRecursif(1) quatre fois, etc. La version itéra-

tive ne calcule qu"une fois chaque terme de la suite. Elle est donc préférable.

NFA031

c

CNAM 2012 5

quotesdbs_dbs13.pdfusesText_19