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
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,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
<syntaxhighlight lang="python" line> 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.")
</syntaxhighlight>