CODE :
NOTE :
Exercice 1 : note : ( / 2pt)
Début 10, 7, 4, 6, 9, 12, FIN !
Exercice 2 : note : ( / 4pt)
0,5 Signature, surtout l’indice
0,5 Test d’arrêt (ne pas dépasser la taille du tableau)
1 1+ appel récursif (test tab[i]==val est vrai)
1 appel récursif (test tab[i]==val est faux)
1 Appel prg principal
-0,5 Sans variable + sans le retourner 0
Exercice 3 : note : ( / 3pt)
0,25 0,25
0,25 0,25 0,25
0,25 0,25 0,25
0,25 0,25 0,25 0,25
Exercice 4 : note : ( / 8pt)
2 (décroissant), solution intégrale, 1,5 (solution juste mais sans le test arrêt), 0 autrement
Supprimer les doublons
0,25 liste != null
0,25 au début, la valeur courante est le contenu du premier maillon
valCourant <- liste*.contenu
0,25 ptPrécédent <- liste
0,25 ptCourant <- liste*.suivant
0,25 ptCourant != null : parcourir la liste
0,25 ptCourant*.contenu = valCourant : si on a un doublon
0,25 // ... on le supprime !
ptPrécédent*.suivant <- ptCourant*.suivant
0,25 libérer (ptCourant)
0,25 ptCourant <- ptPrécédent*.suivant
0,25 Nouvelle valeur : valCourant <- ptCourant*.contenu
0,25 ptPrécédent <- ptCourant
0,25 ptCourant <- ptCourant*.suivant
Insertion liste triée
0,25 Allouer la maillon allouer (m)
0,25 Mettre la valeur dans le maillon m*.contenu <- val
0,25 Tester liste vide
0,25 m*.suivant <- null. et liste <- m
0,25 Insertion en tête de liste liste*.contenu >= val
0,25 m*.suivant <- liste et liste <- m
0,25 Parcourt jusqu'à trouver un élément plus grand ou égal, ou jusqu'à la fin
ptPrécédent <- liste
0,25 ptCourant <- liste*.suivant
0,25 Insertion au milieu ou à la fin, condition ptCourant != null ET ptCourant*.contenu < val
(l’ordre est important)
0,25 Avancer dans les 2 pointeurs ptPrécédent <- ptCourant et ptCourant <-
ptCourant*.suivant
0,25 insère le nouveau maillon entre les maillons pointés par ptPrécédent et ptCourant
m*.suivant <- ptCourant
0,25 ptPrécédent*.suivant <- m
Exercice 5 : note : ( / 3pt)
3 Tester l’existence d’un doublon