Софтуерно Инженерство
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

 

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

Mart1n_Vatev avatar Mart1n_Vatev 5 Точки

Ето от мен едно авторско решение на Problem 6. Longest Area in Array. Тази задача и според мен трябва да е със * .

0
ViValDam avatar ViValDam 23 Точки

Ето това е най-правилното решение на задача 4, което не изисква допълнителни настройки на вашият компютър :

 

static void Main()
{
Console.WriteLine("First date : ");
string text = Console.ReadLine();
string format = "d.M.yyyy";
DateTime firstDate = DateTime.ParseExact(text, format, CultureInfo.InvariantCulture);
Console.WriteLine("Second date : ");
text = Console.ReadLine();
DateTime secondDate = DateTime.ParseExact(text, format, CultureInfo.InvariantCulture);
TimeSpan span = secondDate - firstDate;
double daysInBetween = Math.Abs(span.TotalDays);
Console.WriteLine("Days in between: {0}", daysInBetween);
}

 

Най- отгоре трябва да се прибави след

using System;
using System.Globalization;

 

Ако желаете по-подробна информация , можете да си прочетете тук - в книгата на Наков - най-отдолу на темата :

http://www.introprogramming.info/english-intro-csharp-book/read-online/chapter-13-strings-and-text-processing/

0
ViValDam avatar ViValDam 23 Точки
Формата може да се запише и като, string format = "d.MМ.yyyy"; ,както е зададено условието на конкректната задачата е достатъчен и така, но месеца ви трябва да се въвежда винаги като двуцифрено число - 01, 02, 03 и т.н. , докато , string format = "d.M.yyyy"; работи и за едноцифренно и за двуцифрено въведени месеци. Годината може да е само в този формат - уууу . Формат - уу - работи само за двуцифренно въведени месеци.
1
Stoyan.Stoyanov avatar Stoyan.Stoyanov 96 Точки

Здравейте,

 

Взаимствах основното решение на "Problem 7. Matrix of Palindromes" от Yulia, и го разширих, така че по-точно да отговаря на условието на задачата - а именно, броят редове и колони да са написани на един ред. Ето го и моя вариант:  

Problem 7. Matrix of Palindromes

0
ViValDam avatar ViValDam 23 Точки

Аз  правя все още 5 smile

0
Mart1n_Vatev avatar Mart1n_Vatev 5 Точки

Ето и от  мен едно правилно решение(работи и за 2та Example коректно, за разлика от повечето решения на тази задача) на  Problem 17. * Perimeter and Area of Polygon .

0
Vasilsk avatar Vasilsk 109 Точки

Прилагам едно много просто решение на задача 10:

http://pastebin.com/LS34UpEK

На ред 18 -> firstList.Union(secondList);  Обединява първия списък с втория чрез командата Union. Готиното при нея е,че маха повтарящите се елементи.

6
GoShow avatar GoShow 595 Точки

Ето затова трябва да се публикуват решения от всички.Едва ли щях да попадна някъде на друго подобно решение!Браво!!!Интересно как е като скорост, дали е добро за списъци с много елементи, но в случая работи перфектно!!5 вота!Ама не мога, само един :)

0
georgi950 avatar georgi950 65 Точки

Ето и от мен малко по-нестандартни решения на някои от задачите:

1. Fibonacci

2. PrimeNumbers

3. PrimesInGivenRange

4. DifferenceBetweenDates

5. SortingNumbers

6. LongestAreaInArray

7. MatrixOfPalindromes

9. RemoveNames

10. JoinLists

11. CountOfLetters

12. CountOfNames

13. AverageLoadTimeCalculator

14. LongestWordInText

15. ExtractURLsFromText

16. CountingWordInText

Не всички решения работят по най-бързият и ефективен начин, но са максимално кратки. Дано са полезни на някого.

Поздрави!

6
vladeto87 avatar vladeto87 9 Точки

Ето го моето решение на задача 16 Counting a word in a text.http://pastebin.com/kNxfiyji

пробвам с примерите след домашното, въвеждам softuni, после копирам дългия текст и го слагам в конзолата. Връща ми отговор 4, а в отговорите пише 5. Веднага си помислих, че отговорът е сгрешен или моята програма нещо не работи както трябва. Оказа се, че като копирам дългия текст в конзолата не се копира целия текст, а само колкото побере първия ред. Какво трябва да направя, за да побере целия текст?

0
Karlie avatar Karlie 438 Точки

След дъъълго лутане в нета, намерих отговор на проблема:

using System.IO;

Console.SetIn(new StreamReader(Console.OpenStandardInput(8192)));

Слагаш този ред в началото на кода и побира целия текст. Пример: Задача 16 - Counting Word In Text .

 

Задачата съм я решила с Regex, като че ли не е най-простото, но поне е най-краткото решение, което виждам дотук.

2
orlinov avatar orlinov 11 Точки

Ето един вариант за решение на 13 задача.

http://pastebin.com/w21UvJGH

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

0
georgimanov avatar georgimanov 107 Точки

Като ви гледам с тези Dictionary направо се хващам за главата колко много не знам :)

http://pastebin.com/Msf65Ge8

Прилагам Ви решението за задача 11. Кратко, просто и мисля, че достатъчно ясно :)

1
Dekameron avatar Dekameron 488 Точки

Не работи правилно колега :)

Когато i и j са еднакви ти брои едно име 2 пъти, също така има още проверки, който трябва да направиш.

Успех! smile

 

4
georgimanov avatar georgimanov 107 Точки
http://pastebin.com/LRBfiYGe Мисля, че сега е ОК. Благодаря за check-a
0