begin process at 2012 02 10 08:23:18
  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 Programmation en Csur le probleme de dame [ par sozy1217 ] salut a tous quelqu'un pourrait m'aider sur un programme en C concernant le jeu de dames le programme au fait doit nous dire le nombre de dames que l' probleme pagefile et programme C [ par ar1du62 ] Bonjour ! Voila my soucy ^^ <- qui me fais pas rire en fait : J'ai créé un programme qui tourne toute la journée sur une bécane windows xp et qui en 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 affichage de cmd.exe en c [ par nevermind79 ] Salut à tous alors voila mon problème: je programme en c sous dev c++ et mon programme lance un autre executable. Il le lance grave à system("prog.ex quel instruction utiliser [ par manyyy67 ] Bonjour, Je debute en c++, je suis charger des faire quelque ameliorations sur un (gros) programme professionel en c++(le IE est visual C++ 6 et le pr


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 : 3,713 sec (3)

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