3053 - Even Odd XXL: Difference between revisions

From Bitnami MediaWiki
No edit summary
Tag: visualeditor
 
(One intermediate revision by the same user not shown)
Line 22: Line 22:


== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line="1">
# 3053 Even Odd XXL
def validare(nr):          # functia de validare a datelor de intrare
 
    if len(nr) > 1000:
        raise ValueError
 
    # daca datele de intrare nu corespund, ridicam eroarea ValueError
 
    for cifra in nr:
        if cifra.isdigit() is False:    # fiecare caracter trebuie sa fie cifra
            raise ValueError
 
    file_out.write("Datele de intrare corespund restrictiilor impuse\n")
 
 
def evenoddxxl(nr):                    # functia de rezolvare
    if int(nr[len(nr)-1]) % 2 == 0:    # testam daca ultimul caracter e o cifra para sau nu si afisam conform cerintei
        file_out.write("Par")
    else:
        file_out.write("Impar")
 
 
if __name__ == '__main__':
    file_in = open("evenoddxxlin.txt", "r")        # declararea fisierelor
    file_out = open("evenoddxxlout.txt", "w")      # fisierul out trebuie declarat cu optiunea "w" (write)
 
    # din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam
    try:
        numar = file_in.readline()      # citirea numarului se face ca sir de caractere deoarece e prea mare
 
        validare(numar)                # apelul functiei de validare
        evenoddxxl(numar)              # apelul functiei de rezolvare
 
    except ValueError:
        file_out.write("Datele de intrare nu corespund restrictiilor impuse")
    except IndexError:
        file_out.write("Datele de intrare nu corespund restrictiilor impuse")
       
</syntaxhighlight>

Latest revision as of 13:27, 4 May 2023

Cerința[edit]

Se dă un număr natural n. Să se determine paritatea lui. Dacă numărul este par se afișează Par, altfel se afișează Impar.

Date de intrare[edit]

Fișierul de intrare evenoddxxlin.txt conține pe prima linie numărul n.

Date de ieșire[edit]

Dacă datele sunt introduse corect, fișierul de ieșire evenoddxxlout.txt va conține pe prima linie: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa Par sau Impar, după caz. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse"

Restricții și precizări[edit]

  • n are cel mult 1000 de cifre

Exemplu 1[edit]

evenoddxxlin.txt
5
evenoddxxlout.txt
Datele introduse corespund restricțiilor impuse.
Impar


Exemplu 2[edit]

evenoddxxlin.txt
1n678889
evenoddxxlout.txt
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare[edit]

<syntaxhighlight lang="python" line="1">

  1. 3053 Even Odd XXL

def validare(nr): # functia de validare a datelor de intrare

   if len(nr) > 1000:
       raise ValueError
   # daca datele de intrare nu corespund, ridicam eroarea ValueError
   for cifra in nr:
       if cifra.isdigit() is False:    # fiecare caracter trebuie sa fie cifra
           raise ValueError
   file_out.write("Datele de intrare corespund restrictiilor impuse\n")


def evenoddxxl(nr): # functia de rezolvare

   if int(nr[len(nr)-1]) % 2 == 0:     # testam daca ultimul caracter e o cifra para sau nu si afisam conform cerintei
       file_out.write("Par")
   else:
       file_out.write("Impar")


if __name__ == '__main__':

   file_in = open("evenoddxxlin.txt", "r")         # declararea fisierelor
   file_out = open("evenoddxxlout.txt", "w")       # fisierul out trebuie declarat cu optiunea "w" (write)
   # din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam
   try:
       numar = file_in.readline()      # citirea numarului se face ca sir de caractere deoarece e prea mare
       validare(numar)                 # apelul functiei de validare
       evenoddxxl(numar)               # apelul functiei de rezolvare
   except ValueError:
       file_out.write("Datele de intrare nu corespund restrictiilor impuse")
   except IndexError:
       file_out.write("Datele de intrare nu corespund restrictiilor impuse")
       

</syntaxhighlight>