Está en la página 1de 2

Anne 2006-2007

Projet dinformatique

Algorithmique et Langage C
Tir dun canon1 I NFORMATIQUE

Sujet n3
Projet dinformatique
Tir dun canon 1
Directives
Chaque binme doit rendre un compte-rendu (5 pages au maximum + le listing en annexe) indiquant les
diverses solutions techniques retenues, les problmes rencontrs, les principaux modules programms, et aussi
une disquette contenant un excutable complet, pouvant tre lanc depuis la disquette, et des sauvegardes des
entres et des rsultats dans des fichiers texte.
1 Introduction
Il sagit de
1 concevoir
Introduction un logiciel qui simule de faon realiste le tir dun canon, et le bombardement
(recherche) dune cible fixe ou mouvante. On visualisera les diffrentes trajectoires du boulet sous la forme
dune image. Il sagit de concevoir un logiciel qui simule de faon raliste le tir dun canon, et le bombardement (re-
cherche) dune cible fixe ou mouvante. On visualisera les diffrentes trajectoires du boulet sous la forme dune
Vous devez proposer des types de donnes et des fonctions adaptes au cahier des charges ci-dessous, et
image.
concevoir des menus qui proposer
Vous devez sappuient sur de
des types cesdonnes
fonctions.
et des fonctions adapts au cahier des charges ci-dessous, et
concevoir des
Quand plusieurs menussont
choix qui sappuient
possibles,sur ces
onfonctions.
vous conseille de proposer (et mettre en uvre) ces diff-
Quand plusieurs choix sont possibles, on vous conseille de proposer (et mettre en uvre) ces diffrentes
rentes solutions, en justifiant leur choix et en les comparant, des points de vue de la mise en uvre et des
solutions, en justifiant leur choix et en les comparant, des points de vue de la mise en uvre et des facili-
facilits/limitations quils
ts/limitations imposent
quils imposent lutilisateur.
lutilisateur. Tous les programmes crits doivent tre lisibles et bien
comments, et le Tout les programmes
logiciel doit trecrits doivent
facile ettre lisibles etbien
agrable comments,
utiliser pouretunle logiciel doit tre
utilisateur facile et(autre
novice agrableque vous) !
utiliser pour un utilisateur novice (autre que vous) !
Boulet

V0


Canon
Cible Impact

F IG . 1 Tir dun canon


F IGURE 1 Tir dun canon
2 Pas de cible
Dans un premier temps, on simulera la trajectoire du boulet pour un tir du canon. Le tir est paramtr par :
2 Pas de cible
La vitesse V0 du boulot la sortie du canon.
Langle entre le sol et la verticale.
Dans un premier
1 temps,
sujet propos on simulera
par CHARLES S OUSSEN la trajectoire du boulet pour un tir du canon. Le tir est paramtr
par :
La vitesse V0 du boulot la sortie du canon.
LangleT.entre
Rodet le sol et la verticale. Le 21 juillet 2006

Dautres paramtres peuvent tre dclars constants, ou ajouts aux paramtres ci-dessous dans la des-
cription du tir ( vous de voir. . .).
crire un programme qui permette de simuler la loi physique du tir, en calculant la trajectoire du boulet
jusqu son impact avec le sol. On sauvegardera le rsultat dans un fichier image (voir annexe), de faon
pouvoir visualiser la trajectoire.

3 Une cible fixe


Cette fois, le tireur a pour but de bombarder une cible fixe une certaine distance (inconnue du tireur).
Proposer un algorithme qui permette datteindre la cible de faon efficace (le nombre de tirs effectus doit
tre rduit !). Avant de programmer, dfinissez un type de donne adapt pour la cible, et les prototypes des
fonctions ncessaires.
Vous crirez un menu permettant une interface avec lutilisateur, et tendrez la fonction de sauvegarde
du paragraphe 2 la sauvegarde simultane de toutes les trajectoires dans une (seule) image.
Dans un deuxime temps, lensemble des trajectoires sera mmoris dans votre programme sous la
forme dun tableau de listes chanes.
1. Sujet propos par Charles S OUSSEN
le langage C 2

4 Une cible mouvante


tendre le programme au cas o la cible est mouvante (un renard poursuivi par un chasseur). Proposer
une ou plusieurs lois de dplacement automatique de la cible, et un algorithme efficace permettant de la
capturer.
Ce cahier des charges est indicatif et minimaliste. Vous pouvez (devez) lenrichir comme vous le sou-
haitez. Le programme doit rester modulaire, afin de pouvoir voluer facilement.

Annexe : traitement dimages


On pourra faire la visualisation des trajectoires en crant un fichier image. Une image 2D de taille
M N est reprsente par un tableau 2D dont les lments ont pour valeur les niveaux de gris des pixels.
Pour dfinir une image en noir et blanc, on utilisera le tableau suivant :

unsigned char I[M][N];


o M et N reprsentent le nombre de pixels en hauteur et en largeur. La donne I[0][0] est le niveau
de gris du pixel situ en haut gauche de limage, I[0][1] est celui du pixel situ immdiatement sa
droite, etc. et I[0][N-1] est le niveau de gris du pixel situ dans le coin en haut et droite. De mme, les
pixels I[1][j] forment la deuxime ligne de limage en partant du haut, etc. et les pixels I[M-1][j]
forment la ligne la plus basse de limage. Question : Sur combien de valeurs de niveaux de gris est cod
chaque pixel de limage ?

Codage
Les instructions suivantes permettent de construire un fichier image au format PGM (pour Portable
Grayscale Map) partir dun tableau 2D.

FILE *f;
unsigned int i,j;
unsigned char I[M][N]; /*tableau remplir*/

f = fopen("viewport.pgm","w");
fprintf(f,"P2\n#\n%d %d\n255\n",MAXX, MAXY);
for (i=0; i<M; i=i+1){
for (j=0; j<N; j=j+1){
fprintf(f,"%d ",I[i][j]);
}
fprintf(f,"\n");
}
fclose(f);

P2 indique que limage est code en niveaux de gris, et que chaque valeur de niveau de gris est code
en ASCII. Les lignes commenant par # sont ignores. Limage cre est le fichier viewport.pgm . Lors
de la visualisation, les pixels sombres correspondent au niveaux de gris de valeur nulle ou proche de zro,
les pixels les plus clairs correspondent la plus grande valeur des niveaux de gris (quelle est cette valeur
maximale ?).

También podría gustarte