[ Foro de Pascal ]
Hola, soy nuevo y me está trayendo de cabeza solucionar el ejercicio propuesto del Tema 6.2: Bucle FOR encadenados.
El problema es que no consigo que me aparezca la palabra "Hola" en fila de a 3 y en columna de a 4 SIMULTÁNEAMENTE.
El ejercicio dice lo siguiente:
Ejercicio propuesto: Crea un programa que escriba 3 líneas, cada una de las cuales contendrá 4 veces la palabra "Hola".
Aquí lo que tengo hecho hasta ahora, ¿que tengo mal?:
program T6.2_Ej_2_Bucles_FOR_Encadenados;
uses crt;
var
saludo: string[4];
fila, columna: integer;
begin
clrscr;
saludo := 'Hola';
for fila := 1 to 4 do
for columna := 1 to 3 do
writeln (' ' ,saludo);
readln();
end.
Perdón. Quería decir 'En Filas de 4 y columnas de 3'.
Te falta corregir 4 detalles:
- Si son 3 filas, el primer "for" acabaría en 3.
- Si son 4 columnas por fila, el segundo "for" llegaría hasta cuatro.
- Si tras cada saludo no quieres que avance, deberás usar "write" en vez de "writeLn".
- Si al final de cada fila sí debe avanzar, hay dos órdenes que se repiten (el "for" que escribe las columnas y el "writeLn" que avanza), así que tendrás que encerrarlas en un bloque "begin..end"
No consigo aclararme dónde situar exáctamente el begin..end. Ando un poco perdido. ¿Podrías ponerme ese fragmento de código para salir de dudas? Tengo curiosidad por ver cómo es, porque llevo horas y nada. Gracias de antemano.
Bueno, lo máximo que he conseguido ha sido éste resultado:
Hola Hola Hola Hola Hola
Hola Hola Hola Hola Hola
Hola Hola Hola Hola Hola
Haga lo que haga me termina saliendo siempre una columna o una fila de más; en este caso me sobra una columna y ya no se me ocurre nada más. Aquí os pego el código que he hecho, a ver si alguien pudiera decirme qué estoy haciendo mal:
program T6_2_Ej_2_Bucles_FOR_Encadenados;
uses crt;
var
saludo: string[4];
fila, columna: byte;
begin
clrscr;
saludo := 'Hola';
for fila := 1 to 3 do
begin
write (' ' ,saludo);
for columna := 1 to 4 do
write (' ' ,saludo);
writeln;
end;
readln();
end.
Hola.
Fíjate que cuando empiezas a hacer una fila, escribes la palabra "Hola" y luego 4 "Hola"s más con el bucle secundario. Borra ese primer saludo que está antes del bucle a ver qué pasa.
¡Ciao!
¡Genial! Muchas gracias.
(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.)