ОО1/Септембар 1 2025

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

Испит у септембарском 1 року 2025. године одржан је 18. септембра и трајао је 90 минута. Сваки задатак вреди по 5 поена.

1. задатак

Поставка

У неком прoграму обpaђуje се више инстанци бинарниx стабала коjа се састоjе од чворова у коjима су одређени подаци. Клијенти обраду траже за дато стабло. Постоjи више различитик врста обрада коjе се, између осталог, састоjе и од различитих редоследа обиласка стабла (preorder, inorder, postorder), при чему се у будућности могу додавати нови начини обраде. Начин обраде може се конфигурисати за сваку поjединачну инстанцу стабла. Осмислии класе, њихове атрибуте и релациjе и распоредити одговорности по тим класамa.

Решење

2. задатак

Поставка

Приказати како би следећи део програма био имплементиран на језику C++.

typedef struct {
   ListElem* next;
   T t;
}  ListElem;

void ListElem_init (ListElem* e, T t) { e->next=0; e->t=t; }
void ListElem_linkToPrev (ListElem* e, ListElem* prev) {
   if (prev) { e->next = prev->next; prev->next = e; }
}

Решење

3. задатак

Поставка

Прецизно објаснити шта је проблем у следећем делу програма:

char* readln () {
   static char buffer [256];
   int ch getchar(), i = 0;
   while (ch!=EOF && ch!='\n') {
      buffer[i++]=ch;
      ch = getchar();
   }
   buffer[i]='\0';
   return buffer;
}

Решење

Може се десити индексирање ван домена.

4. задатак

Поставка

Написати изразе којима се целобројна променљива i увећаваза 1 посредством варијабли x, y и z респективно.

int i=0, *x=&i, &y=i, *&z=x;

Решење

(*x)++;
y++;
(*z)++;

5. задатак

Поставка

Класу X опремити декларацијама (не и дефиницијама) подразумеваног конструктора, конструктора копије, оператора доделе копирањем, оператора доделе премештањем и виртуелног деструктора.

Решење

class X{
public:
   X() = default();
   X(const X&);
   X& operator =(const X&);
   X& operator =(X&&);
   virtual ~X();
}

6. задатак

Поставка

Решење