Vous êtes sur la page 1sur 4

1ére année Ingénieur Algorithmique et Structure de Données 1 2023-2024

Série 5 : Types Structurés


Exercice 1 (Algorithmes sur les tableaux)
tableaux) :
Soit T un tableau d’entiers de taille réelle N. Ecrire les modules suivants permettant de :
1. Lire les éléments du tableau T partir du clavier
2. Remplir le tableau T à partir des nombres aléatoires
3. Initialiser le tableau T par une constante donnée
4. Afficher les éléments du tableau T
5. Vérifier si un élément existe dans le tableau T. (recherche séquentielle)
6. Compter le nombre d’occurrences d’un élément donné dans le tableau T.
7. Compter le nombre des valeurs positives, négatives et nulles dans le tableau T.
8. Retourner le minimum dans le tableau T
9. Retourner le maximum dans le tableau T
10. Calculer le plus grand écart1 dans le tableau T
11. Tester si le tableau T est trié2.
Exercice 2 (Algorithmes de tri)
tri) :
Soit T un tableau d’entiers de taille réelle N. Ecrire les algorithmes de tri suivants :
1. Tri par Sélection qui consiste à rechercher la plus petite valeur et la placer au début du tableau,
puis la plus petite valeur dans les valeurs restantes et la placer à la deuxième position et ainsi de

suite...
2. Tri à Bulles qui consiste à faire remonter progressivement les plus grands éléments d'un tableau.
Son principe est d’inverser deux éléments successifs s'ils ne sont pas classés dans le bon ordre et
de recommencer jusqu'à ce qu’on ne peut plus permuter.

3. Tri par Insertion qui consiste à ordonner les deux premiers éléments et d’insérer le 3e élément de
manière à ce que les 3 premiers éléments soient triés, ensuite d’insérer le 4e élément à sa place et
ainsi de suite. A la fin de la ieme itération, les i premiers éléments de Tab sont triés et rangés au
début du tableau T:

1L’écart est la valeur absolue de la différence de deux éléments


2
On parle d'un tableau ordonné quand l'ensemble des valeurs possibles est muni d'une relation d'ordre. De plus, un tableau
est dit ordonné ou trié en ordre croissant si quelque soit i dans [0, n-1] : T[i] <= T[i+1].
1
1ére année Ingénieur Algorithmique et Structure de Données 1 2023-2024

Exercice 3 (Algorithmes sur les tableaux triés)


triés) :
Soit T un tableau d’entiers ordonné (trié d’ordre croissant) de taille réelle N. Ecrire les modules
suivants permettant de faire :
1. La recherche séquentielle d’un élément donné. Le principe de cette recherche consiste à parcourir
les éléments de manière séquentielle, un par un, jusqu'à ce que l'élément recherché soit trouvé ou
que tous les éléments (inférieurs) aient été examinés.
2. La recherche dichotomique d’un élément donné. Le principe de cette recherche repose sur la
comparaison de l'élément recherché avec l'élément au milieu du tableau. Si l'élément au milieu est
égal à l'élément recherché alors la recherche est terminée, sinon on divise le tableau en deux parties
égales : (i) gauche qui contient les éléments inférieurs à l’élément du milieu et (ii) droite qui
contient les éléments supérieurs à l’élément du milieu. On continue la recherche dans la partie
pouvant contenir l’élément recherché jusqu’à le trouver ou arriver à un tableau vide.
3. L’insertion d’un nouvel élément dans le tableau T.
4. La suppression d’un élément du tableau T.
5. L’interclassement (fusionnement) de deux tableaux triés de sorte que le tableau résultant soit trié.
Exercice 4 (Algorithmes sur les matrices)
matrices) :
Soient A(n,m), B(n,m) et C(m,k) trois matrices réelles. Ecrire les procédures qui permettent de
1. Vérifier si la matrice est Diagonale : si tous ses éléments en dehors de la diagonale principale sont
nuls.
2. Magique : si la somme des nombres de chaque ligne, chaque colonne et chaque diagonale est égale
à la même constante, appelée constante magique.
3. Construire le transposé de la matrice A (At (n,m)).
4. Vérifier si la matrice A est symétrique : si elle est égale à sa transposée.
5. Calculer la somme de deux matrices A (aij) et B(bij): = +
6. Calculer le produit de deux matrices A (aij) et B(bij) de dimension N : = ∑ ×
7. Tester si A est la matrice inverse de B (i.e : A * B = I, I matrice d’identité)
Exercice 5 (Algorithmes sur les chaînes de caractères)
caractères) :
Ecrire en langage algorithmique, les modules suivants permettant de manipuler les chaînes de caractère :
1. StrLength (ch) : Obtenir la longueur de la chaine de caractères (ch). On suppose qu’une chaîne se
termine par un caractère spécial ‘\0’.
2. StrCompare (ch1, ch2) : Comparer une chaine de caractères (ch1) à une autre (ch2). Elle
retourne la différence ch1 et ch2 (nul, valeur positive, valeur négative).
3. StrnCompare (ch1, ch2, n) : comparer les n premiers caractères de ch1 et ch2
4. StrCopy (ch1, ch2) : copier la chaine de caractères (ch2) dans une autre chaine (ch1)
5. StrnCopy (ch1, ch2, n) : copier n caractères de la chaîne ch2 dans la chaîne ch1.
6. StrConcat (ch1, ch2) : concaténer deux chaines de caractères (ch1ch2)

2
1ére année Ingénieur Algorithmique et Structure de Données 1 2023-2024
7. StrnConcat (ch1, ch2, n) : copier n caractères de la chaîne ch2 à la fin de la chaîne ch1 ;
8. strFirstOcc(ch, c) retourner l’indice de la première occurrence du caractère c dans chaine, et -1 si
c n’y figure pas.
9. strLastOcc(ch, c) retourner l’indice de la dernière occurrence du caractère c dans chaine, et -1 si
c n’y figure pas.
10. StrToInt (ch) convertir la chaine (ch) en un entier.
11. StrToReal (ch) convertir la chaine (ch) en un réel.
Exercice 6 (Polynôme)
Polynôme) :
Un polynôme de degré n s’écrit de la forme suivante : a0 + a1 * x + a2 * x2 + ….. + an * xn
1. Un polynôme peut être représenté sous forme d’un tableau d’entier. Dire comment ?
2. En utilisant le type du tableau précédent (question 1), écrire les modules permettant de calculer :
a. La valeur du polynôme en un point x donné.
b. Le dérivé du polynôme.
c. L’intégral du polynôme
d. La somme de deux polynômes.
e. Le produit de deux polynômes.
3. Un polynôme peut être représenté sous forme d’un tableau d’enregistrement. Dire comment ? et
refaire les opérations précédentes (de « a » à « e »).
Exercice 7 (enregistrements):
(enregistrements):
1. Créer un nouveau type " Student" qui permet de stocker les informations d’un étudiant universitaire
qui sont illustrées dans la figure ci-dessus :

3
1ére année Ingénieur Algorithmique et Structure de Données 1 2023-2024
2. Créer un tableau pour enregistrer les informations liées aux étudiants.
3. Ecrire les modules qui permettent de:
a. saisir de l'ensemble des informations concernant les étudiants.
b. rechercher d’un étudiant selon : matricule ou nom.
c. calculer la moyenne d’un module selon la valeur de la variable TCA qui détermine le type
du Contrôle Continu (CA) comme indiqué dans le tableau suivant :
TCA 0 1 2 3
Note de CA CA = 0 CA = TD CA = TP CA = (TD + TP)/2
Moyenne 100% Examen 60% Examen + 40% CA
d. calculer la moyenne du semestre.
e. classer les étudiants par ordre croissant selon leurs moyennes.
f. Afficher le nombre des étudiants ayant la moyenne ≥ 10.
g. Afficher les informations liées aux Major de promotion.
4. Pour valider son semestre, un étudiant doit avoir une moyenne supérieure ou égale à 10, sinon il
peut passer le rattrapage, sinon l’étudiant est déclaré Ajourné. Ecrire les modules suivants :
h. admis() qui retourne la liste des étudiants ayant validé leur semestre.
i. ratt() retourne la liste des étudiants pouvant passer le rattrapage.
j. ajourne() retourne la liste des étudiants ajournés définitivement.

Exercice 8 (enregistrements):
(enregistrements):
On veut écrire un algorithme permettant de facturer à la minute les clients d'un Cyber-Café comportant
20 postes. Une SESSION internet est caractérisée par le numéro du poste (entier compris entre 1 et 20),
l'heure de début (structure Temps) et l'heure de fin (structure Temps). En voici un exemple d’une
session d’un client qui s'est connecté au poste numéro 07 de 11 : 05 à 12 :27.

1. Définir les enregistrements Temps et SESSION utilisés.


2. Écrire une procédure qui calcule la durée d'une session S en heure et minute. Par exemple, la durée
de la session précédente est de 1 heure et 22 minutes.
3. Écrire une fonction qui permet de vérifier la validité d'une session S. Cette fonction vérifie pour une
session si l'heure de début est inférieure à l'heure de fin.
4. Écrire un algorithme qui utilise les deux modules précédents pour :
a) lire les informations concernant n sessions (1≤n≤100) tout en contrôlant la validité des sessions
ainsi que les numéros des postes.
b) afficher le tarif (en dinars) correspondant à la durée de chaque session sachant qu’une minute
coute 1 dinars.
c) afficher le numéro de poste ayant la durée de session maximal.
d) Afficher le numéro du poste ayant la durée d’utilisation maximale.
Note : le cyber café ouvre ses portes à 10h00 et se ferme à 23h00.

Vous aimerez peut-être aussi