C# обучение с нуля

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Статистика по сообщениям

  • Отправлено: 14
  • По консольным: 4
  • По видеоурокам: 6
  • Личных сообщений: 4
  • Получено ответов: 43

29843. --
Павло Иваненко
Павло Иваненко
ответить
→  Dmitry-BY  # Консоль / Олимпиада / Индекс / 2021-02-20 17:41

Предположим, что цифр будет дано 10. Обозначим это так: N = 10. Кол-во вариантов различных 5-значных чисел 10^5 (т.е. 10*10*10*10*10).
По условию, мы не можем использовать 0 в самом начале, а значит, что формула будет уже 9*10*10*10*10.
По условию, мы не можем использовать четные числа. Это значит, что на конце могут быть только 5 из 10 цифр, т.е. 9*10*10*10*5
А теперь вспомним, что цифр может быть не 10, а значит адаптируем нашу формулу (N-1)*N*N*N*(N-5)
Поскольку мы заранее не знаем, сколько четных цифр у нас будет ли среди них ноль, мы это должны отслеживать.
Таким образом имеем: (N-null) * N * N * N * (N - E), где null - наличие нуля среди доступных нам цифр, E - количество четных цифр из этого же списка (в том числе и 0), а N - количество всего цифр


6401. --
Яков
Яков
ответить
→  Dmitry-BY  # Коллекция графов / Рёбра / 2020-01-14 15:20

Как я понял, граф можно представить, как лабиринт. Только не по всем дорожкам можно вернуться обратно.


9014. --
Николай Денисов
Николай Денисов
ответить
→  Dmitry-BY  # Коллекция графов / Рёбра / 2020-01-14 13:23

Нормаль, в следующим уроке разберешься!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-12-27 18:55

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2020-02-02
Остаток байтов: 836
Вы являетесь участником Клуба формулистов.


6401. --
Яков
Яков
ответить
→  Dmitry-BY  # Коллекция графов / BitArray / 2019-12-13 09:48

Крутая тема! Молодец. Возьму этот курс на заметку - тема необходима для изучени.


19391. --
Dmitry-BY
Dmitry-BY
ответить
→  vip  # Консоль / Олимпиада / Индекс / 2019-12-11 09:20

как вы пришли к такой формуле?


19391. --
Dmitry-BY
Dmitry-BY
ответить
/ 2019-12-09 22:32

исправлюсь)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY  # Коллекция графов / ListDictionary / 2019-12-07 11:47

Для консоли нужно устанавливать кодировку, чтобы выводила корректно.


6401. --
Яков
Яков
ответить
→  Dmitry-BY  # Коллекция графов / ListDictionary / 2019-12-07 09:36

Полезная штуковина Dictonary. Однажды использовал, очень пригодилась.


18842. --
Степан
Степан
ответить
→  Dmitry-BY  # Коллекция графов / ListDictionary / 2019-12-07 06:41

Консоль, я так понимаю, по русски не пишет, вывод должен быть - "Все ключи", а вышла абракадабра...
если я правильно понял))


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-11-24 21:28

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2020-01-03
Остаток байтов: 535
Вы являетесь участником Клуба формулистов.


19391. --
Dmitry-BY
Dmitry-BY
ответить
# Консоль / Олимпиада / Случайная задача / 2019-11-18 00:50

static void Main()
    {
        int n = Int32.Parse(Console.ReadLine());
        double res = Fact(n);
        Console.WriteLine(res);
    }
   
    static double Fact(int n)
    {
        double result = 1;
        if(n == 0 || n == 1)
        {
            return 1;
        }
        for(int i = 1; i <= n; i++)
        {
            result = result * i;
        }
        return result;
    }

роборт шарп показывает ошибку: > Программа отсылается...
Запрещено использовать: while do ReadKey


19391. --
Dmitry-BY
Dmitry-BY
ответить
/ 2019-10-27 23:02

С карточки автоматически снялось меньше чем положено. Сообщите как мне доплатить.


19391. --
Dmitry-BY
Dmitry-BY
ответить
/ 2019-10-27 22:47

хотел поменять карточку для списания, т.к. старая уже не работает. Так и не нашел в личном кабинете как это можно сделать. Поэтому единственный вариант который я нашел это отменить и заново подписаться с новыми данными. Если вы знаете другой вариант, буду рад услышать


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-10-25 19:04

Дмитрий, поясните вашу повторную подписку,пожалуйста.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-10-25 18:38

Подписка в Клуб формулистов обновлена.
Количество дней: +40
Количество байт: +256

Подписка КФ до: 2019-12-04
Остаток байтов: 256
Вы являетесь участником Клуба формулистов.


2204. --
sergeyvbo
sergeyvbo
ответить
→  Dmitry-BY  # Консоль / Олимпиада / Телеграмма / 2019-10-20 13:11

Надо сортировать результаты. Я не разобрался, как ты упорядочиваешь dictionary, не проще ли Array.Sort() применить к массиву разделенных слов?


19391. --
Dmitry-BY
Dmitry-BY
ответить
# Консоль / Олимпиада / Телеграмма / 2019-08-20 08:49

Не могу ппонять почему тест не проходит. Что именно он проверяет?

Компиляция: OK
Тест 000: ВЕРНО
Тест 001: ВЕРНО
Тест 002: ВЕРНО
Тест 003: ВЕРНО
Тест 004: ВЕРНО
Тест 005: ВЕРНО
Тест 006: ВЕРНО
Тест 007: ВЕРНО
Тест 008: ВЕРНО
Тест 009: НЕВЕРНЫЙ ОТВЕТ

static void Main()
    {
      char[] symbols = { '.', ':', ';', '?', '!', '-', '"', '`', ' ', '\'', ',' };
            string input = Console.ReadLine();
            string[] inputArr = input.Split(symbols);
            inputArr = inputArr.Where(x => !string.IsNullOrEmpty(x) && !IsNumberConsist(x)).ToArray();

            Dictionary<string, int> results = new Dictionary<string, int>();
            foreach (var element in inputArr)
            {
                results[element] = (results.ContainsKey(element) ? results[element] : 0) + 1;
            }

            if (results.Count == 0)
            {
                Console.WriteLine("-");
            }
            else
            {
                results = SortDictionary(results);
                foreach (var paar in results)
                {
                   
                    Console.WriteLine("{0} - {1}", paar.Key.ToLower(), paar.Value);
                }
            }
    }
   
        private static bool IsNumberConsist(string word)
        {
            return word.Any(char.IsDigit);
        }
       
        private static Dictionary<string, int> SortDictionary(Dictionary<string, int> source)
        {
            return source.Keys.OrderBy(x => x).ToDictionary(x => x, x => source[x]);
        }


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-07-23 12:34

Подписка в Клуб формулистов обновлена.
Количество дней: +20

Подписка КФ до: 2019-09-21
Остаток байтов: 1484
Вы являетесь участником Клуба формулистов.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-07-23 12:32

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2019-09-01
Остаток байтов: 1484
Вы являетесь участником Клуба формулистов.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-06-23 10:42

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2019-08-02
Остаток байтов: 1222
Вы являетесь участником Клуба формулистов.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-05-24 08:11

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2019-07-03
Остаток байтов: 961
Вы являетесь участником Клуба формулистов.


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Dmitry-BY  # Комбинаторика / Полуфинальный урок. Ответы на вопросы / 2019-05-23 14:07

Я против выкладывания кода - нужно, чтобы человек научился думать своими мозгами.


14981. --
DimanDOS
DimanDOS
ответить
→  Dmitry-BY  # Комбинаторика / Полуфинальный урок. Ответы на вопросы / 2019-05-15 12:26

Идея интересная, я сам часто сталкивался с такой проблемой. Однако Евгений Витольдович это делает в целях предотвращения элементарного копипаста. Однако конечно вполне бы можно было прикладывать скриншоты кода, открывающиеся в новом окне (тогда бы весь код был виден, а копировать бы уже было нельзя). А с Timoha я не соглашусь. Евгений Витольдович очень часто придерживается советам формулистов


9980. --
Timoha
Timoha
ответить
→  Dmitry-BY  # Комбинаторика / Полуфинальный урок. Ответы на вопросы / 2019-05-15 09:56

Отличное предложение насчет выкладывания исходного кода. Но вряд ли ЕВ сделает это. В свое время были предложены много хороших идей. Но увы ЕВ слушает только себя


6203. --
Николай Миролюбов
Николай Миролюбов
ответить

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY  # Комбинаторика / Комбинаторика. 4 x 4. Ладья x Ферзь / 2019-04-30 10:58

Тренируйся, это очень важный навык для программиста


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-04-24 08:29

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2019-06-03
Остаток байтов: 768
Вы являетесь участником Клуба формулистов.


8275. --
Tekashnik
Tekashnik
ответить
→  Dmitry-BY  # Комбинаторика / Рекурсия. Фракталы. Треугольник Серпинского / 2019-04-19 05:57

Возьмёшь красную таблетку и я покажу тебе насколько глубока кроличья нора (рекурсия), возьмёшь синюю таблетку и сказке конец (итеррация). Решай, Нео, другого шанса не будет. Матрица (с) Морфиус


20366. --
Эльвир
Эльвир
ответить
→  Dmitry-BY  # Комбинаторика / Рекурсия. Фракталы. Спираль / 2019-04-06 09:49

Отлично! Молодец!


3922. --
Александр
Александр
ответить
→  Dmitry-BY  # Комбинаторика / Рекурсия. Обратный отсчёт / 2019-04-05 16:52

Приветствую, Dmitry-BY! Это очень хорошо, когда узнаёшь ещё немного того, чего не знал раньше! ради этого все мы здесь и находимся :) Желаю успехов в изучении языка C# и программирования в целом!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2019-03-25 07:55

Подписка в Клуб формулистов обновлена.
Количество дней: +40
Количество байт: +512

Подписка КФ до: 2019-05-04
Остаток байтов: 512
Вы являетесь участником Клуба формулистов.


12306. --
Василь Воронін
Василь Воронін
ответить

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY  # Бурные потоки / ФИНАЛЬНЫЙ УРОК / 2018-09-02 11:49

Это нормально, иногда по 4 раза приходится пересматривать новый вариант.
Но лучше всего усвоиться, когда сам несколько раз сделаешь, а после этого ещё раз где-то об этом прочитаешь.


8275. --
Tekashnik
Tekashnik
ответить
→  Dmitry-BY  # Комбинаторика / Рекурсия. Вступление / 2018-08-27 09:19

Рекурсия божественна))                                                                                                                                                                                                                                                                                                                       


8275. --
Tekashnik
Tekashnik
ответить
→  Dmitry-BY  # Бурные потоки / Смысл жизни / 2018-08-26 12:52

В консольном приложении действительно всё понятно, но если перейти в Winwods Forms то там сразу же возникают вопросы с взаимодействие User Interface.                                                                                                                                                                                   


19391. --
Dmitry-BY
Dmitry-BY
ответить
/ 2018-08-22 10:11

Monitor.Enter(block);


9752. --
chokayes
chokayes
ответить
→  Dmitry-BY   / 2018-08-22 08:02

а здесь что? --> Python.cs:line 220


19391. --
Dmitry-BY
Dmitry-BY
ответить
# Бурные потоки / Замри! / 2018-08-22 06:56

При добавлении в метод Start

            while (true)
            {
                ConsoleKeyInfo key = Console.ReadKey();
                if (key.KeyChar >= '0' && key.KeyChar <= '9')
                    threads[Convert.ToInt16(key.KeyChar.ToString())].Abort();
            }
Вылазит исключение:

System.Threading.ThreadAbortException
  HResult=0x80131530
  Message=Поток находился в процессе прерывания.
  Source=mscorlib
  StackTrace:
  at System.Threading.Monitor.Enter(Object obj)
  at Python.Python.Run() in C:\Users\Administrator\projects\Python\Python\Python.cs:line 220
  at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
  at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
  at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
  at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
  at System.Threading.ThreadHelper.ThreadStart()


Я так понимаю связано с тем что поток что то не успел завершить.
Пытался через отладку понять, также убрал все блоки(block). НО пока безрезультатно.
Кто нибудь сталкивался с таким в данном уроке.
Или просьба наведите в нужном направлении, куда копать?


19391. --
Dmitry-BY
Dmitry-BY
ответить
→  Andrew  # Мат Конём и Слоном / 156 матов в полтора хода / 2018-08-21 09:09

класс, когда то ходил в шахматную секцию. Даже в студенческие годы с товарищем играли по вечерам. Возьмем пивка рыбки и погнали...


9014. --
Николай Денисов
Николай Денисов
ответить
→  Dmitry-BY  # Бурные потоки / Поток питонов / 2018-08-21 00:28

Привет, Дмитрий! Кто мешает выносить логику, сделай дополнительный класс и распредели логику. Отличное самостоятельное упражнение.                                                                                                                                                                                                           


19391. --
Dmitry-BY
Dmitry-BY
ответить
# Бурные потоки / Бурная жизнь / 2018-08-20 16:47

Я согласен на все 100%. Я просто думал что в комментариях написать про сложности для меня. А вообще все классно, спасибо))) Классный курс!


18493. --
Evgenii Kudriavtcev
Evgenii Kudriavtcev
ответить
→  Dmitry-BY  # Бурные потоки / Бурная жизнь / 2018-08-20 16:09

Дмитрий, тут показывают только основные работы тех или иных алгоритмов. Этого вполне достаточно, чтобы реализовать на основе их кучу других задумок, в том числе и "стоит сделать вывод счеткиков", "Игра должна продолжаться пока не съедят последнего зайца".
Могу даже сказать, что можно это все сделать в красивой оболочке сделать, при желание и с 3d графикой. Вопрос просто - нужно ли это... Кто-то напишет да, кто-то нет - от этого логика данного алгоритма не меняется...
PS: Если не было сложностей, то вывод - оценен на 3 только из-за вышесказанного?!? Странно, почему за цвет Питона в консоле оценку не снизить или "зайцы" не похожи на себя...
Программист - творческая профессия. Твори сколько угодно, меняй как тебе нравится. К тому же написано: "* Придумать свою фишку и реализовать, написать, что сделал."


19391. --
Dmitry-BY
Dmitry-BY
ответить
→  Виктор  # Теория ООП / Интерфейс. Правила игры. / 2018-08-20 05:34

Молодец. Так держать!


19391. --
Dmitry-BY
Dmitry-BY
ответить
# Консоль / Целые числа / Максима / 2018-08-15 18:39

думал решить задачку вот таким способом:
static void Main()
    {
        Object[] types = Object[8] {
           
            byte,
            short,
            ushort,
            int,
            uint,
            long,
            ulong
        }
       
        foreach (var type in types)
        {
            Console.WriteLine("{0} {1} {2}", type.ToString(), type.MaxValue, type.MinValue);
        }
        Console.ReadLine();
    }

ругается, что зарезервированные слова. Есть у кого идеи как видоизменить.


1295. --
Дмитрий Че
Дмитрий Че
ответить
→  Dmitry-BY  # Бурные потоки / Питонатор / 2018-08-15 08:45

Прочитал отзыв, название и удивился - на проекте появились уроки по Python? Побежал искать начало курса, читаю и не могу понять, почему как-то так неявно про питон написано. Ну да ладно, положил к себе в закладки. Сейчас вернулся к проверке этого урока и тут до меня стало доходить, что речь о живом питоне, нормальном таком си-шарпном)) Успехов в обучении!


10558. --
Иван Воронин
Иван Воронин
ответить
→  Dmitry-BY  # Бурные потоки / Зайчики / 2018-08-13 18:28

выиграл или проиграл это точно не в объекте питона хранится должно, по поводу первоначальной позиции, у питона есть координаты, где хранится его текущая позиция, зачем ему ещё и первоначальную позицию хранить? если они появляются рандомно, то это не имеет смысл, а стартовую позицию можно хранить в другом месте для всех питонов, если рандом не планируется. По поводу проверки стены и 0 координаты, стенка как раз по 0 координате и пролегает, чтобы её не проверять, тогда надо рандомить от 1 и до size.x - 1/size.y - 1 будет более логично.


19391. --
Dmitry-BY
Dmitry-BY
ответить
→  Evgenii Kudriavtcev  # Дневник успеха / 2018-08-05 Отчёт за неделю / 2018-08-07 17:30

молодец. Старайтесь больше работать с гитом через консоль. Сейчас под винду много оболочек, где работать с репозиторием все через кнопочки. Лично мне больше нравится все через консоль делать. Но это так,  сугубо мое мнение


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY  # Функционал / ФП - Короткое замыкание / 2018-08-01 23:12

Да, это магия :)


14981. --
DimanDOS
DimanDOS
ответить
→  Dmitry-BY  # Шахматы по сети / Хостинг. СЕДЬМОЙ ФИНАЛЬНЫЙ УРОК / 2018-07-28 10:26

Да, я тоже думаю немного изменить сайт


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Dmitry-BY   / 2018-07-28 01:12

Дима, доступ в Клуб Формулистов открыт на 30 дней. Удачи!


19391. --
Dmitry-BY
Dmitry-BY
ответить
→  DimanDOS  # Шахматы по сети / Хостинг. СЕДЬМОЙ ФИНАЛЬНЫЙ УРОК / 2018-07-28 00:25

мне кажется верстку сайта можно было чуть приятнее сделать. Ну а так, молодец

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: познакомился ближе с динамическим программированием. Узнал как можно использовать очереди для обхода лабиринта
Трудности: не совсем понял где здесь динамическое программирование. Суть его заключается в том что мы используем уже готовое решение. Здесь я этого не заметил. Возможно ошибаюсь



Научился: вспомнил рекурсию, познакомился с е применением на прмерах
Трудности: понимание как локальная переменная ведет себя при вызове рекурсии