Vous êtes sur la page 1sur 12

Question 1 (5 points)

Le modèle de programmation dans la page suivante contient dans la mémoire de code le programme C avec deux
fonctions main et ajouterChaine (cette fonction est très semblable à la fonction strcat). Vous devez
montrer comment la mémoire de travail est utilisée durant l’exécution de ce programme:
 Montrez comment le tableau et les variables sont organisés dans la mémoire de travail de chaque
fonction.
 Montrez comment les variables et le tableau sont initialisés et modifiés par le programme.
 Montrez les valeurs qui sont affectées aux variables et éléments du tableau. Soyez certain de montrer
toutes les valeurs affectés éléments des tableaux/variables et comment elles changent durant l’exécution
du programme. Représentez dans votre modèle de programmation les affectations successives des
valeurs aux éléments de tableaux et variables comme suit (le ? montre une valeur inconnue) :

nomVariabl ? 2, 6, 4, 10
e
 Pour le tableau de type char, représentez-le de la façon suivante. Montrez les valeurs des éléments avec
des valeurs littérales de type char.

nomTableau ? ‘a’
? ‘b’
? ‘c’
? ‘\0’
?
?
 Pour la variable pointeur, utilisez adr1, adr2, adr3, etc. comme valeurs affectées au pointeur et dessinez
une flèche pointillée pour montrer à quel emplacement de mémoire l’adresse réfère.

nomPtr ?, adr1, adr2

 Utilisez des flèches pour montrer comment les valeurs sont copiées entre la mémoire de travail allouée
à la fonction main et la mémoire de travail allouée à la fonction ajouterChaine. Il n’est pas
nécessaire de montrer comment les valeurs sont copiées dans les paramètres qui sont des pointeurs (les
flèches pointillées sont suffisantes).

1
Chn1 Chn2

? ‘U’ ? ‘c’
? ‘n’ ? ‘h’
? ‘e’ ? ‘a’
? ‘\0’ ? ‘i’
? ‘n’
? ‘e’
? ‘\0’

ch1 ch2
‘c’
‘U’ ‘h’
‘n’ ‘a’
‘e’ ‘I’
‘\0’ ‘n’
‘e’
‘\0’

ix1 ? 0,1,2,3

ix2 ? 0, 1,2,3,4,5

2
Question 2 (10 points)

La réponse à cette question devrait fournir :


1) Le code source de votre programme dans un fichier C (insérer également le code source dans
votre rapport de devoir).

3
2)

Insérer les sorties montrant les résultats de tous les cas de test dans votre rapport de devoir.

4
5
Question 3 (10 points)
Le reboisement d’une forêt
Un des défis de la gestion de forêt est de déterminer après une récolte dans une forêt combien d’acres
devront être non-récoltés afin que la partie récoltée sera reboisée dans une période de temps désirée. Il
est supposé que le reboisement se fait à un taux constant, r, par année, dépendant du climat et des
conditions du sol. Une équation de reboisement en fonction du nombre d’acres reboisés et du taux de
reboisement :

où i représente l’année, 0 après la récolte, et 1, 2, 3 représentent le nombre d’années après la


récolte (donc A0 est le nombre d’acres non-récoltés après la fin de la récolte, et A1, A2, A3, …
représentent le nombre d’acres reboisés de la forêt après les années 1, 2, 3, …).
r est le taux de reboisement exprimé comme une fraction entre 0.0 et 1.0 (p. ex. 0.05 indique
que le nombre d’acres reboisés est augmenté de 5% à la fin d’une année).
Vous êtes responsable de développer un logiciel qui appui l’analyse de reboisement. Étant donnée les
valeurs suivantes (obtenu de l’utilisateur) :
● Le nombre total d’acres de la forêt,
● Un nombre minimum d’acres non-récoltés,
● Un nombre maximum d’acres non-récoltés,
● Un taux de reboisement,
affichez dans la console un tableau qui incrément les valeurs des acres non-récoltés (entre les valeurs
minimum et maximum données par l’utilisateur) et pour chacune de ces valeurs les années nécessaires
pour un reboisement total de la forêt. Le tableau contiendra 20 rangées. Le suivant montre un exemple
d’interaction avec l’utilisateur.

}
} Entrée

Résultats
affichés

Suivez les consignes suivantes:


 Définitions:
o Définissez un nouveau type de structure, FORET, qui contient 5 membres, un tableau
pour y stocker le nom de la foret, et 4 membres pour stocker les données obtenus de
l’utilisateur (voir la liste ci-haut).
o Utilisez des constantes symboliques pour éliminer les numéros magiques dans votre
programme.
 La fonction main
o Déclarez une variable structure du type FORET et une ou des tableaux pour stocker
les données à afficher.
o Utilisez une boucle pour permettre à l’utilisateur de répéter le les étapes (obtenir
l’entrée de l’utilisateur, remplir les tableaux de données, et afficher le résultat dans la
console) plusieurs fois.
o La fonction fera des appels à trois fonctions pour 1) obtenir les données de
l’utilisateur, 2) remplir le/les tableaux avec les données de reboisements, et 3) pour
afficher les résultats de l’analyse (c.-à-d. les données dans le/les tableaux).

6
 Fonction getEntreeForet
o La fonction possède un paramètre pointeur pour remplir la variable structure déclarée
dans main.
o Les valeurs données par l’utilisateur doivent être vérifiées afin qu’elles respectent les
contraintes suivantes :
 Toutes les valeurs réelles doivent être plus grandes que 0.0 (utilisez la
fonction getValeurPositive du labo 5).
 Le nombre maximum d’acres non-récoltés doit être plus petit que le nombre
total d’acres de la forêt.
 Le nombre minimum d’acres non-récoltés doit être plus petit que le nombre
maximum d’acres non-récoltés.
 Le taux de reboisement doit être entre 0 et 1.0 exclusivement (c.-à-d. que le
taux ne peux pas être 0.0, ni 1.0).
 Fonction calculeDonneesTableau
o Les paramètres de cette fonction comprennent un pointeur à une variable structure du
type FORET, les paramètres nécessaires pour accéder et traverser le ou les tableaux
déclarés dans la fonction main. N’utilisez pas des consentantes symboliques pour
déterminer les dimensions des tableaux. Utilisez plutôt des paramètres (ceci rend la
fonction capable de composer avec des tableaux de différentes dimensions).
o En plus d’un boucle pour traverser le/les tableaux, un boucle imbriqué sera nécessaire
pour calculer le nombre d’années nécessaires pour faire le reboisement étant donnée le
nombre d’acres non-récoltés.
 Fonction afficheTableau
o Les paramètres de cette fonction comprennent un pointeur à une variable structure du
type FORET, les paramètres nécessaires pour accéder et traverser le ou les tableaux
déclarés dans la fonction main. N’utilisez pas des consentantes symboliques pour
déterminer les dimensions des tableaux. Utilisez plutôt des paramètres (ceci rend la
fonction capable de composer avec des tableaux de différentes dimensions).
o La fonction affiche d’abords l’information de la forêt (voir l’exemple de la sortie du
programme).
o Il affiche ensuite le contenu du tableau de donnée pour montrer comment les années
de reboisement changent avec le nombre d’acres non-récoltés.
o Respectez le format de la sortie tel que le nombre de chiffres dans la partie fraction
des valeurs.
Répondez à cette question avec :
1) Le code source C de votre programme.

7
8
9
2) Insérez dans votre fichier de devoir le code source ainsi que la sortie de votre programme
pour tous les cas tests montrés dans la prochaine page. Montrez aussi une sortie qui
démontre comment le programme traite des valeurs invalides pour le temps de début et le
temps de la fin.

10
11
12

Vous aimerez peut-être aussi