1844 - Inlocuire0Rec
Cerinţa
Scrieţi definiția completă a subprogramului recursiv num care are 2 parametri: n – prin care primește un număr natural și v, prin care primeşte un tablou unidimensional cu n elemente, numere întregi cu cel mult 4 cifre. Subprogramul înlocuieşte cu 0 fiecare valoare mai mică sau egală cu prima valoare din tablou. Tabloul modificat este furnizat tot prin parametrul v.
Date de intrare
Se va introduce de la tastatură un număr natural care va fi transmis ca perimetru
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
2<n<50 numele subprogramului cerut este num parametrii sunt, în această ordine: n, v elementele tabloului v sunt indexate de la zero se recomandă realizarea unui subprogram recursiv
Exemplu
Dacă n=7 şi v=(4, 5, 0, 9, 3, 4, -2), atunci după apel v=(0, 5, 0, 9, 0, 0, 0).
Rezolvare
def num(n, v): # Cazul de bază - dacă n este 0, nu mai avem elemente de verificat în tablou if n == 0: return v # Verificăm dacă elementul curent este mai mic sau egal cu prima valoare if v[n-1] <= v[0]: v[n-1] = 0 # Apelăm recursiv funcția pentru restul elementelor din tablou num(n-1, v) # Returnăm tabloul modificat return v # Citim n și tabloul de la tastatură n = int(input("Introduceti n: ")) v = [int(x) for x in input("Introduceti elementele tabloului: ").split()] # Verificăm restricțiile impuse if n < 2 or n > 50: print("Datele de intrare nu corespund restricțiilor impuse.") else: # Apelăm funcția num pentru a modifica tabloul v = num(n, v) # Afișăm tabloul modificat print("Tabloul modificat este:", v)