Busqueda Binaria

program busbina;
 
uses
 
    crt;
 
type
 
    vector=array [1..10] of integer;
 
var
 
    v:vector;
 
    encon:boolean;
 
    primero,ultimo,q,central,p:integer;
 
begin
 
     clrscr;
 
     for q:=1 to 10 do
 
         begin
 
             write(q,' .- ');
 
             readln(v[q])
 
         end;
 
     for q:=1 to 10 do
 
         begin
 
          primero:=q+1;
 
           for primero:=primero to 10 do
 
               begin
 
                 if v[primero] < v[q] then
 
                   begin
 
                        ultimo:= v[primero];
 
                        v[primero]:=v[q];
 
                        v[q]:=ultimo
 
                   end
 
               end
 
         end;
 
         encon:= false;
 
         primero:=1;  ultimo:=10;
 
         clrscr;
 
         write('Introduce Elemento a buscar: ');
 
         readln(q);
 
         while (primero <= ultimo) and (encon = false) do {Busqueda }
 
            begin
 
               central:= (primero+ultimo) div 2;
 
                if q = v[central] then
 
                   encon:= true
 
                else
 
                    if q > v[central] then
 
                       primero:=central+1
 
                    else
 
                        ultimo:=central-1;
 
            end;
 
            if encon = true then
 
                   p:=central
 
               else
 
                   p:=0;
 
                    writeln;
 
                   writeln;
 
                   writeln;
 
                   if p=central then
 
             writeln('Elemento buscado en la posicion ',p)
 
             else
 
                writeln('Elemento no existente ');
 
             readln
 
end.

¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.

Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C [c]Código en C[/c]
  • Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].

De esta manera el código coloreas el código.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:

Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.

¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)