1772 - Progresie 2

From Bitnami MediaWiki
Revision as of 16:22, 13 December 2023 by Ramona Dragoș (talk | contribs) (→‎Exemplu 2)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

  1. 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>