30

bah ouais c sur sauf que moi je suis presbyte (pas casse couilles hein) et que mm avec mes lunettes c pas utilisable smile
mais bon en jonglant avec l'editeur de la ti ca va
'fin c un bon prg quand mm et c le pied de pouvoir faire du C directement sur une calculatrice
je crois que la ti est la seule a permettre cela donc longue vie a gtc ...

31

j'avais le même problème avec side quand je codais un peu on-calc : il me fallait faire des efforts pour réussir à lire ce que j'écrivais...
(résultat, j'avais bidouillé l'éditeur de texte de la TI pour virer le menu, ça faisait deux lignes de plus)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

32

33

euhhhh j'ai honte de poser une telle question mais je n'y arrive vraiment pas:
ça concerne la lecture bas niveau du clavier avec la fonction _rowread (ou _keytest), j'utilise la syntaxe proposée dans la doc de tigcc:
if (_rowread(~0x4) & 0x8) //censer lire la touche 9
{ //mon code
}
et là quand je test le programme le code foncitonne bien pour la touche 9, mais également pour toute les touches de la même ligne
alors ma question est la suivante: comment faite vous pour manipuler _rowread et que cela ne détecte qu'une touche à la fois, en d'autre terme où est mon erreur
(précision : je fais ceci sur gtc, mais j'ai le même pb avec tigcc)

34

samy (./33) :
euhhhh j'ai honte de poser une telle question mais je n'y arrive vraiment pas:
ça concerne la lecture bas niveau du clavier avec la fonction _rowread (ou _keytest), j'utilise la syntaxe proposée dans la doc de tigcc:
if (_rowread(~0x4) & 0x8) //censer lire la touche 9
{ //mon code
}
et là quand je test le programme le code foncitonne bien pour la touche 9, mais également pour toute les touches de la même ligne

Ca devrait marcher pourtant, as tu désactivé les interruptions 1 et 5?



Sinon le plus simple est d'utiliser _keytest (qui est en fait une macro qui utilise rowread) avec les pseudo-constantes du type RR_xxx.
par exemple pour lire la touche 9

if(_keytest(RR_9))
{
     // etc
}
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

35

ok merci pour le conseil,

j'ai donc fait le test avec _keytest,
sur tigcc + vti=> ça fonctionne
et sur gtc on calc=> ça ne foncitonne pas peut être est ce dû au fait que j'ai une ti 89 titanium et que l'implémentation de la fonctiondevrait être modifiée comme pour l'histoire des niveaux de gris...?

et sinon j'avais bien désativé les deux interruptions 1 et 5.

36

oui c'est "normal", par contre ça devrait marcher en ajoutant #define CALCULATOR 0 au début de ton programme ^^ (après les #include)

(mais du coup ton programme ne marchera plus que sur 89...)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

37

ok merci pour l'astuce ça fonctionne bien maintenant...
et j'ai encore des nouvelles questions grin :
-quand je GTC compile le programme après il y a un peu moins de mémoire, et si je recompile exactement le même programme il y a encore de la perte de mémoire.... est ce normal?
-sinon autre question plus relative à la prog: quand je fait une boucle dans la fonction ans et que j'appel la fonction return ou exit , il faut la rappeler plusieurs fois pour quitter réelllement le programme, or avec le même code sous tigcc, un seul appel à cette fonction permet de quitter le prog... comment faire pour quitter directement un programme

38

samy (./37) :
ok merci pour l'astuce ça fonctionne bien maintenant...
et j'ai encore des nouvelles questions grin :-quand je GTC compile le programme après il y a un peu moins de mémoire, et si je recompile exactement le même programme il y a encore de la perte de mémoire.... est ce normal?
C'est peut-être l'historique ?
-sinon autre question plus relative à la prog: quand je fait une boucle dans la fonction ans et que j'appel la fonction return ou exit , il faut la rappeler plusieurs fois pour quitter réelllement le programme, or avec le même code sous tigcc, un seul appel à cette fonction permet de quitter le prog... comment faire pour quitter directement un programme

Alors :
1 - C'est quoi la fonction ans ?
2 - return n'est pas une fonction, c'est un mot-clé qui termine la fonction courante
3 - exit est une fonction de la lib standard, qui permet de terminer le programme.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

39

1 - C'est quoi la fonction ans ?
pardon je voulasi dire la fonction main!!!! oupssss

3 - exit est une fonction de la lib standard, qui permet de terminer le programme.
eh bien quand on l'utilise dans main, je susi obligé de faire appel plusieurs fois pour réellement quitter le programme (je reprécise que exit est compris dans une boucle, et que le code fonctionne parfaitement sur tigcc)

40

- comme dit sasume ça vient peut-être de l'historique, sinon j'avais corrigé un memory leak y a un bout de temps, peut-être que la version signée est plus vieille que ça ^^ (faudra que je fasse signer une version plus récente)
- tu peux poster le code stp ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

41

(je reprécise que exit est compris dans une boucle
, et que le code fonctionne parfaitement sur tigcc)

eeek

Plutot a eviter sauf si tu sais vraiment ce que tu fais ^^'
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

42

Pourquoi ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

43

void _main(void)
{
	unsigned char mode;
	INT_HANDLER save_int_1 = GetIntVec(AUTO_INT_1);					//remove interuptions 1 and 5
	INT_HANDLER save_int_5 = GetIntVec(AUTO_INT_5);
	
	SetIntVec(AUTO_INT_1,DUMMY_HANDLER);
	SetIntVec(AUTO_INT_5,DUMMY_HANDLER);
	
	if (!GrayOn())
		{
			SetIntVec(AUTO_INT_1,save_int_1);
			SetIntVec(AUTO_INT_5,save_int_5);
			return;
		}
		
	FontSetSys(F_4x6);	
	for (;; )
	{
		clearscreen();
		GraySetAMSPlane(DARK_PLANE);
		DrawStr(1, 1, "Sprite Editor v 0.1", A_NORMAL);
		DrawStr(1, 11, "F1- Sprite 8x8", A_NORMAL);
		DrawStr(1, 21, "F2- Sprite 16x16", A_NORMAL);
		DrawStr(1, 31, "F3- Exit", A_NORMAL);
		
		GraySetAMSPlane(LIGHT_PLANE);
		DrawStr(1, 1, "Sprite Editor v 0.1", A_NORMAL);
		DrawStr(1, 11, "F1- Sprite 8x8", A_NORMAL);
		DrawStr(1, 21, "F2- Sprite 16x16", A_NORMAL);
		DrawStr(1, 31, "F3- Exit", A_NORMAL);		

		
		for (;; )
			{
				if (_keytest(RR_F1))		//read F1 for 8*8 sprites
					{
						mode = 8;
						GRID_SIZE = 4;
						break;
					}
				if (_keytest(RR_F2))		//read F2 for 16*16 sprites
					{
						mode = 16;
						GRID_SIZE = 3;
						break;
					}
				if (_keytest(RR_F3))		
					{
						GrayOff();													//restore interuption 1and 5 after quitting grayscale
						SetIntVec(AUTO_INT_1,save_int_1);
						SetIntVec(AUTO_INT_5,save_int_5);
						pause(50);													//a little pause in order to
						GKeyFlush();												//empty the key buffer
						exit(0);													

					}
			}
		clear_bmp_tab(mode,C_MASK);
		gui(mode);
		update(mode);
		info();
		edit(mode);

	}
			
}


voilà "mon" code (en fait c'est un code que j'ai repris et adapté)

au fait j'ai une question: il y a t'il une fonction permettant de mettre un programme d'attendre dans le style de sleep... car je n'ai pas réussi à trouver (j'ai chercher sleep, pause, wait mais je n'ai rien trouver)

44

ok, en fait c'est parce que tu utilises la lib patchée vite fait pour que les niveaux de gris marchent sur titanium, et comme je l'avais précisé il y aurait sûrement des incompatibilités avec un certain nb d'autres fonctions :/

tu peux essayer avec la toute nouvelle version de gtc ? (prend la version "Unsigned" et transfère tout sauf le .89k)
normalement tu devrais pas avoir besoin du "#define CALCULATOR" non plus smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

45

ok je vais essayer ça de suite!!!!
et puis (je me repète) mais je trouve ça géant d'avoir fait un compilo C on calc aussi facile à manier, l'IDE est super conviviale avec l'apel de fonciton et tout...
chapeau !

sinon le programme dont j'ai donné une partie du code source, vient d'être terminé et il fonctionne assez bien (pour "mon" premier vrai programme sur TI).
en fait il s'agit du sprite editor de 4nic8 pour graph 100, il permet de générer le code des sprites 8*8 et 16*16 pour le MLC
ça ne va certainement pas intéresser grand monde vu que le mlc n'est pas fini d'être adapté sur ti 68k mais c'était très enrichissant à faire!
par contre (si jamais quelqu'un a du temps et qu'il ne sais pas quoi faire) j'aimerais bien filer le code source pour qu'il me dise ce qui peut être améliorer, optimiser... bref tout ce qui serait constructif...

46

Yop je suis un revenant lol.
J'utilise GTC depuis peu et pour la première fois, il se passe quelque chose de louche.

J'ai envoyé tous les fichiers etc.
J'ai mon fichier source et ca compile bien.
J'arrive à exécuter mon outbin().
J'essaie de relancer gtc_ide()... freeze avec marqué busy en bas à droite (toujours sur l'écran home)

Est-ce que vous avez une idée d'où ca peut provenir?

J'ai tenté (3 fois déjà) de virer tous les fichiers de GTC et l'application flash sans succès, toujours le freeze avec le outbin().

Par contre, si je quite gtc_ide() et que je relance SANS executer outbin(), pas de freeze...

Merci smile
Vive! la Ti-89!
(Mon anneau pylorique est complètement fermé. C'est le résultat de la proximité de cet individu.)

47

Eh ben c'est ton programme qui met la merde grin
C'est quoi ton code ?
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

48

waah vais pas mettre le code parce que c'est long lol.
Je termine par un ngetchx() avec pas mal de printf dans le prog.
Je travaille sur des tableaux (non dynamiques)
Ca pourrait etre du à quoi?

AJOUT: si je supprime outbin(), gtc_ide() ne plante plus...
Vive! la Ti-89!
(Mon anneau pylorique est complètement fermé. C'est le résultat de la proximité de cet individu.)

49

DoomAngel (./48) :
Je termine par un ngetchx() avec pas mal de printf dans le prog.
Je travaille sur des tableaux (non dynamiques)
Ca pourrait etre du à quoi?

Ben pas à ngetchx ni à l'utilisation de tableaux tongue Si ça ce trouve le problème ne vient pas de ton programme, mais essaies quand même avec un programme quasi-vide pour voir si ça fait toujours pareil.
DoomAngel (./48) :
AJOUT: si je supprime outbin(), gtc_ide() ne plante plus...

Ah? même après l'avoir exécuté ?
Il se passe des choses étranges hum
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

50

j'essairai de faire des tests pour confirmer si ca vient de mon programme.

Par contre, une autre erreur intéressante. Je déclare 2 variables globales juste après les #include et les #define:
int current = 1;
int done = 0;

Dans le programme j'incrémente current.

Quand je quitte le programme et que je relance, current conserve sa valeur de la précédente exécution lol.
Je suis obligé de réinitialiser ces 2 variables soit dans le __main soit dans une fonction d'init.
A croire que les affectations n'ont servi qu'à la toute première exécution...
Vive! la Ti-89!
(Mon anneau pylorique est complètement fermé. C'est le résultat de la proximité de cet individu.)

51

Salut smile,

tout d'abord merci Pollux et un grand bravo pour ton compilateur. smile smile smile

Par contre y' a-t-il moyen de consulter le fichier assembleur produit ? En effet, GTC me retourne une erreur du genre : "error in file ' ', in function __main : ] expected".
==>Ca n'a pas l'air de provenir de ma source codee en C.
Le gentil timide du 64

52

Quand je quitte le programme et que je relance, current conserve sa valeur de la précédente exécution lol.
Je suis obligé de réinitialiser ces 2 variables soit dans le __main soit dans une fonction d'init. A croire que les affectations n'ont servi qu'à la toute première exécution...

Il me semble que c'est le comportement normal.
En effet, les variables globales et statiques sont stoquées directement à l'intérieur du programme et non sur la pile. Donc au moment de la compilation la valeur est bien 1 mais elle est modifié à chaque execution vu que ton programme est exécuté directement depuis la mémoire.
Si ton programme est archivé ça n'arrivera pas, vu qu'il est recopié en RAM avant exécution.
avatar

53

oui, il faut éviter d'initialiser les variables directement à l'endroit de leur déclaration, sauf si elles ne seront jamais modifiées smile

TailsMilesPower (./51) :
Salut smile,

tout d'abord merci Pollux et un grand bravo pour ton compilateur. smile smile smile

Par contre y' a-t-il moyen de consulter le fichier assembleur produit ? En effet, GTC me retourne une erreur du genre : "error in file ' ', in function __main : ] expected".
==>Ca n'a pas l'air de provenir de ma source codee en C.

ça ne peut pas venir de l'assembleur puisque le compilateur envoie directement les instructions dans le format interne de l'assembleur happy (donc sans passer par un fichier texte susceptible de contenir des symboles comme ']')

tu es sûr qu'il n'y a pas un '[' que tu as oublié de refermer ? confus

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

54

En fait c'est la plus grosse des énormités : mettre un point-virgule après une directive #define. Promis, tant que je conserverais l'habitude de programmer en GTC, je ne la referais plus.
Le gentil timide du 64

55

Bon j'ai effectué quelques tests, avec des programmes plus simples que celui que je suis en train de faire,
gtc_ide() ne plante pas, outbin() étant archivé ou non.

Avec mon programme (que je peux exécuter autant de fois que je veux sans pb), gtc_ide() plante après
exécution de outbin() si je n'archive pas outbin() ou tant que outbin n'est pas supprimé.

Ma solution, un kbdprgm avec
Archive outbin
outbin()
Unarchive outbin

Plus aucun probleme comme ca
Vive! la Ti-89!
(Mon anneau pylorique est complètement fermé. C'est le résultat de la proximité de cet individu.)

56

Ça c'est propre top
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

57

grin

DoomAngel> a priori c'est qu'il y a un bug dans ton programme (ou dans gtc), le mieux ce serait de comprendre d'où il vient puis le corriger plutôt que d'essayer de limiter les dégâts ^^ tu as la "chance" d'avoir un bug reproductible facilement, c'est bien plus facile à corriger que le bug non reproductible qui va apparaître avec ta solution happy

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

58

Bon j'ai plus ou moins terminé le programme (et il fonctionne).
J'explique un peu le fonctionnement : Etant donné une carte composée de 0 ou de 1,
mon programme doit compter le nombre de zones (ensemble de 1) dans la carte.
C'est pour un projet en imagerie et vu que je me promène pas toujours avec un PC
j'ai programmé l'algo sur Ti89 lol (merci GTC).

Actuellement, j'ai 6 différentes cartes stockées dans un tableau global à 3 dimensions.


Donc voici les sources (désolé, je n'ai pas commenté vu que c'est pas super lisible sur Ti lol)
,0,0,0,0},    {1,1,1,1,1,1,1,1,1,1}    }  };En tête : déclaration des variables globales : #include <tigcclib> #define MAXX  10  #define MAXY  10  #define CHOIX 6    int current,done;  int zone[MAXY][MAXX];  int tab[MAXY][MAXX];    const int tabl[CHOIX][MAXY][MAXX]=  {        {    {0,0,1,0,0,0,0,0,0,0},    {0,1,1,0,0,0,0,0,0,0},    {0,1,0,0,1,0,0,0,0,0},    {0,1,1,0,1,0,0,0,0,1},    {0,0,1,0,1,0,0,0,0,1},    {0,1,1,0,1,0,0,0,0,1},    {0,1,0,0,1,0,0,0,0,1},    {0,1,1,0,1,1,1,0,1,1},    {0,0,1,0,0,0,1,1,1,0},    {0,1,1,0,0,0,0,0,0,0}    },    {    {0,1,1,1,0,1,1,1,0,0},    {1,1,0,1,1,1,0,1,1,1},    {0,0,0,0,0,0,0,0,0,0},    {0,0,0,0,0,0,0,0,0,0},    {0,0,0,0,0,0,0,0,0,0},    {0,0,1,1,1,0,0,0,0,0},    {0,1,1,0,0,0,0,0,0,0},    {0,1,0,0,0,0,0,0,0,0},    {0,1,1,0,0,0,0,0,0,0},    {0,0,1,1,1,1,0,0,0,0}    },    {    {0,0,1,1,1,0,1,1,1,0},    {0,1,1,0,1,1,1,0,1,1},    {1,1,1,0,0,0,0,0,0,0},    {0,0,1,0,1,1,0,0,0,0},    {0,1,1,1,1,1,0,0,0,0},    {0,1,0,0,0,0,0,0,0,1},    {0,1,1,0,0,0,0,0,0,1},    {0,0,1,0,0,1,1,1,0,1},    {0,1,1,0,1,1,0,1,1,1},    {0,1,0,0,0,0,0,0,0,0}    },    {    {0,0,0,0,0,0,0,0,0,0},    {0,1,1,1,0,0,0,1,1,0},    {0,1,1,1,0,0,1,1,1,0},    {0,1,1,1,0,1,1,1,1,0},    {0,1,1,1,0,0,0,1,1,0},    {0,0,0,0,0,0,0,0,1,0},    {0,1,1,1,1,0,0,1,1,0},    {0,1,1,1,1,0,0,0,0,0},    {0,1,1,0,0,0,0,0,0,0},    {0,0,0,0,0,0,0,0,0,0}    },    {    {1,1,1,1,1,1,1,1,1,1},    {1,0,0,0,0,0,0,0,0,0},    {1,0,1,1,1,1,1,1,1,1},    {1,0,1,0,0,0,0,0,0,1},    {1,0,1,0,1,1,1,1,0,1},    {1,0,1,0,1,0,0,1,0,1},    {1,0,1,0,0,0,0,1,0,1},    {1,0,1,1,1,1,1,1,0,1},    {1,0,0,0,0,0,0,0,0,1},    {1,1,1,1,1,1,1,1,1,1}    },    {    {1,1,1,1,1,1,1,1,1,1},    {1,0,0,0,0,0,0,0,0,1},    {1,0,1,1,1,1,1,1,0,1},    {1,0,1,0,0,0,0,1,0,1},    {1,0,1,0,1,0,0,1,0,1},    {1,0,1,0,1,1,1,1,0,1},    {1,0,1,0,0,0,0,0,0,1},    {1,0,1,1,1,1,1,1,1,1},    {1,0,0,0,0,0
urn 1;    return 0;  }Fonctions utilitaires : void loadTab(int i)  {    int x,y;    for(y=0;y<MAXY;y++)    for(x=0;x<MAXX;x++)    {      zone[y][x]=0;      tab[y][x]=tabl[i][y][x];    }  }    void showTab()  {    int x,y;    clrscr();        for(y=0;y<MAXY;y++)    {      for(x=0;x<MAXX;x++)        if(tab[y][x])          printf("#");        else          printf(" ");      printf("\n");    }  }    void showZone()  {    int x,y;    clrscr();        for(y=0;y<MAXY;y++)    {      for(x=0;x<MAXX;x++)        printf("%d",zone[y][x]);      printf("\n");    }  }    void show(int val)  {    int current=1;    int key=0;    int choix=0,pre=-1;        while(key!=KEY_ESC)    {      if(key==KEY_DOWN || key==KEY_UP)        current=1-current;      if(val && key==KEY_LEFT)choix--;      if(val && key==KEY_RIGHT)choix++;      if(choix<0)choix=0;      if(choix>=CHOIX)choix=CHOIX-1;      if(val && choix!=pre)      {        loadTab(choix);        pre=choix;      }        if(current) showTab();      else showZone();      if(val)        printf("Choix:%d/%d",choix+1,CHOIX);                key=ngetchx();      }    }    int getTab(int x,int y)  {    if(x<0 || y<0 || x>=MAXX || y>=MAXY)      return 0;    return zone[y][x];    }    int minVal(int a,int b)  {  //  printf("A=%d,B=%d",a,b);  //  ngetchx();        if(a==0 && b==0) return 0;    if(a==0) return b;    if(b==0) return a;    return a<b?a:b;  }    int calcZone()  {    int x,y;    int res=0;    int val=0;    int err=0;        clrscr();    printf("CALCZONE\n");      for(y=0;y<MAXY;y++)    for(x=0;x<MAXX;x++)    {      int value=zone[y][x];      int test=getTab(x-1,y);            if(value!=0)      {        if(test!=0 && test!=value)          err=1;        test=getTab(x+1,y);        if(test!=0 && test!=value)          err=1;        test=getTab(x,y-1);        if(test!=0 && test!=value)          err=1;        test=getTab(x,y+1);        if(test!=0 && test!=value)          err=1;      }            if(value>val)      {        val=value;        res++;      }    }        printf("Il y a %d zones\n",res);    if(err) printf("Il y a des anomalies\n");      while(ngetchx()!=KEY_ENTER){}    if(err) ret
for y2    }// for X  }Fonctions de parcours : void parcours1()  {    int x,y;    for(y=0;y<MAXY;y++)    {      for(x=0;x<MAXX;x++)        {        if(tab[y][x])        {          int a=getTab(x-1,y);          int b=getTab(x,y-1);          done=1;          zone[y][x]=minVal(a,b);          if(zone[y][x]==0)            zone[y][x]=current;        }        else        {          if(done)          {            done=0;            current++;          }        }      }// for x1      for(x=MAXX-1;x>=0;x--)      {        int a=getTab(x,y-1);        int b=minVal(a,getTab(x+1,y));        if(b!=0 && b<zone[y][x])          zone[y][x]=b;      }    }// for y    }    void parcours2()  {    int x,y;    for(x=MAXX-1;x>=0;x--)    {      for(y=MAXY-1;y>=0;y--)        {        int a=getTab(x+1,y);        a=minVal(a,getTab(x,y+1));        a=minVal(a,getTab(x-1,y));        if(a!=0 && a<zone[y][x])          zone[y][x]=a;      }// for y1      for(y=0;y<MAXY;y++)      {        int a=getTab(x,y-1);        a=minVal(a,getTab(x+1,y));        if(a!=0 && a<zone[y][x])          zone[y][x]=a;      }// for y2    }// for X    }    void parcours3()  {    int x,y;    for(x=0;x<MAXX;x++)    {      for(y=MAXY-1;y>=0;y--)        {        int a=getTab(x-1,y);        a=minVal(a,getTab(x,y+1));        if(a!=0 && a<zone[y][x])          zone[y][x]=a;      }// for y1      for(y=0;y<MAXY;y++)      {        int a=getTab(x,y-1);        if(a!=0 && a<zone[y][x])          zone[y][x]=a;      }// 
");  }Main : void _main()  {    LCD_BUFFER scrBuf;    LCD_save(scrBuf);      int essai=0;        current=1;    done=0;          show(1);          parcours1();        do    {      essai++;      parcours2();      parcours3();            show(0);      if(essai>1)      {        clrscr();        printf("Tentative %d",essai);        ngetchx();      }    }while(calcZone());          LCD_restore(scrBuf);    ST_eraseHelp();    ST_showHelp("Test

Pouvez vous me dire s'il y a des problèmes dans le code qui pourrait engendrer le plantage.

Petit ajout concernant le plantage:
1) le SHIFT+GAUCHE+DROITE+ON ne fonctionne pas, retirer pile obligatoirement
2) le plantage ne se fait pas toujours...
Vive! la Ti-89!
(Mon anneau pylorique est complètement fermé. C'est le résultat de la proximité de cet individu.)

59

Peut-être que tu écris en dehors de tes tableaux à un moment où à un autre ? (j'ai regardé un peu les sources)
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

60