Vous êtes sur la page 1sur 2

4ème année de l’enseignement secondaire Série d'exercices № 11

. Section : Sciences de l’informatique


Récursivité + Fichiers
Matière : Algorithmique & programmation ALGORITHME + PYTHON

Exercice №1 : (BAC 2022)


Soit l'algorithmes ci-dessous de la fonction «Inconnu»:

Fonction Inconnu (……………..……………): .........................


Début
Si ( long (ch) = 0) Alors
Retourner 0
Sinon
Si ch[long(ch)-1] ∈ ["0".."9"]) Alors
d  valeur(ch[long(ch)-1])
Retourner d + Inconnu(sous_chaine(ch, 0, long(ch)-1 )
Sinon
Retourner Inconnu(sous_chaine(ch, 0, long(ch)-1 )
Fin Si
Fin Si
Fin
Travail demandé:
1) Réécrire sur votre copie d'examen l'entête de la fonction Inconnu en complétant la déclaration des
paramètres et le type de retour.
2) Dresser le tableau de déclaration des objets locaux de la fonction «Inconnu»:
3) Quel est le résultat de la fonction «Inconnu» pour ch ="Bac22G3".
4) Déduire le rôle de la fonction «Inconnu».

Exercice №2 : (BAC 2023)


Soit N un entier positif et soit la trace d’exécution manuelle de la fonction Inconnue(N) pour N = 5142 :
Inconnue (5142) = 2 + Inconnue (514)
Inconnue (514) = 4 + Inconnue (51)
Inconnue (51) = 1 + Inconnue (5)
Inconnue (5) = 5
Travail demandé:
1) En se référant à la trace d'exécution manuelle précédente, donner le résultat retourné par la fonction
Inconnue pour N = 5142.
2) Déduire le role de la fonction Inconnue(N).
3) En déduire un algorithme récursive de la fonction Inconnue(N).

1
Exercice №3 : (BAC 2023)
Pour évaluer an (an = a * a * …* a) avec a et n deux entiers naturels, on a besoin de n-1 multiplication. En

informatique l'algorithme de l'exponentiation rapide est un algorithme utilisé pour calculer rapidement des
grandes puissances entières. Le principe de cet algorithme est basé sur le fait qu'on a:
an = an/2 * an/2 lorsque n est pair et an = a * a(n-1)/2 * a(n-1)/2 lorsque n est impair.
𝟏 𝒔𝒊 𝒏 = 𝟎
𝒏/𝟐 𝒏/𝟐
𝒂 ={ 𝒂 ∗𝒂
𝒏 𝒔𝒊 𝒏 𝒆𝒔𝒕 𝒑𝒂𝒊𝒓
𝒂 ∗ 𝒂(𝒏−𝟏)/𝟐 ∗ 𝒂(𝒏−𝟏)/𝟐 𝒔𝒊 𝒏 𝒆𝒔𝒕 𝒊𝒎𝒑𝒂𝒊𝒓
Travail demandé:
1) Ecrire une fonction récursive Expo_rapide (a,n ) qui permet de calculer an en utilisant le principe décrit

précédemment.
2) On désire calculer une valeur approchée de ex (l'exponentiel d'un entier naturel x) à epsilon prés

(epsilon = 10-5 ), sachant que:

𝒙
𝒙𝒏+∞ 𝒙𝟐 𝒙𝟑 𝒙𝒏
𝒆 = ∑ =𝟏+𝒙+ + …+
𝒏=𝟎 𝒏! 𝟐! 𝟑! 𝒏!
avec n! représente la factorielle de n.
N.B. n! = n * (n-1)*(n-2)*….* 1
a) Ecrire une fonction récursive Fact(n ) qui permet de calculer la factorielle de n.
b) Pour calculer une valeur approchée de ex à 10-5. On utilise la fonction ci-dessous:

Fonction Exponentielle (…………………….): .........................


Début
valCour  Expo_rapide(x,0)/Fact(0)
n 0 Avec:
Répéter valCour: la valeur courante
nn+1
valPred: la valeur précédente
valPred  …..
valCour  ……………………………………………………………….
Jusqu'à ( abs (……………………………….)≤ ………………)
Retourner valCour
Fin
c) Compléter les pointillés dans la fonction Exponentielle.
𝟏
3) Soit la fonction f définie par: 𝒇(𝒙) = Pour vérifier que: lim 𝒇(𝒙) = 𝟎
𝒙𝒏 +𝒆𝒏 𝑥→∞

En utilisant les modules précédents, écrire une fonction Verif (F,n) qui permet de stocker dans un fichier
texte, les valeurs de f(x) en commençant par x = 1 et en faisant varier x d'un pas égale à 1. L'écriture dans
le fichier s'arrête lorsque f(x) devient inférieur ou égale à 10-5. Chaque valeur sera stocké sur une ligne .

Vous aimerez peut-être aussi