Exercice Algorithme : Découpage Fonctionnel

exercice


On va créer une fonction IndiceEltSup qui cherche la bonne position, une action Insérer qui inclue le nombre entré dans la bonne case du tableau, et une action DécalageDroite qui décale comme dans l’exemple toutes les cases d’un rang vers la droite si nécessaire.

Const MAX=100



Type TtabVar = entité (tab : tableau[MAX] d’entiers, taille : entier)

Fonction IndiceEltSup (tvt : TtabVar, entier, n : entier) : entier

Var : i : entier

Début

Tant que (i?tvt.taille ET tvt.tab[i]

i

retourner (i)

Fin

Action DécalageDroite (ES : tvt : TtabVar, E : i : entier)

Var : j : entier

Début

Pour j de tvt.taille – 1 à i par pas de –1 faire

Tvt.tab[j+1]

Tvt.taille++

Fin



Action Insérer (ES : tvt : TtabVar, E : i : entier, E : i : entier)

Début

DécalageDroite (tvt, i)

Tvt.tab[i]

Fin

Action SaisieTrié (S : tvt : TtabVar)

Var : rep : chaîne, nb : entier, i : entier

Début

Tvt.taille

Répéter

Ecrire (Rentrer encore un entier ?)

Lire (rep)

Si rep ? « non » alors

Lire (nb)

I

Si non(i

Insérer (tvt, i, nb)

Jusqu’à rep= « non » ou tvt.taille=MAX



Fin