1309 - Gresie: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
(8 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''' ⩽ 10
*1 ⩽ '''d''' ⩽ '''a, b''' ⩽ 32000
 
== Exemplul 1==
== Exemplul 1==
; Intrare
; Intrare
Line 15: Line 17:
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 24
: 24
<br>
== Exemplul 2==
; Intrare
: 10
: 15
: 5
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 6


:
== Rezolvare ==
 
=== Rezolvare ver. 1 ===
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def main():
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
 
#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)


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


nr_bucati_lungime = a // d
if __name__ == '__main__':
nr_bucati_latime = b // d


if a % d != 0:
    a = input("Introduceți lungimea încăperii: ")
     nr_bucati_lungime += 1
     b = input("Introduceți lățimea încăperii: ")
if b % d != 0:
     d = input("Introduceți dimensiunea laturii pătratelor de gresie: ")
     nr_bucati_latime += 1


nr_total_bucati = nr_bucati_lungime * nr_bucati_latime
    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.")


print("Numărul minim de bucăți de gresie necesare pentru pavarea încăperii este: ", nr_total_bucati)
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 18:23, 22 April 2023

Cerință[edit | edit source]

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[edit | edit source]

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

Date de ieșire[edit | edit source]

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[edit | edit source]

  • 1 ⩽ da, b ⩽ 32000

Exemplul 1[edit | edit source]

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


Exemplul 2[edit | edit source]

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

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<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>