[ Foro de Pascal ]
Hola,
Ejercicio propuesto: Crea un programa que escriba en pantalla los números pares del 26 al 10 (descendiendo), usando "repeat".
La verdad es que no tengo ni idea de como escribir este pequeño programa, no se donde pondría el mod para los números pares, si tengo que crear dos variables con los valores 26 y 10, o no haría falta. Y como pongo en until que no quiero que siga... Basicamente no se como pensarlo, por lo tanto mucho menos escribirlo.
saludos
El truco para resolver este ejercicio está en disiminuir o decrementar en 1 a la variable que va a servir para realizar las operaciones con el MOD y, en escoger la condición de salida del ciclo repeat-until. Aquí te dejo el código del programa:
program NumPares;
cont: integer;
BEGIN
cont:= 26;
writeln('Los numeros pares comprendidos entre 26 y 10 son: ');
repeat
if (cont mod 2 = 0) then
writeln(cont);
cont:= cont - 1;
until cont=9;
readln;
END.
program contarconrepeat;
type
var
cont:integer;
begin
cont:=28;// es mas facil de lo que pensas porque 26 es par... y 10 tambien...
//pongo cont en 28 para que el primer numero impar que muestre sea 26..
writeln('Los numeros pares comprendidos entre 26 y 10 son: ');
repeat
cont:=cont-2
until(cont>=10);
end
En este caso, en el que están prefijados los valores iniciales y finales, y ambos son pares, a mí me parece más natural (y resulta más rápido en ejecución) restar de dos en dos, en vez de comprobar en cada pasada si es par usando la operación módulo.
En ese sentido, la propuesta de Luis es más general de lo que sería necesario para un ejercicio tan sencillo (y por ello resultará un poco más compleja para un principiante). A la propuesta de Natalia, que es más simple, le falta un "write", y tiene la condición de salida al revés.
Se podría plantear simplemente así:
program del26al10;
var
i: integer;
begin
i:=26;
repeat
writeLn(i);
i := i -2;
until i<10;
end.
hayyy eso me pasa siempre que lo hago primero en pseudocodigo :( ... lo de writeln se me paso jajaj pero mas o menos la idea estabaxD
(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.)