Documente Academic
Documente Profesional
Documente Cultură
8h
program S27_05_2014_8h;
uses wincrt;
type
Tab=array[1..100]of integer;
var
i,j,n,m:integer;
T,T1:tab;
D e v o i r s e t e x a m e n s s u r : w w w. k i t e b . n e t
{saisie de n et m}
procedure saisie(var n,m:integer);
begin
repeat
writeln('donner deux entiers:');
readln(n,m);
until (n>=10) and (n<m) and (m<=999);
end;
{fonction qui calcule la somme des diviseurs
dun entier n}
function som_diviseur(n:integer):integer;
var
s,i:integer;
begin
s:=0;
for i:=1 to n div 2 do
if n mod i = 0 then
s:=s+i;
som_diviseur:=s;
end;
{Procdure qui classe les termes de la suite
dans un tableau, sa taille sera i}
procedure suite(var t:tab;var
i:integer;n:integer);
var
x:integer;
begin
T[1]:=n;
i:=1;
repeat
i:=i+1;
T[i]:=som_diviseur(n);
n:=T[i];
until (n=1) or (T[i]=T[i-1]);
end;
{Procdure qui permet dafficher les lments
dun tableau T de taille x}
procedure affichage(t:tab;x:integer);
var
i:integer;
begin
for i:=1 to x do
write(T[i],' ');
writeln;
end;
{Procdure qui permet dafficher le nombre des
lments en commun des deux tableaux}
procedure commun(T,T1:tab;x,y:integer);
var
nbr:integer;
ok:boolean;
begin
nbr:=0;
for i:=1 to x do
begin
j:=0;
ok:=false;
repeat
j:=j+1;
if T[i]=T1[j] then
begin
ok:=true;
nbr:=nbr+1;
end;
until(ok=true) or (j=y);
end;
writeln(nbr);
end;
{programme principal}
begin
saisie(n,m);
suite(T,i,n);
suite(T1,j,m);
affichage( T,i);
Page 1
D e v o i r s e t e x a m e n s s u r : w w w. k i t e b . n e t
affichage(T1,j);
commun(T,T1,i,j);
end.
Page 2
D e v o i r s e t e x a m e n s s u r : w w w. k i t e b . n e t
program S27_05_2014_9h30;
uses wincrt;
var
ch:string;
{procdure qui permet de saisir une adresse
lectronique qui remplie les deux conditions
demandes}
procedure saisie(var ch:string);
var
i,j,n:integer;
ok:boolean;
ch1:string;
begin
repeat
writeln('donner une adresse electronique:');
readln(ch);
n:=0;
for i:=1 to length(ch) do
if ch[i]='@' then
n:=n+1;
if n=1 then
begin
ch1:=copy(ch,1,pos('@',ch)-1);
j:=1;
ok:=false;
repeat
j:=j+1;
if not(ch1[j] in ['a'..'z','A'..'Z','_','-','.']) then
ok:=true;
until (ok=true) or (j=pos('@',ch)-1);
end;
until (ok=false) and (upcase(ch[1]) in ['A'..'Z'])
and (pos('@',ch)<>1);
end;
end;
{programme principal}
begin
saisie(ch);
writeln(passwd(ch));
end.
Page 3
program S27_05_2014_11h;
uses wincrt;
type
tab=array[1..40] of integer;
var
t,v,t1:tab;
n,j,k:integer;
D e v o i r s e t e x a m e n s s u r : w w w. k i t e b . n e t
begin
repeat
echange:=false;
for i:=1 to n-1 do
if T[i]>T[i+1] then
begin
permut(T[i],T[i+1]) ;
Page 4
echange:=true;
end;
n:=n-1
until(echange=false) or (n=1);
end;
formation(t,v,n,k,T1,j);
tri(v,k);
writeln('Les lments qui reprsentent des
termes de la suite sans redondance sont:');
aff_sans_rep(v,k);
end.
D e v o i r s e t e x a m e n s s u r : w w w. k i t e b . n e t
Page 5
program S27_05_2014_14h;
uses wincrt;
var
a,b:longint;
{procdure qui permet de saisir a et b}
procedure saisie(var a,b:longint);
begin
repeat
writeln('donner deux entiers');
readln(a,b);
until(a>=100) and (a<b);
end;
writeln(i);
end;
{programme principal}
begin
saisie(a,b);
affichage(a,b);
end.
D e v o i r s e t e x a m e n s s u r : w w w. k i t e b . n e t
Page 6