ОО1/Фебруар 2021 — разлика између измена
м (+{{rešenja}}) |
м (+data-solutions) |
||
| Ред 4: | Ред 4: | ||
== 1. zadatak == | == 1. zadatak == | ||
Koja od navedenih definicija najbolje odgovara ''apstrakciji'' kao elementnu objektno orijentisanog stila programiranja? | Koja od navedenih definicija najbolje odgovara ''apstrakciji'' kao elementnu objektno orijentisanog stila programiranja? | ||
<div class="abc-list"> | <div class="abc-list" data-solution="single"> | ||
# Odvajanje interfejsa klase od njene implementacije koja se sakriva od korisnika. | # Odvajanje interfejsa klase od njene implementacije koja se sakriva od korisnika. | ||
# <span class="solution">Prepoznavanje bitnih svojstava skupova sličnih objekata i opisivanje zajedničkom klasom.</span> | # <span class="solution">Prepoznavanje bitnih svojstava skupova sličnih objekata i opisivanje zajedničkom klasom.</span> | ||
| Ред 18: | Ред 18: | ||
auto i = new int + k; | auto i = new int + k; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<div class="abc-list"> | <div class="abc-list" data-solution="single"> | ||
# <syntaxhighlight lang="cpp" inline>const int*</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline>const int*</syntaxhighlight> | ||
# <span class="solution"><syntaxhighlight lang="cpp" inline>int*</syntaxhighlight></span> | # <span class="solution"><syntaxhighlight lang="cpp" inline>int*</syntaxhighlight></span> | ||
| Ред 36: | Ред 36: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Kog tipa je pokazivač <code>this</code> u metodu <code>m</code>? | Kog tipa je pokazivač <code>this</code> u metodu <code>m</code>? | ||
<div class="abc-list"> | <div class="abc-list" data-solution="single"> | ||
# <span class="solution"><syntaxhighlight lang="cpp" inline>const X * const</syntaxhighlight></span> | # <span class="solution"><syntaxhighlight lang="cpp" inline>const X * const</syntaxhighlight></span> | ||
# <syntaxhighlight lang="cpp" inline>X*</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline>X*</syntaxhighlight> | ||
| Ред 46: | Ред 46: | ||
== 4. zadatak == | == 4. zadatak == | ||
Koji od sledećih tvrđenja su tačni za statičke metode klase X: | Koji od sledećih tvrđenja su tačni za statičke metode klase X: | ||
<div class="abc-list"> | <div class="abc-list" data-solution="multiple"> | ||
# <span class="solution">Nemaju pokazivač <code>this</code></span> | # <span class="solution">Nemaju pokazivač <code>this</code></span> | ||
# <span class="solution">Imaju pravo pristupa svim članovima X</span> | # <span class="solution">Imaju pravo pristupa svim članovima X</span> | ||
| Ред 70: | Ред 70: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Rešenje: <span class="spoiler">133</span> | Rešenje: <span class="spoiler" data-solution="text">133</span> | ||
== 6. zadatak == | == 6. zadatak == | ||
Kog tipa je parametar premeštajućeg operatora dodele za klasu X? | Kog tipa je parametar premeštajućeg operatora dodele za klasu X? | ||
Rešenje: <span class="spoiler">X&&</span> | Rešenje: <span class="spoiler" data-solution="text">X&&</span> | ||
== 7. zadatak == | == 7. zadatak == | ||
Koji od ponuđenih prefiksa opšte (nespecijalizovane) šablonske (genreičke<sup>[sic]</sup>) funkcije ili klase su ispravni? | Koji od ponuđenih prefiksa opšte (nespecijalizovane) šablonske (genreičke<sup>[sic]</sup>) funkcije ili klase su ispravni? | ||
<div class="abc-list"> | <div class="abc-list" data-solution="multiple"> | ||
# <span class="solution"><syntaxhighlight lang="cpp" inline>template<typename T></syntaxhighlight></span> | # <span class="solution"><syntaxhighlight lang="cpp" inline>template<typename T></syntaxhighlight></span> | ||
# <span class="solution"><syntaxhighlight lang="cpp" inline>template<typename T, int N></syntaxhighlight></span> | # <span class="solution"><syntaxhighlight lang="cpp" inline>template<typename T, int N></syntaxhighlight></span> | ||
| Ред 89: | Ред 89: | ||
== 8. zadatak == | == 8. zadatak == | ||
Na koje sve načine je moguće definisati klasu B izvedenu iz klase A? | Na koje sve načine je moguće definisati klasu B izvedenu iz klase A? | ||
<div class="abc-list"> | <div class="abc-list" data-solution="multiple"> | ||
# <span class="solution"><syntaxhighlight lang="cpp" inline>class B : virtual A {...};</syntaxhighlight></span> | # <span class="solution"><syntaxhighlight lang="cpp" inline>class B : virtual A {...};</syntaxhighlight></span> | ||
# <syntaxhighlight lang="cpp" inline>class B : protected public A {...};</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline>class B : protected public A {...};</syntaxhighlight> | ||
| Ред 130: | Ред 130: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Rešenje: <span class="spoiler">12150</span> | Rešenje: <span class="spoiler" data-solution="text">12150</span> | ||
== 10. zadatak == | == 10. zadatak == | ||
| Ред 158: | Ред 158: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Rešenje: <span class="spoiler">34</span> | Rešenje: <span class="spoiler" data-solution="text">34</span> | ||
[[Категорија:Рокови]] | [[Категорија:Рокови]] | ||
[[Категорија:ОО1]] | [[Категорија:ОО1]] | ||
Верзија на датум 30. јун 2021. у 15:38
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
Koja od navedenih definicija najbolje odgovara apstrakciji kao elementnu objektno orijentisanog stila programiranja?
- Odvajanje interfejsa klase od njene implementacije koja se sakriva od korisnika.
- Prepoznavanje bitnih svojstava skupova sličnih objekata i opisivanje zajedničkom klasom.
- Mogućnost kreiranja apstraktnih klasa i funkcija članica.
- Pristupačnost određenim članovima klase navođenjem prava pristupa.
2. zadatak
Koji je tip promenljive i u sledećem isečku koda napisanom na jeziku C++?
const int j = 1;
const auto k = j;
auto i = new int + k;
const int*int*intconst int* constconst intint *const
3. zadatak
U klasi X je definisan metod m.
class X {
public:
void m(X *x) const {}
};
Kog tipa je pokazivač this u metodu m?
const X * constX*X * constXconst X *
4. zadatak
Koji od sledećih tvrđenja su tačni za statičke metode klase X:
- Nemaju pokazivač
this - Imaju pravo pristupa svim članovima X
- Imaju javno pravo pristupa nezavisno od sekcije u kojoj se nalaze
- Mogu da pristupaju statičkim atributima i funkcijama prostim imenovanjem
- Moraju se definisati van tela klase
5. zadatak
Šta ispisuje sledeći program na programskom jeziku C++? (Ukoliko smatrate da se program ne prevodi, unesite NP. Ukoliko smatrate da dolazi do greške pri izvršavanju, unesite X)
#include <iostream>
using namespace std;
int main() {
int brojevi[] = {1, 2, 3};
int* pk = brojevi;
pk++;
int& ref = *pk;
ref++;
cout << brojevi[0] << brojevi[1] << brojevi[2];
return 0;
}
Rešenje: 133
6. zadatak
Kog tipa je parametar premeštajućeg operatora dodele za klasu X?
Rešenje: X&&
7. zadatak
Koji od ponuđenih prefiksa opšte (nespecijalizovane) šablonske (genreičke[sic]) funkcije ili klase su ispravni?
template<typename T>template<typename T, int N>template<int N>template<typename T, typename U>template<>
8. zadatak
Na koje sve načine je moguće definisati klasu B izvedenu iz klase A?
class B : virtual A {...};class B : protected public A {...};class B : override A {...};class B : A {...};class B : public A {...};
9. zadatak
Šta ispisuje sledeći program na programskom jeziku C++?
#include <iostream>
using namespace std;
class A {
private:
int a;
public:
A(int aa=0) : a(aa) {}
void m() { cout << 1; }
friend ostream& operator<<(ostream& os,const A& a) { return os << a.a; }
};
class B: public A{
private:
int a;
public:
B(int aa) : a(aa) {}
int m() { cout << 2; return 2; }
};
int main() {
A a(5);
B b(7);
A* ap = &b;
a.m();
b.m();
ap->m();
cout << a << b;
}
Rešenje: 12150
10. zadatak
Šta ispisuje sledeći program na programskom jeziku C++? Zanemariti upozorenja prevodioca
#include <iostream>
using namespace std;
class IzuzO {};
class IzuzI : public IzuzO {};
int main() {
try
{
try
{
throw new IzuzI();
}
catch (IzuzI&) { cout << 1; }
catch (IzuzO&) { cout << 2; }
catch (...) { cout << 3; throw; }
}
catch (IzuzO*) { cout << 4; }
catch (IzuzI*) { cout << 5; }
catch (...) { cout << 6; }
return 0;
}
Rešenje: 34