T1.programmation : Sujet du TD2
T1.programmation : Sujet du TD2
Groupe ESIEE, Denis BUREAU, janvier 2002.
Attention !
Le sujet peut être modifié jusqu'à la veille du TD.
1 Les objectifs
Savoir déclarer, définir, et utiliser des tableaux mono- ou bi-
dimensionnels ; savoir passer des tableaux en parametres donnée, mixte,
ou résultat ;
connaître la syntaxe C++ mettant en oeuvre ces concepts.
2 Notions abordées dans le cours 2
- Notion de tableau mono-dimensionnel
- Notation
- Exemples avec/sans tableau
- Exemple avec procédure et fonction
- Traduction en C++
- Limitations liées au C++
- Passage de paramètres
- Tableaux multi-dimensionnels
- Exemple à 4 dimensions
- Tableaux de caractères
- Équivalence avec les chaînes de caractères
- Affichage et saisie de chaînes de caractères
- Manipulation de chaînes de caractères (<string.h>)
3 Références dans le polycopié
4 Exercices à faire avant ce TD
5 Traduire en C++
Soit TAILLEMAX la constante Entiere 50 .
Soit TypTab un type tableau de 1 .. TAILLEMAX Entiers.
PROCEDURE saisir_tableau( RESULTATS: TypTab, Entier ).
FONCTION tab_egal( DONNEES: TypTab, Entier, TypTab, Entier ) ---> Booleen.
DEBUT programme principal
Soient t1 et t2 deux TypTab.
Soient n1 et n2 deux Entiers.
AFFICHER Premier tableau :
Saisir_tableau( t1, n1 )
AFFICHER Deuxieme tableau :
Saisir_tableau( t2, n2 )
SI tab_egal( t1, n1, t2, n2)
ALORS AFFICHER identiques.
SINON AFFICHER differents.
FINSI
FIN programme principal
PROCEDURE saisir_tableau( RESULTATS: TypTab T, Entier N )
Soit R un Entier.
R <--- 0
N <--- 0
TANTQUE R positif ou nul ET N < TAILLEMAX
AFFICHER "Element" (N+1) " : "
SAISIR R.
T[N] <--- R
INCREMENTER N.
FIN TANTQUE
FIN PROCEDURE saisir_tableau
FONCTION tab_egal(donnees: TypTab T1,entier N1,TypTab T2,entier N2) ---> booleen.
Soit R un booleen.
Soit i un entier.
SI N1 ¹ N2 ALORS Retourner FAUX FINSI
R <--- VRAI
i <--- 0
TANTQUE i < N1 ET R
SI T1[i] ¹ T2[i] ALORS R <--- FAUX FINSI
Incrementer i.
FIN TANTQUE
Retourner R.
FIN FONCTION tab_egal
6 Écrire le pseudo-langage puis traduire en C++
6.1 Minimum / Moyenne / Maximum
- Écrire une procédure qui prend en entrée un tableau de réels
et son nombre d'éléments, et qui fournit en sortie le minimum,
la somme, et le maximum des éléments du tableau.
Cette procédure
ne devra parcourir le tableau qu'une seule fois.
Ceci est un exercice ; dans la réalité, il faudrait écrire
3 fonctions séparées.
- Écrire un programme principal qui saisit le tableau, puis affiche
le minimum, la moyenne, et le maximum du tableau. Ne pas
oublier les déclarations nécessaires avant le programme
principal. La procedure
Saisir_tableau est supposée être déjà écrite
(écrire simplement le prototype pour la déclarer).
Cette procédure ne limite volontairement pas
les valeurs possibles des réels saisis.
6.2 Racines / Puissances
- Écrire une procédure qui initialise un tableau de réels de
20 lignes x 5 colonnes. La 3ème colonne contiendra les
nombres de 1 à 20 ; les colonnes 1, 2, 4, et 5 contiendront
respectivement la racine cubique, la racine carrée, le carré et
le cube du nombre de la 3ème colonne.
- Écrire une procédure d'affichage de la matrice sur 20 lignes de
5 colonnes. Pour la beauté de la présentation, on peut en C++
spécifier avant chaque cout << A; le nombre de caractères
qui sera occupé par l'affichage de la donnée A (des
espaces seront éventuellement ajoutés pour compléter) ;
par exemple, si l'on désire N caractères,
il suffit d'ajouter l'instruction cout.width( N );.
- Écrire un programme principal qui déclare, initialise puis
affiche cette matrice.
6.3 Palindrome
- Écrire une fonction prenant en entrée une chaîne de
caractères et retournant une valeur booléenne suivant que cette
chaîne est un palindrome ou non.
Rappel : un palindrome est un mot ou une phrase se lisant de la
même manière de gauche à droite et de droite à gauche.
Exemples : "Radar", "Esope reste ici et se repose."
On peut donc constater d'après ces exemples que les minuscules et
les majuscules sont équivalentes, et que seuls les caractères
alphabétiques sont pris en compte.
- Écrire un programme principal demandant à l'utilisateur de
taper un mot ou une phrase tant qu'il ne tape pas simplement le mot
FIN ou fin, puis affichant si c'est un palindrome ou non.
Les fonctions suivantes de la bibliothèque standard peuvent être
utilisées :
- strlen( ch ) <string.h> : calcule la longueur de la
chaîne ch
- strcmp( ch1, ch2 ) <string.h> : compare les chaînes ch1
et ch2
- isalpha( c ) <ctype.h> : teste si le caractère c est
alphanumérique
- tolower( c ) <ctype.h> : retourne la minuscule du caractère
alphanumérique c
File translated from
TEX
by
TTH,
version 2.75.
On 18 Jan 2002, 17:58.