0075 – FSum Div3
Sursa: FSum DIv3
Cerinţă[edit | edit source]
Se dă un șir cu n
elemente întregi și un număr p
. Să se șteargă din șirul X
elementul aflat pe poziția p
.
Date de intrare[edit | edit source]
Programul va citi de la tastatură două valori n p
, cu semnificația precizată, apoi n
numere întregi reprezentând elementele șirului.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt corecte!", apoi se va afișa suma elementelor divizibile cu 3 din șir. În cazul în care datele nu respectă restricțiile, se va afișa mesajul "Datele introduse nu sunt corecte!".
Restricţii şi precizări[edit | edit source]
- 0 <= n <= 100
Exemple[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 5
- Introduceti 5 numere separate prin spatiu:3 2 6 9 12
- Ieșire
- Datele introduse sunt corecte!
- Suma este: 30
Exemplul 2[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 1234
- Ieșire
- Datele introduse sunt incorecte!
Exemplul 3[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 6
- Introduceti 6 numere separate prin spatiu:1 2 4 5 6 3
- Ieșire
- Datele introduse sunt corecte!
- Suma este: 9
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1"> def is_integer(value):
return value.isdigit()
def verificare_nr_elemente(n):
if is_integer(n): if 0 <= int(n) <= 100: return n else: print("Datele introduse sunt incorecte!") exit() else: print("Datele introduse sunt incorecte!") exit()
def verificare_vector(n, vector):
if len(vector) != int(n): print("Datele introduse sunt incorecte!") exit() else: for i in vector: if is_integer(i): if int(i) <= 10000: continue else: print("Datele introduse sunt incorecte!") exit() else: print("Datele introduse sunt incorecte!") exit()
def suma_div_cu_3(sir):
suma = 0 for elem in sir: if elem % 3 == 0: suma += elem print("Suma este:", suma )
if __name__ == '__main__':
n = input("Introduceti numarul de elemente: ") verificare_nr_elemente(n) elem = input(f"Introduceti {n} numere separate prin spatiu:").split() verificare_vector(n, elem) lst_int = list(map(int, elem)) print("Datele introduse sunt corecte!") suma_div_cu_3(lst_int)
</syntaxhighlight>
Explicație rezolvare[edit | edit source]
Acest program preia un număr n
de elemente și n
numere separate prin spațiu. Apoi, calculează suma tuturor numerelor divizibile cu 3 dintre acestea. Programul verifică și validează datele introduse înainte de a efectua operațiunea de calcul a sumei.
is_integer(value)
: Verifică dacă valoarea introdusă este un număr întreg.verificare_nr_elemente(n)
: Verifică dacăn
este un număr întreg între 0 și 100. Dacă nu, programul se oprește.verificare_vector(n, vector)
: Verifică dacă lungimea vectorului este egală cun
și dacă toate elementele din vector sunt numere întregi mai mici sau egale cu 10000. Dacă nu, programul se oprește.suma_div_cu_3(sir)
: Calculează suma elementelor divizibile cu 3 din listasir
și afișează suma.
În secțiunea if __name__ == '__main__'
, programul execută următoarele acțiuni:
- Preia numărul
n
de elemente de la utilizator și verifică dacă este valid. - Preia
n
numere de la utilizator, separate prin spațiu, și verifică dacă sunt valide. - Convertește elementele în numere întregi și le stochează în lista
lst_int
. - Afișează un mesaj care indică faptul că datele introduse sunt corecte.
- Apelează funcția
suma_div_cu_3(lst_int)
pentru a calcula și afișa suma numerelor divizibile cu 3 din listalst_int
.