0829 - AfisareRec: Difference between revisions

From Bitnami MediaWiki
mNo edit summary
No edit summary
Line 16: Line 16:
==Exemplu==
==Exemplu==
Dacă se introduc valorile 4 9 2 0 se va afișa 0 2 9 4.
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==
==Rezolvare==
  funcția afis()
  def afisare_inversa():
     citeste valoarea
     numar = int(input())
     dacă valoarea ≠ 0 atunci
     if numar == 0:
         afis()
         return
     afișează valoarea, urmată de un spațiu
    afisare_inversa()
  def afis():
     print(numar, end=' ')
    valoare = int(input())
Pentru a valida datele de intrare, putem scrie o funcție validare care primește un singur parametru numar și returnează True dacă numar este un număr natural nenul și False în caz contrar:
     if valoare != 0:
  def validare(numar):
         afis()
     if numar <= 0:
     print(valoare, end=' ')
         return False
nr = int(input())
    return True
if nr > 0:
Pentru a rezolva problema, putem apela funcția afisare_inversa în funcția rezolvare, care nu primește niciun parametru și nu returnează nimic:
    print("Datele de intrare corespund restricțiilor impuse.")
def rezolvare():
     afis()
     print("Introduceti sirul de numere:")
else:
    afisare_inversa()
    print("Datele de intrare nu corespund restricțiilor impuse.")
În final, putem scrie funcția main care va apela funcțiile validare și rezolvare și va afișa mesajul corespunzător în funcție de rezultatul validării:
def main():
    numar = int(input("Introduceti numarul de elemente: "))
    if not validare(numar):
        print("Datele de intrare nu corespund restricțiilor impuse.")
     else:
        print("Datele de intrare corespund restricțiilor impuse.")
        rezolvare()
if __name__ == "__main__":
    main()
În funcția main, se citește numărul de elemente de la tastatură și se verifică dacă acesta respectă restricțiile impuse folosind funcția validare. Dacă nu respectă, se afișează un mesaj de eroare, altfel se afișează un mesaj de confirmare și se apelează funcția rezolvare.

Revision as of 11:00, 25 March 2023

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

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

def afisare_inversa():
   numar = int(input())
   if numar == 0:
       return
   afisare_inversa()
   print(numar, end=' ')

Pentru a valida datele de intrare, putem scrie o funcție validare care primește un singur parametru numar și returnează True dacă numar este un număr natural nenul și False în caz contrar:

def validare(numar):
   if numar <= 0:
       return False
   return True

Pentru a rezolva problema, putem apela funcția afisare_inversa în funcția rezolvare, care nu primește niciun parametru și nu returnează nimic:

def rezolvare():
   print("Introduceti sirul de numere:")
   afisare_inversa()

În final, putem scrie funcția main care va apela funcțiile validare și rezolvare și va afișa mesajul corespunzător în funcție de rezultatul validării:

def main():
   numar = int(input("Introduceti numarul de elemente: "))
   if not validare(numar):
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       rezolvare()
if __name__ == "__main__":
   main()

În funcția main, se citește numărul de elemente de la tastatură și se verifică dacă acesta respectă restricțiile impuse folosind funcția validare. Dacă nu respectă, se afișează un mesaj de eroare, altfel se afișează un mesaj de confirmare și se apelează funcția rezolvare.