0103 - Curte

From Bitnami MediaWiki

Cerința[edit | edit source]

Curtea bunicului are formă dreptunghiulară şi se cunosc lungimea şi lăţimea ei. Să se determine aria acestei curţi, precum şi lungimea gardului care înconjoară curtea.

Date de intrare[edit | edit source]

Programul va citi de la tastatură două numere naturale lungimea şi latimea, reprezentând dimensiunile curţii.

Date de ieșire[edit | edit source]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afişa pe ecran două numere, separate prin exact un spaţiu, reprezentând aria curţii bunicului, respectiv lungimea gardului care o înconjoară.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Nu au fost respectate cerintele impuse".

Restricții și precizări[edit | edit source]

  • 0 < lungimea, latimea < 10000

Exemplu 1[edit | edit source]

Intrare
20
12
Ieșire
Datele de intrare corespund restricțiilor impuse
240 64


Exemplu 2[edit | edit source]

Intrare
0
12
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0103 - Curte

def validare(lungimea, latimea):

   # Daca datele sunt invalide v-om face raise la eroarea ValueError
   conditii = (
       lungimea > 0, lungimea < 10000,
       latimea > 0, latimea < 10000
   )
   if not all(conditii):
       raise ValueError


def curte(lungimea, latimea):

   # Folosim formula matematica ca sa aflam aria si perimetrul
   print(f"{lungimea * latimea} {2*(lungimea + latimea)}")


if __name__ == '__main__':

   # Citim de la tastatura numerele cerute
   lungimea = int(input())
   latimea = int(input())
   # Verificam daca datele introduse sunt valide
   # daca nu afisam mesajul corespunsador
   try:
       validare(lungimea, latimea)
   except ValueError:
       print("Nu au fost respectate cerintele impuse")
   else:
       print("Datele de intrare corespund restricțiilor impuse")
       curte(lungimea, latimea)

</syntaxhighlight>