Новинарски форум

Първо домашно от практикума на 7-ма група

Първо домашно от практикума на 7-ма група

by Никола Божинов -
Number of replies: 7

Здравейте,

Публикувано е първото домашно от практикума на 7-ма група. Срокът за предаването му е 2 седмици и можете да използвате на готово всички файлове създадени на упражнения. Домашното не е задължително, но може да ви донесе до 10 точки към крайната оценка от практикума.

Ако имате някакви въпроси по домашното задавайте ги в тази тема.

Поздрави,
Никола

In reply to Никола Божинов

Re: Първо домашно от практикума на 7-ма група

by Милена Монова -
Мили хора, не ми се компилира нищо от това което правихме на упражненията.. Страдам! При вас ок ли е?!

C:\Users\Bibi\Desktop\New folder\creature.o:creature.cpp||
 undefined reference to `DynamicArray::DynamicArray()'|


Дава ми същите грешки за всички функции в DynamicArray и Creature...


In reply to Милена Монова

Re: Първо домашно от практикума на 7-ма група

by Кристиян Пейчев -

Опитай се да сложиш всички cpp файлове в проекта си, ако работиш с някое IDE, ако не просто `g++ creature.cpp DynamicArray.cpp` компилира без проблеми и малко warnings.

In reply to Милена Монова

Re: Първо домашно от практикума на 7-ма група

by Никола Божинов -

Както колегата вече ти е отговорил трябва да си създадеш проект и да включиш всички файлове в него. Причината за това е, че в противен случай повечето среди за програмиране не правят връзката между .h файловете с декларациите и.cpp с имплементациите файловете, дори да имат еднакви имена.

Въпреки това, във файловете наистина имаше известни грешки, което е нормално когато много хора работят по един и същи файл. Качих актуализирана версия на всички файлове с поправени грешки. Сега всичко се компилира и работи, макар някой неща все още да се нуждаят от промени, сегашният вариант трябва да е достатъчен за домашното.

In reply to Никола Божинов

Re: Първо домашно от практикума на 7-ма група

by Здравко Андонов -
Може ли да обясните по тази функционалност:
  • Функция, която по зададен номер (индекс в масива) на същество връща указател към намиращ се в същото поле Item, ако има такъв или указател към null, ако няма. Върнатият Item, ако има такъв, той да се премахне от динамичния масив.


Ако се премахне елемента от динамичния масив указателя към него очевидно ще сочи към стойността на следващия елемент, който е бил в масива, просто защото така сме написали функцията del(). Единственото решение, за което се сещам е динамично да се създаде копие на предмета, който искаме да изтрием и след това да връщаме референция към копието. Това ли е начинът или има по-добра алтернатива?

In reply to Здравко Андонов

Re: Първо домашно от практикума на 7-ма група

by Никола Божинов -

Да, иска се точно копие на предмета, което да се върне чрез указател, като отговорност на извикващата функция е, ако не прехвърля копието към друга функция, да го унищожи.

За съжаление съм пропуснал при писането на описанието да го спомена, но точно такава е идеята. Вече коригирах описанието така, че да е ясно.

In reply to Никола Божинов

Re: Първо домашно от практикума на 7-ма група

by Симеон Стоев -

Искам да попитам в едно поле от картата не трябва ли да има само един обект от клас Item  или може да са произволен брой?

In reply to Симеон Стоев

Re: Първо домашно от практикума на 7-ма група

by Никола Божинов -
Може да са произволен брой, функцията която добавя Item-и избира случайни координати и единственото изискване е полето да е проходимо. Другата функция, която проверява дали в полето на дадено същество има Item е достатъчно да връща само първият намерен такъв. Никоя от двете не е необходимо да проверява има ли други Item-и в съответното поле.