//Programa que faz uso de funções recursivas para fazer cálculos com um vetor
//Gustavo Andrade Ferreira
//Turma 10 A
//Disciplina : Algoritmos e estrutura de dados I
Program vetor;
uses crt;
var
resp,n,i : integer;
v : array[1..10] of integer;
procedure leArray;
var i:integer;
begin
For i := 1 to 10 do
Begin
WriteLn('Digite o valor da posicao ', i,':');
ReadLn(v[i]);
clrscr;
end;
end;
procedure ordenaArray;
var i,j,x:integer;
begin
for i:=1 to 9 do
for j:=i+1 to 10 do
begin
if v[i] > v[j] then
begin
x := v[i];
v[i] := v[j];
v[j] := x;
end;
end;
end;
function max(vetor : array of integer):integer;
var
maior : integer;
Begin
i := 1;
maior := v[i];
while (i <= 10) do
Begin
If v[i] >= v[i + 1] then
maior := v[i]
else
maior := v[i + 1];
i := i + 1;
end;
WriteLn(maior);
end;
function min(vetor : array of integer):integer;
var
menor,i : integer;
Begin
i := 1;
menor := v[i];
while (i < 10) do
Begin
If menor >= v[i + 1] then
menor := v[i]
else
menor := menor;
i := i + 1;
end;
WriteLn(menor);
end;
function soma(vetor : array of integer):integer;
var
aux,i : integer;
Begin
i := 1;
aux := v[1];
while (i < 10) do
Begin
aux :=aux + v[i + 1];
i := i + 1;
end;
WriteLn(aux);
end;
function produto(vetor : array of integer):integer;
var
aux : longint;
i : integer;
Begin
i := 1;
aux := v[1];
while (i < 10) do
Begin
if v[i] = 0 then
aux := 0
else
aux := aux*v[i + 1];
i := i + 1;
end;
WriteLn(aux);
end;
begin
learray;
ordenaArray;
max(v);
min(v);
soma(v);
produto(v);
end.