program estatistica;
uses
CRT;
var
numeros:array[1..100] of byte;
media: double;
resp:char;
sair:boolean;
nvezes, cont, cont2, cont3, moda, moda2, maior, menor:byte;
begin
repeat
begin
CLRSCR;
sair:=false;
writeln('De 0 a 100, diga quantos numeros pretende inserir!');
readln(nvezes);
while (nvezes<1) or (nvezes>100) do
begin
CLRSCR;
writeln('O numero que inseriu ‚ inv lido. Por favor insira outro de 0 a 100!');
readln(nvezes);
end;
for cont:=1 to nvezes do
begin
writeln('Insira um numero');
readln(numeros[cont]);
end;
maior:=0;
for cont:=1 to nvezes do
begin
if numeros[cont]>maior then
begin
maior:=numeros[cont];
end;
end;
menor:=100;
for cont:=1 to nvezes do
begin
if numeros[cont]<menor then
begin
menor:=numeros[cont];
end;
end;
media:=0;
for cont:=1 to nvezes do
begin
media:= numeros[cont]+media;
if cont=nvezes then
begin
media:= media/nvezes;
end;
end;
cont:=1;
cont2:=1;
repeat
begin
moda:=numeros[cont];
for cont:=1 to nvezes do
begin
if numeros[cont]=moda then
begin
cont2:=cont2+1;
end;
end;
if cont2 > cont3 then
begin
moda2:=moda;
cont3:=cont2;
end;
cont:=cont+1;
end;
until cont>= nvezes;
if cont3=1 then
begin
writeln('Dos numeros que inseriu, o maior ‚: ',maior);
writeln('Dos numeros que inseriu, o menor ‚: ',menor);
writeln('A m‚dia dos numeros que inseriu ‚: ',media:5:2);
writeln('Nao existe moda');
writeln('Deseja sair do programa? S/N');
readln(resp);
end
else
begin
writeln('Dos numeros que inseriu, o maior ‚: ',maior);
writeln('Dos numeros que inseriu, o menor ‚: ',menor);
writeln('A m‚dia dos numeros que inseriu ‚: ',media:5:2);
writeln('A moda dos numeros que inseriu ‚: ',moda);
writeln('Deseja sair do programa? S/N');
readln(resp);
end;
while (resp<>'S') and (resp<>'s') and (resp<>'N') and (resp<>'n') do
begin
CLRSCR;
writeln('A sua resposta est‚ inv lida. Insira S/N');
readln(resp);
end;
if (resp='s') or (resp='S') then
begin
sair:=true;
end;
end;
until sair=true;
end.