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

Algorithmes et structures de données Discussion :

Générer un carré magique


Sujet :

Algorithmes et structures de données

  1. #1
    Invité
    Invité(e)
    Par défaut Générer un carré magique
    Bonjour,

    Pourriez-vous me dire ce que vous pensez de mon algorithme?
    Soyez compréhensif, je débute :s

    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
    43
    Variables taille, number, checks en integer
    Debut
    Afficher (« tapez la taille du tableau »)
    Faire
    	Lire taille
    	Tant que taille%2 == 0
     Afficher (taille) (« n’est pas impair »)
    Afficher (« Tappez la taille du tableau »)
    Lire taille
    Fin tant que
    Tant que taille%2 ==0
     
    Variable total, same ;
    	Pour i allant de 0 à taille*taille
    		Tableau[i]=-1
    Pour i allant de 0 à taille*taille
    Afficher (« entrez le chiffre n » i%taille+1 « de la ligne »1/taille+1)
    Faire
    	Lire nombre
    	Pour x allant de 0 à taille*taille
    		Si tableau[x]==number
    		Afficher (« ce chiffre a déjà été saisi ! Entrez un autre chiffre »)
    Tant que ok = false
     
    	Variables total, same
    	Pour i allant de 0 à taille*taille
    Total +=tableau[i]
    Afficher tableau[i]
    Si i+1%taille ==0
    	Afficher (« la somme des lignes est de :», total)
    	Si  checks !=total
    Same = false
    Total  0
    		Pour colonne allant de 0 à taille
    		Total  0
    Pour ligne allant de 0 à 2
    Afficher (total)
    Afficher (« la somme des colonnes est de »)
    Si same = true
    Afficher (« Bravo ! Vous avez trouvé une des solutions »)
    Sinon
    Afficher (« Ce n’est pas un carré magique »)
    Fin

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    "Tapez" ne prend pas 2 'p'.

    Et "Fin tant que" arrive avant le premier "Tant que".

    L'indentation est foireuse.

    Je ne vois pas de raison de continuer à lire.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Commençons par le commencement.
    Essaie de proposer un algorithme simplement pour la partie 'Entrer la taille du tableau'.

    Si tu te débrouilles bien, tu peux faire cette partie là, en mettant une seule fois l'instruction 'Tapez la taille du tableau' ... tout en faisant les contrôles voulus.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Donc pour vous ce début d'algorithme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Variables taille, number, checks en integer
    Debut
    Afficher (« tapez la taille du tableau »)
    Faire
    	Lire taille
    	Tant que taille%2 == 0
                 Afficher (taille) (« n’est pas impair »)
                Afficher (« Tappez la taille du tableau »)
                Lire taille
    Fin tant que
    Tant que taille%2 ==0
    ne correspond pas du tout à ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    cout << "Tapez la taille du tableau : ";
        do
        {
            cin >> taille;
            while (taille % 2 == 0)
            {
                cout << taille << " n'est pas impaire " << endl;
                cout << "Tapez la taille du tableau : ";
                cin >> taille;
            }
        } while (taille % 2 == 0);

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Tu te rends bien compte qu'il est ridicule de mettre 2 boucles imbriquées avec la même condition d'arrêt.

    A moins de programmer en brainfuck, il n'y a pas de raison de confondre "condition" et "boucle".
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

Discussions similaires

  1. Problème de vitesse lors de recherche de carré magique
    Par niniwizard dans le forum Prolog
    Réponses: 22
    Dernier message: 16/01/2009, 13h11
  2. Carré magique mauvais affichage
    Par bdptaki dans le forum Delphi
    Réponses: 8
    Dernier message: 14/05/2007, 16h43
  3. [TP] Programme carré magique
    Par Henry22 dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 31/03/2007, 14h40
  4. probléme carré magique
    Par pipip dans le forum C
    Réponses: 4
    Dernier message: 29/11/2006, 18h23
  5. le carré magique
    Par mahis_ dans le forum C
    Réponses: 29
    Dernier message: 15/11/2006, 17h28

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