1772 - Progresie 2
Cerința
Se consideră o progresie aritmetică cu primul termen a1 și rația r, precum și un număr n. Să se afișeze o matrice pătratică cu n linii și n coloane care să conțină termenii acestei progresii astfel:
- prima coloană va conține primii n termeni, în ordine, de sus în jos
- a doua coloană va conține următorii n termeni, în ordine, de sus în jos etc.
Date de intrare
Programul citește de la tastatură numerele a1, r, n.
Date de ieșire
Programul va afișa pe ecran elementele matricei, câte o linie a matricei pe o linei a ecranului, elementele de pe fiecare linie fiind separate prin câte un spațiu.
Restricții și precizări
- 1 ⩽ n ⩽ 200
- elementele matricei vor fi numere întregi ce pot fi reprezentate pe 4 octeți cu semn.
Exemplu 1
- Intrare
- -7 3 4
- Ieșire
- -7 5 17 29
- -4 8 20 32
- -1 11 23 35
- 2 14 26 38
Exemplu 2
- Intrare
- 0
- 0
- 0
- Ieșire
- Nu au fost respectate cerintele impuse
Rezolvare
<syntaxhighlight lang="python" line>
- 1772 - Progresie2
def is_valid_input(a1, r, n):
return 1 <= n <= 200 and isinstance(a1, int) and isinstance(r, int)
def build_matrix(a1, r, n):
matrix = [[0] * n for _ in range(n)]
for j in range(n): for i in range(n): matrix[i][j] = a1 + i * r + j * r * n
return matrix
def print_matrix(matrix):
for row in matrix: print(" ".join(map(str, row)))
if __name__ == "__main__":
a1 = int(input("Introduceți primul termen a1: ")) r = int(input("Introduceți rația r: ")) n = int(input("Introduceți numărul n: "))
if is_valid_input(a1, r, n): result_matrix = build_matrix(a1, r, n) print_matrix(result_matrix) else: print("Nu au fost respectate cerintele impuse.")
</syntaxhighlight>