0836 - AfisareVectorRec1
Cerinţa
Să se scrie o funcție recursivă care citește de la tastatură un șir de valori naturale și le afișează în ordine inversă, cu câte un spațiu între ele.
Date de intrare
Se va introduce de la tastatură un șir de valori naturale care vor fi transmise ca perimetrii
Date de ieșire
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse." Î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
numele funcției va fi afis; funcția nu va avea parametri și nu va returna nimic; șirul de valori citite se încheie la citirea valorii 0.
Exemplu
Dacă se introduc valorile 4 9 2 0 se va afișa 0 2 9 4.
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
Pentru această problemă, vom folosi o funcție de validare care verifică dacă valorile citite sunt numere naturale și o funcție de rezolvare care citește valorile și le afișează în ordine inversă, folosind recursivitatea. Vom utiliza apoi o funcție main care va apela cele două funcții și va afișa mesajul corespunzător.
def validare():
while True: try: valoare = input("Introduceti o valoare naturala: ") if int(valoare) < 0: print("Datele de intrare nu corespund restricțiilor impuse.") continue return int(valoare) except ValueError: print("Datele de intrare nu corespund restricțiilor impuse.") def rezolvare(): valoare = validare() if valoare == 0: return else: rezolvare() print(valoare, end=" ") def main(): print("Acest program va afisa valorile introduse in ordine inversa.") print("Introduceti valorile naturale separate prin spatiu, urmate de 0 pentru a incheia.") rezolvare() print("\nDatele de intrare corespund restricțiilor impuse.") main()