Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Algorithme Escargot


Invité NYATI

Messages recommandés

Bonjour,

Je débute en algoritme; et là je ne vois pas comment écrire un algorithme.

Mon problème est le suivant :

Soit un tableau de taille (x,y)

l'utilisateur est d'abord invité a choisir la taille du tableau.

Ensuite le tableau se rempli automatiquement de par incrémentation de 1 et dans le sens suivant :

colonne gauche, ligne basse, colonne de droite, ligne haute jusqu'à la derniere cellule de vide.

Si vous avez une idée? ou déjà le prog en VBA?

Merci

Bonne soiréé

Lien vers le commentaire
Partager sur d’autres sites

Précision :

Bonsoir,

En fait je cherche à écrire d'une manière structurée un algo escargot:

Explication :

Soit un tableau A de N lignes et P colonnes et X=1 placé dans la première case. On remplit

alors, tant qu'elles sont vides, les cases de la première colonne, de la dernière ligne, de la

dernière colonne de bas en haut, et enfin de la première ligne de droite à gauche, avec X

incrémenté à chaque fois. Puis on recommence avec le sous-tableau de N-2 lignes et P-2

colonnes encore libre et le X suivant la dernière valeur qui a été placée.

 

 

On désigne par X la dernière valeur logée dans une case, et par L0,L1,C0,C1 les numéros de lignes et de collonnes à remplir dans le tableau.

Un exemple du type d'algo que je cherche a faire vaut mieux qu'un long discours :

 

Exemple calcul table des carrés entre 2 valeurs

 

Procedure tabcar(init :entier,Final :entier)

Var nb, nbcarré :entier

Début

Nb:=init

tantque nb <=final faire

nbcarré:=nb*nb;

ecrire (nb,nbcarrée)

nb:=nb+&

fin tanque

fin

 

Voici ce que j'ai fait mais, moi même j'ai du mal à me relire et comprendre et ne suis pas certain que ce que j'ai ecrit ne comporte pas des erreurs.

Program escargot

Var entier n,p,x,l,c

 

Procedure colonne_gauche

Var entier L

De L:=L0 à L1

Ecrire (x,L,C1)

Si C0<C1 alors ligne_basse (L0,L1,C0+1,C1)

Fin Si

Fin procedure

 

Procedure ligne_basse

Var entier C

De C:=C0 à C1

Ecrire (x,L1,C1)

Si L0<L1 alors colonne_droite (L0,L1-1,C0,C1)

Fin Si

Fin procedure

 

Procedure colonne_droite

Var entier L

De L:=L1 à L0

Ecrire (x,L,C1)

Si C0<C1 alors ligne_haute (L0,L1,C0+1,C1)

Fin Si

Fin procedure

 

 

Procedure ligne_haute

Var entier C

De C:=C1 à C0

Ecrire (x,L0,C)

Si L0<L1 alors colonne_gauche (L0+1,L1,C0,C1)

Fin Si

Fin procedure

 

Procedure escargot

Debut

X:=0

Colonne_gauche (1,n,1,p)

 

Debut

Afficher("nombre de ligne?")

Lire n

Afficher("nombre de colonne?")

Lire p

Escargot (n,p)

Fin

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...