ОО1/Фебруар 2021 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (+{{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?

  1. Odvajanje interfejsa klase od njene implementacije koja se sakriva od korisnika.
  2. Prepoznavanje bitnih svojstava skupova sličnih objekata i opisivanje zajedničkom klasom.
  3. Mogućnost kreiranja apstraktnih klasa i funkcija članica.
  4. 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;
  1. const int*
  2. int*
  3. int
  4. const int* const
  5. const int
  6. int *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?

  1. const X * const
  2. X*
  3. X * const
  4. X
  5. const X *

4. zadatak

Koji od sledećih tvrđenja su tačni za statičke metode klase X:

  1. Nemaju pokazivač this
  2. Imaju pravo pristupa svim članovima X
  3. Imaju javno pravo pristupa nezavisno od sekcije u kojoj se nalaze
  4. Mogu da pristupaju statičkim atributima i funkcijama prostim imenovanjem
  5. 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?

  1. template<typename T>
  2. template<typename T, int N>
  3. template<int N>
  4. template<typename T, typename U>
  5. template<>

8. zadatak

Na koje sve načine je moguće definisati klasu B izvedenu iz klase A?

  1. class B : virtual A {...};
  2. class B : protected public A {...};
  3. class B : override A {...};
  4. class B : A {...};
  5. 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