====== LU07.A09 - Basic caluclator with methods ======
===== Prerequisites =====
* Work type: Individual
* Means of aid: only teaching materials, no websearch, no use of ai.
* Timeframe: 50 Minutes
* Expected result: A browser based calulator which can sum up 2 digits in the easiest way.
===== Source =====
{{ :en:modul:m291:learningunits:lu07:aufgaben:lu06.s08.zip | Take the solution of LU06.S08source-code and extend it}}
===== Assignment =====
In LU06.S08 we were programming a basic calulator by manipulation the values directly when clicking the buttons. This is convenient, but limits the possibilities of the calculator significantly. For example handling the divided-by-zero operation can hardly be handled with events only.
Thus, it is basically a similar assignment, but this time by using methods:
* to set values of diggit1, diggit2 and the operator
* to calulate the result
* to reset all values of the variables
==== Assignment A - 3' =====
* A01: Copy the solution of LU06.s08 and name it **LU07.s09.html**
* A02: Make sure to have
* the assignmen number in
and
* the description in -format
* A03: Safe it.
==== Assignment B - Required methods - 16' ====
* B01: method **setDiggit1(number)**: It sets the value of the variable **diggit1** to the clicked number (diggit-block 1).
* B02: method **setDiggit2(number)**: It sets the value of the variable **diggit2** to the clicked number (diggit-block 2).
* B03: method **setOperator(op)**: It sets the value of the variable **operator** to the clicked operation, e.g **+**. Hint: further operations are possible.
* B04: method **calcResult(op)**: Performes the calculation correspondigly to the chosen operation, e.g. **+**.
* B05: method **reset()**: Sets all variables to the initial values.
==== Assignment C - Variables - 1' ====
* C01: A basic calculation, e.g. **3 + 3 = 6**, compraises several variables and their initial values:
* C02: Set in the data-area: * diggit1: 0
* C03: operator: '+' (default operation is an addition)
* C04: diggit2: 0
* C05: result: 0
==== Assignment D - Button for diggit 1 - 10' ====
* D01: When clicking on the diggit keys of block one the content will be saved in the variable **diggit1**
* D02: But unlike in the previous task, this time the click triggers a method **setDiggit1(dig1)**
* D03: Continue with the other three buttons in the same fashion.
* D04: Check the result by displaying the content of the variable **diggit1** on the display.
==== Assignment E - Button the operation - 5' ====
* E01: When clicking the **+**-button the content will be saved in the variable **operator**
* E02: Check the result by displaying the content of the variable **operator** on the screen.
* **Hint:** The other three basic operations (subtraktion, multiplication, division) are conducted in the same way.
==== Assignment F - Button for diggit 2 - 5' ====
* F01: When clicking on the button in diggit2-block, the content will be saved in the variable **diggit2**
* F02: But unlike in the previous task, this time the click triggers a method **setDiggit2(dig2)**
* F03: Continue with the other three buttons in the same fashion.
* F04: Check the result by displaying the content of the variable **diggit2** on the display.
==== Assignment G: Implementation of the calculation - 10' ====
* G01: To execute our addition-operation we finally need a button **ENTER**. This triggers the method **caldResult()**.
* G02: All relevant variables (diggit1, operator, diggit2) are set know, we are ready to finalize our calculation.
* G03: In the method **calcResult** we need to execute the calculation bases on the provided **operator**.
* If the operator is a **+** we calculate our result as **this.result = this.diggit1 + this.diggit2"
* And subsequently, if the calculator is a minus**-** the result is calculated as **this.result = dthis.diggit1 - this.diggit2**
* The Multiplication and the division a conducted in the same fashion.
* G04: Finally have the **result** displayed on the screen to check the correctness of your efforts.
===== Solution =====
[[en:modul:m291:learningunits:lu07:loesungen:09|Lösung]]
===== Vocabulary =====
^ English ^ German ^
| diggit | Ziffer |
| initial values | Startwerte |
| to conduct | umsetzten|
| respectively | beziehungsweise |
| to compraise | umfassen |
----
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Volkan Demir