Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tddd55/tddd55-lab
  • yunli455/tddd55-lab
  • dimpi105/tddd55-lab
  • aleen361/tddd55-lab
4 results
Show changes
0
1
1
2
3
5
8
13
21
34
/*
This test checks the fibonacci function
Author: John Tinnerholm
*/
declare
a : integer;
function fib (x : integer) : integer
begin
if x == 0 then
begin
return 0;
end
elseif x == 1 then
begin
return 1;
end
else
begin
return fib(x - 1) + fib(x-2);
end
if;
end;
begin
a := 0;
while a < 10 do
begin
putint(fib(a));
putline();
a := a + 1;
end
while;
end;
1.000000
2.000000
3.000000
4.000000
5.000000
/*
This program initializes an array with 5 elements.
it then prints said array.
Author: John Tinnerholm
*/
declare
i : integer;
ii : real;
elements : array 5 of real;
begin
i := 0;
ii := 0.;
while i < 5 do
begin
ii := 1.0 + ii;
elements[i] := ii;
i := i + 1;
end
while;
/* Should print 1,2,3,4,5 */
i := 0;
while i < 5 do
begin
putreal(elements[i]);
putline();
i := i + 1;
end
while;
end;
\ No newline at end of file
1.000000
2.000000
3.000000
4.000000
5.000000
/*
We write to the first index of an array.
We then print the result
Author: John Tinnerholm
*/
declare
elements : array 1 of real;
begin
elements[0] := 12.;
putreal(elements[0]);
putline();
end;
\ No newline at end of file
/*
Implementation of selection sort.
This checks if nested while loop works among other things..
Author: John Tinnerholm
*/
declare
i : integer;
j : integer;
tmp1 : integer;
current_min : integer;
length_of_array : integer;
array_to_be_sorted : array 10 of integer;
begin
i := 0;
j := 0;
length_of_array := 10;
array_to_be_sorted[0] := 10;
array_to_be_sorted[1] := 9;
array_to_be_sorted[2] := 8;
array_to_be_sorted[3] := 7;
array_to_be_sorted[4] := 6;
array_to_be_sorted[5] := 5;
array_to_be_sorted[6] := 4;
array_to_be_sorted[7] := 3;
array_to_be_sorted[8] := 2;
array_to_be_sorted[9] := 1;
//Print unsorted array
while i < length_of_array do
begin
putint(array_to_be_sorted[i]);
putline();
i := i + 1;
end
while;
i := 0;
j := 0;
while i < length_of_array - 1 do
begin
current_min := i;
j := i + 1;
while j < length_of_array do
begin
if array_to_be_sorted[current_min] > array_to_be_sorted[j] then
begin
current_min := j;
end
if;
j := j + 1;
end
while;
tmp1 := array_to_be_sorted[i];
array_to_be_sorted[i] := array_to_be_sorted[current_min];
array_to_be_sorted[current_min] := tmp1;
i := i + 1;
end
while;
putline();
/* Print the sorted array*/
i := 0;
while i < length_of_array do
begin
putint(array_to_be_sorted[i]);
putline();
i := i + 1;
end
while;
end;
10
9
8
7
6
5
4
3
2
1
1
2
3
4
5
6
7
8
9
10
FunctionInformation @ 0x760330
FunctionInformation @ 0x7fffd215ded0
Tag: 0
ID: main.
ID: main
Table: 0
Parent: 0
Returns: 0
Parameters: none
Locals:
0x76a2c0 f
0x76a160 e
0x76a000 d
0x769ea0 c
0x769d20 b
0x769c88 a
Body: 0x76e7a8
0x7fffd2170370 f
0x7fffd2170110 e
0x7fffd216feb0 d
0x7fffd216fc50 c
0x7fffd216f9d0 b
0x7fffd216f8c0 a
Body: 0x7fffd217b020
StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
......@@ -78,25 +79,27 @@ StatementList (statement, preceding)
Quads: 0
-------------------------------------------------------------------------------
SymbolTable @ 0x760360
SymbolTable @ 0x7fffd215df28
-------------------------------------------------------------------------------
7 0x76a280 0x76a280 'real<11>.' array 11 of real [88]
11 0x764510 getint() -> integer
65 0x769c88 a : 0x761388 integer [4]
66 0x769d20 b : 0x7613c8 real [8] --> 0x769c88 a
67 0x769ea0 c : 0x769e60 'integer<10>.' array 10 of integer [40] --> 0x769d20 b
68 0x76a000 d : 0x769fc0 'integer<11>.' array 11 of integer [44] --> 0x769ea0 c
69 0x76a160 e : 0x76a120 'real<10>.' array 10 of real [80] --> 0x76a000 d
70 0x76a2c0 f : 0x76a280 'real<11>.' array 11 of real [88] --> 0x76a160 e
71 0x76c9f0 g(x) -> array 11 of integer
88 0x761388 0x761388 integer [4]
92 0x761408 putreal(x) -> integer
250 0x76a120 0x76a120 'real<10>.' array 10 of real [80]
511 0x76b630 fib(x) -> integer
519 0x76a310 fac(x) -> integer
603 0x7613c8 0x7613c8 real [8]
664 0x769fc0 0x769fc0 'integer<11>.' array 11 of integer [44]
775 0x762460 putint(x) -> integer
907 0x769e60 0x769e60 'integer<10>.' array 10 of integer [40]
918 0x7634b8 getreal() -> real
7 0x7fffd2170300 0x7fffd2170300 'real<11>.' array 11 of real [88]
11 0x7fffd2168320 getint() -> integer
65 0x7fffd216f8c0 a : 0x7fffd215ff80 integer [8]
66 0x7fffd216f9d0 b : 0x7fffd215fff0 real [8] --> 0x7fffd216f8c0 a
67 0x7fffd216fc50 c : 0x7fffd216fbe0 'integer<10>.' array 10 of integer [80] --> 0x7fffd216f9d0 b
68 0x7fffd216feb0 d : 0x7fffd216fe40 'integer<11>.' array 11 of integer [88] --> 0x7fffd216fc50 c
69 0x7fffd2170110 e : 0x7fffd21700a0 'real<10>.' array 10 of real [80] --> 0x7fffd216feb0 d
70 0x7fffd2170370 f : 0x7fffd2170300 'real<11>.' array 11 of real [88] --> 0x7fffd2170110 e
70 0x7fffd2170400 f(z; y; x) -> integer
71 0x7fffd21777b0 g(x) -> array 11 of integer
88 0x7fffd215ff80 0x7fffd215ff80 integer [8]
92 0x7fffd2160060 putreal(x) -> integer
250 0x7fffd21700a0 0x7fffd21700a0 'real<10>.' array 10 of real [80]
481 0x7fffd2162110 putline() -> no return type
511 0x7fffd21750c0 fib(x) -> integer
519 0x7fffd2172b00 fac(x) -> integer
603 0x7fffd215fff0 0x7fffd215fff0 real [8]
664 0x7fffd216fe40 0x7fffd216fe40 'integer<11>.' array 11 of integer [88]
775 0x7fffd21641c0 putint(x) -> integer
907 0x7fffd216fbe0 0x7fffd216fbe0 'integer<10>.' array 10 of integer [80]
918 0x7fffd2166270 getreal() -> real
-------------------------------------------------------------------------------
FunctionInformation @ 0x564ef0e59ed0
Tag: 0
ID: main
Table: 0
Parent: 0
Returns: 0
Parameters: none
Locals:
0x564ef0e6c9d0 b
0x564ef0e6c8c0 a
Body: 0x564ef0e6e780
StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putreal
| +-ExpressionList (expression, preceding)
| +-Identifier (b)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (b)
| +-Power (left, right) [real]
| +-RealConstant (2) [real]
| +-RealConstant (2) [real]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putreal
| +-ExpressionList (expression, preceding)
| +-Identifier (b)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (b)
| +-Divide (left, right) [real]
| +-RealConstant (2) [real]
| +-RealConstant (2) [real]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putreal
| +-ExpressionList (expression, preceding)
| +-Identifier (b)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (b)
| +-Times (left, right) [real]
| +-RealConstant (2) [real]
| +-RealConstant (2) [real]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putreal
| +-ExpressionList (expression, preceding)
| +-Identifier (b)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (b)
| +-Minus (left, right) [real]
| +-RealConstant (2) [real]
| +-RealConstant (2) [real]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putreal
| +-ExpressionList (expression, preceding)
| +-Identifier (b)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (b)
| +-Plus (left, right) [real]
| +-RealConstant (1) [real]
| +-RealConstant (2) [real]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putint
| +-ExpressionList (expression, preceding)
| +-Identifier (a)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (a)
| +-Power (left, right) [integer]
| +-IntegerConstant (2) [integer]
| +-IntegerConstant (2) [integer]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putint
| +-ExpressionList (expression, preceding)
| +-Identifier (a)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (a)
| +-Divide (left, right) [integer]
| +-IntegerConstant (2) [integer]
| +-IntegerConstant (2) [integer]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putint
| +-ExpressionList (expression, preceding)
| +-Identifier (a)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (a)
| +-Times (left, right) [integer]
| +-IntegerConstant (2) [integer]
| +-IntegerConstant (2) [integer]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putint
| +-ExpressionList (expression, preceding)
| +-Identifier (a)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (a)
| +-Minus (left, right) [integer]
| +-IntegerConstant (2) [integer]
| +-IntegerConstant (2) [integer]
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [<SymbolInformation @ 0x0>]
| +-putline
| +-0
+-StatementList (statement, preceding)
+-CallStatement (call)
| +-FunctionCall (function, arguments) [integer]
| +-putint
| +-ExpressionList (expression, preceding)
| +-Identifier (a)
| +-0
+-StatementList (statement, preceding)
+-Assignment (left, right)
| +-Identifier (a)
| +-Plus (left, right) [integer]
| +-IntegerConstant (1) [integer]
| +-IntegerConstant (2) [integer]
+-0
Quads: 0
-------------------------------------------------------------------------------
SymbolTable @ 0x564ef0e59f28
-------------------------------------------------------------------------------
11 0x564ef0e64320 getint() -> integer
65 0x564ef0e6c8c0 a : 0x564ef0e5bf80 integer [8]
66 0x564ef0e6c9d0 b : 0x564ef0e5bff0 real [8] --> 0x564ef0e6c8c0 a
88 0x564ef0e5bf80 0x564ef0e5bf80 integer [8]
92 0x564ef0e5c060 putreal(x) -> integer
481 0x564ef0e5e110 putline() -> no return type
603 0x564ef0e5bff0 0x564ef0e5bff0 real [8]
775 0x564ef0e601c0 putint(x) -> integer
918 0x564ef0e62270 getreal() -> real
-------------------------------------------------------------------------------