0117 – Creare Număr1

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Sursa: CreareNumar1


Cerinţă

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

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

Date de ieșire

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

  • 1 <= n <= 100

Exemple

Exemplul 1

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

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

Exemplul 3

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

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)

Explicație rezolvare

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.