NewbieContest

Programmation => Langages Web => Discussion démarrée par: alixking le 03 Avril 2006 à 16:14:46



Titre: [javascript] Que signifie les "++" ?
Posté par: alixking le 03 Avril 2006 à 16:14:46
Dans le code suivant :

s=0;
var nb=1000;
for(i=1;i<=nb;i++)
{a$=i.toString()
for(j=0;j<a$.length;j++)
{if (a$.charAt(j)=="0") {s++}


Ca veut dire quoi i++, s++ et j++ s'il vous plait ?


Titre: [javascript] Que signifie les "++" ?
Posté par: Folcan le 03 Avril 2006 à 16:23:49
Les ++ signifie que il rajoute +1 a la valeur qui existe deja.

Si i est egale a 1 au depart, alors a chaque fois qu'il va rencontrer un i++, il rajoutera 1. Si la boucle fait 1000 tours, alors i a la fin vaudra 1001.


Et a l'avenir, choisi des titres plus claire et representatif de ta question s'il te plait, sinon nous nous verrons dans l'obligation de les supprimer sans meme y repondre.
Merci


Titre: [javascript] Que signifie les "++" ?
Posté par: Luther le 03 Avril 2006 à 16:57:58
i++ équivalent à i = i + 1
i-- équivalent à i = i - 1
i+=1 équivalent à i = i  + 1

etc..

c'est des raccourcis


Titre: [javascript] Que signifie les "++" ?
Posté par: Folcan le 03 Avril 2006 à 17:02:50
----------------------
De Alixking :

Je suis désolé de demander tout le temps de l'aide mais lecode suivant :

for(i=1;i<=nb;i++)


Veut bien dire, pour i=1, et à la fin on rajoute +1 à i mais que veut dire i<=nb ?
----------------------------

Cela signifie : si i est inferieur ou egale a nb.
L'expression complete signifie :


for(i=1;i<=nb;i++)
Pour (avec au debut de la boucle i à 1 ; tant que i est inferieur ou egale a nb ; a chaque tour on rajoute +1 a i) {
On execute le code
}

PS: Revoi tes cours de JavaScript et la notion de boucle...


Titre: [javascript] Que signifie les "++" ?
Posté par: alixking le 03 Avril 2006 à 17:08:47
Merci


Titre: [javascript] Que signifie les "++" ?
Posté par: Invit le 03 Avril 2006 à 17:37:52
En fait l'explication du "++" tiens au fait (historique uniquement concernant le javascript ? je sais pas) qu'en C on trouve la même syntaxe

"i++;" incrémente la variable i, tout simplement, comme "i--;" la décrémente

En fait ça a un sens (on pourrait très bien écrire "i += 1;" ça revient au même dans les faits) du fait que le C étant un langage compilé, il est donc transcodé en langage machine (assembleur, c'est kif kif on va dire pour entrer dans les subtilités de langage), et en assembleur, on peut incrémenter une valeur en mémoire de plusieurs façon également

mettons que notre variable, notre valeur en mémoire s'appelle AX, pour l'incrémenter on peut soit écrire en assembleur :

ADD AX, 1

Soit

INC AX

Qui va augmenter la valeur de 1 automatiquement sans qu'on ait besoin de le préciser, c'est implicite

"Oui mais alors, à quoi ça sert de faire la distinction puisque ça revient au même ?"
-> C'est une très bonne question, je vous remercie de me la poser

Tout simplement parceque en assembleur "INC AX" ça correspond à mettons 0x40 en langage machine (hexadécimal), donc 1 seul octet permet de dire au processeur "augmente la valeur de AX de 1"
Tandis que - toujours en assembleur - "ADD AX, 1" correspondra disons à 0x05, 0x01, 00 (le fameux "1" qu'on ajoute, on le retrouve sur le deuxieme octet) donc le processeur aura à traiter 3 octets pour arriver exactement au même résultat.

Bon, 3 octets au lieu d'un c'est pas énorme, d'autant que les processeurs actuels traitent des millions d'instructions à la seconde, mais justement, c'est petites instructions, si elles reviennent souvent, à force de perdre un peu de temps par ci, un peu de temps par là, on se retrouve avec un programme qui est globalement lent (dans une certaine mesure, c'est une caricature, c'etait valable surtout autrefois à l'époque du crétacé et des 486, puis est arrivé Pentium et là, ce fut le drame, bref...)

En résumé, quand vous employez "++" pour incrementer votre code, c'est le premier pas vers son optimisation (sur un plan rapidité d'exécution)
On peut également comprendre pourquoi on dit souvent que le C est un langage proche de la machine, typiquement parceque les instructions dans le code source en C on une influence directe sur le code machine et qu'on en a une maitrise assez fine si on sait utiliser C

Voilou :)


Titre: [javascript] Que signifie les "++" ?
Posté par: Folcan le 03 Avril 2006 à 17:50:07
C'est un grand malade...

Tu lui demande "pourquoi i++"
Et il te sort un cours d'assembleur, ainsi que l'historique de 1952 à aujourd'hui, en passant par les bases du language C, les mathematiques, etc...

Un grand malade...

Merci ;)


Titre: [javascript] Que signifie les "++" ?
Posté par: CommComm le 03 Avril 2006 à 19:05:24
Bon d'accord  mais pourquoi i justement ?
Moi je sais nananère...


Titre: [javascript] Que signifie les "++" ?
Posté par: Folcan le 03 Avril 2006 à 20:03:30
Ouai c'est vrai pourquoi dans tous les exemples/cours, on a choisi "i" ??
Encore "a", on pourrait se dire, premiere lettre de l'alphabet !

ROT9 ??? yééhaaa :?

ou "i" comme "incremente" ou comme "integer" ??