Zap 23.01.2008 14:00

Pokročilé vlastnosti jazyka C++, jejich použití pro objektové programování. Dědičnost, virtuální metody, Dynamická alokace. Šablony, generické programování, kompilační polymorfismus. Výjimky. Objektové knihovny, uživatelské kontejnery a iterátory, návrhové vzory. Nízkoúrovňové implementační techniky a konstrukce.

Zap 23.01.2008 14:00

Příspěvekod WindowLicker » 28. 1. 2008 11:23

Na terminu bylo 5 lidi. Nikdo nedal!!! Zadavaji p. Simek. Zadani viz priloha.
DSC00129.JPG
Zadani
Prvni odesel po 10min. Dalsi dva v prubehu se slovy ze by potrebovali tak 3 dny ne 3 hodiny. Preposledni odevzdaval neco ke konci. Jak sem zaslechl tak to bylo nejak C-like, ale pravdepodobne to chodilo spravne. P .Simek ocenil kus udelane prace a odevzdavajici letel jak dobre nakopla kocka. Po konci casoveho limitu se me P. Simek zeptal jestli to mam objektove? Ja, ze ne. Tak at, ze jdu. Ale byl to joke(hahahaha). Chtel se na to kouknout, ale nemel sem hotove trideni nejtezsi cast ulohy (3/4 prace). Tak jsem s mnaucenim odesel taky. Problem je v tom ze produktu muzu byt hodne vic nez se vleze do pameti: klicem je id a pak s libovolnou kombinaci popis vyrobku; trida nebezpocnosti; bez popisu; trvanlivost atd... Dva identicke vyrobky lisici se jen v popisu jsou dva jine vyrobky.
Kdy nekdo skilled vedel jak na to... do 3 hodin a nejak hezky C++&OOP-like. Na zacatku padali terminy technikus Dedicnost, polymorfizmus, STL atd :-)
WindowLicker
Matfyz(ák|ačka) level I
 
Příspěvky: 4
Registrován: 13. 2. 2006 13:16

Re: Zap 23.01.2008 14:00

Příspěvekod Tacoud » 29. 1. 2008 08:27

Já bych to řešil tak, že bych si ty záznamy házel do vectoru (nebo podobného kontejneru). Potom je to třídění skoro zadarmo, stačí zavolat fci sort (z <algorithm>) a hodit jí nějakou vlastní fci na porovnání dvou prvků. Ta potom setřídí ten kontejner, jak je potřeba.
Co se týče polymorfismu, asi by se dal použít (jestli jsem správně počítal, je tam 6 různých typů záznamu). Takže možná mít nějakou základní třídu, ve které jsou položky společné všem typům záznamu a od ní odvodit potomky, kteří se něčím liší.
Nejpracnější mi na tomhle přijde parsování samotného zdrojáku.

Mimochodem, nevypadal ten zadávající nějak takhle ?
Spojaři všech zemí, proletujte se!
Uživatelský avatar
Tacoud
Donátor
Donátor
 
Příspěvky: 53
Registrován: 16. 9. 2005 07:38
Bydliště: Mladá Boleslav

Re: Zap 23.01.2008 14:00

Příspěvekod nardew » 29. 1. 2008 14:40

Tacoud píše:Já bych to řešil tak, že bych si ty záznamy házel do vectoru (nebo podobného kontejneru).

sice toto nie je moja pisomka, ale v zadani je napisane ze vstup je nekonecny => nevojde sa ti do pamati => nemozes si to vsetko nahadzat do kontajneru a zotriedit si to.
Uživatelský avatar
nardew
Matfyz(ák|ačka) level II
 
Příspěvky: 59
Registrován: 2. 11. 2006 10:15
Bydliště: Otava - Jizni Mesto
Typ studia: Informatika Bc.

Re: Zap 23.01.2008 14:00

Příspěvekod WindowLicker » 29. 1. 2008 14:53

Jo s pameti je problem. Moje reseni bylo ze sem udelal tridy Zaznam a ruzne sem dedil. A chtel sem to hazat do vectoru, ale pak se mi libila vic mapa ale nedodelal sem :(. Nekonecnost vstupu je ze zadani - ja meditoval nad slevanim ale bohuzel nikam to nevedlo. Myslim ze zadani neni uplne korektni :(
No mozna je pan zadavajici nejaka reikarnace pana docenta.
WindowLicker
Matfyz(ák|ačka) level I
 
Příspěvky: 4
Registrován: 13. 2. 2006 13:16

Re: Zap 23.01.2008 14:00

Příspěvekod hippies » 29. 1. 2008 18:29

ja chapu neomezene velikosti jako nutnost dynamicke alokace, .. kdyz nedovoli alokovat == uz ani swapovat neni kam == stejne mas problem, .. jako o tom, ze cilem bylo naimplementovat slevaci trideni silne pochybuju.
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
Uživatelský avatar
hippies
Admin(ka) level I
 
Příspěvky: 990
Registrován: 29. 9. 2004 11:46
Bydliště: Mladá Boleslav
Typ studia: Informatika Mgr.
Login do SIS: procj4am

Re: Zap 23.01.2008 14:00

Příspěvekod Jakobicek » 4. 2. 2008 21:09

hippies má pravdu neomezená délka vstupu, znamená, že prostě nemůžete mít pole konstantní velikosti v paměti...

jinak zadání je to ošklivé... parsování souboru je vždy nepříjemné/ vůbec nejlepší je vstup prostě to nějak zprasit... opravdu nepřemýšlejte jak udělat vstup hezký / možná nejlepší ho skoro vůbec neřešit... prostě poznám jestli je to zaměstnanec nebo položka prodeje nebo nákupu/ty hrůzy jako třída nebezpečnosti nebo cože to tam vlastně je bych neřešil...prostě vrazil do nějakého stringu další v té položce...ten může být koneckonců klidně i prázdný u první varianty/

dědičnost tu asi není to pravé ořechové /todle by mě rozhodně nenapadlo ve stresu zápočtové písemky/... rozpoznat co je co na vstupu... pak stačí jeden vektor na prodej jeden na nákup a třetí pro zaměstnance... setřídit a vypsat co je potřeba, pak není tak složité

RADA1
pokud bídný a mrzký cvičící u zápočtového testu prohlásí něco o řešení chybného vstupu ignorujte ho...

RADA2
pokud by vás během zápočtového testu napadlo odejít rozhodně neodcházejte

RADA3
pokud bídný a mrzký cvičící zadá zdánlivě nesplnitelné zadání zkuste alespoň část vyřešit ostatní na tom nebudou o mnoho lépe...

termín 0/5 viva docent zlo... :S brrr
Minsk will lead with blade and sword Boo will sort out the details
Jakobicek
Matfyz(ák|ačka) level II
 
Příspěvky: 53
Registrován: 26. 1. 2006 12:42
Bydliště: Praha... VSE/MATFYZ

Re: Zap 23.01.2008 14:00

Příspěvekod mivo » 2. 11. 2016 09:22

No, koukam na to po X letech, ale myslim, ze reseni je jedine - zadani cist od konce. Prvni krok bych volil cist vstup, zjistit, co to je za vetu - pozna se to podle toho, jestli je mnozstvi zaporne - pak to je prodej, kladne - pak to je nakup, nebo to jsou pismena, pak to je vyplata. Tim se (nekonecny) vstup uz da rozlozit konecny pocet souboru - podle druhu i podle pobocek. Zaroven si muzu v pameti urcit nejdrazsi zamestnance - jsou jen 3. Da se take predpokladat, ze pocet polozek a pocet pobocek je omezeny. Da se tedy snad vyrobit (v pameti) tabulka pobocka x polozka a kazdou nactenou vetu pricist do tabulky podle souradnic. Z ni pak vybrat pozadovane hodnoty neni problem. Kdyby to neslo - neceho bylo moc, to by byla uz opravdu prasarna, slo by tabulku udelat v souborech - nikde neni receno, ze se vystupni soubor (po rozdeleni na pobocky) nesmi znovu nacist a nebo dodatecne setridit.
mivo
 


Zpět na PRG032 Objektově orientované programování

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník