0040 – Vector Max Min Sum

From Bitnami MediaWiki

Sursa: Vector Max Min Sum


Cerinţă[edit | edit source]

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

Date de intrare[edit | edit source]

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

Date de ieșire[edit | edit source]

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[edit | edit source]

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

Exemple[edit | edit source]

Exemplul 1[edit | edit source]

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[edit | edit source]

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

Exemplul 3[edit | edit source]

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[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 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)


</syntaxhighlight>

Explicație rezolvare[edit | edit source]

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).