0277 - Vârfuri: Difference between revisions
Dragos1234 (talk | contribs) No edit summary |
Dragos1234 (talk | contribs) |
||
Line 64: | Line 64: | ||
==Explicatie rezolvare== | ==Explicatie rezolvare== | ||
Acest program calculează suma elementelor dintr-o listă care sunt considerate "vârfuri", adică elemente care sunt mai mari decât elementele din dreapta și stânga lor. | |||
În funcția `validate_input()`, se verifică dacă numărul de elemente este între 1 și 1000 și dacă toate elementele din listă au cel mult 4 cifre. În caz contrar, se afișează un mesaj de eroare și se returnează False. | |||
În funcția `calculate_sum_of_peaks()`, se iterează prin elementele listei și se verifică dacă un element este mai mare decât elementele din stânga și din dreapta. Dacă este, atunci se adaugă la suma totală. | |||
În funcția principală, se citesc numărul de elemente și elementele în sine de la tastatură și se verifică dacă acestea sunt valide folosind funcția `validate_input()`. Dacă sunt valide, se calculează suma vârfurilor utilizând funcția `calculate_sum_of_peaks()` și se afișează rezultatul. |
Revision as of 17:05, 26 April 2023
Sursa: [1]
Cerinţa
Într-un şir de numere naturale se numeşte vârf un element care are doi vecini şi este strict mai mare decât aceştia.
Se dă un şir cu n elemente, numere naturale. Calculaţi suma elementelor din şir care sunt vârfuri.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n numere naturale, separate prin spaţii.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa valoarea cerută. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse.
Restricţii şi precizări
- 1 ⩽ n ⩽ 1000
- cele n numere citite vor avea cel mult 4 cifre.
Exemplul 1
- Intrare
- Introduceti numarul de elemente: 7
- Ieșire
- Introduceti elementele separate prin spatiu: 3 8 4 4 1 9 1
- Suma elementelor care sunt varfuri este: 17
Exemplul 2
- Intrare
- Introduceti numarul de elemente: 0
- Ieșire
- Numarul de elemente trebuie sa fie intre 1 si 1000.
Rezolvare
<syntaxhighlight lang="python" line>
- 0277
def validate_input(n, elemente):
if not 1 <= n <= 1000: print("Numarul de elemente trebuie sa fie intre 1 si 1000.") return False for x in elemente: if not 0 <= x <= 9999: print("Toate elementele trebuie sa aiba cel mult 4 cifre.") return False return True
def calculate_sum_of_peaks(n, elemente):
suma = 0 for i in range(1, n-1): if elemente[i] > elemente[i - 1] and elemente[i] > elemente[i + 1]: suma += elemente[i] return suma
if __name__ == '__main__':
n = int(input("Introduceti numarul de elemente: ")) elemente = list(map(int, input("Introduceti elementele separate prin spatiu: ").split()))
if validate_input(n, elemente): suma = calculate_sum_of_peaks(n, elemente) print("Suma elementelor care sunt varfuri este:", suma)
</syntaxhighlight>
Explicatie rezolvare
Acest program calculează suma elementelor dintr-o listă care sunt considerate "vârfuri", adică elemente care sunt mai mari decât elementele din dreapta și stânga lor.
În funcția `validate_input()`, se verifică dacă numărul de elemente este între 1 și 1000 și dacă toate elementele din listă au cel mult 4 cifre. În caz contrar, se afișează un mesaj de eroare și se returnează False.
În funcția `calculate_sum_of_peaks()`, se iterează prin elementele listei și se verifică dacă un element este mai mare decât elementele din stânga și din dreapta. Dacă este, atunci se adaugă la suma totală.
În funcția principală, se citesc numărul de elemente și elementele în sine de la tastatură și se verifică dacă acestea sunt valide folosind funcția `validate_input()`. Dacă sunt valide, se calculează suma vârfurilor utilizând funcția `calculate_sum_of_peaks()` și se afișează rezultatul.