2841 - Gen Mat 27

De la Universitas MediaWiki
Versiunea din 15 martie 2023 10:56, autor: Adina Timiș (discuție | contribuții) (Pagină nouă: ==Cerința== Scrieţi un program care citește de la tastatură două numere naturale, m și n (2 ≤ m ≤ 20, 2 ≤ n ≤ 20), și construiește în memorie un tablou bidimensional A, cu m linii și n coloane, astfel încât parcurgându-l, linie cu linie, de sus în jos și fiecare linie de la stânga la dreapta, să se obțină șirul primelor n·m numere naturale, pare, care nu sunt divizibile cu 5, ordonat strict crescător. Programul afişează pe ecran tabloul obținu...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerința

Scrieţi un program care citește de la tastatură două numere naturale, m și n (2 ≤ m ≤ 20, 2 ≤ n ≤ 20), și construiește în memorie un tablou bidimensional A, cu m linii și n coloane, astfel încât parcurgându-l, linie cu linie, de sus în jos și fiecare linie de la stânga la dreapta, să se obțină șirul primelor n·m numere naturale, pare, care nu sunt divizibile cu 5, ordonat strict crescător. Programul afişează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.

Date de intrare

Programul citește de la tastatură numerele m și n.

Date de ieșire

Programul afișează pe ecran tabloul 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 ≤ m, n ≤ 20

Exemplul 1

Intrare
4 3
Ieșire
Datele de intrare corespund restricțiilor impuse.
2 4 6
8 12 14
16 18 22
24 26 28

Exemplul 2

Intrare
0 21
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#2841 - Gen Mat 27
def numar_valid(num):
    return num % 2 == 0 and num % 5 != 0

def matrice(m, n):
    A = []
    numar_curent = 2
    for i in range(m):
        rand = []
        for j in range(n):
            while not numar_valid(numar_curent):
                numar_curent += 1
            rand.append(numar_curent)
            numar_curent += 1
        A.append(rand)
    return A

if __name__ == "__main__":
    m = int(input("Introduceți numărul de linii: "))
    n = int(input("Introduceți numărul de coloane: "))
    if m < 2 or m > 20 or n < 2 or n > 20:
        print("Datele de intrare nu corespund restricțiilor impuse.")
    else:
        print("Datele de intrare corespund restricțiilor impuse.")
        A = matrice(m, n)
        for rand in A:
            print(" ".join(str(x) for x in rand))