TD5 ASD 2022 2023 Fin

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 4

TD 5

Les Fonctions et les procédures

Exercice 1:

ALGORITHME AlgoTrace Procedure Incrimenter (Var a :entier , b :entier )


VAR Debut
a ,b ,c : entier
Debut a← a + 1
a←1 b←a
b←1 fin
Repeter
Incrimenter (a,b)
Ecrirce(‘’ a=’’ ,a ,’’b=’’ ,b) Fonction Calcul (a : entier ,b : entier )
Jusqu à ( a > 3 ) Debut
Retourner ( Racine (a + b) )
c ← Calcul (a,b ) Fin
Ecrire (‘’c=’’ , c )

Fin

Qu’affiche l’algorithme AlgoTrace à la fin de son exécution ?

Exercice 2:

1- Ecrire une procédure qui permet de saisir un entier m avec 3<m<100.


2- Ecrire une fonction qui permet de vérifier si un entier n est premier.
3- Ecrire un algorithme principal qui permet de tester ces modules.

Exercice 3:
1- Ecrire une procédure saisir_taille (VAR n: entier) qui permet de saisir un entier n
(0<n<=50).
2- Ecrire une procédure saisir_tab(VAR T: TAB; n :entier) qui permet de saisir les n entiers
du tableau T de type tab.

1
3- Ecrire une fonction Rcherche_tab(T: TAB; N :entier ,x :entier ) :entier qui recherche si
un entier x existe dans le tableau et retourne son indice sinon retourne 0 (s’il existe plusieurs
valeurs, la fonction retourne l’indice de la première valeur rencontrée).
4- Ecrire la procédure supprimer entier qui permet de supprimer toutes cases contenant un
entier donné x du tableau T .
5- Ecrire une procédure afficher permettant d’afficher tous les éléments d’un tableau T.
6- En utilisant les modules déjà développés, écrire un algorithme principal permettant de :
- Déclarer le type Tab : tableau de taille une constante MAX = 50 ;
- Remplir un tableau T de type Tab par n entiers .
- Afficher le contenu du tableau.
- lire un entier x et Supprimez toutes les cases du tableau T contenant cette valeur.
- Afficher le nouveau contenu du tableau.

Exercice 4 (Examen 2019)

Soit le type suivant : TAB = tableau de [1..100] de entier


1. Écrire les procédures et fonctions suivantes :
a. La fonction saisir() : entier qui permet de saisir un entier N (1≤ N≤ 100) et de le retourner
en résultat.Les contrôles de saisie doivent être effectués.
b. La procédure remplir(VAR T: TAB; N :entier) qui permet de remplir un tableau T par N
entiers différents de 0. Les contrôles de saisie doivent être effectués.
c. La procédure afficher(T : TAB ; N: entier) qui permet d’afficher les éléments d’un tableau
T de taille N.
d. La fonction exist(T : TAB ; N: entier, x : entier): booleen qui permet de retourner la
valeur VRAI si l’entier x appartient au tableau T, et la valeur FAUX dans le cas contraire.
e. La procédure différence(T1 : TAB; N1 :entier; T2 : TAB; N2 :entier; VAR T : TAB;
VAR N : entier) qui retourne un tableau T qui est la différence entre T1 (de taille N1) et T2
(de taille N2) tel que : T contient les éléments de T1 qui n’appartiennent pas à T2 et le nombre
d’occurrences de chaque élément de T est égal à 1 (T ne contient pas de doublons).
Exemple Si T1= 11 2 17 3 6 2 5 17 8 (N1=9)
et T2= 4 3 7 11 6 9 (N2=6)
Alors : T= 2 17 5 8 et N=4
2. En utilisant des appels aux procédures et fonctions décrites dans la question 1, écrire un
algorithme appelé AlgoTab qui réalise les traitements suivants en respectant leur ordre :
− Remplir un tableau T1 par N1 entiers et un tableau T2 par N2 entiers (N1 et N2 saisis par
l’utilisateur).
− Construire un tableau T qui est la différence de T1 et T2.
− Afficher les éléments de T.

Exercice 5: (Examen 2019 )


Soit le type suivant : Matrice = tableau[1..10][1..10] de entier
1. Écrire les procédures et fonctions suivantes :
a. La procédure saisir(VAR N: entier) qui permet de saisir un entier N (1≤ N≤ 10).
On suppose que l’utilisateur effectue la saisie correctement.

2
b. La procédure Remplir(VAR M : Matrice ; L : entier, C : entier) qui permet de remplir
une matrice M, de L lignes et C colonnes, par des entiers différents de zéro. Les contrôles de
saisie doivent être effectués.
c. La fonction Occurrences(M : Matrice, L : entier, C : entier ; x : entier) : entier qui
retourne le nombre d’occurrences de x dans la matrice M.
d. La procédure MatOcc(M : Matrice, L : entier, C : entier ; x : entier ; VAR MO : Matrice ;
VAR LO : entier, VAR CO : entier) qui construit la matrice d’occurrences de x comme suit :
Si x se trouve à la case (i1, j1), alors la première ligne de MO contient dans l’ordre i1, ensuite
j1 Si x se trouve à la case (i2, j2), alors la première ligne de MO contient dans l’ordre i2,
ensuite j2 etc.. A noter que LO est le nombre de lignes de la matrice MO et CO est le nombre
de colonnes de la matrice MO.

Exercice 6 : (Examen 2020)


Le but de cet exercice est de déterminer l’élève ayant obtenu la meilleure moyenne d’une
classe composée de N élèves. La moyenne de chaque élève est calculée pour M matières
ayant le même coefficient. Un tableau à deux dimensions (de type Matrice) sera utilisé pour
stocker les notes des élèves :
Exemple :
Matière 1 Matière2 … MatièreM Moyenne
Élève 1 12.25 15.5 … 14.25 14.62
Élève 2 9.25 10.5 … 9.75 9.37
Élève 3 18 .00 19.5 … 17.25 18.25
. …
.
. …
Élève N 14.75 17.5 15.75 16.26
Pour résoudre cet exercice, on définit le type Matrice comme suit :
Matrice = Tableau [1..40][1..12] de réel
Questions

1. Écrire la procédureSaisirVal(VAR N : entier) qui permet de saisir une valeur entière


strictement positive.Le contrôle de saisie n’est pas demandé.
2. Écrire la procédure NotesÉlèves(VAR MNotes : Matrice; N : entier, M : entier) qui
permet de remplir la matrice des notesMNotes de N élèves ayant chacun M notes (la note
doit être comprise entre 0 et 20). Le contrôle de saisie de la note doit être effectué et la
moyenne de chaque élève est initialement égale à 0.
3. Écrire la procédure MoyEtud(VAR MNotes : Matrice; NumEtud : entier, M : entier)
qui permet de calculer la moyenne des notes obtenues par l’élève ayant comme identifiant
NumEtud, qui correspond au numéro de la ligne de la matrice des notes de la classe
MNotes.Les coefficients des M matières sont égaux.

3
4. Écrire la procédureCalculerMoyennes(VAR MNotes : Matrice ;N : entier, M : entier)
qui permet de calculer la moyenne des Nélèves.
5. Écrire la fonctionMeilleureMoyenne(MNotes : Matrice, N: entier, M :entier): réel qui
permet de retourner la meilleure moyenne obtenue.
6. En utilisant des appels aux procédures et fonctions des questions précédentes, écrire
l’algorithme général qui permet de :
 Remplir une matrice de notesMatNotes de N élèves pour M cours (M et N étant saisis
par l’utilisateur).
 Calculer la moyenne de tous les élèves.
 Calculer et afficher la meilleure moyenne obtenue.

Vous aimerez peut-être aussi