A voir également:
- Code erroné
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
5 réponses
abdel c'est un programme qui se base sur la gestion des piles le curseur ne bouge pas il doit avancé en laissant sa trace
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oki oki
voila mon code
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct
{
int pil[40];
int sommet;
int x;
int y;
} piles;
piles pile;
int empiler(int element)
{
if(element!=0)
{
if(pile.sommet<40)
{
pile.pil[pile.sommet]=element;
pile.sommet++;
return 1;
}
else
{
printf("la pile est pleine ");
return 0;
}
}
}
int desempiler()
{
int element;
if(pile.sommet>0)
{
pile.sommet--;
element=pile.pil[pile.sommet];
return element;
}
else
{
printf("la pile est vide");
return 0;
}
}
void echeles ()
{
int i;
int x=18,y=5;
for(i=0; i<10; i++,x--,y++)
{
gotoxy(x,y);
printf("/-/");
}
for(x=19,y=5,i=0; i<10; i++,x++,y++)
{
gotoxy(x,y);
printf("%c-%c",92,92);
}
for(x=38,y=5,i=0; i<10; i++,x--,y++)
{
gotoxy(x,y);
printf("/-/");
}
for(x=39,y=5,i=0; i<10; i++,x++,y++)
{
gotoxy(x,y);
printf("%c-%c",92,92);
}
}
void avant()
{
int x,y,pas,t1=0,t2=0,t3=0,indic,i;
echeles();
gotoxy(pile.x,pile.y);
textcolor(YELLOW);
cprintf("%c%c%c",219,219,219);
do
{
gotoxy(20,20);
printf("saisir le nombre de pas");
scanf("%d",&pas);
indic=empiler(pas);
if(indic==1)
{
echeles();
pile.x=pile.x+pas;
i=0;
while(i<pas)
{
if((pile.x>9 && pile.x<20) ||(pile.x>29 && pile.x<40) )
{
for(; i<pas && pile.y>=5 ; i++)
{
pile.y--;
}
for(; i<pas && pile.y<5; i++)
{
pile.y++;
}
}
else
{
for(; i<pas && pile.y<5 ; i++)
{
pile.y--;
}
for(; i<pas && pile.y>=5 ; i++)
{
pile.y++;
}
}
}
}
clrscr();
if(pile.x>17 && pile.x<=27)
{
if(t1==0)
{
pile.x++;
t1=1;
}
}
if(pile.x>27&& pile.x<=37)
{
if(t2==0)
{
pile.x++;
t2=1;
}
}
if(pile.x>37)
{
if(t3==0)
{
pile.x++;
t3=1;
}
}
x=pile.x;
y=pile.y;
echeles();
gotoxy(x,y);
textcolor(YELLOW);
cprintf("%c%c%c",176,176,176);
getch();
}
while(pas!=0 && pile.x<50);
}
void recul()
{
int pas ,i=0,a,k,t1,t2,t3,x,y;
printf("saisir le nombre de pas");
scanf("%d",&a);
for(i=0; i<a; i++)
{
pas=desempiler();
if(pas!=0)
{
echeles();
pile.x=pile.x-pas;
k=0;
do
{
if((pile.x>19 && pile.x<31) ||(pile.x>39 && pile.x<50) )
{
for(; i<pas && pile.y>=5 ; i++)
{
pile.y--;
}
for(; i<pas && pile.y<5; i++)
{
pile.y++;
}
}
else
{
for(; i<pas && pile.y<5 ; i++)
{
pile.y++;
}
for(; i<pas && pile.y>=5 ; i++)
{
pile.y--;
}
}
clrscr();
if(pile.x>17 && pile.x<=27)
{
if(t1==0)
{
pile.x--;
t1=1;
}
}
if(pile.x>27&& pile.x<=37)
{
if(t2==0)
{
pile.x--;
t2=1;
}
}
if(pile.x>37)
{
if(t3==0)
{
pile.x--;
t3=1;
}
}
x=pile.x;
y=pile.y;
echeles();
gotoxy(x,y);
textcolor(YELLOW);
cprintf("%c%c%c",176,176,176);
getch();
}
while(i<pas);
}
}
getch();
}
int main()
{
pile.x=9;
pile.y=14;
pile.sommet=0;
avant();
recul();
return 0;
}
on demande a l'utilisateur combien de pas veut il avancé on vérifie si on ai pas arrivé a la fin on empile et aussi pour desemplier mais suivant l'ordre des piles si on empile A B C D on desempile D C B A j'ai tjrs des blems le curseur se déplace sans orientation
voila mon code
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct
{
int pil[40];
int sommet;
int x;
int y;
} piles;
piles pile;
int empiler(int element)
{
if(element!=0)
{
if(pile.sommet<40)
{
pile.pil[pile.sommet]=element;
pile.sommet++;
return 1;
}
else
{
printf("la pile est pleine ");
return 0;
}
}
}
int desempiler()
{
int element;
if(pile.sommet>0)
{
pile.sommet--;
element=pile.pil[pile.sommet];
return element;
}
else
{
printf("la pile est vide");
return 0;
}
}
void echeles ()
{
int i;
int x=18,y=5;
for(i=0; i<10; i++,x--,y++)
{
gotoxy(x,y);
printf("/-/");
}
for(x=19,y=5,i=0; i<10; i++,x++,y++)
{
gotoxy(x,y);
printf("%c-%c",92,92);
}
for(x=38,y=5,i=0; i<10; i++,x--,y++)
{
gotoxy(x,y);
printf("/-/");
}
for(x=39,y=5,i=0; i<10; i++,x++,y++)
{
gotoxy(x,y);
printf("%c-%c",92,92);
}
}
void avant()
{
int x,y,pas,t1=0,t2=0,t3=0,indic,i;
echeles();
gotoxy(pile.x,pile.y);
textcolor(YELLOW);
cprintf("%c%c%c",219,219,219);
do
{
gotoxy(20,20);
printf("saisir le nombre de pas");
scanf("%d",&pas);
indic=empiler(pas);
if(indic==1)
{
echeles();
pile.x=pile.x+pas;
i=0;
while(i<pas)
{
if((pile.x>9 && pile.x<20) ||(pile.x>29 && pile.x<40) )
{
for(; i<pas && pile.y>=5 ; i++)
{
pile.y--;
}
for(; i<pas && pile.y<5; i++)
{
pile.y++;
}
}
else
{
for(; i<pas && pile.y<5 ; i++)
{
pile.y--;
}
for(; i<pas && pile.y>=5 ; i++)
{
pile.y++;
}
}
}
}
clrscr();
if(pile.x>17 && pile.x<=27)
{
if(t1==0)
{
pile.x++;
t1=1;
}
}
if(pile.x>27&& pile.x<=37)
{
if(t2==0)
{
pile.x++;
t2=1;
}
}
if(pile.x>37)
{
if(t3==0)
{
pile.x++;
t3=1;
}
}
x=pile.x;
y=pile.y;
echeles();
gotoxy(x,y);
textcolor(YELLOW);
cprintf("%c%c%c",176,176,176);
getch();
}
while(pas!=0 && pile.x<50);
}
void recul()
{
int pas ,i=0,a,k,t1,t2,t3,x,y;
printf("saisir le nombre de pas");
scanf("%d",&a);
for(i=0; i<a; i++)
{
pas=desempiler();
if(pas!=0)
{
echeles();
pile.x=pile.x-pas;
k=0;
do
{
if((pile.x>19 && pile.x<31) ||(pile.x>39 && pile.x<50) )
{
for(; i<pas && pile.y>=5 ; i++)
{
pile.y--;
}
for(; i<pas && pile.y<5; i++)
{
pile.y++;
}
}
else
{
for(; i<pas && pile.y<5 ; i++)
{
pile.y++;
}
for(; i<pas && pile.y>=5 ; i++)
{
pile.y--;
}
}
clrscr();
if(pile.x>17 && pile.x<=27)
{
if(t1==0)
{
pile.x--;
t1=1;
}
}
if(pile.x>27&& pile.x<=37)
{
if(t2==0)
{
pile.x--;
t2=1;
}
}
if(pile.x>37)
{
if(t3==0)
{
pile.x--;
t3=1;
}
}
x=pile.x;
y=pile.y;
echeles();
gotoxy(x,y);
textcolor(YELLOW);
cprintf("%c%c%c",176,176,176);
getch();
}
while(i<pas);
}
}
getch();
}
int main()
{
pile.x=9;
pile.y=14;
pile.sommet=0;
avant();
recul();
return 0;
}
on demande a l'utilisateur combien de pas veut il avancé on vérifie si on ai pas arrivé a la fin on empile et aussi pour desemplier mais suivant l'ordre des piles si on empile A B C D on desempile D C B A j'ai tjrs des blems le curseur se déplace sans orientation