1

Créez un fichier binaire, "toto.bin", rempli d'éléments de type "point2d". Ce type est défini comme suit :

typedef struct {
int x, y;
} point2D;

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{
char description[80];
int quantite;
double prix;
} item;

typedef struct{
int noEntrepot;
int nbItems;
item * liste; // tab. dyn. des items dans l'entrepot
} entrepot;

Voic le début du "main":

int main(void){
entrepot E;
...

É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{
char titre[80]; // titre de la pièce musicale
unsigned duree;
} piece;

typedef struct{
char album[45]; // titre de l'album
char auteur[70]; // auteur de l'album
unsigned annee;
toune plage[15]; // chaque disque comprend 15 pièces.
} disque;

typedef struct{
char genre[10]; // genre de musique (ex. jazz, hip hop, ska, rock, etc.)
int nbDisques; // nb de disques dans le rayon
disque * liste; // tableau dynamique contenant les disques du rayon
} rayon;

typedef struct{
char nom[25]; // nom du magasin (ex. HMV, Sam, Phantasmagoria, etc.)
int nbRayons; // nombre de rayons dans le magasin
rayon * R;
} magasin;


Voici finalement, la déclaration de la variable contenant 15 magasins.

int main(void) {
magasin MTL[15];

En supposant que tous les tableaux dynamiques sont déjà créés, écrivez les assignations permettant d'effectuer chacune des tâches suivantes:

  1. Initialisez à 120 secondes la durée de la 5e pièce du 8e disque dans le 2e rayon du 9e magasin.
  2. Initialisez le titre du 8e disque dans le 2e rayon du 9e magasin avec la chaîne "Chuchillo".
  3. Inititalisez le genre du 2e rayon du 9e magasin avec la chaîne "Cubain".
  4. Initialisez le nom du 9e magasin avec la chaîne "HMV".
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:

  1. combien de disques sont parus en 1999?
  2. un bout de code permettant de compter combien de disques appartiennent au genre "Jazz"?
  3. un bout de code permettant de compter combien de pièces musicales ont une durée de plus de 300 secondes?
  4. combien de magasins ont plus de 3 rayons?
  5. combien de disques en moyenne on peut trouver dans un rayon?
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:

  1. un fichier contenant la liste de toutes les "pieces" sur tous les disques dans tous les rayons de tous les magasins.
  2. un fichier contenant la liste de tous les disques dans tous les rayons de tous les magasins.
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.

Modifié le: lundi, 16 juin 2014, 15:12