[ Foro de Pascal ]
Buenas, antes de nada agradecer esta labor de divulgación y pedagogía porque la gran mayoría de las dudas que me surgen durante mi aprendizaje de pascal, se resuelven echando un ojo al curso.
Tenía una duda respecto a como resolver el final del problema, a la hora de si introducir el 9999. He leido por aquí como usaban break, pero yo no lo he utilizado, pues aun desconocozco como hacerlo. Me he decantado por un repeat-until.
Mi duda surge porque para poder finalizar con 9999 y que el programa no se cerrara si pulsaban otra tecla, he añadido una nueva variable de tipo cadena.
Les dejo el codigo que he empleado, igual habia alguna otra forma mas sencilla de atajar el problema, sería todo oídos.
Saludos y gracias.
Program arrayDiezComparar9999;
var
datos: array [1..10] of integer;
n: integer;
num: integer;
encontrado: boolean;
opcion: string[4];
Begin
repeat
for n:= 1 to 10 do
begin
write ('Introduzca un numero: ');
readln (datos [n]);
writeln;
end;
write ('Teclee el numero para buscar...');
readln (num);
writeln;
encontrado:= false;
writeln ('Buscando coincidencias con: ',num );
writeln;
for num:= datos[1] to datos[10] do
if datos[n]= num then encontrado:=true;
if encontrado then
begin
writeln ('Encontrado');
writeln;
end
else
begin
writeln ('No encontrado');
writeln;
end;
writeln ('Si desea terminar pulse 9999');
readln (opcion);
until opcion=('9999')
end.
Se acerca bastante. Un par de sugerencias:
- No hace falta que '9999' sea una cadena.
- No puedes decir "no encontrado" hasta que no termina el bucle "for". Si no, con datos como 1, 2, 3, 5 y buscando 5, te diría 3 veces que no lo ha encontrado y finalmente una vez que sí lo ha encontrado.
Edito: Perdona, es correcto. Está tabulado de forma extraña y hace pensar que el "if" es parte del "for", pero no es así, porque no hay begin-end, así que la lógica es correcta.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)