TOI

 

1ère Olympiade Tunisienne d'Informatique

Ariana, 19 avril 2003

 

Programme W_ORDERED, solution du lauréat : Sami OUANNES

program w_ordered;
uses wincrt;
type chaine=string[9];
var n:integer;

function estbienord(a:LongInt):boolean;
var ch:chaine; f:boolean; i:integer;
begin
str(a,ch);
i:=0;
repeat
Inc(i);
if CH[i]< ch[i+1] then f:=true else f:=false;
until (i=length(CH)-1) or (f=false);
estbienord:=f;
end;

procedure saisie(var aa:integer);
begin
repeat Writeln('Donner n tel que 1<n<9',#10#13,
'n étant le nombre de chiffres des entiers à traiter');
Readln(n); until n in[2..8];
end;

function min(b:integer):longint;
var m:longint; c,ch:chaine; i:integer;
begin
ch:=''; i:=0;
repeat
Inc(i);
str(i,c);
ch:=ch+c;
until length(ch)=b;
val(ch,m,i);
min:=m;
end;

function max(b:integer):longint;
var m:longint; c,ch:chaine; i:integer;
begin
ch:=''; i:=10;
repeat
Dec(i);
str(i,c);
ch:=c+ch;
until length(ch)=b;
val(ch,m,i);
max:=m;
end;

procedure trait(n:integer);
var cpt,i: longint;
begin
cpt:=0;
Writeln('La liste de nombres bien ordonnés à ',n,' chiffres est :');
for i:=min(n) to max(n) do begin
if estbienord(i) then begin
Inc(cpt);
writeln(i);
end;
end;
writeln('Le nombre d''entiers bien ordonnés de ',n,' chiffres est ',cpt);
end;

begin
saisie(n);
trait(n);
end.

 

 

 

 

Accueil | 1er Stage | 2ème Stage | 3ème Stage | TOI | AOI | IOI | Edunet