0206 - Gen Mat 1: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
 
Linia 28: Linia 28:
<br>
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line="1">
#0206-Gen Mat 1
# 0206-Gen Mat 1
def verificare_restrictii(n, m):
def verificare_restrictii(n, m):   # functia de verificare a datelor de intrare
     if 2 <= n <= 20 and 2 <= m <= 20:
     if 2 <= n <= 20 and 2 <= m <= 20:
         return True
         return True
Linia 38: Linia 38:


def genmat1(n, m):
def genmat1(n, m):
     matrice = []
     matrice = []               # vom crea o matrice noua cu n linii si m coloane
     for i in range(1, n+1):
     for i in range(n):
         linie = []
         linie = []
         for j in range(1, m+1):
         for j in range(m):
             linie.append(0)
             linie.append(0)


         matrice.append(linie)
         matrice.append(linie)


     for i in range(1, n+1):
     for i in range(1, n+1):     # in problema, numaratoarea incepe de la 1 deci aplicam + 1
         for j in range(1, m+1):
         for j in range(1, m+1):
             matrice[i-1][j-1] = min(i, j)
             matrice[i-1][j-1] = min(i, j)   # la crearea matricii alegem minimul dintre i si j


     for linie in matrice:
     for linie in matrice:       # afisarea matricii
         print(linie)
        for element in linie:
            print(element, end=" ")
         print()




if __name__ == '__main__':
if __name__ == '__main__':
     nr_linii = int(input("Introduceti numarul de linii: "))
     try:
    nr_coloane = int(input("Introduceti numarul de coloane: "))
        nr_linii = int(input("Introduceti numarul de linii: "))     # citirea numarului de linii si coloane
        nr_coloane = int(input("Introduceti numarul de coloane: "))


    if verificare_restrictii(nr_linii, nr_coloane):
        if verificare_restrictii(nr_linii, nr_coloane):             # verificam datele de intrare
        print("Datele de intrare corespund restrictiilor impuse.")
            print("Datele de intrare corespund restrictiilor impuse.")
        genmat1(nr_linii, nr_coloane)
            genmat1(nr_linii, nr_coloane)                          # apelam functia de rezolvare
     else:
        else:
            print("Datele de intrare nu corespund restrictiilor impuse.")
    # ne asteptam la 2 tipuri de erori din cauza datelor de intrare, le tratam corespunzator
    except ValueError:
        print("Datele de intrare nu corespund restrictiilor impuse.")
     except IndexError:
         print("Datele de intrare nu corespund restrictiilor impuse.")
         print("Datele de intrare nu corespund restrictiilor impuse.")
</syntaxhighlight>
</syntaxhighlight>

Versiunea curentă din 25 aprilie 2023 17:27

Context cerință

Scrieţi un program care citeşte de la tastatură două numere naturale nenule n şi m şi care construieşte în memorie şi apoi afişează o matrice A cu n linii (numerotate de la 1 la n) şi m coloane (numerotate de la 1 la m) cu proprietatea că fiecare element Aij memorează cea mai mică dintre valorile indicilor i şi j ( 1≤i≤n, 1≤j≤m ).

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≤m≤20 , 2≤n≤20

Exemplu

Intrare
4
5
Ieșire
Datele introduse corespund restricțiilor impuse.
1 1 1 1 1
1 2 2 2 2
1 2 3 3 3
1 2 3 4 4


Exemplu 2

Intrare
-1
-2
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare

# 0206-Gen Mat 1
def verificare_restrictii(n, m):    # functia de verificare a datelor de intrare
    if 2 <= n <= 20 and 2 <= m <= 20:
        return True
    else:
        return False


def genmat1(n, m):
    matrice = []                # vom crea o matrice noua cu n linii si m coloane
    for i in range(n):
        linie = []
        for j in range(m):
            linie.append(0)

        matrice.append(linie)

    for i in range(1, n+1):     # in problema, numaratoarea incepe de la 1 deci aplicam + 1
        for j in range(1, m+1):
            matrice[i-1][j-1] = min(i, j)   # la crearea matricii alegem minimul dintre i si j

    for linie in matrice:       # afisarea matricii
        for element in linie:
            print(element, end=" ")
        print()


if __name__ == '__main__':
    try:
        nr_linii = int(input("Introduceti numarul de linii: "))     # citirea numarului de linii si coloane
        nr_coloane = int(input("Introduceti numarul de coloane: "))

        if verificare_restrictii(nr_linii, nr_coloane):             # verificam datele de intrare
            print("Datele de intrare corespund restrictiilor impuse.")
            genmat1(nr_linii, nr_coloane)                           # apelam functia de rezolvare
        else:
            print("Datele de intrare nu corespund restrictiilor impuse.")
    # ne asteptam la 2 tipuri de erori din cauza datelor de intrare, le tratam corespunzator
    except ValueError:
        print("Datele de intrare nu corespund restrictiilor impuse.")
    except IndexError:
        print("Datele de intrare nu corespund restrictiilor impuse.")