0075 – FSum Div3

De la Universitas MediaWiki

Sursa: FSum DIv3


Cerinţă

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

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

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

  • 0 <= n <= 100

Exemple

Exemplul 1

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

Intrare
Introduceti numarul de elemente: 1234
Ieșire
Datele introduse sunt incorecte!

Exemplul 3

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

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)

Explicație rezolvare

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.

  1. is_integer(value): Verifică dacă valoarea introdusă este un număr întreg.
  2. verificare_nr_elemente(n): Verifică dacă n este un număr întreg între 0 și 100. Dacă nu, programul se oprește.
  3. verificare_vector(n, vector): Verifică dacă lungimea vectorului este egală cu n și dacă toate elementele din vector sunt numere întregi mai mici sau egale cu 10000. Dacă nu, programul se oprește.
  4. suma_div_cu_3(sir): Calculează suma elementelor divizibile cu 3 din lista sir și afișează suma.

În secțiunea if __name__ == '__main__', programul execută următoarele acțiuni:

  1. Preia numărul n de elemente de la utilizator și verifică dacă este valid.
  2. Preia n numere de la utilizator, separate prin spațiu, și verifică dacă sunt valide.
  3. Convertește elementele în numere întregi și le stochează în lista lst_int.
  4. Afișează un mesaj care indică faptul că datele introduse sunt corecte.
  5. Apelează funcția suma_div_cu_3(lst_int) pentru a calcula și afișa suma numerelor divizibile cu 3 din lista lst_int.