Loading...
a_rusenov avatar a_rusenov 1103 Точки

[Exam] C# Basics - 19-20 декември - задачи, решения и тестове

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

Задачите от C# изпитите, проведени на 19 и 20 декември, са качени в страниците на курса на октомври и ноември. Състезанията също така са отворени за практика в Judge системата:

Класирания и информация дали сте приети може да очаквате най-късно до 26-27 декември, като допълнително ще получите имейл.

Въпроси относно изпита, задачите или нещо друго може да задавате в тази тема.

Весели празници от екипа на СофтУни! :)

15
Programming Basics 22/12/2014 00:23:41
Petya avatar Petya 2461 Точки
Best Answer

Оценките на всички, явили се на приемния изпит на 19 и на 20 декември са вече в профилите ви. Пратени са мейли. Честито на всики приети! На останалите - можете да се пробвате пак като се запишете за новия подготвителен курс, стартиращ от 10 януари.

И не забравяйте - СофтУни ще е на нов адрес от 5 януари - на ул. Тинтява 15-17. Повече можете да прочетете тук.

Весели празници!

7
mimzi98 avatar mimzi98 2 Точки

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

0
21/12/2014 19:40:26
nakov avatar nakov SoftUni Team Trainer 5295 Точки

По-добре изчакай първо класирането. Следващ изпит може би ще има февруари. Ако преценим, може да направим още един по-рано.

7
nick.genov avatar nick.genov 104 Точки

Благодаря! По-рано днес щях да пускам тема, за да питам "Къде са условията на задачите?", но добре, че не пуснах :)

 

Весели празници!

 

0
nick.genov avatar nick.genov 104 Точки

Моето решение на задача 4 на изпита от 20-ти Декември е това: http://pastebin.com/ZAhMbkK1 Получавам 75 точки. Когато сравня моят резултат на тестове 4 и 5 (при тях имам 0 точки) с този в Judge системата, единствената разлика е в един интервал накрая. Аз махам всички интервали накрая на резултата, защото (цитирам условието):

"Note: The empty cells in the table after the text should NOT be printed."

Е аз не ги принтирам, специално ползвам TrimEnd(); за стринга на резултата. Може би бъркам някоя дреболия, но така е, като решаваш задачи късно вечер :) 

Моля за пояснение.

ПП: Открих още нещо интересно:

Резултатът, който моето решение дава при тест 3 е следният: "   e   (" - без кавичките. В Judge резултатът е същия, само че с два интервала накрая: "   e   (  " На този тест имам максимум точки, т.е. минава... Не виждам логика да минава, а другите тестове да не минават. 

 

 

 

0
22/12/2014 00:06:37
Filkolev avatar Filkolev 4482 Точки

Аз реших задачата без да се съобразявам с това условие. Джъдж тримва автоматично празните места в края. Провери с някакъв diff checker, не би трябвало спейсовете накрая да правят проблем.

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

W l  th s p o lem i   o na be a r de.NULNULNUL

Това, което остава накрая, явно Джъджа го приема за различно от спейс и не го тримва. Има две възможни решения:

  • Принтираш спейсовете независимо, че условието казва друго;
  • Принтираш символ по символ и с брояч следиш дали не си стигнал края на низа, при което спираш.

Пробвай и ако не е от това провери тестовете, които гърмят, с някакъв инструмент за сравняване на текст. 

2
22/12/2014 00:07:45
nick.genov avatar nick.genov 104 Точки

Здравей, Филип!

Както писах, вече проверих с инструмент за разлика - http://text-compare.com На тестовете с 0 точки разликата е 1 интервал накрая:)

Както и да е, оправих проблема. Ако не беше писал щях да вляза в диалог сам със себе си :)

Трим въобще не трябва. Проблема ми беше в тълкуванието на условието. Интервалите НЕ СА "empty cells"! За празни се считат всички клетки, в които нищо не е имало през цялото време, те са с дефолтната стойност за char, т.е. '\0'!

Пипнах два реда в кода и се оправи, 100/100. Ето с корекцията: http://pastebin.com/1xxffpXY

 

Благодаря за отговора.

 

 

0
22/12/2014 00:25:40
RoYaL avatar RoYaL Trainer 6849 Точки

Ами то зависи как си запълнил матрицата, няма как по условие да се знае какъв ще е подходът на хората, за да се напише нещо по-конкретно. В моето решения бяха empty cells  === empty spaces:

            int currentSymbol = 0;
            var text = input.ToCharArray ();
            for (var i = 0; i < matrix.Length; i++) {
                matrix [i] = new char[cols];
                for (var j = 0; j < matrix[i].Length; j++) {
                    if (currentSymbol >= text.Length) {
                        matrix [i] [j] = ' ';
                    } else {
                        matrix [i] [j] = text [currentSymbol];
                        currentSymbol++;
                    }
                }
            }

В този случай, ако judge-а не беше настроен на "Checker: Trim" нямаше да са верни резулатите без TrimEnd()

0
enevlogiev avatar enevlogiev 1168 Точки

Здравейте и от мен,
аз също реших да се пробвам с 4-та задача от 20-те декември, (Text Bombardment)
Пробвах едно простичко решение - http://pastebin.com/2vMnzpHx

Смятам, че е лесно разбираемо и кратичко (~50 реда), само че получавам 50 точки.
Някой би ли могъл да погледне и евентуално да ме насочи към грешката в логиката,
аз ще се пробвам да намеря решението сам.
Благодаря.

0
RoYaL avatar RoYaL Trainer 6849 Точки

Мисля, че попадаш в един от edge case-овете, където една колона може да бъде бомбардирана два пъти. Т.е. никъде не пише, че редът, който ти пращат bombs (1, 3, 7, 9 в първия пример) е unique. Представи си, че е (1, 1, 7, 9) :)

if (matrix[j, bomb] != ' ') тази проверка в else-а ще ти даде още 25 точки. Останалите 25 предполагам са като при колегата по-горе.

1
nick.genov avatar nick.genov 104 Точки

В constraints пише това: "A column will not be bombed more than once." т.е. колоната не може да се повтаря.

1
22/12/2014 19:57:16
enevlogiev avatar enevlogiev 1168 Точки

Благодаря, с две поправки вече дава макс точки. Това е финалният вариант - http://pastebin.com/7TH86E64
ако някой се интересува : )
Забелязах, че логиката ми и по пълненето на матрицата, и по бомбардировките, е много подобна на тази на nick.genov,
интересно ми е какви други начини за решаване има.

1
jumparo avatar jumparo 26 Точки

Здравейте,а бонус точки за домашни и за лабовете последно ще се дават ли ?

0
Filkolev avatar Filkolev 4482 Точки

При формирането на крайната оценка се взима всичко предвид.

Домашните (за C# Basics) оказват влияние на оценката само за записаните присъствено в ниво 0.

Бонусите от лабовете се прибавят към резултата от изпита - т.е. ако имаш максимум на изпита лабовете не влияят по никакъв начин на оценката.

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