Професионална програма
Loading...
Simooo93 avatar Simooo93 81 Точки

[Homework] Advanced C# - Strings and Text Processing

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

 

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

Ето задачите: 

1. Reverse String;

2. String Length;

3. Count Substring Occurences;

4. Text Filter;

5. Unicode Characters

6. Palindromes

7. Letters Change Numbers

Ще съм благодарен, ако дадете някакво ревю за задачите. На 7-ма задача хващам 90 точки в judge-а, явно хвърля exception на първи тест, но не мога да разбера защо. 

Тагове:
3
Fundamentals Module 29/09/2015 14:15:03
bacuty avatar bacuty 55 Точки

https://github.com/VasilenaDragancheva/ExamSolutions

Ето моите решения на задачите от изпитите :) там е и 7ма.

Бих се радвала ако някой му се гледа да ме критикува... Понеже имам нужда от градивна критика за качество на кода :)

1
28/09/2015 16:49:26
kidroca avatar kidroca 117 Точки

Здравей, 

Понеже поръча критика относно качеството на кода, най - ярко впечетление ми направи следното (Става дума за 7ма задача от това домашо "Leters Change Numbers"):

if (letterBefore >= 'A' && letterBefore <= 'Z')
{
    currentSum = number / (-'A' + letterBefore + 1);
}
else if (letterBefore >= 'a' && letterBefore <= 'z')
{
    currentSum = number * (-'a' + letterBefore + 1);
}
if (letterAfter >= 'A' && letterAfter <= 'Z')
{
    currentSum -= (-'A' + letterAfter + 1);
}
else if (letterAfter >= 'a' && letterAfter <= 'z')
{
    currentSum += (-'a' + letterAfter + 1);
}

Няма място между първият и вторият if-else блок и на пръв поглед може да се объркаш че са един блок, за да не се получава така е прието след края на всеки блок (общо взето всичко което има { } - for, if, wile, method etc... ) от код да се оставя по един празен ред освен ако на следващия ред не се пада } - затварящата скоба на по - горен блок. (В случея else if-a е част от if блок-а и между тях не трябва да има място, краят на този блок е затварящата скоба на else if-a })

Следващото нещо е  -'A' + letterBefore + 1 това е равносилно на letterBefore -'A' + 1 , което се чете по - лесно.

Иначе като цяло имената са добре подбрани и лесно се разбира какво става

Отделно от това има някой папки в репозиторито ти които биха се радвали на друго име, като ArraySlider1, BinarySearch1 etc.

вместо "1" там трябва да има думи или две от които da става ясно по - какъв начин това е по различно от ArraySlider или BinarySearch, ако все пак не може да намериш по - подходящо име BinarySearchAlternative е по - добре.

Успех!

0
29/09/2015 00:02:21