1581 - Max Suma: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
Line 8: Line 8:
== Date de ieșire ==  
== Date de ieșire ==  
Se vor scrie pe fiecare rând pentru fiecare şir '''cel mai mare număr''' din şir şi '''suma'''.
Se vor scrie pe fiecare rând pentru fiecare şir '''cel mai mare număr''' din şir şi '''suma'''.
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 ==
== Restricţii şi precizări ==

Revision as of 19:41, 2 April 2023

Sursa: [1]

Cerinţa

Se dau n şiruri, fiecare şir fiind format din m numere naturale mai mici decat 500. Să se determine cel mai mare număr din fiecare şir. Să se determine suma numerelor fiecărui şir.

Date de intrare

Programul citeste pe rând n, m şi restul numerelor.

Date de ieșire

Se vor scrie pe fiecare rând pentru fiecare şir cel mai mare număr din şir şi suma.

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

1 ≤ m ≤ 50

Exemplul 1

Intrare
3
5
15 25 44 66 87
25 11 44 78 32
20 59 87 45 99
Ieșire
87 237
78 190
99 310


Rezolvare

<syntaxhighlight lang="python" line>

  1. 1581

def read_input():

   """
   Citeste datele de intrare si returneaza lista de siruri de numere.
   """
   n = int(input("Introduceti numarul de siruri: "))
   siruri_numere = []
   for i in range(n):
       sir = input("Introduceti sirul de numere separate prin spatiu: ")
       numere = sir.split()
       numere_int = [int(x) for x in numere]
       siruri_numere.append(numere_int)
   return siruri_numere

def max_and_sum(sir):

   """
   Gaseste cel mai mare numar si suma numerelor dintr-un sir.
   """
   max_numar = 0
   suma = 0
   for numar in sir:
       if numar > max_numar:
           max_numar = numar
       suma += numar
   return max_numar, suma

def print_result(max_numar, suma, index):

   """
   Afiseaza cel mai mare numar si suma numerelor dintr-un sir,
   impreuna cu numarul sirului.
   """
   print("Cel mai mare numar din sirul", index+1, "este:", max_numar)
   print("Suma numerelor din sirul", index+1, "este:", suma)

siruri_numere = read_input()

for i, sir in enumerate(siruri_numere):

   max_numar, suma = max_and_sum(sir)
   print_result(max_numar, suma, i)

</syntaxhighlight>

Explicatie cod:

Acest cod citeste n siruri de numere separate prin spatiu, apoi pentru fiecare sir de numere calculeaza cel mai mare numar si suma tuturor numerelor din sir.

Functia read_input() citeste numarul de siruri de numere, iar apoi citeste fiecare sir de numere, il transforma intr-o lista de intregi si adauga lista la o lista generala siruri_numere. Aceasta lista este returnata la final.

Functia max_and_sum(sir) primeste un sir de numere si calculeaza cel mai mare numar din sir si suma tuturor numerelor din sir. Pentru aceasta, initializeaza max_numar cu 0 si suma cu 0, apoi parcurge fiecare numar din sir, actualizand valorile max_numar si suma corespunzator. La final, functia returneaza cele doua valori.

Functia print_result(max_numar, suma, index) primeste cel mai mare numar si suma numerelor dintr-un sir, impreuna cu numarul sirului, si le afiseaza.

In main, se citesc sirurile de numere folosind read_input(), apoi se parcurg sirurile folosind enumerate(siruri_numere) pentru a retine si indexul fiecarui sir. Pentru fiecare sir, se calculeaza cel mai mare numar si suma numerelor folosind max_and_sum(sir), iar apoi se afiseaza aceste valori folosind print_result(max_numar, suma, i), unde i este indexul sirului.