Програмски преводиоци 1/Јануар 2024 — разлика између измена
Пређи на навигацију
Пређи на претрагу
(basic) |
|||
Ред 5: | Ред 5: | ||
== 1. zadatak == | == 1. zadatak == | ||
=== Postavka === | === Postavka === | ||
Dat je sledeći kod na programskom jeziku C. | |||
<syntaxhighlight lang="c"> | |||
int f1(int a) { | |||
int b = a; | |||
b = b + 1; | |||
return b; | |||
} | |||
int f2(int a) { | |||
int b = a; | |||
b = b + f1(1); | |||
return b; | |||
} | |||
int m(int a, int n, int (*m1)(int), int(*m2)(int)) { | |||
int tmp1, int tmp2; | |||
tmp1 = f1(a); | |||
tmp2 = f2(a); | |||
if (n == 0) { | |||
return 1; | |||
} else { | |||
return tmp2 * m(tmp1, n - 1, m1, m2); | |||
} | |||
} | |||
int main() { | |||
printf("%d", m(1, 3, &f1, &f2)); | |||
return 0; | |||
} | |||
</syntaxhighlight> | |||
* Dati ispis programa; | |||
* Dati izgled steka nakon poslednjeg poziva funkcije <code>f2</code>; | |||
* Dati x86 kod za funkciju <code>f2</code>. | |||
=== Rešenje === | === Rešenje === |
Верзија на датум 19. јануар 2024. у 00:06
- Овај рок није решен. Помозите SI Wiki тако што ћете га решити.
Januarski ispit 2024. godine održan je 18. januara i trajao je 150 minuta. Postavka roka nije dostupna sa stranice predmeta.
1. zadatak
Postavka
Dat je sledeći kod na programskom jeziku C.
int f1(int a) {
int b = a;
b = b + 1;
return b;
}
int f2(int a) {
int b = a;
b = b + f1(1);
return b;
}
int m(int a, int n, int (*m1)(int), int(*m2)(int)) {
int tmp1, int tmp2;
tmp1 = f1(a);
tmp2 = f2(a);
if (n == 0) {
return 1;
} else {
return tmp2 * m(tmp1, n - 1, m1, m2);
}
}
int main() {
printf("%d", m(1, 3, &f1, &f2));
return 0;
}
- Dati ispis programa;
- Dati izgled steka nakon poslednjeg poziva funkcije
f2
; - Dati x86 kod za funkciju
f2
.