algorithme
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

algorithme



  1. #1
    artemis16

    algorithme


    ------

    Bonsoir,
    on nous demande de faire un programme qui fait une permutation circulaire d'un tableau de pas, c'est à dire si on a un tableau :

    2_5_12_3_71_9_6_3_1_23
    le résultat après la permutation doit être
    9_6_3_1_23_2_5_12_3_71

    et voila mon essai

    Code:
    var: i;entiers
           T; tableau[1..10] de réels
            I; tableau[1..5] de réels
    Début
            pour i de 1à10
                   lire T[i]
            finpour
            pour i de 1 à 5
                   I[i] =T[i]
            finpour
            pour i de 1 à 5
                   T[i] = M[i+5]
            finpour
            pour i de 5 à 10
                   M[i] = M[i-5]
            finpour
            pour i de 1 à 10
                   ecrire M[i]
            finpour
    Fin
    comme vous voyez c'est assez long et je ne sais pas si c'est correct,sinon je me demande s'il ya algo plus facile que je peut utiliser surtout si le nombre de case était impaire

    Merci d'avance pr vos suggestion

    -----
    Dernière modification par JPL ; 21/03/2015 à 22h16. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    andre_teprom

    Re : algorithme

    La meilleure mise de la logique de l'algorithme est fortement liée au la langue de programmation pour lesquelles sera mis en œuvre, car la quantité de des ressources de haut niveau va influencer la structure même du programme.


    En d'autres termes, quel est le langage de programmation lequel serait utilisé le code ci-dessus?

  3. #3
    Ashrod

    Re : algorithme

    L'idée principale, c'est que la taille du tableau est un invariant de l'algorithme.

    Cette considération placée, un décalage représente somme toute un simple changement de position (a voir si c'est vers la gauche ou vers la droite) avec un calcul de modulo (dont la valeur est la taille de la liste) pour ne pas sortir de la dimension imposée.

    Je me lance donc dans une sorte de pseudo-code (ca risque d'être un peu moche).

    DECLARATIONS:

    DimensionListe : Naturel (entier positif) représentant la taille de la liste
    ListeInitiale, ListeFinale : Element de type 'liste' dont la taille vaut DimensionListe
    Décalage : Entier représentant le décalage. Je prend comme convention qu'une valeur positive correspond à un décalage vers la droite tandis qu'une valeur négative correspond à un décalage vers la gauche.
    Incrément : Naturel utilisé comme variable auxiliaire dans l'implémentation de la routine de décalage

    PROGRAMME:
    Données d'entrée - décalage, ListeInitiale
    Donnée de sortie - ListeFinale

    : DimensionListe = DIMENSION(ListeInitiale) // Il faut bien obtenir cette valeur là à un moment donné...

    : POUR Incrément ALLANTDE 1 A DimensionListe FAIRE

    : ListeFinale[Incrément] = ListeInitiale[MODULO(Incrément + Décalage, DimensionListe)] // Faire très attention, la fonction modulo renvoie une valeur dans l'ensemble [1..DimensionListe], en tous cas il faut pouvoir la configurer comme telle.

    : FINPOUR

    : RETOURNER ListeFinale

    Voila, ce programme semble simple, mais il y a encore la petite subtilité de la fonction modulo à implémenter...

    A bientôt.
    Dernière modification par Ashrod ; 22/03/2015 à 10h22.

  4. #4
    andre_teprom

    Re : algorithme

    C'est un (pseudo-)code simple et efficace.
    À première vue, je ne ai constaté aucun problème


    Congratulations !

  5. A voir en vidéo sur Futura
  6. #5
    Bluedeep

    Re : algorithme

    Citation Envoyé par andre_teprom Voir le message
    C'est un (pseudo-)code simple et efficace.
    À première vue, je ne ai constaté aucun problème
    Non, il n'a rien d'efficace et est même inutilement verbeux.

  7. #6
    Bluedeep

    Re : algorithme

    Citation Envoyé par Bluedeep Voir le message
    Non, il n'a rien d'efficace et est même inutilement verbeux.
    Je précise que je parle de celui du posteur initial, pas de celui de Ashrod (que je n'avais pas vu quand j'ai posté ma réponse).

  8. #7
    andre_teprom

    Re : algorithme

    Je aussi ai félicités la solution fournie par Ashrod, affaire a également restée une doute.

  9. #8
    Ashrod

    Re : algorithme

    @tous : Je vous remercie beaucoup pour avoir validé ma modeste contribution, mais j'aimerais surtout savoir si elle a été utile au posteur de la question.

    Encore merci et à bientôt.

Discussions similaires

  1. Algorithme
    Par univers7d dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 31/05/2014, 13h27
  2. algorithme
    Par aanais08 dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 14/03/2014, 15h06
  3. Algorithme.
    Par invited87b1145 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 21/03/2011, 11h12
  4. Algorithme
    Par totio94 dans le forum Programmation et langages, Algorithmique
    Réponses: 13
    Dernier message: 22/11/2010, 09h41
  5. algorithme
    Par invite70424c07 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 27/09/2009, 13h37