Vous êtes sur la page 1sur 4

Matière : Algorithmique et Structure de Donnée

Niveau : LIRI 1

Série de Révision
Exercice1 :
Ecrire un algorithme qui permet de calculer les n premiers termes de la suite de Fibonacci :
F(0)=1
F(1)=1
F(n)=F(n-2)+F(n-1) pour n>1.
Correction
Algorithme Fibonacci
Variable
F0, F1, Fn, i, n : entier
Début
Ecrire ("donner le nombre de terme")
Lire(n)
F0  1
F1  1
Pour i de 2 à n Faire
Fn  F0+F1
F0  F1
F1 Fn
Fin Pour
Fin
Exercice2 :
Un magasin de reprographie facture 200 millièmes les dix premières photocopies, 150
millièmes les vingt suivantes et 100 millièmes au-delà.
Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées puis
affiche le montant correspondant.
Correction

1
Matière : Algorithmique et Structure de Donnée
Niveau : LIRI 1

Exercice3
Deux nombres A et B (A#B) sont des amis si la somme des diviseurs de A sauf lui-même est
égale à B et vice versa.
- Ecrire une procédure qui permet de saisir deux entiers A et B.
- Ecrire une procédure qui calcule la somme des diviseurs d’un nombre.
- Ecrire une procédure qui permet d’afficher si deux entiers sont amis ou non.
Exemple : (220,284)

Somme des diviseurs de 220 : 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284

Somme des diviseurs de 284 : 1 + 2 + 4 + 71 + 142 = 220

Correction
Procédure Saisi(var a, b : entier)
Début
Ecrire("donner a")
Lire(a)
Ecrire("donner b")
Lire(b)
Fin
Procédure somme_diviseur(a : entier, var s : entier)
Variables
i : entier
Début
s 0
Pour i de 1 à (a div 2) Faire
Si (a mod i =0) alors

2
Matière : Algorithmique et Structure de Donnée
Niveau : LIRI 1

s s +i
Fin Si
Fin Pour
Fin
Procédure Ami (a, b : entier)
Variables
s1, s2 : entier
Début
Procédure somme_diviseur(a, s1)
Procédure somme_diviseur(b, s2)
Si ((s1= b) ou (s2=a)) alors
Ecrire (a, b, "sont amis")
Fin Si
Fin
Exercice 4
Écrire une Fonction qui retourne le pourcentage des lettres voyelles.
Correction
Fonction Pourcentage (ch : chaine) : réel
Variables i, p : entier
Début
p0
Pour i de 1 à Long (ch) Faire
Si((Majus(ch[i]) = "A") ou ( Majus(ch[i])="E") ou ( Majus(ch[i])="I")ou ( Majus(ch[i])="O")
ou ( Majus(ch[i])="U")ou ( Majus(ch[i])="Y")) alors
p p+1
Fin Si
Fin pour
Pourcentage  (p/Long (ch))*100
Fin
Exercice5 :
Écrire une procédure qui permet d’inverser une chaine de caractère.
Par exemple : STOP devient POTS FRUIT devient TIURF En utilisant une seule chaîne de
caractères.

3
Matière : Algorithmique et Structure de Donnée
Niveau : LIRI 1

Correction

Exercice 4
Ecrire une procédure qui permet de calculer le nombre d’occurrence d’un bi-gramme dans une
chaine de caractères.
Un bi-gramme est une chaine de longueur 2.
Correction
Procédure Occurrence(ch: chaine, bi: chaine[2], var oc:entier)
Variable i : entier
Début
Pour i de 1 à Long(ch)-1 Faire
Si((ch[i]=bi[1]) et (ch[i+1]=bi[2])) alors
oc  oc+1
Fin Si
Fin Pour
Fin

Vous aimerez peut-être aussi