0226 - Gen Mat 13: Difference between revisions
Adina Timiș (talk | contribs) Pagină nouă: 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== <... |
Adina Timiș (talk | contribs) No edit summary |
||
Line 21: | Line 21: | ||
:Datele de intrare nu corespund restricțiilor impuse. | :Datele de intrare nu corespund restricțiilor impuse. | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line=""> | <syntaxhighlight lang="python" line="1"> | ||
#0226 - Gen Mat 13 | #0226 - Gen Mat 13 | ||
def construieste_matrice(n, a, b): | def construieste_matrice(n, a, b): | ||
# inițializăm matricea cu zero | |||
matrice = [[0 for _ in range(n)] for _ in range(n)] | matrice = [[0 for _ in range(n)] for _ in range(n)] | ||
# parcurgem fiecare element din matrice | |||
for i in range(n): | for i in range(n): | ||
for j 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: | if i == a-1 or j == b-1: | ||
matrice[i][j] = 0 | 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: | elif i < a-1 and j < b-1: | ||
matrice[i][j] = 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: | elif i < a-1 and j > b-1: | ||
matrice[i][j] = 2 | 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: | elif i > a-1 and j < b-1: | ||
matrice[i][j] = 3 | matrice[i][j] = 3 | ||
# dacă elementul se află sub (a,b) și la dreapta, setăm valoarea la 4 | |||
else: | else: | ||
matrice[i][j] = 4 | matrice[i][j] = 4 | ||
return matrice | return matrice | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
n = int(input(" | # citim de la tastatură dimensiunea matricei și pozițiile a și b | ||
a = int(input(" | n = int(input("Introduceți dimensiunea n a matricei: ")) | ||
b = int(input(" | 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: | if a < 1 or a > n or b < 1 or b > n: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
else: | else: | ||
print("Datele de intrare corespund restricțiilor impuse.") | |||
# construim matricea și o afișăm | |||
matrice = construieste_matrice(n, a, b) | matrice = construieste_matrice(n, a, b) | ||
print( | print() | ||
for linie in matrice: | for linie in matrice: | ||
print(*linie) | print(*linie) | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 19:46, 25 April 2023
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[edit | edit source]
- 2≤n≤24
- 1<a<n
- 1<b<n
- liniile şi coloanele sunt numerotate de la 1
Exemplul 1[edit | edit source]
- 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[edit | edit source]
- Intrare
- 0 0 0
- Iesire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 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)
</syntaxhighlight>