1452 - Să se șteargă dintr-un șir elementul aflat pe o poziție dată.
Sursa: Stergere_Element
Cerinţă[edit | edit source]
Se dă un șir cu n
elemente întregi și un număr p
. Să se șteargă din șirul X
elementul aflat pe poziția p
.
Date de intrare[edit | edit source]
Programul va citi de la tastatură două valori n p
, cu semnificația precizată, apoi n
numere întregi 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 eliminării elementului de 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[edit | edit source]
- 1 <= p <= n <= 1500
- valorile elementelor șirului vor fi cuprinse între -1.000.000 și 1.000.000
Exemple[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 3
- Introduceti pozitia de sters: 2
- Introduceti 3 elem separate prin spatiu:1 2 3
- Ieșire
- Datele introduse sunt corecte!
- Noul vector este: ['1', '3']
Exemplul 2[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 4
- Introduceti pozitia de sters: 10
- Ieșire
- Datele introduse sunt incorecte!
Exemplul 3[edit | edit source]
- Intrare
- Introduceti numarul de elemente: 4
- Introduceti pozitia de sters: 1
- Introduceti 4 elem separate prin spatiu:1 s 3 1
- 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) <= 1500: return n else: print("Datele introduse sunt incorecte!") exit() else: print("Datele introduse sunt incorecte!") exit()
def verificare_pozitie_de_sters(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 eliminare_elem_p(vector, p):
print("Datele introduse sunt corecte!") vector.pop(int(p) - 1) print("Noul vector este:", vector)
if __name__ == '__main__':
n = input("Introduceti numarul de elemente: ") verificare_nr_elemente(n) p = input("Introduceti pozitia de sters: ") verificare_pozitie_de_sters(p, n) elem = input(f"Introduceti {n} elem separate prin spatiu:").split() verificare_vector(n, elem) eliminare_elem_p(elem, p)
</syntaxhighlight>
Explicație rezolvare[edit | edit source]
Acest cod implementează o soluție pentru problema eliminării unui element dintr-un vector, după o anumită poziție. Utilizatorul introduce un număr de elemente, poziția de șters și elementele vectorului. Se verifică dacă datele introduse sunt corecte și, în caz afirmativ, se elimină elementul de pe poziția specificată ș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 1 și 1500 ș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_pozitie_de_sters(p, n)
verifică dacă poziția p
este un număr întreg între 1 și n
. Dacă p
este valid, se returnează acest număr. Dacă nu, 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 -1000000 și 1000000. Dacă vectorul este valid, nu se întoarce nimic. Dacă nu, se afișează un mesaj de eroare și se oprește programul.
Funcția eliminare_elem_p(vector, p)
elimină elementul de pe poziția p
din vector și afișează noul vector.
Instrucțiunea if __name__ == '__main__':
verifică dacă programul este rulat ca script și, în caz afirmativ, apelează funcțiile verificare_nr_elemente(n)
, verificare_pozitie_de_sters(p, n)
, verificare_vector(n, elem)
și eliminare_elem_p(elem, p)
pentru a verifica datele introduse și elimina elementul de pe poziția specificată.