1


J'aimerai introduire les opérateurs ++ et -- à la syntaxe de l'Azur. Pour les pré-incrémentation et pré-décrémentation, pas de difficulté...

Mais à quelle(s) règle(s) faut-il se référer pour savoir à quel "moment" changer la valeur d'une variable post-incrémentée/décrémentée ?

Merci à vous wink
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.

2

Pardon ? post = après avoir utilisé la valeur, pré c'est avant d'utiliser la valeur
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

3

oui. Pourquoi dis-tu ça ?
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.

4

Ben tu lis la variable dans un registre et tu l'incrementes de suite.
Sinon, c'est le bordel.

5

Ton intelligence ne finira jamais de me metre sur le cul, merci de l'idée rotfl
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.

6

ola!
je pense que l'azur n'est pas destiné a faire des progs ultra optimisés,non?
non vire les effets de bords:
que var++ equivale à (var++)
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

7

arf... plus l'Azur sera proche du C, plus y'a de chances qu'il soit vraiment utilisé !
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

8

En théorie en C quand tu écris la chose suivante :

int a,b;
a = 1;
b = a++ + a++;

"b" doit avoir la valeur 2, et "a" la valeur 3. En effet "a" est supposé être incrémenté deux fois après l'exécution de la ligne entère. Dans la pratique, "b" pourrait très bien avoir la valeur 3, car comme le dit Pphd le compilateur post-incrémente souvent la valeur juste après l'avoir utilisée, pour ne pas tout compliquer inutilement. Par conséquent ce genre d'écriture est fort déconseillé, d'autant que le résultat peut varier selon le niveau d'optimisation d'un même compilo.

plus compliqué : qu'est censé valoir "b" dans le cas suivant :

int a,b;
a = 1;
b = ++a + ++a;

9

b vaut 5, si tout va bien :

le premier ++a exécuté - mais on sait pas lequel - retourne 2 et le deuxième 3
Donc 5
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

10

En pratique ça doit être ça. Mais selon le C Ansi, il me semble que "b" devrait valoir 4. L'explication est un peu vaseuse. En gros, si on considère chaque terme indépendament du reste de l'expression, on s'aperçoit que chacun est censé valoir 2. Partant de ce fait, leur addition est supposé donner 4. Sauf qu'en pratique ça risque fort de donner 5, car cette partie de la norme est difficilement applicable.
Tout ça pour dire qu'entre la définition d'un langage et ce qu'il fait dans la pratique, on s'autorise des differences.

11

janjan2 : Je comprend pas ce que tu veux dire.
squale92 : exact. Si tu veux voir à quoi ressemble l'Azur, c'est ici.

Merci à tous pour votre aide wink
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.

12

> happy de vor que tu est d'accord avec moi.
Je v voir ta démo tt de suite.


J'ai vu...
C vrai que, syntaxiquement, y'a des ressemblances par rapport au C, notament sur l'usage de fonctions.
Les boucles do...while, même remarque...
Par contre, la syntaxe du for semble "léger" différente wink, mais reste compréhensible sans aide.
Les types de variable sont compréhensible, à priori (plus proche de l'ASM que du C, vu que, en fait, on ne déclare pas un type, mais une taille mémoire). Je pige pas torp le pourquo du '+' à côté de certaines déclarations de vars ? C'est pour dire que c'est unsigned, et donc toujours positif ?

void @SvgEcran, ça correspond aux pointeurs en C ? Ou c complétement aute chose de différents ? (enfin, vu l'usage, ça doit être un peu comme des pointeurs ???)

Le truc qui frappe, c les crochets autour de la déclaration de fonctions et/ou variables... mais bon, on s'y fait vite grin

Bonne continuation...

[edit]Edité par squale92 le 08-11-2001 à 17:19:00[/edit]
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

Tu ne t'imagines pas que tu viens de me faire très plaisir smile

Pourquoi ?
Parceque tu as tout compris par toi-même sans aide smilesmile

Un bon point pour l'Azur : on s'y fait ultra-facilement cool
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.

14

A partir du moment où :
1 : il s'agit d'un lagage de programmation de type impératif
2 : IL est adapté à la TI
3 : la syntaxe est proche du C
4 : heu... doit bien y avoir d'autres trucs grin
=> j'arrive en gros à comprendre grin

quasiment tt ce que je sais sur le C, je l'ai appris en mattant des sources non documentés => au bout d'un moment, on s'y habitue sad
Cela dit, c vrai que ct pas dur à comprendre.

=> on s'y fait très facilement...
nuance : on le comprend très facilement...
Par contre, question de programmation en Azur... je peux pas encore dire grin
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

Squale92 : Peut-être qu'à la base c'est un langage que l'on appelle le Pascal ??????? wink

16

Arf... la majorité des langages utilisés de nos jours (en lagage imépratifs, bien sûr) sont basés sur l'ALGOL (qui n'a jamais pu être utilisé je crois, vu qu'il était pas mal avancé sur son temps)
=> la majorité des langage se ressemblent (C, C++, JAVA, JS, PHP, et autres) => même type de synatxe. Il est heureux que Azur suive cette ligne...

Le Pascal a été fondé justement comme langage d'enseignement (ds une université US me semble-t'il) => il fut pdt longtemps considéré comme le plus simple à utilser pr les débuttants, tt en étant considérable comme assez complet...

=> A la base, l'Azur, le C, le Pascal et autres ont tous la même origine...
Je ne suis pas sûr que l'Azur soit basé sur le Pascal, mais on peut dire qu'il est de la même famille grin
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

17

ZdRubAl : plus maintenant. Il se base sur le C. J'ai revu la syntaxe pendant les vacances d'été, avant il ressemblait beaucoup au Pascal effectivement.

squale92 : le Pascal a été inventé dans une université SUISSE ! He oui wink

>> Je ne suis pas sûr que l'Azur soit basé sur le Pascal, mais on peut dire qu'il est de la même famille
Aussi proche que du Pascal que le C...
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.

18

Thibaut> arf... merde alors sad
Et le pire, c que tu as raison sad Enfin, je saurai quelque chose de juste sur ce langage qui porte mon nom grin

Je viens d'aller faire une petite recherche, et voila son résultat concernant l'histoire du Pascal :
--------------------------------------------------------------------
Ce langage a été créé en 1969 à l'école polytechnique de ZURICH par N. WIRTH. Il a été conçu pour permettre d'enseigner la programmation comme une science. Ce langage est à la base d'une nouvelle méthode de programmation : la programmation structurée, et c'est pour cette raison que ce langage a eu un tel succès dans l'enseignement. Il s'agit d'un langage de 3ème génération.

En 1975, PASCAL a très largement pénétré le monde de la recherche et des universités. Pour son développement, PASCAL devait être accepté dans le monde industriel, ce qui a été plus ou moins bien réussi grâce a :

De bonnes relations entre les universités et les industries (aux USA !)
Les caractéristiques propres à PASCAL (simplicité, fiabilité)
L'effort du DoD (département de la défense américaine). Dés 1975, il y a création d'un groupe de travail (High Order Language Working Group) chargé de déterminer les caractéristiques d'un langage de haut niveau bien adapté au développement de ses applications militaires et permettant d'apporter des réponses à la crise du logiciel. L'étude a montrée qu'un nouveau langage devait être créé à partir du PASCAL.
A l'époque, c'est à dire la préhistoire, Pascal a été adopté par de nombreux constructeurs comme langage de développement (CRAY Computer, ICL, Texas Instruments...), et surtout, le compilateur PASCAL a été rapidement disponible sur les micro-ordinateurs.
-----------------------------------------------------

Par contre, c pas ce que j'avais retenu de mes cours de prog...
mais bon, j'ai du me planter et confondre avc un autre truc...

Pour plus 'infos sur ce langage, voici une page le concernant : http://www.commentcamarche.net/pascal/pascintro.php3
[edit]Edité par squale92 le 08-11-2001 à 18:01:11[/edit]
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

19

Pas mal ta page :
L'essor du Pascal a suivi celle de la micro-informatique, grâce notamment à Philippe Khan, Français bien connu qui a le premier commercialisé un compilateur performant et fiable : Turbo Pascal. Il a fondé la société BORLAND et est actuellement le PDG (CEO) de la société STARFISH.

La bonne époque smile
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.

20

héhé... j'ai pas tout lu...
Mais je suis bon perdant smile
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

21

Blue_Z :
oué c connu c comme pour :
a[i] = i++

22

Blue_Z> le type d'écriture dont tu parles n'est qd même pas non plus très souvent utilisé... heureusement d'ailleurs...
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

23

e me l'a conseillé PpHd, ton code fait en faiti++;a[i]= i-1; Si je parse commC'est ça ?
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.

24

Ca dépend du i qu'il voulait.

i++;a[i]=i-1;
ou
a[i]=i;i++;

Beaucoup - trop - de solutions

Squale, pour le post d'après : ; correspond à la fin de l'instruction. } signifie fin du bloc + fi de l'instruction
[edit]Edité par Miles le 08-11-2001 à 18:23:17[/edit]
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

25

je dirai que non... (ou zalors g pas comrpis)
Qd on met ';', ça ne correspond pas à un passage à la ligne ?
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

26

Il te manque des BASES squale92 eek

Miles : Ca ne dépend pas de ce qu'il veut, ça dépend du compilateur. J'ai bien dit si je parse comme me l'a conseillé PpHdauche vers la droite !!!)
. Dans ce cas je pense que i++;
a[i]= i-1;

// est pareil que

a[i]= i++;

// en respectant les priorités ET les ordres d'interprétation des opérateurs C (tout n'est pas interprété de la g


[edit]Edité par Thibaut le 08-11-2001 à 18:37:11[/edit]
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.

27

arf 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

28

Houlà !

a[i]= i++;

c'est quand même un cas trivial. Si tu le remplaces par :

i++;
a[i]= i-1;

ça n'ira pas du tout sick

Dès que tu vois uen post-incrémentation, mémorise là, puis une fois que tu as compilé la ligne, ajoute les incrémentations. Ca devrait donner un résultat plus cohérent.

29

Surtout que ca devrait etre :
i++
a[i-1] = i -1

30

À mon avis, le plus pratique est que tu traîtes toutes les pré-incrémentations avant l'instruction et toutes les post-incrémentations après l'instruction. L'implémentation la plus facile? Lire la ligne en 3 passes: pré-incrémentations, instructions, post-incrémentations.
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é