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

Практикум.Проекти

Практикум.Проекти

от Боян Киров -
Number of replies: 34

Здравейте,

качихме условията на проектите, както и задание в което да качвате работите си. Решихме всеки да има право свободно да избере проекта който иска да реализира. Надяваме се да работите съвестно (и самостоятелно) по избраният от вас проект, за да не си губим времето/разваляме настроението по време на защитата. Ако имате въпроси чувствайте се свободни да питате във форума или на живо.

Успешна работа !

In reply to Боян Киров

Re: Практикум.Проекти

от Георги Стайков -

Може ли да използваме реализациите на стек,опашка,свързан списък и т.н  от moodle  ? 

In reply to Боян Киров

Re: Практикум.Проекти

от Йосиф Цветков -

Какво се разбира под "задънени улици" в задачата "Карта на град" ?

In reply to Йосиф Цветков

Re: Практикум.Проекти

от Трифон Трифонов -

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

In reply to Боян Киров

Re: Практикум.Проекти

от Васил Тодоров -

Здравейте, имам въпрос относно проекта:

Информационна система, базирана на идеално балансирано двоично
наредено дърво

по тази точка:

Прехвърляне на записите на двоично нареденото дърво във
текстов файл.

Има ли значение какъв е формата на записите? Тоест трябва ли да е във формата (корен (ляво поддърво) (дясно поддърво)), или може примерно да се подредят по азбучен ред.

Също така и за четенето от файл - има ли някакъв специален формат, или просто отделни записи на студенти един след друг без наредба?

In reply to Васил Тодоров

Re: Практикум.Проекти

от Боян Киров -

Здравей,

Има ли значение какъв е формата на записите? Тоест трябва ли да е във формата (корен (ляво поддърво) (дясно поддърво)), или може примерно да се подредят по азбучен ред.

Може да ги запишеш в какъвто ред сметнеш за най-подходящ (предполагам някое от стандартните обхождания на дърво ще са ти най-удобни). Имай предвид обаче че след това, когато ги четеш ще трябва отново да се подредят в дървото ;)

Също така и за четенето от файл - има ли някакъв специален формат, или просто отделни записи на студенти един след друг без наредба?

Може да използваш какъвто прецениш текстови формат. Ако желаеш може да прочетеш за някой стандартен XML или JSON. Едно опростено JSON-образно би било следното представяне на два обекта:
{prop11:value11,prop21:value21}
{prop21:value22,prop22:value22}

In reply to Боян Киров

Re: Практикум.Проекти

от Владимир Начев -

Здравейте!

Относно проекта за "Информационната система" е казано, че телефонния номер е цяло число ( задължава ли ни да използаваме  целочислен тип?) - това значи ли, че не може да има телефони от вида 08123456789, т.е. този телефонен номер реално ще бъде записан като 8123456789? 

In reply to Владимир Начев

Re: Практикум.Проекти

от Боян Киров -

Здравей,

Може да приемеш че щом в условието изрично е указано че телефнонният номер е цяло число, то няма нужда да очакваш че ще получиш 008123 като данни за телефон. Числата нямат водещи нули.

In reply to Боян Киров

Re: Практикум.Проекти

от Марио Даскалов -

Въпроса ми е към задачата с картата на град. В задачата се казва, че върховете се именуват - това значи ли че, върховете могат да се представят като низове, т.е. да не са само с числа.Вторият ми въпрос е относно теглата на ребрата - какви стойности могат да приемат те - само цели числа ли?

 

In reply to Марио Даскалов

Re: Практикум.Проекти

от Боян Киров -

Здравей,

Не мисля че е необходимо да имплементираш именоване на върховете чрез низове. Фокусът на задачата е другаде. Все пак ще е добър бонус и ако решиш може да го направиш.
Относно теглата на ребрата - не би трябвало да има особено значение за практическото решение. Най-чисто от твоя страна би било да направиш съответният клас темплейтен.

In reply to Боян Киров

Re: Практикум.Проекти

от Росен Рачев -

За IML какво е очакваното поведение при застъпване на тагове от вида:
<tag1> <tag2> </tag1> </tag2>

In reply to Росен Рачев

Re: Практикум.Проекти

от Боян Киров -

Ами изглежда ми като да трябва да даде грешка.

In reply to Боян Киров

Re: Практикум.Проекти

от Росен Рачев -

А ако имам:

<trim>such<tb>tabulation<\trim>

tab-a override-ва ли trim?

Според мен да, но не е упоменато в условието.

In reply to Росен Рачев

Re: Практикум.Проекти

от Стефан Фотев -

по-интересно е как hex override-ва oct... в моята версия <hex>23<oct>44</oct>3</hex> си върви чисто... тоест <hex>23543</hex> и връща 5BF7 няма override и прочее

In reply to Стефан Фотев

Re: Практикум.Проекти

от Росен Рачев -

<hex>23<oct>44</oct>3</hex> мисля че трябва да действа като това:

<hex>23</hex><oct>44</oct><hex>3</hex> --> 17543

Същото мисля че трябва да е и за <tb> и <trim>.

In reply to Росен Рачев

Re: Практикум.Проекти

от Боян Киров -

Прав си и за hex и oct

За tb и trim случая е интересен :) Така както предлагаш е ок.

In reply to Боян Киров

Re: Практикум.Проекти

от Стефан Фотев -

Ok... предполагам същото важи и за <nl>

 

In reply to Боян Киров

Re: Практикум.Проекти

от Владимир Начев -

Здравейте!

Имам един административен въпрос.

Вече излезна разпределението с изпитите и там е записана дата за КН - 2 февруари, а срока за предаване на проект тук в мудъл също е 2 февруари 23:55 . Понеже там не е много ясно записано, май става въпрос само за първи поток. За нас кога ще е защитата?

In reply to Владимир Начев

Re: Практикум.Проекти

от Боян Киров -

Здравей,

Скоро ще запазим зала и обявим дата за защитата (след 2-ри февруари ще е). Защитата не е обвързана с изпита по основния предмет. Също така ако имате някакви преференции - споделяйте.

In reply to Боян Киров

Re: Практикум.Проекти

от Георги Стайков -

Аз имам въпрос относно последната точка от проекта  "Йерархия от контейнери"

-Всеки контейнер се състои от определен брой item-и. Да се
сортират във възходящ ред item-ите в хетерогенния списък.
Item-ите трябва да бъдат сортирани във всеки от контейнерите и
в целия списък така, че при обхождане да се получи сортирана
редица.

Може ли някакво по-пълно обяснение и конкретен подходящ пример за това как точно трябва да се сортират и какви случаи трябва да се покриват ? Като например ако имам списък с 1ви елемент стек с елементи 1 3 5 7 9 и 2ри елемент опашка с елементи 2 4 6 8 . При обхождане ще се получи 1 3 5 7 9 2 4 6 8 .  В този случаи трябва да променя обхождането или да прехвърлям елементи от опашката (2рия елемент) в стека (1вия елемент) и обратното, докато не се получи в стека 1 2 3 4 , а в опашката 5 6 7 8 9 ? 

In reply to Георги Стайков

Re: Практикум.Проекти

от Боян Киров -
Ето един пример:
 
3
1 4 52
5 8 9 11 2
2 15 23
 
Вътрешно представяне в yourHeterogeneousList
стек -> 52,4,1
опашка -> 2,5,8,9,11
списък -> 23,15,2
 
iterartor = yourHeterogeneousList.iterator();
iterator.next() -> 1
iterator.next() -> 2
iterator.next() -> 2
iterator.next() -> 4
iterator.next() -> 5
iterator.next() -> 8
...
като за да има смисъл изборът на "контейнер" е добре да е случаен. Итераторът на всяка стъпка по подходящ начин избира следващият елемент.
In reply to Боян Киров

Re: Практикум.Проекти

от Веселин Иванов -

А как достъпваме елементите на контейнерите след като незнаем контейнер X от какъв тип е? Например за филтрирането трябва да проверим за всеки елемент на всеки контейнер дали отговаря на някакво условие.

Също по точката:

 Да се напише функция, която проверява дали в контейнер се
среща елемент, отговарящ на дадено условие, като условието е
дефинирано като typedef bool (*condition)(T const&);
Функцията трябва ли да проверява всеки контейнер или се подава индекс на контейнер, в който всеки елемент се проверява докато не се намери елемент отговарящ на условието?
 И ако трябва да проверявам всеки контейнер, трябва ли да върна контейнера, в който е намерен елемент отговарящ на условието?

In reply to Веселин Иванов

Re: Практикум.Проекти

от Трифон Трифонов -

Здравей, отговарям последователно на въпросите ти:

А как достъпваме елементите на контейнерите след като незнаем контейнер X от какъв тип е?

Това го учихме миналия семестър :) Явно трябва да имаш някаква функция с едно и също име, която работи по различен начин за всеки тип контейнер, в зависимост от неговата организация.

Например за филтрирането трябва да проверим за всеки елемент на всеки контейнер дали отговаря на някакво условие.

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

Също по точката:

 Да се напише функция, която проверява дали в контейнер се
среща елемент, отговарящ на дадено условие, като условието е
дефинирано като typedef bool (*condition)(T const&);
Функцията трябва ли да проверява всеки контейнер или се подава индекс на контейнер, в който всеки елемент се проверява докато не се намери елемент отговарящ на условието?

Функцията трябва да проверява конкретен контейнер. Може да се подава както решиш: с индекс, указател, псевдоним и т.н.

In reply to Трифон Трифонов

Re: Практикум.Проекти

от Веселин Иванов -

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

In reply to Боян Киров

Re: Практикум.Проекти

от Ралица Цанова -

Здравейте,

аз имам въпрос относно симулацията на опашка в банка.Как по-точно се има в предвид,че трябва да постъпват клиентите?Докато постъпват клиентите трябва едновременно с това да се гледа кой може да ги обслужи или предварително се избира кой клиент кога ще дойде на някакъв рандом принцип и после се извършва обслужване(т.е още от началото да се прецени кой клиент кога идва,а после се и гледа за колко време ще е обслужен)?

In reply to Ралица Цанова

Re: Практикум.Проекти

от Боян Киров -

Това е част от имплементирането на "симулацията". И по двата посочени от теб начина би трябвало да е възможно.

В единият случай изглежда искаш да симулираш "по време", в другия "по клиенти".

In reply to Боян Киров

Re: Практикум.Проекти

от Стефан Фотев -

Относно проекта IML....

Ако някой злобен трол въведе следния текст:

<toupper>Тъй като <hex>17</hex><a и 22>a следва, че числото a е в интервала (11,22)</toupper>

то програмата се очаква да го преработи до:

ТЪЙ КАТО 11< A И 22>А СЛЕДВА, ЧЕ ЧИСЛОТО А Е В ИНТЕРВАЛА (11,22)

...как програмата трябва да знае, че <a и 22> е част от текста, а не външен за езика таг и как uppercase-ва кирилица?

In reply to Стефан Фотев

Re: Практикум.Проекти

от Боян Киров -

В конкретния пример програмата ти трябва да изведе грешка: <a и 22> - не е tag от езика.

В IML (както и доста други meta-езици) обикновено има "служебни" символи, чието използване не е позволено в явен вид. В задачата не е предвидено да се реализира поддръжка на специални символи(или последователности), които да се интерпретират (например &lt; -> < , &gt; -> > и т.н) - ако желаеш може да го направиш :)

как uppercase-ва кирилица?
Може да приемеш че езика поддържа само латински символи присъстващи в ASCII таблицата. Всички не-буквени символи трябва да останат същите когато се uppercase-нат.

In reply to Боян Киров

Re: Практикум.Проекти

от Милица Борисова -

Здравейте,
Имам въпрос относно проекта MySQL - при SELECT командата и записването на избраните редове в нов файл, този нов файл името му как се избира - генерирано е от програмата или е възможна и помощ от потребителя?

 

In reply to Милица Борисова

Re: Практикум.Проекти

от Боян Киров -

Не мисля че е от особено голямо значение. Може би ще е по-удобно да се генерира файл SelectN.txt (N номер на SELECT заявка) в който на първия ред има самата заявка, и след това резултатите от нея.

In reply to Боян Киров

Re: Практикум.Проекти

от Борис Якимов -

Здравейте, ако съм си преработил и подобрил доста проекта след предаването му на 2-ри февруари, има ли начин това да ми даде повече проценти, особено в моето положение (което е доста лошо, ако се гледа предадения на 2-ри проект)?

In reply to Борис Якимов

Re: Практикум.Проекти

от Трифон Трифонов -

Здравей, Борис,

Правилата са еднакви за всички, крайният срок беше ясно обявен. Ако на защитата ти бъде зададен въпрос за някаква малка промяна по проекта, която вече се направил в преработената версия, тогава това може да ти донесе точки.

Поздрави,
  Т. Трифонов