Python - Como resolver este ejercicio de cuadro latino?

 
Vista:
sin imagen de perfil
Val: 88
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Como resolver este ejercicio de cuadro latino?

Publicado por lucas (20 intervenciones) el 19/09/2020 04:14:17
El programa le pedirá al usuario que ingrese dos números. El primer número es el orden del cuadrado; el segundo es el número de la esquina superior izquierda. Note que el segundo número debe ser un valor entre 1 y el primer número (el orden del cuadrado), así que su programa debe de validar esta situación. Luego, su programa imprimirá el Cuadrado Latino correspondiente.

Se muestra un ejemplo del resultado de su programa:

En caso de error en el ingreso de datos:

Ingrese el orden del cuadrado: 6
Ingrese el numero superior izquierdo: 8

El numero superior izquierdo debe de ser menor o igual al orden del cuadrado
En caso de ingresar los datos correctos:

Ingrese el orden del cuadrado: 8
Ingrese el numero superior izquierdo: 1

1 2 3 4 5 6 7 8
2 3 4 5 6 7 8 1
3 4 5 6 7 8 1 2
4 5 6 7 8 1 2 3
5 6 7 8 1 2 3 4
6 7 8 1 2 3 4 5
7 8 1 2 3 4 5 6
8 1 2 3 4 5 6 7
Divida el problema en partes mas pequeñas. Por ejemplo:

La funcion range y el operador % serán de mucha utilidad en este proyecto.
¿Puede generar una secuencia que inicie con 1 del orden apropiado? Una secuencia de orden 5 puede ser 1 2 3 4 5.
¿Puede generar una secuencia que inicie con un número diferente a 1 del orden apropiado? Para una secuencia de orden 5 que inicie con 3 se tendría 3 4 5 1 2.
¿Puede generar la siguiente secuencia del cuadrado? Por ejemplo, empezando con 1 2 3 4, la siguiente secuencia será 2 3 4 1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Patricio
Val: 209
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Como resolver este ejercicio de cuadro latino?

Publicado por Patricio (42 intervenciones) el 19/09/2020 05:27:00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#================================
orden = int(input("Ingrese el Orden del Cuadrado : "))
nInicial = int(input("Ingrese el Número Inicial : "))
while (nInicial > orden):
    print("El numero superior izquierdo debe de ser menor o igual al orden del cuadrado")
    nInicial = int(input("Ingrese el Número Inicial : "))
#================================
arreglo = []
nInicialF = nInicial
for fil in range(0, orden):
    aAux = []
    nInicialC = nInicialF
    for col in range(0, orden):
        aAux.append(nInicialC)
        nInicialC += 1
        if (nInicialC > orden):
             nInicialC = 1
    arreglo.append(aAux)
    nInicialF += 1
    if (nInicialF > orden):
        nInicialF = 1
#================================
print()
for fil in range(0, orden):
    for col in range(0, orden):
        print(arreglo[fil][col], end=" ")
    print()
#================================
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar