(→Exercício 3) |
|||
Line 6: | Line 6: | ||
Traduza para Postfix (não optimizado) a seguinte função escrita em C: | Traduza para Postfix (não optimizado) a seguinte função escrita em C: | ||
− | <c> | + | <source lang="c"> |
int *click(int *x, int dim) { | int *click(int *x, int dim) { | ||
int *res, i; | int *res, i; | ||
Line 13: | Line 13: | ||
return res; | return res; | ||
} | } | ||
− | </ | + | </source> |
== Exercício 2 == | == Exercício 2 == | ||
Traduza para Postfix (não optimizado) a seguinte função escrita em C: | Traduza para Postfix (não optimizado) a seguinte função escrita em C: | ||
− | <c> | + | <source lang="c"> |
int main() { | int main() { | ||
extern void printd(double); | extern void printd(double); | ||
Line 25: | Line 25: | ||
return 0; | return 0; | ||
} | } | ||
− | </ | + | </source> |
== Exercício 3 == | == Exercício 3 == | ||
Traduza para Postfix (não optimizado) a seguinte função escrita em C: | Traduza para Postfix (não optimizado) a seguinte função escrita em C: | ||
− | <c> | + | <source lang="c"> |
void isort(int a[], int length) { | void isort(int a[], int length) { | ||
for (int i = 0; i < length; i++) { | for (int i = 0; i < length; i++) { | ||
Line 40: | Line 40: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
== Exercício 4 == | == Exercício 4 == | ||
Traduza para código Postfix a seguinte função escrita em C: | Traduza para código Postfix a seguinte função escrita em C: | ||
− | <c> | + | <source lang="c"> |
int main() { | int main() { | ||
int n = 45, i = 0, j = 1, *seg = &i; | int n = 45, i = 0, j = 1, *seg = &i; | ||
Line 54: | Line 54: | ||
return 0; | return 0; | ||
} | } | ||
− | </ | + | </source> |
== Resoluções == | == Resoluções == |
Processamento semântico e geração de código Postfix (não optimizado).
Traduza para Postfix (não optimizado) a seguinte função escrita em C:
int *click(int *x, int dim) {
int *res, i;
for (i = dim-2, res = x+dim-1; i >= 0; i--)
if (x[i] > *res) res = &x[i];
return res;
}
Traduza para Postfix (não optimizado) a seguinte função escrita em C:
int main() {
extern void printd(double);
double d, e;
d = e = 3.3e-2;
printd(d + e);
return 0;
}
Traduza para Postfix (não optimizado) a seguinte função escrita em C:
void isort(int a[], int length) {
for (int i = 0; i < length; i++) {
int v = a[i];
for (int j = i - 1; j >= 0; j--) {
if (a[j] <= v) break;
a[j + 1] = a[j];
}
a[i + 1] = v;
}
}
Traduza para código Postfix a seguinte função escrita em C:
int main() {
int n = 45, i = 0, j = 1, *seg = &i;
while (n-- > 0) {
print(*seg = i + j);
seg = (seg == &i) ? &j : &i;
}
return 0;
}