<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kiclu</id>
	<title>SI Wiki - Кориснички доприноси [sr]</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kiclu"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/wiki/%D0%9F%D0%BE%D1%81%D0%B5%D0%B1%D0%BD%D0%BE:%D0%94%D0%BE%D0%BF%D1%80%D0%B8%D0%BD%D0%BE%D1%81%D0%B8/Kiclu"/>
	<updated>2026-06-04T03:15:27Z</updated>
	<subtitle>Кориснички доприноси</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D0%9E%D0%A1/%D0%9B%D0%B0%D0%B1_1_2019&amp;diff=7445</id>
		<title>ПОС/Лаб 1 2019</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D0%9E%D0%A1/%D0%9B%D0%B0%D0%B1_1_2019&amp;diff=7445"/>
		<updated>2024-03-28T23:12:50Z</updated>

		<summary type="html">&lt;p&gt;Kiclu: додато треће решење&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
Лаб 1 се појављује у &#039;&#039;&#039;другом&#039;&#039;&#039; термину вежби.&lt;br /&gt;
{{решења}}&lt;br /&gt;
&lt;br /&gt;
== Група 3 ==&lt;br /&gt;
=== Задатак 1 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(3п)&#039;&#039;&#039; Написати скрипту која исписује &#039;&#039;username&#039;&#039; корисника који је покрене.&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo $USER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Задатак 2 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(4п)&#039;&#039;&#039; Написати команду које помоћу програма &#039;&#039;bzip2&#039;&#039; компресују све фајлове из текућег директоријума који се завршавају са &#039;&#039;~&#039;&#039;. Сваки фајл треба да буде засебно компресован. Затим написати команде које све новодобијене фајлове пребацују директоријум &#039;&#039;arhiva&#039;&#039;. Директоријум &#039;&#039;arhiva&#039;&#039; не постоји, као ни други компесовани&amp;lt;sub&amp;gt;[sic]&amp;lt;/sub&amp;gt; фајлови у текућем директоријуму.&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
mkdir arhiva; bzip2 ./*~; mv *.bz2 arhiva&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Задатак 3 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(7п)&#039;&#039;&#039; Написати команде које у фајлу &#039;&#039;&#039;/proc/cpuinfo&#039;&#039;&#039; проналазе и штампају број из друге линије која садржи реч &#039;&#039;MHz&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
Прво решење:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
grep &#039;MHz&#039; /proc/cpuinfo | head -n 2 | tail -n 1 | tr -s &#039; &#039; &#039; &#039; | cut -d&#039; &#039; -f3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Друго решење:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
grep &#039;MHz&#039; /proc/cpuinfo | tail -n +1 | tr -s &#039; &#039; &#039; &#039; | cut -d&#039; &#039; -f3&lt;br /&gt;
# tail -n +1  -  ignoriše prvu liniju ispisa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Треће решење:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
grep MHz /proc/cpuinfo | head -n2 | tail -n1 | awk &#039;{print $4}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:ПОС]]&lt;br /&gt;
[[Категорија:Лабораторијске вежбе]]&lt;/div&gt;</summary>
		<author><name>Kiclu</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02&amp;diff=6222</id>
		<title>АОР2</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02&amp;diff=6222"/>
		<updated>2023-06-02T12:12:59Z</updated>

		<summary type="html">&lt;p&gt;Kiclu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Предмет&lt;br /&gt;
| назив     = Архитектура и организација рачунара 2&lt;br /&gt;
| шифра     = 13С113АОР2, 13Е113АОР2&lt;br /&gt;
| семестар  = 6, 8 (СИ)&lt;br /&gt;
| статус    = изборни&lt;br /&gt;
| страница  = [https://rti.etf.bg.ac.rs/rti/ir3ar2/ rti.etf.rs/rti/ir3ar2]&lt;br /&gt;
| одсек     = СИ, РТИ&lt;br /&gt;
| претходни = АОР1&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Архитектура и организација рачунара 2&#039;&#039;&#039; је &amp;lt;s&amp;gt;изборни&amp;lt;/s&amp;gt; најобавезнији предмет у шестом семестру.&lt;br /&gt;
&lt;br /&gt;
== Корисне везе ==&lt;br /&gt;
* [https://app.box.com/s/0r50je333z1qyypz0h3rm0iqb9s0d64f/folder/17673443410 ETF Materijali (Box)]&lt;br /&gt;
&lt;br /&gt;
== Настава ==&lt;br /&gt;
{{непотпун одељак}}&lt;br /&gt;
&amp;lt;!-- Овде се наводе све битне информације у вези са предавањима и вежбама на предмету, као и потребни материјали. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Информације које вреди поменути: које се области прелазе у којем блоку, која се развојна окружења користе, шта обично долази за који колоквијум, где могу да се нађу белешке и презентације, да ли се настава на предмету уопште држи (ако се не држи то треба назначити како би било јасно да викију не недостају информације по том питању), да ли су предавања или вежбе бескорисне --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пројекат ==&lt;br /&gt;
{{непотпун одељак}}&lt;br /&gt;
&amp;lt;!-- Овде се наводе све битне информације у вези са домаћим задацима на предмету (уколико постоје), као и потребни материјали. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Уколико на предмету постоји пројекат за њега направити нови одељак. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Информације које вреди поменути: окружења за израду, шта се ради на домаћем, водичи за домаћи (уколико су довољно слични из године у годину), где наћи старе домаће, колико бодова носе, када се предају, како изгледа одбрана, да ли је обавезан, корисни материјали --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Лабораторијске вежбе ==&lt;br /&gt;
{{непотпун одељак}}&lt;br /&gt;
&amp;lt;!-- Овде се наводе све битне информације у вези са лабораторијским вежбама на предмету, као и потребни материјали. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Информације које вреди поменути: када се одржавају, шта се на њима ради, шта се ради пре лабораторијске вежбе, у ком окружењу се ради, колико бодова носе, где наћи претходне лабораторијске вежбе, водичи за израду --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Испитни рокови ==&lt;br /&gt;
Слично као и на [[Архитектура рачунара|АР]], испитни рокови се објављују званично на страници предмета, али испитни рокови тренутне године се не објављују до следеће године. Следећи рокови су решени на викију:&lt;br /&gt;
{{#dpl:&lt;br /&gt;
| category    = АОР2&lt;br /&gt;
| category    = Рокови&lt;br /&gt;
| format      = ,\n* &amp;lt;span class=&amp;quot;rok,&amp;quot;&amp;gt;[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦6¦-1}²]]&amp;lt;/span&amp;gt;,&lt;br /&gt;
| ordermethod = title&lt;br /&gt;
| include     = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Начин оцењивања ==&lt;br /&gt;
* &amp;lt;math&amp;gt;L_1, L_2&amp;lt;/math&amp;gt; — Бодови са лабораторијских вежби (укупно 15)&lt;br /&gt;
* &amp;lt;math&amp;gt;K_1, K_2&amp;lt;/math&amp;gt; — Бодови са колоквијума (0-10 сваки)&lt;br /&gt;
* &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; — Бодови са испита (0-20)&lt;br /&gt;
* &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; — Бодови са пројекта (0-45)&lt;br /&gt;
* &amp;lt;math&amp;gt;P = L_1 + L_2 + K_1 + K_2 + I + D&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Бодови&lt;br /&gt;
| &amp;lt;math&amp;gt;P \leq 50&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;50 &amp;lt; P \leq 60&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;60 &amp;lt; P \leq 70&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;70 &amp;lt; P \leq 80&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;80 &amp;lt; P \leq 90&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;90 &amp;lt; P&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Оцена&lt;br /&gt;
| 5 || 6 || 7 || 8 || 9 || 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Потребна помоћ ==&lt;br /&gt;
* {{задаци|rešenja}}&lt;/div&gt;</summary>
		<author><name>Kiclu</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A1%D0%9F_2023&amp;diff=6181</id>
		<title>АОР2/К1П 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D0%9E%D0%A02/%D0%9A1%D0%9F_2023&amp;diff=6181"/>
		<updated>2023-05-13T15:04:28Z</updated>

		<summary type="html">&lt;p&gt;Kiclu: Додат АОР2 К1П 2023&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{nerešeno}}&lt;br /&gt;
&#039;&#039;&#039;Поправни први колоквијум 2023. године&#039;&#039;&#039; одржан је 12. маја и трајао је 90 минута.&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
{{делимично решено}}&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Посматра се кеш меморија реализована у техници сет асоцијативног пресликавања са 4 улаза по сету која користи &#039;&#039;SLRU&#039;&#039; (&#039;&#039;Segmented LRU&#039;&#039;) алгоритам замене. Објаснити овај алгоритам. Дати садржаје свих улаза &#039;&#039;TAG&#039;&#039; дела кеш меморије после сваког приступа уколико се обављају приступи меморији за исти сет који имају следеће вредности поља Tag: 0, 1, 2, 1, 2, 5, 4, 2, 3, 6, 3.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
{{делимично решено}}&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
У процесору се налази &#039;&#039;L1 Data&#039;&#039; асоцијативна кеш меморија величине 512KiB, која користи &#039;&#039;write-back&#039;&#039; алгоритам за ажурирање садржаја оперативне меморије са &#039;&#039;write allocated&#039;&#039; политиком довлачења. Користи се LRU алгоритам замене. Величина блока кеш меморије је 64B.&lt;br /&gt;
&lt;br /&gt;
Дат је програм који имплементира &#039;&#039;Stencil&#039;&#039; оператор. У матрици &amp;lt;code&amp;gt;current&amp;lt;/code&amp;gt; се налазе реалне вредности типа &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt; (ширине 64 бита). Матрица &amp;lt;code&amp;gt;next&amp;lt;/code&amp;gt; представља резултат операције. Претпоставити да ниједна матрица на почетку није учитана у кеш меморију, као и да су прве ћелије матрица поравнате са блоком кеш меморије. Матрице су смештене у меморији тако што је свака 2D подматрица смештена по врстама, а подматрице се налазе једна до друге у меморији.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void stencil ( double *current, double *next, int nx, int ny, int nz, double f ) {&lt;br /&gt;
    for (int i = 1; i &amp;lt; (nx - 1); ++i ) {&lt;br /&gt;
        for( int j = 1; j &amp;lt; (ny - 1); ++j ) {&lt;br /&gt;
            for( int k = 1; k &amp;lt; (nz - 1); ++k ) {&lt;br /&gt;
                double ku  = current[index3D ( nx, ny, i    , j    , k + 1)];&lt;br /&gt;
                double kd  = current[index3D ( nx, ny, i    , j    , k - 1)];&lt;br /&gt;
                double ju  = current[index3D ( nx, ny, i    , j + 1, k    )];&lt;br /&gt;
                double jd  = current[index3D ( nx, ny, i    , j - 1, k    )];&lt;br /&gt;
                double iu  = current[index3D ( nx, ny, i + 1, j    , k    )];&lt;br /&gt;
                double id  = current[index3D ( nx, ny, i - 1, j    , k    )];&lt;br /&gt;
                double c   = current[index3D ( nx, ny, i    , j    , k    )];&lt;br /&gt;
                double sum = ku + kd + ju + jd + iu + id;&lt;br /&gt;
&lt;br /&gt;
                next[index3D( nx, ny, i, j, k)] = sum * f - c * (1 - f);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Уколико се зна да је оригинална слика димензија 8x8x8, наћи број промашаја приликом приступа кеш меморији. Узети у обзир само промашаје чији је узрок приступ матрици &amp;lt;code&amp;gt;current&amp;lt;/code&amp;gt;&lt;br /&gt;
# Потребно је оптимизовати дати код тако да се резултат програма не промени, а да се при томе искористе карактеристике дате кеш меморије. Није дозвољено коришћење наменских инструкција за манипулацију кеш меморије. У програму је доступно за коришћење још 10 регистара опште намене.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:АОР2]]&lt;/div&gt;</summary>
		<author><name>Kiclu</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2022&amp;diff=3495</id>
		<title>ОО1/Јануар 2022</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2022&amp;diff=3495"/>
		<updated>2022-01-29T14:07:01Z</updated>

		<summary type="html">&lt;p&gt;Kiclu: /* G3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
== G1 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Šta je tačno za navedeni isečak koda na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	int niz[] = { 1, 2, 3 };&lt;br /&gt;
	int i;&lt;br /&gt;
	cin &amp;gt;&amp;gt; i;&lt;br /&gt;
	cout &amp;lt;&amp;lt; niz[i];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Postoji problem curenja memorije.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Niz ima tačno 3 elemenata.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Postoji problem sa visećim pokazivačem.&lt;br /&gt;
# Ako se na standardni ulaz upiše 1, program će ispisati 1.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta je moguće staviti umesto ??? na ovom isečku koda na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	char slova[] = &amp;quot;slova&amp;quot;;&lt;br /&gt;
	char* const pk = slova;&lt;br /&gt;
    ???&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;pk++;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;(*pk)++;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;pk = &amp;quot;xyz&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;char c = pk[1];&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;pk[0] = &#039;a&#039;;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Objašnjenje:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;&amp;lt;code&amp;gt;pk&amp;lt;/code&amp;gt; je konstantni pokazivač na char što znači da ne može da se promeni na šta on pokazuje, tako da su prvi i treći odgovori netačni. Drugi i peti odgovori su tačni jer je samo pokazivač konstantan, a ne promenljiva na koju pokazuje. &amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Šta je moguće staviti umesto ??? na ovom isečku koda na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class X {&lt;br /&gt;
	int a;&lt;br /&gt;
public:&lt;br /&gt;
	static int y;&lt;br /&gt;
	int b;&lt;br /&gt;
private:&lt;br /&gt;
	static int x;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int X::y = 1;&lt;br /&gt;
int X::x = 2;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	X obj;&lt;br /&gt;
    ???&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.a = 5;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;obj.b = 5;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;obj.y = 5;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.x = 5;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;X::y = 5;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći kod na programskom jeziku C++? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class X {&lt;br /&gt;
public:&lt;br /&gt;
	static X&amp;amp;&amp;amp; kreiraj() { X* pk = new X(); return static_cast&amp;lt;X&amp;amp;&amp;amp;&amp;gt;(*pk); }&lt;br /&gt;
	void metod()&amp;amp; { cout &amp;lt;&amp;lt; 1; }&lt;br /&gt;
	void metod()&amp;amp;&amp;amp; { cout &amp;lt;&amp;lt; 2; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	X x;&lt;br /&gt;
	x.metod();&lt;br /&gt;
	X::kreiraj().metod();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Program se ne prevodi.&lt;br /&gt;
# 1&lt;br /&gt;
# 11&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
# 21&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći kod na programskom jeziku C++? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class A {&lt;br /&gt;
public:&lt;br /&gt;
	A() { cout &amp;lt;&amp;lt; &amp;quot;0&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class B{&lt;br /&gt;
	A a;&lt;br /&gt;
public:&lt;br /&gt;
	B() { cout &amp;lt;&amp;lt; &amp;quot;1&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class C : public B {&lt;br /&gt;
	A a;&lt;br /&gt;
public:&lt;br /&gt;
	C() { cout &amp;lt;&amp;lt; &amp;quot;2&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	C c;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Program se ne prevodi.&lt;br /&gt;
# 0120&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;0102&amp;lt;/span&amp;gt;&lt;br /&gt;
# Nijedan od ponuđenih odgovora.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o preklapanju operatora na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Ako se preklopi operator &amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; gubi se podrazumevani konstruktor.&lt;br /&gt;
# Kada se preklapa &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;, operator može da primi proizvoljno parametara ali svi moraju da budu standardnog tipa.&lt;br /&gt;
# Funkcijska klasa je klasa koja preklapa barem jedan od operatora &amp;lt;code&amp;gt;() [] -&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa može imati više preklopnjenih &amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; operatora.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; operator se preklapa kao statički metod.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o apstraktnim klasama na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Apstraktna klasa je ona koja ima barem jednu apstraktnu metodu.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Statički metod može da bude apstraktan.&lt;br /&gt;
# Klasa može biti apstraktna ako su joj destruktor i sve metode konkretne. &lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Da bi izvedena klasa bila konkretna, mora da konkretizuje sve apstraktne metode.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Apstraktna klasa se označava sa &amp;lt;code&amp;gt;abstract&amp;lt;/code&amp;gt; u definiciji pre &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o šablonskim klasama na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Može se izvoditi iz šablonskih klasa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Šablonska klasa ne može imati virtuelne metode.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Šablonski metodi ne mogu biti virtuelni.&amp;lt;/span&amp;gt;&lt;br /&gt;
# ??&lt;br /&gt;
# ??&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o virtuelnim metodama na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Destruktor može da bude virtuelan.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Konstruktor može da bude virtuelan.&lt;br /&gt;
# Statički metod može da bude virtuelan.&lt;br /&gt;
# Prijateljska globalna funkcija može biti virtuelna.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Nestatički metod može da bude virtuelan.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o rukovaocima izuzetaka na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Rukovalac tipa &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt; može da prihvati izuzetke tipa &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Rukovalac tipa &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; prihvata sve tipove izuzetaka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Rukovalac tipa &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; može da prihvati izuzetke tipa &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Izuzetak može da se baci iz &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt; bloka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Izuzetak ne može da se baci iz &amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt; bloka.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО1]]&lt;br /&gt;
&lt;br /&gt;
== G3 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći segment koda napisan na programskom jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int i = 7;&lt;br /&gt;
int main() {&lt;br /&gt;
	for(int i = 0; i &amp;lt; 3; i++) {&lt;br /&gt;
		if(int i = 1) {&lt;br /&gt;
			cout &amp;lt;&amp;lt; i;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
    cout &amp;lt;&amp;lt; i;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;1117&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta može da stoji umesto #### da bi se kod napisan na jeziku C++ uspešno preveo?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	int a = 1, b = 2;&lt;br /&gt;
    int * const p = &amp;amp;a;&lt;br /&gt;
    ####&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;p++;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;*p = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;p = &amp;amp;b;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;std::cout &amp;lt;&amp;lt; p;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;std::cout &amp;lt;&amp;lt; *p;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program napisan na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Klasa {&lt;br /&gt;
public:&lt;br /&gt;
	void metoda() &amp;amp; { cout &amp;lt;&amp;lt; &amp;quot;1&amp;quot;; }&lt;br /&gt;
	void metoda() &amp;amp;&amp;amp; { cout &amp;lt;&amp;lt; &amp;quot;2&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
	Klasa &amp;amp;&amp;amp;dRef = Klasa();&lt;br /&gt;
	dRef.metoda();&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Ukoliko su date sledeće datoteke &amp;quot;X.h&amp;quot; i &amp;quot;main.cpp&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// datoteka X.h&lt;br /&gt;
class X {&lt;br /&gt;
	int a;&lt;br /&gt;
private:&lt;br /&gt;
	static int b;&lt;br /&gt;
public:&lt;br /&gt;
	static int c;&lt;br /&gt;
	int d;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// datoteka main.cpp&lt;br /&gt;
#include &amp;quot;X.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int X::b = 1;&lt;br /&gt;
int X::c = 1;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	X y;&lt;br /&gt;
    ***&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
koja od ovih navedenih naredbi ispravno zamenjuje ***?&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;y.b = 2;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;X::c = 5;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;y.a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;X::d = 3;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;y.d = 4;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Šta od sledećeg važi za preklapanje operatora na programskom jeziku C++?&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Ukoliko je levi operand binarne operacije standardnog tipa mora se preklopiti kao metod odgovarajuće klase.&lt;br /&gt;
# Operator &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; se mora preklopiti kao globalna prijateljska funkcija.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator dodele se mora preklopiti kao nestatički metod klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt; se mora preklopiti kao nestatički metod klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Binarni operator &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; je moguće preklopiti i kao metod klase i kao globalnu prijateljsku funkciju.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Šta od sledećeg važi za izvođenje na programskom jeziku C++?&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Objekti izvedene klase sadrže bezimeni podobjekat osnovne klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Preko objekata izvedene klase zaštićenim članovima osnovne klase se pristupa isto kao javnim članovima izvedene klase.&lt;br /&gt;
# Jezici koji podržavaju izvođenje se nazivaju objektno bazirani jezici.&lt;br /&gt;
# Modifikator &amp;lt;code&amp;gt;final&amp;lt;/code&amp;gt; se koristi za klasu koja nije izvedena ni iz jedne klase.&lt;br /&gt;
# Kada se neka klasa izvede iz klase X, potrebno je izvršiti ponovno prevođenje klase X.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class B {&lt;br /&gt;
public:&lt;br /&gt;
	B() { std::cout &amp;lt;&amp;lt; &amp;quot;b&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class X : virtual public B {&lt;br /&gt;
public:&lt;br /&gt;
	X() { std::cout &amp;lt;&amp;lt; &amp;quot;x&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class Y : virtual public B {&lt;br /&gt;
public:&lt;br /&gt;
	Y() { std::cout &amp;lt;&amp;lt; &amp;quot;y&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class Z : public X, public Y {&lt;br /&gt;
public:&lt;br /&gt;
	Z() { std::cout &amp;lt;&amp;lt; &amp;quot;z&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	Z z;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan odgovor:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;bxyz&amp;lt;/span&amp;gt;&lt;br /&gt;
# bxbyz&lt;br /&gt;
# byxz&lt;br /&gt;
# bybxz&lt;br /&gt;
# Program se ne prevodi.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje u vezi operatora za dinamičku konverziju (&amp;lt;code&amp;gt;dynamic_cast&amp;lt;/code&amp;gt;) su tačne?&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator za dinamičku konverziju primenjen na referencu tipa osnovne klase pri neuspešnoj konverziji u referencu na izvedenu klasu baca izuzetak tipa &amp;lt;code&amp;gt;bad_cast&amp;lt;/code&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Operator za dinamičku konverziju se mora primenjivati za svaku konverziju naviše (&amp;lt;code&amp;gt;upcast&amp;lt;/code&amp;gt;) koja se vrši u vreme izvršenja programa.&lt;br /&gt;
# Operator za dinamičku konverziju se može primeniti na pokazivač ili referencu na objekat nepolimorfne osnovne klase.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator za dinamičku konverziju primenjen na pokazivač tipa osnovne klase vraća &amp;lt;code&amp;gt;nullptr&amp;lt;/code&amp;gt; ako konverzija u pokazivač tipa izvedene klase ne uspeva.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Operator za dinamičku konverziju garantuje da će se konverzija u vreme izvršenja pravilno izvršiti i da će objekat biti konvertovan u ciljni objekat.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Ako su &amp;lt;code&amp;gt;I1, I2, I3&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;I4&amp;lt;/code&amp;gt; klase izuzetaka i ako je u osnovnoj klasi &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; deklarisan metod:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
virtual void m() throw (I1, I2, I3);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
deklaracija metoda &amp;lt;code&amp;gt;m()&amp;lt;/code&amp;gt; u izvedenoj klasi &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt; može da bude:&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() noexcept;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() throw ();&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() throw (I1, I2, I3);&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() throw (I1);&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;void m() throw (I2, I4);&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
Ako je generička klasa definisana na sledeći način:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;class T&amp;gt; class K { void m(T t); };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
metod &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; može da bude definisan izvan klase &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; na sledeći način:&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan odgovor:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;void K::m(T t) { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;template &amp;lt;class T&amp;gt; void K&amp;lt;T&amp;gt;::m(T t) { ... }&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;void K&amp;lt;T&amp;gt;::m(T t) { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kiclu</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2022&amp;diff=3492</id>
		<title>ОО1/Јануар 2022</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2022&amp;diff=3492"/>
		<updated>2022-01-28T18:44:40Z</updated>

		<summary type="html">&lt;p&gt;Kiclu: /* G3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
== G1 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Šta je tačno za navedeni isečak koda na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	int niz[] = { 1, 2, 3 };&lt;br /&gt;
	int i;&lt;br /&gt;
	cin &amp;gt;&amp;gt; i;&lt;br /&gt;
	cout &amp;lt;&amp;lt; niz[i];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Postoji problem curenja memorije.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Niz ima tačno 3 elemenata.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Postoji problem sa visećim pokazivačem.&lt;br /&gt;
# Ako se na standardni ulaz upiše 1, program će ispisati 1.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta je moguće staviti umesto ??? na ovom isečku koda na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	char slova[] = &amp;quot;slova&amp;quot;;&lt;br /&gt;
	char* const pk = slova;&lt;br /&gt;
    ???&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;pk++;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;(*pk)++;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;pk = &amp;quot;xyz&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;char c = pk[1];&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;pk[0] = &#039;a&#039;;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Objašnjenje:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;&amp;lt;code&amp;gt;pk&amp;lt;/code&amp;gt; je konstantni pokazivač na char što znači da ne može da se promeni na šta on pokazuje, tako da su prvi i treći odgovori netačni. Drugi i peti odgovori su tačni jer je samo pokazivač konstantan, a ne promenljiva na koju pokazuje. &amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Šta je moguće staviti umesto ??? na ovom isečku koda na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class X {&lt;br /&gt;
	int a;&lt;br /&gt;
public:&lt;br /&gt;
	static int y;&lt;br /&gt;
	int b;&lt;br /&gt;
private:&lt;br /&gt;
	static int x;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int X::y = 1;&lt;br /&gt;
int X::x = 2;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	X obj;&lt;br /&gt;
    ???&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.a = 5;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;obj.b = 5;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;obj.y = 5;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.x = 5;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;X::y = 5;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći kod na programskom jeziku C++? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class X {&lt;br /&gt;
public:&lt;br /&gt;
	static X&amp;amp;&amp;amp; kreiraj() { X* pk = new X(); return static_cast&amp;lt;X&amp;amp;&amp;amp;&amp;gt;(*pk); }&lt;br /&gt;
	void metod()&amp;amp; { cout &amp;lt;&amp;lt; 1; }&lt;br /&gt;
	void metod()&amp;amp;&amp;amp; { cout &amp;lt;&amp;lt; 2; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	X x;&lt;br /&gt;
	x.metod();&lt;br /&gt;
	X::kreiraj().metod();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Program se ne prevodi.&lt;br /&gt;
# 1&lt;br /&gt;
# 11&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
# 21&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći kod na programskom jeziku C++? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class A {&lt;br /&gt;
public:&lt;br /&gt;
	A() { cout &amp;lt;&amp;lt; &amp;quot;0&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class B{&lt;br /&gt;
	A a;&lt;br /&gt;
public:&lt;br /&gt;
	B() { cout &amp;lt;&amp;lt; &amp;quot;1&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class C : public B {&lt;br /&gt;
	A a;&lt;br /&gt;
public:&lt;br /&gt;
	C() { cout &amp;lt;&amp;lt; &amp;quot;2&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	C c;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Program se ne prevodi.&lt;br /&gt;
# 0120&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;0102&amp;lt;/span&amp;gt;&lt;br /&gt;
# Nijedan od ponuđenih odgovora.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o preklapanju operatora na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Ako se preklopi operator &amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; gubi se podrazumevani konstruktor.&lt;br /&gt;
# Kada se preklapa &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;, operator može da primi proizvoljno parametara ali svi moraju da budu standardnog tipa.&lt;br /&gt;
# Funkcijska klasa je klasa koja preklapa barem jedan od operatora &amp;lt;code&amp;gt;() [] -&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa može imati više preklopnjenih &amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; operatora.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; operator se preklapa kao statički metod.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o apstraktnim klasama na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Apstraktna klasa je ona koja ima barem jednu apstraktnu metodu.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Statički metod može da bude apstraktan.&lt;br /&gt;
# Klasa može biti apstraktna ako su joj destruktor i sve metode konkretne. &lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Da bi izvedena klasa bila konkretna, mora da konkretizuje sve apstraktne metode.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Apstraktna klasa se označava sa &amp;lt;code&amp;gt;abstract&amp;lt;/code&amp;gt; u definiciji pre &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o šablonskim klasama na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Može se izvoditi iz šablonskih klasa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Šablonska klasa ne može imati virtuelne metode.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Šablonski metodi ne mogu biti virtuelni.&amp;lt;/span&amp;gt;&lt;br /&gt;
# ??&lt;br /&gt;
# ??&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o virtuelnim metodama na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Destruktor može da bude virtuelan.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Konstruktor može da bude virtuelan.&lt;br /&gt;
# Statički metod može da bude virtuelan.&lt;br /&gt;
# Prijateljska globalna funkcija može biti virtuelna.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Nestatički metod može da bude virtuelan.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
Šta je tačno od sledećih navoda o rukovaocima izuzetaka na jeziku C++?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Rukovalac tipa &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt; može da prihvati izuzetke tipa &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Rukovalac tipa &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; prihvata sve tipove izuzetaka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Rukovalac tipa &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; može da prihvati izuzetke tipa &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Izuzetak može da se baci iz &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt; bloka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Izuzetak ne može da se baci iz &amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt; bloka.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО1]]&lt;br /&gt;
&lt;br /&gt;
== G3 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći segment koda napisan na programskom jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int i = 7;&lt;br /&gt;
int main() {&lt;br /&gt;
	for(int i = 0; i &amp;lt; 3; i++) {&lt;br /&gt;
		if(int i = 1) {&lt;br /&gt;
			cout &amp;lt;&amp;lt; i;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
    cout &amp;lt;&amp;lt; i;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;1117&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta može da stoje umesto #### da bi se kod napisan na jeziku C++ uspešno preveo?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	int a = 1, b = 2;&lt;br /&gt;
    int * const p = &amp;amp;a;&lt;br /&gt;
    ####&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;p++;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;*p = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;p = &amp;amp;b;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;std::cout &amp;lt;&amp;lt; p;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;std::cout &amp;lt;&amp;lt; *p;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program napisan na jeziku C++?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Klasa {&lt;br /&gt;
public:&lt;br /&gt;
	void metoda() &amp;amp; { cout &amp;lt;&amp;lt; &amp;quot;1&amp;quot;; }&lt;br /&gt;
	void metoda() &amp;amp;&amp;amp; { cout &amp;lt;&amp;lt; &amp;quot;2&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
	Klasa &amp;amp;&amp;amp;dRef = Klasa();&lt;br /&gt;
	dRef.metoda();&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Ukoliko su date sledeće datoteke &amp;quot;X.h&amp;quot; i &amp;quot;main.cpp&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// datoteka X.h&lt;br /&gt;
class X {&lt;br /&gt;
	int a;&lt;br /&gt;
private:&lt;br /&gt;
	static int b;&lt;br /&gt;
public:&lt;br /&gt;
	static int c;&lt;br /&gt;
	int d;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// datoteka main.cpp&lt;br /&gt;
#include &amp;quot;X.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int X::b = 1;&lt;br /&gt;
int X::c = 1;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	X y;&lt;br /&gt;
    ***&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
koja od ovih navedenih naredbi ispravno zamenjuje ***?&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;y.b = 2;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;X::c = 5;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;y.a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;X::d = 3;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;y.d = 4;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Šta od sledećeg važi za preklapanje operatora na programskom jeziku C++?&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Ukoliko je levi operand binarne operacije standardnog tipa mora se preklopiti kao metod odgovarajuće klase.&lt;br /&gt;
# Operator &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; se mora preklopiti kao globalna prijateljska funkcija.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator dodele se mora preklopiti kao nestatički metod klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt; se mora preklopiti kao nestatički metod klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Binarni operator &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; je moguće preklopiti i kao metod klase i kao globalnu prijateljsku funkciju.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Šta od sledećeg važi za izvođenje na programskom jeziku C++?&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Objekti izvedene klase sadrže bezimeni podobjekat osnovne klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Preko objekata izvedene klase zaštićenim članovima osnovne klase se pristupa isto kao javnim članovima izvedene klase.&lt;br /&gt;
# Jezici koji podržavaju izvođenje se nazivaju objektno bazirani jezici.&lt;br /&gt;
# Modifikator &amp;lt;code&amp;gt;final&amp;lt;/code&amp;gt; se koristi za klasu koja nije izvedena ni iz jedne klase.&lt;br /&gt;
# Kada se neka klasa izvede iz klase X, potrebno je izvršiti ponovno prevođenje klase X.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class B {&lt;br /&gt;
public:&lt;br /&gt;
	B() { std::cout &amp;lt;&amp;lt; &amp;quot;b&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class X : virtual public B {&lt;br /&gt;
public:&lt;br /&gt;
	X() { std::cout &amp;lt;&amp;lt; &amp;quot;x&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class Y : virtual public B {&lt;br /&gt;
public:&lt;br /&gt;
	Y() { std::cout &amp;lt;&amp;lt; &amp;quot;y&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class Z : public X, public Y {&lt;br /&gt;
public:&lt;br /&gt;
	Z() { std::cout &amp;lt;&amp;lt; &amp;quot;z&amp;quot;; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	Z z;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan odgovor:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;bxyz&amp;lt;/span&amp;gt;&lt;br /&gt;
# bxbyz&lt;br /&gt;
# byxz&lt;br /&gt;
# bybxz&lt;br /&gt;
# Program se ne prevodi.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje u vezi operatora za dinamičku konverziju (&amp;lt;code&amp;gt;dynamic_cast&amp;lt;/code&amp;gt;) su tačne?&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator za dinamičku konverziju primenjen na referencu tipa osnovne klase pri neuspešnoj konverziji u referencu na izvedenu klasu baca izuzetak tipa &amp;lt;code&amp;gt;bad_cast&amp;lt;/code&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Operator za dinamičku konverziju se mora primenjivati za svaku konverziju naviše (&amp;lt;code&amp;gt;upcast&amp;lt;/code&amp;gt;) koja se vrši u vreme izvršenja programa.&lt;br /&gt;
# Operator za dinamičku konverziju se može primeniti na pokazivač ili referencu na objekat nepolimorfne osnovne klase.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Operator za dinamičku konverziju primenjen na pokazivač tipa osnovne klase vraća &amp;lt;code&amp;gt;nullptr&amp;lt;/code&amp;gt; ako konverzija u pokazivač tipa izvedene klase ne uspeva.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Operator za dinamičku konverziju garantuje da će se konverzija u vreme izvršenja pravilno izvršiti i da će objekat biti konvertovan u ciljni objekat.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Ako su &amp;lt;code&amp;gt;I1, I2, I3&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;I4&amp;lt;/code&amp;gt; klase izuzetaka i ako je u osnovnoj klasi &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; deklarisan metod:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
virtual void m() throw (I1, I2, I3):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
deklaracija metoda &amp;lt;code&amp;gt;m()&amp;lt;/code&amp;gt; u izvedenoj klasi &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt; može da bude:&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan ili više odgovora:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() noexcept:&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() throw ():&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() throw (I1, I2, I3):&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;void m() throw (I1):&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;void m() throw (I2, I4):&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
Ako je generička klasa definisana na sledeći način:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;class T&amp;gt; class K { void m(T t); };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
metod &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; može da bude definisan izvan klase &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; na sledeći način:&lt;br /&gt;
&lt;br /&gt;
Izaberite jedan odgovor:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;void K::m(T t) { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;template &amp;lt;class T&amp;gt; void K&amp;lt;T&amp;gt;::m(T t) { ... }&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;void K&amp;lt;T&amp;gt;::m(T t) { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kiclu</name></author>
	</entry>
</feed>