Си шарп с нуля

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

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

Виктор Дерябин
  • Звание: Полиморфер
  • Накопленный опыт: 458 часов
  • Баланс Мегахешей: собрано 0 Mh, потрачено 0 Mh
  • Баланс Байтов: нет
  • Не состоит в «Клубе формулистов»
  • Последний визит: 2019-08-03 13:22:44
  • Возраст: 38 лет

Видеокурсы

Дата активности Видеокурс Прогресс
2017-09-04 wpf WPF Clocks все 10 100 %
2017-04-12 game1 Нано-игры 7 из 9 70 %
2016-09-28 task2 Алгоритмика все 1 100 %
2016-09-18 soft1 Нанософт 9 из 10 90 %
2016-09-18 task4 Графические циклы 12 из 13 93 %
2016-09-12 compiler Компилятор все 3 100 %
2016-08-23 soft0 Демо софт 7 из 8 100 %
2016-06-29 task5 Секундомер 5 из 17 32 %
2016-06-29 task3 Комбинаторика 1 из 22 5 %
2016-06-28 task1 Семантика все 1 100 %
2016-06-19 lines Шарики 6 из 9 75 %
2016-06-08 network Сетевые технологии 1 из 13 8 %
2016-06-07 aspnet Базовый ASP.ект 4 из 24 17 %
2016-06-07 game4 Игры со Спрайтами 6 из 33 19 %
2016-06-05 game2 Микроигры 4 из 17 27 %
2016-06-04 soft3 Теория ООП 6 из 39 16 %
2016-05-16 game0 Демо игры 8 из 10 80 %
Итого: 91 из 239 39 %

Консольные задачи

Дата активности Консольный раздел Прогресс
2019-08-03 task2 Рекурсия 1 из 4 25 %
2016-10-01 solo Java - Запуск все 13 100 %
2016-10-01 solo Java - Ввод данных 1 из 6 17 %
2016-10-01 solo Java - Вывод данных 5 из 7 72 %
2016-09-28 task2 Матрицы все 4 100 %
2016-09-26 task2 Строки все 6 100 %
2016-09-26 task2 Подпрограммы все 14 100 %
2016-09-24 task2 Простые массивы все 8 100 %
2016-09-23 task2 По цифрам все 8 100 %
2016-09-23 task2 Матрёшки все 9 100 %
2016-09-22 task2 Любимые циклы все 6 100 %
2016-09-22 task2 Математика все 9 100 %
2016-09-22 task2 Последовательность все 6 100 %
2016-09-21 task2 Вечность все 5 100 %
2016-09-21 task2 Узник цикла IF все 6 100 %
2016-09-21 task2 Точка и плоскость все 6 100 %
2016-09-21 task2 Обман цикла все 7 100 %
2016-09-20 task2 Пока-цикл все 6 100 %
2016-09-20 task2 For-to-чки все 26 100 %
2016-09-20 task2 Do-рацикл все 4 100 %
2016-09-19 task2 Типы данных все 5 100 %
2016-09-19 task2 Условный оператор все 16 100 %
2016-09-19 task2 Логика все 13 100 %
2016-09-10 solo HTML - тексты все 14 100 %
2016-09-10 solo Java - Циклы все 2 100 %
2016-09-09 olimp Олимпиада 3 из 40 8 %
2016-09-09 club 6452 - Кирилл Шмойлов 2 из 6 34 %
2016-09-09 solo HTML - таблицы все 5 100 %
2016-09-08 club 5649 - Максим Лапшинов 1 из 8 13 %
2016-09-07 solo C# набор 15 из 17 89 %
2016-08-24 club 7119 - Владимир Новопашин 2 из 15 14 %
2016-08-23 club 24 - Муза Оля 2 из 3 67 %
2016-08-23 club 4004 - Елена Вставская 2 из 27 8 %
2016-07-31 task1 Лирика 13 из 14 93 %
2016-06-28 task1 Календарь все 16 100 %
2016-06-21 task1 Целые задачи все 11 100 %
2016-06-20 task1 Цифры 11 из 12 92 %
2016-06-16 task1 Геометрия все 8 100 %
2016-06-13 task1 Символы все 5 100 %
2016-06-13 task1 Формулы все 9 100 %
2016-05-31 task1 Строки все 14 100 %
2016-05-26 task2 Алгоритмика все 20 100 %
2016-05-13 task1 Целые числа все 7 100 %
2016-05-11 task1 Семантика все 6 100 %
Итого: 352 из 453 78 %
Сохранить страницу:

10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Олимпиада / Случайная задача / 2019-08-03 12:57

Обновить бы робота хотя бы до 7 версии языка, а то не умеет в паттерн матчинг - int.TryParse(Console.ReadLine(), out var number).
Да, сахар, но приятнее же =)


3146. --
Permitin Alexey
Permitin Alexey
ответить
→  Виктор Дерябин  # Шарики / ФИНАЛЬНЫЙ УРОК / 2019-02-08 10:23

Вопрос по курсу Шарики можно задать?


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Строки / Ноль или один / 2018-05-20 05:09

Доброго времени суток.
Не хочу спорить и не буду, просто оставлю это здесь, раз уж увидел и потратил время на проверку.

Я не знаю, что вы запускали и как у вас выделение памяти для десяти строковых переменных в куче (для строки в 10 цифр, для 1000 цифр - 1000 переменных) сработало быстрее создания трех (я не помню, но вроде компилятор оптимизирует цепочку Replace() и вообще сводит к созданию одной, не факт, так что будем считать, что на каждый вызов отдельная), но вы не правы - Replace быстрее при длине строки 4+ цифры.
Не говоря уже о том, что читаемый код всегда будет лучше быстрого кода (2018 год, код пишут для людей, а не для компилятора, тем более управляемый на C#), а цепочка реплейсов явно выглядит и читается проще чем цикл с ифами.

Я тестировал на этом (вашего кода для сравнения нет, но тут идет код из решения и вариант с Replace() как я его имел ввиду, полагаю у вас было что-то подобное):
--
          string data = "1234567890";

            // Для понимания проблемы создания лишних переменных в куче раскоментировать код.
            // Результаты для 10 000 раз:
            // Видео - решение: 31508 ms
            // Replace - решение: 572 ms
            // Результаты для 10 000 000 раз:
            // Видео - решение: около 10 часов, мб больше из-за работы GC, стоит запускать только самым упертым, я не запускал =)
            // Replace - решение: 56115 ms
            //
            //for (int i = 0; i < 100; i++)
            //{
            //    data += "1234567890";
            //}

            Stopwatch timer = new Stopwatch();

            timer.Start();
            string s = "";
            for (int i = 0; i < 10000000; i++)
            {
                for (int j = 0; j < data.Length; j++)
                {
                    if (data[j] == 0) s += 1;
                    else if (data[j] == 1) s += 0;
                    else s += data[j];
                }
                s = "";
            }
            timer.Stop();
            Console.WriteLine($"Видео-решение: {timer.ElapsedMilliseconds} ms");

            timer.Restart();
            for (int i = 0; i < 10000000; i++)
            {
                data = data.Replace('1', '*').Replace('0', '1').Replace('*', '0');
            }
            timer.Stop();
            Console.WriteLine($"Replace-решение: {timer.ElapsedMilliseconds} ms");

            Console.ReadLine();
--


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Консоль / Строки / Ноль или один / 2018-02-24 13:19

Потому что это будет работать медленнее.


9913. --
vip
vip
ответить
→  Виктор Дерябин  # Шарики / ФИНАЛЬНЫЙ УРОК / 2018-02-15 00:44

согласен с предыдущим оратором отлично все получилось удачи!


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Иван Воронин   / 2018-01-06 15:23

Очень рад.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин   / 2018-01-06 15:15

очередной попугай, который копипастит мои слова и думает, что его флуд никто не читает, удачи, я на своих проектах к таким сразу применяю санкции, так что радуйся, что я не в администрации.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Иван Воронин   / 2018-01-06 15:11

1. Я Вас не знаю и "на ты" не переходил.
2. Вы автор решения задачи? Или адвокат автора и уполномочены выступать от его лица?
3. Ответить хоть на один мой вопрос у Вас духа не хватает или уровня развития?
4. Потрудитесь прочесть то, что я пишу, прежде чем отвечать, хотя бы половину.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Консоль / Вечность / Отрывной календарь / 2018-01-06 15:01

твои комментарии не несут смысловой нагрузки, ты напоминаешь капризного ребёнка, который выронил сосю, а самому её достать лень, задача отличная. Судя по твоей "простыне плача", ты не понял смысла моих пары строк.
з.ы.
По поводу Электрона, ты его адвокат? он за себя сказать не может? где я ему нагрубил? вы задали тон общения в своих комментариях, что вы хотели получить в ответ? сюсимуси? А за курсы тут ты не единственный платишь, но то, что ты сделал на этом акцент, как раз и отвечает на твой вопрос по поводу "ляма на карту".


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Иван Воронин  # Консоль / Вечность / Отрывной календарь / 2018-01-06 01:36

Прошу прощения, но я где-то указывал, что посмотрел решение до того, как решить самому? Вроде мой комментарий как раз говорит об обратном, как и финальный отзыв по всему курсу Алгоритмика. И да, я считаю, что полезно после выполнения задания сравнивать решение с другими вариантами и делать выводы.
Ваше "вам на карту ещё и лям кинули" считаю несколько странной реакцией. Ибо:
Во-первых, я заплатил за курс, в курсе есть возможность высказать мнение по каждой задаче (т.е. входит в пакет), я его выразил. И если я пишу подобный отзыв - я, прежде всего, делаю это для стимуляции повышения качества (прямо указал на ошибку в решении).
Во-вторых, какое отношение мое желание получения денег "на карту" (есть оно у меня или нет) имеет к комментарию, задаче, курсу и данному сайту в целом? А тем более - как оно касается Вас?
В-третьих, сами Вы не высказали никакого конструктива по данной задаче. Но нахамили мне и пользователю Электрон. Считаете это более полезным, чем мой комментарий?
Я очень надеюсь, что Вы не имеете отношения к администрации ресурса и пишите от себя лично, т.к. с этим сайтом у меня связаны приятные воспоминания и мне он действительно помог на начальных стадиях изучения C#.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Консоль / Вечность / Отрывной календарь / 2018-01-01 19:53

Задача норм, а если вы посмотрели видео решение, вместо того, чтобы самим решить, то что вы хотели? чтобы вам на карту ещё и лям кинули?


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Консоль / Узник цикла IF / Нули / 2017-12-25 11:09

А и да, работа со строками медленнее!!!


10558. --
Иван Воронин
Иван Воронин
ответить

10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Консоль / For-to-чки / Тройка / 2017-11-29 00:31

На 1:40 и далее послушай внимательно, всё верно в видео, никаких ошибок. Конечно вариантов решение одного и того же великое множество, но алгоритм верный.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Консоль / For-to-чки / Отрицательно / 2017-11-26 20:59

при реализации задач ещё не раз прибегать будешь к одному и тому же алгоритму.


8275. --
Tekashnik
Tekashnik
ответить
→  Виктор Дерябин  # Консоль / Последовательность / Минимальное и максимальное число / 2017-09-06 17:51

Что уж сразу никто, я догадался) Просто если бы было в этой последовательности, что то кроме цифр и точек, тогда так нельзя было бы сделать))


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Виктор Дерябин  # WPF Start / Финал / 2017-09-06 10:12

Виктор, спасибо за столь развёрнутый комментарий.
Твои замечания понятны и вполне уместны.
Впрочем, понять, чего ты лишаешься, отказываясь записывать видео,
можно только после того, как запишешь десяток финальных обзоров.
Очень важно всесторонне развиваться, но это - твой выбор.
Отчёт принимаю.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Model 3D / Строим тор / 2017-09-06 01:10

Молодец, красиво вышло.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # WPF Start / Финал / 2017-09-06 01:07

1 - научись говорить за себя, не нужно упоминать, других людей, они сами за себя скажут.
2 - я тоже начинал с х1,5, на данный момент уже смотрю все видео на х2,25 это нормально и реально субъективно.
3 - Запись видео каждый раз, это реклама твоей работы, практика записи, ведь ты каждый раз с нуля запускаешь студию, пишешь каждый раз один и тот же начальный код, тебя это не смущает? всё верно, это практика.
4 - За выполнение финального урока начисляют 200 байт, если ты состоишь в КФ. Так что это не плохой плюс к дополнительной практике по саморекламе.
5 - так как ты не состоишь в КФ, я точно не буду отменять твой отчёт как неверный, если автор курса или кто-то ещё посчитает обязательным видеть видео в этом отчёте, они выскажут своё мнение по этому поводу и нажмут кнопочку ПЛОХО!!!


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # WPF Start / Перекидные часы. Ну всё пора домой. / 2017-09-06 00:54

Молодец, отлично поработал, не останавливайся на достигнутом.


13540. --
Алексей Малышев
Алексей Малышев
ответить

791. --
Валерий Жданов
Валерий Жданов
ответить

7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Виктор Дерябин  # WPF Start / Финал / 2017-09-05 05:55

С финалом!


10670. --
Сергей Соколов
Сергей Соколов
ответить
→  Виктор Дерябин  # WPF Start / Финал / 2017-09-04 16:20

Выскажу своё личное мнение по поводу комментария.
Если на видео показать ну совсем нечего, то я считаю что видео прикладывать не обязательно даже к финальному уроку.
Если есть что показать, то можно снять ролик, даже без звука и показать всё что хочется.
Главное чтобы всё в удовольствие было! =)


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Виктор Дерябин  # WPF Start / Перекидные часы. Без пяти пять. / 2017-09-04 09:42

Ничего не проверка - надо уметь признавать свои косяки!


7119. --
Новопашин Владимир
Новопашин Владимир
ответить

8275. --
Tekashnik
Tekashnik
ответить
→  Виктор Дерябин  # WPF Start / Перекидные часы. Без пяти пять. / 2017-09-04 05:12

Это не опечатка, а проверка на внимательность)))


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # WPF Start / Перекидные часы. Без пяти пять. / 2017-09-03 16:33

Всё верно, есть такая опечатка, молодец!


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Виктор Дерябин  # WPF Start / Стрелочные часы / 2017-09-03 07:49

Я тоже предпочитаю программно делать.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # WPF Start / Стрелочные часы / 2017-09-02 20:11

Молодец, я тоже реализовал программно, вместо копипаста, но знать, что есть несколько вариантов решения одного и того же всегда приятно.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# WPF Start / Стрелочные часы / 2017-09-02 16:42

Как и подозревал, все намного проще - увидел решение через в Geometry.Parse в другом отчете)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Елена   / 2017-08-04 10:16

Да, играл) Вы, я так понимаю, тоже?)


11589. --
Yefim
Yefim
ответить
→  Виктор Дерябин  # Консоль / Символы / Буквы кодов / 2017-08-01 22:28

Совершенно согласен!!!


13949. --
Елена
Елена
ответить
→  Виктор Дерябин  # Консоль / Логика / Сдвиг влево / 2017-07-27 21:21

Вы играете в классическую мафию?


11589. --
Yefim
Yefim
ответить
→  Виктор Дерябин  # Шарики / ФИНАЛЬНЫЙ УРОК / 2017-07-22 12:51

Отличный отчет, Виктор!


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Наноигры / Бот для Цифр / 2017-04-13 21:37

Понимаю тебя, у меня это увлечение с 89 года, когда написал первую игрушку. Поэтому знаю, сколько это требует времени и сил. Создавать своё намного интереснее. Ботов тоже делал по заказу для некоторых игр, пройденный этап. На этом проекте интересны идеи и их реализация, но ещё интереснее делать тоже самое но по своему. Со своими доработками и т.д. То как ты это видишь.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Иван Воронин  # Наноигры / Бот для Цифр / 2017-04-13 18:11

Есть некоторое увлечение ком.играми (и последние пару лет геймдевом). Как правило, оно влечет за собой определенную трату времени, как и любое увлечение. Тут каждому свое.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Наноигры / Бот для Цифр / 2017-04-13 03:37

Зачем тогда вообще тратить время на соц. игрушки, только если на них обкатывать бота для последующей продажи его нуждающимся =)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Сергей Д.   / 2017-04-05 18:20

Угу, когда нажимаешь кнопку "Плохо", она требует сначала написать сообщение автору работы. Я думал вы знаете, поэтому скопировал формулировку "кнопку [Плохо]" из предупреждающего окна, чтобы было понятно что комментарий вызван только требованием.


11165. --
Сергей Д.
Сергей Д.
ответить
→  Виктор Дерябин   / 2017-04-05 17:35

А кто-то по этому поводу вопросы задавал? Я не рассчитывал на "Хорошо", я рассчитывал на чей-нибудь совет.


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Виктор Дерябин  # Новые технологии / Клиент-сервер для смены обоев / 2017-04-05 11:17

Кто-то это должен был сделать


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Евгений Волосатов  # Наноигры / Скорость реакции. Блок-схема / 2017-04-05 11:16

Именно это я и написал - "хорошо как учебная задача" и "полезно в любом случае" =)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Сергей Д.  # Новые технологии / Клиент-сервер для смены обоев / 2017-04-05 11:14

Нажимаю кнопку [Плохо] потому что задача не выполнена, и я считаю что это явно не "хорошо".
Разве нужны еще какие-то объяснения для этого?)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Виктор Дерябин  # Наноигры / Скорость реакции. Блок-схема / 2017-04-05 11:10

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


10494. --
Алексей В.
Алексей В.
ответить

7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Виктор Дерябин  # Алгоритмика / Я решил всю Алгоритмику / 2016-09-29 08:36

Поздравляю с еще одним пройденным курсом!


8959. --
Максим Саратов
Максим Саратов
ответить
→  Виктор Дерябин  # Алгоритмика / Я решил всю Алгоритмику / 2016-09-29 08:36

Серьезный поход у вас, молодец!


10673. --
Алексей Хонин
Алексей Хонин
ответить

10558. --
Иван Воронин
Иван Воронин
ответить
→  Виктор Дерябин  # Алгоритмика / Я решил всю Алгоритмику / 2016-09-29 08:24

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


4004. --
Елена
Елена
ответить
→  Виктор Дерябин  # Алгоритмика / Я решил всю Алгоритмику / 2016-09-29 05:21

Огромное спасибо за отзыв. Замечания действительно дельные.


4992. --
Николай
Николай
ответить
→  Виктор Дерябин  # Алгоритмика / Я решил всю Алгоритмику / 2016-09-29 04:56

Поздравляю с завершением курса!
Замечания совершенно справедливы!


10670. --
Сергей Соколов
Сергей Соколов
ответить
→  Виктор Дерябин  # Алгоритмика / Я решил всю Алгоритмику / 2016-09-29 00:52

С завершением алгоритмики.
Отличный отзыв, всё по делу.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Матрицы / Квадранты матрицы / 2016-09-28 21:37

Сделал решение через второй массив и прогон элементов массива через ряд if.
Ну и вывод в строку сделал через if с проверкой на последний элемент строки.
В видео более красивое решение)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Матрицы / Произведение / 2016-09-27 13:02

При прочтении статьи в Wiki и вспоминании основ действий с матрицами из университетского курса услышал скрип шестеренок в голове)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Матрицы / Заштрихованная часть / 2016-09-27 11:57

Сделал проверку в одном цикле, ограничив условия для j сразу относительно обеих диагоналей:

(int j = n-1; j > n - 1 - i && j >= i; j--)

Tekashnik сделал еще лучше - сразу при заполнении массива проверять на максимум значения с нужным адресом)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Строки / Ноль или один / 2016-09-26 17:10

А почему Replace() затруднительно?

Replace("0", "zero").Replace('1', '0').Replace("zero","1")

В место "zero" можно любой набор символов, которого не будет в строке.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Строки / Снова многоточие / 2016-09-26 17:02

Сделал без if, используя Replace() к первой подстроке.
А то, что Substring() можно использовать только с одним параметром забыл как-то, в итоге лишний код расчета длины оставшейся строки.


1232. --
Фомичева Наталья
Фомичева Наталья
ответить
→  Виктор Дерябин  # Запуск пакета / Секундомер - Настройка формы / 2016-09-26 09:40

Ага, вот если на первую страницу добавить "сделайте секундомер, для этого
1. Зафиксируйте время начала создания программы
2. Создайте GUI приложение stopWatch.
3. Разместите на форме лейбл для отображения времени, текстовое поле и кнопочку.
4. Разместите таблицу...  А затем сделайте тоже самое, но по инструкции. Сравните время. Что вы забыли предусмотреть?". Было бы забавнее. Кто хочет пробует сам, кто не хочет открывает инструкцию и делает.
На видео пояснений тоже нет, так что это специфика урока, а не проблема скриншотов. Переписать код и повторить не одно и то же. А если сделаешь по своему сам поймешь почему так или не так. Понравилось на одном сайте: в видео периодически вставляют вопросы, на которые надо ответить чтоб смотреть дальше. Сразу появляется мысль: надо внимательно слушать, чтоб не пропустить что-то важное, вместо того что "ерунда, не пойму, перемотаю и еще раз послушаю".


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Подпрограммы / Палиндромы / 2016-09-25 12:33

Переписал функцию на цифры - 100%
посмотрел видео, понял ошибку в решении со строками - нули вначале строки необходимо убирать.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Подпрограммы / Палиндромы / 2016-09-25 12:05

Решил через строки - 60%.
Хотя результат тестов верный, но Шарп не принимает (вообще не понятно, почему тогда 3 из 5 тестов проходит, если строки не нравятся).
Комментарий, что надо решать через числа прочел, но чем плохо решение через строки?
Оно работает на 100%, оно не ограничено длиной числа, оно даже не ограничено числами.
Его минус в том, что оно отличается от решения цифрами?


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Строки / Длинное слово / 2016-09-25 10:14

Сделал удаление лишних символов через Trim() в каждой итерации цикла. Явно проще, чем "реплейсить" по одному каждый символ. Replace() хорош только для '-' внутри слова, можно его применять один раз на всякий случай, но в тестах таких вариантов не было..
Еще неплохо использовать как разделитель эти символы, что делали в некоторых решениях, но тогда опять таки, если '-' внутри слова, то это может привести к ошибке.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Подпрограммы / НОД / 2016-09-24 20:23

Сначала написал неэффективный перебор.
Потом нагуглил алгоритм Евклида и реализовал итерацией.
В видео рекурсией, так короче, но итерацией понятнее, что происходит)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Подпрограммы / Плюс плюс / 2016-09-24 17:44

Оптимизация функции хорошая идея, жаль Шарп принял без нее


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Простые массивы / Квадрат многочлена / 2016-09-24 16:16

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


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Простые массивы / Обмен / 2016-09-24 11:16

Что-то сразу не догадался, что можно не хранить min и max, а только их индексы (которые и так надо хранить).
Отлично решение у Владимир 6391.
Переделал под него, получилось компактнее и красивее:

int n = int.Parse(Console.ReadLine());
string[] line2 = Console.ReadLine().Split();
int[] a = new int[n];
int minIndex = 0, maxIndex = 0;
for (int i = 0; i < n; i++)
{
    a[i] = int.Parse(line2[i]);
    if (a[i] < a[minIndex]) minIndex = i;
    else if (a[i] > a[maxIndex]) maxIndex = i;
}
int temp = a[minIndex];
a[minIndex] = a[maxIndex];
a[maxIndex] = temp;
for (int i = 0; i < n - 1; i++)
    Console.Write(a[i] + " ");
Console.WriteLine(a[n - 1]);


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Простые массивы / Мини-максимум / 2016-09-24 10:45

Сложнее было не придумать, как найти минимум и максимум (с этим то всё просто), а как и, главное, зачем сделать это без сортировки). Придумал конечно, практически совпало с решением Елены.
Но, зачем такое решение в теме массивов? Не лучше ли тут будет как раз Array.Sort() закрепить? А перебор в цикле оставить для темы циклов.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Матрёшки / Админ сети / 2016-09-23 22:03

Хорошая задача.
Через цикл  массив как-то красивее решение.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Матрёшки / Семизначные числа / 2016-09-23 17:27

Шарп принял одно и тоже верное решение со второй попытки. Видимо тяжко ему от 2000 строк.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Любимые циклы / Метод Горнера / 2016-09-22 23:49

На ссылку на Метод Горнера обратил внимание только после включения видео.
К тому же из условий не понял, что последовательность будет длинной в N элементов.
Поэтому решал иначе - просто высчитывал сумму, подставляя значение в цикле while с условием остановки - пока есть что парсить в double:

int n = int.Parse(Console.ReadLine());
double x = double.Parse(Console.ReadLine());
double an, sum = 0;
while (double.TryParse(Console.ReadLine(), out an))
    sum += an * Math.Pow(x, n--);
Console.WriteLine("{0:f5}", sum);


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Любимые циклы / Тройная степень / 2016-09-22 23:31

(N^N)^N == N^N*N
Т.е. степени при раскрытии скобок перемножаются.
Даже если очень хочется сделать циклом (хз зачем, если Math.Pow доступно), то тогда уж одним циклом до N^2.
А вообще очевидное решение сразу возвести число в нужную степень.

int n = int.Parse(Console.ReadLine());
Console.WriteLine(Math.Pow(n, n*n));


5649. --
Максим Лапшинов
Максим Лапшинов
ответить

10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Любимые циклы / Двойной факториал / 2016-09-22 17:31

В видео отличное простое решение, жаль сам не догадался)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Виктор Дерябин  # Запуск пакета / Секундомер - Настройка формы / 2016-09-22 17:07

Спасибо, очень толковый анализ такого способа подачи информации


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Математика / Тригонометрия / 2016-09-22 15:20

Написал всё верно, но почему-то решил, что x и y даны в градусах. И начал преобразовывать из в радианы.
Потом перелопатил все действия, залез в дебри тригонометрических формул, несколько раз поменял ход решения - не выходит и всё! Пока видео не посмотрел)


4699. --
Сергей Витальевич
Сергей Витальевич
ответить
→  Виктор Дерябин  # Запуск пакета / Секундомер - Написание кода / 2016-09-22 14:59

Я тоже когда выполнял данное задание и сделал небольшой туториал с подсказками как сделать быстрей: www.youtube.com/watch?v=pjq8fEWh6Hs


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Математика / Корни / 2016-09-22 12:50

Решение в одну строку:

Console.WriteLine("{0:f5}", Math.Pow(6561, 1/Math.Pow(2, int.Parse(Console.ReadLine()))));

С учётом того, что тема математическая, даже лучше, чем с циклом.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Последовательность / Больше суммы предыдущих / 2016-09-22 12:02

А мне перестановка была как-то сразу очевидна =)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Виктор Дерябин  # Запуск пакета / 38 клавиш Игромистра / 2016-09-22 10:46

Огромное спасибо!


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Видеокурсы / Подарок от Игромистра - Комикс / 2016-09-22 00:24

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


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Последовательность / Новая последовательность / 2016-09-21 23:31

Не знал, что Робот Шарп работает с разными потоками, поэтому сразу сделал сохранение значений в строку с разделением "\n".
Ну и для проверки остановки цикла опять использовал TryParse.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Последовательность / Минимальное и максимальное число / 2016-09-21 23:16

Странно, что никто не догадался использовать int.TryParse, который возвращает булевое значение, как ограничение цикла while (см. ниже).
И если мы всё равно задаём переменным min, max значение первой строки, зачем делать проверки внутри цикла и прочее? Можно задать их до цикла, т.к. первая строка будет всегда, а потом переходить к циклу.

int n = int.Parse(Console.ReadLine());
int min = n, max = n;
while (int.TryParse(Console.ReadLine(), out n))
{
    if (n < min) min = n;
    if (n > max) max = n;
}
Console.WriteLine("{0} {1}", min, max);


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Вечность / Отрывной календарь / 2016-09-21 20:28

Видео решение - "рукалицо".
Я понимаю, что тема вроде как про switch, но таким образом считать дни как-то уж совсем грустно.
Кроме того, если весьма грубая ошибка.
Если год високосный к days прибавляется единица по-умолчанию. И не берется во внимание, что может быть дата, например, 8.02.2016. Т.е. до 29 февраля.
Добавить бы такой вариант в тесты.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Вечность / Неделька / 2016-09-21 20:12

Вы не правы.
"В наше время понедельник считается первым днём недели ... в Великобритании" (с) Wiki (ru.wikipedia.org/wiki/Дни_недели)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Узник цикла IF / Сумма делителей / 2016-09-21 18:12

В видео решение оптимизированно математически, так и должно быть, круто)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Узник цикла IF / Нули / 2016-09-21 17:46

Сделал проверку, содержит ли строчное представление числа "0", т.к. так интереснее, чем просто проверять разряды.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Обман цикла / Цифра три / 2016-09-21 15:47

Тесты 5,6,7,8 не соответствуют условию: одно целое число (по модулю не более 10^9).


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Обман цикла / Делитель Макса / 2016-09-21 15:14

Сначала написал:

            int n = int.Parse(Console.ReadLine());
            int max = 0;
            for (int i = 1; i < n; i++)
                if (n % i == 0) max = i;
            Console.WriteLine(max);
И вообще не мог придумать, куда break применить. Оказывается надо цикл строить от максимального  значения (n/2) и перебирать по убыванию.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Обман цикла / Делим без остатка / 2016-09-21 12:42

Сначала сделал без continue (т.к. так проще), потом сделал по теме задания, искусственно впихнув в ненужный перебор по одному, а не по семь.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / For-to-чки / Псевдо-квадраты / 2016-09-20 12:24

Видео про другой цикл.
В конце первой строки нужен пробел - тогда проходит решение.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / For-to-чки / Тройка / 2016-09-20 11:26

На видео ошибка, а Саша всё правильно сделал - указанный цикл не сможет возвести 3 в степень 0, он сразу возводит в 1.
А в условии задачи указано от 0 до 37. Поэтому необходимо условие для n == 0.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / For-to-чки / Отрицательные / 2016-09-20 11:09

В чём отличие с 6 задачей?
www.videosharp.info/console/task/level=34
Зачем таким образом увеличивать количество задач? Я расстроен.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / For-to-чки / Сто квадратов / 2016-09-20 11:02

Я рассчитывал, что из 200 задач курса большая часть будет интересными и явно сложнее, чем такие. Ок, вводные и должны быть простыми, но это уже 9 задача из 26, а мы до сих пор просто i в квадрат возводим и выводим на консоль =(


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / For-to-чки / Радуга / 2016-09-20 10:56

Опять видео от другого типа цикла.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / For-to-чки / Улица / 2016-09-20 10:49

Я так понимаю та же самая задача будет в Пока-цикл. А записать видео к решению с for забыли.
Какой-то несерьёзный подход.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / For-to-чки / Отрицательно / 2016-09-20 10:46

Кроме того, что задача фактически копирует предыдущую, еще и решение для цикла while, а не for.


4485. --
Vlad Yakovlev
Vlad Yakovlev
ответить
→  Виктор Дерябин   / 2016-09-20 09:55

Спасибо! :)


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Условный оператор / Минимальное неотрицательное / 2016-09-19 21:43

123456789123456789 -123456789123456789 из теста 006 явно за пределами -10^9..10^9
Но т.к. об этом уже писали 9 месяцев назад и не исправили, видимо давно забили на коментарии.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
→  Vlad Yakovlev  # Консоль / Условный оператор / Минимальное произведение / 2016-09-19 20:49

Понятно, что прошло больше года, но "не так" тут кроется в том, что надо внимательно читать условие.
Требуется сравнить "ab, bc, cd, da", а не "ab, ac, ad, bc, bd, cd" как делано у вас.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Условный оператор / Минимальное расстояние / 2016-09-19 20:40

Забыл сравнить d-a, но в тестах ни разу не встретился случай, где d-a минимальное, поэтому 100%.
Жаль, исправить нельзя уже.


10193. --
Виктор Дерябин
Виктор Дерябин
ответить
# Консоль / Условный оператор / Сумма положительных / 2016-09-19 20:14

+-10^9 в пределах int, зачем long?


  • Звание: Полиморфер
  • Накопленный опыт: 458 часов
  • Собранный капитал: нет

Клуб формулистов

Правила клуба формулистов

У каждого формулиста есть задача минимум на каждый день:
+ зайти на сайт, проверить один отчёт, получить 1 байт.
Задача максимум - выполнить все остальные ежедневные задачи.
Нажмите здесь чтобы перейти к ежедневному чек-листу.

В 24:00 МСК накопленные за сутки байты переносятся в недельный актив.
В воскресение 24:00 МСК все накопленные байты переходят на баланс формулиста.

Собранные байты можно обменивать на доступные видеокурсы (1 байт = 1 рубль, без скидок)
Приобретённые за байты видеокурсы доступны только во время нахождения в автобусе/клубе формулистов!

При завершении подписки в автобусе/клубе формулистов все накопленные байты обнуляются, а доступ к видеокурсам, приобретённым за байты, закрывается.
Продлевайте подписку заблаговременно.

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





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

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

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

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


Научился: Продумывать точки начала и конца линий.
Трудности: Всё просто, всё понятно)
Мне проще было, чтобы не запутываться, цикл во всех вариантах вести от 0 до 300, но на 9 кнопке сделал от 300 к 0, чтобы чуть потренировать мозг перестраиваться)


Научился: Событию MouseEnter, Shown. Обновил в памяти, как использовать таймеры.
Трудности: Придумать 3 уровень, конечно же)
На третьем уровне сделал больше акцента на контроль мыши в узких лабиринтах. Также добавил новую "механику" - реку и плот, на котором ее можно переплыть. Плот движется самостоятельно по таймерам вверх-вниз, задача игрока вовремя на него "забежать" и передвигать курсор синхронно с плотом до прибытия на другой берег.