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 :

Vérif (correction) d'algorithmes - SVP


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Vérif (correction) d'algorithmes - SVP
    Bonjour à tous ceux qui passeront par là,

    Dans le cadre d'un projet VBA Excel, je dois retranscrire les lignes de code d'un petit programme de gestion de BDD que j'ai réalisé.
    J'ai terminé la retranscription. Par contre, est-ce que quelqu'un pourrait m'aider à vérifier (corriger) mes quelques algorithmes ?
    Pour commencer, voici mon algorithme de tri shell Metzner que j'utilise :

    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
    Fonction Tri_Metzner (Tablo[1...n][1...m] : Chaine de caractères, NbE : Entier, Sens : Booléen, k : Entier, nbC : Entier) : T[1...n][1...m] : Chaine de caractères
     
    ' k permet de trier suivant la colonne voulu
    ' nbC nombre de colonne du tablo
     
    Ecart : Entier
    i : Entier
    j : Entier
    c : Entier
    T : Chaine de caractères
    Permut : Booléen
     
    Début
        Ecart = NbE/2    ' NbE = Taille de la table
            Tant que Ecart  <>  0 Faire
                Pour i de 1 à   NbE-Ecart    Faire
                    j = 1
                    Permut = VRAI
                    Tant que j  > 0     Et      Permut = VRAI      Faire
                        Permut = FAUX
                        Appeler Sens (j, k, Ecart)
                        Si (Tablo [j][k] > Tablo [j + Ecart][k] Et Sens = VRAI) Ou (Tablo [j][k] < Tablo [j + Ecart][k] Et Sens = FAUX) Alors
                            Pour c de 1 à nbC
                                Tc = Tablo [j][c]
                                Tablo [j][c] = Tablo [j + Ecart][c]
                                Tablo [j + Ecart][c] = Tc
                                c = c + 1
                                Permut = VRAI
                                j = j – Ecart
    			Fin Pour
    		    Fin Si
    		Fin Tant que
    		i = i + 1
            Fin Pour
    	Ecart = Ecart / 2
        Fin Tant que
    Fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Fonction Sens (T[1...n][1...m]:Chaine de caractères, Ecart : Entier, j : Entier, k : Entier) : Booléen
     
    i : Entier
    Sens : Booléen
     
    Début
        Si T[j][k] > T[j + Ecart][k] Alors
            Sens = VRAI
        Sinon
            Sens = FAUX
        Fin Si
     
        Retourner Sens
    Fin
    Merci d'avance pour votre aide
    @+
    Duch'

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Bonjour,

    Ca me parait bien compliqué pour un tri shell :

    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
     
    input: an array a of length n with array elements numbered 0 to n − 1
     
    gap ← round(n/2)
    while (gap > 0)
        for i = gap downto n − 1
            temp ← a[i]
            j ← i
            while (j ≥ gap and a[j − gap] > temp)
                a[j] ← a[j − gap]
                j ← j − gap
            end while
            a[j] ← temp
        end for
        gap ← round(gap / 2.2)
    end while
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/10/2010, 16h47
  2. Algorithme Ou Methode de correction (Urgent)
    Par riyahi dans le forum SQL
    Réponses: 22
    Dernier message: 15/08/2007, 16h48
  3. Algorithme de correction d'adresse email (corriger : domaine + extension)
    Par the_mat dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 03/05/2006, 11h34
  4. [Debutant]Correction d'une requete normée svp
    Par Wisefool dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/01/2006, 11h54
  5. Correction de requête SVP
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/01/2006, 14h32

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