El programa es Scilab, y mediante algorítimica y los correspondientes signos, tengo que hallar en un vector ordenado ascendentemente, si se encuentra un valor dado.
He escrito lo siguiente:
function Datos
printf("Introducir el número de dígitos que tendrá el vector")
n=scanf("%d\n")
i=1
while i<=n
printf("Introducir el siguiente valor")
vector(i)=scanf("%d\n")
i=i+1
end
printf("Introducir el valor a buscar")
s=scanf("%d\n")
pri=1
ult=n
i=floor(n/2)
a=-1
if (vector(i)==s)
printf("El número se encuentra en la posición %d\n",i)
end
while (vector(i)<>s & a=-1 & pri<=ult)
if (vector(i)<s)
pri=i+1
else
(if vecotr(i)>s)
ult=i-1
else
(if vector(i)==s)
a=1
end
end
end
i=floor((pri + ult)/2)
end
if (a==(-1))
printf("-1")
end
if (a==1)
printf("El número se encuentra en la posición %d\n",i)
end
endfunction[\code]
Si alguien entiende y sugiere algo,. . .en el programa me da error en la lína 4, cosa que es "imposible" pues está bien definido el i=1.
Saludos,