Td corrigé TD-TP langage C - Examen corrige pdf

TD-TP langage C - Examen corrige

TD-TP 1 ? Analyse des besoins. Vous n'êtes pas encore ingénieur ni même informaticien mais vous savez réfléchir. Etre ingénieur, c'est quoi ? Apporter une  ...




part of the document




TD-TP 1 – Analyse des besoins

Vous n’êtes pas encore ingénieur ni même informaticien mais vous savez réfléchir.

Etre ingénieur, c’est quoi ? Apporter une solution à un besoin.

Comprendre le besoin : nécessite la compréhension du haut niveau
Élaborer la solution : nécessite la maîtrise du bas niveau.

Entre les 2, les phases d'analyse, de conception et de test.
But de la formation : acquérir ces notions.

Commençons donc par réfléchir en français (avant le C) !!

Un client vous exprime ces attentes. Il rarement clair, rarement complet…
Identifiez ses attentes, faites préciser les points flous, posez des hypothèses…
Déterminez les ressources qui vous seront nécessaires (charge mémoire)
Déterminez les traitements (actions) à exécuter et leur ordre d’exécution (charge processeur)

Rappelez-vous, ce qui nous intéresse ici c’est : comment vous y prendriez-vous pour…
Exercice 101
Afficher le plus petit d'une liste de 5 nombres.

Exercice 102
Vous souhaitez échanger le contenu de 2 variables en mémoire A et B. Comment vous y prenez-vous ? (exprimez vous en français)

Exercice 103
Vous avez devant vous un verre à pied contenant du vin et un verre droit contenant de l’eau.
But : échanger le contenu des 2 verres. Comment vous y prenez-vous ?
 SHAPE \* MERGEFORMAT 
Situation de départ situation d’arrivée ou résultat
Exercice 104
Vous souhaitez échanger le contenu de 2 variables en mémoire A et B. Comment vous y prenez-vous ? (votre méthode a-t-elle changée par rapport à l’exo 102 ?)

Exercice 105
La RATP vous demande de l’aider à améliorer le trafic de la ligne de bus n°48.
(un peu vague, non ?) Rassurez-vous, votre chargé de TD-TP saura très bien jouer le client RATP ;-)


TD-TP 2 – Compréhension des besoins, analyse chronologique et descendante


Analyse chronologique et descendante

Cette fois-ci, formalisons un peu notre pensée.

Rédigez l’analyse chronologique et descendante des problèmes qui vous sont proposés. Vous ne dépasserez pas 10 étapes élémentaires dans vos analyses.
Vous préciserez, pour chaque exercice les variables (ressources) qui vous semblent nécessaires pour stocker les informations et les éléments de calcul en précisant leur type.
Enfin, vous réaliserez l’algorithme ou l’organigramme correspondant à votre analyse descendante.

Les différentes étapes de votre analyse chrono-desc. doivent être reprises comme commentaires dans votre algo.


Exercice 201

Problème : Programmer un automate distributeur de boissons

Hypothèses : On considèrera que l’automate dispose de boissons en nombre suffisant.

Exercice 202

Problème : Programmer un automate distributeur de billets de banque

Hypothèses : A vous d’imaginer…

Exercice 203

La pâte à crêpes !

Listez les ingrédients (les ressources) et décrivez la recette (analyse chronologique et descendante) de la pâte à crêpes.
Ecrivez l’organigramme correspondant.

Exercice 204

Problème : rechercher le minimum de 10 valeurs.

Hypothèses :

les valeurs seront entrées au clavier par l’utilisateur,
le type des valeurs est entier





TD-TP 3 – Algorithme et organigramme, traces d’exécution

Exercice 301

Problème : trier un tableau de 5 entiers.

En plus de l’analyse chrono-desc.(ACD), écrivez l’algorithme ou l’organigramme et faites tourner votre programme à la main en listant les ressources et en fournissant la trace d’exécution simulant l’exécution de votre code.

Ex : nb1 nb2 nb3
4 8 2
4 2 8 la trace d’exécution montre l’évolution des variables



Exercice 302

Ecrivez l’analyse CD, un algorithme et un organigramme qui demande deux entiers et indique lequel est le plus petit, lequel est le plus grand.


Exercice 303

Ecrivez l’ACD, puis un algorithme et un organigramme qui demande un entier et indique s’il est pair ou impair.



Soyez très rigoureux dans l’indentation de vos algorithmes !

L’exercice 1 du sujet suivant vous montre les erreurs potentielles d’interprétation si l’indentation n’est pas respectée.

Rappel : en l’absence de bloc debut-fin ou {-} les boucles et les tests ne portent que sur l’instruction qui suit immédiatement.
TD-TP 4 – Indentation, trace d’exécution, logique, opération

Exercice 401

Vous savez que la machine ne se préoccupe pas de l’indentation de vos programmes et que cette dernière apporte un confort pour les relecteurs de votre code. Pour vous en convaincre, voici des algorithmes écrits avec une indentation un peu vague. Essayez de vous y retrouver et d’en comprendre l’importance de respecter une indentation correcte dans vos programmes.

Rappelez-vous que sans bloc, la machine ne conditionne ou ne répète qu’une seule instruction.


X,Y, et Z étant des variables numériques, on considère les deux séquences algorithmiques S1 et S2 :

Séquence S1

DEBUT
si (X2) et Z>3 alors
DEBUT
X :=1
si (Z-Y) >0 alors
Z :=0
Y :=Y+Z
FIN
sinon
X :=2
Z :=Y+Z
fin
Séquence S2

DEBUT
si X2 et Z>3) alors
DEBUT
X :=1
FIN
si (Z-Y) >0 alors
DEBUT
Z :=0
Y :=Y+Z
FIN
sinon
DEBUT
X :=2
Z :=Y+Z
FIN
fin



Pour chacune des deux séquences, donner les traces d’exécution de X, Y, et Z si l’on suppose qu’à l’état initial ces trois variables ont les valeurs :
a) X :=4 Y :=1 Z :=4
b) X :=4 Y :=5 Z :=4
c) X :=1 Y :=3 Z :=1


Exercice 402

Afin d’analyser des résultats d’examen, 4 variables permettent de décrire l’environnement :

les variables numériques Nlv, Nf, Nm, Np qui indiquent respectivement, pour un candidat donné :
des notes littéraires : langue vivante (Nlv), de français (Nf)
des notes scientifiques : mathématiques (Nm), et physique (Np).

On suppose que les notes sont calculées sur 20 et qu’elles ont toutes le même coefficient.



Formez les expressions logiques (et seulement elles) correspondant aux situations suivantes :

la moyenne des quatre notes est supérieure à 10
les notes de mathématiques et de français sont supérieures à la moyenne des quatre notes
il y a au moins une note supérieure à 10
toutes les notes sont supérieures à 10
la moyenne (10) est obtenue pour l’un des deux types (littéraire et scientifique)
la moyenne des quatre notes est supérieure ou égale à 10 et la moyenne (10) est obtenue pour l’un des deux types

Exercice 403

Donnez l’analyse chrono-descendante et l’algorithme qui détermine le nombre de valeurs distinctes parmi trois variables à faire saisir par l’utilisateur. (ex : 8, 8 et 8 saisi par l’utilisateur donne 1 valeur distincte ; 8,1,8 en donne 2 et 8,2,5 en donne 3).


Exercice 404

Résolution d’équation du second degré.

Ecrivez l’ACD et l’algorithme d’un programme calculant les solutions d’une équation du second degré dont les coefficients sont saisis par l’utilisateur.
Décrivez les ressources.
Faites tourner votre solution à la main sur des exemples en indiquant la trace d’exécution listant l’évolution du contenu de chacune des ressources. Vous penserez à tous les cas possibles.



TD-TP 5 – Composants d’un ordinateur et bases numériques

Exercice 501 Présentation de l’ordinateur


Listez les composants internes et externes d’un ordinateur. Donnez le ou les critère(s) de performance pour chacun de ces composants (exemple : « capacité » pour la mémoire). Précisez les unités utilisées pour mesurer chacune de ces performances. Donnez enfin une valeur « actuelle » moyenne pour chacune de ces mesures (Vous pourrez utiliser internet pour les obtenir).
Vous regrouperez dans un tableau l’ensemble de ces informations.

Exercice 502 Conversion de bases

Convertissez par la méthode des puissances puis la méthode des divisions successives les nombres suivants :

(345)10 ( ? )2

(1618)10 ( ? )2

Conversion en sens inverse :

(10110010)2 ( ? )10

(11111111)2 ( ? )10

Exercice 503

Convertissez par la méthode des puissances les nombres suivants :

( ? )8
(1758)10 ( ? )8 ( ? )16
( ? )10 (654)8 ( ? )16
( ? )10 (129)8 ( ? )16
( ? )10 ( ? )8 (1A7EF)16 ( ? )7 ( ? )3


Exercice 504 Codage de l’information

Combien d’informations pouvez-vous coder sur 2 bits ? sur 8 bits ?
Quels sont les codes associés à ces informations ?
Quelles sont les valeurs numériques entières associées à ces codes ? en signé ? en non-signé ?
Si vous souhaitez associer un code à chaque étudiant de l’ECE (environ 1400), combien de bits avez-vous besoin ? d’octets ?

TD-TP 6 – Environnement et Premiers programmes

Voici enfin vos premiers pas en C !!



Maîtrisez-vous le cours ?

Exercice 601

Combien y a t-il de types scalaires en C et quels sont-ils ?
Qu'est ce qui les différencie ?
Donner leur plage de valeurs.
Par défaut sont-ils signés ou non signés ?



Exercice 602

Quel type choisir pour coder les nombres :
45.876
56.0
77
650987
32769
-32765
450009996



Exercice 603

Soit dans un programme les déclarations suivantes :

int 0t, ti, p0;
freste float;
double div-total;
float tata, t2345, char c, cc :
short Err_, _E_,

Indiquez, expliquez et corrigez les erreurs.


Passons maintenant à l’écriture de programmes…


Découverte de l’environnement

Le blog informatique : Les tutoriaux, les polys, les sujets de TD-TP
Le forum (exemple de topic : Vista à l’ECE)
Le réseau et votre compte sur Z :
La création de répertoire de travail sur Z : (1 répertoire par projet)



Découverte du compilateur


Code Blocks !

Vous le trouverez en cliquant sur

Démarrer/Tous les programme/Développements

Comme son nom l’indique, c’est un compilateur C tout à fait adapté à la découverte du langage.

Ce compilateur a été choisi pour sa gratuité et ses performances. Vous pouvez vous le procurez sur Internet et l’installer sur vos ordinateurs personnels.
C’est LE compilateur de référence pour toutes vos programmations, projets comme examen. Vous devez par conséquent vous assurez que le travail que vous rendez fonctionne sous cet environnement dans les salles machine de l’ECE ou sur l’ordinateur personnel que vous apporterez lors des soutenances.

Sous CodeBlocks, un projet permet la compilation séparée de plusieurs fichiers sources .c et plusieurs fichiers bibliothèques .h.
Pour créer un projet, vous ferez :

- fichier/nouveau projet
- projet console
- en C

Attention !! Attention !!

Vous enregistrerez ce projet sous le nom de votre choix (explicite !!), dans un répertoire différent pour chaque exercice que vous créerez dans votre espace disque réseau sur z :


Une fois créé, un clic droit sur le nom du projet dans la fenêtre de gauche vous permettra de supprimer ou d’ajouter des fichiers dans votre projet.

Je vous conseille de créer vos différents répertoires de travail sur Z : avant d’ouvrir CodeBlocks et en leur donnant également un nom explicite vous permettant d’en retrouver facilement le contenu si vous avez besoin de réutiliser des morceaux de code par la suite.

En cas de problème de fonctionnement de votre compte utilisateur ou de votre machine, vous pouvez vous adresser à l’équipe système en envoyant un e-mail à : es@ece.fr



Première compilation et notion de « template » (modèle)

Exercice 604

Créez un nouveau projet sous CodeBlocks… donnez un nom explicite au projet….puis un répertoire de sauvegarde sur Z :

Lancer la compilation du template (modèle de main par défaut) pour vérifier la configuration correcte de votre machine.





Programmation



Exercice 605

Premier programme universel en C que tout nouveau programmeur se doit d’avoir réussi !!!

1. Programmez l’affichage du célèbre  « Bonjour le Monde !!! » en ajoutant dans le template,

printf(« Bonjour le monde !!! »); // s’il n’y est pas déjà !

2. Afficher ensuite "ce que vous voulez" en modifiant la fonction printf()

3. Recommencer en modifiant quelque chose à chaque fois, par exemple :
- ajouter \n à la fin du message, \t au milieu, des accents ô à, é, è, ê etc.




Exercice 606

Recommencez l’exécution du programme précédent en supprimant certaines parties du programme pour voir les différents messages d’erreur que vous obtiendrez.
enlevez le ;
enlevez le premier guillemet
enlevez le second guillemet (sans remettre le premier)
enlevez une accolade
enlevez le f de printf
remplacez un guillemet par une quote ‘ (apostrophe)
cumulez plusieurs des erreurs précédentes

Dans quels cas y a t-il un message d'erreur et quel est-il ?



Exercice 607

Ecrivez l’analyse descendante, l’algorithme, l’organigramme puis le programme C qui permet à l’utilisateur de saisir une valeur entière dans une variable i puis qui affiche i, i++ et ++i.



Exercice 608


Dans un programme, déclarer un char et lui affecter une valeur choisie au hasard. Afficher la valeur entrée en utilisant les deux formats %d et %c, qu'est ce que ça donne ? Réessayer en demandant cette fois une valeur comprise entre 97 et 122. Que remarquez-vous ? Quelles valeurs permettent d'afficher les caractères *, @, #, $ ?

Exercice 609

Corrigez les erreurs que vous repérez dans le code ci-dessous puis compilez le code pour vérifier que vous les aviez bien toutes détectées.


#includ

Int main()
{
/ declaration des ressources
int essai==0 ;
int a_trouver ;

// initialisation (en dur) de la valeur que le joueur doit rechercher
a-trouver = 18 ;

// boucle de jeu
while (essai a_trouver)
{
printf (« entrez votre valeur)
scanf (« %f », essai) ;
if (essai = 0) print (« \nValeur nulle interdite\n ») ;
if (essai > a_trouver) printf (« /nTrop grand !\n ») ;
else printf (« \nTrop petit) ;
}
pintf (« \n\nBravo !!\n ») ;
return 0 ;
}

Exercice 611

Ecrivez l’analyse descendante, l’algorithme, l’organigramme puis le programme C qui permet de convertir caractère par caractère, des minuscules en majuscules. Chaque caractère est saisi par l’utilisateur puis converti.
Vous n’êtes pas autorisé ici à utiliser les fonctions prédéfinies du C comme « toupper ».
Vous devez baser votre raisonnement sur le codage de l’information dans la table d’interprétation sémantique ASCII (sans entrer de valeur en dur) et sur le décalage Min/Maj.

Exercice 612

En vous efforçant à nouveau d’être indépendant des codes de la table ASCII, écrivez l’analyse descendante, l’algorithme ou l’organigramme puis le programme C permettant de déterminer si le caractère entré par l’utilisateur est un chiffre, une lettre majuscule, une lettre minuscule ou autre chose… Après analyse, vous afficherez à l’écran la nature du caractère saisi.


Exercice 613

Ecrivez l’analyse descendante, l’algorithme ou l’organigramme permettant de déterminer si une valeur saisie par l’utilisateur est paire ou non. Un multiple de 5 ?



Exercice 614

Ecrivez l’analyse descendante, l’algorithme ou l’organigramme puis le programme C permettant de décomposer un nombre saisi par l’utilisateur en unité-dizaine-centaine-millier…..

Exemple de résultat à afficher:

Nombre saisi : 127

127 se décompose en :

7 unités
2 dizaines
1 centaine



TD-TP 7 – Boucle et test


Exercice 701

Ecrivez l’algorithme permettant de saisir puis afficher un tableau de 10 nombres entiers.
Ecrivez l’analyse descendante puis l’algorithme et l’organigramme de la recherche du minimum et du maximum de ce tableau.
Ecrivez l’analyse descendante puis l’algorithme et l’organigramme du tri en ordre croissant de ce tableau.


Exercice 702

Ecrire un programme C qui convertit un entier naturel en chiffres romains, en utilisant l’ancienne notation additive.
Exemple : 4 ( IIII), 9 ( VIIII), 900 ( DCCCC)

Rappelons les éléments de base :
I : 1, V :5, X : 10, L : 50, C : 100, D : 500, M : 1000.


Exercice 703

Simulation d épargne.

Vous épargnez une somme de 30¬ tous les 2 de chaque mois sur un compte vous rapportant 0.3% mensuel, avec des intérêts calculés tous les 30 jours, le premier de chaque mois. Les intérêts se cumulent.

Ecrivez l analyse descendante, l algorithme ou l organigramme permettant d afficher le solde de votre épargne au bout d un nombre de mois saisi par l utilisateur.


Exercice 704

Ecrire un programme C qui propose à l utilisateur de dessiner à l’écran certaines figures composées d’étoiles.
Les figures seront proposées par un menu (triangle, carré, sablier…). La hauteur de la figure sera saisie par l’utilisateur.

Exemple : hauteur=4

*
***
*****
***********
****
****
****
*******
*****
***
*
*
***
*****
*******


TD-TP 8 – Image, histogramme et binarisation


L’objectif de ce TP est de manipuler le tableau de valeurs correspondant à chaque point (appelé PIXEL) d’une image. Vous ne manipulerez pas une vraie image ; n’ayant pas d’outil de visualisation des images en mode console, vous ne pourrez manipuler que des nombres sans visualiser le résultat de vos traitements.


Exercice 801

Ecrire un programme remplissant aléatoirement un tableau à deux dimensions (matrice) de 10 lignes et 20 colonnes avec des valeurs comprises entre 0 et 255 (bornes comprises).

Afficher cette matrice à l’écran en respectant l’aspect rectangulaire de la matrice.



Exercice 802

Comme dans l’exercice sur les statistiques des notes du TD-TP 6 bis, l’histogramme d’une image étudie la répartition statistique de chaque valeur de niveau de gris dans une image.

Son principe consiste, dans un tableau histogramme de 256 cases de type entier, à compter combien l’image contient de pixels de niveau de gris 0 et à stocker cette valeur dans la case 0 du tableau histogramme, puis combien l’image contient de pixels de valeur 1 à ranger dans la case 1… ainsi de suite jusqu’à compter le nombre de pixels à 255.

Attention !! Il y a une méthode de calcul rapide et une méthode très lente. Réfléchissez !

Compléter le programme précédent pour qu’il calcule l’histogramme de l’image après son remplissage aléatoire.
Affichez cet histogramme de manière lisible à l’écran.



Exercice 803

La binarisation d’une image consiste, dans une image secondaire afin de ne pas modifier l’image originale, à mettre à 0 tous les pixels de l’image originale inférieurs à une valeur seuil entrée par l’utilisateur ; et à mettre à 255 tous les pixels de l’image originale supérieurs ou égaux à cette valeur seuil.

Compléter à nouveau le programme précédent pour y inclure la binarisation et affichez la valeur des pixels de l’image binarisée en respectant l’aspect de l’image.








TD/TP n°9 - Chaînes de caractères


Rappels :

Les chaînes de caractères sont des tableaux de caractères dont la particularité est d’avoir, dans la case utile le caractère ‘\0’ qui marque la fin de la chaîne.
Ce caractère spécifique du langage C n’est pas pris en compte par la fonction strlen() mais doit être pris en compte lorsque vous déclarez votre chaîne de caractères en ajoutant 1 à la taille « utile » de la chaîne.



Exercice 901

Ecrivez un programme C affichant un menu utilisateur proposant :

de saisir une chaîne de caractères
de convertir la chaîne saisie en majuscules (vous ne modifierez que les caractères minuscules et ne toucherez pas aux autres
de convertir la chaîne saisie en minuscules
de comparer 2 chaînes à saisir (utilisez strcmp)
de compter la longueur d'une chaîne
de concaténer 2 chaînes dans la première (attention aux débordements)
de crypter une chaîne en appliquant un décalage circulaire dont la valeur est entrée par l’utilisateur
de décrypter une chaîne de caractère cryptée en appliquant un décalage circulaire inverse à partir d’une valeur entrée par l’utilisateur.


Chaque fonctionnalité sera gérée dans un sous-programme.
Vous blinderez votre programme pour garantir que vous travaillez sur des chaînes non vides et redemanderez la saisie dans le cas contraire.
Vous ferez attention aux débordements de tableau.



TD-TP 10 – PAC MAN


Rappels :

La programmation évènementielle diffère de la programmation séquentielle classique.
Au lieu d’exécuter des instructions en séquences les unes après les autres selon un ordre prédéterminé par l’écriture de votre code, vous allez prévoir des bouts de code adapté à chacune des actions autorisées à l’utilisateur et vous mettre en attente d’évènements.

Lorsqu’un évènement autorisé sera détecté, vous analyserez cet évènement pour en déterminer la nature et exécuter le morceau de code correspondant à l’action souhaitée par l’utilisateur.


Exercice 1001

Ecrivez un programme C affichant un X qui part du bord gauche de l’écran et qui se déplace seul jusqu’au bord droit, avant de disparaître.

En mémoire, le X sera stocké dans une matrice de caractères à 2 dimensions 10 lignes x 20 colonnes. La position initiale du X est aléatoire. L’affichage de chaque étape du déplacement du X correspond à l’affichage complet de la matrice.

(Utilisez la fonction clrscr() pour nettoyer l’écran et éviter le déplacement diagonal)




Exercice 1002

Améliorez le programme précédent pour que le X réapparaisse à gauche lorsqu’il est sorti à droite.




Exercice 1003

Modifiez encore ce programme pour que l’utilisateur puisse cette fois changer la direction de déplacement du X en utilisant les touches 2, 4, 6 et 8 du pavé numérique ( ! Assurez-vous que le verrouillage numérique du pavé soit actif). (Vous pourrez, à votre guise, choisir d’autres touches).
Le X réapparaîtra en haut ou en bas, à gauche ou à droite, à l’opposé de sa sortie de l’écran.


Exercice 1004

Ajoutez une bordure à votre cadre de jeu pour observer l’effet stroboscopique à l’écran.





Exercice 1005

Améliorez votre programme en y integrant la fonction gotoxy(x,y) ci-dessous qui utilise elle-même des fonctions de positionnement du curseur à l’écran qui se trouvent dans la bibliothèque windows.h (un petit coup de google pour comprendre comment marche cette fonction).
Cette fonction emmène le curseur à la position x,y à l’écran , le coin haut gauche étant en 1,1. Vous pouvez alors y afficher le caractère de votre choix.

void gotoxy( int x, int y )
{
COORD mycoord;

mycoord.X = x;
mycoord.Y = y;

SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), mycoord );
}

(sans oublier bien sûr d'inclure windows.h)




Exercice 1006

  qrP Y ^ h o s £ Á Ú Ü Ý Þ   t ÷éÛéÍ¿²¥˜¥Š¥Š¥Š¥|q|Šg]UIh
h
5OJQJh
OJQJh­\yOJQJ^Jh#7/OJQJ^JhVRT5OJQJ^JhË_‚hTp5OJQJ^JhË_‚h#7/5OJQJ^JhË_‚hå ¤OJQJ^JhË_‚h#7/OJQJ^JhË_‚hÖGeOJQJ^Jh­\yhÖGe5OJQJ^Jh­\yh#7/5OJQJ^Jh­\yh+G5OJQJ^Jh­\yhå ¤5OJQJ^JhË_‚hÞ^J rs´µø7 8 u ¢ ÷Åܜooooooo,$d%d&d'd1$7$8$H$NÆÿOÆÿPÆÿQÆÿgd#7/&$d%d&d'dNÆÿOÆÿPÆÿQÆÿgd#7/2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd­\y$a$gdVRT ØÙ(Ú*Ú.Úþþþþ¢ £ Ý Þ (
y
À
  t  ² ³ À > ? L © î
ôÞôôÐÐÐÈÈû»Ã³³Ã»»»$a$gdTp$a$gd#7/gdVRT$a$gd

& F1$7$8$H$gd­\y$-D1$7$8$H$MÆ
ÿæææa$gdTp
1$7$8$H$gd#7/t ~  €  ³ ¼ ½ ¾ À ? H I J L î ï 





?
@
I
J
K
M
®
é
ë
ô
õ
ö
ø
G\bôëßÖË¿ßë¿´¿ßë¿Ë¥Ë¥¥Ë´Ë¿ßë¿´y´¿ßë¿´mdh­\y6OJQJh­\yh­\y6OJQJh
OJQJjhË_‚hTpOJQJU(jhË_‚h#7/OJQJUmHnHujhË_‚h#7/OJQJUhË_‚hTpOJQJhVRThTp6CJ]hË_‚h#7/OJQJh#7/6CJ]hVRTh­\y6CJ]h,[?6CJ]hVRTh#7/6CJ]&
@
M
ê
ë
ø
G«­®ùúû !QRèîéáÙéáÙÔÔ¢ÔÔÔԚšš$a$gdjU2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd­\ygd­\y$a$gd#7/$a$gdTpgdVRT$
Æ¥™„Å`„Åa$gdTpbcª«­®ùû !RYdu)®¾ù!.ghijsöíáÙÎÀµ£‘£µ‰µµµµuluclWKhVRTh­\y6CJ]hjUhf{45OJQJh­\y5OJQJhf{45OJQJhjUhjU5OJQJhjUOJQJhVRTOJQJ"hjUhjU5CJOJQJ\aJ"hjUh­\y5CJOJQJ\aJhË_‚h­\yOJQJh­\yh­\y5OJQJ^JhË_‚hf{4OJQJh­\yOJQJh­\yhTp6OJQJh­\y6OJQJh,[?6OJQJè—øùhijwx³´ [\|}Š‹žŸ÷÷òòòòíòäßäÖíßäßääíòÍÍÍ„Å^„Ågd,[?„Å^„Ågd­\ygdVRT„Å^„ÅgdVRTgdVRTgd­\y$a$gdjUstuwx€´¾ IZ\fi{}†‡ˆ‰Š‹Ÿ@AJKLMNOôëßÔƻƻ³»Ô§ëž§»Æ»³»Æ»³»ßôëžß–†ynßôëžßÔhË_‚h,[?OJQJh,[?h,[?OJQJ^Jh,[?h,[?5OJQJ\^Jh­\yOJQJhVRT6CJ]hVRThVRT6CJ]hVRTOJQJhË_‚hVRTOJQJhË_‚hVRT5OJQJ\hË_‚h­\yOJQJhVRTh­\y6CJ]h,[?6CJ]hVRThjU6CJ]'@ANO€ŽÉèéêëíî'(öñìñãÞããÑÈÞññññ–ñ2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gdf{4„‰^„‰gdf{4 „Å„Ä^„Å`„Ägdf{4gdf{4„Å^„Ågdf{4gdVRTgd­\y„Å^„Ågd,[?OWZ}€Šèéëíîôõø&'(456>aln‚‡‘¡ü @UVWXòçßçòçÑÉßÁ³¨³¨³”‹„òçßçßÁßçßçßxßçßlß`hjUhf{47OJQJhûW¸hf{4OJQJS*hjUhf{45OJQJ hf{4hf{4h,[?6CJ]hf{46CJ]hË_‚h,[?OJQJhf{45OJQJ^JhVRThf{45OJQJ^Jh}öOJQJh,[?OJQJh,[?hf{45OJQJ^Jhf{4OJQJhË_‚hf{4OJQJhË_‚hf{45OJQJ\%(56`aABT[™žŸ¬­KL¼½¾¿úõìõààààààõõúÛìõÛúÖÍÛÛÈgd­\y„Å^„ÅgdH`¼gdH`¼gd,[? $„Å^„Åa$gdf{4„Å^„Ågdf{4gdf{4gd,[?XYZ\]œŸ«¬­µÃÑãJKLT`¾¿øùøìøàøÕøÌÀ³©Ÿ©‘„©wÌng³Ÿ³\PDh}öh­\y5OJQJh}öh}ö5OJQJhË_‚h­\yOJQJ hH`¼hH`¼h,[?6CJ]h,[?hH`¼OJQJ^Jh,[?hf{4OJQJ^Jhf{4hf{45OJQJ^Jh}öOJQJ^Jhf{4OJQJ^Jh,[?h,[?OJQJ^Jh,[?h,[?6CJ]hf{46CJ]hË_‚hf{4OJQJhûW¸hf{4OJQJS*hjUhf{47OJQJhf{4OJQJ¿üýwxú78EF³´xy†‡úúúúúÈþöö¶ÃÃí¤¤ $Ifgd^W/ $Ifgdøu…$a$gd

gdVRTgd­\y2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gdVRTgd}öùú"+678ABCDE".:²³´xïäÖËÀÖËÖ³§ž•‰§³{˳qgYKËä³h

h

5OJQJ^Jh

hVRT5OJQJ^JhVRTOJQJ^Jh­\yOJQJ^JhË_‚h­\y5OJQJ^JhVRThVRT6CJ]h,[?6CJ]h}ö6CJ]hVRTh­\y6CJ]hË_‚h­\yOJQJ^Jhð|5OJQJ^JhVRT5OJQJ^JhVRTh­\y5OJQJ^Jh}ö5OJQJ^Jh}öh­\y5CJOJQJ^Jxy†‡‘•˜ ¤²¹½ÆÍäëúÿ $',;FJSbv…“¡¢£ÏáDE\]tu‚ƒ„õéõÝõÝõÝõÝõÝõÝõÝõÝÑÝõÝõÝõÝõÝõÝõÝõÝȼ¯¥¯¥¯¥¯¥¯›Ž€hË_‚h­\y6CJ]aJhË_‚h}öOJQJ^Jh­\yOJQJ^Jh

OJQJ^JhË_‚h­\yOJQJ^JhË_‚h}ö:OJQJh­\y:OJQJhË_‚h­\y>*OJQJhË_‚h­\y:OJQJhøu…h­\y>*OJQJhË_‚h­\yOJQJ0«²¹ÍÕßäêñúþÿ 
3:AFZahqv}„‹•öööööööööööööööööööööööööööö $Ifgd^W/•šžŸ ¡¢£:Rj‚ƒ„öööxsssssssssgd­\y}kd$$If–FÖÖ0”ÿ¸Ü#¤¤
tàÖ0ÿÿÿÿÿÿö6ööÖÿÿÖÿÿÖÿÿÖÿÿ4Ö4Ö
laöyt^W/ $Ifgd^W/
Ž‘’–—¢MPŽ§¶ÐÒ-./0+ 5 6 7 9 K R ] ` !=!>!?!õêßÑù¬¹¬¹¬¹¬Ÿ¬¹¬•¬‹t¬ÑõêѬ¹¬¹¬¹iah­\yOJQJhË_‚h­\yOJQJhË_‚h}öOJQJ^Jh}öOJQJ^Jh­\yOJQJ^Jh8OJQJ^JhË_‚h

OJQJ^JhË_‚h­\yOJQJ^Jh

OJQJ^JhË_‚h­\y>*OJQJ^JhË_‚h­\y6CJ]aJhVRT6CJ]aJh,[?6CJ]aJh}ö6CJ]aJ#„‘’îðPÑÒ-./0Ž¿Ahº+ , 9 : >!?!úõõõðèèððßßßõõ××××××úúõõõ
& Fgd­\y„Á^„Ágd­\y
& Fgd

gd

gd­\ygd­\y?!@!M!N!u!v!"("å"æ"è"é""###M#N#O#Â$%%úõúððððððú趴¯´´§è´$a$gdøgdóYE2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd­\y$a$gd#7/gd9§gd9§gd­\y?!@!I!L!M!N!""("6"W"_"`"c"‚"¼"ä"å"æ"è"é"î"ï"ð""###,#-#.#øêßêÔʽʰʰʰʰʰÊÔ¥—‰~—m_TIh,[?6CJ]aJh0Vì6CJ]aJhóYEhóYE6CJ]aJ h­\y5CJOJQJ\^JaJhJ«5OJQJ^JhóYEhóYE5OJQJ^JhóYEh­\y5OJQJ^JhË_‚hTpOJQJhÑA(h9§OJQJ^Jh…h9§OJQJ^Jh9§OJQJ^JhË_‚h­\yOJQJh9§6CJ]aJhË_‚h9§6CJ]aJh9§OJQJ.#/#0#M#N#O#/$0$Á$Â$%%%%%%%&%'%’%“%ž%Ÿ%ï%òçòÓÆ»°»¥»•ŠçqcXMBM:Mh6DOJQJhË_‚hå ¤OJQJhË_‚htyOJQJhË_‚hÆ}çOJQJhóYEhàr6CJ]aJhóYEhå ¤6CJ]aJh,[?6CJ]aJh0Vì6CJ]aJhË_‚hTpCJOJQJ\aJhË_‚h%9ÿOJQJhË_‚h­TOJQJhË_‚høOJQJhË_‚h%9ÿOJQJ^J&hóYEh%9ÿ5CJOJQJ\^JaJhóYE6CJ]aJhóYEhóYE6CJ]aJ%&%'%“%”%¦%§%¹%º%×%Ø%î%ï%&&&&V&W&^&w&&©&Ô&úøðëëëëëëëëëëøúæáá×ÌÌÌÌ
„Á¤x^„Ágdk

& F¤xgdkgdtygdóYEgdå ¤$a$gdÿOgdóYEï%&&&&&&&&Õ&Ö&ß&à&á&ã&õ&ú&û&ü&—' 'û'(N(O(P(V(õêÜÑÆ»°©êõ›ÑÆ»»‚©õwõwõi^PhóYEh¼dq5OJQJ^JhË_‚6CJ]aJhóYEhË_‚6CJ]aJhË_‚hÿOOJQJhì6CJ]aJhóYEhóYE6CJ]aJhóYEhì6CJ]aJ hóYEhóYEhty6CJ]aJhóYE6CJ]aJh,[?6CJ]aJh0Vì6CJ]aJhóYEhty6CJ]aJhË_‚htyOJQJhË_‚hìOJQJÔ&Õ&Ö&û&ü&?'s'Ò'N(P((€(¥(¦(§(¨(Â(Ã(Ð(öñìçåñññì³®®®®®¡®œgdÉ9M
-DMÆ
ÿææægdÉ9Mgd¼dq2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd¼dqgdóYEgdóYEgdì„Á^„ÁgdtyV(W(Z(k(~((€(Œ(¡(¤(¦(§(¨(Á(Â(Ã(Ì(Î(Ð(Ñ(ë(õ(.)9):)?)w)y)z)ƒ)†)‡)ˆ)°)³)ôæôØæÑøÃô´°Ÿ‹°{n{dWdWdWdWdW{n{dWdhÉ9MhÉ9MOJQJ^JhÉ9MOJQJ^JhÉ9M5OJQJ\^Jh|nhÉ9M5OJQJ\^J&h|nhÉ9M5CJOJQJ\^JaJ hÉ9M5CJOJQJ\^JaJhÉ9Mh¼dqhÉ9M5OJQJ^Jh¼dqh¼dq5OJQJ^J h%9ÿh¼dqh=\¥h¼dq5OJQJ^JhóYEh¼dq5OJQJ^Jh¼dq5OJQJ^J"Ð(Ñ().)L)w)x)y)z)‡)ˆ)³)¿)É)Ð)Û)â)ì)ù)û)ü)ý)
* *?*@*R*b*úòòòòúúúúúúêêêêêêêúúúúúúúúú
& F gdÉ9M
& F
gdÉ9MgdÉ9M³)¾)¿)È)É)Ï)Ð)Ú)Û)â)ã)ë)ø)û)ü)ý)* *
* *Ú*Û*+
+ + +)+*+++?+©+®+ê+,,, ,
, ,,%,',óéóéóéóéóéóéóéóÙÌÙéóȺ¯ºÈžŠ†yoéoéoyȆȞŠoh¼dqOJQJ^Jh²4ÿh¼dqOJQJ^Jh¼dq&h|nh¼dq5CJOJQJ\^JaJ h¼dq5CJOJQJ\^JaJhÉ9M5OJQJ^JhÉ9MhÉ9M5OJQJ^JhÉ9MhÉ9M5OJQJ\^Jh|nhÉ9M5OJQJ\^JhÉ9MOJQJ^JhÉ9MhÉ9MOJQJ^J)b*v*˜*«*¬*Ù*Ú*Û*
+ + +*+++p+œ+¾+,,
, ,%,&,',úúúúúõõõõõèõõõõõõõõèõõ
-DMÆ
ÿææægd¼dqgd¼dqgdÉ9M',5,6,Y,Z,…,†,å,æ,-ª.«.-/P/Q/ÕÕÕÕ§ÕÕÕÕÕÕÕÕÕ-$„Å$d%d&d'dNÆÿOÆÿPÆÿQÆÿ`„Åa$gd¼dq)$$d%d&d'dNÆÿOÆÿPÆÿQÆÿa$gd¼dq',5,Z,„,‡-‰-¿.Å.ú.//+/Q/T/[/\/i/l/z/}//‚/ƒ/Œ/“/œ/Ý/ê/ÿ/0S0V0W0X0ï081=1ú1¢2£2¤2¥2Ü2óéóéóéóéóéóéßÒßÒßÒßÒßéÄéÄéóéóéóéóé´£´é–éŒ{ h¼dq5CJOJQJ\^JaJh²9ÍOJQJ^Jh• ïh¼dqOJQJ^J!h¼dq56>*OJQJ\]^Jh¼dq56OJQJ\]^Jh• ïh¼dq5OJQJ^Jh|nh¨OJQJ^Jh¨OJQJ^Jh¼dqOJQJ^Jh¼dq5OJQJ\^J*Q/j/{/‚/ƒ/ /¤/W0X0Y0î0ï0ú1û1¢2ÑÑÑ£££yyyyyyyy)$$d%d&d'dNÆÿOÆÿPÆÿQÆÿa$gd¼dq-$„Å$d%d&d'dNÆÿOÆÿPÆÿQÆÿ`„Åa$gd¼dq-$„Å$d%d&d'dNÆÿOÆÿPÆÿQÆÿ`„Åa$gd¨¢2£2¤2¥2Ý2Þ2ë2ì2a3b3Ú3Û3Ü3Ý3Þ3ß3í3î3ï3ð3ý3þ3W4X4¶4·4û4ü4úúúíúèúúúúúúúúúíúúúúúèèèèèègd’z†
-DMÆ
ÿææægd¼dqgd¼dqÜ2Ý2Þ2ç2é2ê2ë233333@3J3„3 3Ú3Û3Ü3Ý3ß3í3î3ï3ð3ù3ü3ý3þ34V4W4ìâÒŸҮâ®â®â®â®â¡™•ìâ‹~n¸n¡bYbhùà5OJQJh’z†h’z†5OJQJh|nh¼dq5OJQJ\^Jh|nh’z†OJQJ^JhùàOJQJ^Jhùàh²9Íh¼dqh|nh¼dqOJQJ^Jh’z†OJQJ^Jhùà5OJQJ\^Jh’z†5OJQJ\^Jh|nh’z†5OJQJ\^Jh¼dqOJQJ^J&h|nh¼dq5CJOJQJ\^JaJW4X4[4f4|4–4Ù4ú4û4ü4555%515G5K5°5¾5Þ5à5â5ë5í5î5ï5ð5Ñ6ì6x7¶7·7¸7¹7Å7øîá×áî×îáøÌøÌøÌøÌÄÌî׶« ¶œ’ˆ’}ˆ’pchùà5OJQJ\^Jh|nh²9ÍOJQJ^Jh
h¼ÝOJQJh¼ÝOJQJ^Jh¼dqOJQJ^Jh¼dqhùà6CJ]aJh’z†6CJ]aJh|nh¼dq6CJ]aJh¼ÝOJQJh
h’z†OJQJhùàOJQJ^Jh|nh’z†OJQJ^Jh’z†OJQJ^Jh’z†OJQJ"ü4G5H55Þ5ß5à5á5â5ï5ð5Œ6™6¶6í677M7w7x7¶7·7¸7¹7Æ7Ç7úúúúõõõõðõõèèèèèèèõãõõõõõgd¼Ý
& Fgd¼dqgd¼dqgd¼dqgd’z†Å7Æ7Ç7Ï7888"8„8…8†8’8“8•8»9á9ã9ä9å9ñ9ò9ó9:€:ðãÖÌÖ̵̿«žŽ«pUpK«žðãÌ>hM)5OJQJ\^JhùàOJQJ^J5hi˜B*CJOJPJQJ\]^JaJnH phÿtH ;hUH¥hUH¥B*CJOJPJQJ\]^JaJnH phÿtH h|nhUH¥5OJQJ\^JhUH¥5OJQJ\^Jh²9ÍOJQJ^JhUH¥OJQJ^Jh+"ÏhM)OJQJ^JhM)OJQJ^Jh|nhM)OJQJ^Jh|nh¼dqOJQJ^Jh|nh¼dq5OJQJ\^JÇ7ƒ8„8…8†8“8”8•8ã9å9ò9ó9:€::“:”:Ÿ:¡:úúúúõúúèõããúúã´´´´.„¥„¥$d%d&d'dNÆÿOÆÿPÆÿQÆÿ]„¥^„¥gdM)gd¼dq
%dOÆÿgdUH¥gdUH¥gdM)€::ˆ:”:•:Ÿ:¾:¿:Â:Ì:Í:n;o;Ž;;¡;Û;ç;è;é;ê;û;ü;ÿ;*OJQJ^Jh|nh¨OÍOJQJ^JhéHkh¨OÍOJQJ^Jh¨OÍ6CJ]aJh0VìOJQJ^Jh¨OÍOJQJ^Jh+"Ïh¨OÍOJQJ^Jh+"Ïh¨OÍ5>*OJQJ^Jh+"Ïh¨OÍ6CJ]aJ2C3CªCØCÙCûCjDlDnDˆDŠD¶D¸DHFJFG’G”G®G°GGHÄHÅHÙHÚHÜHàHúúúúúúúúõúúúúúúúðõúúúúúúää $$Ifa$gd¨OÍgd1jÝgd¨OÍgd¨OÍàHæHîHóHøHýHII IIIIII#I+Ióóóóóóóóóóóóóóó $$Ifa$gd¨OÍ+I,I-I.I/I\I]I^I—J‘ŒŒŒZŒŒR$a$gd1jÝ2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd1jÝgd1jÝmkdç$$IfT–FÖF”ÿ nÜ$€m €m €n
tàöH%6ööÖ ÿÿÿÖ ÿÿÿÖ ÿÿÿÖ ÿÿÿ4Ö4Ö
laöyt¨O͊T\I—J˜J™J¢J£J¥J¦J§J»J¯K¸K¹K»K¼K½KÌMÕMÖMÙMÐNÙNÚNÜNÝNOGO¹P»P½P¿PÁPöìßÔÉÔ»´§öÔÉԙ‘öƒöƒöÔÉԙöuöqi_Rh+"Ïhi˜OJQJ^Jhi˜OJQJ^Jh1jÝOJQJh1jÝh£©h1jÝ5OJQJ^JhP!úh1jÝ5OJQJ^Jh1jÝOJQJh…h1jÝ6CJ]aJhEh1jÝOJQJ^J h…h1jÝh+"Ïh1jÝ6CJ]aJh¨OÍ6CJ]aJh1jÝ6CJ]aJhrz\h1jÝOJQJ^Jh1jÝOJQJ^Jh1jÝOJQJ^J—J˜J™J¦J§JVKWK¬K­K®K¯K¼K½KqLrLËMÌM'N(N–NÍNÎNÏNÐNÝNÞNôïêâââââââÚââââââââââââÚâ$a$gd1jÝ$a$gd1jÝgd1jÝgd1jÝ
1$7$8$H$gd1jÝÞNPP¹PºP»P¼P½P¾P¿PÀPÁPåPæPçPòPóP•QmRnRoR÷÷÷÷÷òòíííí»¶¶¶¶®®¶¶$a$gd0Vìgd0Vì2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd0Vìgdi˜gd
$a$gd1jÝÁPåPçPòPUQbQpRxR|R}RVVVV(V)V*V6VPXQXRXñâÐâÄâеÐâ«¡”ñ†u\JÄ;h0Vìh0VìOJPJQJ^J"h0Vìh0Vì6OJPJQJ]^J0h0Vìh0Vì56OJPJQJ\]^JmHsH h0Vìh0VìOJQJ^JmHsHh0VìOJQJ^JmHsHhéHkhi˜OJQJ^Jh0VìOJQJ^Jhi˜OJQJ^Jh0Vì5OJPJQJ\^Jh0VìOJPJQJ^J"hmÿh0Vì5OJPJQJ\^Jhmÿh0VìOJPJQJ^Jh0Vìh0Vì5OJQJ^JoRpR}R~R¿RÀRãR`SŒS½SáS'TŽTUUUSUßUVVVVúúúúúòòòòòòòòúúêêêêåågdi˜$a$gd0Vì
& Fgd0Vìgd0VìV(V)V*V5V6VŠV”W•WPXQXRX`XaXìXíXÚYÛY3Z4Z5Z6Z7ZÍÈÈÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ$a$gd0Vìgd0Vì2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd0VìRX\X_XaX¼XÀX3Z6Z7ZDZFZªZ­Z®Z·ZºZ½Z@\A\B\K\N\Q\ª\¯\°\¹\¼\¿\j^†^&_'_*_W_Z_c_f_i_عØîßîнбÐßîбÐîßîбÐîßîбÐîßîРtjÐîßîhÐUh0VìOJQJ^Jh0Vìh0VìOJQJ^Jh0VìOJQJ^JmH sH  h—Jãh0VìOJQJ^JmH sH  h0Vìh0VìOJQJ^JmH sH h0VìOJPJQJ^J%h0Vìh0Vì5>*OJPJQJ\^Jh0Vìh0VìOJPJQJ^Jh0Vì5OJPJQJ\^J"h0Vìh0Vì5OJPJQJ\^J(7ZEZFZªZ«Z¬Z­Z®Z¼Z½Zá[@\A\B\P\Q\ª\«\¬\­\¯\°\¾\¿\Î]i^j^÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷$a$gd0Vìj^†^ˆ^ž^Ÿ^»^×^Ø^'_)_*_V_W_X_Y_Z_h_i_¸ØkÙlٛÙÖÙÔÔÔÔÔÔÔÔÔËËËÃÃÃÃÃÃÃÃÃÃ$a$gd0Vì 7$8$H$gd0Vì+$d%d&d'd7$8$H$NÆÿOÆÿPÆÿQÆÿgd0VìModifiez encore une fois votre programme pour faire apparaître aléatoirement des objets dans le terrain de jeu et augmenter un score à chaque fois que l’utilisateur « mange » l’objet.
(Aléatoire : « srand(time(NULL)) ; » à appeler une fois au début du programme puis « rand()%x ; » à chaque fois que vous avez besoin d’un entier entre 0 et x-1, bornes comprises.

Vous ferez attention aux débordements mémoire.
Vous ferez valider chaque étape par votre chargé de TD/TP.










 Algorithmique / Programmation structurée





Frédéric Ravaut