Лабораторная работа No7 «Промежуточные языки трансляции» Цель: получение практических навыков в использовании методов перевода программ в обратную польскую запись. Перевести в обратную польскую запись выражения и операторы. Вариант 1 Вариант 2 1. n=(a+5)/(b*2) 1. n=a*(b-1)+5*f/(3+2) 2. d<=3 && a>5 || d>4 2. (3>a || a<=b) && c>b 3. while (a[i]!=b[i]) { 3. if (a>b[i][j+1]) if (a[i]
0) { z[i][j]=f(a); c[i-1]=f(a,b[i][j]); c=ff(a[i],b[j]); } while (x5) c=ff(5,b[j]); else { z[i][j-1]=5*a[i]*b[j+1]; } c[i]=ff(b[i][j*a*2]); } x=b[i][j-1]/8; } Вариант 3 Вариант 4 1. n=5/a-7+(3*d) 1. n=(a+b)/c*(a-b) 2. a>=b && c<=d || a && c 2. a || c<=0 && a>b 3. if (f(a,b)>5 && f(a,b)1 && x[i]<9) } a[i][i]=b/c+f(i,j); else { else { z[j]=f(a,b); a[i][j+2]=b-ff(i*j); while (z[j]<5*z[i*2]) if (b>0) b=c/x[i*j]; c=f(x[j*2][i*2],a/2); } else c=f(b,c); } } Вариант 5 Вариант 6 1. n=3-a/b+(a*b)/5 1. n=((7*5)+(a/b))/d 2. 3<=a && (a>b || c=3 && a>b 3. while (ix[i]*8; i++) { if (a[i]5*a) else b[i*2+1]=f(a[i],i); } c=5/ff(a*x[i]); } else x[j][i]=5*ff(x[i][j]); } else c=x[i*2]/f(a+3,1); }
Вариант 7 Вариант 8 1. n=((a+b)-(b+c))*5 1. n=(a/(b/c)-d)*3 2. a && (c<=d && (d || a<=5)) 2. (a>b || c<=5) && d 3. x[i]=ff(a*2,b[i-1]); 3. for (i=0; ib) { if (a<0 && x[i]*2>f(b[j*2])) { c=ff(a+5,b*2,c/d); a=b[ff(x[i*2],c/2)]; if (c>d) a=x[i][j]; } if (a<0) c=c/2+f(a); else a=x[f(a,b)][5]; else c=c*2+ff(1,b[j]); } } Вариант 9 Вариант 10 1. n=-a+(-b)/(2+c)*3 1. n=(8+3)*(a-b)/c 2. (a>3 || a<=5) && (c>b || d) 2. a && b<=c || c>d 3. while (a[i*2][j]>=5) { 3. if (a>x[i*2] && c[j]<0) { if (a[i][j*2]0 && a[1][j]>0) else x=z[i][j-1]; } for (a=10; a>-5; a--) { else z[j][i]=a[5][ff(b[j])]; if (a<0) a=b[f(a,a)]; } else a=f(b[i*2],a); } Вариант 11 Вариант 12 1. n=5/(6-a)*(7+c)-b 1. n=((-b-5)+3)+(a-b)/2 2. (a>1 && b>2 || c>3) && d 2. (a0 && x<3) || x<0 3. if (a>0 || b<0 && y[i]) 3. if (b<7 || c>0 && x[i*2]<0) { while (a>0) { x[j+1]=ff(y[i][j-4],a/2)+5; x=4-7*y[i]; a=a-2; } if (a*3>b/4) a=b+2*a; } else { else a=f(z[i+2][j],y[i-j]); for (n=a; ny || y5 2. c>d && a0 && y4 && c<2 || d && k>a) { if (f(7,3)>a || y[2][j]x[j]) j=5; else a=3*f(x[0]-7); else a=-7+s/4*d-1; for (i=7; i>0; i--) else y[j][i]=b[ff(x[j])][7]; x[i]=f(2)+y[i+1][j-1]; } } else a=f(x[ff(3,d-5)]);
Вариант 15 1. n=y+((-b)/2+c)*(3-x) 2. a || (x>y || x>z) && a>9 3. for (i=0; i0 || x[i]>0 && x[i]>b) { if (a>b && c) a=x[i]/y[i+1][n]; } else y[2][i]=y[ff(9)][i*2]; }