begin process at 2012 02 10 23:26:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

boucle qui foire??


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

boucle qui foire??

lundi 12 septembre 2005 à 20:24:35 | boucle qui foire??

CCJ

Membre Club
bonjour.
jai fais ce petit bout de code vite fais mé apres une journé tres lourde 8h 18h bah jarrive pu a trouver de solutions .Le bleme : mon code devrai normalement afficher des codes en boucle mais quelque chose fais foiré tt ca , le code :
#include <cstdio>
#include <cstdlib>
#include <windows.h>
#include <iostream>
#include <time.h>
char l [27];
int inc[7];
int ni[7];
char nc[7];
bool end=false,chiffre[7];

void change(int num)
{
 switch(inc[num])
{
case 0 :ni[num]=0;chiffre[num]=true; break;    
case 1 :ni[num]=1;chiffre[num]=true; break;
case 2 :ni[num]=2;chiffre[num]=true; break;
case 3 :ni[num]=3;chiffre[num]=true; break;
case 4 :ni[num]=4;chiffre[num]=true; break;
case 5 :ni[num]=5;chiffre[num]=true; break;
case 6 :ni[num]=6;chiffre[num]=true; break;
case 7 :ni[num]=7;chiffre[num]=true; break;
case 8 :ni[num]=8;chiffre[num]=true; break;
case 9 :ni[num]=9;chiffre[num]=true; break;
case 10 :nc[num]='a';chiffre[num]=false; break;
case 11 :nc[num]='b';chiffre[num]=false;break;
case 12 :nc[num]='c';chiffre[num]=false;break;
case 13 :nc[num]='d';chiffre[num]=false;break;
case 14 :nc[num]='e';chiffre[num]=false;break;
case 15 :nc[num]='f';chiffre[num]=false;break;
case 16 :nc[num]='g';chiffre[num]=false;break;
case 17 :nc[num]='h';chiffre[num]=false;break;
case 18 :nc[num]='i';chiffre[num]=false;break;
case 19 :nc[num]='j';chiffre[num]=false;break;
case 20 :nc[num]='k';chiffre[num]=false;break;
case 21 :nc[num]='l';chiffre[num]=false;break;
case 22 :nc[num]='m';chiffre[num]=false;break;
case 23 :nc[num]='n';chiffre[num]=false;break;
case 24 :nc[num]='o';chiffre[num]=false;break;
case 25 :nc[num]='p';chiffre[num]=false;break;
case 26 :nc[num]='q';chiffre[num]=false;break;
case 27 :nc[num]='r';chiffre[num]=false;break;
case 28 :nc[num]='s';chiffre[num]=false;break;
case 29 :nc[num]='t';chiffre[num]=false;break;
case 30 :nc[num]='u';chiffre[num]=false;break;
case 31 :nc[num]='v';chiffre[num]=false;break;
case 32 :nc[num]='w';chiffre[num]=false;break;
case 33 :nc[num]='x';chiffre[num]=false;break;
case 34 :nc[num]='y';chiffre[num]=false;break;
case 35 :
nc[num]='z';
inc[num]=-1;
chiffre[num]=false;
if (num < 6)
{
change(num+1);
}
if(num=6)
{
end=true;
}
break;
}
inc[num]++;
}

void increment_2()
{
change(2);
}
void increment_3()
{
change(3);   
}
void increment_4()
{
change(4);
}
void increment_5()
{
change(5);
}
void increment_6()
{
change(6);
}
void pass()
{
if (chiffre[1]==true)
{
printf("%d",ni[1]);
}else
{
printf("%c",nc[1]);  
}
if (chiffre[2]==true)
{
printf("%d",ni[2]);
}else
{
printf("%c",nc[2]);  
}
if (chiffre[3]==true)
{
printf("%d",ni[3]);
}else
{
printf("%c",nc[3]);  
}
if (chiffre[4]==true)
{
printf("%d",ni[4]);
}else
{
printf("%c",nc[4]);  
}
if (chiffre[5]==true)
{
printf("%d",ni[5]);
}else
{
printf("%c",nc[5]);  
}
if (chiffre[6]==true)
{
printf("%d",ni[6]);
}else
{
printf("%c",nc[6]);  
}
printf("%d %d %d %d %d %d \n",inc[1],inc[2],inc[3],inc[4],inc[5],inc[6]);
}

int main()
{
inc[1]=0;
inc[2]=0;
inc[3]=0;
inc[4]=0;
inc[5]=0;
inc[6]=0;
ni[1]=0;
ni[2]=0;
ni[3]=0;
ni[4]=0;
ni[5]=0;
ni[6]=0;
nc[1]=0;
nc[2]=0;
nc[3]=0;
nc[4]=0;
nc[5]=0;
nc[6]=0;
for(1;1;1)
{
if(end==true)
{
break;
}    
change(1);
pass();                  
}
system("PAUSE");
}
j'admet que c long alors merci a ceux qui aurait rien que le courage d'avoir lu la source
 merci d'avance

Si l'informatique été de l'alcool il y aurait des genies partout
lundi 12 septembre 2005 à 22:01:10 | Re : boucle qui foire??

Sizlaa

Ceci n'est pas une boucle,
Une boucle est repérée par un Whils, un Goto, ou alors un for(*;*;*);
DOnc ton code ne pourra archer en boucle,
Tu peux largement améliorer grace a un while ou un for ;)
Donc bonne chance!
++

Comme on dit a Varsovie:"Boire ou Conduire de toutes façon on a pas de voiture"
lundi 12 septembre 2005 à 22:26:53 | Re : boucle qui foire??

CCJ

Membre Club
euh ba si il y a une boucle :
int main()
{
inc[1]=0;
inc[2]=0;
inc[3]=0;
inc[4]=0;
inc[5]=0;
inc[6]=0;
ni[1]=0;
ni[2]=0;
ni[3]=0;
ni[4]=0;
ni[5]=0;
ni[6]=0;
nc[1]=0;
nc[2]=0;
nc[3]=0;
nc[4]=0;
nc[5]=0;
nc[6]=0;
for(1;1;1)
{
if(end==true)
{
break;
}    
change(1);
pass();                  
}
system("PAUSE");
}

Si l'informatique été de l'alcool il y aurait des genies partout
mardi 13 septembre 2005 à 09:03:21 | Re : boucle qui foire??

buno

Administrateur CodeS-SourceS
A première vue, y'a un souci dans les indices de tableau: ça doit aller de 0 à N-1 (N étant la taille du tableau).
Sinon, "quelquechose fait tout foiré"... c'est-à-dire??

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mardi 13 septembre 2005 à 18:57:34 | Re : boucle qui foire??

CCJ

Membre Club
bah la boucle ne sexecute q'une seule foi

Si l'informatique été de l'alcool il y aurait des genies partout
mercredi 14 septembre 2005 à 09:58:33 | Re : boucle qui foire??

buno

Administrateur CodeS-SourceS
Que doit faire ton code exactement? Je ne comprends pas très bien...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mercredi 14 septembre 2005 à 11:57:08 | Re : boucle qui foire??

CCJ

Membre Club
il devrai faire defilier des mot de cette facon :
000000
100000
200000
300000
...
a00000
b00000
...
a10000
b10000
...
aa0000
ba0000
voila

Si l'informatique été de l'alcool il y aurait des genies partout
mercredi 14 septembre 2005 à 12:15:33 | Re : boucle qui foire??

buno

Administrateur CodeS-SourceS

J'ai repris ton code, je l'ai "optimisé" et corrigé.
Est-ce que ça te convient?

#include <iostream>


int inc[7];       // incréments
int ni[7];        // codes en chiffres
char nc[7];       // codes en lettres
bool end=false;   // condition de fin       
bool chiffre[7];  // chiffre ou lettre?


// change la valeur du digit
void change(int num)
{
  if (inc[num]<10) // c'est un chiffre
  {
    ni[num]=inc[num];
    chiffre[num]=true;
  }
  else // c'est une lettre
  {
    if (inc[num]==35)
    {
      // c'est la fin
      inc[num]=-1;
      chiffre[num]=false;

      end=(num>=6);
    }
    else
    {
      // Ajout de la valeur 87 pour trouver le code ascii de la lettre ('a'=97)
      nc[num]=inc[num]+87;
      chiffre[num]=false;
      if (num<6)
        change(num+1);
    }
  }

  inc[num]++;
}


// affichage
void pass()
{
  // pour chaque digit, test si c'est un chiffre ou une lettre
  // et affichage en conséquence
  for (int i=0; i<7; i++)
    if (chiffre[i])
      printf("%d",ni[i]);
    else
      printf("%c",nc[i]);

  printf("  %d %d %d %d %d %d %d \n",inc[0], inc[1],inc[2],inc[3],inc[4],inc[5],inc[6]);
}


int main()
{
  // initialisation
  inc[0]=1;
  inc[0]=3;
  inc[0]=5;
  inc[0]=7;
  inc[0]=11;
  inc[0]=13;
  inc[0]=17;

  // "calcul" du code
  while (!end)
  {
    change(0);
    pass();
  }

  // fin
  system("PAUSE");
  return 0;
}

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

mercredi 14 septembre 2005 à 12:29:54 | Re : boucle qui foire??

CCJ

Membre Club
euh le code est bien mais si le mien ne lest pas c parceke comme ca ca affiche pas toutes les posibilitée
merci de ton aide mais c toujour pas ca :s

Si l'informatique été de l'alcool il y aurait des genies partout
mercredi 14 septembre 2005 à 14:05:21 | Re : boucle qui foire??

buno

Administrateur CodeS-SourceS
Tu veux obtenir TOUS les codes à 7 digits compris entre 0000000 et zzzzzzz?
Dans ce cas, 2 boucles for suffisent...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

1 2

Cette discussion est classée dans : chiffre, case, break, num, nc


Répondre à ce message

Sujets en rapport avec ce message

randomize [ par niconico ] salut à tous, je débute en C++ et j'utilise VC++ pour compiler mes prog :le prob :avec ce petit programe (plus bas)il me sort 2 erreurs :error C2065: Qui veut gagné 50Frs!!!!!!!!!!!!!! [ par Akil ] Bonjour à tousJe cherche quelqu'un qui sait bien programmer en langage C++ et Vb.J'ai un projet d'éditeur de texte Farsi (Righttoleft)en C++ et je vou faire progresser....une progress bar !! [ par Xs ] c tout bete, mais je sais pas comment faire. ou plutot lui dire a quoi comparer sa progression par rapport au chargement de quelque chose.mon code : # objet non initialisé (API Win32) [ par Xs ] salut !voici mon code, d'abord :#include #include #include "resource.h"LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){cha positions [ par Xs ] salut ! je cherche et je trouve pas, ou alors je sais pas m'en servir, comment on recupere la position actuelle du fenetre(dialogbox).j'ai essayé des pu#!@'{&=!:; de memoire !!! [ par Xs ] salut.voila, presque chacun de mes prog, j'obtiens une erreur memoire du type "l'adresse "0x0001834F" ne peut etre "read"/"written"........."c 'est t API Win32, problème de variable [ par bouba ] Salut a tous, j'ai un blem de variable dans mon programme. Voici mon code source.LPSTR Path="";LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM Problème avec WM_KEYDOWN: [ par cognac ] Pourquoi est-ce que "j" est toujours égal à 2 lorsque je presse F1(même la première fois). Je pensais qu'à chaque fois que je presse F1 "j" augmente d ou sont les erreurs? [ par nazca ] Le Zero de la programmationNazcaj'aimerai savoir si quelqu'un pourrai me dire ou son les erreur dans mon programme,car apres la compilation il me dit figeage de boite de dialogue [ par nazca ] Le Zero de la programmationNazcasalut a tousje voudrais savoir si kelkun pourrai me dire pourkoi ma dialogue box fige kan je met un programme de sauve


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,254 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales