1303 - Calculator: Difference between revisions
Pagină nouă: ==Cerință== Se dau '''două numere naturale''' și un simbol pentru una dintre operațiile '''+, -, *, /''' (adunare, scădere, înmulțire, impărțire). Să se determine rezultatul operației aplicate pentru cele două numere. ==Date de intrare== Programul citește de la tastatură numerele '''A B''', iar apoi '''simbolul operației'''. ==Date de ieșire== Programul va afișa pe ecran numărul '''R''', reprezentând rezultatul operației. ==Restricții și precizări==... |
Vardai Erwin (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 6: | Line 6: | ||
==Date de ieșire== | ==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 pe ecran numărul '''R''', reprezentând rezultatul operației. Î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== | ||
Line 16: | Line 16: | ||
;Intrare | ;Intrare | ||
:10 20 | :10 | ||
:20 | |||
:+ | :+ | ||
;Ieșire | ;Ieșire | ||
:Datele de intrare corespund restricțiilor impuse. | |||
:30 | :30 | ||
Latest revision as of 18:05, 22 April 2023
Cerință[edit | edit source]
Se dau două numere naturale și un simbol pentru una dintre operațiile +, -, *, / (adunare, scădere, înmulțire, impărțire). Să se determine rezultatul operației aplicate pentru cele două numere.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele A B, iar apoi simbolul operației.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran numărul R, reprezentând rezultatul operației. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
- atât numerele date cât și rezultatul operației au cel mult 9 cifre;
- numerele A și B nu sunt neapărat în ordine crescătoare sau descrescătoare; pentru operațiile de scădere și împărțire primul operand va fi numărul mai mare;
- / reprezintă determinarea câtului împărțirii întregi.
Exemplul 1[edit | edit source]
- Intrare
- 10
- 20
- +
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 30
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(a, b):
if len(str(a)) > 9 or len(str(b)) > 9: print("Numerele trebuie să aibă cel mult 9 cifre!") return False return True
def calculeaza(a, b, operatie):
if operatie == '+': r = a + b elif operatie == '-': if b > a: r = b - a else: r = a - b elif operatie == '*': r = a * b elif operatie == '/': if a > b: if b != 0: r = a / b else: print("Impartirea la zero nu este permisa!") else: if a != 0: r = b / a else: print("Impartirea la zero nu este permisa!") return None else: print("Operatie invalida!") return None return r
if __name__ == "__main__":
a = int(input("Introdu primul numar: ")) b = int(input("Introdu al doilea numar: ")) operatie = input("Introdu operatia (+, -, *, /): ") if validare(a, b): print("Datele de intrare corespund restricțiilor impuse.") print(calculeaza(a, b, operatie)) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>
Explicatie[edit | edit source]
Programul este scris în Python și conține două funcții, validare(a, b) și calculeaza(a, b, operatie), care verifică dacă numerele introduse și simbolul de operație sunt valide și calculează rezultatul operației respective. Funcția validare(a, b) verifică dacă ambele numere au cel mult 9 cifre, iar funcția calculeaza(a, b, operatie) efectuează operația specificată și returnează rezultatul.
În funcția calculeaza(a, b, operatie), mai întâi se verifică simbolul de operație pentru a determina operația specificată. Apoi, se efectuează operația specificată pe numerele a și b și se stochează rezultatul în variabila r. În cazul în care simbolul de operație este /, se verifică mai întâi dacă primul operand este mai mare decât al doilea, în caz contrar se inversează numerele. De asemenea, se verifică și dacă divisorul este zero, caz în care se afișează o eroare.
În funcția main, utilizatorul este întâi solicitat să introducă cele două numere și simbolul de operație. Apoi, se verifică dacă datele de intrare sunt valide utilizând funcția validare(a, b). În caz afirmativ, se afișează un mesaj de confirmare și se calculează rezultatul utilizând funcția calculeaza(a, b, operatie). În caz contrar, se afișează un mesaj de eroare.
În plus, sunt incluse și câteva instrucțiuni de control a fluxului (if/else) și utilizarea parametrului special __name__ pentru a verifica dacă programul este rulat direct sau importat ca modul.
Pentru a face codul mai ușor de citit și de înțeles, sunt incluse și câteva comentarii. Acestea încep cu semnul # și sunt ignorate de către interpretorul Python la rulare. Comentariile explică modul în care funcțiile sunt utilizate și detalii despre ceea ce face fiecare funcție.