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:

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

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:
[box type=”info” align=”aligncenter” class=”” width=”100%”]
Algoritmos
[/box]