Четверг, 28 Марта 2024, 20:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Программирование .NET » Помощь опытных C# программистов начинающим (Задачки от опытных программистов новичкам)
Помощь опытных C# программистов начинающим
backatom1Дата: Вторник, 10 Февраля 2015, 06:31 | Сообщение # 1
был не раз
Сейчас нет на сайте
Доброго времени суток всем! Я начинающий программист(самоучка), изучаю C#, и для закрепления материала, нужна практика. то есть какие нибудь задачки по C#. И вот исходя из этого я решил создать эту тему.

Было бы не плохо если опытные C# программисты давали тут, простые и средней сложности задачки(в первое время конечно), а те кому нужен опыт решали бы эти задачи и ответы тоже оставляли бы здесь. Желательно чтоб решения выкладывали все, они были бы неплохими учебными материалами для тех кто бы не смог решить самостоятельно задачку, ну конечно же желательно чтобы код был прокомментирован.

Все кому нужны задачки с различными вариантами решений, давайте попросим помощи у опытных программистов.
Помогите нам пожалуйста! Заранее спасибо!

Думаю этот пост будет полезен многим smile

P. S. Просьба не называть меня плохими словами, я же новичок, и прошу от вас понимания и снисхождения. sad

Добавлено (10 февраля 2015, 06:31)
---------------------------------------------
Я немного неправильно сформулировал, задачки могут кидать не только опытные программисты но и все участники, и сразу же с ответом.
А опытные программисты иногда заглядывали сюда и давали советы по решению.

По началу желательно консольные программы.

VinchensooДата: Вторник, 10 Февраля 2015, 08:09 | Сообщение # 2
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Таких материалов куча на студенческих форумах, зачем это на геймдев форуме?

KamiRoninДата: Вторник, 10 Февраля 2015, 10:37 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Цитата Vinchensoo ()
зачем это на геймдев форуме

например, в Unity используется c#. развивать навыки программирование на нем - это развивать навыки геймдева. поддерживаю тему - новичкам геймдева будет полезно по максимуму, опытным (у кого нету звездной болезни и 28 часов в сутки занятости..) - возможность подсобить сообществу в лице новичков..

конечно в нэте есть все и можно вообще во всех областях обойтись без форумов, читай себе книжки, смотри видеоуроки и будет тебе все, что нужно.
так?!
по моему мнению - форум для того и существует, чтобы была своя форма (на уровне живого общения) усваивать материал.
___________________________________________________________

имхо, задачи нужно при выкладывании обозначать: по специфике (акценты или тема или инструментарий реализации) и уровню сложности (от 1 до 20, например).
тогда "ученик" сможет выбрать по своему уровню еще на стадии прочтения. вернуться к задаче, когда повысит уровень.
ну и можно добавлять третий параметр - свободный, ну там -- рамки решения ("только функционалом класса string", "для Unity3D") или -- подсказка ("делегаты, эвенты, подписка"), предлагаемая форма решения ("консольное приложение", "веб приложение" и тп) и тд.
решения предлагаю выкладывать под спойлеры!! чтобы не засоряли внешний вид и не были сразу открыты при чтении задачи начинающим (от соблазна сразу подсмотреть в решение smile )..
Например:
Специфика: классы, разработка иерархии.
Уровень: 7 (из 20);
Задача: ......
___________________________________________________________

вот первая:
Специфика: диалоговый режим консоли.
Уровень: 3-5, оптимальное время реализации - 1-2 часа.
Дополнительно: отработка навыков разработки логических цепочек и оптимизации кода.
Задача #KR1: написать консольное приложение получающее ввод пользователя, выявляющее некоторые ключевые элементы (слова, знаки, цифры) и выводящие шуточную "реакцию" программы в виде текста. организовать процесс в диалоговом режиме (строка запрос, строка ответ, "столбиком").


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.


Сообщение отредактировал KamiRonin - Вторник, 10 Февраля 2015, 10:46
backatom1Дата: Среда, 11 Февраля 2015, 10:31 | Сообщение # 4
был не раз
Сейчас нет на сайте
KamiRonin, спасибо большое за поддержку и понимание, и огромное спасибо за идею!!! smile
Я надеюсь у этой темы будет будущее и польза!!! smile
Спасибо за задачку, постараюсь решить, хоть и приступая к практике почему то я теряюсь, а читая теорию вроде все понятно sad

Добавлено (11 февраля 2015, 10:31)
---------------------------------------------
Здравствуйте Vinchensoo, может подкинете пару ссылок с хорошими студенческими форумами, а то я не смог найти толковых.
Заранее спасибо! smile

FirstДата: Среда, 11 Февраля 2015, 11:01 | Сообщение # 5
Уолтер Брайт
Сейчас нет на сайте
Знаешь что есть по-настоящему хорошим опытом?? Это тетрис. Напиши примитивный и простой, можно и без графики. С его реализацией ты многое поймешь
backatom1Дата: Среда, 11 Февраля 2015, 12:11 | Сообщение # 6
был не раз
Сейчас нет на сайте
First, да я бы с удовольствием, но я то пока простые консольные задачки с трудом решаю, вот и создал эту тему, чтобы опыта набраться и может помощи в понимании всего что связанно с программированием, и понимать код других участников которые решат задачки раньше, а если сам не смогу решить то на основе этих решений уже самому дойти до решения smile

Добавлено (11 февраля 2015, 12:10)
---------------------------------------------
Прошу прощения за предыдущее сообщение, получилось "масло масляное".

Добавлено (11 февраля 2015, 12:11)
---------------------------------------------
First, если поможете с чего начать и в которую сторону идти буду премного вам благодарен smile

FirstДата: Среда, 11 Февраля 2015, 13:33 | Сообщение # 7
Уолтер Брайт
Сейчас нет на сайте
backatom1, тогда попробуй сделать консольный калькулятор на 4 действия (+ - * /), но так, что бы при входе, у человека был выбор какое действие он хочет выполнить, а потом ввести два числа через энтер, после выдается результат и в новой строке опять - вопрос, какое действие вы хотите выполнить математическое.
backatom1Дата: Четверг, 12 Февраля 2015, 09:58 | Сообщение # 8
был не раз
Сейчас нет на сайте
First, попробую, спасибо smile

Щас сижу над задачкой KamiRonin, и никак не пойму как делается поиск в строке, может кто подскажет sad

Добавлено (12 февраля 2015, 09:42)
---------------------------------------------
KamiRonin, я вот не смог толком решить задачку, первую вашу, не получается никак, и что то никто другой не выложил своего решения. sad

Вот примерно как я думаю, но этот код работает неправильно, почему то из двух пар условных операторов if..else срабатывают только if из первой пары и else из второй пары, почему так не понимаю, пытался каждую пару этих операторов поместить в отдельные циклы do...while, то есть два отдельных цикла, но результат тоже был неверным.



Прошу помочь других участников решить эту задачку

Добавлено (12 февраля 2015, 09:58)
---------------------------------------------
Что то сложновато пока для меня sad

Сообщение отредактировал backatom1 - Четверг, 12 Февраля 2015, 09:44
KamiRoninДата: Четверг, 12 Февраля 2015, 11:56 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
Цитата backatom1 ()
Что то сложновато пока для меня

ничего страшного! у тебя же почти все получилось!!..
давай я дам не полный код, а подсказки и с ними попробуешь еще раз?!

а так, я считаю - что в приведенном коде худо бедно все решено у тебя!! smile полноценный ИИ чатер задачи строить не было, а диалог присутствует.. немного не оптимизировано - но решено..
молоток.

совет: если задача сложная для тебя целиком - то разбей ее на части! имхо, чем учащийся будет вариться "сам в себе" с необъятным для него куском, лучше если он будет задавать конкретные вопросы по сегментам. правильный вопрос = старание и попытка развиваться; наработка негативного опыта "в себе" без вопросов по существу = плохая культура самообразования!! ведет к потере интереса к теме..


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
berilДата: Четверг, 12 Февраля 2015, 12:07 | Сообщение # 10
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Если так надо задачки. Зайди сюда, здесь множество консольных задач и тестов + ответы есть



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
backatom1Дата: Четверг, 12 Февраля 2015, 13:54 | Сообщение # 11
был не раз
Сейчас нет на сайте
KamiRonin, кстати подскажи почему в этой части кода выполняются операторы те что я отмечу комментариями, а другие не выполняются хоть и по идее должны

Вот часть того кода:



Никак не могу врубиться почему при при условии true выполняется первый оператор if и только он, а второй почему то игнорируется а при условии false выполняется последний оператор else а не второй как задумано. Вообще не пойму wacko


Сообщение отредактировал backatom1 - Четверг, 12 Февраля 2015, 14:20
KamiRoninДата: Четверг, 12 Февраля 2015, 22:28 | Сообщение # 12
почти ветеран
Сейчас нет на сайте
Цитата backatom1 ()
подскажи почему в этой части кода

не знаю в чем ты пишешь - но у меня твой код заходит в ту ветку (else)
попробуй использовать отладку по шагам и проверь.


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
backatom1Дата: Пятница, 13 Февраля 2015, 04:33 | Сообщение # 13
был не раз
Сейчас нет на сайте
KamiRonin, спасибо огромное за такую поддержку!!! smile Очень и очень благодарен!!! smile

Добавлено (13 февраля 2015, 00:59)
---------------------------------------------
KamiRonin, Тоже не пойму почему так, пишу на Visual Studio 2010

Добавлено (13 февраля 2015, 04:33)
---------------------------------------------


KamiRonin, ну вот сделал все с помощью ваших подсказок, но по моему все равно все криво biggrin

Вот код:



Цитата KamiRonin ()
немного не оптимизировано - но решено..
молоток.

P.S. Еще раз большое спасибо за поддержку и подсказки smile smile smile
KamiRoninДата: Пятница, 13 Февраля 2015, 11:38 | Сообщение # 14
почти ветеран
Сейчас нет на сайте
ну вот.. есть еще над чем работать конечно. но уже все, что нужно. советов в связи с этим немного: улучшай функционал, используй отладку, отрабатывай навыки.


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.


Сообщение отредактировал KamiRonin - Пятница, 13 Февраля 2015, 11:39
backatom1Дата: Пятница, 13 Февраля 2015, 11:53 | Сообщение # 15
был не раз
Сейчас нет на сайте
KamiRonin, классное решение, вот у тебя все круто в коде по моему мнению smile smile smile

Подкинь ка еще задачку, если конечно есть свободное время, если нет то сам что нибудь поищу, придумаю

Спасибо большое за то что ты со мной так долго мучился и вытягивал меня smile

Кстати я тут еще калькулятор консольный написал (вспомнил про идею которую мне подкинул First), на четыре действия, вот он вроде ничего так получился )))

Вот код если кому интересно:
Код

[b]
namespace ConsoleApplication3
{
     class Program
     {
         static void Main(string[] args)
         {
             Console.WriteLine(" Это консольный калькулятор в диалоговом режиме.\n \n Разрешается выполнение четырех операторов:\n");
             Console.WriteLine(" Сложение: + \n Вычитание: - \n Умножение: * \n Деление: /\n\n А для десятичных дробей с плавающей точкой используется\n оператор<,> с цифровой клавиатуры ");
             Console.WriteLine("\n Для продолжения нажмите <Enter>\n\n Для выхода наберите <выход>\n\n Для выполнения следующего выражения вновь нажмите на <Enter>\n");

             do
             {
                 string uCh = Console.ReadLine();
                 if (uCh == "выход") break;

                 double a = 0;
                 double b = 0;
                 char c = '0';
                 try
                 {     
                     Console.WriteLine(" Введите первое число:");
                     a = double.Parse(Console.ReadLine());

                     Console.WriteLine(" Введите оператор:");
                     c = char.Parse(Console.ReadLine());

                     Console.WriteLine(" Введите второе число:");
                     b = double.Parse(Console.ReadLine());

                 }
                 catch
                 {
                     Console.WriteLine("Ошибка. Вы что то ввели не верно. \n\n Разрешается только вводить целые и дробные числа, \n\n и четыре оператора <+> <-> <*> </>,"
                         + "\n а для десятичных дробей с плавающей точкой используется\n оператор<,> с цифровой клавиатуры");
                 }

                 switch (c)
                 {
                     case '+': Console.WriteLine(" Сумма чисел равна: " + (a + b));
                         break;
                     case '-': Console.WriteLine(" Разность чисел равна: " + (a - b));
                         break;
                     case '*': Console.WriteLine(" Произведение чисел равно: " + (a * b));
                         break;
                     case '/': Console.WriteLine(" Отношение чисел равно: " + (a / b));
                         break;
                 }

             }
             while (true);
              
         }
     }
}
[/b]


Кто тоже решил написать выкладывайте свои варианты решения smile
Форум игроделов » Программирование » Программирование .NET » Помощь опытных C# программистов начинающим (Задачки от опытных программистов новичкам)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг