1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
program TurTe;
uses
typ;
function Tweelog(x: real): integer;
var
i: integer;
begin
i := 0;
if x > 1 then
Tweelog := -Tweelog(1 / x)
else
begin
while x < 1 do
begin
Dec(i);
x := 2 * x;
end;
if x <> 1 then
Tweelog := 0
else
Tweelog := i;
end;
end;
var
x: real;
begin
{ Test op macheps }
Writeln('Macheps = 2', Tweelog(macheps));
Writeln('Hoe wordt er afgerond?');
x := 1 + macheps;
Writeln('(1 + macheps ) - 1 = ', x - 1);
x := 1 + 0.75 * macheps;
Writeln('(1 + 0.75*macheps) - 1 = ', x - 1);
x := 1 + 0.5 * macheps;
Writeln('(1 + 0.5*macheps ) - 1 = ', x - 1);
x := 1 + 0.25 * macheps;
Writeln('(1 + 0.25*macheps) - 1 = ', x - 1);
{test op giant }
writeln(' giant = ', giant);
x := giant / 2;
writeln(' resultaat van x:= giant / 2 =', x);
{test op midget}
writeln(' midget = ', midget);
x := midget / 2;
writeln(' resultaat van x:= midget/2 =', x);
x := midget / 3;
writeln(' resultaat van x:= midget/3 =', x);
x := midget * 0.75;
writeln(' resultaat van x:= midget*0.75 =', x);
end.
program TurTe;
uses
typ;
function Tweelog(x: real): integer;
var
i: integer;
begin
i := 0;
if x > 1 then
Tweelog := -Tweelog(1 / x)
else
begin
while x < 1 do
begin
Dec(i);
x := 2 * x;
end;
if x <> 1 then
Tweelog := 0
else
Tweelog := i;
end;
end;
var
x: real;
begin
{ Test op macheps }
Writeln('Macheps = 2', Tweelog(macheps));
Writeln('Hoe wordt er afgerond?');
x := 1 + macheps;
Writeln('(1 + macheps ) - 1 = ', x - 1);
x := 1 + 0.75 * macheps;
Writeln('(1 + 0.75*macheps) - 1 = ', x - 1);
x := 1 + 0.5 * macheps;
Writeln('(1 + 0.5*macheps ) - 1 = ', x - 1);
x := 1 + 0.25 * macheps;
Writeln('(1 + 0.25*macheps) - 1 = ', x - 1);
{test op giant }
writeln(' giant = ', giant);
x := giant / 2;
writeln(' resultaat van x:= giant / 2 =', x);
{test op midget}
writeln(' midget = ', midget);
x := midget / 2;
writeln(' resultaat van x:= midget/2 =', x);
x := midget / 3;
writeln(' resultaat van x:= midget/3 =', x);
x := midget * 0.75;
writeln(' resultaat van x:= midget*0.75 =', x);
end.
|