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

JavaScript Discussion :

Récursivité pour résolution de grille sudoku


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    octobre 2006
    Messages
    967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : octobre 2006
    Messages : 967
    Points : 380
    Points
    380
    Par défaut Récursivité pour résolution de grille sudoku
    Bonjour,

    J'ai adapté un code C

    Celui-ci fonctionne : https://onlinegdb.com/SySQ2jmL4

    J'ai donc ceci :
    Code HTML : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    <!doctype html>
    <html lang="fr">
    	<head>
    		<meta charset="utf-8">
    		<title>Sudoku</title>
    		<script>
                            var grille = [];
                            /*grille.push([6, 1, 8, 0, 7, 2, 0, 0, 0]);
                            grille.push([0, 0, 0, 1, 9, 6, 0, 7, 0]);
                            grille.push([7, 0, 0, 0, 0, 0, 3, 1, 0]);
                            grille.push([0, 9, 0, 0, 0, 4, 7, 6, 0]);
                            grille.push([1, 0, 0, 0, 0, 0, 0, 0, 5]);
                            grille.push([0, 7, 2, 5, 0, 0, 0, 8, 0]);
                            grille.push([0, 5, 6, 0, 0, 0, 0, 0, 8]);
                            grille.push([0, 3, 0, 8, 2, 5, 0, 0, 0]);
                            grille.push([0, 0, 0, 6, 1, 0, 4, 5, 3]);*/
                            
                            grille.push([9,0,0,1,0,0,0,0,5]);
                            grille.push([0,0,5,0,9,0,2,0,1]);
                            grille.push([8,0,0,0,4,0,0,0,0]);
                            grille.push([0,0,0,0,8,0,0,0,0]);
                            grille.push([0,0,0,7,0,0,0,0,0]);
                            grille.push([0,0,0,0,2,6,0,0,9]);
                            grille.push([2,0,0,3,0,0,0,0,6]);
                            grille.push([0,0,0,2,0,0,9,0,0]);
                            grille.push([0,0,1,9,0,4,5,7,0]);
                            
                            function AbsentLigne(numero, grille, ligne)
                            {
                                    for( i=0; i<9; i++ )
                                    {
                                            if( grille[ligne][i] == numero )
                                            {
                                                    return false;
                                            }
                                    }
                                    return true;
                            }
                            
                            function AbsentColonne(numero, grille, colonne)
                            {
                                    for( i=0; i<9; i++ )
                                    {
                                            if( grille[i][colonne] == numero )
                                            {
                                                    return false;
                                            }
                                    }
                                    return true;
                            }
                            
                            function AbsentCarre(numero, grille, ligne, colonne)
                            {
                                    i = ligne - (ligne % 3);
                                    j = colonne - (colonne % 3);
                                    
                                    for( ligne=i; ligne<i+3; ligne++ )
                                    {
                                            for( colonne=j; colonne<j+3; colonne++ )
                                            {
                                                    if( grille[ligne][colonne] == numero )
                                                    {
                                                            return false;
                                                    }
                                            }
                                    }
                                    return true;
                            }
                            
                            function Validation(grille, position)
                            {                               
                                    // Si on est à 81, on a validé la grille car on sort de celle-ci
                                    if( position == 9*9 )
                                    {
                                            return true;
                                    }
                                    
                                    //alert('Position : ' + position);
                                    
                                    // On récupère les coordonnées de la case
                                    ligne = Math.floor(position / 9);
                                    colonne = position % 9;
                                    
                                    //alert('Ligne : ' + ligne);
                                    //alert('Colonne : ' + colonne);
                                    
                                    // Si la case n'est pas vide, on passe à la suivante
                                    if( grille[ligne][colonne] != 0 )
                                    {
                                            return Validation(grille, position+1);
                                    }
                                    
                                    // On essaie chaque chiffre
                                    for( numero=1; numero<=9; numero++ )
                                    {
                                            // On vérifie si le chiffre est autorisé
                                            if( AbsentLigne(numero, grille, ligne) && AbsentColonne(numero, grille, colonne) && AbsentCarre(numero, grille, ligne, colonne) )
                                            {
                                                    // alert('Position : ' + position + ' (Ligne : ' + ligne + ' / Colonne : ' + colonne + ') - Numéro : ' + numero);
                                                    
                                                    // On enregistre le chiffre dans la case
                                                    grille[ligne][colonne] = numero;
                                                    
                                                    console.log('Position : ' + position);
                                                    console.log('Ligne : ' + ligne);
                                                    console.log('Colonne : ' + colonne);
                                                    console.table(grille);
                                                    
                                                    if( Validation(grille, position+1) )
                                                    {
                                                            return true;
                                                    }
                                            }
                                    }
                                    
                                    alert('Pas de solution trouvée pour la case - Position : ' + position + ' (Ligne : ' + ligne + ' / Colonne : ' + colonne + ') !');
                                    
                                    // Tous les chiffres ont été testés, aucun n'est bon, on réinitialise la case
                                    grille[ligne][colonne] = 0;
                                    
                                    return false;
                            }
                            
                            alert(Validation(grille, 0));
                    </script>
    	</head>
    	<body>
     
    	</body>
    </html>

    Il ne fonctionne cependant pas en JavaScript.
    J'arrive dans une situation où la seule valeur restante est 7 et elle n'est pas possible car déjà présente dans une des 3 conditions.

    Je pense avoir un problème avec la récursivité, principalement sur le retour en arrière.

    Cependant, je n'arrive pas à trouver à quel endroit le problème se pose.

    Votre aide est la bienvenue.

    Merci par avance pour votre aide,
    ZiP

  2. #2
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    octobre 2006
    Messages
    967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : octobre 2006
    Messages : 967
    Points : 380
    Points
    380
    Par défaut
    Bonsoir,

    J'ai avancé dans mon analyse :
    Code HTML : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    <!doctype html>
    <html lang="fr">
    	<head>
    		<meta charset="utf-8">
    		<title>Sudoku</title>
    		<script>
                            var magrille = [];
                            /*grille.push([6, 1, 8, 0, 7, 2, 0, 0, 0]);
                            grille.push([0, 0, 0, 1, 9, 6, 0, 7, 0]);
                            grille.push([7, 0, 0, 0, 0, 0, 3, 1, 0]);
                            grille.push([0, 9, 0, 0, 0, 4, 7, 6, 0]);
                            grille.push([1, 0, 0, 0, 0, 0, 0, 0, 5]);
                            grille.push([0, 7, 2, 5, 0, 0, 0, 8, 0]);
                            grille.push([0, 5, 6, 0, 0, 0, 0, 0, 8]);
                            grille.push([0, 3, 0, 8, 2, 5, 0, 0, 0]);
                            grille.push([0, 0, 0, 6, 1, 0, 4, 5, 3]);*/
                            
                            magrille.push([9,0,0,1,0,0,0,0,5]);
                            magrille.push([0,0,5,0,9,0,2,0,1]);
                            magrille.push([8,0,0,0,4,0,0,0,0]);
                            magrille.push([0,0,0,0,8,0,0,0,0]);
                            magrille.push([0,0,0,7,0,0,0,0,0]);
                            magrille.push([0,0,0,0,2,6,0,0,9]);
                            magrille.push([2,0,0,3,0,0,0,0,6]);
                            magrille.push([0,0,0,2,0,0,9,0,0]);
                            magrille.push([0,0,1,9,0,4,5,7,0]);
                            
                            function AbsentLigne(numero, grille, ligne)
                            {
                                    for( i=0; i<9; i++ )
                                    {
                                            if( grille[ligne][i] == numero )
                                            {
                                                    return false;
                                            }
                                    }
                                    return true;
                            }
                            
                            function AbsentColonne(numero, grille, colonne)
                            {
                                    for( i=0; i<9; i++ )
                                    {
                                            if( grille[i][colonne] == numero )
                                            {
                                                    return false;
                                            }
                                    }
                                    return true;
                            }
                            
                            function AbsentCarre(numero, grille, ligne, colonne)
                            {
                                    i = ligne - (ligne % 3);
                                    j = colonne - (colonne % 3);
                                    
                                    for( ligne=i; ligne<i+3; ligne++ )
                                    {
                                            for( colonne=j; colonne<j+3; colonne++ )
                                            {
                                                    if( grille[ligne][colonne] == numero )
                                                    {
                                                            return false;
                                                    }
                                            }
                                    }
                                    return true;
                            }
                            
                            function Validation(grille, position)
                            {                               
                                    // Si on est à 81, on a validé la grille car on sort de celle-ci
                                    if( position == 9*9 )
                                    {
                                            return true;
                                    }
                                    
                                    //alert('Position : ' + position);
                                    
                                    // On récupère les coordonnées de la case
                                    ligne = Math.floor(position / 9);
                                    colonne = position % 9;
                                    
                                    //alert('Ligne : ' + ligne);
                                    //alert('Colonne : ' + colonne);
                                    
                                    // Si la case n'est pas vide, on passe à la suivante
                                    if( grille[ligne][colonne] != 0 )
                                    {
                                            console.log('Case : ' + position + ' -> La case est déjà renseignée !');
                                            return Validation(grille, position+1);
                                    }
                                    
                                    // On essaie chaque chiffre
                                    for( numero=1; numero<=9; numero++ )
                                    {
                                            console.log('Case : ' + position + ' - Valeur testée : ' + numero);
                                            // On vérifie si le chiffre est autorisé
                                            if( AbsentLigne(numero, grille, ligne) && AbsentColonne(numero, grille, colonne) && AbsentCarre(numero, grille, ligne, colonne) )
                                            {
                                                    //alert('Position : ' + position + ' (Ligne : ' + ligne + ' / Colonne : ' + colonne + ') - Numéro : ' + numero);
                                                    
                                                    console.log('Case : ' + position + ' -> Valeur renseignée : ' + numero);
                                                    // On enregistre le chiffre dans la case
                                                    grille[ligne][colonne] = numero;
                                                    
                                                    //console.log('Position : ' + position);
                                                    //console.log('Ligne : ' + ligne);
                                                    //console.log('Colonne : ' + colonne);
                                                    //console.table(grille);
                                                    
                                                    if( Validation(grille, position+1) )
                                                    {
                                                            return true;
                                                    }
                                            }
                                    }
                                    
                                    //alert('Pas de solution trouvée pour la case - Position : ' + position + ' (Ligne : ' + ligne + ' / Colonne : ' + colonne + ') !');
                                    
                                    console.log('Case : ' + position + ' -> Reset');
                                    // Tous les chiffres ont été testés, aucun n'est bon, on réinitialise la case
                                    grille[ligne][colonne] = 0;
                                    
                                    return false;
                            }
                            
                            alert(Validation(magrille, 0));
                    </script>
    	</head>
    	<body>
     
    	</body>
    </html>

    J'ai le résultat ci-dessous :
    Case : 0 -> La case est déjà renseignée ! index.html:90:6
    Case : 1 - Valeur testée : 1 index.html:97:6
    Case : 1 - Valeur testée : 2 index.html:97:6
    Case : 1 -> Valeur renseignée : 2 index.html:103:7
    Case : 2 - Valeur testée : 1 index.html:97:6
    Case : 2 - Valeur testée : 2 index.html:97:6
    Case : 2 - Valeur testée : 3 index.html:97:6
    Case : 2 -> Valeur renseignée : 3 index.html:103:7
    Case : 3 -> La case est déjà renseignée ! index.html:90:6
    Case : 4 - Valeur testée : 1 index.html:97:6
    Case : 4 - Valeur testée : 2 index.html:97:6
    Case : 4 - Valeur testée : 3 index.html:97:6
    Case : 4 - Valeur testée : 4 index.html:97:6
    Case : 4 - Valeur testée : 5 index.html:97:6
    Case : 4 - Valeur testée : 6 index.html:97:6
    Case : 4 -> Valeur renseignée : 6 index.html:103:7
    Case : 5 - Valeur testée : 1 index.html:97:6
    Case : 5 - Valeur testée : 2 index.html:97:6
    Case : 5 - Valeur testée : 3 index.html:97:6
    Case : 5 - Valeur testée : 4 index.html:97:6
    Case : 5 - Valeur testée : 5 index.html:97:6
    Case : 5 - Valeur testée : 6 index.html:97:6
    Case : 5 - Valeur testée : 7 index.html:97:6
    Case : 5 -> Valeur renseignée : 7 index.html:103:7
    Case : 6 - Valeur testée : 1 index.html:97:6
    Case : 6 - Valeur testée : 2 index.html:97:6
    Case : 6 - Valeur testée : 3 index.html:97:6
    Case : 6 - Valeur testée : 4 index.html:97:6
    Case : 6 -> Valeur renseignée : 4 index.html:103:7
    Case : 7 - Valeur testée : 1 index.html:97:6
    Case : 7 - Valeur testée : 2 index.html:97:6
    Case : 7 - Valeur testée : 3 index.html:97:6
    Case : 7 - Valeur testée : 4 index.html:97:6
    Case : 7 - Valeur testée : 5 index.html:97:6
    Case : 7 - Valeur testée : 6 index.html:97:6
    Case : 7 - Valeur testée : 7 index.html:97:6
    Case : 7 - Valeur testée : 8 index.html:97:6
    Case : 7 -> Valeur renseignée : 8 index.html:103:7
    Case : 8 -> La case est déjà renseignée ! index.html:90:6
    Case : 9 - Valeur testée : 1 index.html:97:6
    Case : 9 - Valeur testée : 2 index.html:97:6
    Case : 9 - Valeur testée : 3 index.html:97:6
    Case : 9 - Valeur testée : 4 index.html:97:6
    Case : 9 -> Valeur renseignée : 4 index.html:103:7
    Case : 10 - Valeur testée : 1 index.html:97:6
    Case : 10 - Valeur testée : 2 index.html:97:6
    Case : 10 - Valeur testée : 3 index.html:97:6
    Case : 10 - Valeur testée : 4 index.html:97:6
    Case : 10 - Valeur testée : 5 index.html:97:6
    Case : 10 - Valeur testée : 6 index.html:97:6
    Case : 10 -> Valeur renseignée : 6 index.html:103:7
    Case : 11 -> La case est déjà renseignée ! index.html:90:6
    Case : 12 - Valeur testée : 1 index.html:97:6
    Case : 12 - Valeur testée : 2 index.html:97:6
    Case : 12 - Valeur testée : 3 index.html:97:6
    Case : 12 - Valeur testée : 4 index.html:97:6
    Case : 12 - Valeur testée : 5 index.html:97:6
    Case : 12 - Valeur testée : 6 index.html:97:6
    Case : 12 - Valeur testée : 7 index.html:97:6
    Case : 12 - Valeur testée : 8 index.html:97:6
    Case : 12 -> Valeur renseignée : 8 index.html:103:7
    Case : 13 -> La case est déjà renseignée ! index.html:90:6
    Case : 14 - Valeur testée : 1 index.html:97:6
    Case : 14 - Valeur testée : 2 index.html:97:6
    Case : 14 - Valeur testée : 3 index.html:97:6
    Case : 14 -> Valeur renseignée : 3 index.html:103:7
    Case : 15 -> La case est déjà renseignée ! index.html:90:6
    Case : 16 - Valeur testée : 1 index.html:97:6
    Case : 16 - Valeur testée : 2 index.html:97:6
    Case : 16 - Valeur testée : 3 index.html:97:6
    Case : 16 - Valeur testée : 4 index.html:97:6
    Case : 16 - Valeur testée : 5 index.html:97:6
    Case : 16 - Valeur testée : 6 index.html:97:6
    Case : 16 - Valeur testée : 7 index.html:97:6
    Case : 16 - Valeur testée : 8 index.html:97:6
    Case : 16 - Valeur testée : 9 index.html:97:6
    Case : 16 -> Reset index.html:121:5
    Case : 14 -> Reset index.html:121:5
    Case : 12 -> Reset index.html:121:5
    Case : 10 -> Reset index.html:121:5
    Case : 9 -> Reset index.html:121:5
    Case : 7 -> Reset index.html:121:5
    Case : 6 -> Reset index.html:121:5
    Case : 5 -> Reset index.html:121:5
    Case : 4 -> Reset index.html:121:5
    Case : 2 -> Reset index.html:121:5
    Case : 1 -> Reset index.html:121:5
    Lorsque je ne trouve pas de solution, on retourne dans la fonction récursive précédente.

    Et au lieu de reprendre la boucle for normalement, il sort de la fonction à nouveau et ce, jusqu'à la première case.

    Savez-vous pourquoi j'ai ce comportement et comment y remédier ?

    Merci,
    ZiP

  3. #3
    Rédacteur
    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    février 2009
    Messages
    6 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2009
    Messages : 6 386
    Points : 23 054
    Points
    23 054
    Billets dans le blog
    120
    Par défaut


    C'est un traitement hautement récursif, afficher les résultats intermédiaires fait perdre beaucoup de temps, alors que le temps de calcul est limité par le navigateur. Il faut simplifier le programme au maximum.

    J'obtiens le résultat suivant pour le programme ci-dessous.

    Array(9)
    0: (9) [9, 3, 4, 1, 7, 2, 6, 8, 5]
    1: (9) [7, 6, 5, 8, 9, 3, 2, 4, 1]
    2: (9) [8, 1, 2, 6, 4, 5, 3, 9, 7]
    3: (9) [4, 2, 9, 5, 8, 1, 7, 6, 3]
    4: (9) [6, 5, 8, 7, 3, 9, 1, 2, 4]
    5: (9) [1, 7, 3, 4, 2, 6, 8, 5, 9]
    6: (9) [2, 9, 7, 3, 5, 8, 4, 1, 6]
    7: (9) [5, 4, 6, 2, 1, 7, 9, 3, 8]
    8: (9) [3, 8, 1, 9, 6, 4, 5, 7, 2]
    length: 9
    __proto__: Array(0)
    Code JavaScript : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    window.addEventListener('load', ev => {
        // le DOM est construit et la page web est visible
     
        // début code du test
     
        let grille = [];
     
        grille.push([9, 0, 0, 1, 0, 0, 0, 0, 5]);
        grille.push([0, 0, 5, 0, 9, 0, 2, 0, 1]);
        grille.push([8, 0, 0, 0, 4, 0, 0, 0, 0]);
        grille.push([0, 0, 0, 0, 8, 0, 0, 0, 0]);
        grille.push([0, 0, 0, 7, 0, 0, 0, 0, 0]);
        grille.push([0, 0, 0, 0, 2, 6, 0, 0, 9]);
        grille.push([2, 0, 0, 3, 0, 0, 0, 0, 6]);
        grille.push([0, 0, 0, 2, 0, 0, 9, 0, 0]);
        grille.push([0, 0, 1, 9, 0, 4, 5, 7, 0]);
     
        function AbsentLigne(numero, ligne) {
            for (let i = 0; i < 9; i++) {
                if (grille[ligne][i] === numero) {
                    return false;
                }
            }
     
            return true;
        }
     
        function AbsentColonne(numero, colonne) {
            for (let i = 0; i < 9; i++) {
                if (grille[i][colonne] === numero) {
                    return false;
                }
            }
     
            return true;
        }
     
        function AbsentCarre(numero, ligne, colonne) {
            let 
                i = ligne - (ligne % 3),
                j = colonne - (colonne % 3);
     
            for (ligne = i; ligne < i + 3; ligne++) {
                for (colonne = j; colonne < j + 3; colonne++) {
                    if (grille[ligne][colonne] === numero) {
                        return false;
                    }
                }
            }
     
            return true;
        }
     
        function Validation(position) {
     
            // Si on est à 81, on a validé la grille car on sort de celle-ci
            if (position == 9 * 9) {
                return true;
            }
     
            // On récupère les coordonnées de la case
            let 
                ligne = Math.floor(position / 9),
                colonne = position % 9;
     
            // Si la case n'est pas vide, on passe à la suivante
            if (grille[ligne][colonne] !== 0) {
                return Validation(position + 1);
            }
     
            // On essaie chaque chiffre
            for (let numero = 1; numero <= 9; numero++) {
     
                // On vérifie si le chiffre est autorisé
                if (AbsentLigne(numero, ligne) && AbsentColonne(numero, colonne) && AbsentCarre(numero, ligne, colonne)) {
     
                    // On enregistre le chiffre dans la case
                    grille[ligne][colonne] = numero;
     
                    if (Validation(position + 1)) {
                        return true;
                    }
                }
            }
     
            // Tous les chiffres ont été testés, aucun n'est bon, on réinitialise la case
            grille[ligne][colonne] = 0;
     
            return false;
        }
     
        if (Validation(0)){
            console.table(grille);
        }
     
        // fin code du test
     
    }, {
        capture: false,
        passive: true,
        once: false
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    octobre 2006
    Messages
    967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : octobre 2006
    Messages : 967
    Points : 380
    Points
    380
    Par défaut
    Bonjour danielhagnoul,

    J'avais introduit l'affichage afin de comprendre à quel endroit le problème se posait afin de le résoudre.

    J'ai lu votre réponse mais je n'ai pas compris ce qui posait problème dans mon code.

    Je vais y regarder de manière plus approfondie afin de bien comprendre mon erreur.

    Merci pour votre aide !!
    ZiP

  5. #5
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    octobre 2006
    Messages
    967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : octobre 2006
    Messages : 967
    Points : 380
    Points
    380
    Par défaut
    Bonjour,

    Après analyse et test, c'est l’absence de déclaration de la variable dans ma boucle for qui posait problème.

    Merci pour votre aide !

    ZiP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Arnaud <> récursivité
    Par Kanter dans le forum Delphi
    Réponses: 13
    Dernier message: 20/02/2007, 16h54
  2. Problème de récursivité
    Par nmathon dans le forum Delphi
    Réponses: 5
    Dernier message: 12/01/2007, 16h40
  3. Problème de récursivité en Prolog
    Par poooky dans le forum Prolog
    Réponses: 5
    Dernier message: 04/01/2007, 17h35
  4. Problème de récursivité
    Par mehdi.berra dans le forum C
    Réponses: 8
    Dernier message: 14/12/2006, 17h42
  5. Problème de récursivité
    Par tazmania dans le forum C
    Réponses: 24
    Dernier message: 14/12/2005, 14h34

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