0159 - Să se insereze într-un șir după fiecare element par dublul său.
Sursa: InserareDupa
Cerinţă[edit | edit source]
Să se insereze în șir după fiecare element par dublul său.
Date de intrare[edit | edit source]
Programul va citi de la tastatură n
numere naturale reprezentând elementele șirului.
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 noul vector, obținut în urma adăugării după fiecare element par a dublului său. Î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]
- în șir sunt cel mult 25 de numere
- elementele șirului vor fi cuprinse între 0 si 1.000.000
Exemple[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 10
- Introduceti 10 elem separate prin spatiu:1 12 4 1 12 3 4 1 2 3
- Ieșire
- Datele introduse sunt corecte!
- Noul vector este: ['1', '12', 24, '4', 8, '1', '12', 24, '3', '4', 8, '1', '2', 4, '3']
Exemplul 2[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 7
- Introduceti 7 elem separate prin spatiu:1 3 4 1a d a 2
- 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 0 <= int(n) <= 25: 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) <= 1000000: continue else: print("Datele introduse sunt incorecte!") exit() else: print("Datele introduse sunt incorecte!") exit()
def este_par(nr):
if int(nr) % 2 == 0: return True else: return False
def adaugare_element(vector):
vector_nou = [] for nr in vector: vector_nou.append(nr) if este_par(nr): vector_nou.append(int(nr)*2) return vector_nou
if __name__ == '__main__':
n = input("Introduceti numarul de elemente: ") verificare_nr_elemente(n) elem = input(f"Introduceti {n} elem separate prin spatiu:").split() verificare_vector(n, elem) print("Datele introduse sunt corecte!") print("Noul vector este: ", adaugare_element(elem))
</syntaxhighlight>
Explicație[edit | edit source]
Acest cod implementează o soluție pentru problema adăugării unui element într-un vector, în funcție de paritatea elementelor existente. Utilizatorul introduce un număr de elemente și apoi elementele vectorului. Se verifică dacă datele introduse sunt corecte și, în caz afirmativ, se adaugă elemente în vector conform regulilor și se afișează noul vector.
Funcția is_integer(value)
verifică dacă un caracter reprezintă un număr întreg și returnează True dacă este, altfel returnează False.
Funcția verificare_nr_elemente(n)
verifică dacă numărul de elemente n
este un număr întreg între 0 și 25 și returnează acest număr. Dacă n
nu este valid, se afișează un mesaj de eroare și se oprește programul.
Funcția verificare_vector(n, vector)
verifică dacă vectorul are n
elemente și dacă fiecare element este un număr întreg mai mic sau egal cu 1.000.000. Dacă vectorul este valid, nu se întoarce nimic. Dacă nu, se afișează un mesaj de eroare și se oprește programul.
Funcția este_par(nr)
verifică dacă un număr nr
este par și returnează True dacă este, altfel returnează False.
Funcția adaugare_element(vector)
primește un vector și adaugă un element după fiecare număr par din vector, care este dublul numărului par. Rezultatul este returnat sub formă de listă.
Instrucțiunea if __name__ == '__main__':
verifică dacă programul este rulat ca script și, în caz afirmativ, apelează funcțiile verificare_nr_elemente(n)
și verificare_vector(n, elem)
pentru a verifica datele introduse și apoi apelează funcția adaugare_element(elem)
pentru a modifica vectorul. Se afișează și un mesaj care confirmă că datele introduse sunt corecte înainte de a afișa noul vector.