# tigcc



## vibra (25 Janvier 2008)

Bonjour,
Je possède une ti 89 titanium et un mac OS X. Je programme actuellement en basic, mais j'aimerai me mettre au C. Le problème c'est qu'il faut un compilateur (TIGCC), et pour l'installer il faut bidouiller dans le terminal et ça marche pas (je suis vraiment débutant en informatique).
Il y a déjà un sujet là dessus, mais il date et j'ai bien peur que ça n'ai pas marché.
Est-ce que quelqu'un pourrait m'aider svp ?


----------



## ntx (25 Janvier 2008)

Pour faire du C sur Mac OSX tu installes les outils de développement gracieusement fournis par Apple sur ton DVD de Mac OSX (les dernières versions sont téléchargeables sur le site développeur d'Apple, inscription gratuite obligatoire).
Avec ces outils, tu auras gcc qui est le compilateur "GNU" disponible sur de nombreuses plate-formes (entre autres Linux). Ca te permettra d'apprendre le C.
Ensuite pour TigCC, tu l'as eu où ? 

Suite : j'ai trouvé le site. Tu peux télécharger les sources qu'il faudra compiler en espérant que cela fonctionne sur Mac OS.


----------



## vibra (25 Janvier 2008)

Attends deux secondes car je suis vraiment nul en informtique !
Tu peux me dire comment on fait pour les compiler ces sources stp ?
En tout cas merci de m'avoir répondu !
PS : c'est bon, j'ai installé x code.


----------



## ntx (26 Janvier 2008)

vibra a dit:


> Tu peux me dire comment on fait pour les compiler ces sources stp ?


Commence déjà par apprendre le C sur ton Mac, ensuite apprends comment fonctionne gcc et un makefile, et tu verras qu'ensuite tu sauras vite comment compiler les sources de tigcc 

PS : "nul en informatique" et "programmer" ne vont pas ensemble, au boulot


----------



## vibra (26 Janvier 2008)

Vois tu mon problème c'est ça :


ntx a dit:


> en espérant que cela fonctionne sur Mac OS.


En gros ce serait dommage d'apprendre à programmer en C si au final je ne peux pas m'en servir. Donc ce serait hyper sypa si tu pouvais un peu me guider
Mais bon si tu ne veux pas c'est pas grave, je te remercie quand même pour tes réponses.
P.S :





ntx a dit:


> "nul en informatique" et "programmer" ne vont pas ensemble


Je sais programmer en basic sur ma TI, et un peu en applescript, a-mais à part ça je n'ai aucune autre connaissance.


----------



## boulifb (26 Janvier 2008)

Je plussois ntx.
Apprends le C sur ton Mac avant d'attaquer celui sur TI.

Les bibliothèques sur TI sont différentes des bibliothèques standards d'une part et d'autre part, si jamais ton programme est mal écrit (ce qui sera inévitablement le cas au début), et que tu l'exécute sur TI, tu seras bon pour reseter la TI. En revanche, sur Mac, il te suffira d'arrêter le programme ou de le déboguer et le corriger.

Le mieux est de faire une couche d'abstraction (tu apprendras cela) entre le mac et la TI.
Une première couche qui te permettra de comprendre les bases de la programmation est d'aller récupérer la bibliothèque Allegro (www.allegro.cc) il y a une version Mac. Cette bibliothèque a l'avantage de tourner sur plusieurs plateformes et tu peux reproduire assez facilement les comportements de la TI.

Apprendre le C pour la TI est une bonne chose: ça te forcera à faire des programmes qui utiliseront le moins de ressources possible.

Bon amusement.


----------



## vibra (26 Janvier 2008)

D'accord d'accord, je vais me mettre au C sur mon mac. Un tuto à me conseiller en français de préférence) ?
Mais du coup pour le C sur mac, ça demande quels logiciels ? Xcode ça suffit ?


----------



## boulifb (26 Janvier 2008)

le kerningham & richie.


----------



## vibra (26 Janvier 2008)

ntx a dit:


> j'ai trouvé le site.


Tu pourrais me le donner, car j'ai une version trop ancienne stp.


----------



## ntx (26 Janvier 2008)

Le site tigcc
Pour le C, c'est toujours utile de le connaître, sauf si tu ne comptes plus jamais programmer de ta vie en dehors de ta TI89.
Pour apprendre le C, Xcode suffit, mais un éditeur de texte, le terminal et gcc (installé avec Xcode) feront aussi l'affaire pour un débutant.
Pour compiler tigcc sur Mac, désolé je ne peux pas en ce moment sur ma vieille machine.


----------



## vibra (27 Janvier 2008)

Nan, mais en fait c'est bon, je sais pas comment je me suis débrouillé, mais j'ai finalement réussi  compiler un programme pour ma ti, donc ça marche.
Par contre avec tigcc il y a évidemment une librairy. Le problème, c'est que je n'arrive pas à la retrouver (je ne sais même pas si elle c'est installée !). Vous n'auriez pas si il y a un dossier où toutes les librairy se mettent ?


----------



## ntx (27 Janvier 2008)

vibra a dit:


> Vous n'auriez pas si il y a un dossier où toutes les librairy se mettent ?


Une librairie installée suite à la compilation de tigcc ?  Dans /usr/lib ou plus sûrement /usr/local/lib.


----------



## vibra (27 Janvier 2008)

J'ai pas trouvé, mais merci quand-même !


----------



## vibra (27 Janvier 2008)

Nan, mais en fait c'est pas un tuto pour m'apprendre le C qu'il me faut, mais un pour apprendre à me servir d'Xcode !! J'y comprend rien ! C'est quoi la différence entre un project un file ?


----------



## ntx (27 Janvier 2008)

vibra a dit:


> Nan, mais en fait c'est pas un tuto pour m'apprendre le C qu'il me faut, mais un pour apprendre à me servir d'Xcode


Il y a déjà eu de nombreux sujets à ce propos, fais une recherche. Il y a aussi l'aide incluse dans Xcode


> C'est quoi la différence entre un project un file ?


En général une application est construite à partir de moult fichiers de code, d'où la notion de projet.


----------



## Céroce (28 Janvier 2008)

boulifb a dit:


> le kerningham & richie.



Ah non, pas celui-là!
Non franchement, conseiller ça à un débutant ça me parait délirant (même si c'est un bon livre de référence).


----------



## vibra (9 Février 2008)

Comme promis, je me suis mis au C. 
J'utilise Xcode (évidemment!). J'aimerais juste savoir deux choses :
1) Quand il y des if ou de switch imbriquées les uns dans les autres, il faut mettre des alinéas pour y voir clair. Il n'y pas moyen qu'ils se fassent  tout seuls ou on est obligé de le faire soi-même (avec applescript ça se fait tout seul par exemple).
2) Heu, je me souviens plus de mon autre question:rose:


----------



## ntx (9 Février 2008)

Tu peux régler l'indentation via les préférences de Xcode, mais franchement sur ce point ce n'est pas le meilleur éditeur


----------



## vibra (9 Février 2008)

Ok, donc ça s'appelle indenter
Merci !


----------



## vibra (9 Février 2008)

Il y a quand même un truc que je n'arrive pas à bien cerner : quand faut-il mettre le type d'une variable et quand faut-il ne pas le mettre ?


----------



## ntx (10 Février 2008)

vibra a dit:


> Il y a quand même un truc que je n'arrive pas à bien cerner : quand faut-il mettre le type d'une variable et quand faut-il ne pas le mettre ?


    Tu peux développer stp


----------



## vibra (10 Février 2008)

C'est simple : il y a des fois où avant d'utiliser une variable il faut mettre le type (ex : char, long,double), mais il y a des fois où il ne faut pas les mettre (dans les conditions par exemple). Alors je me demandais s'il existait un règle précise la dessus.


----------



## ntx (10 Février 2008)

Tu parles des "cast" ? Tu as des exemples concrets ?


----------



## vibra (10 Février 2008)

Ah, ça s'appelle des cast ?
Bref par exemple tu vas mettre 
	
	



```
long ma_variable = 15
```
En revanche 
	
	



```
if (ma_variable == 10)
```
Dans un cas il faut mettre ce que tu appelle le cast et dans l'autre il ne faut pas.
Donc je me demandais si il existe une règle précise ou si il faut apprendre tous les cas.


----------



## ntx (10 Février 2008)

Non, le "cast" est le fait de préciser le type de la variable lors d'une opération:

```
UnType operation_quelconque()
{
  UnType val_retour;

  reurn val_retour;
}

int main()
{
  MonType toto;

  toto = (MonType) operation_quelconque();
}
```
Dans ton premier bout de code tu déclares et définies ta variable avec la valeur 15.
Dans ton second bout de code, tu l'utilises.
Franchement si tu n'as pas encore compris ce principe, arête tout ce que tu fais et replonge toi dans ton bouquin de C, parce que là c'est plus que la base.


----------



## vibra (11 Février 2008)

ntx a dit:


> Franchement si tu n'as pas encore compris ce principe, arête tout ce que tu fais et replonge toi dans ton bouquin de C, parce que là c'est plus que la base.


Si je demande c'est parce que justement je trouve que ce n'est pas clair dans mon tuto
Merci.


----------



## Céroce (11 Février 2008)

La réponse en clair:
http://www.cocoa-x.com/langages/objc.php?id=6&page=2


----------



## boulifb (11 Février 2008)

Exemple de cast:

double maFonction(double entree)
{
  double sortie=0;
  // blah blah blah ...
  return sortie;
}

int main()
{
  int monEntree=10;
  double resultatDeMaFonction=maFonction((double) monEntree);

  return 0;
}


Dans cet exemple je déclare monEntree comme étant un entier (int).
J'appelle ensuite maFonction qui demande un double en entrée.
Si je ne veux pas changer de type pour monEntree, je dois la transformer en double avant de la passer dans maFonction, sinon, ça compile pas. L'opération (double) monEntree permet ce type de transformation.
C'est ce qu'on appelle un casting. Transtypage en français.
Il est possible de caster tout est n'importe quoi. Il faut simplement faire en sorte que les données soient cohérentes. Autre exemple de transtypage simple: un short en char. Dans ce cas, le short et le char sont rigoureusement de même longueur (2 octets) et sont représenté de la même manière en mémoire.

Cordialement.

Fred.


----------



## vibra (11 Février 2008)

Ok, merci boulifb, donc si je récapitule, on met la cast :
* pour définir une variable
* pour effectuer un casting
C'est bien ça ?


----------



## boulifb (12 Février 2008)

Un casting (transtypage) sert à changer de type de données.
Dans l'exemple que j'ai donné, on transforme un entier en double afin de faire correspondre l'entrée de la fonction maFonction.

J'ai mis l'appel de fonction dans la déclaration de la variable.

J'aurai très bien pu déclarer la variable lui assigner 0 et quelques lignes plus bas appeler maFonction.


----------



## vibra (12 Février 2008)

Ok donc c'est bien ça.
Merci pour ton aide précieuse !


----------



## boulifb (18 Février 2008)

De rien...
Si t'as d'autres questions sur tigcc ou le C/C++/C#...


----------

