Algoritmos

Algoritmo que leia uma senha e verifique se ela é válida

Num certo sistema, as senhas dos usuários são representadas por um vetor de tamanho 9. Faça um algoritmo que leia uma senha e verifique se ela é válida ou não. Utilize busca binária para fazer a verificação.

Vetor:

U[9] = { 28, 56, 81, 39, 77, 92, 45, 19, 63 }

Algoritmo em Fluxograma:

busca-binaria

Fluxograma do Vetor U[9] = { 28, 56, 81, 39, 77, 92, 45, 19, 63 }

busca-binaria-2

Pascal:

// Autor: Rafael Oliveira
// Data: 29/06/2011
Program Senhas;
 var  
  Senhas : array[1..9] of String;
  I, J, COMECO, MEIO, FINAL : integer;
  Busca, Resp, X : String;
  Acha : boolean;
 Begin

 // Alimentando o vetor
 writeln('Insira 9 Senhas - Somente Numeros');
 for I := 1 to 9 do 
 begin
 write(I, ': ');
 readln(Senhas[I]);
 end;     

 // Ordenação    
 for I := 1 to 9 do 
 begin
 	for J := I + 1 to 9 do 
	 begin
 		if  (Senhas[I] > Senhas[J]) then
 			begin
 			   X := Senhas[I];
 			   Senhas[I] := Senhas[J];
 			   Senhas[J] := X;
 			end;
 	 end
 end;

 // Exibe o Vetor Ordenado
 writeln('O vetor ordenado é:' ); 
 for I := 1 to 9 do 
 begin
  writeln(I, ': ', Senhas[I]);
 end;

 // Trecho de Pesquisa  
 Resp := 's';

 while ( Resp = 's' ) do
 begin
   writeln('Entre com uma Senha - Para Verificacao: ');
   readln(Busca);
 COMECO := 1;
 FINAL := 9;
 ACHA := False;

 while (COMECO <= FINAL) and (ACHA = False) do
 begin
   MEIO:= (COMECO + FINAL) div 2;
	if (Busca = Senhas[MEIO]) then
	    Acha := True
	else
	    if (Busca < Senhas[MEIO]) then
	 	   FINAL := MEIO - 1
	else
		COMECO := MEIO + 1;
	end;

 if (Acha = True ) then
	writeln(Busca, ' foi localizado na posição ' , MEIO)
 else
	writeln(Busca, ' a senha esta invalida!'); 		
 writeln('Deseja continuar? ( s ou n )');
 readln(Resp);  
 // Fim do trecho de pesquisa  
 end;   
End.

Veja também:

Botão Voltar ao topo

Adblock detectado

Por favor, considere apoiar-nos, desativando o seu bloqueador de anúncios