0350 - Produs Cartezian

From Bitnami MediaWiki

Sursa: [1]

Cerinţa

Se dau două numere naturale nenule n și m. Pentru mulțimile A={1,2,..,n} și B={1,2,...,m}, să se afișeze mulțimea A×B={(a,b) | a∈A, b∈B}produsul cartezian al mulțimilor A și B.

Date de intrare

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

Date de ieșire

Programul afișează pe ecran mulțimea cerută astfel:

elementele mulțimii vor fi scrise între acolade și separate prin virgule fiecare element este o pereche de numere, care va fi scrisă între paranteze rotunde, numerele din pereche fiind separate prin virgulă mai întâi se vor scrie perechile (a,b) pentru care a=1, cu b în ordine crescătoare, apoi perechile pentru care a=2 cu b în ordine crescătoare, etc, ca în exemplu.

Dacă datele sunt introduse corect, programul va rula.

În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

1 ≤ n,m ≤ 10

Exemplul 1

Intrare
3 2
Ieșire
{(1,1),(1,2),(2,1),(2,2),(3,1),(3,2)}


Rezolvare

<syntaxhighlight lang="python" line>

  1. 4273

def patrate_perfecte(n):

   patrate = []
   i = 1
   while len(patrate) < n:
       patrat = i * i
       patrate.append(patrat)
       i += 1
   return patrate


def calculeaza(numbers):

   product = 1
   for number in numbers:
       product *= number
   return product


def validare_numar(n):

   if n < 1 or n > 10:
       return False
   return True


if __name__ == '__main__':

   n = int(input("Introduceți numărul n: "))
   if not validare_numar(n):
       print("Datele introduse nu corespund cerintelor.")
   else:
       squares = patrate_perfecte(n)
       product = calculeaza(squares)
       print("Datele introduse corespund cerintelor.")
       print(product)


</syntaxhighlight>