Exercices sur les fichiers binaires et les structures hiérarchisées
1 |
Créez un fichier binaire, "toto.bin", rempli d'éléments de type "point2d". Ce type est défini comme suit : typedef struct { En effectuant le tracée, à partir du premier point jusqu'au dernier, on obtient un dessin. Créez chaque point de manière aléatoire en générant, pour chaque "x", un chiffre entre 0 et getmaxx(), pour chaque "y", un chiffre entre 0 et getmaxy(). Utilisez la fonction "random" de la librairie "stdlib" pour réaliser votre tâche. |
|
2 |
Un programmeur a créé un fichier binaire, "toto.bin", rempli d'éléments de type "point2d". Ce type a été défini comme au numéro 1: Les points dans ce fichier représentent un dessin. En effectuant le tracée, à partir du premier point jusqu'au dernier, on obtient le dessin. Relisez ce fichier, point par point en tracant, dans le mode graphique, le dessin qu'il contient. Vous pouvez supposer que le mode graphique est déjà ouvert. Déclarez uniquement les variables nécessaires à la tâche demandée. |
|
3 |
Refaites le numéro précédent en lisant d'un seul coup tout le fichier dans un tableau dynamique de "point2D" que vous devez créer de la taille appropriée. |
|
4 |
Transformez le programme du numéro 2 ou celui du numéro 3 afin de permettre à un utilisateur de donner le nom du fichier à utiliser en argument au "main". La commande DOS suivante devient alors possible (si votre programme se nomme DESSIN): > DESSIN TOTO.BIN |
|
5 |
Reprenez le programme du numéro 4 afin de pouvoir recueillir le numéro de la couleur désirée pour le dessin. La command devient alors (5 est le numéro de la couleur à utiliser dans "setcolor": > DESSIN 5 TOTO.BIN N'oubliez pas d'effectuer la validation nécessaire. Un numéro de couleur valide est un nombre entier positif plus petit que le numéro retourné par "getmaxcolor()". |
|
6 |
Un programmeur a défini les types suivants afin de définir la liste des items qu'i y a dans un entrepôt: typedef struct{ Voic le début du "main": int main(void){ Écrivez le bout de code permettant de lire, en interactif, le nombre d'items à placer dans l'entrepôt "E" et de créer le tableau dynamique "liste" de la taille appropriée. Écrivez le "typedef" nécessaire afin de définir le type "compagnie". Ce type comprendra 3 champs: le nom de la compagnie (25 caractères), le nombre d'entrepôts que possède la compagnie (un entier) et un tableau dynamique d'entrepôts. En supposant que tous les tableaux dynamiques nécessaires sont déjà créés, écrivez le bout de code nécessaire pour augmenter de 10 % le prix de tous les items dans tous les entrepôts de la compagnie "C" déclarée comme suit: compagnie C; |
|
7 |
En considérant le type "entrepot" défini au numéro 6, écrivez le code d'une fonction nommée "afficherEntrepot" permettant d'afficher toutes les informations (description, quantite, prix) des items se trouvant dans l'entrepôt fourni en paramètre. Le prototype de la fonction est le suivant: void afficherEntrepot(entrepot E);
|
|
8 |
En considérant de nouveau les types définis au numéro 6, écrivez le code d'une fonction nommée "afficherCompagnie" permettant d'afficher toutes les informations (description, quantite, prix) des items se trouvant dans tous les entrepôts (affichez aussi le numéro de chaque entrepôt) de la compagnie fournie en paramètre. Le prototype de la fonction est le suivant: void afficherCompagnie(compagnie C); Utilisez la fonction que vous avez définie au numéro 7 pour accomplir votre tâche. |
|
9 |
(Cette question est une gracieuseté de Martin Payette du groupe 04 -- automne 2000) Un programmeur décide de créer les types nécessaires et de déclarer la variable pour stocker la description de l'inventaire de 15 magasins de disques. Chaque magasin comprend plusieurs rayons de genres variés. typedef struct{
int main(void) { En supposant que tous les tableaux dynamiques sont déjà créés, écrivez les assignations permettant d'effectuer chacune des tâches suivantes:
|
|
10 |
En considérant toutes les définitions et la déclaration de variable du numéro 9, écrivez un bout de code permettant de répondre à chacun des questions suivantes:
|
|
11 |
En considérant toutes les définitions et la déclaration de variable du numéro 9, écrivez un bout de code permettant de créer chacun des fichiers binaires suivants:
|
|
12 |
Refaites les questions du numéro 10.1, 10.2 et 10.3 en supposant plutôt que les disques sont stockés dans un fichier binaire de la forme créée en 11.2. Refaites la question du numéro 10.3 en supposant plutôt que les disques sont stockés dans un fichier binaire de la forme créée en 11.1. |