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.