Софтуерно Инженерство
Loading...
+ Нов въпрос
Yulia avatar Yulia 1343 Точки

[Homework] C# Basics - C# за напреднали

Виждам, че още няма тема за домашното "C# за напреднали",  затова нека започна аз.

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

 

Problem 1. Fibonacci Numbers
Problem 2. Prime Checker
Problem 3. Primes in Given Range
Problem 4. Difference between Dates
Problem 5. Sorting Numbers
Problem 6. Longest Area in Array
Problem 7. Matrix of Palindromes

 

//TODO
Problem 8. * Longest Non-Decreasing Subsequence
Problem 9. Remove Names
Problem 10. Join Lists
Problem 11. Count of Letters
Problem 12. Count of Names
Problem 13. Average Load Time Calculator
Problem 14. Longest Word in a Text
Problem 15. Extract URLs from Text
Problem 16. * Counting a Word in a Text
Problem 17. * Perimeter and Area of Polygon

 

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

HPetrov avatar HPetrov 822 Точки

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

Problem 1: Fibonacci Numbers

Problem 2: Prime Checker

Problem 3: Primes in Given Range

Problem 4: Difference between Dates

Problem 5: Sorting Numbers

Problem 6: Longest Area in Array

Problem 7: Matrix of Polidromes

Problem 8: Longest Non-Decreasing Subsequence

Problem 9: Remove Names

Problem 10: Join Lists

Problem 11: Count of Letters

Problem 12: Count of Names

//TODO: Problem 13: Average Load Time Calculator

Problem 14: Longest Word in Text

Problem 15: Extract URLs from Text

Problem 16: Counting a Word in a Text

Problem 17: Perimeter and Area of Polygon

 

Надявам се решенията да са достатъчно пояснителни сами по себе си, но ако все пак има въпроси, shoot! 13-та задача не съм е решил още, понеже одарих на здрав камък и ще се радам ако някой предложи някакво решение :)

14
reivs avatar reivs 15 Точки

Здравей, ето по какъв метод аз реших задача 13( sorry че немога да ти покажа кода, но пиша от служебния комп.)

 - чета всеки ред и го записвам в List<strings[]> list

 - чета всеки един елемент от списъка с foreach( string [] item in list)

   и вземам item[2] - името на сайта

  => записвам всеки item[2] в нов списък List<string> sites - той ми пази имената на всички сайтове.

 - след това правя следното:

  Вземам всеки един сайт от списъка List<string> sites , търся го в List<strings[]> list ( ще ти трябват 2 вложени цикъла),

 когато открия съвпадени, записвам в един брояч че съм открил такъв елемент, а във втори сумирам времето, за може после да направя average = (number of times the element was found/sum of different times)

 - записвам това чудо в един последен списък List<string> final ( стринга който добавям има вида site +" "+"->"+average)

 - отпечатвам final и готово ;)

2
orlinov avatar orlinov 11 Точки

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

0
Panda avatar Panda 2 Точки

Здравей,

Въпреки и да е допълнителна задача (задача 16) мисля, че трябва да ти кажа че имаш грешка, защото когато пробвам втория, дългия примерен инпут ти излизат 4 намерени вместо 5. Пробвах да я реша преди това, но и моят пример е по същият начин. Ето го --> click.

0
Tr00peR avatar Tr00peR 569 Точки

Ето една 13та задача от мен, за първи път използвам речници и доста се помъчих докато стана :)

13-AverageLoadTime

3
ZvetanIG avatar ZvetanIG 925 Точки

Още едно решение на 13. Качвам го за да има различни варианти. В задачата съм използвал обекти.

http://pastebin.com/q3QVsNXU

0
externo avatar externo 119 Точки

Problem 1: Fibonacci Numbers

Problem 2: Prime Checker

Problem 3: Primes in Given Range

Problem 4: Difference between Dates

Problem 5: Sorting Numbers

Problem 6: Longest Area in Array

Problem 7: Matrix of Polidromes

Problem 8: Longest Non-Decreasing Subsequence - така и не разбрах какво се иска в условието и защо При вход 1 1 1 3 3 3 2 2 2 2   изходът НЕ трябва да е 1 1 1 2 2 2 2 . и пускам домашното без нея, нека някой ДА МИ ОБЯСНИ, ако има желание

Problem 9: Remove Names

Problem 10: Join Lists

Problem 11: Count of Letters

Problem 12: Count of Names

Problem 13: Average Load Calculator

Problem 14: Longest Word in Text

Problem 15: Extract URLs from Text

Problem 16: Counting a Word in a Text

Problem 17: Perimeter and Area of Polygon

8
arsoman avatar arsoman 419 Точки

Problem 13: Average Load Calculator

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

http://pastebin.com/G2ADRX2K

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

2
externo avatar externo 119 Точки

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

0
arsoman avatar arsoman 419 Точки

Да, идеята ти е много готина и съм я ползвал, признавам си! Продължавай все така...

0
RoYaL avatar RoYaL SoftUni Team Trainer 6845 Точки

Погледнах тази за датите - в условието може да имаш първоначална дата/ден по-голям от 2рия вход. Тогава трябва да извади дни с минус?

0
design.angelova avatar design.angelova 69 Точки

Да, излежда, че когато съм писала задачата ми се е сторило по логично да се проверява дали първата дата е по-ранна от втората въведена, за това и съм направила проверка. Но RoYaL е абсолютно прав и може да има минусов резултат. За това и кода би изглеждал така:

CorrectDifferenceBetweenDates

 

0
topalovr avatar topalovr 16 Точки

Здравейте,

Ако някой може да обясни по- нагледно и подробно отностно задача 17 - Perimeter and Area of Polygon, кое как се случва и най- вече, както е зададено по условие на чертежа в самата задача, че на мен нещо сметките не ми излизат в отговорите на задачата. 

0
HPetrov avatar HPetrov 822 Точки

Разцъкай демотата за класове от темата(последните 2 ако не се лъжа). Там ще разбереш как се намира разстоянието между 2 точки по координатите им. После из нета можеш да намериш как се намира лице и периметър на полигон. Забележи, че трябва да търсиш за периметър на вдлъбнат полигон. След това задачата ти е лесна. Въвеждаш координати, смяташ колко са ти дълги страните и така... :)

1
usmiwka80 avatar usmiwka80 9 Точки

Yulia при input: 3 и 6 на Problem 7. Matrix of Palindromes otuput: по задание е:

aaa aba aca ada aea afa

bbb bcb bdb beb bfb bgb

ccc cec cdc cfc cgc chc

А при теб е:

aaa aba aca ada aea afa

bbb bcb bdb beb bfb bgb

ccc  cdc cee cfc cgc chc

В последния ред cec и cdc са разместени.
0
Yulia avatar Yulia 1343 Точки

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

4
minkov.plamen avatar minkov.plamen 13 Точки

Здравейте, ето тук е моето решение на 8-ма задача "Longest Non-Decreasing Subsequence", 

link: http://pastebin.com/Mh9REB5y

0
externo avatar externo 119 Точки

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

0
topalovr avatar topalovr 16 Точки

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

1
externo avatar externo 119 Точки

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

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

0
topalovr avatar topalovr 16 Точки

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

0
georgimanov avatar georgimanov 107 Точки

Здравей,

Шеста задача според мен трябва да е с 2 звездички "**". Няколко часа се опитвах да я реша, докато накрая не се предадох и влязох във форума. Имай предвид, че не правиш проверка за дължина на елемента в масива и при

input:

2

Hello

SoftUni

output: Hello.

Прилагам (за съжаление) неавторско решение:

https://github.com/froddo/Software-University-HomeWorks/blob/master/C%23%20PART1%20HOMEWORK/CSharpAdvanced/LongestArea/LongestArray.cs

Благодаря за темата и късмет на изпита!

2
Nadia.Hristova avatar Nadia.Hristova 41 Точки

Здрасти,

а ето го и моето решение на задачата (цък) , малко по-кратко и без въпросния проблем :)

Поздрави

0