-
Notifications
You must be signed in to change notification settings - Fork 0
/
c3.txt
53 lines (41 loc) · 1.53 KB
/
c3.txt
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
**Code Generation test case 3: Computing expressions using integer, boolean and static array data types**
**Single driver module with single level nesting **
<<<driver program>>>
start
declare x, y, z:integer;
declare a, b, c:integer;
declare u, v: boolean;
declare A: array[10..15] of integer;
u:= true;
a:= 5;
b:= 9;
get_value(x);
get_value(y);
z:= x + y*b +(a-b)*y+ a*2 - b*x;
v:= z > 10 OR a<=b AND x<y AND u; **follows left to right associativity**
print(z);
print(u);
get_value(A);
**Note: Implement get_value(A) using type information of A. Your code template should first inform user of the size, range indices and type of data and read accordingly to populate the memory locations allocated for elements of A**
y:= a+x+A[13]*2 + A[14]*3 +A[15]; **bound checking at compile time must have been done before code generation**
print(y);
print(A);
end
** Expected output
For values of x = 2 and y = 3 as run time input, print z as 9.
Then print u as true (use string true or false to print output of a variable of boolean type).
Read array element values as 12, 4, -8, 9, 10, -18 as shown below and then print the values of A - all elements of A one after the other
On the console your output should appear in new line for each print as shown below
Output: 9
Output: true
Input: Enter 6 array elements of integer type for range 10 to 15
12
4
-8
9
10
-18
Output: 37
Output: 12 4 -8 9 10 -18
Similarly run the generated assembly code for other input values and verify.
**