-
Notifications
You must be signed in to change notification settings - Fork 0
/
wrong2.fl
49 lines (40 loc) · 901 Bytes
/
wrong2.fl
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
// Wrong fl program. Compiler should produce an error.
program wrong2;
@defmacro N 100
var
// Error: complex return types not allowed in arrays. Should have been array[N+1][N] of integer to work as designed!
x : array [N+1] of array [N] of integer;
i, j, temp : integer;
function getArrayIndex(i, j: integer): integer;
begin
result := x[i][j];
return
end;
procedure printArrayIndex();
var
i, j: integer;
begin
writeString('\nGive me x dimension(up to 100): ');
i := readInteger();
writeString('\nGive me y dimension(up to 100): ');
j := readInteger();
writeString('\n\nArray index in [');
writeInteger(i);
writeString('][');
writeInteger(j);
writeString('] is: ');
writeInteger(getArrayIndex(i, j));
writeString('\n')
end;
begin
temp := 0;
for i := 0 to N do
begin
for j := 0 to N do
begin
x[i][j] := temp;
temp := temp + 1
end
end;
printArrayIndex()
end.