Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1101
I Semestre 2012
[<=] [home] [<>] [\/] [=>]
CI-1101 Programación 1

Tarea #7 [solución]

Matriz del peine inverso

      Escriba un programa que reciba una secuencia de números de no más de dos dígitos con marcadores que indican adónde cambian los renglones, y los imprima como una matriz de tipo peine reflejada sobre sí misma. Por ejemplo, con la secuencia (21,21,23, 15,13,12,12,12,12,12,12,12,12,11,9,8,7,6, 33,34,35, 10,9, 0) su programa produciría esta salida:

+---++----+----+----+ |[3]|| 21 | 21 | 23 | +---++----+----+----+ | || +---++----+----+----\..../----+----+----+ |[#]|| 15 | 13 | 12 /....\ 8 | 7 | 6 | +---++----+----+----\..../----+----+----+ | || +---++----+----+----+ |[3]|| 33 | 34 | 35 | +---++----+----+----+ | || +---++----+----+ |[2]|| 10 | 9 | +---++----+----+
+----+----+----++---+ | 21 | 21 | 23 ||[3]| +----+----+----++---+ || | +----+----+----\..../----+----+----++---+ | 15 | 13 | 12 /....\ 8 | 7 | 6 ||[#]| +----+----+----\..../----+----+----++---+ || | +----+----+----++---+ | 33 | 34 | 35 ||[3]| +----+----+----++---+ || | +----+----++---+ | 10 | 9 ||[2]| +----+----++---+

      Lea los valores de cada renglón y alamacénelos en una lista que puede crecer arbitrariamente (no use un vector porque tiene tamaño limitado). Luego extraiga los valores de la lista para almacenarlos en una matriz cuyos renglones tengan longitud variable. Al producir la salida, su programa debe grabar la matriz tanto al derecho como al revés. A pesar de que su programa sí almacena todos los valores de cada renglón nunca muestre 8 o más valores por renglón. Use el método estático leeInt() para obtener la secuencia de valores a almacenar en su matriz peine, y use el cero como marca de fin de lista.

      Para esta tarea programada usted debe enviarme estos archivos:

  1. MatrizPeine.java
  2. CARNET.docx
  3. CARNET.html
  4. CARNET.url

Consulta:
Profe, ¿cómo se separan los renglones al ingresar los datos? Si no hay separadores, ¿cómo se decide cuántos elementos tienen los renglones?
Respuesta:
Cada renglón de la matriz está formado por valores que son todos crecientes o todos decrecientes. Por eso, en el punto en que el vector deja de crecer o de decrecer es adonde termina un renglón. Por ejemplo, al procesar (21,21,23, 15 ...) los primeros 3 valores son crecientes, pero el 15 ya no es creciente y por eso el punto de separación está en la posición del número 15.
Consulta:
¿Cómo hay que leer los números? ¿Uno por uno o todos de una vez?
Respuesta:
Hay que leer todos los números de una sola vez. La marca de fin de números es el número cero. Para eso sirve usar leeInt().
Consulta:
¿De qué largo son los renglones? ¿6 valores para los largos y 3 para los cortos?
Respuesta:
Los renglones tienen longitud variable. Por eso hay que usar una lista para leerlos, pues de antemano no se sabe su longitud.

      Entregue su tarea por correo electrónico, como lo hizo anteriormente.

[mailto:] Entrega de Tareas

Tiempo de entrega: 7 días
Modalidad: En parejas

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2012
Derechos de autor reservados © 2012
[home] <> [/\]