extraction d'un entier à partir d'un autre

Aller en bas

extraction d'un entier à partir d'un autre

Message  Admin le Dim 13 Mar - 16:15

ÉNONCÉ
Soit n un entier naturel non nul. On se propose de déterminer le plus grand entier formé par tous les chiffres de n (sans omissions ni répétition) :
Exemple : Si n = 2831, le plus grand nombre qu’on pourra former est 8321.
Si n=54959, le plus grand nombre qu’on pourra former est 99554.
Indication : On pourra extraire les chiffres de l’entier n, les mettre dans un tableau et les trier par ordre décroissant.
Travail à faire :
1. Analyser ce problème en le décomposant en modules.
2. Analyser chacun des modules proposés.
3. Déduire un algorithme pour le programme principal et pour chaque module.

PASCAL

program extraction_entier;
uses wincrt;
var
r,r1,r2,m,n,x1,x2:integer;
procedure saisie(var n:integer);
begin
repeat
writeln('saisir une valeur');
readln(n);
until (n>0) and (n<=99);
end;
procedure extraction(n:integer;var x1,x2:integer);
begin
x1:=n mod 10;
x2:=(n div 10) mod 10;
end;
function val1 (x1,x2:integer):integer;
begin
val1:=0;
val1:=x2*1000+x1;
end;
function val2 (x1,x2:integer):integer;
begin
val2:=0;
val2:=x2*100+x1*10;
end;
procedure affichage(r:integer);
begin
writeln('le resultat est=',r);
end;
begin
saisie(m);
saisie(n);
r1:=0;
r2:=0;
extraction(m,x1,x2);
writeln(x1,x2);
r1:=val1( x1,x2);
write(r1);
extraction(n,x1,x2);
r2:=val2( x1,x2);
r:=r1+r2;
affichage(r);
end.


Admin
Admin

Messages : 137
Date d'inscription : 29/12/2010

Voir le profil de l'utilisateur http://aidescolaire.yoo7.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum