Loading...
quickben avatar quickben 966 Точки

[Exam] C# Basics - 25.07.2014 - въпроси, мнения, задачи

Честито на колегите които са си постигнали целта, на останалите - "ще се видим на поправката", че и аз не постигнах резултата в който се целих и смятам да се явя на поправката да си постигна "таргета".

Също така предлагам всякакви въпроси/мнения относно изпита да се помещават в тази тема за да не спамим излишно форума.

На печелившите честито на останалите Наздраве! :)

Тагове:
7
Programming Basics
dim4o avatar dim4o 288 Точки

При мен изпита протече странно. Бях се панирал нещо и запецнах на първата задача - не ми даваше 100/100. Реших да мина напред и реших 2,3,4 за около час и половина. После се върнах да дореша първата. И накрая реших 5-та за около час и нещо. Като си направих сметката видях, че съм циклил на първа неоправдано много време. Доста ненормална работа. Задачата е наистина лека, но нещо май адреналина ми беше впочече и решавах задачите на автопилот. В крайна сметка въпреки паниката се справих за по-малко време от средното за което правя една тема - водя си статистика за всички времена.


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


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


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


-Добре е и човек да си води статистика и да почне от задачата, която му е най-лесна. При мен статистически най-лесната задача е 3-та - решавам я средно за 18 мин. Много важен е старта да е стабилен, за да даде увереност. Аз обаче напревих грешка и ги почнах по ред на номерата и устрема ми беше париран още в началото.


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

2
lazarov.pl avatar lazarov.pl 27 Точки

За първата група незнам, но за втората казаха да се свали и стартира Sentinel клиента.

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

И при нас споменаха да го стартираме. Задачите са на лист не за да ни затрудняват, а за да не се изнасят условията на задачите преди да е свършил и втория изпит вечерта. Който иска да преписва негова си работа. Само че няма никакъв смисъл. Рано или късно се разбира кой е преписвал. Най-лошото е когато те хванат на интервю за работа... Тогава всеки преписвал ще разбере, че е било по-добре да научи материала, вместо да преписва. А и може да бъде хванат на изпита, че преписва и евентуално да бъде изгонен от SoftUni.

0
lazarov.pl avatar lazarov.pl 27 Точки

Според мен е малко трудно с преписване да минеш целия курс на обучение и да се добереш до интервю за работа.А и едва ли има такива хора тук. По-скоро тези, които визираш учат в други добре известни университети :)

1
boyanov avatar boyanov 65 Точки

А за печелившите няма ли още едно наздраве ? :)

2
Filkolev avatar Filkolev 4482 Точки

Не знам какво ме прихвана следизпитно да решавам задачи днес, но преди малко приключих със задачите от вечерния изпит. 

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

  • 1-ва: вечерният вариант е малко по-лесна;
  • 2-ра: еднакви;
  • 3-та: вечерният вариант е малко по-лесна;
  • 4-та: сутрешният вариант е много по-лесна;
  • 5-та: сутрешният вариант е малко по-лесна.

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

Ето решенията ми:

01. Electricity

02. Odd and Even Jumps

03. House with a Window

04. Nakovs Matching

05. Change Even Bits

 

2
quickben avatar quickben 966 Точки

Определено си прав, че е субективно(лично усещане) това коя задача е "по-трудна", примерно на мен 5-та задача от вечерната група ми е по-лесна от колкото тази която беше на сутрешната група, и мисля точно обратното за 4-та задача :) Като цяло и двата изпита имаха еднаква трудност според мен. :)

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

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

0
quickben avatar quickben 966 Точки

Аз ги изреших всичките(без 2) и определено имах проблеми на изпита. Дали от притеснение или не достатъчно добра подготовка, най-вероятно и двете, но това е друга тема. Имам почти месец да се готвя по Java и да решавам задачи по C# :)

0
slavek avatar slavek 51 Точки

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

Ето решението на Panda Scotland Flag от мен. А това е на House with a Window. И двете са с методи но така или иначе решенията са малко грозновати. 

Бях със сутрешната група и изкарах само 30 точки от една задача но това е положението. Подготвям се за следващия изпит и така. 

Успех от мен!

0
RumenVasilev avatar RumenVasilev 103 Точки

Колега супер е, че се опитваш да използваш методи, но бих ти препоръчал специално при задачите за рисуване(третите на изпитите) да използваш new string, честно казано далеч по- лесно и подредено. Разбира се, има и много по- "умни" варианти, но като за начало в името на прагматизма и високите резултати, с new string е най- лесно.

Специално за panda scotland flag в случая е важно кога слагаш условието от Z да минава на А, точно това мисля, че обърка много хора. Аз лично не се заблудих, защото в началото страшно честно подреждах грешно кода и нищо не работеше. Почти съм убеден, че и на изпита август 3- тата задача ще е с подводни камъни. Изрешавай повече подобни на тази, дори от изпитите в телерик мисля, че имаше подобни такива, но там са четвъртите с рисуване. Освен това има от изпита май месец една задача с един диск, която също е една идея по- сложна. Успех!

1
boyanov avatar boyanov 65 Точки

Моите решения и те не са красиви :\

Четвърта и Пета от вечерната група.

0
Filkolev avatar Filkolev 4482 Точки

Да, 4-та ти е малко усложнена. На мен много ми помогна методът Substring(). Ако не си се занимавал да разглеждаш постваните решения дотук, ето моето - ЦЪК.

Идеята е сравнително проста. С два цикъла разделям входните низове на поднизове със Substring(), а теглата на поднизовете смятам в метод. От там нататък нещата са елементарни - да се сметне абсолютна стойност на общото тегло по дадената формула, да се провери дали е по-малка от границата и да се изпечата резултатът.

1
Filkolev avatar Filkolev 4482 Точки

Имам коментар по 5-та задача от вечерния изпит. 

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

Събмитнах си кода, където всички числа са ми int, очаквайки резултат от порядъка 50-80 точки. Знаех, че са ми верни нещата, но поне 1-2 теста трябваше да изгърмят. Вместо това получих 100 точки.

Сега разгледах тестовете и се оказва, че никъде там не се слага L по-голямо от максимума на int. Т.е. това е от редките случаи, когато невярна програма дава максимален резултат. Според мен поне в един от тестовете е нормално да се набутат максималните позволени стойности, т.е. да се тестват програмите на предела. Вместо това минах метър с тази задача, а е възможно и други хора да са взели точки без да са внимавали в условието.

1
boyanov avatar boyanov 65 Точки

Аз явно за нищо се занимавах да го оправям преди да събмитна в Judge :)

0
a.angelov avatar a.angelov 1316 Точки

А аз дори го сложих BigInteger за всеки случай :)))

Но сега зацепих, че няма смисъл, понеже няма как да стане по-голямо числото от ulong...

0
dim4o avatar dim4o 288 Точки

И на мен ми се е случвало подобно нещо. Едната такава задача беше "Bit Shifting". За нея е дадено числата да са от тип ulong:

  • All numbers in the input will be between 0 and 18,446,744,073,709,551,615.

Аз работя с long и кода ми получава 100/100, въпреки че за стойности над 9223372036854775807 изтрещява.

Другата задача при която съм минавал с грешен код е "Bit Roller". Ето в този пост съм описал къде според мен е бъга.

0
a.angelov avatar a.angelov 1316 Точки

Ето и моите решения от вечерния изпит:

01. Electricity

02. OddAndEvenJumps

03. HouseWithAWindow

04. NakovsMatching

05. ChangeEvenBits

 

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

0
Filkolev avatar Filkolev 4482 Точки

За сметките в 4-та задача не е нужно да се ползва по-широк тип, int върши работа. Мисля, че пуснах и един калкулатор да проверя дали съм прав; просто предвид ограниченията на входа няма как теглото да препълни int.

Разбира се на изпитни задачи по-добре да се застраховаш, отколкото да се чудиш после какво не е наред. 

1
a.angelov avatar a.angelov 1316 Точки

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

0
Filkolev avatar Filkolev 4482 Точки

Още нещо ми хрумна за тази 5-та задача от вечерния вариант.

Реално всяко число, което ни е подадено, променя четните битове - 0, 2, 4 и т.н. Няма особен смисъл да се минават всички числа в цикъл. Достатъчно е да вземем най-голямото от подадените числа, да му сметнем броя на битовете, и само с него да променяме L. 

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

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

 

Edit: Проработи, ето промененият код - ЦЪК

Естествено, не съм променял типа на L, който трябва да е ulong, стои си int.

1
a.angelov avatar a.angelov 1316 Точки

Добра идея за оптимизиране на кода, браво!

0
boyanov avatar boyanov 65 Точки

За това не се бях сетил. Много интересно хрумване :)

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Колеги, вие не видяхте ли моете решение, в което снощи реализирах точно тази идея? :)

2
micro3x avatar micro3x 135 Точки

Честито на всички справили се с изпита.

Много искам да споделя моето решение на задачата "05. Change Even Bits".

Не, че е нещо супер готино, просто въпреки, че нулевия тест 4 гърми - решението дава 100 точки tongue-out

Нулев тест №4 (Грешен отговор)

Резултатът от нулевите тестове не се включва към крайния резултат.
Expected output:
1
1

Your output:
0
0

Решението - 100т.
0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Ето ти го коригирано решението, така че да минава и този тест. Направих промяна в метода CountBits като добавих проверка дали number == 0.

05. Change Even Bits (micro3x)

0
Filkolev avatar Filkolev 4482 Точки

Това е предполагам, защото ако някое от числата е 0, в самото условие се казва, че това се брои за 1 бит, а при теб май го смята за 0.

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

Както посочих в предния пост, единственото съществено число от онези N на брой числа, които променят L, е най-голямото от тях. Т.е. фактът, че 0-та има 1 бит играе роля само когато всичките N числа са 0, т.е. няма по-голямо число.

По всичко изглежда, че някой си е оставил ръцете при правенето на тестовете :D

 

P.S. Ако искаш и нулевия тест да ти тръгне, направи в метода проверка дали числото е 0 и ако да- да върне 1 като брой битове. Аз така го направих.

0
micro3x avatar micro3x 135 Точки

Хехехе...

Мерси... за решението на нулевия тест...

Аз просто исках да покажа едно решение при което взимаш 100 а нулевия тест гърми cool

 

Истината е, че по време на изпита още преди да кача решението в системата видях, че този тест гърми. Въпреки това реших да я пробвам колко точки ще даде :) за мое удивление даде 100 т. laughing

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