1

[nosmile]
Salut à tout les pro du C

Voila je suis un newbie qui essaye d'apprendre le C (avec le tuto de squale92 ki est nikel) pour faire un petit prog de rien du tout (je suppose) mais trop dure pour moi en C (j'y arrive en TI BASIC).

Voila en quoi il consiste :
- Ca va dans la fenetre prgmIO ou sinon une vierge ( clrscr(); )
- Ca écrit ENTER THE PASSWORD (ça je sais pas comment ca marche un genre de InputStr)
- J'entre le password (xyzt) et le prog le crypt (****) (je ne sais pas le faire en TI BASIC)
- si c'est bon ca efface l'écran puis affiche une toolbar sinon ca remet la demande de pass..

Ensuite je me débrouille pour la toolbar je pense m'en sortir (j'espère surtout).

- Sinon comment faire un label (Lbl en TI BASIC) j'ai pas trouvé :/

- Peux on lancé un programme avec un programme en C ? ( ex : gametetris89() )

Merci à tout ce qui m'aiderons.

PS : je n'ai pas une connection illimité donc je pourrais pas réagir désuite :'(
[edit]Edité par DoGerMaN le 28-11-2001 à 14:49:49[/edit]

2

Pour entrer le mot de passe, essaie les boîtes de dialogue, c'est sympa comme truc.
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

3

- le mieux pour ma part, c'est clrscr() (c'est surement parce que je ne sais pas comment se mettre en prgmIO en C)
- je ne me suis encore jamais servi de ce genre de InputStrtsss
- pour le pass, (xyzt), le prog n'est pas obligé de le crypter, mais il suffit qu'au lieu d'afficher le caractère correspondant, afficher *, c'est plus facile et rapide (enfin, je pense!) (en basic, c'est super facilegrin)
- pour le reste, tu fait un test : si oui il continue, sinon redemande le pass par un goto (le mieux c'est de faire un sous-prog ki fait la partie où tu entre le pass)

voilà, mais là je ne t'ai pas donné de prog mais je vais essayer de chercher!

4


Pour LBL, oublie. Fait comme si ça n'existait pas en C ; si tu commences à utiliser ça tu es mal barré roll
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

5

On peut très bien utiliser goto en C. Je ne vois pas pourquoi certaines instructions seraient "interdites". Mais normalement, un:
do {
puts("Mot de passe: ")
InputStr(passwd,100);
} while (strcmp(passwd,correct_passwd))

devrait suffir.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

le goto, c'est un truc qui est redouté par les "puristes"...
Cela dit, il est PARFOIS indispensable.
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

7

un prof d'info enleve 5 points qd on met un goto ds un prgm pascal grin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

8

La plupart de professeurs de programmation n'aiment pas les gotos. Mais en tant que programmeur habitué au BASIC et à l'assembleur, je les aime bien, moi. (Les gotos, pas les professeurs qui n'en veulent pas. grin)
[edit]Edité par Kevin Kofler le 28-11-2001 à 20:52:15[/edit]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

il esy debile ce prof car ds certains cas un goto est bcp plus simple qd on veut optimoiser au maximum (g pas d'exemple en tet)
avatar
納 豆パワー!
I becamed a natto!!!1!one!

10

Entièrement d'accord.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

bon voila ou j'en était mais je pense ke le truc du do { .. ca va m'aider

http://matrix2.free.fr/kbdprgm1.c

Dans la party toolbar j'ai fais tous les menus il me reste à donné les fonctions aux valeurs. Mais pour cela il faut que je sache executer un ficher, le copier, deplacer, archiver et dearchiver.

j'abandone le coup de mettre des etoiles a moins que kelkun puisse m'expliquer comment faire ou a deja quelque chose de fais.

Et Orbita si tu peux m'explique le coup de remplacer par des etoile ca serait cool smile

MERCI A TOUT LE MONDE !! VOUS ETES TROP SYMPAS
eek

12

un goto est particulièrement utile quand on veut sortir de boucles imbriquées :
for(i=0 ; i<1000 ; i++)
{
    for(j=0 ; j<50000 ; j++)
    {
         // Instructions diverses...
         if(erreur)
            goto fin;
    }
    // INstruct(ions diverses 2
}
fin:
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

13

Quand y'a des trucs comme ça, je m'arrange pour les mettre dans une fonction, comme ça, avec un return le problème est réglé.
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

14

oué, c'est aussi possible.
(arf... le temps d'appel d'une fonction de quelques cycles processerus fait rallentitr grin)
Ca dépend, si tu l'utilises qu'une seule fois, il n'est peut-être pas vraiment nécessiare de faire une fonction...
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

15

les goto je m'en sert pour retourner tout en haut du programme le plus souvent (parfois pour un jeu on est ds une boucle, on passe au level suivant alors je remonte tt en haut du prog par exemple), ou alors tt a la fin pour quitter

par contre j'ai deja vu un prog en C programmé avec pratiquement que des gotos (je ne donnerais pas le nom mais c un jeu de demineur wink) et c d'une lenteur incroyable entre l'affichage de chaque menu (j'ai cru un moment qu'il etait en basic)

16

#define OPTIMIZE_ROM_CALLS // Optimisation de la vitesse
#define SAVE_SCREEN // Sauvegarde l'écran, pour le restituer à la fin du programme
#include <tigcclib.h> // Inclu Tous les fichiers

short _ti89, _ti92plus; // Créer un fichier pour la TI-89 .89Z et TI-92 Plus .9XZ

// ----------------------- InputStr addon -----------------------

void InputStr(char *buffer, short maxlen)
{
SCR_STATE ss;
short key, captured, i=0;
void CaptureHandler (EVENT *ev)
{
if (ev->Type == CM_STRING)
captured = *(ev->extra.pasteText);
}
buffer[0] = 0;
SaveScrState (&ss);
do
{
MoveTo (ss.CurX, ss.CurY);
printf ("%s_ ", buffer);
// Note that two spaces are required if F_4x6 font is used
key = ngetchx();
if (key == KEY_CHAR && i < maxlen)
{
EVENT ev;
ev.Type = CM_KEYPRESS;
ev.extra.Key.Code = key;
EV_captureEvents (CaptureHandler);
EV_defaultHandler (&ev);
EV_captureEvents (NULL);
buffer[i++] = captured;
}
if (key >= ' ' && key <= '~' && i < maxlen) buffer[i++] = key;
if (key == KEY_BACKSPACE && i) i--;
buffer[i] = 0;
} while (key != KEY_ENTER);
}

// ----------------------- Game Menu ToolBar -----------------------

void gamemenu(void) // Debut du programme game menu
{
HANDLE menugame= MenuNew(2, LCD_WIDTH, 18); // Déclare le menu "non-exécutable" cad le tableau..
HANDLE menugame_exec; // Déclare le "menu exécutable".
short valeur_menu = 0; // Pa variable de la valeur qui sera retournée par le menu.
MenuAddText(menugame, -1, "Half-Life", 1, 0); // F1 --> Half-Life
MenuAddText(menugame, -1, "Landerz", 2, 0); // F2 --> Landerz
MenuAddText(menugame, -1, "Tetris", 3, 0); // F3 --> Tetris
MenuAddText(menugame, -1, "Thunder", 4, 0); // F4 --> Thunder
menugame_exec = MenuBegin(HeapDeref(menugame), 0, 0, 0); // Permet d'obtenir le "menu-exécutable".

valeur_menu = MenuKey(menugame_exec, ngetchx()); // Active le menu, et stocke la valeur choisie dans la variable valeur_menu.

if (valeur_menu==1) // Si on appuye sur F1
{
clrscr(); // Ca réinitialise l'écran
setFold(game) // Choisi le repertoire game en TI BASIC (je voudrais en C)
halflife(); // Lance HL
setFold(main) // Choisi le repertoire main en TI BASIC (je voudrais en C)

gamemenu(); // Relance la toolbar
}

if (valeur_menu==2)
{
clrscr(); // Ca réinitialise l'écran
setFold(game) // Choisi le repertoire game en TI BASIC (je voudrais en C)
landerz(); // Lance HL
setFold(main) // Choisi le repertoire main en TI BASIC (je voudrais en C)

gamemenu(); // Relance la toolbar
}

if (valeur_menu==3)
{
clrscr(); // Ca réinitialise l'écran
setFold(game) // Choisi le repertoire game en TI BASIC (je voudrais en C)

CopyVar tetris98,mainteris98 // Copi tetris98 dans main
maintetris89(); // Lance Tetris
Unarchiv tetris89
Delvar tetris89
MoveVar tetris89,main,game
setFold(main) // Choisi le repertoire main en TI BASIC (je voudrais en C)

gamemenu(); // Relance la toolbar
}

if (valeur_menu==4)
{
si vous me faite le debut je pense ke je serais faire celui la
}

else // Si aucune de ces valeurs
{
gamemenu(); // Relance la toolbar
}
HeapUnlock (menugame); // Deblock le HANDLE
HeapFree(menugame); // Efface le HANDLE
}

// ----------------------- Password Request -----------------------

void password(void)
{
FontSetSys(F_8x10); // Mets la plus grande écriture
DrawStrXY(7, 20, "ENTER THE PASSWORD",A_NORMAL); // Ecrit ENTER THE PASSWORD
MoveTo(60,50); // Change les X et Y pour l'endroit d'écriture
FontSetSys(F_6x8); // Mets l'écriture en Médium
InputStr("abcdefghijklmnopqrstuvwxyz", 6); // Execute l'addon InputStr que je sais pas faire marcher
gamemenu(); // Execute la toolbar Game Menu pas de if car pas de InputStr
}

// ----------------------- Main Program -----------------------

void _main(void)
{
clrscr(); // Efface l'écran et réinitialise les paramettres
password(); // Exucute le petit prog Password Request
}
[nosmile]
[edit]Edité par DoGerMaN le 30-11-2001 à 07:15:50[/edit]

17

meeeeeeeeerde ne me dit pas que tu as fait tout ca a partir de rien, rien que pour lui expliquer ????!

18

Koi ?
C'est le prog que je veux faire puis personne ne me repond il son parti avec leur goto je montre ou j'en suis et je voudrais ke me corrige des trucs et que me le complete

19

pr le goto:

--code--
monlabel:
--code--
goto monlabel;
--code--

et le goto est souvent tres pratique:
on a pas inventé le ompteur programme pour rien!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

20

Bon j'ai réusi pour le password tongue merci pour le do {...} c nikel (j'ai du chercher pour char xxx [10] = "monpass".

Maintenant expliquez moi quel est la meilleur facon pour archiver dearchiver deplacer supprimer copier des fichiers plz et executer.

Merci tongue[nosmile]

21

archiver désarchiver.. etc... les fonctions de manipulation de la VAT <vat.h>
pour l'exécution, sur HW1, c'est simple, mais je crois que ça foire sur HW2 ce à quoi je penses (utiliser le stack)... je crois qu'il faut rloger le prog, mais je sais pas trop comment sad
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

22

ARf merde sad
je pourrais po finir mon lanceur de jeu g si j'ai po c'est commande sad

23

S'il vous plait et meme si il vous plait pas pouvez vous me corriger ou ameliorer mon premier prog ou me dire tout simplement un endroit qui pourrait etre ameliorer puis un indice et je le fais moi meme tongue ?
http://matrix2.free.fr/kbdprgm2.tpr
http://matrix2.free.fr/kbdprgm2.c

Merci

24

c koi cette histoire de Goto interdits? C super utile goto,
quand on peut pas utiliser de do, fo juste pas en abuser comme en basic.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows

GYBE! Dead Flag Blue

25

Devinette: Que fait ce programme?

void _main(void) {
int x;
goto a;
e:
goto f;
x=3;
l:
printf("%d",x);
goto m;
f:
goto g;
o:
goto p;
h:
x+=3;
goto i;
m:
goto n;
b:
goto c;
k:
goto l;
d:
goto e;
i:
goto j;
c:
x=2;
goto d;
j:
goto k;
n:
goto o;
g:
goto h;
x=4;
a:
goto b;
p:; }


grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

D'ailleurs, l'optimisateur de GCC fait un excellent travail là-dessus: il ne reste plus rien de tous ces gotos inutiles dans le code généré. grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

27

Il n'afficherait pas 5 par hasard ?
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

28

c'est vrai que sur cet exemple, on voit bien les avantages du goto
Je peux partir d'ici :
J'ai retrouvé mon nom !

Le Forum Ghibli

29

Oui, il calcule 2+3 et affiche le résultat, qui est effectivement 5. grin
L'optimisateur de GCC simplifie tout ça en un code qui affiche directement 5 avec printf. Les gotos inutilisés et le code impossible à atteindre sont supprimés. Le seul souvenir du code spaghetti qui reste dans le .s généré: une vingtaine de labels inutilisés (car les gotos ont été supprimés par l'optimisation).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité