La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Projet informatique : optimisation du déplacement d’un robot

Présentations similaires


Présentation au sujet: "Projet informatique : optimisation du déplacement d’un robot"— Transcription de la présentation:

1 Projet informatique : optimisation du déplacement d’un robot
Plan : Cahier des Charges Analyse structurée …………………………………………………….. page 2 Bête à corne ……………………………………………………………. page 3 Pieuvre ………………………………………………………………….. page 4 Graphe d’appel de sous-programme à sous-programme …………. page 5 Présentation des programmes ……………………………………….. page 6 Algorithmes (pseudo-code) Premier programme ……………………………………………………. page 7 Deuxième programme …………………………………………………. page 8 Code Premier programme ……………………………………………………. page 9 Deuxième programme

2 Cahier des charges Optimisation du déplacement d’un robot
Saisir la carte Saisir le point de départ et d’arrivé Déterminer le chemin optimal Imposer les contraintes Afficher la solution

3 Cahier des charges / Bête à corne
Robot Utilisateur Programme Pathfinding Optimiser le déplacement du robot

4 Cahier des charges / Pieuvre
Programme Pathfinding Robot Chemin F1 Obstacles C1 Contrainte de déplacement C3 Points de départ & d’arrivée C2 Chemin optimal F2 Utilisateur F1 : Trouver le chemin optimal F2 : Afficher la solution trouvée C1 : Eviter les obstacles C2 : Partir du point de départ et arriver au point d’arrivée C3 : Se déplacer en respectant la contrainte de déplacement

5 Graphe d’appel de sous-programme à sous-programme
Main Lire la carte Lire le point de départ & d’arrivée Vérifier que les points de départ & d’arrivée ne sont pas des obstacles Calculer le chemin optimal en respectant la contrainte de déplacement Afficher le résultat

6 Présentation des différents programmes
Premier programme : (Pas d’obstacles, ni de contrainte) Trouver un chemin quelconque du point de départ au point d’arrivé avec un déplacement 8 connexe, et afficher la position à tout instant Deuxième programme : (Chemin quelconque avec obstacles et contrainte) Trouver un chemin quelconque du point de départ au point d’arrivé avec une contrainte de déplacement et des obstacles, et afficher le résultat

7 Premier programme : Pseudo-code de l’algorithme
Lire carte, lire (x0,y0), lire (xa,ya), Entiers (x,y), x=x0, y=y0, i=0, j=0, Tant que x0≠xa faire, si x<xa alors x=x+1 sinon x=x-1 Afficher « les coordonnées sont (x, y0)», Tant que y0≠ya faire, si y<ya alors y=y+1 sinon y=y-1 Afficher « les coordonnées sont (x0, y)»,

8 Deuxième programme : Pseudo-code de l’algorithme
Int N(x,y)=abs(x-xa) +abs(y-ya); Tant que x!=xa & y!=ya faire { Tant que x!=xa faire { Si x<xa alors{ si matrice[y][x+1]=1 faire x++ sinon si N(x,y+ 1)<N(x,y-1) faire y++ sinon y— } Sinon { si matrice[y][x-1]=1 faire x-- Tant que y!=ya faire Si y<ya alors{ si matrice[x][y+1]=1 faire y++ sinon si N(x+1,y)<N(x-1,y) faire x++ sinon x— si matrice[x][y-1]=1 faire y--

9 Code premier programme
#include<stdio.h> #include<string.h> //Transposition de la carte dans une matrice// void main(void){ int i=0; int j=0; int a,b; int c; int matrice[128][128]; FILE *carte; carte=fopen("./carte2.txt","rb"); if (carte == NULL) printf("Le fichier existe pas\n"); while((c=fgetc(carte))!=EOF){ if(c=='\n'){ i=i++; j=0; printf("\n"); } else { if (c != 13) { matrice[i][j]=c-48; printf("%d ",matrice[i][j]); j++; //Entrer les coordonnées du point de départ// int xo; int yo; int xa; int ya; printf("Entrer l'abscisse du point de départ : "); scanf("%d",&xo); printf("Entrer l'ordonnée du point de départ : "); scanf("%d",&yo); printf("Entrer l'abscisse du point d'arrivé : "); scanf("%d« ,&xa); printf("Entrer l'ordonnée du point d'arrivé : "); scanf("%d",&ya); Code premier programme //Application de l'algorithme// int D=matrice[xo][yo]; int A=matrice[xa][ya]; int x=xo; int y=yo; int R=matrice[x][y]; while(x!=xa){ if(x<xa){ x++; } else{ x--; printf("La position du robot est : %d,R"); while(y!=ya){ if(y<ya){ y++; y--;

10 Code deuxième programme
#include<math.h> #include<stdio.h> #include<string.h> //Transposition de la carte dans une matrice// void main(void){ int i=0; int j=0; int a,b; int c; int matrice[128][128]; FILE *carte; carte=fopen("./carte2.txt","rb"); if (carte == NULL) printf("Le fichier existe pas\n"); while((c=fgetc(carte))!=EOF){ if(c=='\n'){ i=i++; j=0; printf("\n"); } else { if (c != 13) { matrice[i][j]=c-48; printf("%d ",matrice[i][j]); j++;

11 Code deuxième programme (suite)
//Entrer les coordonnées du point de départ// int xo; int yo; int xa; int ya; printf("Entrer l' abscisse du point de depart : "); scanf("%d",&xo); printf("Entrer l' ordonnee du point de depart : "); scanf("%d",&yo); printf("Entrer l' abscisse du point d'arrive : "); scanf("%d",&xa); printf("Entrer la ordonnee du point d'arrive : "); scanf("%d",&ya); //Application de l'algorithme// int x=xo; int y=yo; while(x!=xa && y!=ya){ while(x!=xa){ if(x<xa){ if(matrice[y][x+1]==0){if(abs(x-xa)+abs(y+1-ya)<abs(x-xa)+abs(y-1-ya)){y++;} else{y--;}} else{x++;} printf("La position du robot est : %d,%d \n",y,x); } while(y!=ya){ if(y<ya){ if(matrice[y+1][x]==0){if(abs(x+1-xa)+abs(y-ya)<abs(x-1-xa)+abs(y-ya)){x++;} else{x--;}} else{y++;} printf("La position du robot est : %d,%d \n",x);


Télécharger ppt "Projet informatique : optimisation du déplacement d’un robot"

Présentations similaires


Annonces Google