ERD
UMLStandard
Taschenrechner
1
Design Model
UMLStandard
designModel
Z0W0dS1SbkO6z0A4vul1SQAA
1
Main
True
FXqeJ9jZBkyEs4HJ6ODJ8gAA
SmUPjc3mb0K2Jo3/sL83ZgAA
1
Mealy Automaton
FXqeJ9jZBkyEs4HJ6ODJ8gAA
TOP
GPQxSHZ6gk6TlnM6wQSu4QAA
4
digit
LBtryhxMV0+LMpKR1G9zHQAA
2
nlUh6WISWEarUcxz2YLzRwAA
kC5+bHQ4nkaPd+CT+kPa4wAA
3
wOHEVRbAq0K+DCAolTPC5QAA
7AQjtnbS20ado2bofD1dvQAA
kBj8N54JHE+aJrsUSAqDTwAA
3
ZD+N8ZM5A0q0lSrnLHPxpQAA
EmZyPYGphkevM3D8l6cbJQAA
kBj8N54JHE+aJrsUSAqDTwAA
comma
LBtryhxMV0+LMpKR1G9zHQAA
2
SMD83DizdUqDMSUcG0EMogAA
FvyNQj3sbkONhjagKjOa9wAA
3
JAMv1obQPUu6xaR60gBi3QAA
S6HhXKiaeUODtaoD6kS2oAAA
xwj+XS/3m0qq43fu8PlH5AAA
4
wOHEVRbAq0K+DCAolTPC5QAA
S6HhXKiaeUODtaoD6kS2oAAA
xwj+XS/3m0qq43fu8PlH5AAA
DAIzTwlqq0udwTLSVhizrQAA
operator
LBtryhxMV0+LMpKR1G9zHQAA
2
KdXBzRFIQEyQQ636kf8ixAAA
u0wT3zfpSUKQxZqnum//XwAA
3
ZD+N8ZM5A0q0lSrnLHPxpQAA
DAIzTwlqq0udwTLSVhizrQAA
iqZY9PEeNEK9GqZEK/w4hwAA
3
JAMv1obQPUu6xaR60gBi3QAA
7AQjtnbS20ado2bofD1dvQAA
iqZY9PEeNEK9GqZEK/w4hwAA
Initial1
pkInitial
LBtryhxMV0+LMpKR1G9zHQAA
1
rJUtQ3zFbEStiXabNVLfpQAA
1
EmZyPYGphkevM3D8l6cbJQAA
1
Taschenrechner: Mealy Automaton
GPQxSHZ6gk6TlnM6wQSu4QAA
wdPUwzgelEq/8LxJkUENJQAA
19
clMaroon
$00B9FFFF
97
93
153
40
nvAC3d0j4EWsYkxi45DULQAA
digit
False
False
nvAC3d0j4EWsYkxi45DULQAA
clMaroon
$00B9FFFF
551
93
147
40
bvghOiVcwkioe2NstWrhqQAA
comma
False
False
bvghOiVcwkioe2NstWrhqQAA
clMaroon
$00B9FFFF
320
257
132
40
Ofl0Yuv1mU+xu+iATRmfxAAA
operator
False
False
Ofl0Yuv1mU+xu+iATRmfxAAA
clMaroon
$00B9FFFF
lsRectilinear
249,102;551,102
wOHEVRbAq0K+DCAolTPC5QAA
SMD83DizdUqDMSUcG0EMogAA
nlUh6WISWEarUcxz2YLzRwAA
0,255182337523484
47,5394572960189
addComma : / o_add_comma
wOHEVRbAq0K+DCAolTPC5QAA
False
1,5707963267949
30
wOHEVRbAq0K+DCAolTPC5QAA
False
-1,5707963267949
15
wOHEVRbAq0K+DCAolTPC5QAA
clMaroon
$00B9FFFF
lsRectilinear
136,132;136,292;320,292
7AQjtnbS20ado2bofD1dvQAA
KdXBzRFIQEyQQ636kf8ixAAA
nlUh6WISWEarUcxz2YLzRwAA
-0,17114858469693
82,2009732302483
actionOperator : / o_compute_and_save_operator
7AQjtnbS20ado2bofD1dvQAA
False
1,5707963267949
30
7AQjtnbS20ado2bofD1dvQAA
False
-1,5707963267949
15
7AQjtnbS20ado2bofD1dvQAA
clMaroon
$00B9FFFF
lsRectilinear
451,264;584,264;584,132
DAIzTwlqq0udwTLSVhizrQAA
SMD83DizdUqDMSUcG0EMogAA
KdXBzRFIQEyQQ636kf8ixAAA
-4,50699282025021
49,030602688525
addComma : / o_add_comma
DAIzTwlqq0udwTLSVhizrQAA
False
1,5707963267949
30
DAIzTwlqq0udwTLSVhizrQAA
False
-1,5707963267949
15
DAIzTwlqq0udwTLSVhizrQAA
clMaroon
$00B9FFFF
lsRectilinear
660,132;660,292;451,292
JAMv1obQPUu6xaR60gBi3QAA
KdXBzRFIQEyQQ636kf8ixAAA
SMD83DizdUqDMSUcG0EMogAA
0,11425433724526
122,80065146407
actionOperator : / o_compute_and_save_operator
JAMv1obQPUu6xaR60gBi3QAA
False
1,5707963267949
30
JAMv1obQPUu6xaR60gBi3QAA
False
-1,5707963267949
15
JAMv1obQPUu6xaR60gBi3QAA
clMaroon
$00B9FFFF
lsRectilinear
320,264;176,264;176,132
ZD+N8ZM5A0q0lSrnLHPxpQAA
nlUh6WISWEarUcxz2YLzRwAA
KdXBzRFIQEyQQ636kf8ixAAA
-1,73299505552453
55,7314991723711
actionDigit : / o_first_digit
ZD+N8ZM5A0q0lSrnLHPxpQAA
False
1,5707963267949
30
ZD+N8ZM5A0q0lSrnLHPxpQAA
False
-1,5707963267949
15
ZD+N8ZM5A0q0lSrnLHPxpQAA
clMaroon
$00B9FFFF
38
104
20
20
k4pu28fb8kORppcD3PZjOAAA
clMaroon
$00B9FFFF
lsRectilinear
57,114;97,114
EmZyPYGphkevM3D8l6cbJQAA
nlUh6WISWEarUcxz2YLzRwAA
rJUtQ3zFbEStiXabNVLfpQAA
False
1,5707963267949
15
EmZyPYGphkevM3D8l6cbJQAA
False
1,5707963267949
30
EmZyPYGphkevM3D8l6cbJQAA
False
-1,5707963267949
15
EmZyPYGphkevM3D8l6cbJQAA
clMaroon
$00B9FFFF
lsRectilinear
128,93;128,52;200,52;200,93
kBj8N54JHE+aJrsUSAqDTwAA
nlUh6WISWEarUcxz2YLzRwAA
nlUh6WISWEarUcxz2YLzRwAA
0,904826647775561
17,8044938147649
actionDigit : / o_add_digit
kBj8N54JHE+aJrsUSAqDTwAA
False
1,5707963267949
30
kBj8N54JHE+aJrsUSAqDTwAA
False
-1,5707963267949
15
kBj8N54JHE+aJrsUSAqDTwAA
clMaroon
$00B9FFFF
lsRectilinear
632,93;632,44;680,44;680,93
S6HhXKiaeUODtaoD6kS2oAAA
SMD83DizdUqDMSUcG0EMogAA
SMD83DizdUqDMSUcG0EMogAA
-3,30296712886116
87,1320836431679
addComma : / o_error_more_than_one_comma
S6HhXKiaeUODtaoD6kS2oAAA
False
1,5707963267949
30
S6HhXKiaeUODtaoD6kS2oAAA
False
-1,5707963267949
15
S6HhXKiaeUODtaoD6kS2oAAA
clMaroon
$00B9FFFF
lsRectilinear
561,93;561,72;615,72;615,93
xwj+XS/3m0qq43fu8PlH5AAA
SMD83DizdUqDMSUcG0EMogAA
SMD83DizdUqDMSUcG0EMogAA
-3,44321110930092
47,1274866717927
actionDigit : / o_add_decmial
xwj+XS/3m0qq43fu8PlH5AAA
False
1,5707963267949
30
xwj+XS/3m0qq43fu8PlH5AAA
False
-1,5707963267949
15
xwj+XS/3m0qq43fu8PlH5AAA
clMaroon
$00B9FFFF
lsRectilinear
345,296;345,332;425,332;425,296
True
iqZY9PEeNEK9GqZEK/w4hwAA
KdXBzRFIQEyQQ636kf8ixAAA
KdXBzRFIQEyQQ636kf8ixAAA
-1,1999045554086
19,313207915828
actionOperator : / o_error_more_than_one_operator
iqZY9PEeNEK9GqZEK/w4hwAA
False
1,5707963267949
30
iqZY9PEeNEK9GqZEK/w4hwAA
False
-1,5707963267949
15
iqZY9PEeNEK9GqZEK/w4hwAA
clMaroon
$00D7D7D7
clRed
716
12
399
203
private var v_value: Number;
private var v_value_old: Number;
private var v_digit: int = 0;
private var v_operator: String = "=";
private var v_operator_old: String;
private var v_decimal_factor: Number;
// für Nachkommaberechnung
public function get value(): Number
{ return v_value; }
private function set value(p_value: Number): void
{ v_value = p_value; dispatchEvent(new Event(Event.CHANGE)); }
clMaroon
$00B9FFFF
clBlue
309
384
298
368
private function o_handle_add_first_digit()
{
value = v_digit;
}
private function o_add_digit()
{
value = v_value*10 + v_digit;
}
private function o_handle_add_decimal()
{
v_decimal_factor /= 10;
value += v_digit*v_decmial_factor;
}
private function o_handle_add_comma()
{
v_decimal_factor = 1;
}
// Ignoriere fehlerhafte Eingaben
public function o_error_more_than_one_comma(): void {}
public functiono_error_more_than_one_operator(): void {}
clMaroon
$00B9FFFF
clBlue
632
384
220
353
private function o_compute_and_save_operator(): void
{
switch (v_operator_old)
{
case "+":
v_value_old = v_value_old + v_value;
break;
case "-":
v_value_old = v_value_old - v_value;
break;
case "*":
v_value_old = v_value_old * v_value;
break;
case "/":
v_value_old = v_value_old / v_value;
break;
case "=":
v_value_old = v_value;
break;
}
value = v_value_old; // Wert anzeigen
}
clMaroon
$00D7D7D7
clMaroon
16
384
268
443
public function actionDigit(p_digit: int): void
{
v_digit = p_digit;
v_state_machine.doAction("actionDigit");
}
public function addComma(): void
{
v_state_machine.doAction("addComma");
}
public function actionOperator(p_operator: String): void
{
v_operator_old = v_operator;
v_operator = p_operator;
v_state_machine.doAction("actionOperator");
}
public function actionClear()
{
v_state_machine.reset():
v_digit = 0:
v_operator = "=";
v_value_old = 0;
value = 0;
}
clMaroon
$00B9FFFF
clTeal
1
716
232
470
128
private var v_state_machine: WKI_StateMachine;
public funcion ModelTaschenrechner()
{
v_statemachine = ...;
v_state_machine.addEventListener("o_first_digit", o_first_digit);
...
}
10
addComma
GPQxSHZ6gk6TlnM6wQSu4QAA
nvAC3d0j4EWsYkxi45DULQAA
bvghOiVcwkioe2NstWrhqQAA
4
7nUled+5SUmCnyBIKNONdwAA
ffTxiU6k+kavPunLlHXq7wAA
GVDGEDRkckW99AV7WBAFbQAA
yDhhhaB4t0CC3eo3V5S4TwAA
1
o_add_comma
wOHEVRbAq0K+DCAolTPC5QAA
actionOperator
GPQxSHZ6gk6TlnM6wQSu4QAA
nvAC3d0j4EWsYkxi45DULQAA
Ofl0Yuv1mU+xu+iATRmfxAAA
4
DxVkqUZiUU6QDwVfjeTrVgAA
V8iuksHduEu8B7zRAlNBJgAA
b6HveWy8Q0msUsNzODQADwAA
dzdlJ4hPfk+tPpXKGhJ3fAAA
1
o_compute_and_save_operator
7AQjtnbS20ado2bofD1dvQAA
addComma
GPQxSHZ6gk6TlnM6wQSu4QAA
Ofl0Yuv1mU+xu+iATRmfxAAA
bvghOiVcwkioe2NstWrhqQAA
4
ii7q1Jv9uEGFCVp57weDXQAA
5Xm2JUnz2EW+eIc5YbdatAAA
UeZ2SR60KkK9lu+v3M4LhwAA
w/FIXkXVn0m0q15XRK0nTwAA
1
o_add_comma
DAIzTwlqq0udwTLSVhizrQAA
actionOperator
GPQxSHZ6gk6TlnM6wQSu4QAA
bvghOiVcwkioe2NstWrhqQAA
Ofl0Yuv1mU+xu+iATRmfxAAA
4
nwrfpEGobE6oOXVRGJ8fSwAA
6RU4IKcUlEyISetLIK9YegAA
yHZJMljefUSXlQ5ewuENnAAA
aJ+ZEs9LKEKaImhVEw1Z8wAA
1
o_compute_and_save_operator
JAMv1obQPUu6xaR60gBi3QAA
actionDigit
GPQxSHZ6gk6TlnM6wQSu4QAA
Ofl0Yuv1mU+xu+iATRmfxAAA
nvAC3d0j4EWsYkxi45DULQAA
4
bG5g4x7aLk6zZd+AMiV+aAAA
nlx7INXrrkinPrW9B5cmewAA
6W8sJqTXS0eBA9MLsOb8AAAA
JlW/axgkiUqDf5SPQK3y0gAA
1
o_first_digit
ZD+N8ZM5A0q0lSrnLHPxpQAA
GPQxSHZ6gk6TlnM6wQSu4QAA
k4pu28fb8kORppcD3PZjOAAA
nvAC3d0j4EWsYkxi45DULQAA
4
K/gy2DHaTkOr5ZHdCYMwQQAA
/fvDOu9x3kSIEQ1jGHaKGAAA
cm7wrkaIf0WXDW8Hqy4negAA
eTbkEKX2GUuiRETrp7dvBQAA
actionDigit
GPQxSHZ6gk6TlnM6wQSu4QAA
nvAC3d0j4EWsYkxi45DULQAA
nvAC3d0j4EWsYkxi45DULQAA
4
PSEEA9hkq0uUCd9NhGlM9QAA
Xdc0qCmlx0mHmAUfWfGwPAAA
QjCt1yHip0C3N/04rKrdhwAA
bNkpx9f3wEeUshe0yzI8DwAA
1
o_add_digit
kBj8N54JHE+aJrsUSAqDTwAA
addComma
GPQxSHZ6gk6TlnM6wQSu4QAA
bvghOiVcwkioe2NstWrhqQAA
bvghOiVcwkioe2NstWrhqQAA
4
FHbPeyzlUU2U/O9j0lzahQAA
s+8/a7famkymLXhCZ2MiswAA
AKFdKeIgjkeAPRrI3kN//QAA
uETJ3aCdmU2bmHJxw/M+3gAA
1
o_error_more_than_one_comma
S6HhXKiaeUODtaoD6kS2oAAA
actionDigit
GPQxSHZ6gk6TlnM6wQSu4QAA
bvghOiVcwkioe2NstWrhqQAA
bvghOiVcwkioe2NstWrhqQAA
4
3mRIJ9DyB0WKQ2BTQV+VGQAA
EqhjtK11M0uEOhnXce920QAA
fICvXYoDmEWySePDHVYVgwAA
J75+RIdKBkStFlDakXPM/QAA
1
o_add_decmial
xwj+XS/3m0qq43fu8PlH5AAA
actionOperator
GPQxSHZ6gk6TlnM6wQSu4QAA
Ofl0Yuv1mU+xu+iATRmfxAAA
Ofl0Yuv1mU+xu+iATRmfxAAA
4
cEbc+G9ynUmcQLLVXobO7QAA
SEFbYOtg8EiBPIq/NAKb9QAA
Wmjy1A/lzUOipkND8wJNYwAA
UxgvltTd4UCOtKwRK/bYkQAA
1
o_error_more_than_one_operator
iqZY9PEeNEK9GqZEK/w4hwAA