question simple sur la boucle "pour"

question simple sur la boucle "pour" - Algo - Programmation

Marsh Posté le 17-11-2002 à 19:45:20    

BOn ma question est assez simple et je pense que la majorité d'entre vous doit connaitre la réponse. Si je fais
nombre=1
pour i de 0 a nombre-1
afficher"*"
 
va t'il m'afficher 1 croix ou 0 croix?autrement di peut on faire 0 tours dans une boucle pour?
Merci d'avance de votre réponse :hello:


---------------
Dormir est un travail comme un autre
Reply

Marsh Posté le 17-11-2002 à 19:45:20   

Reply

Marsh Posté le 17-11-2002 à 20:07:52    

Code :
  1. int i;
  2. int toto=0;
  3. for(i=0;i<toto;i++) printf("boulay" );


 
y aura zéro boulay de marqué

Reply

Marsh Posté le 17-11-2002 à 20:21:57    

[:sygus]

Reply

Marsh Posté le 17-11-2002 à 20:23:58    

:D merci bien


---------------
Dormir est un travail comme un autre
Reply

Marsh Posté le 17-11-2002 à 20:30:34    

Dans ton cas, il rentrera quand même une fois dans la boucle (i = 0).
Mais on peut effectivement avoir une boucle dans laquelle on ne rentre jamais (si tu avais initialisé nombre à 0)

Reply

Marsh Posté le 17-11-2002 à 21:41:42    

Code :
  1. int i,toto=0;
  2. for(i=0;i<toto;i++) printf("boulay" );


 
 [:spamafote]

Reply

Marsh Posté le 18-11-2002 à 13:47:20    

Habituellement, en langage algorithmique, les 2 bornes de la boucle sont incluses dans l'intervalle de valeurs permises pour l'indice de boucle.
 
Pourquoi : parce que le "langage algorithmique" est en fait un Pascal francisé, et qu'en Pascal, on a gardé les implicites des signes mathématiques correspondant genre "somme". En effet, quand on dit "somme de 1 à n des i", on considère bien la somme 1 + 2 + ... + n. Donc 1 et n sont bien inclus.

Reply

Marsh Posté le 18-11-2002 à 23:33:36    

AthlonSoldier a écrit a écrit :

Code :
  1. int i,toto=0;
  2. for(i=0;i<toto;i++) printf("boulay" );


 
 [:spamafote]  




for (int i = 0, int toto = 0; i < toto ; i++) printf("boulay" );
 
J'ai gagné ???
(enfin là ça ne veut plus dire grand chose)
 :D

Reply

Marsh Posté le 19-11-2002 à 16:51:15    

Si le code work, tu as gagné je pense  [:athlonsoldier]

Reply

Marsh Posté le 19-11-2002 à 19:02:25    

Code :
  1. for(;0;printf("boulay" ));


J'ai gagné ?

Reply

Marsh Posté le 19-11-2002 à 19:02:25   

Reply

Marsh Posté le 19-11-2002 à 19:21:13    

Code :
  1. return;
  2. printf("boulay" );

:whistle:


Message édité par mrbebert le 19-11-2002 à 19:22:08
Reply

Marsh Posté le 19-11-2002 à 19:24:58    

Code :
  1. Printf("topicalacon detected" );
  2. return 0;


 
 :lol:

Reply

Marsh Posté le 19-11-2002 à 19:43:57    

Pas bien de changer le code  :o  
 
 
 
 
 
 
 
 [:kazimodo]

Reply

Marsh Posté le 04-12-2002 à 03:59:39    

Code :
  1. ;

Imbattable.
 
Bon, la transcription C  est:

Code :
  1. for(int i=0 ; i<=0 ; ++i)
  2. printf("%d",i);


Ce qui va bien passer une fois dans la boucle.
La borne de fin est incluse grace à "<=" au lieu de "<".
 
En C et C++, on a plutôt l'habitude d'utiliser les bornes assymétriques, de cette façon:
-premier élément inclus (soit iPrem sa position).
-dernier élément exclus (soit iDern sa position).
 
Ce qui a un certain nombre d'avantages:

  • iDern  moins iPrem donne le nombre d'éléments.
  • Quand la liste est vide, iDern vaut iPrem.
  • Les tableaux commençant à 0, c'est la dimension du tableau qui sert de iDern.

Bref, ça évites de mettre des +1 et -1 partout.
 
D'ailleurs, C garantit qu'il est légal de manipuler la position du dernier élément exclu d'un tableau.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed