0226 - Gen Mat 13: Difference between revisions

From Bitnami MediaWiki
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== <...
Tag: visualeditor
 
No edit summary
Tag: visualeditor
 
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("Introduceti dimensiunea n a matricei: "))
    # citim de la tastatură dimensiunea matricei și pozițiile a și b
     a = int(input("Introduceti pozitia liniei a: "))
     n = int(input("Introduceți dimensiunea n a matricei: "))
     b = int(input("Introduceti pozitia coloanei b: "))
     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("Datele de intrare corespund restricțiilor impuse.")
         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]

  • 2≤n≤24
  • 1<a<n
  • 1<b<n
  • liniile şi coloanele sunt numerotate de la 1

Exemplul 1[edit]

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]

Intrare
0 0 0
Iesire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit]

<syntaxhighlight lang="python" line="1">

  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>