Bjr @ tous, voila j'ai un projet d'info à réaliser, on doit en fait réaliser une machine de Turing...
Bref, on écrire sur une fenêtre graphique une table de transition qui comporte 9 lignes avec sur chacune delle 5 caractères correspondant à letat lu, le déplacement de la tete de lecture de lecture etc...
Mon prob est que je n'arrive pas à introduire des caractères : il me met "cannot convert char[2] to char" lorsque je met les caractères entre " et si je les met entre ' il ne me les écrit pas, mais m'écrit les numéros correspondants aux lettres référencés dans le code ASCII...
Donc est ce que qq'un peut m'aider svp ?
voici mes structures et fonctions :
typedef struct
{
double posX;
double posY;
char carac;
}caze;
void dessinercaze(caze z)
{
F.SetPen(BLACK,1);
F.SetBrush(WHITE);
F.DrawRectangle(z.posX,z.posY,z.posX+30,z.posY+30);
F.DrawInteger(z.posX+10,z.posY+6,z.carac);
}
void dessiner_caze(double posX,double posY)
{
int i,j;
i=j=0;
do
{
caze z={posX+i,posY,1};
dessinercaze(z);
i=i+29;
j++;
}
while (j!=23);
}
typedef struct
{
char etat_courant;
char symbole_lu;
char symbole_ecrit;
char deplacement;
char etat_suivant;
}transition;
void afficherligne(double posX,double posY,transition z)
{
F.DrawInteger(posX,posY,z.etat_courant);
F.DrawInteger(posX+40,posY,z.symbole_lu);
F.DrawInteger(posX+100,posY,z.symbole_ecrit);
F.DrawInteger(posX+140,posY,z.deplacement);
F.DrawInteger(posX+180,posY,z.etat_suivant);
}
void dessinertransition(int posX,int posY,transition table[])
{
int i,b;
i=b=0;
F.SetPen(BLACK,1);
F.SetBrush(YELLOW);
F.DrawRectangle(posX,posY,posX+220,posY+280);
do
{
afficherligne(posX+10,posY+b+5,table[i]);
b=b+30;
i++;
}
while (i!=9);
}
et là comment je rentre mes caractères (dans main) :
transition table[10]={'I',0,0,'D','I',
'I',1,1,'D','I',
'I','-','-','G','a',
'a','-','-','-','T',
'a',0,1,'G','b',
'a',1,0,'G','a',
'b','-','-','D','T',
'b',1,1,'G','b',
'b',0,0,'G','b'};
dessinertransition(550,250,table);
dessiner_caze(55,30);
---------------
Be myself, I have nothing to prove...