Alogorithmique 2
TALGORITHMIQUE ET
STRUCTURES DE DONNEES
Exercices Récursivité et enregistrements
Exercice 1 :
Ecrire une procédure itérative et une procédure récursif qui affiche tout le contenu d'un
tableau T de taille n.
PROCEDURE Affiche_Rec (Tab[1000] :entier, n, i: entier)
Var
Debut
si (i<=n)
Ecrire (Tab[i])
affiche (Tab,n,i+1)
fsi
Fin
Exercice 3 :
Transformer en sous-programme récursif : Module de calcul de l'occurrence (nombre
d'apparitions) d’un entier X dans un tableau T de taille n.
nb_occ (T[1000] :entier, n, x,i: entier) : entier
Var
Res : entier
Debut
si (i<=n)
si (T[i]=x)
retouner 1+nb_Occ(T, n, x,i+1)
sinon
retouner nb_Occ(T, n, x,i+1)
fsi
fsi
Fin
Page 1
Alogorithmique 2
Exercice 4 :
Fonction palindrome (mot[1000] : car , i , j : entier)
Début
si i ≥ j alors
retourner (VRAI)
sinon
retourner (mot[i] = mot[j] et palindrome(mot, i + 1, j – 1))
fsi
Fin
Exercice 5 :
Ecrire un algorithme qui lit deux nombres complexes C1 et C2 et qui affiche ensuite leur
somme et leur produit.
Sachant que : (a+bi)+(c+di)=(a+c)+(b+d)i (a+bi)*(c+di)=(ac-bd)+(ad+bc)i
complexe = Enregistrement
Re: entier
Img: entier
Fin Enregistrement
Var
z, z1, z2: complexe
Debut
Ecrire("Taper le 1re nombre: ")
Lire([Link], [Link])
Ecrire("Taper le 2eme nombre: ")
Lire([Link], [Link])
[Link] = [Link] + [Link]
[Link] = [Link] + [Link]
Ecrire("La somme est: ", [Link], " + ", [Link], " i");
Fin
Page 2
Alogorithmique 2
Exercice 6 :
On souhaite gérer les notes d’un étudiant. Pour cela on va définir la structure « Etudiant »
dont les champs sont :
Champ Type
Nom Chaîne
Prénom Chaîne
Note Tableau de 4 éléments
Moyenne Réel
Ecrire l’algorithme qui permet de lire les informations d’un étudiant (nom, prénom et
notes), de calculer sa moyenne et d’afficher à la fin un message sous la forme suivante
:
« La moyenne de l’étudiant Alami Ali est : 15.25 »
où « Alami » et « Ali » sont les noms et prénoms lus et 15.25 est la moyenne calculée.
Modifier l’algorithme l’exercice de façon que l’on puisse gérer les notes de 20
étudiants.
Exercice 7 :
Définir un enregistrement Personne contenant un identificateur unique (dans notre cas
simplifié, il s’agira d’un numéro), l’âge, la taille et le sexe d’une personne.
On enregistre les informations de 100 personnes, puis on détermine :
– la personne la plus petite,
– la personne la plus grande,
– la plus jeune et la plus âgée,
Afficher toutes les caractéristiques des personnes trouvées.
Exercice 8 :
Définir un enregistrement Date contenant le jour, le mois et l’année. Saisir deux dates (on
supposera qu’il s’agit de dates valides) et afficher si la première date est antérieure ou
postérieure à la seconde.
Page 3