{ Crie um algoritmo que preencha um vetor de 10 posicoes de elementos inteiros.
Calcule e mostre:
a) os elementos pares;
b) a soma dos elementos de indice impar;
c) a media dos elementos;
d) a quantidade de elementos iguais a 30;
e) a quantidade de elementos maiores que a media
f) os elementos do vetor ordenado (crescente)
g) uma pesquisa sequencial de um elemento da lista, iniciando a posicao onde se encontra. }
program vetor_10_posicoes;
uses crt;
var
x : array[1..10] of integer;
i,j,aux,elem_par,soma_eleind_impar,quant_30,quant_elem_mmedia,num_pesq : integer;
soma,media_elementos : real;
resp : char;
achou : boolean;
begin
soma:=0;
clrscr;
{**** CADASTRAMENTO DOS ELEMENTOS DE UM VETOR DE 10 POSICOES ****}
writeln ('Cadastramento dos elementos em um vetor de 10 elementos: ');
writeln;
write ('Digite os elementos deste vetor: ');
for i:= 1 to 10 do
begin
write (' '); readln (x[i]);
soma:= soma + x[i]; {esta variável sera utilizada para calcular a media dos elementos da tabele (item c) }
end;
{**** c) a media dos elementos; ****}
media_elementos:=soma/10;
clrscr;
{**** LISTAGEM DOS ELEMENTOS DE UM VETOR DE 10 POSICOES ****}
writeln ('Elementos em um vetor de 10 elementos: ');
writeln;
writeln ('Elementos deste vetor: ');
for i:= 1 to 10 do
write (' ',x[i]);
{**** Solucao dos itens de "a" ate a letra "g" ****}
elem_par:= 0;
soma_eleind_impar:=0;
quant_30:= 0;
quant_elem_mmedia:=0;
for i:= 1 to 10 do
begin
{**** a) os elementos pares; ****}
if (x[i] mod 2 = 0) then
elem_par:= elem_par + 1;
{**** b) a soma dos elementos de indice impar; ****}
if (i mod 2 <> 0) then
soma_eleind_impar:=soma_eleind_impar + x[i];
{**** d) a quantidade de elementos iguais a 30; ****}
if x[i] = 30 then
quant_30:= quant_30 + 1;
{**** e) a quantidade de elementos maiores que a media ****}
if x[i] > media_elementos then
quant_elem_mmedia:= quant_elem_mmedia + 1;
end;
writeln;
writeln;
{**** Apresentacao do resultado obtido nas questoes : "a,b,d,e" ****}
writeln ('a) os elementos pares : ',elem_par);
writeln ('b) a soma dos elementos de indice impar : ',soma_eleind_impar);
writeln ('c) a media dos elementos : ',media_elementos);
writeln ('d) a quantidade de elementos iguais a 30 : ',quant_30);
writeln ('e) a quantidade de elementos maiores que a media: ',quant_elem_mmedia);
writeln;
writeln;
{**** f) os elementos do vetor ordenado (crescente) ****}
{**** rotina de troca dos elementos ****}
for i:= 1 to 9 do
for j:= i+1 to 10 do
begin
if x[i] > x[j] then
begin
aux:=x[i];
x[i]:=x[j];
x[j]:=aux;
end;
end;
writeln;
writeln;
{*** rotina para listar os elementos da matriz ordenado (crescente) ****}
writeln ('Listagem dos elementos ordenados (crescente): ');
write ('Elementos: ');
for i:= 1 to 10 do
write (' ',x[i],' ');
{*** g) uma pesquisa sequencial de um elemento da lista, iniciando a posicao onde se encontra. ***}
resp:= 'S';
while (resp = 'S') or (resp = 's') do
begin
{*** ROTINA DE PESQUISA ***}
writeln;
write ('Entre com o numero a ser pesquisado: '); readln (num_pesq);
i:=1;
achou:= false;
while (i<=10) and (achou = false) do
begin
if (num_pesq = x[i]) then
achou := true
else
i:= i+1;
if (achou = true) then
writeln (num_pesq,' foi localizado na posicao ',i)
else
writeln (num_pesq,' não foi localizado');
end;
end;
{*** FIM DA ROTINA DE PESQUISA ***}
writeln;
write ('Tecle <ENTER> para continuar ');
readln;
end.
Nenhum comentário:
Postar um comentário