Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Exercices récapitulatifs
Abstractions procédurales
2
Exercices Créer une fonction contient(el, t) qui retourne VRAI ssi le tableau t contient l’élément el Créer une fonction tri(t) qui prend un tableau d’entiers t en argument et qui renvoie une copie du tableau trié en ordre croissant Créer une fonction suppDoublons(t) qui prend un tableau t en argument et qui renvoie un nouveau tableau égale à t pour lequel les doublons ont été retirés Exemple: t = [1,2,4,2,6,5,3,2,1,5,3,2,4] valeur retournée = [1,2,4,6,5,3]
3
Exercice 4 Créer une fonction compresse(t) capable de compresser une chaîne de caractères de la manière suivante : Chaîne initiale: “aaabbbbbeeeedfffffff” Chaîne retounée: “3a5b4e1d7f” Chaque caractère est accessible via un indice (comme un tableau) PHP : Exemple : str = “abc” str[1] // Retourne b PHP : Pour connaitre la taille d’une chaine de caractère utilisez la fonction strlen()
4
Solution : fonction contient
FONCTION contient(el, t) { n ← NB(t) i ← 0 TANT QUE i < n FAIRE SI (el = t[i]) RETOURNE VRAI FIN SI i ← i - 1 FIN TANT QUE RETOURNE FAUX }
5
Solution : fonction tri
FONCTION tri(t) { n ← NB(t) i ← n-1 TANT QUE i > 0 FAIRE j ← 0 TANT QUE j < i FAIRE SI(t[j]>t[j+1]) tmp ← t[j] t[j] ← t[j+1] t[j+1] ← tmp FIN SI j ← j + 1 FIN TANT QUE i ← i - 1 RETOURNE t } Cliquez pour voir l’animation
6
Solution : fonction suppDoublons
FONCTION suppDoublons(t) { a ← array() n ← NB(t) i ← 0 TANT QUE (i < n) FAIRE SI(contient(t[i], a) = FAUX) a[] ← t[i] FIN_SI i = i + 1 FIN TANT QUE RETOURNE a }
7
Exercice 5 Soit tab = a ← tab[2] b ← tab[tab[a]] c ← tab[3] + tab[4]
1 2 3 4 5 6 7 8 Soit tab = a ← tab[2] b ← tab[tab[a]] c ← tab[3] + tab[4] d ← tab[a - 2] tab[1] ← a tab[2] ← b tab[4] ← d tab[5] ← c tab[1] ← tab[2] Que vaut tab ?
8
Exercice 6 Corrigez l’algorithme afin qu’il affiche la table de multiplication de 5 jusque n*5, sachant que n est un paramètre passé par l’utilisateur n ← arg[1] i ← 0 TANT QUE i ≤ 10 FAIRE rep ← n * i FIN_TANT_QUE ECRIRE n . "*" . i . " = " . rep ECRIRE RETOUR LIGNE
9
Exercice 7 Corrigez l’algorithme afin qu’il affiche la table de multiplication de 5 jusque n*5, sachant que n est un paramètre passé par l’utilisateur n ← arg[1] i ← 1 TANT QUE i ≤ n FAIRE rep ← 5 * i ECRIRE i . "*" " = " . rep ECRIRE RETOUR LIGNE i ← i + 1 FIN_TANT_QUE
10
Exercice 8 function superCalculator($a, $b, $c, $d) { $e = $a + $b + $d; $c = $d; $b = 3; $d = $e + $b; echo $c."<br>"; echo $d."<br>"; } $a = 2; $b = 4; $c = 6; $d = 8; superCalculator($a,$a,$c,$d); superCalculator($d,$b,$b,$a); echo $b; Que sera-t-il affiché à l’écran après l’exécution de ce code? Réponse : 8 15 2 17 4
11
Exercice 9 Données de base : Réaliser une fonction getIndexEtudiant(name)qui retourne l’indice d’un étudiant à partir de son nom. Quid si l’étudiant n’existe pas ? Quid des paramètres ? Suffisants ? Réaliser une fonction getIndexCours(cours)qui retourne l’indice d’un cours sur base de son nom Réaliser une fonction getMaxScore(e)qui retourne l’indice du cours où l’étudiant d’indice e a obtenu le plus de points. Réaliser une fonction getCoursMaxScore(name)qui retourne le nom du cours où l’étudiant de nom “name” a obtenu le plus de points. -Les fonctions [1] et [2] sont les mêmes, retrouver un cours ou un étudiant dépendra de ce qui est passé en paramètre comme tableau -Si l’étudiant n’existe pas, la fonction peut retourner un entier -1
12
Exercice 10 : Distribution statistique
Créez un programme capable de construire un tableau qui représente la distribution d’un autre tableau d’entiers. Exemple : t = [1,2,3,0,2,1,2,3,2,1,2,3,2,1,2,4] t_dist = [1,4,7,3,1]
13
Exercice 11 : Calligraphie
Dessinez la lettre « X » dans un carré composé de ‘-’, la lettre elle- même étant composée de 'X' (cf copie d’écran). Affichez ce motif plusieurs fois. Utilisez un tableau à deux dimensions. Argument 1 : n, la taille de ce carré Argument 2 : p, le nombre de répétition du motif BONUS : Dessinez une autre lettre de votre choix.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.