Tech4um
1 Membres connectés - 1 Visiteurs
Mot de passe oublié?
Espace membre
Faite une inscription rapide sur tech4um.com et participez par vos sujets et commentaires sur nos forums.

Vous bénéficiez aussi de la Discussion directe afin d'avoir des solutions rapide.

Facebook
Twitter
Liens recommandés




C'est quoi votre sujet?

Echange dans l'ordre croissant en Pascal
Tech4um Postmaster Ajouter le 2011-10-28 21:48:02

1) Procédure Echange2 sur 2 réels a, b qui échange éventuellement a et b, pour

que l'état de sortie soit a ≤ b.



2) Procédure Echange3 sur 3 réels a, b, c qui appelle Echange2. L'état de sortie

est a ≤ b ≤ c.



{ 1 }



PROCEDURE Echange2 (var a, b : real);

VAR t : real;

BEGIN

if a > b then

begin t := a; a := b; b := t; end;

END;

PROGRAM Tri1;

VAR u, v : real;

{ Mettre ici la procedure }

BEGIN

write ('u v ? '); readln (u, v);

Echange2 (u, v);

writeln (u, ' <= ', v);

END



{ On se pose la question : var ou pas var ?

- Pas de var : a et b sont des variables locales, initialisées par l'appel, et perdues aprés.

- Avec un var : a et b sont des alias de u et v.

=> Manipuler a et b revient à manipuler directement u et v. }



{ 2 }



PROCEDURE Echange3 (var a, b, c : real);

BEGIN

Echange2 (a, b); { on met le plus petit dans a }

Echange2 (a, c);

Echange2 (b, c); { a etant le plus petit, on trie b,c }

END;

{ Il y a d'autres solutions possibles. Exemple : }

Echange2 (a, b); { on met le plus grand dans b }

Echange2 (b, c); { on met le plus grand dans c }

Echange2 (a, b); { c etant le plus grand, on trie a,b }
Signaler un abus

 



Répondre au sujet: