virtualword
Te invitamos a registrarte para poder acceder a todo el contenido gratuito que esta comunidad provee.

Saludos Wink

Soluciones lección 007

Ir abajo

Soluciones lección 007

Mensaje  Kyshuo Ayame el Mar Nov 19, 2013 12:47 pm

Solución propuesta para el ejercicio 4 de los propuestos para la lección 7:

Solución:

Código:
 Descripcion:

 Aplicando la estrategia divide & conquer, identificamos
 dos problemas:

 (1) Dado un caracter (caracterDado) y un largo (largoLineaActual),
    imprimir una secuencia de (caracterDado's) de longitud
    (largoLineaActual)

 (2) Dada una cantidad de lineas (cantLineas),
    repetir (1) (cantLineas) veces. La primera vez con
    (largoLineaActual), la segunda (largoLineaActual - 2), y asi
    sucesivamente hasta la ultima linea, de largo 1.

 Del problema se desprende que necesitamos dos ciclos anidados,
 el primero decrementandose desde el largo hasta 1, y el segundo
 imprimiendo caracteres desde 1 hasta el valor de la variable de
 iteracion del primero.

 Un enfoque incorrecto hubiera sido intentar resolverlo con un
 ciclo, y dentro del mismo utilizar variables auxiliares y
 condiciones para determinar cuando introducir un cambio de
 linea.
 ------

*)

(* Precondicion: cantLineas >= 0 *)

PROGRAM ImprimirTriangulo( Input, Output );

VAR cantLineas, largoLineaActual, posEnLinea : Integer;
    caracterDado : Char;

BEGIN
   readln( cantLineas);
        readln( caracterDado );
   FOR largoLineaActual := cantLineas DOWNTO 1 DO
   BEGIN
      FOR posEnLinea := 1 TO largoLineaActual DO
         write( caracterDado );
      writeln
   END
END.
avatar
Kyshuo Ayame
Admin

Mensajes : 105
Fecha de inscripción : 14/11/2012
Edad : 29

Ver perfil de usuario http://virtualworld.foroargentina.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.