lunes, 5 de mayo de 2014

02. Triángulo de Floyd

El Triángulo de Floyd es una forma matemática realizada con números y que tiene la forma como podeis ver en la imagen.



Como podeis observar, cada fila tiene un elemento más que la anterior y los valores son siempre una unidad mayores. 
Normalmente, este ejercicio se plantea pidiendo el número de filas (N) al usuario y el programa debe construir el triángulo hasta ese número de filas.

¿Cómo tengo que pensar?

Pues el razonamiento que se nos puede ocurrir es algo como que necesitaré un bucle que vaya fila por fila desde la primera hasta N y otro bucle que, dentro de cada fila, coloque siempre tantos valores como indique el número de fila.

Me explico.

La fila 1 tiene un único valor el uno.
La fila 2 tiene dos valores el dos y el tres.
La fila 3 tiene tres valores el cuatro, cinco y seis...

En la fila N habrá N valores.

Bien, arrancamos el VB y creamos una aplicación de tipo consola, en su módulo creamos un sub llamado Floyd al que llamaremos desde el Sub Main.


Module Module1

    Sub Main()
        Floyd()
    End Sub

    Sub Floyd()

        Dim i As Byte
        Dim j As Byte
        Dim t As Integer
        Dim n As Byte
        Dim c As String

        Console.WriteLine("Indica el número de filas N")
        n = Console.ReadLine
        t = 1
        For i = 1 To n
            For j = 1 To i
                c = c & CStr(t) & " "
                t = t + 1
            Next j
            c = c & vbCrLf
        Next i

        Console.WriteLine(c)
        Console.ReadLine()

    End Sub

End Module

Con Console preguntamos el valor de N y nos valemos de dos bucles tal y como pensamos antes, uno para las filas y otro para los elementos dentro de cada fila. El primero irá desde 1 hasta N (el total de filas) y el segundo desde 1 hasta el valor que indique en cada momento la variable (i) responsable del número de fila.

El valor de (t) simplemente lleva cuenta de qué número tengo que añadir en cada momento.

La variable (c) va concatenando (pegando) los valores unos tras otros y metiendo un salto de línea (vbcrlf) al final de cada fila del triángulo.

Finalmente se muestra c.

Espero que sea útil.

No hay comentarios:

Publicar un comentario