Loading...
KatyaMarincheva avatar KatyaMarincheva 572 Точки

[Exam Preparation] Advanced C# тема за обмяна на идеи и решения по задачите

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

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

Това съм решила аз до момента, решенията дават 100 точки в judge, но определено биха могли да се оптимизират:

Advanced C# Exam Problems Practice

01. Plus-Remove

02. String-Matrix-Rotation

03. Extract-Hyperlinks

04. Query-Mess

05. Semantic-HTML

06. X-Removal

07. Vladko's-Notebook

08. Text-Gravity

09. Uppercase-Words

10. Clearing-Commands

10. Clearing-Commands-2

11. Little-John

12. Phone-Numbers

13. Sum-Of-All-Values

14. Matrix-Shuffle

15. The-Numbers

16. Parachute

17. Biggest-Table-Row

18. PIN-Validation

19. Chat-Logger

20. OhMyGirl

21. IT-Village

Exam Preparation Problems from Homeworks and Labs

26. Prime-Factorization

27. Sieve-Of-Eratosthenes

28. Insertion-Sort

29. Binary-Search

30. Pyramid

31. Pythagorean-Numbers

32. Lego-Blocks

33. Stuck-Numbers

34. Terrorists-Win

35. To-The-Stars!

36. Activity-Tracker

37. Letters-Change-Numbers

38. Use-Your-Chains-Buddy

40. Disk

41. Paint-Ball

42. Couples-Frequency

43. Labyrinth-Dash

44. Office-Stuff

45. Debugging-Be-Positive

46. Debugging-Instruction-Set

28
C# Advanced 22/06/2015 14:47:15
moholovka avatar moholovka 169 Точки

String-Matrix Rotation

И двете ти решения съдържат три метода за въртене. В моето използвам само един метод и го извиквам определен брой пъти с цикъл, за 90 един път, 180 два пъти... - https://github.com/IvanMladenov/ExamMayPreparation/tree/master/ExamPreparation/MatrixRotation

1
KatyaMarincheva avatar KatyaMarincheva 572 Точки

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

0
28/05/2015 00:01:44
Filkolev avatar Filkolev 4482 Точки

Докато преправях задачите и аз ги решавах, да споделя решенията си. По азбучен ред са, понеже са ми в един солюшън:

Activity Tracker

Biggest Table Row

Binary Search

Chat Logger - тук може да се поизчисти, но не ми се занимава

Extract Hyperlinks

IT Village

Matrix Shuffle

O, My Girl!

Parachute

Phone Numbers

PIN Validation

Prime Factorization

Pyramid

Query Mess

Semantic HTML

Sieve Of Eratosthenes

Stuck Numbers

Sum Of All Values

Terrorists Win

Text Gravity

The Numbers - изпитна задача решена на 2 реда с фунцкионално програмиране и форматиране на изхода

Uppercase Words

Use Your Chains Buddy

XRemoval

12
KatyaMarincheva avatar KatyaMarincheva 572 Точки

@nstanevski

Това не го бях открила, - наистина прави заместването много по-интелигентно!

Благодаря :)

0
enevlogiev avatar enevlogiev 1168 Точки

Много добра идея за тема ; )

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

01. Plus-Remove - имам въпрос; на 23-ти ред, когато условието на if се пренася на няколко реда, каква е конвенцията за форматирането ?

05. SemanticHTML - нищо оригинално, за съжаление

07. Vladko's Notebook - ще ми се да я съкратя повече, някой ако има идеи .. (без dynamic : ) )

14. Matrix Shuffle - стана малко дълга : /

18. PIN Validation

3
28/05/2015 14:20:11
RoYaL avatar RoYaL Trainer 6849 Точки

Такава каквато си я написал. Режеш до някой от логическите оператори и отиваш на нов ред. Затваряш нормалната скоба на последния ред. На нов ред къдрава скоба

Като се избягва да се пренасят на нов ред групови логики.

Например това е ок

if (x > 0 &&

    y < 5)

{

}

Но това не е:

if ((x > 0 &&

    y < 5) ||

    z == 12)

{

}

Това по-скоро би трябвало да изглежда:

if ((x > 0 && y < 5) ||

    z == 12)

{

}

2
enevlogiev avatar enevlogiev 1168 Точки

Благодаря : )

0
Filkolev avatar Filkolev 4482 Точки

По принцип операторите се слагат на новия ред:

if (x == 0

    && y < 0)

{

    // code

}

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

1
28/05/2015 13:24:25
Filkolev avatar Filkolev 4482 Точки

Ще пиша в тази тема, понеже темата за подготовките е по-скоро за трите проведени подотовки, пък коментарът ми е като цяло свързан с наличните материали за подготовка за изпита.

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

За допълнителна подготовка може да изрешите изпитите по джава, които нямат нужда от преработки, както и да се готвите в BGCoder с изпитите от C# 2 на Телерик (първите 3 задачи, 4-та и 5-та може да не ги мъчите).

Задачите, които са преработени, съм подбирал по свое усмотрение. Ако намерите задача от изпитите по JS/PHP Basics, която бихте искали да качим в състезанието за C#, кажете коя е и от кой изпит и ще се постарая да я кача в разумен срок.

2
Innos avatar Innos 419 Точки

Fil хвърли малко светлина за 13та задача Sum Of All Numbers, това условие какво означава, ако резултата е целочислен трябва ли да се печата или не?
Print at the console the sum of all values (only floating-point numbers with dot as a separator are considered valid)

Гърмяха ми тестове, затова се разбърниках  в тестовете и ето какво намерих, тест 6 резултата е целочислено число 12 и отговора го иска така. Ако горното условие е вярно значи да се печата резултата само ако е floating point тоя тест е грешен и следващия също.


Тест 5, това ".01" за валидно Value зачита ли се?

Едит: Прегледах PHP условието и там този ред го няма изобщо.

0
29/05/2015 21:16:16
Filkolev avatar Filkolev 4482 Точки

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

0
explos1on avatar explos1on 23 Точки

Някой може ли да ми даде насока за тази задача:  https://judge.softuni.bg/Contests/Practice/Index/30#2

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

Ето го моят код: http://pastebin.com/7hFGJE5r  -   Благодаря предварително :)

0
pataroka avatar pataroka 319 Точки

Абе, Кате, извинявай за тъпия въпрос, ама как точно ги номерираш тия задачи и от 12 скачаш на 26, а после пропускаш и 39, а номер 3 нямаш и прочее...

Питам, щот да не се мина да реша някоя задача по-малко :)

Фил, дали е проблем да сложиш всички преработени за C# задачи в джъдж състезанието за подготовка, че да им следим бройката някак. Щот кат го отворих видях, че има такива дет вече съм решавал, а пък гледам ти си решил повече от тези в списъка и така...

0
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Здравей Пламене :)

Ти си будната съвест на човечеството :)

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

Иначе 1-21 съм запазила номерата за Advanced C# Exam Problems Practice, и част от тях още не съм ги решила.

после почвам от 26 защото очаквам и още да намеря из judge за решаване. Номер 39 нямам пак по същата причина, съставях solution-а с решените задачи в полусънно състояние - колко са общо задачите - не знам :)

-1
Filkolev avatar Filkolev 4482 Точки

Всичко, което е преработено, е качено в състезанието, 21 задачи. Има някои  задачи от JS/PHP, които са по-кофти като изход и прецених, че няма нужда да ги преработвам. Ако имаш конкретни задачи предвид, които да се добавят, казвай.

1
pataroka avatar pataroka 319 Точки

Имах предвид, че не са всички на едно място в Advanced C# Exam Problems Practice.

Дали е удобно да ги натъпчеш всички там.

0
moholovka avatar moholovka 169 Точки

На SumOfAllValues си търсих стойностите с lookbehind и lookahead и го докарах до 90 точки. Преглеждайки тестовете и решението на Катя (мерси) видях защо става така (мачваше ми едно число повече), но според мен не е коректно спрямо условието: "Print at the console the sum of ALL values (only floating-point numbers with dot as a separator are considered valid) in the text string, between a start key and an end key.

Тест 4

gosho34gosho не трябва ли да е също към резултатът?

Ако съм прав променете теста, ако не съм ще се радвам да ми обясните къде ми е грешката при търсенето.

1
29/05/2015 01:36:54
pataroka avatar pataroka 319 Точки

Не може да е към резултата, защото се овърлапват ключовете по този начин. Няма как ключа веднъж да е затварящ и след това да е и отварящ.  Имаш:

wrethtfjhdgfsgosho123goshoasghjmhgfbdvcgosho12gosho34gosho2.34gosho

123 + 12 + 2.34 = 137.34

Частен случай, в който имената на ключовете съвпадат.

Търси се регекс от тоя тип: ^([A-Za-z_]+)(?=\d).*(?<=\d)([A-Za-z_]+)$

и после още един такъв group1 + "(.*?)" + group2

сигурно може и един да се направи, ама аз си го направих с два.

П.П. Абе, що колор кодинга не бачка?

1
29/05/2015 02:10:46
moholovka avatar moholovka 169 Точки

Разбрах, благодаря! Помислих си го след като написах поста, но бях загасил вече.

0
NikolayUzunov avatar NikolayUzunov 7 Точки

Аз се чудя след като по условие трябва да се мачват само числа с запетая защо трябва да се хващат и 123 и 12 ? Попринцип нямат десетична запетая .

1
LoKSET avatar LoKSET 160 Точки

http://pastebin.com/3PrFUHD6

Use Your Chains, Buddy

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

Добавям и Semantic HTML - http://pastebin.com/gB1gQ7sG

Пипкава е, но не е трудна.

0
30/05/2015 14:38:07
Filkolev avatar Filkolev 4482 Точки

Делегатите са просто методи, приемат някакви параметри и връщат евентуално някакви стойности с return. Ще се учат по ООП, съвсем скоро ще им дойде времето.

0
LoKSET avatar LoKSET 160 Точки

OK, но в случая параметъра не е ясно какъв е, просто си написвам някакъв Match - Replace метода ли му го подава?

0
Filkolev avatar Filkolev 4482 Точки

Да. Това може да се напише и с ламбда функция, по-удобно ще е според мен.

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