terça-feira, 14 de agosto de 2012

Exercício - vetor

{Elabore um programa para ler um vetor de 10 posições  de elementos inteiros.

Calcule e mostre:

a) os elementos das posicoes de indices impar;
b) a soma dos elementos de indice par;
c) a media dos elementos de indice impar;
d) a quantidade de elementos iguais a 33;
e) a quantidade de elementos maiores que a media de todos os elementos da matriz;
f) os elementos do vetor ordenado (decrescente);
g) uma pesquisa sequencial de um elemento da lista, indicando a posicao
   onde se encontra.
h) a soma dos elementos impares e a soma dos elementos pares.  }

program vetor70posicoes;

uses crt;

var
   elementos,aux_pesq                                : array [1..10] of integer;
   i,j,aux,soma,quant33,qmaior_media                 : integer;
   soma_imp,soma_par,pesq,cont_impar,cont_par,cont   : integer;
   resp                                              : char;
   acha                                              : boolean;
   media                                             : real;

begin
  clrscr;
  writeln ('Cadastramento dos elementos de um vetor:');
  writeln;

  {**** CADASTRAMENTO DOS ELEMENTOS ****}

  writeln ('Digite os numeros: ');
  writeln;
  for i:= 1 to 10 do
    readln (elementos[i]);

  {**** LISTAGEM DOS ELEMENTOS ****}

  writeln;
  writeln ('Listagem dos numeros cadastrados: ');
  writeln;
  for i:= 1 to 10 do
    write (' ',i,'o. ',elementos[i],' ');

  writeln;
  writeln ('Tecle <ENTER> para continuar ....');
  readln;

  {**** a) IDENTIFICAR OS ELEMENTOS DAS POSICOES DE INDICE IMPAR ****}

  writeln ('Listagem dos elementos das posicoes de indice impar: ');
  writeln;
  for i:= 1 to 10 do
    if (i mod 2 <> 0) then
      writeln (' ',i,'o. ',elementos[i],' ');

  writeln;
  writeln ('Tecle <ENTER> para continuar ....');
  readln;

  {**** b) SOMA DOS ELEMENTOS DAS POSICOES DE INDICE PAR ****}
  cont:=0;
  soma:=0;
  writeln ('Soma dos elementos das posicoes de indice par: ');
  writeln;
  for i:= 1 to 10 do
    if (i mod 2 = 0) then
      begin
        soma:= soma + elementos[i];
        cont:= cont + 1;
      end;

  writeln;
  writeln ('O total de elementos de indice par e: ',cont);
  writeln ('O resulado da soma dos elementos de indice par e: ',soma);
  writeln;
  writeln ('Tecle <ENTER> para continuar ....');
  readln;


  {**** C) MEDIA DOS ELEMENTOS DAS POSICOES DE INDICE IMPAR ****}

  media:=0;
  soma:=0;
  cont_impar:=0;
  writeln ('Soma dos elementos das posicoes de indice impar: ');
  writeln;
  for i:= 1 to 10 do
    if (i mod 2 <> 0) then
      begin
        cont_impar:= cont_impar + 1;
        soma:= soma+elementos[i];
      end;
  media:= soma/cont_impar;
  writeln ('Soma dos elementos: ',soma);
  writeln ('Total de elementos de indice impar: ',cont_impar);
  writeln ('A media dos elementos e: ',media:2:1);

  writeln;
  writeln ('Tecle <ENTER> para continuar ....');

  readln;


  {**** d) a quantidade de elementos iguais a 33 ****}

  quant33:=0;
  writeln;
  for i:= 1 to 10 do
    if elementos[i] = 33 then
      quant33:= quant33 + 1;
  writeln ('Quantidade de elementos iguais a 33 e: ',quant33);

  writeln;
  writeln ('Tecle <ENTER> para continuar ....');
  readln;

  {**** e) a quantidade de elementos maiores que a media de todos os elementos da matriz****}

  media:=0;
  soma:=0;
  writeln;
  writeln ('Elementos maiores que a media de todos os elementos da matriz: ');
  {**** CALCULO DA MEDIA DE TODOS OS ELEMENTOS ****}
  for i:= 1 to 10 do
    soma:= soma+elementos[i];
  media:= soma/10;
  writeln;
  writeln ('Media dos elementos: ',media:10:1);
  writeln;
  {**** SOMA DOS ELEMENTOS MAIORES QUE A MEDIA DE TODOS ELEMENTOS DA MATRIZ ****}
  soma:=0;
  cont:=0;
  for i:= 1 to 10 do
    if elementos[i] > media then
     begin
       soma:= soma+elementos[i] ;
       cont:= cont+1;
     end;
  writeln ('Soma dos elementos maiores que a media: ',soma);
  writeln ('Total de numeros maiores que a media  : ',cont);
  writeln;
  writeln ('Tecle <ENTER> para continuar ....');
  readln;

  {**** f) os elementos do vetor ordenado (decrescente) ****}

  writeln;
  writeln ('Ordenando os vetores na ordem "CRESCENTE": ');
  for i:= 1 to 9 do
    for j:= i+1 to 10 do
      if (elementos[i] < elementos[j]) then
        begin
          aux:=elementos[i];
          elementos[i]:= elementos[j];
          elementos[j]:= aux;
        end;
  {**** LISTAGEM DOS ELEMENTOS ORDENADOS - ORDEM DECRESCENTE ****}
  writeln ('Listagem dos numeros cadastrados - ordenados: ordem decrescente ');
  writeln;
  for i:= 1 to 10 do
    write (' ',i,'o. ',elementos[i],' ');

  writeln;
  writeln ('Tecle <ENTER> para continuar ....');
  readln;

  {**** g) uma pesquisa sequencial de um elemento da lista, indicando a posicao
   onde se encontra. ****}

     {**** PESQUISA SEQUENCIAL NAO ORDENADA****}

     writeln;
     resp:= 'S';
     while (resp = 'S') or (resp = 's') do
        begin
           {**** ROTINA DE PESQUISA ****}
           writeln;
           write ('Entre com o numero a ser pesquisado: '); readln (pesq);
           i:=1;
           acha:=false;
           while (i<=10) and (acha = false) do
             if (pesq = elementos[i]) then
               acha:= true
             else
               i:= i + 1;

           if (acha = true) then
             writeln (pesq,' foi localizado na posicao ',i)
           else
             writeln (pesq,' nao foi localizado');
           {**** FIM DA ROTINA DE PESQUISA ****}

           writeln;
           write ('Deseja continuar pesquisando: S/N: ');
           readln(resp);
        end;


  {**** h) a soma dos elementos impares e a soma dos elementos pares. ****}

  soma:=0;
  cont_par:=0;
  cont_impar:=0;
  writeln;
  writeln ('Soma dos elementos impares e pares: ');
  writeln;
  for i:= 1 to 10 do
    if (elementos[i] mod 2 <> 0) then
      begin
        soma_imp:= soma_imp+elementos[i];
        cont_par:= cont_par+1;
      end
    else
      begin
        soma_par:= soma_par + elementos[i];
        cont_impar:= cont_impar+1;
      end;
    writeln ('Total de elementos impares e: ',cont_impar);
    writeln ('Soma dos elementos impares e: ',soma_imp);
    writeln ('Total de elementos pares e: ',cont_par);
    writeln ('Soma dos elementos pares e: ',soma_par);

    writeln;
    writeln ('Tecle <ENTER> para continuar ....');
    readln;




end.




Nenhum comentário:

Postar um comentário