0023 - Oglindit: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerinţa== Să se scrie o funcție Python care să determine oglinditul unui număr natural transmis ca parametru. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire. ==Restricţii şi precizări== :Numele funcției va fi '''oglindit''' :Funcția va avea doi parametri: primul parametru reprezintă numărul pentru care se calculează oglinditul, iar la doilea parametru reprezintă valoarea calculată :Numărul pentru care se calculează oglinditul...
 
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Cerinţa==
==Cerinţa==
Să se scrie o funcție Python care să determine oglinditul unui număr natural transmis ca parametru. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire.
Să se scrie o funcție Python care să determine oglinditul unui număr natural transmis ca parametru. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire.
==Date de intrare== 
Se citește de la tastatură un număr natural mai mic decât '''1.000.000.000'''
==Date de ieșire==
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa oglinditul numărului dat ca intrare. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."


==Restricţii şi precizări==
==Restricţii şi precizări==


:Numele funcției va fi '''oglindit'''
*Numele funcției va fi '''oglindit'''
:Funcția va avea doi parametri: primul parametru reprezintă numărul pentru care se calculează oglinditul, iar la doilea parametru reprezintă valoarea calculată
*Funcția va avea doi parametri: primul parametru reprezintă numărul pentru care se calculează oglinditul, iar la doilea parametru reprezintă valoarea calculată
:Numărul pentru care se calculează oglinditul va fi mai mic decât '''1.000.000.000'''
*Numărul pentru care se calculează oglinditul va fi mai mic decât '''1.000.000.000'''
 
==Exemplu==
===Exemplul 1===
 
;Intrare


:12345
;Ieșire
:Datele de intrare corespund restrictiilor impuse.
:54321


==Important==
==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.
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==
===Rezolvare ver. 1===
===Rezolvare ver. 1===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def validare(n):
    return int(n) < 1_000_000_000


def oglindit(nr, oglindit_nr):
def oglindit(nr, oglindit_nr):
     """Calculează oglinditul unui număr natural transmis ca parametru."""
     nr = int(nr)
    if nr >= 1000000000:
        raise ValueError("Numărul trebuie să fie mai mic decât 1.000.000.000")
     oglindit_nr = 0  # inițializăm oglinditul cu valoarea 0
     oglindit_nr = 0  # inițializăm oglinditul cu valoarea 0
     while nr > 0:
     while nr > 0:
Line 26: Line 42:
         nr = nr // 10
         nr = nr // 10
     return oglindit_nr
     return oglindit_nr


if __name__ == '__main__':
if __name__ == '__main__':
     nr = 12345
     nr = input()
     oglindit_nr = 0
     oglindit_nr = 0
     print(f"Oglinditul lui {nr} este {oglindit(nr, oglindit_nr)}")
     if validare(nr):
        n = int(nr)
        print("Datele de intrare corespund restricțiilor impuse")
        print(oglindit(nr, oglindit_nr))
    else:
        print("Datele de intrare nu corespund restricțiilor impuse")
 
</syntaxhighlight>


==Explicatii==
Această soluție constă în două funcții și o secțiune de cod care le utilizează:


Funcția validare(n) primește un număr întreg n și returnează True dacă n este mai mic decât 1 miliard, altfel returnează False. Această funcție verifică restricția impusă în enunțul problemei.


</syntaxhighlight>
Funcția oglindit(nr, oglindit_nr) primește două parametri de tip întreg: nr - numărul pentru care se calculează oglinditul, și oglindit_nr - o variabilă care va conține oglinditul la final. Inițial, oglindit_nr este setat la 0. Apoi, funcția calculează oglinditul numărului nr prin preluarea ultimei cifre a acestuia (folosind operatorul modulo) și adăugarea acesteia la sfârșitul variabilei oglindit_nr (prin înmulțirea cu 10 și adunarea cu ultima cifră). Acest proces se repetă până când toate cifrele numărului nr au fost preluate și adăugate la oglindit_nr.
 
În secțiunea de cod if __name__ == '__main__': este introdusă o valoare de test pentru nr (în cazul de față, 12345). Se inițializează și variabila oglindit_nr la 0. În continuare, se verifică dacă nr îndeplinește restricțiile impuse prin apelul funcției validare(nr). Dacă acesta este adevărat, se afișează un mesaj corespunzător și se calculează oglinditul numărului nr prin apelul funcției oglindit(nr, oglindit_nr), care actualizează variabila oglindit_nr. În caz contrar, se afișează un alt mesaj care indică faptul că datele introduse nu corespund restricțiilor impuse.

Latest revision as of 15:43, 6 May 2023

Cerinţa[edit]

Să se scrie o funcție Python care să determine oglinditul unui număr natural transmis ca parametru. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire.

Date de intrare[edit]

Se citește de la tastatură un număr natural mai mic decât 1.000.000.000

Date de ieșire[edit]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa oglinditul numărului dat ca intrare. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricţii şi precizări[edit]

  • Numele funcției va fi oglindit
  • Funcția va avea doi parametri: primul parametru reprezintă numărul pentru care se calculează oglinditul, iar la doilea parametru reprezintă valoarea calculată
  • Numărul pentru care se calculează oglinditul va fi mai mic decât 1.000.000.000

Exemplu[edit]

Exemplul 1[edit]

Intrare
12345
Ieșire
Datele de intrare corespund restrictiilor impuse.
54321

Important[edit]

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[edit]

Rezolvare ver. 1[edit]

<syntaxhighlight lang="python" line="1" start="1"> def validare(n):

   return int(n) < 1_000_000_000


def oglindit(nr, oglindit_nr):

   nr = int(nr)
   oglindit_nr = 0  # inițializăm oglinditul cu valoarea 0
   while nr > 0:
       oglindit_nr = oglindit_nr * 10 + nr % 10
       nr = nr // 10
   return oglindit_nr


if __name__ == '__main__':

   nr = input()
   oglindit_nr = 0
   if validare(nr):
       n = int(nr)
       print("Datele de intrare corespund restricțiilor impuse")
       print(oglindit(nr, oglindit_nr))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse")

</syntaxhighlight>

Explicatii[edit]

Această soluție constă în două funcții și o secțiune de cod care le utilizează:

Funcția validare(n) primește un număr întreg n și returnează True dacă n este mai mic decât 1 miliard, altfel returnează False. Această funcție verifică restricția impusă în enunțul problemei.

Funcția oglindit(nr, oglindit_nr) primește două parametri de tip întreg: nr - numărul pentru care se calculează oglinditul, și oglindit_nr - o variabilă care va conține oglinditul la final. Inițial, oglindit_nr este setat la 0. Apoi, funcția calculează oglinditul numărului nr prin preluarea ultimei cifre a acestuia (folosind operatorul modulo) și adăugarea acesteia la sfârșitul variabilei oglindit_nr (prin înmulțirea cu 10 și adunarea cu ultima cifră). Acest proces se repetă până când toate cifrele numărului nr au fost preluate și adăugate la oglindit_nr.

În secțiunea de cod if __name__ == '__main__': este introdusă o valoare de test pentru nr (în cazul de față, 12345). Se inițializează și variabila oglindit_nr la 0. În continuare, se verifică dacă nr îndeplinește restricțiile impuse prin apelul funcției validare(nr). Dacă acesta este adevărat, se afișează un mesaj corespunzător și se calculează oglinditul numărului nr prin apelul funcției oglindit(nr, oglindit_nr), care actualizează variabila oglindit_nr. În caz contrar, se afișează un alt mesaj care indică faptul că datele introduse nu corespund restricțiilor impuse.