3191 - BrokenKeyboard

From Bitnami MediaWiki
Revision as of 11:04, 12 November 2023 by Tita Marian (talk | contribs) (Pagină nouă: ==Context== Dennis R. este elev în clasa a 10-a și tocmai ce a primit prima sa tema la programare: să implementeze un program care să calculeze suma sau diferența a două cifre primite de la tastatură. La nici 2 minute după ce a început tema observă că i s-a stricat tastatura și nu mai poate scrie caracterul ''';'''. Determinat să facă tema în ciuda acestui mic impediment observă că acesta este un caracter destul de important și nu reușește să compileze f...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Context[edit | edit source]

Dennis R. este elev în clasa a 10-a și tocmai ce a primit prima sa tema la programare: să implementeze un program care să calculeze suma sau diferența a două cifre primite de la tastatură. La nici 2 minute după ce a început tema observă că i s-a stricat tastatura și nu mai poate scrie caracterul ;. Determinat să facă tema în ciuda acestui mic impediment observă că acesta este un caracter destul de important și nu reușește să compileze fără el. Ca orice student care simte cum se apropie deadline-ul și nu reușește să termine tema întreabă un prieten, în acest caz pe fratele său mai mare, Ken T., student la Poli care are ceva experiență cu dezvoltarea unui sistem. Acesta acceptă provocarea de a termina programul fără niciun ;.

Cerinţa[edit | edit source]

Terminați funcția de mai jos făra a mai folosi niciun ;.

<syntaxhighlight lang="python" line> void sumdif() { int rez = 0; //citire //afisare } </syntaxhighlight>


Date de intrare[edit | edit source]

Prin funcție se vor citi de la tastatură o cifră,+/-, și o altă cifră, în această ordine.

Date de ieșire[edit | edit source]

Prin funcție se va afișa rezultatul obținut. Î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[edit | edit source]

  • 0 ⩽ cifra ⩽ 9
  • Implementați programul descris mai sus pornind de la scheletul de cod dat fără a mai folosi caracterul ; în cod. Funcția trebuie să conțină ; maxim o singură dată. Nu încercați șmecherii pentru că veți lua 0 puncte :).

Exemplu 1[edit | edit source]

Intrare
3+5
Ieșire
8


Exemplu 2[edit | edit source]

Intrare
10+1
Datele de intrare nu corespund restricțiilor impuse.


Exemplu 3[edit | edit source]

Intrare
2-6
Ieșire
-4


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def sumdif():

   rez = 0
   # Citirea datelor de intrare
   input_data = input("Introduceti o cifra, un operator (+/-) si inca o cifra: ")
   # Verificare lungime corecta a input-ului
   if len(input_data) != 3:
       print("Datele de intrare nu corespund cerintelor impuse.")
       return
   # Extrage cifra1, operatie si cifra2
   cifra1 = int(input_data[0])
   operatie = input_data[1]
   cifra2 = int(input_data[2])
   # Verificare cifre
   if not (0 <= cifra1 <= 9) or not (0 <= cifra2 <= 9):
       print("Datele de intrare nu corespund cerintelor impuse.")
       return
   # Verificare și calcul
   if operatie == '+':
       rez = cifra1 + cifra2
   elif operatie == '-':
       rez = cifra1 - cifra2
   else:
       print("Operatorul introdus nu este valid.")
       return
   # Afisare rezultat
   print("Rezultatul operatiei este:", rez)

if __name__ == "__main__":

   sumdif()

</syntaxhighlight>