Carré Magique
Moustick
-
Moustick -
Moustick -
Bonjour,
J'ai un de voir à rendre sur un carré magique en python mais je n'arrive pas à le faire fonctionner correctement, il me semble que c'est la vérification de lignes et de la vérification des doublons qui sont fausses
je vous met mon programme et le barème merci d'avance ^^
programme :
Barème appliqué :
- Le programme est cohérent et fonctionne avec certains jeux de tests. : 12 points
- Le programme est polyvalent, fonctionne quelque soit
la longueur du carré magique (même 5, 6 etc.). : + 2 points
- Le contrôle de la composition du carré magique est effectué et fonctionne. : + 2 points
- La structure du programme est respectée (organisation des fonctions). : + 2 points
- Le nom des variables est clair, les commentaires sont judicieux. : + 2 points
J'ai un de voir à rendre sur un carré magique en python mais je n'arrive pas à le faire fonctionner correctement, il me semble que c'est la vérification de lignes et de la vérification des doublons qui sont fausses
je vous met mon programme et le barème merci d'avance ^^
programme :
carre=[ [6,25,24,13,7,36], [35,11,14,20,29,2], [33,27,16,22,10,3], [4,28,15,21,9,34], [32,8,23,17,26,5], [1,12,19,18,30,31] ] def __str__ (carre) : s = "" for i in range (0, len(carre)) : for j in range (0, len(carre)) : s += str ( carre [i][j]) + " " s += "\n" # pour passer à la ligne return s print("Le carré magique est :\n", __str__(carre)) #affiche le carré magique import sys def all_unique(carre): #contrôle d'éventuel(s) doublon(s) return len(carre) == len(set(carre)) for k in range(len(carre)): all_unique(carre[k]) if all_unique(carre[k]) == True: print("True") elif all_unique(carre[k]) == False: print("False") sys.exit() #arrêt du programme s'il y a des doublons def sommeLigne(carre,i): #Défini la somme des lignes s = 0 for j in range (0, len (carre)) : s += carre [i][j] return s def sommeColonne(carre): #Défini la somme des colonnes somme=0 for n in range(len(carre)): for k in range(len(carre)): somme = somme + carre[n][k] return somme def diagonale1(carre,n): #Défini la somme de la diagonale de gauche à droite somme = 0 for n in range(len(carre)): somme = somme + carre[n][n] return somme def diagonale2(carre,n): #Défini la somme de la diagonale de droite à gauche somme = 0 for n in range(len(carre)-1): for j in range(len(carre)-1, -1, -1): somme = somme + carre[n][j] return somme def controlCarre(carre): #vérification de l'égalité de toutes les fonctions if sommeColonne(carre) == (diagonale2(carre,0)) == (diagonale1(carre,0)): return True else : return False print("Le carré magique prend la valeur :", controlCarre(carre)) #Affichage du résultat
Barème appliqué :
- Le programme est cohérent et fonctionne avec certains jeux de tests. : 12 points
- Le programme est polyvalent, fonctionne quelque soit
la longueur du carré magique (même 5, 6 etc.). : + 2 points
- Le contrôle de la composition du carré magique est effectué et fonctionne. : + 2 points
- La structure du programme est respectée (organisation des fonctions). : + 2 points
- Le nom des variables est clair, les commentaires sont judicieux. : + 2 points
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Python carré magique
- Éponge magique danger - Guide
- Signe au carré ✓ - Chromebook
- Citizen code python avis - Accueil - Outils
- Parenthese carre ✓ - Forum Word
- Parenthese carré ✓ - Forum Clavier
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
je vois en effet diverses erreurs dans ton programme.
si tu veux les découvrir, je t'invite à ajouter des instructions print() pour suivre ce que fait ton programme.
je vois en effet diverses erreurs dans ton programme.
si tu veux les découvrir, je t'invite à ajouter des instructions print() pour suivre ce que fait ton programme.
as-tu écrit ce programme?