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, cest 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 dexécution (charge processeur)
Rappelez-vous, ce qui nous intéresse ici cest : 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 leau.
But : échanger le contenu des 2 verres. Comment vous y prenez-vous ?
SHAPE \* MERGEFORMAT
Situation de départ situation darrivé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 à lexo 102 ?)
Exercice 105
La RATP vous demande de laider à 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 lanalyse 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 lalgorithme ou lorganigramme 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 lautomate dispose de boissons en nombre suffisant.
Exercice 202
Problème : Programmer un automate distributeur de billets de banque
Hypothèses : A vous dimaginer
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 lorganigramme correspondant.
Exercice 204
Problème : rechercher le minimum de 10 valeurs.
Hypothèses :
les valeurs seront entrées au clavier par lutilisateur,
le type des valeurs est entier
TD-TP 3 Algorithme et organigramme, traces dexécution
Exercice 301
Problème : trier un tableau de 5 entiers.
En plus de lanalyse chrono-desc.(ACD), écrivez lalgorithme ou lorganigramme et faites tourner votre programme à la main en listant les ressources et en fournissant la trace dexécution simulant lexécution de votre code.
Ex : nb1 nb2 nb3
4 8 2
4 2 8 la trace dexécution montre lévolution des variables
2
Exercice 302
Ecrivez lanalyse 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 lACD, puis un algorithme et un organigramme qui demande un entier et indique sil est pair ou impair.
Soyez très rigoureux dans lindentation de vos algorithmes !
Lexercice 1 du sujet suivant vous montre les erreurs potentielles dinterprétation si lindentation nest pas respectée.
Rappel : en labsence de bloc debut-fin ou {-} les boucles et les tests ne portent que sur linstruction qui suit immédiatement.
TD-TP 4 Indentation, trace dexécution, logique, opération
Exercice 401
Vous savez que la machine ne se préoccupe pas de lindentation 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 den comprendre limportance de respecter une indentation correcte dans vos programmes.
Rappelez-vous que sans bloc, la machine ne conditionne ou ne répète quune 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 dexécution de X, Y, et Z si lon 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 danalyser des résultats dexamen, 4 variables permettent de décrire lenvironnement :
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 quelles 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 lun 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 lun des deux types
Exercice 403
Donnez lanalyse chrono-descendante et lalgorithme qui détermine le nombre de valeurs distinctes parmi trois variables à faire saisir par lutilisateur. (ex : 8, 8 et 8 saisi par lutilisateur 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 lACD et lalgorithme dun programme calculant les solutions dune équation du second degré dont les coefficients sont saisis par lutilisateur.
Décrivez les ressources.
Faites tourner votre solution à la main sur des exemples en indiquant la trace dexécution listant lévolution du contenu de chacune des ressources. Vous penserez à tous les cas possibles.
TD-TP 5 Composants dun ordinateur et bases numériques
Exercice 501 Présentation de lordinateur
Listez les composants internes et externes dun 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 lensemble 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 linformation
Combien dinformations 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 lECE (environ 1400), combien de bits avez-vous besoin ? doctets ?
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 lenvironnement
Le blog informatique : Les tutoriaux, les polys, les sujets de TD-TP
Le forum (exemple de topic : Vista à lECE)
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 lindique, cest 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 linstaller sur vos ordinateurs personnels.
Cest 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 lECE ou sur lordinateur 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 dajouter des fichiers dans votre projet.
Je vous conseille de créer vos différents répertoires de travail sur Z : avant douvrir CodeBlocks et en leur donnant également un nom explicite vous permettant den 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 davoir réussi !!!
1. Programmez laffichage du célèbre « Bonjour le Monde !!! » en ajoutant dans le template,
printf(« Bonjour le monde !!! »); // sil ny 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 lexécution du programme précédent en supprimant certaines parties du programme pour voir les différents messages derreur 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 lanalyse descendante, lalgorithme, lorganigramme puis le programme C qui permet à lutilisateur 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 lanalyse descendante, lalgorithme, lorganigramme puis le programme C qui permet de convertir caractère par caractère, des minuscules en majuscules. Chaque caractère est saisi par lutilisateur 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 linformation dans la table dinterpré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 lanalyse descendante, lalgorithme ou lorganigramme puis le programme C permettant de déterminer si le caractère entré par lutilisateur 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 lanalyse descendante, lalgorithme ou lorganigramme permettant de déterminer si une valeur saisie par lutilisateur est paire ou non. Un multiple de 5 ?
Exercice 614
Ecrivez lanalyse descendante, lalgorithme ou lorganigramme puis le programme C permettant de décomposer un nombre saisi par lutilisateur 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 lalgorithme permettant de saisir puis afficher un tableau de 10 nombres entiers.
Ecrivez lanalyse descendante puis lalgorithme et lorganigramme de la recherche du minimum et du maximum de ce tableau.
Ecrivez lanalyse descendante puis lalgorithme et lorganigramme du tri en ordre croissant de ce tableau.
Exercice 702
Ecrire un programme C qui convertit un entier naturel en chiffres romains, en utilisant lancienne 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 lutilisateur.
Exemple : hauteur=4
*
***
*****
***********
****
****
****
*******
*****
***
*
*
***
*****
*******
TD-TP 8 Image, histogramme et binarisation
Lobjectif de ce TP est de manipuler le tableau de valeurs correspondant à chaque point (appelé PIXEL) dune image. Vous ne manipulerez pas une vraie image ; nayant pas doutil 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 laspect rectangulaire de la matrice.
Exercice 802
Comme dans lexercice sur les statistiques des notes du TD-TP 6 bis, lhistogramme dune 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 limage contient de pixels de niveau de gris 0 et à stocker cette valeur dans la case 0 du tableau histogramme, puis combien limage 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 quil calcule lhistogramme de limage après son remplissage aléatoire.
Affichez cet histogramme de manière lisible à lécran.
Exercice 803
La binarisation dune image consiste, dans une image secondaire afin de ne pas modifier limage originale, à mettre à 0 tous les pixels de limage originale inférieurs à une valeur seuil entrée par lutilisateur ; et à mettre à 255 tous les pixels de limage 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 limage binarisée en respectant laspect de limage.
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 davoir, dans la case utile le caractère \0 qui marque la fin de la chaîne.
Ce caractère spécifique du langage C nest 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 lutilisateur
de décrypter une chaîne de caractère cryptée en appliquant un décalage circulaire inverse à partir dune valeur entrée par lutilisateur.
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 dexé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 à lutilisateur et vous mettre en attente dévènements.
Lorsquun é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 à laction souhaitée par lutilisateur.
Exercice 1001
Ecrivez un programme C affichant un X qui part du bord gauche de lécran et qui se déplace seul jusquau 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. Laffichage de chaque étape du déplacement du X correspond à laffichage 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 lorsquil est sorti à droite.
Exercice 1003
Modifiez encore ce programme pour que lutilisateur 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 dautres touches).
Le X réapparaîtra en haut ou en bas, à gauche ou à droite, à lopposé de sa sortie de lécran.
Exercice 1004
Ajoutez une bordure à votre cadre de jeu pour observer leffet 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
5OJQJh
OJQJh\yOJQJ^Jh#7/OJQJ^JhVRT5OJQJ^JhË_hTp5OJQJ^JhË_h#7/5OJQJ^JhË_hå¤OJQJ^JhË_h#7/OJQJ^JhË_hÖGeOJQJ^Jh\yhÖGe5OJQJ^Jh\yh#7/5OJQJ^Jh\yh+G5OJQJ^Jh\yhå¤5OJQJ^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~³¼½¾À?HIJLîï
?
@
I
J
K
M
®
é
ë
ô
õ
ö
ø
G\bôëßÖË¿ßë¿´¿ßë¿Ë¥Ë¥¥Ë´Ë¿ßë¿´y´¿ßë¿´mdh\y6OJQJh\yh\y6OJQJh
OJQJjhË_hTpOJQJU(jhË_h#7/OJQJUmHnHujhË_h#7/OJQJUhË_hTpOJQJhVRThTp6CJ]hË_h#7/OJQJh#7/6CJ]hVRTh\y6CJ]h,[?6CJ]hVRTh#7/6CJ]&
@
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\y6CJ]hjUhf{45OJQJh\y5OJQJhf{45OJQJhjUhjU5OJQJhjUOJQJhVRTOJQJ"hjUhjU5CJOJQJ\aJ"hjUh\y5CJOJQJ\aJhË_h\yOJQJh\yh\y5OJQJ^JhË_hf{4OJQJh\yOJQJh\yhTp6OJQJh\y6OJQJh,[?6OJQJèøùhijwx³´ [\|}÷÷òòòòíòäßäÖíßäßääíòÍÍÍÅ^Ågd,[?Å^Ågd\ygdVRTÅ^ÅgdVRTgdVRTgd\y$a$gdjUstuwx´¾ IZ\fi{}@AJKLMNOôëßÔƻƻ³»Ô§ë§»Æ»³»Æ»³»ßôëßynßôëßÔhË_h,[?OJQJh,[?h,[?OJQJ^Jh,[?h,[?5OJQJ\^Jh\yOJQJhVRT6CJ]hVRThVRT6CJ]hVRTOJQJhË_hVRTOJQJhË_hVRT5OJQJ\hË_h\yOJQJhVRTh\y6CJ]h,[?6CJ]hVRThjU6CJ]'@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{47OJQJhûW¸hf{4OJQJS*hjUhf{45OJQJhf{4hf{4h,[?6CJ]hf{46CJ]hË_h,[?OJQJhf{45OJQJ^JhVRThf{45OJQJ^Jh}öOJQJh,[?OJQJh,[?hf{45OJQJ^Jhf{4OJQJhË_hf{4OJQJhË_hf{45OJQJ\%(56`aABT[¬KL¼½¾¿úõìõààààààõõúÛìõÛúÖÍÛÛÈgd\yÅ^ÅgdH`¼gdH`¼gd,[?$Å^Åa$gdf{4Å^Ågdf{4gdf{4gd,[?XYZ\]«¬µÃÑãJKLT`¾¿øùøìøàøÕøÌÀ³©©©wÌng³³\PDh}öh\y5OJQJh}öh}ö5OJQJhË_h\yOJQJhH`¼hH`¼h,[?6CJ]h,[?hH`¼OJQJ^Jh,[?hf{4OJQJ^Jhf{4hf{45OJQJ^Jh}öOJQJ^Jhf{4OJQJ^Jh,[?h,[?OJQJ^Jh,[?h,[?6CJ]hf{46CJ]hË_hf{4OJQJhûW¸hf{4OJQJS*hjUhf{47OJQJhf{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
5OJQJ^Jh
hVRT5OJQJ^JhVRTOJQJ^Jh\yOJQJ^JhË_h\y5OJQJ^JhVRThVRT6CJ]h,[?6CJ]h}ö6CJ]hVRTh\y6CJ]hË_h\yOJQJ^Jhð|5OJQJ^JhVRT5OJQJ^JhVRTh\y5OJQJ^Jh}ö5OJQJ^Jh}öh\y5CJOJQJ^Jxy ¤²¹½ÆÍäëúÿ$',;FJSbv
¡¢£ÏáDE\]tuõéõÝõÝõÝõÝõÝõÝõÝõÝÑÝõÝõÝõÝõÝõÝõÝõÝȼ¯¥¯¥¯¥¯¥¯hË_h\y6CJ]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$$IfFÖÖ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\y6CJ]aJhVRT6CJ]aJh,[?6CJ]aJh}ö6CJ]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,[?6CJ]aJh0Vì6CJ]aJhóYEhóYE6CJ]aJ h\y5CJOJQJ\^JaJhJ«5OJQJ^JhóYEhóYE5OJQJ^JhóYEh\y5OJQJ^JhË_hTpOJQJhÑA(h9§OJQJ^Jh
h9§OJQJ^Jh9§OJQJ^JhË_h\yOJQJh9§6CJ]aJhË_h9§6CJ]aJh9§OJQJ.#/#0#M#N#O#/$0$Á$Â$%%%%%%%&%'%%%%%ï%òçòÓÆ»°»¥»çqcXMBM:Mh6DOJQJhË_hå¤OJQJhË_htyOJQJhË_hÆ}çOJQJhóYEhàr6CJ]aJhóYEhå¤6CJ]aJh,[?6CJ]aJh0Vì6CJ]aJhË_hTpCJOJQJ\aJhË_h%9ÿOJQJhË_hTOJQJhË_høOJQJhË_h%9ÿOJQJ^J&hóYEh%9ÿ5CJOJQJ\^JaJhóYE6CJ]aJhóYEhóYE6CJ]aJ%&%'%%%¦%§%¹%º%×%Ø%î%ï%&&&&V&W&^&w&&©&Ô&úøðëëëëëëëëëëøúæáá×ÌÌÌÌ
Á¤x^Ágdk
&F¤xgdkgdtygdóYEgdå¤$a$gdÿOgdóYEï%&&&&&&&&Õ&Ö&ß&à&á&ã&õ&ú&û&ü&' 'û'(N(O(P(V(õêÜÑÆ»°©êõÑÆ»»©õwõwõi^PhóYEh¼dq5OJQJ^JhË_6CJ]aJhóYEhË_6CJ]aJhË_hÿOOJQJhì6CJ]aJhóYEhóYE6CJ]aJhóYEhì6CJ]aJhóYEhóYEhty6CJ]aJhóYE6CJ]aJh,[?6CJ]aJh0Vì6CJ]aJhóYEhty6CJ]aJhË_htyOJQJhË_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ìÁ^ÁgdtyV(W(Z(k(~((((¡(¤(¦(§(¨(Á(Â(Ã(Ì(Î(Ð(Ñ(ë(õ(.)9):)?)w)y)z)))))°)³)ôæôØæÑøÃô´°°{n{dWdWdWdWdW{n{dWdhÉ9MhÉ9MOJQJ^JhÉ9MOJQJ^JhÉ9M5OJQJ\^Jh|nhÉ9M5OJQJ\^J&h|nhÉ9M5CJOJQJ\^JaJ hÉ9M5CJOJQJ\^JaJhÉ9Mh¼dqhÉ9M5OJQJ^Jh¼dqh¼dq5OJQJ^Jh%9ÿh¼dqh=\¥h¼dq5OJQJ^JhóYEh¼dq5OJQJ^Jh¼dq5OJQJ^J"Ð(Ñ().)L)w)x)y)z)))³)¿)É)Ð)Û)â)ì)ù)û)ü)ý)
**?*@*R*b*úòòòòúúúúúúêêêêêêêúúúúúúúúú
&FgdÉ9M
&F
gdÉ9MgdÉ9M³)¾)¿)È)É)Ï)Ð)Ú)Û)â)ã)ë)ø)û)ü)ý)* *
**Ú*Û*+
+++)+*+++?+©+®+ê+,,, ,
,,,%,',óéóéóéóéóéóéóéóÙÌÙéóȺ¯ºÈyoéoéoyÈÈoh¼dqOJQJ^Jh²4ÿh¼dqOJQJ^Jh¼dq&h|nh¼dq5CJOJQJ\^JaJ h¼dq5CJOJQJ\^JaJhÉ9M5OJQJ^JhÉ9MhÉ9M5OJQJ^JhÉ9MhÉ9M5OJQJ\^Jh|nhÉ9M5OJQJ\^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¼dq5CJOJQJ\^JaJh²9ÍOJQJ^Jh ïh¼dqOJQJ^J!h¼dq56>*OJQJ\]^Jh¼dq56OJQJ\]^Jh ïh¼dq5OJQJ^Jh|nh¨OJQJ^Jh¨OJQJ^Jh¼dqOJQJ^Jh¼dq5OJQJ\^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úúúíúèúúúúúúúúúíúúúúúèèèèèègdz
-DMÆ
ÿææægd¼dqgd¼dqÜ2Ý2Þ2ç2é2ê2ë233333@3J33 3Ú3Û3Ü3Ý3ß3í3î3ï3ð3ù3ü3ý3þ34V4W4ìâÒŸҮâ®â®â®â®â¡ìâ~n¸n¡bYbhùà5OJQJhzhz5OJQJh|nh¼dq5OJQJ\^Jh|nhzOJQJ^JhùàOJQJ^Jhùàh²9Íh¼dqh|nh¼dqOJQJ^JhzOJQJ^Jhùà5OJQJ\^Jhz5OJQJ\^Jh|nhz5OJQJ\^Jh¼dqOJQJ^J&h|nh¼dq5CJOJQJ\^JaJW4X4[4f4|44Ù4ú4û4ü4555%515G5K5°5¾5Þ5à5â5ë5í5î5ï5ð5Ñ6ì6x7¶7·7¸7¹7Å7øîá×áî×îáøÌøÌøÌøÌÄÌî׶« ¶}pchùà5OJQJ\^Jh|nh²9ÍOJQJ^Jh
h¼ÝOJQJh¼ÝOJQJ^Jh¼dqOJQJ^Jh¼dqhùà6CJ]aJhz6CJ]aJh|nh¼dq6CJ]aJh¼ÝOJQJh
hzOJQJhùàOJQJ^Jh|nhzOJQJ^JhzOJQJ^JhzOJQJ"ü4G5H55Þ5ß5à5á5â5ï5ð566¶6í677M7w7x7¶7·7¸7¹7Æ7Ç7úúúúõõõõðõõèèèèèèèõãõõõõõgd¼Ý
&Fgd¼dqgd¼dqgd¼dqgdzÅ7Æ7Ç7Ï7888"88
88888»9á9ã9ä9å9ñ9ò9ó9::ðãÖÌÖ̵̿««pUpK«ðãÌ>hM)5OJQJ\^JhùàOJQJ^J5hiB*CJOJPJQJ\]^JaJnHphÿtH;hUH¥hUH¥B*CJOJPJQJ\]^JaJnHphÿtHh|nhUH¥5OJQJ\^JhUH¥5OJQJ\^Jh²9ÍOJQJ^JhUH¥OJQJ^Jh+"ÏhM)OJQJ^JhM)OJQJ^Jh|nhM)OJQJ^Jh|nh¼dqOJQJ^Jh|nh¼dq5OJQJ\^JÇ788
88888ã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Í6CJ]aJh0VìOJQJ^Jh¨OÍOJQJ^Jh+"Ïh¨OÍOJQJ^Jh+"Ïh¨OÍ5>*OJQJ^Jh+"Ïh¨OÍ6CJ]aJ2C3CªCØCÙCûCjDlDnDDD¶D¸DHFJFGGG®G°GGHÄHÅHÙHÚHÜHàHúúúúúúúúõúúúúúúúðõúúúúúúää$$Ifa$gd¨OÍgd1jÝgd¨OÍgd¨OÍàHæHîHóHøHýHIIIIIIII#I+Ióóóóóóóóóóóóóóó$$Ifa$gd¨OÍ+I,I-I.I/I\I]I^IJZR$a$gd1jÝ2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd1jÝgd1jÝmkdç$$IfTFÖFÿnÜ$mmn
tàöH%6ööÖÿÿÿÖÿÿÿÖÿÿÿÖÿÿÿ4Ö4Ö
laöyt¨OÍT\IJJJ¢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+"ÏhiOJQJ^JhiOJQJ^Jh1jÝOJQJh1jÝh£©h1jÝ5OJQJ^JhP!úh1jÝ5OJQJ^Jh1jÝOJQJh
h1jÝ6CJ]aJhEh1jÝOJQJ^Jh
h1jÝh+"Ïh1jÝ6CJ]aJh¨OÍ6CJ]aJh1jÝ6CJ]aJhrz\h1jÝOJQJ^Jh1jÝOJQJ^Jh1jÝOJQJ^JJJJ¦J§JVKWK¬KK®K¯K¼K½KqLrLËMÌM'N(NNÍ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óPQmRnRoR÷÷÷÷÷òòíííí»¶¶¶¶®®¶¶$a$gd0Vìgd0Vì2$$d%d&d'd-DMÆ
ÿæææNÆÿOÆÿPÆÿQÆÿa$gd0Vìgdigd
$a$gd1jÝÁPåPçPòPUQbQpRxR|R}RVVVV(V)V*V6VPXQXRXñâÐâÄâеÐâ«¡ñu\JÄ;h0Vìh0VìOJPJQJ^J"h0Vìh0Vì6OJPJQJ]^J0h0Vìh0Vì56OJPJQJ\]^JmHsH h0Vìh0VìOJQJ^JmHsHh0VìOJQJ^JmHsHhéHkhiOJQJ^Jh0VìOJQJ^JhiOJQJ^Jh0Vì5OJPJQJ\^Jh0VìOJPJQJ^J"hmÿh0Vì5OJPJQJ\^Jhmÿh0VìOJPJQJ^Jh0Vìh0Vì5OJQJ^JoRpR}R~R¿RÀRãR`SS½SáS'TTUUUSUßUVVVVúúúúúòòòòòòòòúúêêêêåågdi$a$gd0Vì
&Fgd0Vìgd0VìV(V)V*V5V6VVWWPXQXRX`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ªZZ®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 hJãh0VìOJQJ^JmH sH h0Vìh0VìOJQJ^JmH sH h0VìOJPJQJ^J%h0Vìh0Vì5>*OJPJQJ\^Jh0Vìh0VìOJPJQJ^Jh0Vì5OJPJQJ\^J"h0Vìh0Vì5OJPJQJ\^J(7ZEZFZªZ«Z¬ZZ®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 lutilisateur « mange » lobjet.
(Aléatoire : « srand(time(NULL)) ; » à appeler une fois au début du programme puis « rand()%x ; » à chaque fois que vous avez besoin dun 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