1844 - Inlocuire0Rec

From Bitnami MediaWiki
Revision as of 21:56, 21 March 2023 by Catalin Moje (talk | contribs) (Pagină nouă: ==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 t...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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)