begin process at 2010 03 22 05:42:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

probleme de boucle :'(


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

probleme de boucle :'(

dimanche 27 avril 2008 à 18:10:17 | probleme de boucle :'(

paulina82

Bonjour a tous. j'ecri un programme pour coder des caracteres. comme j'arivais pas avec strcat j'ai esayé une autre methode. c'est deja mieu mais c'est pa encor ca :( je pense qu'il y a un probleme avec ma boucle. mais je sais pas comment le coriger. en gros mon programme consiste a coder des caracteres. le but c'est de faire la fonction 'construction_binaire' .elle doi remplire un tableau a 2 dimension. pour cela on utilise une fonction 'codage' qui rempli des colonnes. elle met des '0' du "debut" jusqu'a "k" et des "1" de "k+1" jusqu'a "fin". donc qund on execute 'construction_binaire' dans la 1er colonne je devrais avoir des '0' jusqu'a "k" et des '1' ensuite. ensuite dans la 2eme colonne on doit redecoupe la plage des '0' et des '1' et ainsi de suite dans chaque colonne tan que on puise plus decoupé. dans mon exemple je devrait obtenir : 00000 00001 0001 0010 0011 010 011 100 101 11 mais voila ce que j'obtient : 000000000 000000001 00011111 001 001 01 01 1 1 1 si quelqu'un sais que ce qui cloche ca seré super sympa car je n'arive vraiment pas. je vous remercie d'avance pour votre reponse
dimanche 27 avril 2008 à 18:15:45 | Re : probleme de boucle :'(

paulina82

Oups j'ai oublié de joindre le prog :/ #include #include #include #include #include #include #include #include #include #define L 10 #define C 10 int cpt=0; void trier_croissant(int tab[],int taille); int indice_coupure(int tableau[], int g, int d); void codage(char tab[L][C],int tab_freq[],int debut,int fin,int colonne); void initialisation(char tab[L][C]); void construction_binaire(char tab[L][C], int tab_freq[],int debut,int fin); void trier_croissant(int tab[],int taille){ int i,j; int min; int temp; for(i=0; i<= d) { if (SommeG < SommeD) { SommeG += tableau[g]; g++; } else { SommeD += tableau[d]; d--; } } indice=g-1; return indice ; } void codage(char tab[L][C],int tab_freq[],int debut,int fin,int colonne){ int k,i,j; k=indice_coupure(tab_freq, debut,fin); for(i=debut;i<=k;i++){ tab[i][colonne]='0'; } for(j=k+1;j<=fin;j++){ tab[j][colonne]='1'; } /* for (i=0;i<10;i++){ for(j=0;j<10;j++){ printf("%c",tab[i][j]); } printf ("\n"); } */ } void initialisation(char tab[L][C]){ int i,j ; for(i=0;i= 1){ codage( tab,tab_freq, tab_k[j],tab_k[j+1],i); k=indice_coupure(tab_freq, tab_k[j],tab_k[j+1]); tab_k[nb_element+1]=k; } } nb_element++; trier_croissant(tab_k,nb_element+2); } } int main (int argc, char ** argv){ int tab_frequence[10]={1,2,3,4,5,6,7,8,9,10}; char tab[L][C]; int i,j; initialisation(tab); construction_binaire( tab, tab_frequence,0,9); for(i=0;i<10;i++){ for(j=0;j<10;j++){ printf("%c", tab[i][j]); } printf("\n"); } printf("\n"); return (EXIT_SUCCESS); }
dimanche 27 avril 2008 à 18:24:27 | Re : probleme de boucle :'(

paulina82

je m'excuse pour le format. c'est a cause de knopix qui a enlevé tout les passages a la ligne. je redone le code :

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <stdlib.h>
#include<sys/stat.h>

#define L 10
#define C 10


int cpt=0;


void trier_croissant(int tab[],int taille);
int indice_coupure(int tableau[], int g, int d);
void codage(char tab[L][C],int tab_freq[],int debut,int fin,int colonne);
void initialisation(char tab[L][C]);
void construction_binaire(char tab[L][C], int tab_freq[],int debut,int fin);


void trier_croissant(int tab[],int taille){
  int i,j;
  int min;
  int temp;
 


  for(i=0; i<taille ; i++){
 
    for(j=i;j<taille; j++){
      min=tab[i];

      if(tab[j]<min){
    min=tab[j];
           temp=tab[i];
        tab[i]=min;
    tab[j] = temp;

  
      }
    }
   
     
  }
}




int indice_coupure(int tableau[], int g, int d)
{
 
  int  SommeG = 0;
  int SommeD = 0;
  int indice;
 
  while (g <= d)
    {
     
      if (SommeG < SommeD)
    {
      SommeG += tableau[g];
      g++;         
    }     
      else
    {
      SommeD += tableau[d];
      d--;     
    }    
    }      
    
  indice=g-1;
       
  return indice ;
    
 
}






void codage(char tab[L][C],int tab_freq[],int debut,int fin,int colonne){
 
  int k,i,j;

 
  k=indice_coupure(tab_freq, debut,fin);


  
  for(i=debut;i<=k;i++){
    tab[i][colonne]='0';
  }

  for(j=k+1;j<=fin;j++){
    tab[j][colonne]='1';
  }
  /*
    for (i=0;i<10;i++){
    for(j=0;j<10;j++){
    printf("%c",tab[i][j]);
    }
    printf ("\n");
    }
  */
  
 
 
 
}

void initialisation(char tab[L][C]){

  int i,j ;
 
  for(i=0;i<C;i++){
    
    for(j=0;j<L;j++){
      tab[i][j]=' ';
    }
  
  }
   
}


void construction_binaire(char tab[L][C], int tab_freq[],int debut,int fin){


  int k,i,j;
 

  int tab_k[C];
  int nb_element=1;
  
 
  tab_k[0]=debut;
  tab_k[1]=fin;
 
  for (i=1;i<10;i++){
    for(j=0;j<nb_element;j++){
      if((tab_k [j+1] - tab_k[j]) >= 1){
    codage( tab,tab_freq, tab_k[j],tab_k[j+1],i);
        k=indice_coupure(tab_freq, tab_k[j],tab_k[j+1]);
    tab_k[nb_element+1]=k;

      }
         
       }
         nb_element++;    trier_croissant(tab_k,nb_element+2);
   
  }

}




int main (int argc, char ** argv){
  int tab_frequence[10]={1,2,3,4,5,6,7,8,9,10};
  char tab[L][C];
  int i,j;
  
  initialisation(tab);
 
 construction_binaire( tab, tab_frequence,0,9);
 
     for(i=0;i<10;i++){
    
  for(j=0;j<10;j++){
  printf("%c", tab[i][j]);
  }
  printf("\n");
  }
  printf("\n");
 
  return (EXIT_SUCCESS);

}




dimanche 27 avril 2008 à 18:30:01 | Re : probleme de boucle :'(

paulina82

je cvous redone le resultat :
ce que je devrais avoir :
00000
00001
0001
0010
0011
010
011
100
101
11

mais voila ce que j'obtient :
000000000
000000001
00011111
001
001
01
01
1
1
1


Cette discussion est classée dans : boucle, programme, probleme, colonne, coder


Répondre à ce message

Sujets en rapport avec ce message

Probleme Boucle for [ par centaure59 ] Bonjour,je débute en C, l'habitude je programme en visual basic.Je suis en train de faire un programme pour un pic 16f88,mon probleme je n'arrive pas Probleme pour un programme (jule cesar) [ par skill59 ] Bonsoir à tous, Voici mon programme: // Codage Jules César #include #include using namespace std; int main() { int i,longueur; string cla besoin d'aide pour un probleme avec les liste chainees [ par boulhech27 ] bonjou à tous. voici mon probleme. je n'arrive pas à trouver comment chercher le nombre d'occurence dans ma liste chainéevu que je copie des string d' mettre mon programme dans une boucle [ par flowneo ] bonjour, ce programme permet de donner le nombre de "e" dans un mot grâce à une fonction, mais il faudrait que je fasse une boucle pour qu'a chaque f probleme pour compiler un programme [ par astrocybernaute ] salut je suis interessée par un programme deposé sur le site sur ce lien :   http://www.cppfrance.com/codes/IA-APPRENTISSAGE-AUTOMATISE-BCPLUSPLUS-V6_ j'ai un probleme (text en coleur) [ par zaitaahmed ] Bonjour, je suis etudiant dans la 1ere année université,j'ai un probleme dans ma Bibliothèque exactement le fichier ( conio.h ou conio.c),parce que j Probleme urgent !! [ par julnad ] Mon problème est que j'ai réalisé un programme en C et qu'il faut le traduire en C++. L'important est qu'il faut le faire rapidement et le C++ c'est p Probleme sur un programme qui calcule un pgcd [ par El loco ] Voila j ai un probleme sur le programme suivant, il marche correctement avec une grande serie de nombres mais quand je tape 15 et 32 il me donne un pg probleme de boucle!!! :( [ par matteokun ] matteokunBonjour,Je suis débutant en C++ et j'essai de réaliser le jeu du pendu en C++ mais je rencontre quelques difficultées sur une boucle...Biensu


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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 : 0,265 sec (4)

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