diff --git a/AvaliaTrabs/Exemplo5/MEPA b/AvaliaTrabs/Exemplo5/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..e24998545d45466a2091ccb5310b1145c5bd229f --- /dev/null +++ b/AvaliaTrabs/Exemplo5/MEPA @@ -0,0 +1,38 @@ + INPP + AMEM 2 + AMEM 3 + DSVS R00 +R00: NADA + LEIT + ARMZ 0, 0 + CRCT 0 + ARMZ 0, 2 + CRCT 1 + ARMZ 0, 3 + CRCT 1 + ARMZ 0, 1 +R01: NADA + CRVL 0, 1 + CRVL 0, 0 + CMEG + DSVF R02 + CRVL 0, 2 + CRVL 0, 3 + SOMA + ARMZ 0, 4 + CRVL 0, 3 + ARMZ 0, 2 + CRVL 0, 4 + ARMZ 0, 3 + CRVL 0, 1 + CRCT 1 + SOMA + ARMZ 0, 1 + DSVS R01 +R02: NADA + CRVL 0, 0 + IMPR + CRVL 0, 2 + IMPR + DMEM 5 + PARA diff --git a/AvaliaTrabs/Exemplo5/pgma.pas b/AvaliaTrabs/Exemplo5/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..1e2788ff256d0fbd41b053843026ef70ef183713 --- /dev/null +++ b/AvaliaTrabs/Exemplo5/pgma.pas @@ -0,0 +1,15 @@ +program exemplo5 (input, output); +var n, k : integer; + f1, f2, f3 : integer; +begin + read (n); + f1:=0; f2:=1; k:=1; + while k<=n do + begin + f3:=f1+f2; + f1:=f2; + f2:=f3; + k:=k+1; + end; + write (n, f1); +end. diff --git a/AvaliaTrabs/Exemplo7.01/MEPA b/AvaliaTrabs/Exemplo7.01/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..5ec13076c19d66ffd90fa44d97edda57e6a49d4c --- /dev/null +++ b/AvaliaTrabs/Exemplo7.01/MEPA @@ -0,0 +1,33 @@ + INPP + AMEM 3 + DSVS R00 +R00: NADA + LEIT + ARMZ 0, 0 + LEIT + ARMZ 0, 1 + CRCT 0 + ARMZ 0, 2 +R01: NADA + CRVL 0, 0 + CRVL 0, 1 + CMEG + DSVF R02 + CRVL 0, 2 + CRVL 0, 0 + CRVL 0, 0 + MULT + SOMA + ARMZ 0, 2 + CRVL 0, 0 + IMPR + CRVL 0, 2 + IMPR + CRVL 0, 0 + CRCT 1 + SOMA + ARMZ 0, 0 + DSVS R01 +R02: NADA + DMEM 3 + PARA diff --git a/AvaliaTrabs/Exemplo7.01/pgma.pas b/AvaliaTrabs/Exemplo7.01/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..d6bd70e56b3250849c19cb014bef98bc17dc1e77 --- /dev/null +++ b/AvaliaTrabs/Exemplo7.01/pgma.pas @@ -0,0 +1,15 @@ +program teste (input, output); +var m, n, s : integer; +begin + read(m,n); + s:=0; + while m<=n do + begin + s:=s+m*m; + write (m,s); + m:=m+1; + end; + + + +end. diff --git a/AvaliaTrabs/Exemplo7.02/MEPA b/AvaliaTrabs/Exemplo7.02/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..cde0b0c818609c9d6725784faf1fdf2cd4b5041c --- /dev/null +++ b/AvaliaTrabs/Exemplo7.02/MEPA @@ -0,0 +1,55 @@ + INPP + AMEM 3 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRVL 0, 2 + CRVL 0, 2 + MULT + ARMZ 1, 0 + CRVL 0, 2 + CRCT 2 + DIVI + CRCT 2 + MULT + CRVL 0, 2 + CMIG + DSVF R04 + CRVL 0, 1 + CRVL 1, 0 + SOMA + ARMZ 0, 1 + DSVS R03 +R04: NADA + CRVL 0, 1 + CRVL 1, 0 + SUBT + ARMZ 0, 1 +R03: NADA + DMEM 1 + RTPR 1, 0 +R00: NADA + LEIT + ARMZ 0, 0 + CRCT 0 + ARMZ 0, 1 + CRCT 0 + ARMZ 0, 2 +R05: NADA + CRVL 0, 2 + CRVL 0, 0 + CMEG + DSVF R06 + CHPR R01, 0 + CRVL 0, 1 + IMPR + CRVL 0, 2 + CRCT 1 + SOMA + ARMZ 0, 2 + DSVS R05 +R06: NADA + DMEM 3 + PARA diff --git a/AvaliaTrabs/Exemplo7.02/pgma.pas b/AvaliaTrabs/Exemplo7.02/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..e6a65e7383455e2ca84dfeeca3d658b5b120c426 --- /dev/null +++ b/AvaliaTrabs/Exemplo7.02/pgma.pas @@ -0,0 +1,22 @@ +program exemplo73 (input, output); +var n, s, i : integer; + procedure soma; + var q : integer; + begin + q:=i*i; + if (i div 2) * 2 = i + then + s:=s+q; + else + s:=s-q; + end; +begin + read (n); + s:=0; i:=0; + while i<=n do + begin + soma; write(s); i:=i+1; + end; +end. + + \ No newline at end of file diff --git a/AvaliaTrabs/Exemplo7.03/MEPA b/AvaliaTrabs/Exemplo7.03/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..45f8b88e08cc4d4383fdf5814050d1dcf993fbd9 --- /dev/null +++ b/AvaliaTrabs/Exemplo7.03/MEPA @@ -0,0 +1,54 @@ + INPP + AMEM 2 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRCT 2 + CRVL 1, -4 + MULT + ARMZ 1, -4 + CRCT 2 + CRVL 1, -4 + MULT + ARMZ 1, 0 + CRVL 1, 0 + CRCT 1 + SOMA + ARMZ 0, 0 + DMEM 1 + RTPR 1, 1 +R00: NADA + CRCT 3 + ARMZ 0, 0 + CRCT 4 + ARMZ 0, 1 + CRVL 0, 1 + CHPR R01, 0 + CRVL 0, 0 + IMPR + CRVL 0, 1 + IMPR + CRVL 0, 0 + CHPR R01, 0 + CRVL 0, 0 + IMPR + CRVL 0, 1 + IMPR + CRVL 0, 1 + CRVL 0, 0 + SOMA + CHPR R01, 0 + CRVL 0, 0 + IMPR + CRVL 0, 1 + IMPR + CRCT 7 + CHPR R01, 0 + CRVL 0, 0 + IMPR + CRVL 0, 1 + IMPR + DMEM 2 + PARA diff --git a/AvaliaTrabs/Exemplo7.03/pgma.pas b/AvaliaTrabs/Exemplo7.03/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..85d8c6bf4fa93b430591d75f26c11c2b2dd61f6f --- /dev/null +++ b/AvaliaTrabs/Exemplo7.03/pgma.pas @@ -0,0 +1,18 @@ +program exemplo3 (input, output); +var z, t : integer; + procedure g(t : integer); + var x : integer; + begin + t:=2*t; + x:=2*t; + z:=x+1 + end; +begin + z:=3; + t:=4; + g(t); write (z,t); + g(z); write (z,t); + g(t+z); write (z,t); + g(7); write (z,t) +end. + \ No newline at end of file diff --git a/AvaliaTrabs/Exemplo7.04/MEPA b/AvaliaTrabs/Exemplo7.04/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..42d6344eb9c5796d7da644d9cc6f3ec0eaa99f50 --- /dev/null +++ b/AvaliaTrabs/Exemplo7.04/MEPA @@ -0,0 +1,68 @@ + INPP + AMEM 2 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRVL 1, -4 + CRVL 1, -4 + MULT + ARMZ 1, 0 + CRVL 0, 0 + CRVL 0, 1 + SOMA + CRVL 1, 0 + SOMA + ARMZ 0, 0 + CRVL 0, 0 + IMPR + DMEM 1 + RTPR 1, 1 +R03: ENPR 1 + AMEM 1 + DSVS R04 +R05: ENPR 2 + AMEM 1 + DSVS R06 +R06: NADA + CRVL 0, 0 + CRVL 1, 0 + SOMA + CRVL 2, -4 + SOMA + ARMZ 2, 0 + CRVL 2, 0 + CHPR R01, 2 + CRVL 2, 0 + ARMZ 0, 0 + DMEM 1 + RTPR 2, 1 +R04: NADA + CRVL 1, -4 + CRCT 1 + SOMA + ARMZ 1, 0 + CRVL 1, 0 + CHPR R05, 1 + CRVL 0, 0 + CRVL 1, 0 + SOMA + CHPR R01, 1 + DMEM 1 + RTPR 1, 1 +R00: NADA + CRCT 1 + ARMZ 0, 0 + CRCT 3 + ARMZ 0, 1 + CRVL 0, 1 + CHPR R03, 0 + CRVL 0, 1 + CHPR R01, 0 + CRVL 0, 1 + IMPR + CRVL 0, 0 + IMPR + DMEM 2 + PARA diff --git a/AvaliaTrabs/Exemplo7.04/pgma.pas b/AvaliaTrabs/Exemplo7.04/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..290d2dcc216da530abf9010982d9b056b0e41c76 --- /dev/null +++ b/AvaliaTrabs/Exemplo7.04/pgma.pas @@ -0,0 +1,31 @@ +program exemplo74 (input, output); +var z, x: integer; + procedure g(t:integer); + var y : integer; + begin + y:=t*t; z:=z+x+y; + write(z) + end; + + procedure h (y : integer); + var x : integer; + procedure f(y : integer); + var t : integer; + begin + t:=z+x+y; g(t); + z:=t + end; + begin + x:=y+1; + f(x); + g(z+x) + end; +begin + z:=1; + x:=3; + h(x); + g(x); + write(x,z) +end. + + diff --git a/AvaliaTrabs/Exemplo7.05/MEPA b/AvaliaTrabs/Exemplo7.05/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..431ff02ab80daed1bf63a367d230a6c545b0d53e --- /dev/null +++ b/AvaliaTrabs/Exemplo7.05/MEPA @@ -0,0 +1,56 @@ + INPP + AMEM 2 + DSVS R00 +R01: ENPR 1 + AMEM 2 + DSVS R02 +R02: NADA + CRVL 1, -5 + CRCT 2 + CMME + DSVF R04 + CRVL 1, -5 + ARMZ 1, -6 + CRCT 0 + ARMI 1, -4 + DSVS R03 +R04: NADA + AMEM 1 + CRVL 1, -5 + CRCT 1 + SUBT + CREN 1, 0 + CHPR R01, 1 + AMEM 1 + CRVL 1, -5 + CRCT 2 + SUBT + CREN 1, 1 + CHPR R01, 1 + SOMA + ARMZ 1, -6 + CRVL 1, 0 + CRVL 1, 1 + SOMA + CRCT 1 + SOMA + ARMI 1, -4 +R03: NADA + CRVL 1, -5 + IMPR + CRVI 1, -4 + IMPR + DMEM 2 + RTPR 1, 2 +R00: NADA + AMEM 1 + CRCT 3 + CREN 0, 0 + CHPR R01, 0 + ARMZ 0, 1 + CRVL 0, 1 + IMPR + CRVL 0, 0 + IMPR + DMEM 2 + PARA diff --git a/AvaliaTrabs/Exemplo7.05/pgma.pas b/AvaliaTrabs/Exemplo7.05/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..a0a60b18d4b3192da4bfa4f11542f8ef97b8a700 --- /dev/null +++ b/AvaliaTrabs/Exemplo7.05/pgma.pas @@ -0,0 +1,20 @@ +program exemplo75 (input, output); +var m,n : integer; +function f ( n : integer; var k:integer ) : integer; +var p, q : integer; +begin + if n<2 then + begin + f:=n; k:=0 + end + else + begin + f:=f(n-1,p) + f(n-2,q); + k:=p+q+1 + end; + write (n, k) +end; +begin + n:=f(3,m); + write(n, m) +end. diff --git a/AvaliaTrabs/Exemplo8.05/MEPA b/AvaliaTrabs/Exemplo8.05/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..b89306b60e85b79cac9d4e2d459b13b8ac676a29 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.05/MEPA @@ -0,0 +1,38 @@ + INPP + AMEM 2 + AMEM 3 + DSVS R00 +R00: NADA + LEIT + ARMZ 0, 0 + CRCT 0 + ARMZ 0, 2 + CRCT 0 + ARMZ 0, 3 + CRCT 1 + ARMZ 0, 1 +R01: NADA + CRVL 0, 1 + CRVL 0, 0 + CMEG + DSVF R02 + CRVL 0, 2 + CRVL 0, 3 + SOMA + ARMZ 0, 4 + CRVL 0, 3 + ARMZ 0, 2 + CRVL 0, 4 + ARMZ 0, 3 + CRVL 0, 1 + CRCT 1 + SOMA + ARMZ 0, 1 + DSVS R01 +R02: NADA + CRVL 0, 0 + IMPR + CRVL 0, 2 + IMPR + DMEM 5 + PARA diff --git a/AvaliaTrabs/Exemplo8.05/pgma.pas b/AvaliaTrabs/Exemplo8.05/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..c2434680f43c676c2a6225652ccf81accf468164 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.05/pgma.pas @@ -0,0 +1,16 @@ +program exemplo5 (input, output); +var n, k : integer; + f1, f2, f3 : integer; + +begin + read(n); + f1:=0; f2:=0; k:=1; + while k<=n do + begin + f3:=f1+f2; + f1:=f2; + f2:=f3; + k:=k+1 + end; + write(n, f1) +end. diff --git a/AvaliaTrabs/Exemplo8.06/MEPA b/AvaliaTrabs/Exemplo8.06/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..421577671ea997540bcf4e46ce8f06ca4ae870cc --- /dev/null +++ b/AvaliaTrabs/Exemplo8.06/MEPA @@ -0,0 +1,39 @@ + INPP + AMEM 2 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRVL 0, 0 + ARMZ 1, 0 + CRVL 0, 0 + CRCT 1 + SUBT + ARMZ 0, 0 + CRVL 1, 0 + CRCT 1 + CMMA + DSVF R04 + CHPR R01, 1 + DSVS R03 +R04: NADA + CRCT 1 + ARMZ 0, 1 +R03: NADA + CRVL 0, 1 + CRVL 1, 0 + MULT + ARMZ 0, 1 + DMEM 1 + RTPR 1, 0 +R00: NADA + LEIT + ARMZ 0, 0 + CHPR R01, 0 + CRVL 0, 0 + IMPR + CRVL 0, 1 + IMPR + DMEM 2 + PARA diff --git a/AvaliaTrabs/Exemplo8.06/pgma.pas b/AvaliaTrabs/Exemplo8.06/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..58f7185b70e0de9b76472c274f97208fcc6650f6 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.06/pgma.pas @@ -0,0 +1,16 @@ +program exemplo6(input, output); +var x, y : integer; + procedure p; + var z : integer; + begin + z:=x; x:=x-1; + if z>1 + then p + else y:=1; + y:=y*z + end; +begin + read (x); + p; + write (x,y) +end. diff --git a/AvaliaTrabs/Exemplo8.07/MEPA b/AvaliaTrabs/Exemplo8.07/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..2cc21afbe5e05ea415b045c63a0f0cfca3e445e4 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.07/MEPA @@ -0,0 +1,77 @@ + INPP + AMEM 2 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRVL 0, 0 + ARMZ 1, 0 + CRVL 0, 0 + CRCT 1 + SUBT + ARMZ 0, 0 + CRVL 1, 0 + CRCT 1 + CMMA + DSVF R04 + CHPR R01, 1 + DSVS R03 +R04: NADA + CRCT 1 + ARMZ 0, 1 +R03: NADA + CRVL 0, 1 + CRVL 1, 0 + MULT + ARMZ 0, 1 + DMEM 1 + RTPR 1, 0 +R05: ENPR 1 + AMEM 2 + DSVS R06 +R06: NADA + CRVL 0, 0 + ARMZ 1, 0 + CRVL 0, 0 + CRCT 1 + SUBT + ARMZ 1, 1 + CRVL 1, 1 + ARMZ 0, 0 + CRVL 1, 0 + CRCT 0 + CMIG + DSVF R08 + CRCT 1 + ARMZ 0, 1 + DSVS R07 +R08: NADA + CRVL 1, 0 + CRCT 2 + DIVI + CRCT 2 + MULT + CRVL 1, 0 + CMIG + DSVF R10 + CHPR R05, 1 + DSVS R09 +R10: NADA + CHPR R01, 1 +R09: NADA +R07: NADA + CRVL 0, 1 + CRVL 1, 0 + MULT + ARMZ 0, 1 + DMEM 2 + RTPR 1, 0 +R00: NADA + LEIT + ARMZ 0, 0 + CHPR R05, 0 + CRVL 0, 1 + IMPR + DMEM 2 + PARA diff --git a/AvaliaTrabs/Exemplo8.07/pgma.pas b/AvaliaTrabs/Exemplo8.07/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..353372f7364131151eb14b8ca6982497e8d65006 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.07/pgma.pas @@ -0,0 +1,29 @@ +program exemplo7(input, output); +var x, y : integer; +procedure p; +var z : integer; +begin + z:=x; x:=x-1; + if z>1 + then p + else y:=1; + y:=y*z +end; + +procedure q; +var s, t : integer; +begin + s:=x; t:=x-1; x:=t; + if s=0 then y:=1 + else + if ( (s div 2)*2) = s + then q + else p; + y:=y*s +end; + +begin + read(x); + q; + write(y) +end. diff --git a/AvaliaTrabs/Exemplo8.08/MEPA b/AvaliaTrabs/Exemplo8.08/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..c0b470b5adc4187179dbf64aad8cbbe50b4441b7 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.08/MEPA @@ -0,0 +1,65 @@ + INPP + AMEM 2 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R03: ENPR 2 + AMEM 1 + DSVS R04 +R04: NADA + CRVL 1, 0 + CRCT 1 + SUBT + ARMZ 2, 0 + CRVL 0, 0 + CRCT 1 + SUBT + ARMZ 0, 0 + CRVL 2, 0 + CRCT 1 + CMIG + DSVF R06 + CHPR R01, 2 + DSVS R05 +R06: NADA + CRCT 1 + ARMZ 0, 1 +R05: NADA + CRVL 0, 1 + CRVL 2, 0 + MULT + ARMZ 0, 1 + DMEM 1 + RTPR 2, 0 +R02: NADA + CRVL 0, 0 + ARMZ 1, 0 + CRVL 0, 0 + CRCT 1 + SUBT + ARMZ 0, 0 + CRVL 1, 0 + CRCT 1 + CMMA + DSVF R08 + CHPR R01, 1 + DSVS R07 +R08: NADA + CRCT 1 + ARMZ 0, 1 +R07: NADA + CRVL 0, 1 + CRVL 1, 0 + MULT + ARMZ 0, 1 + DMEM 1 + RTPR 1, 0 +R00: NADA + LEIT + ARMZ 0, 0 + CHPR R01, 0 + CRVL 0, 1 + IMPR + DMEM 2 + PARA diff --git a/AvaliaTrabs/Exemplo8.08/pgma.pas b/AvaliaTrabs/Exemplo8.08/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..20147b2d3da0d9d39dc688b04e58a7911143d532 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.08/pgma.pas @@ -0,0 +1,25 @@ +program exemplo8 (input, output); +var x, y : integer; + procedure p; + var z : integer; + procedure q; + var s : integer; + begin + s:=z-1; x:=x-1; + if s=1 + then p + else y:=1; + y:=y*s + end; + begin + z:=x; x:=x-1; + if z>1 + then p + else y:=1; + y:=y*z + end; +begin + read(x); + p; + write(y) +end. diff --git a/AvaliaTrabs/Exemplo8.09/MEPA b/AvaliaTrabs/Exemplo8.09/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..f0a234378ae6aba2590057eb5f3405f2967bca92 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.09/MEPA @@ -0,0 +1,37 @@ + INPP + AMEM 2 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRVL 1, -4 + CRCT 1 + CMMA + DSVF R04 + CRVL 1, -4 + CRCT 1 + SUBT + CHPR R01, 1 + DSVS R03 +R04: NADA + CRCT 1 + ARMZ 0, 1 +R03: NADA + CRVL 0, 1 + ARMZ 1, 0 + CRVL 1, 0 + CRVL 1, -4 + MULT + ARMZ 0, 1 + DMEM 1 + RTPR 1, 1 +R00: NADA + LEIT + ARMZ 0, 0 + CRVL 0, 0 + CHPR R01, 0 + CRVL 0, 1 + IMPR + DMEM 2 + PARA diff --git a/AvaliaTrabs/Exemplo8.09/pgma.pas b/AvaliaTrabs/Exemplo8.09/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..887102c5f5be27fc921a34821dfdf14192ee7897 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.09/pgma.pas @@ -0,0 +1,16 @@ +program exemplo9 (input, output); +var x, y : integer; + procedure p(t : integer); + var z : integer; + begin + if t>1 + then p(t-1) + else y:=1; + z:=y; + y:=z*t + end; +begin + read(x); + p(x); + write(y) +end. diff --git a/AvaliaTrabs/Exemplo8.10/MEPA b/AvaliaTrabs/Exemplo8.10/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..ebadf1276fae95d256b01a3279249a78eb3807a9 --- /dev/null +++ b/AvaliaTrabs/Exemplo8.10/MEPA @@ -0,0 +1,46 @@ + INPP + AMEM 1 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRVL 1, -5 + CRCT 2 + CMME + DSVF R04 + CRVI 1, -4 + CRVL 1, -5 + SOMA + ARMI 1, -4 + DSVS R03 +R04: NADA + CRVI 1, -4 + ARMZ 1, 0 + CRVL 1, -5 + CRCT 1 + SUBT + CREN 1, 0 + CHPR R01, 1 + CRVL 1, 0 + ARMI 1, -4 + CRVL 1, -5 + CRCT 2 + SUBT + CRVL 1, -4 + CHPR R01, 1 +R03: NADA + CRVL 1, -5 + IMPR + CRVI 1, -4 + IMPR + DMEM 1 + RTPR 1, 2 +R00: NADA + CRCT 0 + ARMZ 0, 0 + CRCT 3 + CREN 0, 0 + CHPR R01, 0 + DMEM 1 + PARA diff --git a/AvaliaTrabs/Exemplo8.10/pgma.pas b/AvaliaTrabs/Exemplo8.10/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..9bf3a6355293eaf908d4a2a7d88a7c0694ba788f --- /dev/null +++ b/AvaliaTrabs/Exemplo8.10/pgma.pas @@ -0,0 +1,22 @@ +program exemplo1 (input, output); +var k : integer; +procedure p( n : integer; var g:integer); +var h : integer; +begin + if n<2 then + g:=g+n + else + begin + h:=g; + p(n-1,h); + g:=h; + p(n-2, g) + end; + write(n,g) +end; +begin + k:=0; + p(3,k) +end. + + diff --git a/AvaliaTrabs/ExemploErro1/MEPA b/AvaliaTrabs/ExemploErro1/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..8186c4d95b6cc2e0adb8299976a2fa2bab8e0c1e --- /dev/null +++ b/AvaliaTrabs/ExemploErro1/MEPA @@ -0,0 +1,11 @@ + INPP + AMEM 2 + DSVS R00 +R00: NADA + LEIT + ARMZ 0, 0 + LEIT + ARMZ 0, 1 + CRVL 0, 0 + CRVL 0, 1 + CMMA diff --git a/AvaliaTrabs/ExemploErro1/pgma.pas b/AvaliaTrabs/ExemploErro1/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..353874fcd0065519a704625661be41d28ec7ad5d --- /dev/null +++ b/AvaliaTrabs/ExemploErro1/pgma.pas @@ -0,0 +1,8 @@ +program exemploErro1 (input, output); +var n, k : integer; +begin + read (n); + read (k); + n := n>k; + write (n) +end. diff --git a/AvaliaTrabs/ExemploErro2/MEPA b/AvaliaTrabs/ExemploErro2/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..8186c4d95b6cc2e0adb8299976a2fa2bab8e0c1e --- /dev/null +++ b/AvaliaTrabs/ExemploErro2/MEPA @@ -0,0 +1,11 @@ + INPP + AMEM 2 + DSVS R00 +R00: NADA + LEIT + ARMZ 0, 0 + LEIT + ARMZ 0, 1 + CRVL 0, 0 + CRVL 0, 1 + CMMA diff --git a/AvaliaTrabs/ExemploErro2/pgma.pas b/AvaliaTrabs/ExemploErro2/pgma.pas new file mode 100755 index 0000000000000000000000000000000000000000..3430f068994df4271ab480af358cd481cf3e6370 --- /dev/null +++ b/AvaliaTrabs/ExemploErro2/pgma.pas @@ -0,0 +1,8 @@ +program exemploErro2 (input, output); +var n, k : integer; +begin + read (n); + read (k); + if (n+1) then n:=1; + write (n) +end. diff --git a/AvaliaTrabs/MEPA b/AvaliaTrabs/MEPA new file mode 100644 index 0000000000000000000000000000000000000000..83d8e7751932b0961c023cdca5e76071b2c35f47 --- /dev/null +++ b/AvaliaTrabs/MEPA @@ -0,0 +1,11 @@ + INPP + AMEM 3 + DSVS R00 +R01: ENPR 1 + AMEM 1 + DSVS R02 +R02: NADA + CRVL 0, 2 + CRVL 0, 2 + MULT + ARMZ 1, 0 diff --git a/AvaliaTrabs/MEPA-Res b/AvaliaTrabs/MEPA-Res new file mode 100644 index 0000000000000000000000000000000000000000..8186c4d95b6cc2e0adb8299976a2fa2bab8e0c1e --- /dev/null +++ b/AvaliaTrabs/MEPA-Res @@ -0,0 +1,11 @@ + INPP + AMEM 2 + DSVS R00 +R00: NADA + LEIT + ARMZ 0, 0 + LEIT + ARMZ 0, 1 + CRVL 0, 0 + CRVL 0, 1 + CMMA diff --git a/AvaliaTrabs/avaliaTrab.sh b/AvaliaTrabs/avaliaTrab.sh new file mode 100755 index 0000000000000000000000000000000000000000..b10bcc2849788a9532235a7f57f94be92cd8546b --- /dev/null +++ b/AvaliaTrabs/avaliaTrab.sh @@ -0,0 +1,15 @@ + +EXEMPLOS="Exemplo5 Exemplo7.01 Exemplo7.02 Exemplo7.03 Exemplo7.04 Exemplo7.05 Exemplo8.05 Exemplo8.06 Exemplo8.07 Exemplo8.08 Exemplo8.09 Exemplo8.10 ExemploErro1 ExemploErro2" + + +echo "Usage: avaliaTrab.sh <arquivo executavel compilador" + +for exemplo in $EXEMPLOS; do + echo -n $exemplo "... " + cp $exemplo"/pgma.pas" "./" + cp $exemplo"/MEPA" "MEPA-Res" + + $1 ./pgma.pas > res + diff MEPA MEPA-Res -bBt +done + diff --git a/AvaliaTrabs/compilador b/AvaliaTrabs/compilador new file mode 100755 index 0000000000000000000000000000000000000000..9b92e31a6a75801f4dfb38b1536c6d239686e8f4 Binary files /dev/null and b/AvaliaTrabs/compilador differ diff --git a/AvaliaTrabs/forward-2024-2.pdf b/AvaliaTrabs/forward-2024-2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ffcf7a8389bf9e35209092a3e1cb75ba48de6d94 Binary files /dev/null and b/AvaliaTrabs/forward-2024-2.pdf differ diff --git a/AvaliaTrabs/forward1.pas b/AvaliaTrabs/forward1.pas new file mode 100644 index 0000000000000000000000000000000000000000..a5b19357c40a0f3a8d54d7939e8ce9390d99a5af --- /dev/null +++ b/AvaliaTrabs/forward1.pas @@ -0,0 +1,36 @@ +Program Maximum_Minimum_Number(output); + +var + res: integer; + +function max(num1, num2: integer): integer; forward; + +function min(num1, num2: integer): integer; +var + result: integer; + +begin + if (num1 > num2) then + result := num2 + else + result := num1; + min := result; +end; + + +function max(num1, num2: integer): integer; +var + result: integer; + +begin + if (num1 > num2) then + result := num1 + else + result := num2; + max := result; +end; + +begin + res := max(5,10); + writeln(res); +end. diff --git a/AvaliaTrabs/forward2.pas b/AvaliaTrabs/forward2.pas new file mode 100644 index 0000000000000000000000000000000000000000..f4658690219171780b1096a245108dadf9ca0771 --- /dev/null +++ b/AvaliaTrabs/forward2.pas @@ -0,0 +1,18 @@ +Program OutputLines(output); + +procedure fun1() ; forward; + +procedure fun2(); +begin + write(0); + fun1(); +end; + +procedure fun1(); +begin + write(1); +end; + +begin + fun2(); +end. diff --git a/AvaliaTrabs/pgma.pas b/AvaliaTrabs/pgma.pas new file mode 100644 index 0000000000000000000000000000000000000000..3430f068994df4271ab480af358cd481cf3e6370 --- /dev/null +++ b/AvaliaTrabs/pgma.pas @@ -0,0 +1,8 @@ +program exemploErro2 (input, output); +var n, k : integer; +begin + read (n); + read (k); + if (n+1) then n:=1; + write (n) +end. diff --git a/AvaliaTrabs/res b/AvaliaTrabs/res new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/compilador.y b/compilador.y index 644d0049f661eadfcba6fab5a6e0769968185203..4633f25d8a9fa1b497f112c38df17ba312246892 100644 --- a/compilador.y +++ b/compilador.y @@ -192,7 +192,7 @@ declaracao_procedimento: PROCEDURE IDENT { char buffer[50]; desempilha(buffer,proc); l_elem = busca(buffer,ts); - sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.pr.quant); + sprintf(buffer,"RTPR %d, %d",l_elem->nivel,l_elem->info.pr.quant); geraCodigo(NULL,buffer); desloc = retira_vs_pf(ts); mostra_ts(ts); @@ -234,7 +234,7 @@ declaracao_funcao: FUNCTION IDENT { char buffer[50]; desempilha(buffer,proc); l_elem = busca(buffer,ts); - sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.fun.quant); + sprintf(buffer,"RTPR %d, %d",l_elem->nivel,l_elem->info.fun.quant); geraCodigo(NULL,buffer); desloc = retira_vs_pf(ts); mostra_ts(ts); @@ -341,9 +341,9 @@ atribuicao: { // Gera código ARMZ para armazenar valor char buffer[50]; if (atr_indireto == REF) { - sprintf(buffer, "ARMI %d,%d", destino_nivel, destino_desloc); + sprintf(buffer, "ARMI %d, %d", destino_nivel, destino_desloc); } else { - sprintf(buffer, "ARMZ %d,%d", destino_nivel, destino_desloc); + sprintf(buffer, "ARMZ %d, %d", destino_nivel, destino_desloc); } geraCodigo(NULL, buffer); }; @@ -386,7 +386,7 @@ chamada_procedimento: // Gera o código de chamada do procedimento - sprintf(buffer, "CHPR %s,%d", l_elem->info.pr.rot, nivel_lexico); + sprintf(buffer, "CHPR %s, %d", l_elem->info.pr.rot, nivel_lexico); geraCodigo(NULL, buffer); } } @@ -436,7 +436,7 @@ simb_leitura: IDENT { geraCodigo(NULL, "LEIT"); l_elem = busca(token,ts); char buffer[50]; - sprintf(buffer,"ARMZ %d,%d",l_elem->nivel,l_elem->info.vs.desloc); + sprintf(buffer,"ARMZ %d, %d",l_elem->nivel,l_elem->info.vs.desloc); geraCodigo(NULL,buffer); } ; @@ -512,11 +512,11 @@ fator: IDENT { } else { if (val_ou_ref == REF) { if (l_elem->categ == VS){ - sprintf(buffer, "CREN %d,%d", l_elem->nivel, l_elem->info.vs.desloc); + sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.vs.desloc); geraCodigo(NULL, buffer); } else if (l_elem->categ == PF){ - sprintf(buffer, "CREN %d,%d", l_elem->nivel, l_elem->info.pf.desloc); + sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.pf.desloc); geraCodigo(NULL, buffer); } else @@ -524,16 +524,16 @@ fator: IDENT { } else if (l_elem->categ == PF && l_elem->info.pf.passagem == REF) { - sprintf(buffer, "CRVI %d,%d", l_elem->nivel, l_elem->info.pf.desloc); + sprintf(buffer, "CRVI %d, %d", l_elem->nivel, l_elem->info.pf.desloc); geraCodigo(NULL, buffer); } else { if (l_elem->categ == VS) { - sprintf(buffer, "CRVL %d,%d", l_elem->nivel, l_elem->info.vs.desloc); + sprintf(buffer, "CRVL %d, %d", l_elem->nivel, l_elem->info.vs.desloc); geraCodigo(NULL, buffer); } else if (l_elem->categ == PF){ - sprintf(buffer, "CRVL %d,%d", l_elem->nivel, l_elem->info.pf.desloc); + sprintf(buffer, "CRVL %d, %d", l_elem->nivel, l_elem->info.pf.desloc); geraCodigo(NULL, buffer); } } diff --git a/teste5.pas b/teste5.pas index 358a19da28f0812fda57126787eec514c3f4c37b..940451a66aa717183213a16fc93e922da02ef704 100644 --- a/teste5.pas +++ b/teste5.pas @@ -12,7 +12,7 @@ begin if i = 0 then write(2) else write(3); - end; + end else write(i,1); i := i+1; end;