1309 - Gresie: Difference between revisions
Pagină nouă: == 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 == Programul afișează pe ecran număru... |
Vardai Erwin (talk | contribs) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Cerință == | == 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. | 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 == | == Date de intrare == | ||
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 == | ||
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 ⩽ a, b ⩽ | *1 ⩽ '''d''' ⩽ '''a, b''' ⩽ 32000 | ||
== Exemplul 1== | == Exemplul 1== | ||
; Intrare | ; Intrare | ||
Line 16: | Line 18: | ||
: 24 | : 24 | ||
<br> | <br> | ||
== 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 | |||
#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> |
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 ⩽ d ⩽ a, 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
- 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>