[ Foro de Pascal ]

ejercicios sobre 'for', 'while' y 'repeat'

15-Oct-2008 11:15
Idoia Casanova Insausti
1 Respuestas

En los ejercicios del tema 6 sobre 'for', me pide que el programa escriba una cadena, hasta ahí todo bien, yo le añado que entre nº y nº me ponga una coma de separación, el problema es cómo hago para que después del último nº no me la coloque, queda extraño. Ejemplo: 1, 2, 3, 4,

En los ejercicios del tema 6 sobre 'while' y 'repeat', cuando en el tercer ejercicio le digo con 'repeat' que al tercer intento salga, lo hace, pero cuando lo hago con 'while', no lo consigo, os pongo el código que tengo:

Program

30];
intento: string[
30];
totintento: integer;
intentoact: integer;

begin
totintento:=
3;
intentoact:=
0;
ClaveCorrecta:= 'PaskalForever';
writeln('Introduce la clave de acceso, hay tres intentos...');
readln(intento);
intentoact:= intentoact +
1;
if (intento<>ClaveCorrecta) then
writeln('Clave NO correcta');
writeln();
while(intento <> ClaveCorrecta)or(intentoact < totintento)do
begin
writeln('Introduce la clave de acceso, hay tres intentos...');
readln(intento);
intentoact:= intentoact +
1;
begin
if (intento<>ClaveCorrecta) then
writeln('Clave NO correcta');
writeln();
end;
begin
if (intentoact >= totintento) then
writeln('Fin de intentos');
writeln();
end;
end;
end.
ClaveDeAcceso;
var
ClaveCorrecta : string[


17-Oct-2008 00:43
Nacho Cabanes (+84)

Para que en el "for" no te escriba "1, 2, 3, 4," sino !"1, 2, 3, 4" basta con tratar el último número como un caso especial (con un "if" que se repite dentro del "for").

En cuanto al "while", lo haces de una forma muy rebuscada. Basta con que pidas una primera vez antes de entrar al "while", y en el "while" te limitas a comparar y, si corresponde, a volver a pedir un valor. Así ya estás imitando el comportamiento de "repeat", que da siempre al menos una primera pasada.






(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.)