Exercice algorithme corrigé découpage fonctionnel

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]<n)< p= » »>

i<=i+1

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.tab[j]

Tvt.taille++

Fin

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

Début

DécalageDroite (tvt, i)

Tvt.tab[i]<=i

Fin

Action SaisieTrié (S : tvt : TtabVar)

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

Début

Tvt.taille<=0

Répéter

Ecrire (Rentrer encore un entier ?)

Lire (rep)

Si rep ? « non » alors

Lire (nb)

I<=IndiceEltSup(tvt, nb)

Si non(i

Insérer (tvt, i, nb)

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

Fin

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *