Loading...
achobanov avatar achobanov -4 Точки

Проблеми с подготовката за изпит.

Здравейте колеги,

 пиша за да разбера дали и други хора имат проблеми с подготовката за изпит. Визирам примерните изпити от февруари и март 2015 в Judge. Конкретен пример, с който да опиша положението е изпит Март 2015, задача 3. Погледнах я - казах си лесно - написах я, ползвайки регекс и получавам 40/100. Бъхтя се, мъча се, променям регекса, изчиствам каквото има да се изчисти - 40/100. Викам си - добрe, знам, че тоя изпит Божо го решава в exam prep-а на 13.04, така че. дай да видя. Качен е грешен сорс код, затова отварям видеото и гледам. Логиката на Божо е на 100% същата, аз съм направил 2 метода повече и ги контролирам от един switch, а той просто има if{}else.

Линк към Гит: https://github.com/achobanov/Java-exam-march/tree/master/src/exam

P03BasicMarkupLanguage.java  - моето решение (40/100)

P03Bojo.java - решението на Божо (изненада).

Другото нещо което ме фрапира е, че когато пусна неговя код в Judge, той ми дава изтекло време на всички тестове ( пробвах 7-8 пъти ). 

На всичкото отгоре в неговия код има една глупост, която съм изкоментирал. При така написан код, ако регекса не мачне нищо ще вкараме програмата в безран цикъл while() -> continue, защото не подаваме нова стойност на 'input'. Обаче ако махна този код Judge ми гърми на всеки тест. Пробвах нещата и локално си работи. 

Може ли някой да каже - аз ли нещо не разбирам, judge ли не е в час. Моля прегледайте кода на двете решения и ако това на Божо трябва да работи, защото моето получава 40/100 при еднаква логика. Аз сега ще взема тестовете от архива и ще си ги пробвам всички ръчно и ще ъпдейтна поста с резултатите.

Post-testing: Разбрах за какво става въпрос. За решението на Божо нямам никаква представа как работи. Проблемът при мен произлизаше от поредното неуточнено условие. Copy-paste от условието: "You should not output empty lines. For the content tag to be considered non-empty, it must contain at least one character.".  Тук изрично се казва "Не принтирай празни редове". Подчертавам редове. Да, в следващата част се казва, че content tag-a не е празен ако има поне един знак в него ( а whitespace си е знак ). Но в крайна сметка ако тага има само whitespace това пак ще резултира в празен ред и следователно НЕ трябва да се принтира. Моля кажете ми ако бъркам логически. Вица за програмиста, хляба и яйцата трябва да го знаете.. Не знам само на мен ли ми се струват много не-доуточнени повечето условия за изпит. Давам друг пример с Problem 2 Parking system. Там изобщо не е обяснено правилно какво трябва да направи колата, ако мястото и е заето. Аз лично смятам тези недоуточнения за доста неправилни, защото единствения начин да ги уловиш е да анализираш тестовете и резултатите в Judge.  

 

 

Тагове:
-2
Java Advanced 22/04/2016 15:43:30
Lusien.GG avatar Lusien.GG 66 Точки

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

-1
achobanov avatar achobanov -4 Точки

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

0
Lusien.GG avatar Lusien.GG 66 Точки

Заглавието, като начало не е темата на въпроса ти, въпроса ти е свързан с конкретна задача, Judge системата и с условията на задачите. Ти си го кръстил проблем с подготовка за изпит...

0
achobanov avatar achobanov -4 Точки

Не е само до тази задача. И на други места, както съм посочил срещам проблеми. Освен това и Judge се дуржи странно.

1
Filkolev avatar Filkolev 4482 Точки

Скоро решавах втората задача и според мен е ясно какво се очаква ако мястото е заето - проверяваш отляво, после отдясно и паркираш на първото свободно. Ако редът е зает изцяло пишеш съобщение.

3
achobanov avatar achobanov -4 Точки

Щом си го разбрал - браво за теб, но нека ти обясня какво имам предвид. Според мен има два пътя по които това може да се тълкува.

Условието е: "A car can enter from any cell of the first column and then decides to go to a specific spot. If that spot is not free, the car searches for the closest free spot on the same row. If all the cells on that specific row are used, the car cannot park and leaves. If two free cells are located at the same distance from the initial parking spot, the cell which is closer to the entrance is preferred."

Вариант 1) Колата не знае дали мястото е заето, докато стигне до там. Стига и мястото е заето.Тогава търси най-близкото място до себе си. Ако има две места на еднакво растояние тя паркира на по-близкото до входа. Така пътят на колата трябва да бъде всички квадратчета до паркомястото ( заетото) включително и после да измине още малко докато си намери място.

Вариант 2) Колата от влизането си знае, че мястото и е заето и трябва да намери най-близкото до себе си място на същия ред като заетото място. 

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

Изобщо не коментирам, че X и Y са разменени в Judge. В условието са както трябва x, y. А в Judge стойностите на стестовете са първо y, после x.

-1
22/04/2016 22:40:15
StaVykoV avatar StaVykoV 169 Точки

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

1
22/04/2016 23:36:45
Filkolev avatar Filkolev 4482 Точки

Защо реши, че x и y са разменени? Ако имаше такова нещо доста хора щяха да забележат и да имат проблеми. Кое според теб е x и кое y? Защото по условието "Y is never on the first column" аз съдя, че y е колоната.

Условието кое място трябва да се заеме е доста ясно - това е мястото с подадените координати; ако то е заето, търси се най-близкото до него свободно място ("If that spot is not free, the car searches for the closest free spot on the same row"); ако има две места на реда на еднакво разстояние от желаното място, взима се това отляво, понеже е по-близо до изхода ("If two free cells are located at the same distance from the initial parking spot, the cell which is closer to the entrance is preferred. "). Ок, разбирам само по първата част да се объркаш и да решиш, че ако мястото е заето търсиш най-близкото до изхода (а не до желаното място), но това няма как да се навърже логически с второто условие - ако две свободни места са на еднакво разстояние (няма как да има две такива места ако следваме сбърканата логика).

Единственото, което наистина не е изрично казано, е че се брои само разстоянието от входната точка до мястото, където в крайна сметка е паркирала колата. Но за тази цел има нулев тест, от който ясно се вижда, че колата не обикаля напред-назад, иначе няма как вторият изход да е 2, трябваше да е 4, колкото и на третия (да отиде до желаното място са 3, след това да се върне обратно +1).

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

0
stela.iv avatar stela.iv 115 Точки

Аз присъствах и на двата изпита, които споменаваш ( на C#)blush, мога да твърдя, че условията са ясни. Въпрос на практика и подготовка е, да решиш задачите, не да търсиш причина в условието.

1
22/04/2016 17:32:18
achobanov avatar achobanov -4 Точки

Не се имам за неподготвен. Колкото до практитка - колко практика за 2 месеца? Решил съм всяко едно домашно, плюс допълнителните задачи, участвал съм в екипен проект ( на практика сам си написах играта ). Така, че мисля че съм окей като практика. Basics съм го взел със 5.78. Не ми е идеята да се хваля, просто казввам, че не съм тук да мрънкам как света ми е крив, а да кажа, че според мен тези задачи могат да са една идея по-добри като описание. Между другото на моя изпит за Basics през лятото миналата година имаше две грешки в условието. Намирал съм и други в примерни изпити от домашно. А и отговори ми - как ще навреди да са малко по-точно описани нещата? В basics имаше доста полезна част от приерния output под задачата. Там се обясняваше с два три реда, защто така се случват нещата. Как ще навреди това?

2
stela.iv avatar stela.iv 115 Точки

Не е необходимо да приемаш това което съм написала като критика. Не съм споменала дори, че трябва до този момент да имаш, кой знае какъв опит. Опитвам се да ти кажа, че точно споменатите от теб условия, са си коректни. Аз имам по-слаб резултат на изпитите, от теб. Браво! 

И аз съм имала проблеми с условията на дадени задачи и не твърдя, че няма объркани и недоизмислени такива, но точно тези, които си споменал са ясни и точни.

Опитвам се да ти кажа, че просто трябват повече упражнения и повече отделено време..

P.S. Downvote-a, няма да помогне на никой ;)

Успех!

1
22/04/2016 23:18:41
achobanov avatar achobanov -4 Точки

Еми както не помага никой - не помага и на мен. Махнах твоя защото отговора ти е в добър дуь. Но виж какво съм написал под някои от другите коментари и ми кажи пак, че нещата не могат да бъдат по-ясно дефинирани. Знам, че могат защото не се имам за глупак, а все пак се чудих 3 часа кое. как, какво и защо.

0
StaVykoV avatar StaVykoV 169 Точки

2-ра задача е наистина описана точно и ясно, както е описано и какво точно се прави, ако мястото е заето.

3-та задача - да, white space - a е character и трябва да се изкарва ня изхода, въпреки, че изглежда през нашия поглед като празен ред. Най - малкото заема място в рамта и ако минеш с мишката върху реда има нещо което можеш да копираш и пейстнеш примерно. Не виждам нищо неясно в условията....

2
22/04/2016 17:54:56
achobanov avatar achobanov -4 Точки

Не е нужно да ми обясняваш, че за компютъра whitespace е е чар. Естествено, че заема място в рамта. Ама условията са предвидени за четене от нас, а не компютър. И аз не знам за теб, ама като видя една празна стая (тоест стая в която няма хора, но пък има въздух примерно) не си казвам ха ето пълна с въздух стая, а си казвам "тази стая е празна. Лекцията ми е горе", примерно. Но всъщност това е не е празна стая защото има въздух ( както разбрахме ), а може да има и мебели и т.н. Не съм направил този пост за да hate-вам, така че не мисля, че заслужавам hate от ваша страна. Просто ми се иска нещата да са малко по-добре дефинирани.

-3
StaVykoV avatar StaVykoV 169 Точки

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

1
achobanov avatar achobanov -4 Точки

Е ти явно не знаеш вица за програмиста. Този философски вече разговор трябва да се води лице в лице. През форума не става. Сори ако нещо съм интерпретирал грешно и съм ззсегнал някой. Колкото до проблема ми с 2ра задача - Вариант 1) не е верен, защото растоянието което колата минава е различно.

-1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.