0040 – Vector Max Min Sum

De la Universitas MediaWiki

Sursa: Vector Max Min Sum


Cerinţă

Se dă un șir cu n elemente întregi. Să se afișeze valoarea minimă, valoarea maximă și suma elementelor șirului.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere întregi, separate prin spații.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt corecte!", apoi se vor afișa minimul, maximul și suma tuturor elementelor vectorului. În cazul în care datele nu respectă restricțiile, se va afișa mesajul "Datele introduse nu sunt corecte!".

Restricţii şi precizări

  • 1 <= n <= 100
  • valorile elementelor șirului vor fi < 1.000.000

Exemple

Exemplul 1

Intrare
Introduceti numarul de elemente: 5
ntroduceti 5 numere separate prin spatiu:12 13 121 312 3
Ieșire
Datele introduse sunt corecte!
mini: 3 maxi: 312 sum: 461

Exemplul 2

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

Exemplul 3

Intrare
Introduceti numarul de elemente: 5
Introduceti 5 numere separate prin spatiu:1 1 1 1 1
Ieșire
Datele introduse sunt corecte!
mini: 1 maxi: 1 sum: 5

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 min_max_sum(vector):
    mini = 100000000
    maxi = 0
    sum = 0
    for elem in vector:
        if elem < mini:
            mini = elem
        if elem > maxi:
            maxi = elem
        sum += elem
    print("mini:", mini, "maxi:", maxi, "sum:", sum)


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!")
    min_max_sum(lst_int)

Explicație rezolvare

Acest program primește un șir de n numere întregi, verifică validitatea datelor introduse și apoi calculează și afișează valoarea minimă, valoarea maximă și suma elementelor din vector. Iată o explicație pas cu pas a programului:

  1. Verifică dacă n, numărul de elemente, este întreg și între 0 și 100.
  2. Verifică dacă șirul de numere introdus are lungimea n și dacă toate elementele sunt numere întregi între 1 și 10000.
  3. Definește funcția min_max_sum care calculează valoarea minimă, valoarea maximă și suma elementelor din vector. Inițializează variabilele mini, maxi și sum. Iterează prin elementele vectorului și actualizează valoarea minimă, valoarea maximă și suma elementelor.
  4. Apelă funcția min_max_sum cu vectorul introdus de utilizator și afișează valoarea minimă, valoarea maximă și suma elementelor din vector.

Programul urmează acești pași pentru a se asigura că datele introduse sunt corecte și pentru a oferi informațiile cerute despre vector (valoarea minimă, valoarea maximă și suma elementelor).