1309 - Gresie: Difference between revisions

From Bitnami MediaWiki
 
(4 intermediate revisions by 2 users not shown)
Line 4: Line 4:
Programul citește de la tastatură numerele naturale '''a b d'''.
Programul citește de la tastatură numerele naturale '''a b d'''.
== Date de ieșire ==
== Date de ieșire ==
Programul afișează pe ecran numărul minim de bucăți de gresie necesare pentru pavarea încăperii.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran numărul minim de bucăți de gresie necesare pentru pavarea încăperii. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
 
== Restricții de precizări ==
== Restricții de precizări ==
*1 ⩽ '''d''' ⩽ '''a, b''' ⩽ 32000
*1 ⩽ '''d''' ⩽ '''a, b''' ⩽ 32000
Line 26: Line 27:
: 6
: 6


== Rezolvare ==
=== Rezolvare ver. 1 ===
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def validare_date(n):
def validare_date(a, b, d):
     return n.isdigit() and 1 <= int(d) <= int(a), int(b) <= 32000
     return a.isdigit() and b.isdigit() and d.isdigit() and 1 <= int(d) <= int(a) <= 32000 and int(d) <= int(b) <= 32000
 


def bucati(a, b, d):


     nr_bucati_lungime = a // d
def bucati(a, b, d): #cautăm numarul de bucăți de gresie necesară
     nr_bucati_latime = b // d
     nr_bucati_lungime = a // d #aflăm numărul de buc necesar pentru lungimea
     nr_bucati_latime = b // d #aflăm numărul de buc necesar pentru lățimea


     if a % d != 0:
#dacă acestea nu sunt divizibile cu d, se mai adaugă o bucată la nr necesar
     if a % d != 0:
         nr_bucati_lungime += 1
         nr_bucati_lungime += 1
     if b % d != 0:
     if b % d != 0:
         nr_bucati_latime += 1
         nr_bucati_latime += 1


     nr_total_bucati = nr_bucati_lungime * nr_bucati_latime
     nr_total_bucati = nr_bucati_lungime * nr_bucati_latime #calculăm numărul total de bucăți necesar pentru încăpere


     print("Numărul minim de bucăți de gresie necesare pentru pavarea încăperii este: ", nr_total_bucati)
     print("Numărul minim de bucăți de gresie necesare pentru pavarea încăperii este: ", nr_total_bucati)
Line 49: Line 51:
if __name__ == '__main__':
if __name__ == '__main__':


     a = int(input("Introduceți lungimea încăperii: "))
     a = input("Introduceți lungimea încăperii: ")
     b = int(input("Introduceți lățimea încăperii: "))
     b = input("Introduceți lățimea încăperii: ")
     d = int(input("Introduceți dimensiunea laturii pătratelor de gresie: "))
     d = input("Introduceți dimensiunea laturii pătratelor de gresie: ")


     if validare_date(a, b, d):
     if validare_date(a, b, d):

Latest revision as of 18:23, 22 April 2023

Cerință

Se consideră o încăpere de formă dreptunghiulară cu dimensiunile a b. Încăperea trebuie pavată cu gresie de formă pătratică, de dimensiune d. Știind că o bucată de gresie se poate folosi întreagă sau tăiată, să se determine numărul minim de bucăți de gresie sunt necesare pentru pavarea încăperii.

Date de intrare

Programul citește de la tastatură numerele naturale a b d.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran numărul minim de bucăți de gresie necesare pentru pavarea încăperii. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări

  • 1 ⩽ da, b ⩽ 32000

Exemplul 1

Intrare
12
17
3
Ieșire
Datele introduse corespund restricțiilor impuse.
24


Exemplul 2

Intrare
10
15
5
Ieșire
Datele introduse corespund restricțiilor impuse.
6

Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare_date(a, b, d):

   return a.isdigit() and b.isdigit() and d.isdigit() and 1 <= int(d) <= int(a) <= 32000 and int(d) <= int(b) <= 32000


def bucati(a, b, d): #cautăm numarul de bucăți de gresie necesară

   nr_bucati_lungime = a // d #aflăm numărul de buc necesar pentru lungimea
   nr_bucati_latime = b // d #aflăm numărul de buc necesar pentru lățimea
  1. dacă acestea nu sunt divizibile cu d, se mai adaugă o bucată la nr necesar
   if a % d != 0:  
       nr_bucati_lungime += 1
   if b % d != 0:
       nr_bucati_latime += 1
   nr_total_bucati = nr_bucati_lungime * nr_bucati_latime #calculăm numărul total de bucăți necesar pentru încăpere
   print("Numărul minim de bucăți de gresie necesare pentru pavarea încăperii este: ", nr_total_bucati)


if __name__ == '__main__':

   a = input("Introduceți lungimea încăperii: ")
   b = input("Introduceți lățimea încăperii: ")
   d = input("Introduceți dimensiunea laturii pătratelor de gresie: ")
   if validare_date(a, b, d):
       a, b, d = int(a), int(b), int(d)
       print("Datele de intrare corespund restricțiilor impuse.")
       bucati(a, b, d)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>