0117 – Creare Număr1

From Bitnami MediaWiki

Sursa: CreareNumar1


Cerinţă[edit | edit source]

Se dă un șir cu n elemente întregi. Să se afișeze numărul obținut prin concatenarea numărului de valoare maximă și a celui de valoare minimă, în această ordine.

Date de intrare[edit | edit source]

Programul va citi de la tastatură o valoare n, urmată de n numere naturale.

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 numărul obținut prin concatenarea celei mai mari și a celei mai mici valori din vector. Î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

Exemple[edit | edit source]

Exemplul 1[edit | edit source]

Intrare
Introduceti numarul de elemente: 10
Introduceti 10 numere separate prin spatiu:12 1 12 1231 123 1 2 31 12 1
Ieșire
Datele introduse sunt corecte!
12311

Exemplul 2[edit | edit source]

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

Exemplul 3[edit | edit source]

Intrare
Introduceti numarul de elemente: 5
Introduceti 5 numere de maxim 4 cifre separate prin spatiu:12342 12 21 sa
Ieșire
Datele introduse sunt incorecte!

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 1 <= 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 concatenare(sir):

   minim = 100000
   maxim = 0
   for elem in sir:
       if elem < minim:
           minim = elem
       if elem > maxim:
           maxim = elem
   print(str(maxim)+str(minim))


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!")
   concatenare(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, el găsește cel mai mic și cel mai mare număr dintre acestea și le concatenează pentru a forma un nou număr. Programul verifică și validează datele introduse înainte de a efectua operațiunea de concatenare.

  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 1 ș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. concatenare(sir): Găsește minimul și maximul din lista sir și le concatenează într-un singur număr. Afișează numărul rezultat.

Î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 concatenare(lst_int) pentru a găsi și afișa numărul rezultat din concatenarea minimului și maximului din lista lst_int.