IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Explication d'un code


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut Explication d'un code
    BONJOUR à tous
    J'ai pas compris les lignes de ce code de combinaisons
    je suis besoin d'une personne qui peut le m'expliquer
    Merci d'avance
    ------------
    voici le code
    -----------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <stdio.h>
    #include <string.h>
     
    void bf(char *chaine, int taille_chaine, char *buffer, int longueur, int ind)
    {
    	int i=0;
     
    	if(ind>=longueur)
    	{
    		printf("%s\n",buffer);
    		return;
    	}
     
    	for(i=0; i<taille_chaine; i++)
    	{
    		buffer[ind] = chaine[i];
    		bf(chaine,taille_chaine,buffer,longueur,ind+1);
    	}
    }
     
    int main()
    {
     
     
    char table[]="ABC";
    int i=1;
    	int taille_table = strlen(table);
    	char * buffer = (char*)calloc(taille_table+1,sizeof(char));
     
    	for(i; i<taille_table; i++)
    	{
    		bf(table,taille_table,buffer,i,0);
    	}
     
    	free(buffer);
     
     
     
     
    	system("pause");
    	return 0;
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Qu'est-ce que tu ne comprends pas dans ces quelques lignes de code ? Qu'en as-tu déjà compris ?
    Pourrais-tu utiliser la balise CODE dans ton message autour du code que tu as posté pour nous permettre de mieux y voir ? Merci.

  3. #3
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 513
    Par défaut
    Bonjour,

    C'est normal que tu ne comprennes pas.
    Ce code n'a AUCUN SENS !!!
    Quand je l'ai exécuté, avant la désallocation du buffer, celui-ci contenait la chaîne "CC".

    On dirait que l'intention de l'auteur était de copier le contenu de la chaîne table dans la variable buffer, avant de désallouer celle-ci.
    Alors, l'auteur a hésité entre une boucle for dans le main, une boucle for dans la fonction bf et une récursion dans la fonction bf.
    Finalement, il a fait un joyeux mélange des trois, avec des erreurs d'indices.

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Je ne suis pas d'accord avec Pyramidev ... mais c'est vrai que pour caler l'algo c'est brutal/ violent

    En gros tu vas avoir, une table (la liste des caractères) et un buffer.

    Cette procédure va recopier la table des caractères 1 à 1 dans le buffer à l'indice ind.
    Mais avant de passer au caractère suivant à la case ind, il va faire de même sur la case à côté ind + 1 si [/ tant que] la longueur n'est pas nulle.

    Je pense à un cadenas à chiffre dont on fait défiler les chiffres, roue par roue, de la gauche vers la droite (ou l'inverse)


    Et un affichage intervient lorsqu'on est au bout de la longueur

  5. #5
    Membre confirmé Avatar de awesomeman
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 166
    Par défaut
    la commande pause existe ?? j'ai essayé sur dans un terminal, ca ne trouve pas .
    c'est une commande windows ?

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 475
    Par défaut
    Citation Envoyé par awesomeman Voir le message
    c'est une commande windows ?
    Oui, c'est bien une commande DOS/Windows. C'est très utilisé dans les programmes des débutants pour éviter que la fenêtre se referme juste après la fin du programme. C'est aussi propre qu'utiliser « system("cls"); » pour effacer l'écran…

Discussions similaires

  1. Explication sur du code javascript
    Par griese dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/07/2006, 09h40
  2. explications/commentaires de codes
    Par pascal913 dans le forum Access
    Réponses: 24
    Dernier message: 19/07/2006, 14h01
  3. cherche explication sur du code
    Par abdoulzak dans le forum Langage
    Réponses: 1
    Dernier message: 06/07/2006, 10h23
  4. besoin d'explications sur un code
    Par NAHIAG dans le forum C
    Réponses: 8
    Dernier message: 28/05/2006, 12h37
  5. [javascript] explication d'un code
    Par mzt.insat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/04/2006, 23h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo