0158 - Să se insereze pe o poziție dată într-un șir o valoare precizată.
Sursa: inserare
Cerinţă
Se dă un șir cu n
elemente întregi, valoare întreagă X
și un număr p
. Să se insereze pe poziția p
în șir valoarea X
.
Date de intrare
Programul va citi de la tastatură trei valori n
, X
, p
, cu semnificația precizată, apoi n
numere întregi reprezentând elementele șirului.
Date de ieșire
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 elementului x pe poziția p. Î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 <= p <= n <= 25
- valorile elementelor șirului vor fi cuprinse între -1.000.000 și 1.000.000
Exemple
Exemplul 1
- Intrare
- Introduceti numarul de elemente: 2
- Introduceti valoarea x pentru a fi adaugata: 1234
- Introduceti pozitia p pe care se va adauga: 1
- Introduceti 2 elem separate prin spatiu:1 3
- Ieșire
- Datele introduse sunt corecte!
- Noul vector este: [1234, '1', '3']
Exemplul 2
- Intrare
- Introduceti numarul de elemente: 3
- Introduceti valoarea x pentru a fi adaugata: 2
- Introduceti pozitia p pe care se va adauga: 10
- Ieșire
- Datele introduse sunt incorecte!
Exemplul 3
- Intrare
- Introduceti numarul de elemente: 14541
- Ieșire
- Datele introduse sunt incorecte!
Rezolvare
def is_integer(value):
return value.isdigit()
def verificare_nr_elemente(n):
if is_integer(n):
if 0 <= int(n) <= 1000:
return n
else:
print("Datele introduse sunt incorecte!")
exit()
else:
print("Datele introduse sunt incorecte!")
exit()
def verificare_x(x):
if is_integer(x):
if -1000000 <= int(n) <= 1000000:
return x
else:
print("Datele introduse sunt incorecte!")
exit()
else:
print("Datele introduse sunt incorecte!")
exit()
def verificare_p(p, n):
if is_integer(p):
if -1 <= int(p) <= int(n):
return p
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 -1000000 <= int(i) <= 1000000:
continue
else:
print("Datele introduse sunt incorecte!")
exit()
else:
print("Datele introduse sunt incorecte!")
exit()
def adaugare_element(vector, x, p):
vector.insert(int(p)-1, int(x))
return vector
if __name__ == '__main__':
n = input("Introduceti numarul de elemente: ")
verificare_nr_elemente(n)
x = input("Introduceti valoarea x pentru a fi adaugata: ")
verificare_x(x)
p = input("Introduceti pozitia p pe care se va adauga: ")
verificare_p(p, n)
elem = input(f"Introduceti {n} elem separate prin spatiu:").split()
verificare_vector(n, elem)
print("Datele introduse sunt corecte!")
vector_nou = adaugare_element(elem, x, p)
print("Noul vector este: ", vector_nou)
Explicație
Acest cod implementează o soluție pentru problema adăugării unui element pe o anumită poziție într-un vector. Utilizatorul introduce un număr de elemente, valoarea de adăugat și poziția pe care să fie adăugată apoi elementele vectorului. Se verifică dacă datele introduse sunt corecte și, în caz afirmativ, se adaugă elementul în vector ș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 1000 ș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_x(x)
verifică dacă valoarea x
este un număr întreg între -1.000.000 și 1.000.000 și returnează acest număr. Dacă x
nu este valid, se afișează un mesaj de eroare și se oprește programul.
Funcția verificare_p(p, n)
verifică dacă poziția p
este un număr întreg între -1 și n
și returnează acest număr. Dacă p
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 între -1.000.000 și 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 adaugare_element(vector, x, p)
primește un vector, o valoare x
și o poziție p
și adaugă valoarea x
în vector pe poziția p
. 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)
, verificare_x(x)
, verificare_p(p, n)
și verificare_vector(n, elem)
pentru a verifica datele introduse, adăuga elementul în vector și afișa noul vector. Se afișează și un mesaj care confirmă că datele introduse sunt corecte înainte de a afișa noul vector