IUT R&T - 1ère année - Informatique
Programmation et algorithmique 2


TP n°2.8

Ce TP supplémentaire est à réaliser librement en dehors des séance de TD et TP et sans envoyer de compte-rendu.

EXERCICE 1*
N.B. Dans cet exercice, on n'utilisera aucune des fonctions de la librairie string.h. On utilisera donc la structuration en C des chaines comme une liste de caractères terminée par '\0'.

On veut créer un type chaine de caractères élaboré qui fonctionne à un plus haut niveau que les char* du langage C.

1.1. Définir un type CHAINE qui contiendra une chaine de caractères, sa taille effective, et une constante Tmax=255 correspondant à la taille maximale d'une telle chaine.

1.2. Créer une fonction nommée CHlength qui retourne la taille d'une CHAINE.

1.3. Créer une fonction nommée CHprint qui affiche une CHAINE.

1.4. Créer une fonction nommée CHget qui retourne une CHAINE dont le contenu est la chaine char* s passée en paramètre. Si s est trop longue, elle sera coupée.

1.5. Créer une fonction nommée ch2str qui retourne un pointeur de caractère correspondant à la recopie du contenu d'une CHAINE passé en paramètre vers un char*. S'il y a eu un problème, la fonction retournera NULL après s'être assuré qu'aucun espace mémoire inutilisé ne reste alloué.

1.6. Créer une fonction CHsub qui retourne la sous-CHAINE d'une CHAINE entre deux indices j et k.
Exemple : pour j=8 et k=10, la j-k-sous-chaine de "ceciestunechaine" est "une" (attention à l'indiçage!).

1.9. Créer une fonction qui retourne la CHAINE créée par la concaténation de deux CHAINEs.

1.8. Créer le programme principal qui teste ces fonctions sur des exemples bien choisis.

N.B. Il ne sera pas interdit de créer ultérieurement d'autres fonctions de référence pour le type CHAINE...

EXERCICE 2

Ecrire un programme qui fusionne les chaines de caractères constituées par les paramètres en ligne de commande d'un programme, et affiche la chaine obtenue.

EXERCICE 3 (à faire hors TP)

On veut reprendre l'exercice 5 du TD 2 sur le triangle de Pascal en utilisant un tableau alloué dynamiquement.

3.1. Créer une fonction nommée CreeTriangle qui prend en paramètre une taille n et retourne un tableau T à deux dimensions créé dynamiquement. Ce tableau T aura n lignes et chaque ligne T[k] aura k colonnes.

3.2. Créer une fonction nommée CreePascal qui prend un paramètre un entier naturel non nul n et retourne un triangle de Pascal, en utilisant la fonction précédente pour l'allocation du tableau.

3.3. Créer une fonction nommée AfficherPascal qui affiche le n-ième triangle de Pascal.

3.4. Tester ces fonctions sur des exemples bien choisis.