0226 - Gen Mat 13

De la Universitas MediaWiki

Programul afișează pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.

Restricții și precizări

  • 2≤n≤24
  • 1<a<n
  • 1<b<n
  • liniile şi coloanele sunt numerotate de la 1

Exemplul 1

Intrare
5 4 3
Iesire
1 1 0 2 2
1 1 0 2 2
1 1 0 2 2
0 0 0 0 0
3 3 0 4 4

Exemplul 2

Intrare
0 0 0
Iesire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0226 - Gen Mat 13
def construieste_matrice(n, a, b):
    # inițializăm matricea cu zero
    matrice = [[0 for _ in range(n)] for _ in range(n)]
    # parcurgem fiecare element din matrice
    for i in range(n):
        for j in range(n):
            # dacă elementul este pe poziția a sau b, setăm valoarea sa la zero
            if i == a-1 or j == b-1:
                matrice[i][j] = 0
            # dacă elementul se află deasupra și la stânga (a,b), setăm valoarea la 1
            elif i < a-1 and j < b-1:
                matrice[i][j] = 1
            # dacă elementul se află deasupra și la dreapta elementului (a,b), setăm valoarea la 2
            elif i < a-1 and j > b-1:
                matrice[i][j] = 2
            # dacă elementul se află sub (a,b) și la stânga, setăm valoarea sa la 3
            elif i > a-1 and j < b-1:
                matrice[i][j] = 3
            # dacă elementul se află sub (a,b) și la dreapta, setăm valoarea la 4
            else:
                matrice[i][j] = 4

    return matrice

if __name__ == '__main__':
    # citim de la tastatură dimensiunea matricei și pozițiile a și b 
    n = int(input("Introduceți dimensiunea n a matricei: "))
    a = int(input("Introduceți poziția liniei a: "))
    b = int(input("Introduceți poziția coloanei b: "))

    # verificăm restricțiile
    if a < 1 or a > n or b < 1 or b > n:
         print("Datele de intrare nu corespund restricțiilor impuse.")
    else:
        print("Datele de intrare corespund restricțiilor impuse.")
        # construim matricea și o afișăm
        matrice = construieste_matrice(n, a, b)
        print()
        for linie in matrice:
            print(*linie)