Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
1519 - Dans
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp] == Cerinţa == De 1 Iunie – Ziua Copilului se organizează un spectacol de dans cu şi pentru copii. Acesta este programat să se desfăşoare în intervalul orar 10.30 -12.00. În spectacol se înscriu n trupe de dans, iar pentru fiecare trupă se cunoaşte timpul necesar realizării dansului în minute şi numărul de copii din trupa. Cunoscând '''n''', numărul de trupe înscrise, cele n perechi '''(t,c)''' unde '''t''' reprezintă timpul în minute şi '''c''' numărul de copii din trupa scrieţi un program care: a) Verifică dacă toate cele '''n''' echipe înscrise în spectacol se încadrează în timpul alocat spectacolului şi afişează mesajul NU dacă timpul este mai mare decât cel programat, în caz contrar afişează mesajul DA. b) Calculează cu câte minute este programul incomplet sau depăşit. c) Calculează câţi copii au fost implicaţi în realizarea spectacolului. d) Calculează care este cel mai mare şi cel mai mic timp alocat unui dans. == Date de intrare == Pe prima linie a programul se afla '''n''', numărul de trupe înscrise, iar pe următoarele linii cele '''n''' perechi de forma de mai sus. Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează cerintele de mai sus. În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse." == Date de ieșire == Datele conform cerintelor a) – d) se vor afişa în program, răspunsul fiecărei cerinţe fiind scris pe câte o linie. La punctul d) cele 2 valori se vor despărţi prin spaţiu. 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''' ≤ 100 5 ≤ '''t''' ≤ 15 == Exemplul 1 == ; Datele de intrare: : Introduceți numărul de trupe: : 8 : Introduceți timpul și numărul de copii pentru trupa 1 (în această ordine): :10 6 : Introduceți timpul și numărul de copii pentru trupa 2 (în această ordine): :8 5 : Introduceți timpul și numărul de copii pentru trupa 3 (în această ordine): :9 6 : Introduceți timpul și numărul de copii pentru trupa 4 (în această ordine): :12 10 : Introduceți timpul și numărul de copii pentru trupa 5 (în această ordine): :10 12 : Introduceți timpul și numărul de copii pentru trupa 6 (în această ordine): :5 6 : Introduceți timpul și numărul de copii pentru trupa 7 (în această ordine): :7 8 : Introduceți timpul și numărul de copii pentru trupa 8 (în această ordine): :9 8 ; Datele de ieșire: : Datele sunt introduse corect. : DA : Programul este incomplet sau depășit cu 20 minute : Numărul total de copii implicați este: 61 : Cel mai mare timp alocat unui dans este: 12 : Cel mai mic timp alocat unui dans este: 5 <br> == Rezolvare == <syntaxhighlight lang="python" line> #1519 def read_input(n): """ Citeste datele de intrare pentru cele n trupe si returneaza o lista de tuple (t, c) reprezentand timpul si numarul de copii pentru fiecare trupa. """ trupe = [] for i in range(n): t, c = map(int, input( f"Introduceți timpul și numărul de copii pentru trupa {i + 1} (în această ordine): ").split()) trupe.append((t, c)) return trupe def compute_statistics(trupe): """ Calculeaza si returneaza timpul total, cel mai mare si cel mai mic timp alocat unui dans si numarul total de copii implicati in spectacol. """ total_time = sum(t for t, c in trupe) max_time = max(t for t, c in trupe) min_time = min(t for t, c in trupe) total_kids = sum(c for t, c in trupe) return total_time, max_time, min_time, total_kids def print_statistics(total_time, max_time, min_time, total_kids): """ Afiseaza timpul total, cel mai mare si cel mai mic timp alocat unui dans si numarul total de copii implicati in spectacol. """ if total_time > 90: print("Datele introduse sunt corecte.") print("NU") else: print("Datele introduse sunt corecte.") print("DA") minutes_incomplete_or_exceeded = abs(90 - total_time) print("Programul este incomplet sau depășit cu {} minute".format(minutes_incomplete_or_exceeded)) print("Numărul total de copii implicați este:", total_kids) print("Cel mai mare timp alocat unui dans este:", max_time) print("Cel mai mic timp alocat unui dans este:", min_time) if __name__ == '__main__': n = int(input("Introduceți numărul de trupe: ")) if not 1 <= n <= 100: print("Datele nu corespund restricțiilor impuse.") exit() trupe = read_input(n) total_time, max_time, min_time, total_kids = compute_statistics(trupe) print_statistics(total_time, max_time, min_time, total_kids) </syntaxhighlight> '''Explicatie cod:''' Acest cod este împărțit în trei funcții: read_input(n), compute_statistics(trupe) și print_statistics(total_time, max_time, min_time, total_kids). Funcția read_input(n) primește numărul n de trupe și citește de la tastatură timpul și numărul de copii pentru fiecare trupă, creând o listă de tuple care conține aceste informații pentru fiecare trupă. Această listă este returnată. Funcția compute_statistics(trupe) primește lista de tuple creată de funcția read_input(n) și calculează timpul total, cel mai mare și cel mai mic timp alocat unui dans și numărul total de copii implicați în spectacol. Aceste informații sunt returnate sub formă de tuple. Funcția print_statistics(total_time, max_time, min_time, total_kids) primește informațiile calculate de funcția compute_statistics(trupe) și le afișează în formatul specificat, împreună cu un răspuns "DA" sau "NU" în funcție de faptul că timpul total este mai mic sau mai mare decât 90 de minute. În programul principal, utilizatorul este întâi întrebat să introducă numărul de trupe. Apoi, se apelează funcția read_input(n) pentru a citi informațiile pentru fiecare trupă și a crea lista de tuple corespunzătoare. Această listă este apoi pasată funcției compute_statistics(trupe), care calculează informațiile necesare și le returnează sub formă de tuple. Această tuplă este apoi pasată funcției print_statistics(total_time, max_time, min_time, total_kids), care afișează informațiile în formatul specificat.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width