Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
0836 - AfisareVectorRec1
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Cerinţa== Să se scrie o funcție python recursivă care afișează pe ecran, în ordine inversă, elementele unui vector transmis ca parametru. ==Date de intrare== Se va introduce de la tastatură un șir de valori naturale care vor fi transmise ca perimetrii ==Date de ieșire== Dacă datele de intrare corespund restrictiilor impuse se va afișa mesajul "Datele de intrare corespund restricțiilor" și pe un rând nou se afișează ceea ce se cere. Altfel, dacă datele de intrare nu corespund cerinței se va afișa mesajul: "Datele de intrare nu corespund cerinței". ==Restricţii şi precizări== *numele funcției va fi afisvec; *funcția va avea doi parametri, în această ordine: vectorul v și numărul de elemente din vector, n. Funcția nu va returna nimic; *indicii elementelor vectorului sunt 0, 1, ..., n-1; *elementele vor fi afișate în ordinea inversă din vector, separate prin câte un spațiu. ==Exemplu== ===Exemplu 1=== :Intrare: ;Introduceti valorile separate prin spatiu: 4 9 2 0 Datele de intrare corespund restrictiilor. Lista inversata este: 0 2 9 4 </syntaxhighlight> ===Exemplu 2=== <syntaxhighlight lang="python" line> Introduceti valorile separate prin spatiu: a b c d Datele de intrare nu corespund cerintei. </syntaxhighlight> ==Important== Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei. ==Rezolvare== <syntaxhighlight lang="python" line> def citire(): """Functia citeste sirul de valori de la tastatura si il transforma in lista de intregi.""" sir = input("Introduceti valorile separate prin spatiu: ") lista = sir.split() # impartim sirul in cuvinte separate (presupunand ca sunt separate prin spatii) try: lista = [int(valoare) for valoare in lista] # transformam fiecare cuvant in intreg si cream o lista din acestea except ValueError: print("Datele de intrare nu corespund cerintei.") lista = [] # daca apar erori la transformarea cuvintelor in intregi, lista va fi goala return lista def afis(lista): """Functia afiseaza lista de valori in ordine inversa.""" if not lista: print("Nu s-au introdus valori.") return print("Lista inversata este:", end=" ") for i in range(len(lista) - 1, -1, -1): # parcurgem lista in ordine inversa print(lista[i], end=" ") print() # afisam un rand nou la final def main(): lista = citire() if lista: print("Datele de intrare corespund restrictiilor.") afis(lista) if __name__ == '__main__': main() </syntaxhighlight> ==Explicații== Programul citeste un sir de valori naturale de la tastatura si apoi afiseaza aceste valori in ordine inversa, utilizand o functie recursiva. In functia citire() se citeste de la tastatura cate o valoare la fiecare iteratie, verificandu-se daca aceasta este diferita de 0 si daca este un numar natural. Valoarea citita se adauga la lista lista_valori pana cand se citeste 0, caz in care se returneaza lista cu valorile citite. In functia afisare_inversa() se apeleaza functia citire() pentru a citi lista de valori si apoi se apeleaza functia recursiva afisare_inversa_recursiv() cu parametrii lista de valori si indexul ultimului element din lista. Aceasta functie recursiva se apeleaza pe ea insasi, afisandu-se valoarea corespunzatoare indexului curent si apoi apelandu-se recursiv functia cu indexul anterior, pana cand indexul devine 0 si se afiseaza ultima valoare din lista. In functia main() se apeleaza functia afisare_inversa() pentru a citi si afisa valorile in ordine inversa, tratandu-se cazurile in care valorile citite nu corespund cerintelor prin afisarea unui mesaj corespunzator.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width