Bueno, pues voy a contar una historia que me sucedió hace unos añitos, en la residencia de estudiantes que estaba, primero de carrera y había otros que al igual como comenzaban ese año. Una de las asignaturas era programación, en Pascal.
Estaba yo haciendo a saber qué, cuando me llaman a la puerta. Un compañero de curso. Teníamos que hacer una práctica para dicha asignatura (algo de mostrar la información de un array de registros con datos)
- Chix, ¿Puedo hacerte una pregunta? - Si la hubiera hecho directamente ye te la hubiera respondido - Ehmmm, uh... ¿Como se hace para imprimir un el contenido de una matriz? - Pues tienes 3 formas For, While y Until... y porque no nos dejan usar Goto que sino... Así que depende como lo quieras hacer - Sí, ya tengo un For - ¿Entonces? - Solo me lista una. La última para ser exactos, lo he intentado de varias formas pero cascaba y de esta forma no pero pasa eso - Las cosas comienzan en cero y term... - Sí, y terminan en length(array) - 1 - Que raro, a ver...
Bueno pues vamos para allá felices... abre Turbo Pascal... miro... y me encuentro
program Practica2 [...] procedure NoSeCual(var TempArray: array of LoQueFuera); [...] begin [...] for i := 0 to length(TempArray) - 1 do begin [...] /* Habia que hacer otras cosillas */ Temp := TempArray[i].Nombre + ' ' + TempArray[i].loquesea + [...] end; WriteLn(Temp); [...] end; [...] end.
- ¡Cacho trozo!, mete ese WriteLn dentro del For - Pero no quiero - ¿Cómo que no quieres? - Si, quiero que lo escriba al final - Pero que más da, si ese procedimiento solo muestra por pantalla un listado. - Que no, quiero que sea después
Resultado
program Practica2 [...] procedure NoSeCual(var TempArray: array of LoQueFuera) var [...] Temp: Array[0..NoSeCuantoEntra] of String[255]; begin [...] for j := 0 to (length(TempArray) - 1) div 24 do begin if (length(TempArray) - 1) < (j * 24) then h = (length(TempArray) - 1) mod 24 else h = 23 for i = 0 to h do begin [...] Temp[j * 24 + i] = TempArray[j * 24 + i].Nombre + ' ' + TempArray[j * 24 + i].loquesea + [...] end; for i = 0 to h do begin WriteLn(Temp[j * 24 + i]); end; ReadLn; end; end; [...] end.
face palm
No hay comentarios:
Publicar un comentario