Essays.club - Dissertations, travaux de recherche, examens, fiches de lecture, BAC, notes de recherche et mémoires
Recherche

Micro-exercice de programmation 3 : analyse fonctionnelle et algorithme

Par   •  1 Décembre 2017  •  1 151 Mots (5 Pages)  •  831 Vues

Page 1 sur 5

...

– Dans cette forme, sélectionner deux case ayant deux valeurs possibles seulement.

2.3 – Si les valeurs possibles sont identiques

Alors il s’agit d’une paire exclusive

3 – Enlever ces deux valeurs possibles des autres cases ayant des valeurs possibles, à l’exception des cases contenant ces paires exclusives.

compteur1 = 0 // Place les chiffres dans Tempo[9][9]. Pas influencé par la forme.

compteur11 = 1 // Permet de remplir resultat[9]

case[9][9] // Grille de sudoku 9x9

Test1[9] // Nombre de valeurs possibles par case

Test2 = 0 // Si Test2 = 9, il s’agit d’une paire exclusive

Tempo[9][9] // Valeurs possibles par case

resultat[9] // Valeurs à exclure pour la case sélectionnée

Choix // Choix à faire : Ligne, Colonne ou Carré

PositionLigne // Numéro de la ligne de la cellule sélectionnée de 1 à 9

PositionColonne // Numéro de la ligne de la cellule sélectionnée de 1 à 9

Forme // Ligne, colonne ou carré

// Information entrée par le joueur

Entrée PositionLigne

Entrée PositionColonne

Entrée Forme

// Détermine les paramètres en fonction du choix de la forme

Choisir Cas Choix

Cas Ligne

DebutLigne = PositionLigne

DebutColonne = 1

FinLigne = PositionLigne

FinColonne = 9

Cas Colonne

DebutLigne = 1

DebutColonne = PositionColonne

FinLigne = 9

FinColonne = PositionColonne

Cas Carré

DebutLigne = (PositionLigne -1 \ 3) *3 +1

DebutColonne = (PositionColonne -1 \ 3) * 3 +1

FinLigne = DebutLigne +2

FinColonne = DebutColonne + 2

Fin Choisir

// Recherche les valeurs existantes de la ligne, de la colonne et du carré à l’intersection

Pour ligne de DebutLigne jusqu’à FinLigne

Pour colonne de DebutColonne jusqu’à FinColonne

compteur1 = compteur1 +1

Si case[ligne, colonne] est vide alors

Pour compteur2 de 1 à 9

// Copie les valeurs existantes de la ligne à l’intersection de la case

Si case[ligne, compteur2] n’est pas vide alors

// La valeur 1 indique que la valeur est présente. Le chiffre sera récupéré

// à l’aide de l’indice du tableau

Tempo[ compteur1, case [ligne, compteur2] ] = 1

Fin Si

// Copie les valeurs existantes de la colonne à l’intersection de la case

Si case [compteur2, colonne] n’est pas vide alors

// La valeur 1 indique que la valeur est présente. Le chiffre sera récupéré

// à l’aide de l’indice du tableau

Tempo[ compteur1, case [compteur2, colonne] ] = 1

Fin Si

Fin Pour

// Copie les valeurs existantes du carré à l’intersection de la case

Pour compteur3 de 0 à 2

Pour compteur4 de 0 à 2

Si case[DebutLigne + compteur3, DebutColonne + compteur4]

n’est pas vide alors

// La valeur 1 indique que la valeur est présente. Le chiffre sera

// récupéré à l’aide de l’indice du tableau

Tempo[ compteur1, case [DebutLigne + compteur3,

DebutColonne + compteur4] ] = 1

Fin SI

Fin Pour

Fin Pour

Fin Si

Fin Pour

Fin Pour

// Compte le nombre de valeurs existantes par cellules

Pour compteur5 de 1 à 9

Pour compteur6 de 1 à 9

Si Tempo[compteur5, compteur6] =1 alors

Test1[compteur5] = Test1[compteur5] + 1

Fin Si

Fin Pour

Fin Pour

Pour compteur7 de 1 à 9

Pour compteur8 de (compteur7 + 1) à 9

// Vérifie que la case contienne uniquement deux valeurs possibles

Si Test1[compteur7] = 7 et Test1[compteur8] = 7 alors

// Recherche une paire exclusive

Pour compteur9 de 1 à 9

// Vérifie que les valeurs sont identiques

Si Tempo[compteur7, compteur9] = Tempo[compteur8, compteur9] alors

Test2

...

Télécharger :   txt (8.1 Kb)   pdf (73.3 Kb)   docx (13.2 Kb)  
Voir 4 pages de plus »
Uniquement disponible sur Essays.club