3842 - Perechi 6: Diferență între versiuni

De la Universitas MediaWiki
(Ștergerea conținutului paginii)
Etichetă: Golire
 
Linia 1: Linia 1:
== Cerința ==
Se dau doi vectori de numere întregi. Să se determine vectorul rezultat din interclasarea celor doi vectori, păstrând ordinea elementelor.
== Date de intrare ==
Programul citește de la tastatură doi vectori de numere întregi.
== Date de ieșire ==
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
În următorul rând se va afișa pe ecran vectorul rezultat din interclasarea celor doi vectori.


În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
== Restricții și precizări ==
* 1 ⩽ '''numar_elemente_vector1''', '''numar_elemente_vector2''' ⩽ 100000
== Exemplu 1 ==
;Intrare
1 3 5<br>
2 4 6
;Iesire
Datele de intrare corespund restricțiilor impuse.
[1, 2, 3, 4, 5, 6]
== Rezolvare ==
<syntaxhighlight lang="python" line>
def citeste_vectori():
    try:
        vector_1 = list(map(int, input("Introduceți elementele primului vector: ").split()))
        vector_2 = list(map(int, input("Introduceți elementele celui de-al doilea vector: ").split()))
        return vector_1, vector_2
    except ValueError:
        return None, None
def valideaza_date(vector_1, vector_2):
    if 1 <= len(vector_1) <= 100000 and 1 <= len(vector_2) <= 100000:
        if all(-10**9 <= elem <= 10**9 for elem in vector_1) and all(-10**9 <= elem <= 10**9 for elem in vector_2):
            return True
    return False
def interclasare(vector_1, vector_2):
    rezultat = []
    i, j = 0, 0
    while i < len(vector_1) and j < len(vector_2):
        if vector_1[i] < vector_2[j]:
            rezultat.append(vector_1[i])
            i += 1
        else:
            rezultat.append(vector_2[j])
            j += 1
    rezultat.extend(vector_1[i:])
    rezultat.extend(vector_2[j:])
    return rezultat
def main():
    vector_1, vector_2 = citeste_vectori()
   
    if vector_1 is None or vector_2 is None:
        print("Datele de intrare nu corespund restricțiilor impuse.")
        return
   
    if valideaza_date(vector_1, vector_2):
        print("Datele de intrare corespund restricțiilor impuse.")
        rezultat = interclasare(vector_1, vector_2)
        print(rezultat)
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")
if __name__ == "__main__":
    main()
</syntaxhighlight>

Versiunea curentă din 2 iunie 2024 20:49