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)