Online обучение c#

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

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

Статистика по видеоурокам

  • Всего просмотрено уроков: 86
  • Всего выполнено уроков: 85

Отчёты по видеоурокам

Дата Видеоурок Результат
2016-11-16 19:28 Бурные потоки ФИНАЛЬНЫЙ УРОК + 20 20 мин.
Ознакомился с классом Thread, с приемами синхронизации потоков (Monitor -аналог lock), как корректно останавливать потоки, используя генерацию исключения abort, и в дальнейшем обработка этого исключения, возможность выполнить reset abort-а
не было
все ок, пока курс не выбрал. Очень хотелось бы увидеть курсы по wpf, wcf в исполнении Евгения. Проходил несколько курсов на других ресурсах, манера расказа-показа Евгения лучшая в инете.
2016-11-15 15:33 Бурные потоки Смысл жизни + 20 30 мин.
практическому применению на примере, корректного завершения потока
не было
все ок
2016-11-14 14:54 Бурные потоки Замри! + 20 30 мин.
Генерация исключения у потока методом Abort, и при обработке исключения можно отменить остановку потока
ResetAbort()
не было
все ок
2016-11-13 17:30 Бурные потоки Приоритет + 20 30 мин.
ознакомился с классом Monitor обеспечивает синхронизацию потоков. аналог блока lock
Monitor.Enter(какое нить поле) - задает блокировку.  Monitor.Exit(поле указанное в Enter) освобождает блокировку
не было
все ок
2016-11-03 19:37 Tinklavimas Знакомство + 20 10 мин.
ничему
не было
идем дальше )
2016-11-02 12:39 Бурные потоки Бурная жизнь + 20 30 мин.
методу join, основной поток дожидается окончания действия потока, у которого вызван метод join
не было
все ок
2016-10-31 10:13 Бурные потоки Поток питонов + 20 30 мин.
Запускать потоки, определять критическую секцию и блокировать ее с помощью переменной типа object (тип может быть любой кроме value type).  Если запущенные потоки не являются фоновыми (IsBackground = false), основной поток приложения не закроется, будет дожидаться окончания работы всех потоков запущенных в процессе

не было
хороший, информативный урок
2016-10-30 11:39 Бурные потоки Поворот головы + 20 30 мин.
ожидаю потоков
не было
все ок, питонов оживил- при создании питона помещаю в коллекцию, затем проходя по коллекции вызываю метод step c интервалом секунда
2016-10-30 10:47 Бурные потоки Питонатор + 20 30 мин.
из потоков ничему, но все впереди. Создавать питона
не было
метод show выполнил
2016-10-27 11:35 Game Xonix 5 ошибок обучающих курсов. Java + Xonix  


2016-10-27 11:34 Бурные потоки Зайчики + 20 20 мин.
уяснил что функции должны быть короткими, сам реализовал в два метода
не было
не статические переменные (разные для разных экземпляров класса) должны быть определение головы, хвоста, движение в какую сторону
2016-10-26 11:00 Бурные потоки Террариум + 20 30 мин.
по номеру позиции вставлять символ в консоль
не было
рендомный метод добавить кролика реализовал
2016-10-25 15:50 Бурные потоки Вступление + 20 20 мин.
ничему, все впереди
не было
статичные поля нужны для хвоста и головы
2016-10-24 16:05 Коллекция графов ФИНАЛЬНЫЙ УРОК + 20 10 мин.
узнал что такое граф, научился проходить его в глубину используя очередь, в ширину используя стек.
Понял что из коллекций нужно использовать типизированные (быстрее работаю, нет упаковки-распаковки) т.е. ключ-значение Dictionary, просто значение HashSet. С остальными думаю можно не заморачиваться, а для хранения логических значений использовать BitArray

не было
отличный, доходчивый курс
2016-10-24 15:58 Коллекция графов Глубокий алгоритм + 20 30 мин.
впервые использовал стек
не было
все ок
2016-10-24 15:42 Коллекция графов Глубокий поиск + 21 20 мин.
Проходить граф вглубь
не было
все ок
2016-10-22 17:41 Коллекция графов Визуализация процесса + 20 30 мин.
Увидел отличный пример использования делегата, вызов функции с WindowsForm в другом невизуальном классе классе
все понятно
все ок
2016-10-22 11:39 Коллекция графов Широкий пошаговый ход + 20 20 мин.
ошибка исправил сам ранее
не было, за визуализацию не взялся
все ок
2016-10-21 17:05 Коллекция графов Широкий алгоритм + 20 30 мин.
если меняется элемент коллекции и используем перечеслитель выходит exception
не было
поменял hashtable на типизированный Dictionary у "Вершин", и в перечислителе преобразовал вершины.ToArray()
стало компилироваться
2016-10-19 20:39 Коллекция графов Широкий поиск + 20 30 мин.
проходить граф
не было
все ок
2016-10-18 20:29 Коллекция графов Шахматная доска + 20 30 мин.
иницилизировать шахматный граф
не было
все ок
2016-10-17 17:46 Коллекция графов Отображение + 20 20 мин.
ничему
не было
все ок
2016-10-14 12:14 Коллекция графов Инициация + 20 30 мин.
ничему
не было, если граф правильно нарисован...
все ок
2016-10-13 18:02 Коллекция графов Рёбра + 20 30 мин.
ничему, коллекцию в коллекции предложил использовать на предыдущем уроке
Dictionary<int, List<int>>
не было
при заполнении графа дописал новый метод, который добавляет к одной вершине несколько вершин (из int массива)
2016-10-12 15:13 Коллекция графов Вершины + 20 30 мин.
не совсем к теме урока относится, но попробовал благодарю занятию... в hashtable храняться object, и нельзя использовать как дженерик коллекцию
не было
ребра можно также хранить в hashtable (вершина1, вершина2 ) только при поиске проверять содержания не только по ключу но и менять местами на значение, т.е. чтоб не дублировать ребра
2016-10-11 18:16 Коллекция графов Граф + 20 30 мин.
стыдно сказать, но не знал что такое граф
не было
можно хранить в дженерике Dictionary и в нем еще один дженерик List:
Dictionary<int, List<int>> dict = new Dictionary<int, List<int>>();
заполнение очевидное , где ключ Dictionary это вершина, List<int> связанные с ключом другие вершины
2016-10-10 09:58 Коллекция графов BitArray + 20 30 мин.
BitArray массив для хранения логических значений. Ознакомился с операндом Xor (истина 0    1, 1    0. все остальное ложно  ) 5110 байт для 40 000 элементов
не было
выбрал метод And (логическое умножение)
2016-10-08 20:57 Коллекция графов Hashtable + 20 30 мин.
ListDictionary рекомендуется для коллекций не более 10 элементов
Hashtable коллекция упорядоченная по хэш коду, рекомендуется использовать для быстрого поиска
HybridDictionary до небольшого кол-ва элементов это ListDictionary, после прохождения контрольной точки (по умолчанию 8) , работает как HashTable
не было
по добавлению элементов самый медленный ListDictionary,
Hashtable c HybridDictionary примерно одинаково, но Hashtable немного-немного медленнее
(пробовал при кол-ве элементов 60 000)
2016-10-06 17:38 Коллекция графов ListDictionary + 20 30 мин.
познакомился с ListDictionary, применять его можно, при небольшом кол-ве элементов.
в ListDictionary хранятся ключ и значение. также можно обращаться и по индексатору

не было
попробовал функцию Contains содержит ли коллекция искомый ключ
2016-10-05 09:36 Коллекция графов Array vs List + 21 30 мин.
наглядно увидел в сравнении скорость работы массива, arrayList и типизированного листа
массив самый быстрый(но у него есть преимущество, задан размер ), второй типизированный лист и последний - arrayList
не было
сравнил также метод Clear, естественно работает быстрее у типизированного List
2016-10-04 18:46 Коллекция графов List + 20 30 мин.
ходить по коллекции используя свойство перечислителя MoveNext
не было
попробовал использовать метод  ConvertAll, работает через делегат Converter.
сконвертировал исходный лист из int в long
2016-10-03 12:08 Коллекция графов ArrayList + 1 30 мин.
ArrayList не использовал ранее, а использовал дженерик List, но все равно полезно для понимания
Узнал что при добавлении элементов, фактическое содержание увеличивается в 2 раза
найти изначальную емкость пустого ArrayList = 16
LastIndexOf возвращает номер позиции
2016-09-29 09:30 Итератор ФИНАЛЬНЫЙ УРОК + 20 10 мин.
на текущем уроке ничему, в целом на курсе да научился )
не было
отличный курс, полностью помог разобраться с интерфейсами и их реализацией iEnumerator, iEnumerable, постиг магию оператора yield, также понял, что не обязательно создавать класс для перебора, вместо класса используем метод с оператором yield. Следующий курс видимо будет "Бурные потоки"
2016-09-28 10:15 Итератор Итератор. Один метод вместо классов. + 20 20 мин.
Убедился в необязательности в создании класса
все ок
классный курс, проникся магией оператора yield
2016-09-27 14:30 Итератор Итератор. Список простых чисел. + 20 1 час. 00 мин.
формировать список по мере обращения
не было
все ок
2016-09-26 10:30 Итератор Итератор. Волшебное слово yield. + 20 1 час. 00 мин.
использовать yield -  скрытно реализует интерфейс IEnumerator
все ок
все ок
2016-09-25 20:12 Итератор Итератор. Зачем нужно два класса + 20 1 час. 00 мин.
форматированию пробелов, понял зачем выделять реализацию IEnumerable от IEnumerator
ровно отобразить таблицу умножения
все ок
2016-09-23 20:43 Итератор Итератор. Перебор простых чисел. + 20 30 мин.
явному указанию какой интерфейс реализуем
не было
все ок
2016-09-22 20:15 Итератор Итератор. Перебор чисел в итераторе. + 20 30 мин.
реализации метода MoveNext
не было
все ок
2016-09-21 18:59 Итератор Итератор. Создание пустого итератора. + 20 30 мин.
ознакомился с итерфейсами IEnumerable, IEnumerator
Итератор используется для прохода по всем элементам объекта, т.е. для возможности использования цикла foreach
не было
все ок
2016-09-20 17:34 Итератор Итератор. Разложение числа на простые множители. + 20 20 мин.
алгоритму  разложения на простые множители
не было
все ок
2016-09-17 19:17 Теория ООП Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. + 20 1 час. 00 мин.
реализации метода - "поймал" разных объектов, кругов и квадратов
не было
все ок
2016-09-16 16:44 Теория ООП Интерфейс. VIP. Пересечение прямоугольников. + 20 20 мин.
ничему
не было
все ок
2016-09-16 16:24 Теория ООП Интерфейс. VIP. Квадратики тоже хотят играть. + 20 30 мин.
ничему
не заработало функция поймал, ссылки на работе не доступны, буду смотреть на след. уроке
все ок
2016-09-15 14:38 Теория ООП Интерфейс. ФИНАЛЬНЫЙ УРОК. + 22 30 мин.
ничему
не было
наглядно увидел силу ООП, как легко можно менять игру (реализацию) , если правильно продумать абстракцию
Доходчиво, легко объясняет Евгений. Красивая задача получилась! Теорию я знал и ранее практики нет. Хороший пример чтоб самому начать мыслить объектами! Следующий курс подберу с использованием делегатов, событий. Евгений какой порекомендуете?
2016-09-15 14:06 Теория ООП Интерфейс. Создаём новую игру. + 22 30 мин.
ничему
продумать реализацию  SetNewVirus(Игрoк), FindNewVirus()
FindNewVirus() используем вложенные циклы, верхний цикл бежим по всем вирусным игрокам, вложенный цикл по всем игрокам(внутри проверка если не зараженный), если зараженный поймал не зараженного- заражаем SetNewVirus
SetNewVirus(Игрoк) добавляем в массив зараженных и вызываем метод Голя.
После этого проверка, если не зараженных остался один , то массив зараженных чистим и добавляем последнего пойманного
все ок
2016-09-14 15:05 Теория ООП Интерфейс. Изменяем правила игры. + 20 30 мин.
ни чему
не было
моя версия в предыдущей задаче- хранить предыдущего лидера, меньше строчек кода )
Новое правило - игра колдуны, "Голя" кого нить догнал, тот игрок останавливается на какое- то определенное время,
"Голя" пытается догнать всех остальных, т.е. всех остановить, если ему это удалось, последний пойманный становиться "Голей"
2016-09-14 13:42 Теория ООП Интерфейс. Кружочки гоняются друг за другом. + 20 30 мин.
ничему
все круги были одного цвета, проблему нашел, при прорисовки круга не брался цвет с экземпляра а указывался явно, моя ошибка
Чтоб исправить ошибку с переГолированием, ввел новое поле "Предыдущий лидер" в класс GameCatch, добавил проверку не являлся ли пойманный игрок предыдущим лидером, если являлся - назначение лидера не происходит, работает
2016-09-14 12:28 Теория ООП Интерфейс. Кружок готов к игре! + 20 30 мин.
Обращаться к текущему экземпляру объекта через this без параметров
не было
Видимо, для запуска игры запускать циклически с паузами gameCatch.Step() предварительно создав экземпляр на форме GameCatch
2016-09-13 19:40 Теория ООП Интерфейс. Кружок хочет играть. + 20 30 мин.
ничему
метод беги мне представляется изменением координатов круга рендомными смещениями по x и y,
метод поймал - если круг лидер после смещения залез на другой круг
все ок
2016-09-11 16:17 Теория ООП Интерфейс. Запускаем кружки на площадку! + 20 30 мин.
закрепляю работу с грфикой
не было
метод Clear немного надо изменить на graphics.Clear(picture.BackColor ) - вместо статичного указанного цвета, а то изначально в дизайнере можно указывать только тот цвет, который используется в коде, но это мелочи...
       
2016-09-09 16:04 Теория ООП Интерфейс. Кружок на площадке. + 20 30 мин.
рисовать круги закрепил
подбирать параметры для рисования
все ок
2016-09-08 14:57 Теория ООП Интерфейс. Площадка для игры. + 20 30 мин.
закрепил работу с графикой
не было
класс арена нужен для создания, рисования рендомных фигур, т.е. приступили к реализации задуманной абстракции
2016-09-07 16:59 Теория ООП Интерфейс. Создаём кружок. + 20 30 мин.
ничему
продумать дальнейшие действия, далее должны видимо инициализировать круги и заполнять список игроков
все ок
2016-09-07 16:36 Теория ООП Интерфейс. Алгоритм игры. + 20 20 мин.
необходимо реализовать интерфейс, заполнить список игроков
понять постановку задачу, только на этом уроке понял, что должны реализовывать методы с интерфейса
все ок
2016-09-07 16:20 Теория ООП Интерфейс. Правила игры. + 20 1 час. 00 мин.
своя реализация:
private void SetNewLeader(Игрок gamer)
        {
            leader = gamer;
        }

        private void FindNewLeader()
        {
            foreach (var gamer1 in gamers)
            {
                foreach (var gamer2 in gamers)
                {
                    if (gamer1.Поймал(gamer2))
                    {
                        SetNewLeader(gamer2); 
                        return;
                    }
                }
               
               
            }   
        }
понять смысл методов SetLeader и GetLeader
все ок
2016-09-07 14:37 Теория ООП Интерфейс. Зачем он нужен. + 20 10 мин.
интерфейс содержит сигнатуру, которую потом реализовывают классы наследуемые от интерфейса
не было
все ок
2016-09-07 14:11 Теория ООП ПОЛУФИНАЛЬНЫЙ УРОК. + 20 10 мин.
ни чему
все ок
хорошо доходчиво объясняет Евгений, примеры отличные все хорошо понимается, теорией я и до курсов владел, но практически не применял, хочу научится мыслить объектно и применять на практике, были моменты которые не знал, например вызов базового метода из дочернего.
2016-09-07 13:54 Теория ООП Перемещение Снеговиков + 20 30 мин.
обращаться к базовому методу через base
не было
все ок
2016-09-07 13:01 Теория ООП Перемещение других фигур + 20 30 мин.
ничему
подбирать координаты
все ок
2016-09-06 17:43 Теория ООП Перемещение круга + 20 30 мин.
ничему
  4. Измeнить мeтoд Circle.Move() чтoбы кpyжoк пeрeмещался.
В задание неправильно указан метод, изменить надо Circle.Draw, а то тыкался, пришлось повторно видео пересматривать, ну это мелочи
все ок
2016-09-05 15:20 Теория ООП Спрайт для Снеговика + 20 30 мин.
пример класса: при первичной инициализации пустой список, с возможностью добавления элементов
с методом SetGraphic подзапутался, в каких местах вызывать...
все ок
2016-09-05 14:38 Теория ООП Мощь полиморфизма + 20 20 мин.
синтаксису переопределяемых методов
не было
все ок
2016-09-03 19:54 Теория ООП Переезд graph в базовый класс + 20 1 час. 00 мин.
теория и была в голове, смотрю как на практике происходит, надеюсь скоро научусь также объектами мыслить
не было
все ок
2016-09-02 16:53 Теория ООП Переезд метода Draw + 20 30 мин.
конструкция typeOf работает корректней чем моя, пришлось добавить  !(shape is  ColorCircle)
if (shape is Circle && !(shape is  ColorCircle))
                (shape as Circle).Draw();
предыдущий комментарий
все ок
2016-09-01 20:13 Теория ООП Приведение с мотором + 20 10 мин.
ничему. в классе Shape, Pixel разместили для определения смещения снеговика
не было
все ок
2016-09-01 19:43 Теория ООП Фигуральный базовый класс + 20 30 мин.
хорошая идея создать пустой базовый класс для объединения в один массив объектов, у которых нет ничего общего.
функцию Draw реализовал через if -  if (shape is line) Draw(shape as line) ...
не было
все ок
2016-09-01 18:59 Теория ООП Богатое наследство + 20 30 мин.
Научился синтаксису вызова базового конструктора из дочернего.
Наследование это перенос всех полей, методов... все что содержится  в родительском объекте в объект дочерний.
Короче говоря, избавление от копи-паста
не было
хорошо объясняет человек
2016-08-31 17:36 Теория ООП Второй Снеговик + 20 30 мин.
ни чему
придумать как изменять координаты, кроме ползунков на каждый параметр, которые озвучили на уроке не пришло лучше мыслей, видимо надо создавать какой то класс в котором объединяются все элементы в один снеговик и через один метод который реализуется несколькими методами меняются координаты размер или поворачиваются все элементы снеговика
все ок
2016-08-30 19:08 Теория ООП Рисуем Снеговика + 20 30 мин.
ничему
не было
все ок
2016-08-28 17:26 Теория ООП Цветные карандаши + 20 30 мин.
усваивается инкапсуляция , множественные конструкторы
не было
все ок
2016-08-27 20:42 Демо софт Двенадцать месяцев + 20 30 мин.
ничему
не было
хороший урок для начинающих
2016-08-26 11:40 Теория ООП Расстояние между пикселями + 20 1 час. 00 мин.
закрепил вызов через другой конструктор this
не было
все ок
2016-08-25 13:08 Теория ООП Пиксели для классов + 20 1 час. 00 мин.
вызов одного конструктора из другого использование this
не было
все ок
2016-08-25 10:17 Теория ООП Структура vs Класс + 20 40 мин.
Понимание было про отличие классов, но все равно полезно.
Структура значимый тип, класс ссылочный тип. Структура хранится в стеке, класс в куче.
При передаче структуры в качестве параметра в функцию, происходит копирование и сам входящий параметр не меняется, в случае класса передается ссылка и по ссылке значение меняются. В структуре нельзя определит дефолтный конструктор. В структуре нельзя определить финализатор. Структура это маленький класс. От структуры нельзя наследоваться.
не было
доходчиво объясняет человек
2016-08-24 09:49 Теория ООП Структура пикселя + 20 20 мин.
больше появилось понимания отличия структуры от класса
подбирать координаты точек, подсматривал в видео уроке
все ок
2016-08-23 16:58 Теория ООП Круглый класс + 20 30 мин.
Рисовать круг
сам бы координаты долго подбирал
все ок
2016-08-23 12:52 Демо софт Вам телеграмма! + 20 30 мин.
ничему
скрин телефона отправить на комп, с работы это сложно сделать
скидки на пакеты уменьшили для формулистов - это печально
2016-08-22 19:57 Теория ООП Второй класс + 21 30 мин.
ничему
не было
хороший понятливый урок
2016-08-22 19:15 Теория ООП Первый класс + 20 30 мин.
ничему
не было
хорошо, наглядно объясняет человек
2016-08-18 15:41 Теория ООП Урок рисования + 20 20 мин.
использовать классы Bitmap,  Graphics,      Pen,  ранее никогда не рисовал в c#
сам бы я долго подбирал координаты
все ок
2016-08-18 14:38 Теория ООП Инкапсуляция мечты + 20 30 мин.
Инкапсуляция - управление данными через методы, скрытие данных от других кусков программы, объединение данных и методов
не было
хороший вводный урок
2016-08-17 10:53 Демо игры Лабиринт 2D - меню + 20 30 мин.
ничему
подобрать звук
Объясняет хорошо Евгений
2016-08-15 16:24 Демо игры Картинка с секретом + 20 1 час. 00 мин.
координаты на форме относительно какого ли объекта использовать
сложного не было
хороший урок для начинающих, немного показалось затянуто,  т.к. опыт определенный у меня есть
2016-08-15 13:15 Демо софт Вступительное слово + 20 30 мин.
ничему
не было
ранее создавал программы нативным методом, без знаний ООП, хочу научится писать в хорошем стиле
  Нано-игры Арканоид - Уровень и ракетка   Открыто


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





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

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

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

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


Научился: ArrayList не использовал ранее, а использовал дженерик List, но все равно полезно для понимания Узнал что при добавлении элементов, фактическое содержание увеличивается в 2 раза
Трудности: найти изначальную емкость пустого ArrayList = 16
LastIndexOf возвращает номер позиции


Научился: Инкапсуляция - управление данными через методы, скрытие данных от других кусков программы, объединение данных и методов
хороший вводный урок