OOStuBS - Technische Informatik II (TI-II)
2.4
Hauptseite
Zusätzliche Informationen
Klassen
Dateien
Auflistung der Dateien
Datei-Elemente
src
user
task3B.cc
gehe zur Dokumentation dieser Datei
1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
2
* Technische Informatik II *
3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
4
* *
5
* T A S K 3 B *
6
* *
7
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
8
9
/* * * * * * * * * * * * * * * * * * * * * * * * *\
10
# INCLUDES #
11
\* * * * * * * * * * * * * * * * * * * * * * * * */
12
#include "
user/task3B.h
"
13
#include "
user/analyse.h
"
14
15
#include "
object/kout.h
"
16
#include "
object/cpu.h
"
17
#include "
object/keyboard.h
"
18
19
/* * * * * * * * * * * * * * * * * * * * * * * * *\
20
# GLOBAL VARIABLES #
21
\* * * * * * * * * * * * * * * * * * * * * * * * */
22
23
/* * * * * * * * * * * * * * * * * * * * * * * * *\
24
# FUNCTIONS #
25
\* * * * * * * * * * * * * * * * * * * * * * * * */
26
Task3B::Task3B
() :
Application
(){
27
kout
.
setpos
(31,1);
28
kout
<<
"OOStuBs - Task 3B"
<<
endl
<<
endl
;
29
}
30
31
Task3B::~Task3B
(){}
32
33
void
printStack
(
const
char
* func){
34
void
** esp;
35
asm
(
"lea 8(%%ebp), %0"
36
:
"=r"
(esp));
37
analyseProcedureStack
(esp, func);
38
Key
k;
39
do
{
40
k=
keyboard
.
key_hit
();
41
}
while
(!k.
valid
() && k.
ascii
() !=
' '
);
42
}
43
44
unsigned
int
runFib
(
unsigned
int
fib_1,
unsigned
int
fib_2,
unsigned
int
n){
45
printStack
(__PRETTY_FUNCTION__);
46
if
(n)
47
return
runFib
(fib_1+fib_2, fib_1, n-1);
48
else
49
return
fib_1;
50
}
51
52
unsigned
int
fib
(
unsigned
int
n){
53
printStack
(__PRETTY_FUNCTION__);
54
unsigned
int
value =
runFib
(1,0,n-1);
55
printStack
(__PRETTY_FUNCTION__);
56
return
value;
57
}
58
59
void
doTask3BAction
(
unsigned
int
* ende){
60
61
printStack
(__PRETTY_FUNCTION__);
62
unsigned
int
n=5*(ende[1]/0x11111111);
//damit keine "unused variable ende"-Warnung kommt
63
64
kout
<<
"Fibonacci("
<< n <<
"): "
<<
fib
(n) <<
endl
;
65
}
66
67
void
Task3B::action
(){
68
//Var init
69
unsigned
int
ende[]={0xEEEEEEEE, 0x11111111, 0xDDDDDDDD, 0xEEEEEEEE};
70
71
doTask3BAction
(ende);
72
}
Erzeugt am Mon Jun 30 2014 07:13:28 für OOStuBS - Technische Informatik II (TI-II) von
1.8.1.2