1

Bonjour, je viens de me mettre à l'apprentissage de la programmation en C, ça a l'air plus marrant que le Ti-Basic, mais aussi moins naturel comme language.

Je me base sur le tutorial de squalenet qui est bien conçu (selon mon avis) et sur la documentation de TiGCC...
Je voudrais cependant acheter des livres sur la programmation en C, et j'ai des questions sur ce sujet, si vous pouviez me répondre avant vendredi 28 midi ce serait trèèèès gentil ^^ :

> La programmation en C pour calculatrices sous TiGCC, c'est du C++ ? du C ? (la question est peut être débile, ces deux languages sont-ils les mêmes ? sinon quelles sont les différences ?)
> Qu'entend-t-on par "standards de programmation en C" ?
> Squalenet semble sous-entendreque tous les languages de programmation sont sensiblement les mêmes quelque soient les plates-formes où le code est exécuté. Plus précisément, un programme C pour Ti est-il exécéutable sur un PC ?

Merci de répondre à mes questions de... happy noob ^^
/ JAVA / C / C++ / Cobol /

2

- Le C++ est a l'origine une extension du C. Les concepts sont differents meme si un compilo C++ compilera toujours du C.
- Standard de programmation ? Je vois pas... le langage a un standard, la programmation...
- Un code C peut etre compilable sous n'importe quelle plateforme, suffit juste que toutes les fonctions y soient definies.

3

Sur Ti c'est du C, renseigne toi précisément sur la doc de TIGCC pour savoir exactement lequel (si ça t'interesse), puisqu'il en existe beaucoup de variantes, mais globalement ça reste bien sûr le même langage. Le C++ est une très grosse évolution du C, puisqu'il s'agit d'un langage objet, mais là ça devient un peu long à expliquer ici (faudrait faire un sujet juste sur ça, y'a beaucoup à dire).

"Standards de programmation en C" je sais pas, t'aurais dit "Standards du C" j'aurais pu répondre mais comme là je sais pas si c'est de ça que tu parles (et si ce n'est pas de ça, je serais tenté de dire que c'est des conneries vu qu'en pratique 2 codeurs = 2 "standards")

Pas directement, puisque tu vas appeler des fonctions spécifiques aux Ti, par exemple tu vas dessiner sur un écran 160*100 ou 240*128 pixels avec du noir et blanc, ce qui n'a pas beaucoup de sens sur PC. Mais le langage reste le même oui (et c'est tout à fait envisageable de faire tourner des programmes Ti sur PC, avec quelques petites modifications mineures si ton code est bien fichu)

[edit] cross, c'était risqué ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

nEUrOO :
- Standard de programmation ? Je vois pas... le langage a un standard, la programmation...
Zephyr :
"Standards de programmation en C" je sais pas, t'aurais dit "Standards du C"

"Versions" K&R, ANSI, ISO, GNU, du C, je suppose
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

5

Je vais aller dans une librairie privat pour acheter un bouquin de programmation en C et j'ai trouvé cette expression bizarre sur le titre d'un bouquin, je me permet de recopier la couverture ci-dessous :
9782744071447_1_75.JPG

Donc vaut mieux que je prenne un language sur le C qu'un language sur le C++ ou vaut-il mieux le contraire ?
/ JAVA / C / C++ / Cobol /

6

- pour débuter la programmation en C, rien ne vaut le petit livre noir de Kernighan & Richie (K&R) simple et concis.

- pour passer à la vitesse supérieure (apprentissage du C++), bien qu'un peu technique, je te recommande le livre de Bjarne Stroustrup: The C++ Programming Language aux éditions Addison Wesley.

Ces 2 livres sont écrits par les concepteurs de chacun des langages.

Je pense que par standard C, est sous-entendu la syntaxe originelle de K&R que toutes les plateformes supportent (en principe). Et normalement, toutes les plateformes supportent les instructions de base (printf, fprintf sprintf etc...) appelé aussi C run-time (crt).

.1/ plutôt qu'une extension, "évolution" serait un therme plus approprié...
There is no spoon.

7

1> Squalenet dit dans son tutoriel que le K&R est un peut trop complexe pour les débutants en C, c'est pourquoi je m'étais tourné vers d'autres livres, ceux qui ont lu notre "Bible" l'ont-il trouvée difficile ou pas ?

2> N'existe-t-il que TiGCC pour programmer en C ? N'est-il pas possible (je vais passer pour un barbare) d'écrire son code sur un fichier bloc-note et de le renommer en fichier .v2z pour le faire marcher (je suppose que non puisque TiGCC inclu un compilateur, cela voudrait dire que le C doit être compilé) ? Si cette méthode n'est pas possible, existe-t-il d'autres compilateurs C ?
/ JAVA / C / C++ / Cobol /

8

si ce que tu veux c'est programmer en C sur TI, prends-toi un bouquin sur le C, parce que les styles de programmation C et C++ sont assez différents...

et le bouquin dont tu parles, ça a l'air d'être des conseils sur comment écrire tel bout de code de façon "propre", i.e. pour éviter les bugs et faciliter la modification du code, bref c'est probablement pas le genre de bouquin qu'il faut pour commencer ^^

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

9

lol j'ai modifié mon poste de 9:10.
/ JAVA / C / C++ / Cobol /

10

Je ne suis pas sûr que le livre de K&R soit une bonne idée, parce que c'est une antiquité et que le C a beaucoup changé depuis...
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

11

déjà oublie le C++, c'est vraiment différent du C (tout ce qui existe en C existe en C++, mais l'inverse est faux, et un bouquin de C++ risque justement de parler de tout ce qui n'existe pas en C, qui est à la fois utile et interessant, mais inappliquable sur Ti)

et le C est effectivement compilé (= traduit en langage machine, binaire, illisible pour toi), ce qui fait que renommer ton fichier C en .v2z n'a aucune chance de marcher (de toutes façons ça n'aurait pas marché pour un programme en Basic non plus).
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

- Le C++ est a l'origine une extension du C. Les concepts sont differents meme si un compilo C++ compilera toujours du C.
J'avais fait un post quelque part où je donnais une poignée d'exemples de programmes C valides qui ne sont pas des programmes C++ valides smile

Sinon désolé je peux pas conseiller de bouquin, le meilleur cours que j'ai vu pour l'instant c'est un poly cheeky

13

Existe-t-il un éditeur de C on-calc (qui fonctionne chew ) ?
/ JAVA / C / C++ / Cobol /

14

Faut voir pour GTC dans ce cas précis. (demande a Pollux pour plus de précisions)

Sally: je suis pas du tout d'accord pour le bouquin de K&R, le livre "Le language C, Norme ANSI" est sûrement un des meilleurs livres parlant du langage C. Les extensions du C99 ou les extensions GNU sont loin d'être fondamentales et encore mois l'idéal a apprendre pour un débutant (déjà que le C est permissif... en C99 ou C/GNU c'est encore pire...)

(au passage le K&R n'est plus jaune et noir.. sad : http://www.amazon.fr/gp/product/2100487345/403-5503590-8439607?v=glance&n=301061&s=gateway&v=glance )
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

15

./14: en effet, l'est tout moche la couverture grin
./7: il y a des dizaines d'éditeurs... Tout dépend de la plateforme sur laquelle tu vas écrire ton programme. Et encore... le compilateur en ligne et le bête notepad (pire encore: vi) peuvent suffir... mais bon, prend plutôt un IDE. Si c'est pour faire du C que sur TI, ben TIGCC est là. Si c'est sous Windows, Visual Studio .NET est un outil de choix, et si c'est sous Linux, KDevelop sera convenable.
There is no spoon.

16

Ce serait pour programmer sur Ti (on-calc) un éditeur de C programmable directement sur Ti. Si vous en connaissez un...
/ JAVA / C / C++ / Cobol /

17

spectras :
J'avais fait un post quelque part où je donnais une poignée d'exemples de programmes C valides qui ne sont pas des programmes C++ valides smile

C'est pourtant qqch que BS voulait a l'origine... ca m'etonne roll. Tu as essaye de compile avec extern "C" {} ? :P

18

lancelot :
Ce serait pour programmer sur Ti (on-calc) un éditeur de C programmable directement sur Ti. Si vous en connaissez un...

Va voir GTC... (demande a Pollux sur le forum)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

19

Tu as essaye de compile avec extern "C" {} ? :P
Ca n'a rien à voir, ça ça affecte la méthode de conversion des noms de symbole et éventuellement la convention d'appel, c'est tout. En plus un programme avec ça dedans n'est pas un programme C, par définition.

Je retrouve plus mon post hélas, alors je vais te remettre des exemples ici (si qqn retrouve mon post, il peut poster le lien svp)

typedef short bool;
struct S {int a; int b;};
void fonction(struct S);
[...]
fonction( (struct S){42, 24} );
struct S {int a; int b;};
[...]
struct S variable = {.a = 42};
void fonction(int n) {
    float tableau[n];
    [...]
}
extern void fonction_externe();
[...]
fonction_externe(42);
enum ensemble { premier, second, troisieme, };long long x;
struct lagrandestructure {
    struct unepetitestructure {
        [...]
    } a;
    int b;
};
struct unepetitestructure  variable;


Ca me saoule de continuer, mais tu vois déjà tous ces morceaux de code sont du C tout ce qu'il y a de plus valide (norme C99). Aucun ne forme un extrait de code C++ valide.

20

Forcement le C++ est basé sur le C89 et pas le C99...

struct S {int a; int b;};
[...] struct S variable = {.a = 42};

C'est du C99 ça ??? ou du GNU C ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

21

J'ai déjà répondu à cette question.
Quant au C89, une partie des exemples ci dessus sont également du C89 valide (mais pas tous il est vrai).

En plus, à l'inverse je peux aussi te faire des exemples qui sont du C89 valide mais pas du C99 ni du C++ valide (j'en ai pas ci dessus parce que je me suis appuyé sur C99 pour mes exemples).
Juste un petit pour la route, si t'en veux d'autres je peux wink
int main() {
    fonction();
}
(c'est le fichier complet)

22

J'ai une question pour le compilateur on-calc GTC : Pourquoi lorsqu'on utilise la fonction "printf" le texte est-il utilisé avec la fonte 2 ? Est-il possible d'afficher le texte avec la même taille de police que celle du "disp" basic ?
/ JAVA / C / C++ / Cobol /

23

Ca n'a rien à voir avec le compilateur ^^
Hmmm, faut regarder la documentation de la fonction printf dans la doc de tigcc, ptêt que ça répond à la question.
L'idée c'est que même si les développeurs des outils de programmation pour TI ont essayé de faire quelque chose qui ressemble à ce que tu utiliserais sur pc, ce n'est qu'une imitation et y'a des limites. Faut regarder la doc pour les connaitre.

24

Ce que je voulais dire c'est qu'avaec TiGCC sur PC le printf affiche un texte avec la fonte 1 alors qu'avec GTC il l'afficge avec la fonte 2. je ne comprends pas pourquoi l'un ne donne pas le même résultat que l'autre.
/ JAVA / C / C++ / Cobol /

25

bicoze printf ne sont pas codé de la meme maniere (printf n'est pas un fonction offerte pas la TI, mais par la librairie fournie avec le compilo)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

26

./24> Hmm j'aurais dû expliquer plus en détail ce qu'il se passe :

- la fonction printf n'existe pas sur TI (le logiciel de TI, AMS, ne la propose pas aux programmes).
- c'est néanmoins une fonction très utilisée, et qui fait partie de la bibliothèque C standard
- du coup les outils de développement comme TIGCC et GTC fournissent leur propre version de la fonction printf.

=> la fonction printf fournie par TIGCC n'est pas la même que celle fournie par GTC.

Après faut regarder la documentation de TIGCC et celle de GTC pour voir si on peut modifier leur comportement pour qu'elles fassent pareil toutes les deux.

27

Godzil > euh je croyais que le livre de K&R décrivait le C pré-ansi...
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

28

lancelot :
Ce que je voulais dire c'est qu'avaec TiGCC sur PC le printf affiche un texte avec la fonte 1 alors qu'avec GTC il l'afficge avec la fonte 2. je ne comprends pas pourquoi l'un ne donne pas le même résultat que l'autre.

En fait je pense que c'est plutôt une différence qui est liée à la façon dont tu lances tes programmes, pas à une différence dans la lib... (*)

Parce que printf utilise la font en cours, que ça soit la 2 ou la 1... (c'est marqué dans la doc de tigcc) Donc si tu n'as pas défini toi-même (avec FontSetSys) la font à utiliser c'est un comportement indéterminé, qui change selon la dernière font utilisée par l'OS de la TI ^^

(*) : sauf si TIGCC rajoute un truc qui met par défaut la fonte à 1 au début du programme ? peut-être qu'ils ont rajouté ça dans les dernières versions...

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

29

Sally :
Godzil > euh je croyais que le livre de K&R décrivait le C pré-ansi...

la premiere édition oui hehe
pas la seconde smile
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

30

J'arrive pas à enregistrer l'écran avec la fonction "SaveScrState" (en fait, quand j'utilise "RestoreScrState", l'écran n'est pas réaffiché correctement : i.e. : après un clrscr(), la barre d'état disparaît à la fin de l'appel du programme..
/ JAVA / C / C++ / Cobol /