unit biblio1;
interface
const z=4;
type vecteur= array[1..z]ofinteger;
procedurecompleter(var v:vecteur);
procedurerw (var v:vecteur);
procedurechange (var v:vecteur);
procedureafficher (v:vecteur);
functionsomme (v:vecteur):integer;
proceduremaximini (v:vecteur);
function find (v:vecteur):integer;
procedure premiers(v:vecteur);
procedure miroirs (v:vecteur);
procedure croissant(var v:vecteur);
procedure decroissant (var v:vecteur);
function PGN (v:vecteur):integer;
function PPN (v:vecteur):integer;
function occ (v:vecteur):integer;
procedure pos (v:vecteur);
implementation
procedure completer(var v:vecteur);
var i:integer;
begin
for i:=1to z do
begin
writeln('entrer la valeur de la ',i,' case');
readln(v[i]);
end;
end;
procedure rw (var v:vecteur);
var i:integer; t:char;
begin
writeln('voulez vous lire ou modifier le tableau(r/w)');
readln(t);
if t='R'then
begin
for i:=1to z do
begin
write(v[i],' ');
end;
end
else
begin
for i:=1to z do
begin
writeln('entrer la valeur de la ',i,' case');
read(v[i]);
end;
end;
end;
procedure change (var v:vecteur);
var i,n,n2:integer;
begin
writeln('entrer la valeur que vous voulez change');
readln(n);
for i:=1to z do
begin
if v[i]=n then
begin
writeln('par quelle entier voulez vous modifier la case');
readln(n2);
v[i]:=n2;
end;
end;
end;
procedure afficher (v:vecteur);
var i:integer;
begin
for i:=1to z do
begin
write(v[i],' ');
end;
end;
function somme (v:vecteur):integer;
var i:integer;
begin
somme:=0;
for i:=1to z do
begin
somme:=somme+v[i];
end;
writeln('la somme =',somme);
end;
procedure maximini (v:vecteur);
var i,max,min:integer;
begin
max:=0; min:=v[1];
for i:=1to z do
begin
if v[i]>max then max:=v[i];
if v[i]<min then min:=v[i];
end;
writeln('le maximum est: ',max);
writeln('le minimum est: ',min);
end;
function find (v:vecteur):integer;
var i,n:integer; test:boolean;
begin
writeln('vous cherchez quelle valeur');
readln(n);
test:=false;
i:=1;
while (i<=z) and (test=false) do
begin
if (v[i]=n) then
begin
test:=true;
find:=i;
end;
i:=i+1;
end;
writeln(n,' est dans la ',find,' case' );
end;
procedure premiers(v:vecteur);
var i,j,q:integer;
begin
for i:=1to z do
begin
q:=0;
for j:=1to (v[i] div2) do
begin
if v[i] mod j =0then
begin
q:=q+1;
end;
end;
if q=1then writeln(v[i],' est un premier');
end;
end;
procedure miroirs (v:vecteur);
var i,q,r,ri:integer;
begin
for i:=1to z do
begin
ri:=0;
q:=v[i];
while q>0do
begin
r:=q mod10;
q:=q div10;
ri:=(ri*10)+r;
end;
if v[i]=ri then writeln(v[i],' est un entier miroir');
end;
end;
procedure croissant(var v:vecteur);
var i,j,c:integer;
begin
for i:=1to z do
begin
for j:=i+1to z do
begin
if v[i]>v[j] then
begin
c:=v[i];
v[i]:=v[j];
v[j]:=c;
end;
end;
end;
end;
procedure decroissant (var v:vecteur);
var i,j,c:integer;
begin
for i:=1to z do
begin
for j:=i+1to z do
begin
if v[i]<v[j] then
begin
c:=v[i];
v[i]:=v[j];
v[j]:=c;
end;
end;
end;
end;
function PGN (v:vecteur):integer;
var i:integer;
begin
decroissant(v);
PGN:=0;
for i:=1to z do
begin
PGN:=(PGN*10)+v[i];
end;
writeln('le plus grand nombre qu''on peut former dans le vecteur est ',PGN);
end;
function PPN (v:vecteur):integer;
var i:integer;
begin
croissant(v);
PPN:=0;
for i:=1to z do
begin
PPN:=(PPN*10)+v[i];
end;
writeln('le plus petit nombre qu''on peut former dans le vecteur est ',PPN);
end;
function occ (v:vecteur):integer;
var i,val:integer;
begin
writeln('vous cherchez les occurrence de quelle nombre');
readln(val);
occ:=0;
for i:=1to z do
begin
if v[i]=val then
occ:=occ+1;
end;
writeln('les occurrence de ',val,' est ',occ);
end;
procedure pos (v:vecteur);
var i,val:integer;
begin
writeln('vous la(les) position(s) de quelle nombre');
readln(val);
for i:=1to z do
begin
if v[i]=val then
writeln('la position de ',val,' est',i);
end;
end;
end.