0208 - Gen Mat 3
Cerința
Scrieţi un program care citeşte de la tastatură două numere naturale nenule n şi m şi construieşte în memorie o matrice cu n linii şi m coloane astfel încât, parcurgând tabloul linie cu linie de sus în jos şi fiecare linie de la stânga la dreapta, să se obţină şirul primelor n*m pătrate perfecte impare , ordonat strict crescător.
Date de intrare
Programul citește de la tastatură numerele n şi m.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa 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. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări
- 2≤n,m≤20
Exemplu 1
- Intrare
- 2 3
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 1 9 25
- 49 81 121
Exemplu 2
- Intrare
- 1 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
def verificare_restrictii(n, m):
if 2 <= n <= 20 and 2 <= m <= 20:
return True
else:
return False
def genmat3(n, m):
matrice = []
for i in range(1, n+1):
linie = []
for j in range(1, m+1):
linie.append(0)
matrice.append(linie)
valoare = 1
for linia in range(1, n+1):
for coloana in range(1, m + 1):
matrice[linia-1][coloana-1] = valoare * valoare
valoare += 2
for linie in matrice:
for element in linie:
print(element, end=" ")
print()
if __name__ == '__main__':
nr_linii = int(input("Introduceti numarul de linii: "))
nr_coloane = int(input("Introduceti numarul de coloane: "))
if verificare_restrictii(nr_linii, nr_coloane):
print("Datele de intrare corespund restrictiilor impuse.")
genmat3(nr_linii, nr_coloane)
else:
print("Datele de intrare nu corespund restrictiilor impuse.")