• Aucun résultat trouvé

Exercices sur les techniques de programmation et les TDA de type liste GPA665 École de technologie supérieure

N/A
N/A
Protected

Academic year: 2022

Partager "Exercices sur les techniques de programmation et les TDA de type liste GPA665 École de technologie supérieure"

Copied!
7
0
0

Texte intégral

(1)

École de technologie supérieure

Génie de la production automatisée

GPA665

Exercices sur les techniques de programmation et les TDA

de type liste

(2)

1. Techniques de programmation, boucles et tableaux

En supposant les inclusions de bibliothèque correctes :

1) Est-ce que le code compile et s’exécute sans accès mémoire incorrecte?

2) Quelle est la sortie de la fonction?

3) À quoi correspondent chacune des trois parties identifiées?

#define MAX_VALUE 5

void Ex01(void) {

// Déclaration des variables locales int i, j, Data[MAX_VALUE];

double Result[3] = {0.0, 0.0, 0.0};

// Première partie

for (i = MAX_VALUE - 1, j = 1; i >= 0; i--) { Data[i] = j++;

}

// Deuxième partie

for (i = 0; i < MAX_VALUE; i++) { Result[0] += Data[i];

}

Result[1] = Result[0] / MAX_VALUE;

// Troisième partie

for (i = 0; i < MAX_VALUE; i++) {

Result[2] += pow(Data[i] - Result[1], 2);

}

Result[2] /= MAX_VALUE;

Result[2] = sqrt(Result[2]);

// Affichage des résultats

printf("%lf \n %lf \n %lf", Result[0], Result[1], Result[2]);

getch();

}

2. Techniques de programmation, boucles, tableaux et fonctions

Écrire une fonction correspondant à la déclaration de fonction suivante qui identifie le minimum et le maximum tout en calculant la moyenne et l’écart type d’un tableau de float :

void ComputeBasicStat(float Data[], int NbData,

float *Min, float *Max,

float *Average, float *StD);

(3)

3. Construction logique, conception, structure, fonctions et TDA

Désirant faire l’analyse de polygones quelconque, vous décidez de définir une structure informatique pertinente permettant d’en faire une description efficace. On désire définir un TDA permettant de faire une gestion efficace de ce type de problématique à partir des informations suivantes,:

„ le nom du polygone;

„ tous les sommets qui décrivent les polygones (les polygones sont décrits par tous les sommets qui constituent son contour en partant du sommet le plus haut à gauche et en parcourant son contour dans le sens anti-horaire);

„ le nombre de sommets du polygone;

„ le périmètre;

Les polygones sont décrits dans des fichiers textes suivants le format suivant :

„ 1ière ligne : nom du polygone (n’excédant pas 25 caractères);

„ 2ième ligne : le nombre de sommets du polygone;

„ 3ième à (n+2)ième ligne : la liste des n sommets sur chacune des lignes où les coordonnées (X, Y) sont inscrites valeur par valeur et séparés par un espace.

Par exemple :

Polygone quelconque 5

12.5 12.8 7.0 10.1 -5.7 8.0 18.7 0.2 28.9 10.3

À l’aide du langage C, veuillez répondre aux questions suivantes : 1) Veuillez déclarer tous les types nécessaires à votre TDA.

2) Veuillez définir une fonction permettant d’initialiser votre TDA. N’oubliez pas que la fonction d’initialisation (ou de création) est une fonction permettant de démarrer à vide (sans aucun élément) votre TDA afin qu’elle soit cohérente avec sa définition dès sa création.

3) Veuillez définir, si nécessaire, une fonction permettant de détruire (ou disposer) de votre TDA. Cette fonction sert principalement une seule fois, à la fin de l’utilisation du TDA.

4) Veuillez faire une fonction de lecture du fichier prescrit (sans gérer tous les cas d’erreur possible).

5) Veuillez faire une fonction d’écriture du fichier prescrit.

(4)

4. Techniques de programmation, récursivité, paramètres passés par valeur et par référence

Quelle est la sortie du programme suivant?

void main(void) {

printf("%d\n", F1(3, 4));

getch();

}

int F1(int X, int Y) {

if (X < Y) {

X = F2(&Y, Y);

F1(Y, X);

}

return X*Y;

}

int F2(int *X, int Y) {

F3(X, &Y);

*X *= Y * *X;

F3(&Y, X);

return Y;

}

void F3(int *X, int *Y) {

int Temp;

Temp = *X;

*X = *Y;

*Y = Temp;

}

5. Récursivité

Ayant à votre disposition une fonction graphique traçant des cercles, veuillez faire une fonction qui trace le graphique suivant. Vous avez les informations suivantes :

„ la taille des cercles d’un niveau inférieur est la moitié de ceux du niveau supérieur immédiat;

„ les cercles doivent avoir un rayon supérieur à 1;

„ le prototype de la fonction de dessin est :

void DrawCircle(int X, int Y, int R);

(5)

6. Récursivité

À partir de la solution que vous avez donné au numéro précédent, veuillez indiquer sur le schéma l’ordre d’affichage de chacun des cercles.

(6)

7. Construction logique, conception, structure, fonctions et TDA

Après avoir rencontré un client, votre patron vous amène les informations suivantes :

„ on désire stocker les informations relatives aux clients d’un magasin de location de films vidéo;

„ on a besoin de trois listes principales :

„ la liste de tous les clients

„ cette liste varie car plusieurs clients s’ajoute et se retire à chaque semaine;

„ on sait aussi que cette liste est très utilisée pour des recherches de nom de client;

„ on désire avoir les données suivantes :

„ numéro d’abonné

„ nom

„ prénom

„ age

„ sexe

„ adresse complète (no. civique, rue, code postal et province)

„ adresse courriel

„ numéro de téléphone à la maison

„ numéro de téléphone au travail

„ frais accumulés

„ la liste de tous les films disponibles dans le magasin :

„ cette liste varie constamment puisqu’on reçoit régulièrement de nouveaux films et que plusieurs films disparaissent ou doivent être retirés de la circulation;

„ cette liste est plus sollicitée que la précédente et sert beaucoup pour la recherche d’information;

„ on désire avoir les données suivantes :

„ numéro de référence

„ titre

„ nom de l’acteur ou l’actrice principale

„ date

„ genre (9 prédéfinis : comédie, action, faits vécus, documentaire, enfant, horreur, drame, science fiction)

„ nombre d’exemplaire

„ la liste de toutes les transactions de location faites :

„ la taille de la liste varie beaucoup mais augmente toujours car on garde une trace des transactions passées

„ cette liste est la plus sollicitée, autant pour l’insertion, la suppression ou la recherche

„ les données requises sont :

„ un lien de référence vers le client

„ un lien de référence vers le film loué

„ la date de location

„ la date de retour

„ les frais restants de la transaction

Il vous demande de faire la conception d’un TDA permettant de supporter efficacement ces

(7)

2) Définissez en langage C tous les types nécessaires à votre TDA 3) Faites l’implémentation des fonctions suivantes :

„ Une fonction permettant d’initialiser à vide toute la structure de données

„ Une fonction permettant de détruire proprement toute la structure de données

„ Une fonction de recherche identifiant tous les retardataires. Cette fonction doit retourner le nom de chaque retardataire et, pour chacun d’eux, le titre de chaque film en retard en plus du montant global qu’il doit.

8. Faites des exercices concernant la manipulation de pointeur à travers

plusieurs sujet (notamment celui de la dualité tableaux – pointeurs)

Références

Documents relatifs

Vous êtes facilement distrait, vous avez tendance à vous éloigner du sujet (quoique hyper-concentré à l'occasion).. Vous oubliez souvent des détails,

A l’aide de la calculatrice, déterminer une valeur approchée de arrondie à la sixième décimale... (expression étudiée

Fait : Le trouble du déficit de l’attention avec hyperactivité (TDA/H) est une condition neurobiologique pouvant causer l’inattention, l’hyperactivité et/ou l’impulsivité,

Sous la direction de la supérieure immédiate ou du supérieur immédiat, conseille quant à l'interprétation des règlements académiques, des politiques d'admission

Représenter A∆B sur une figure et déterminer

cases 1 et 2 du tableau Result (la somme dans la case 1 et la moyenne dans la case 2). On calcule l’écart type des données contenues dans le tableau Data et on la met dans

ƒ ƒ Ce type d Ce type d ’ ’ organisation ordonne les donné organisation ordonne les donn ées en fonction d es en fonction d’ ’ une clef une clef issue d. issue d ’un calcul

une partie interface (description de l’ensemble et des op´ erations) ; une partie impl´ ementation (description de la structure de donn´ ees et des algorithmes de