1844 - Inlocuire0Rec: Difference between revisions

From Bitnami MediaWiki
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...
 
No edit summary
Line 19: Line 19:
==Exemplu==
==Exemplu==
Dacă n=7 şi v=(4, 5, 0, 9, 3, 4, -2), atunci după apel v=(0, 5, 0, 9, 0, 0, 0).
Dacă n=7 şi v=(4, 5, 0, 9, 3, 4, -2), atunci după apel v=(0, 5, 0, 9, 0, 0, 0).
==Important==
Soluţia propusă va conţine doar definiţia subprogramului cerut. 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==
==Rezolvare==
def validare(n, v):
    """
    Verifică dacă valorile introduse corespund restricțiilor impuse de cerință.
    :param n: numărul de elemente al tabloului
    :param v: tabloul de elemente
    :return: True dacă valorile sunt valide, False în caz contrar
    """
    if not 2 < n < 50:
        return False
    for val in v:
        if not -10000 <= val <= 9999:
            return False
    return True
  def num(n, v):
  def num(n, v):
     # Cazul de bază - dacă n este 0, nu mai avem elemente de verificat în tablou
     """
    Funcția modifică tabloul v prin înlocuirea fiecărei valori mai mici sau egale cu prima valoare din tablou cu 0.
    :param n: numărul de elemente al tabloului
    :param v: tabloul de elemente
    :return: tabloul modificat prin referință
    """
     if n == 0:
     if n == 0:
         return v  
         return v
    # Verificăm dacă elementul curent este mai mic sau egal cu prima valoare
     v[n-1] = 0 if v[n-1] <= v[0] else v[n-1]
     if v[n-1] <= v[0]:
     num(n-1, v)
        v[n-1] = 0   
if __name__ == '__main__':
    # Apelăm recursiv funcția pentru restul elementelor din tablou
     n = int(input("Introduceti numarul de elemente: "))
     num(n-1, v)  
    v = []
    # Returnăm tabloul modificat
    for i in range(n):
     return v
        v.append(int(input(f"Introduceti elementul {i+1}: ")))
# Citim n și tabloul de la tastatură
    if validare(n, v):
n = int(input("Introduceti n: "))
        num(n, v)
v = [int(x) for x in input("Introduceti elementele tabloului: ").split()]
        print("Tabloul modificat este: ", v)
# Verificăm restricțiile impuse
     else:
if n < 2 or n > 50:
        print("Datele de intrare nu corespund restricțiilor impuse.")
     print("Datele de intrare nu corespund restricțiilor impuse.")
Funcția de validare primește numărul de elemente și tabloul de elemente și returnează True dacă valorile sunt valide, respectiv False în caz contrar.
else:
Funcția num primește numărul de elemente și tabloul de elemente și îl modifică prin înlocuirea fiecărei valori mai mici sau egale cu prima valoare
    # Apelăm funcția num pentru a modifica tabloul
    v = num(n, v)
    # Afișăm tabloul modificat
    print("Tabloul modificat este:", v)

Revision as of 11:23, 25 March 2023

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).

Important

Soluţia propusă va conţine doar definiţia subprogramului cerut. 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

def validare(n, v):
   """
   Verifică dacă valorile introduse corespund restricțiilor impuse de cerință.
   :param n: numărul de elemente al tabloului
   :param v: tabloul de elemente
   :return: True dacă valorile sunt valide, False în caz contrar
   """
   if not 2 < n < 50:
       return False
   for val in v:
       if not -10000 <= val <= 9999:
           return False
   return True
def num(n, v):
   """
   Funcția modifică tabloul v prin înlocuirea fiecărei valori mai mici sau egale cu prima valoare din tablou cu 0.
   :param n: numărul de elemente al tabloului
   :param v: tabloul de elemente
   :return: tabloul modificat prin referință
   """
   if n == 0:
       return v
   v[n-1] = 0 if v[n-1] <= v[0] else v[n-1]
   num(n-1, v)
if __name__ == '__main__':
   n = int(input("Introduceti numarul de elemente: "))
   v = []
   for i in range(n):
       v.append(int(input(f"Introduceti elementul {i+1}: ")))
   if validare(n, v):
       num(n, v)
       print("Tabloul modificat este: ", v)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

Funcția de validare primește numărul de elemente și tabloul de elemente și returnează True dacă valorile sunt valide, respectiv False în caz contrar. Funcția num primește numărul de elemente și tabloul de elemente și îl modifică prin înlocuirea fiecărei valori mai mici sau egale cu prima valoare