Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 21-11-2021 16:27:53

Flo9450
Membre
Inscription : 21-11-2021
Messages : 1

Algorithme

Bonjour,
Je suis bloquée à mon exercice, est ce qu’on peut m’aider à débloquer la situation.. Reprendre le programme précédent, puis une fois le tableau afficher, demander un nombre
à l’utilisateur, que vous classerez au bon endroit dans le tableau avant de le réafficher. puis afficher max et min.
Mercii
Variable
Tab, i, tmp, j
Afficher afficher une série de 10 nombres
Pour i allant de 0 à 9
Lire tabi
Pour i allant de 0 à 9
    Pour j allant de i+1 a 9
     Si tabj  <tabi
      Tmp <— tabi
      Tabj <— tabi
      Tabi <— tmp
       Fin si
     Fin pour
Fin pour
Pour i allant de 0 à 9
AfficheR tabi
Afficher <

Hors ligne

#2 21-11-2021 21:12:26

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : Algorithme

Bonsoir,

L'espèce d'énoncé que tu fournis est-il bien l'énoncé d'origine ou c'est une relecture personnelle ?
J'aimerais savoir aussi si on t'a donné le but que se propose cet algorithme

Tu veux simplement un algorithme écrit en "pseudo-code" ou via un langage de programmation ?
Parce que ce que tu écris ressemble beaucoup au langage AlgoBox.

Tel quel quand je je lis ton code, j'ai l'impression qu'il manque des données que je suis obligé de deviner.
Exemple :

Reprendre le programme précédent, puis une fois le tableau affiché, demander un nombre

1. Une fois le tableau affiché.
    Le : article défini --> il n'y aurait qu'un seul tableau ou un tableau précis, dont il a été question avant. Mais où ?
    Parce qu'avant, il est seulement écrit  :
   

Reprendre le programme précédent, puis une fois le tableau affiché, demander un nombre

2. Tab désigne un tableau je suppose, Tabi (tu veux dire

Tab[i] ?)

  le contenu de la case i du tableau, de même que Tabj le contenu de la case j du tableau (Tab[j] ?)
et je n'en vois pas trace...
    Le programme attend des entiers naturels ? des entiers relatifs ? des Décimaux relatifs ?
    Ce tableau est plein ou vide ?
    S'il est vide, que faut-il afficher ? les cases vides ? Combien de cases vides
   

que vous classerez au bon endroit dans le tableau

    C'est quoi "le bon endroit ?" entre deux nombres déjà placés ?

3. Le but que je vois est un tri du tableau par ordre croissant.
    Une fois corrigé, ton algorithme, sur la base de mes suppositions, donne le résultat suivant :
    Tableau de départ :
    [4, 7, 3, 8, 10, 1, 19, 12, 15, 18]
    Tableau obtenu en sortie d'algo :
    [1, 3, 4, 7, 8, 10, 12, 15, 18, 19]

4. Je ne comprends pas bien, en lisant ton énoncé, quoi faire du nombre à choisir.
    Parce que déjà le "ranger au bon endroit" dans le tableau ça n'a pas de sens si le tableau de départ n'est pas trié.
    Je choisis (enfin, l'Algo va tirer au sort, à ma place) un nombre.  Et si ce nombre est déjà dans le tableau ? il est où le "bon endroit" ?

5. Ensuite trouver le minimum et le maximum c'est simple.
    On crée deux variables supplémentaires minimum et maximum et on les initialise au départ :
    Par ex :
    minimum =30000
    maximum = -20
    Avec 1 nombre de plus ajouté dans le tableau :
    Pour k allant de 0 à 10
           Si minimum > Tab[k]
                  alors  minimum =Tab[k]
           Fin Si
           Si maximum < Tab[k]
                  alors  maximum = Tab[k]
           Fin SI
    Fin Pour

Afficher minimum
Afficher maximum

Avec le nombre 13 ajouté au "bon endroit", Tab :
[1, 3, 4, 7, 8, 10, 12, 13, 15, 18, 19]

Voilà la réponse  de Python
Minimum : 1
Maximum : 19

Mais j'ai réinventé la roue parce que le tri existe d'origine dans de nombreux langages, ainsi que min et max...

L'algo rectifié qui marche :

Variables
i, tmp, j
Tableau
Tab

Afficher "Afficher une série de 10 nombres"

Pour i allant de 0 à 9
    Lire Tab[ i ]
Fin Pour

Pour i allant de 0 à 9
    Pour j allant de i+1 a 9
       Si Tab[j]  < Tab[i]
             tmp <-- Tab[j]
             Tab[j] <-- Tab[i]
             Tab[i] <-- tmp  
       Fin si
    Fin Pour
Fin Pour

Pour i allant de 0 à 9
     Afficher Tab[i]
Fin Pour
 

Tu as du vin rouge dans un verre rouge
Tu as du vin blanc dans un verre  blanc
Tu veux le vin blanc dans le verre rouge et le vin rouge dans le verre blanc.
Tu as besoin d'un 3e verre neutre qui est tmp...
Verres coloré c'est Tab

Tu mets le vin rouge dans le verre neutre   

tmp <-- Tab[j]

tu mets le vin blanc dans le verre rouge     

Tab[j] <-- Tab[i]

Tu mets le contenu du verre neutre (le vin rouge) dans le verre blanc 

Tab[i] <-- tmp

@+

Dernière modification par yoshi (21-11-2021 22:10:01)

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
soixante et un plus vingt sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums