terça-feira, 14 de agosto de 2012

Vetor de 10 posições - Nomes

 {Elabore um programa para cadastrar 10 nomes. Este programa deverá ter uma rotina de pesquisa a qual
terá que mostrar o nome cadastrado e a posição deste nome dentro do vetor de 10 posições. Caso o nome não seja enctrado, deverá exibir uma mensagem dizendo que  o nome não foi encontrado.
Ao final deverá listado todos os nomes ordenados em ordem crescente.    }

program pesquisa_sequencial;

uses crt;

var
   nome           : array [1..10] of string[120];
   i,j            : integer;
   pesq,aux_nome  : string[120];
   resp           : char;
   acha           : boolean;

begin
     clrscr;
     writeln ('Pesquisa Sequencial');
     writeln;

     {**** ROTINA DE CADASTRAMENTO ****}

     writeln ('Cadastramento: ');
     writeln;
     for i:= 1 to 10 do
       begin
         write ('Digite o ',i,'o. nome: '); readln (nome[i]);
       end;

     {**** ROTINA DE LISTAGEM DOS NOMES CADASTRADOS - NAO ORDENADOS ****}

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

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

     writeln;
     resp:= 'S';
     while (resp = 'S') or (resp = 's') do
        begin
           {**** ROTINA DE PESQUISA ****}
           writeln;
           write ('Entre com o nome a ser pesquisado: '); readln (pesq);
           i:=1;
           acha:=false;
           while (i<=10) and (acha = false) do
             if (pesq = nome[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;

        {**** ORDENANDO OS VALORES ARMAZENADOS DENTRO DO VETOR ****}

        for i:= 1 to 9 do
          for j:= i+1 to 10 do
            if nome[i] > nome[j] then
              begin
                aux_nome := nome[i];
                nome[i] := nome[j];
                nome[j] := aux_nome;
              end;

     {**** ROTINA DE LISTAGEM DOS NOMES CADASTRADOS - ORDENADOS ****}

     writeln;
     writeln ('Listagem dos nomes cadastrados - ORDENADOS : ');
     writeln;
     for i:= 1 to 10 do
       writeln (i,'o.: ',nome[i]);

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

end.




Nenhum comentário:

Postar um comentário