Introducción
Recordando mis primeros ejercicios de programación, en alguna ocasión tuve que imprimir las tablas de multiplicar de diferentes maneras.
Una de ellas era pedir cuál tabla quería ver, y entonces se imprimía. Por ejemplo, si el usuario decía que quería la tabla del 5, entonces se imprimía 5 x 1 = 5…. hasta 5 x 10.
En otro ejercicio, se pedía hasta cuál tabla se quería ver. Por ejemplo, si el usuario quería hasta la tabla del 3, entonces imprimíamos la tabla del 1, luego la del 2 y finalmente la del 3.
Hoy veremos cómo hacer esos dos sencillos pero reconfortantes y nunca olvidados ejercicios.
Tabla de multiplicar en donde el usuario elige cuál desea ver
Comencemos con este problema, en donde el usuario elige y nosotros imprimimos la tabla. Quedaría así:
package main
import "fmt"
func main() {
var tabla int
fmt.Print("¿Cuál tabla deseas ver? ")
fmt.Scanln(&tabla)
for numero := 1; numero <= 10; numero++ {
resultado := numero * tabla
fmt.Printf("%d x %d = %d\n", tabla, numero, resultado) // \n significa salto de línea. %d es para imprimir enteros
}
}
Hacemos un for que va desde 1 hasta 10. Ya que la condición dice que el ciclo se ejecute siempre y cuando el número sea menor o igual que 10. Cuando sea 11, ya no valdrá, así que sólo llega al 10.
Dentro del ciclo, asignamos el resultado de multiplicar el número en el que vamos (1, 2, 3… hasta 10) por la tabla (lo que introduce el usuario). Finalmente lo imprimimos y listo.
Ejecución del programa
Así se ve, por ejemplo, la tabla del 7:
Tablas de multiplicar hasta donde el usuario elija
Ahora vamos a imprimir muchas tablas, el límite lo pondrá el usuario. Es decir, primero será la tabla del 1, luego la del 2 y así hasta donde el usuario quiera. Queda así:
package main
import "fmt"
func main() {
var limite int
fmt.Print("¿Hasta cuál tabla deseas ver? ")
fmt.Scanln(&limite)
for tabla := 1; tabla <= limite; tabla++ {
//Imprimir un separador
fmt.Printf("\n--Tabla del %d--\n", tabla)
for numero := 1; numero <= 10; numero++ {
resultado := numero * tabla
fmt.Printf("%d x %d = %d\n", tabla, numero, resultado)
}
}
}
Ahora el usuario nos da el límite, y la tabla es parte del ciclo. Tenemos un ciclo dentro de otro. El primero se encarga de ir tabla por tabla, y el segundo imprime del 1 al 10 multiplicados por la tabla.
Ejecución
Así se ve al ejecutarse: