Курсы для программистов

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

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

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Создаём графику 00:28:12
130 чел. ★ 4.9 Done
  Первый урок.
Анализ проекта, создание формы, инициализация графики, рисование окружностей.

Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Так как эллипс размером 16, то сделал смещение в половину (8), чтобы круг рисовался вокруг кончика курсора. 
2 Движение шарика 00:31:11
116 чел. ★ 4.9 Done
  Второй урок.
Добавление таймера, создание функции для изменения координат, реализация отскока шарика от краёв картинки, учёт размера кружка, стирание старого положения.

Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Подобное реализовывалось при прохождении других курсов, поэтому сложным не было, практика лишней не бывает =) 
3 Новый класс Graph 00:29:03
93 чел. ★ 4.9 Done
  Третий урок
Создание класса Graph и перенос в него всех действий с графикой.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 03 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Создал публичные функции для очистки и инициализации ручек, чтобы не инициализировало дважды. Теперь после создания экземпляра graph, вызываем в необходимой последовательности созданные функции. Инициализации и последующей очистки поля с новыми параметрами цвета. Может быть стоит объединить их воедино и просто при вызове graph.Clear() проводить инициализацию, так как всё равно очищаем поле, но тут фишка в том, что если нам просто нужно очистить поле с текущими параметрами, вызов только очистки намного быстрее, чем ещё напрягать лишними телодвижениями, если при этом цвета не менялись. 
4 Новый класс Figure 00:31:21
83 чел. ★ 5 Done
  Четвёртый урок
На этом уроке мы вынесем всю логику работы с координатами в отдельный класс Pixel и в конце добавим ещё одни шарик в наш "Хранитель экрана".

Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 03 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Заменил лишние переменные одним списком фигур. Добавил три фигуры разной формы и направления движения. Сделал два скриншота, на одном из которых не очищен фон во время инициализации поля, чтобы было видно траектории передвижения фигур. Поле размера фигуры сделал публичным, чтобы можно было сразу добавлять в список создаваемый экземпляр с указанием необходимых параметров. 
5 Новый класс Polygone 00:30:58
75 чел. ★ 4.9 Done
  Пятый урок
На этом уроке мы закончим создание хранителя экрана.
Мы создадим класс Polygone для хранения многоугольника.
Также добавим в класс Graph метод для его рисования.
В результате получится забавный анимированный многоугольник + потенциал для дальнейшего развития программы.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 05 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Замыкание последней точки с первой реализовал сам, а уже в конце видео увидел как это реализовал Игромистр, оставил свой вариант, плюс проверяется, равны ли точки, если да. то не отрисовывать между ними линию. з.ы. Ушло много времени на эксперименты. =) 
6 ПОЛУФИНАЛЬНЫЙ урок 00:23:23
51 чел. ★ 4.9 Done
  Задание:
Записать видео обзор созданного хранителя экрана.
Рассказать, понравился ли тебе курс, чему ты научился, что было самым сложным.

Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 10 мин. [Показать отчёт]
Научился: Закрепил пройденное, повторил тригонометрию. 
Сложности: найти время 
Комментарии: Решил реализовать пятиконечную звезду, которая была доп. заданием со звёздочкой в одном из прошлых уроков. Сделал набросок в тетради, не самый идеальный в плане симметрии, но в данном случае это было не важно, так как задача была в том, чтобы вычислить относительные координаты, по которым будет строиться звезда. Отличный курс, замечательная идея реализации Хранителя экрана, ещё в 9х годах подобные вещи завораживали детские умы. 
Видеообзор: TOaG7Tuoh6k
7 Форма настроек 00:23:24
44 чел. ★ 5 Done
  Шестой урок
На этом уроке мы создадим форму для выбора настроек нашего Хранителя экрана.
Можно будет выбрать цвет фона и цвет линий, а также количество вершин.
форма будет создана в новом классе Window Forms.
Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт]
Научился: ColorDialog 
Сложности: найти время 
Комментарии: Отличный урок, работа с новым компонентом WF в копилку =) 
8 Применение настроек 00:29:52
44 чел. ★ 5 Done
  Седьмой урок
На этом уроке мы добавим кнопку Сохранения настроек
и сделаем применение выбранных параметров.
Для этого нам нужно будет организовать
передачу данных между формами.
Для применения всех настроек придётся дорабатывать
классы Graph и Figure, писать алгоритм
для добавления/удаления вершин
и создания случайной фигуры.
Придётся дорабатывать
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 45 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Реализовал добавление/удаление вершин многоугольника через класс Polygone(). Добавил в настройки выбор толщины линий. Реализовал отмену через закрытие настроек по крестику. Генерация рандомного направления движения реализовано через цикл, исключающий значение равное 0. Отличный урок, позже планирую добавить ещё настроек =) 
9 Использование реестра 00:29:45
44 чел. ★ 5 Done
  Восьмой урок
На этом уроке мы будем сохранять параметры в реестре и считывать их оттуда.
Функции для работы с реестром вынесем в отдельный статический класс.
Сделаем считывание и сохранение всех трёх параметров:
цвет фона, цвет линий, количество вершин.
Отчёт отправил: 10558. Иван Воронин Выполнено за 53 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Отличный урок, правда TryParse уже в себе имеет проверку и его не нужно проверять через if, задаётся начальное значение переменной и если TryParse удался, то он его меняет, если нет, не меняет и вручную это делать не нужно. Так же сразу бросилось в глаза использование цикла для добавления вершин в полигон после загрузки настроек из реестра. Ведь у нас уже имеется для этого функция AddPoints(), которую написали на прошлом уроке, как раз идеально подходит для этого, ведь после инициализации полигона там количество равное 0, а любое значение, которое взяли из реестра будет более 0, значит именно AddPoints() отлично подходит. 
10 Параметры командной строки 00:22:41
42 чел. ★ 5 Done
  Девятый урок
На этом уроке мы узнаем,
как нужно управлять запуском стандартных хранителей экрана.
Какие параметры командной строки для этого используются.
Добавим анализ аргументов командной строки
в свою программу, в зависимости от которых
будем открывать либо настройки программы,
либо запускать хранитель экрана.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 10 мин. [Показать отчёт]
Научился: Узнал о ключах /s /c для скринсейверов. 
Сложности: найти время 
Комментарии: Отличный урок, как то ранее не задавался вопросом, как работаю скринсейверы, но узнав о стандартных ключах, стало всё на свои места. Спасибо. з.ы. Добавил ещё параметров для скринсейвера: ползунок для установки скорости анимации, галочки для выбора, какие объекты будут отрисовываться на экране. 
11 Полноэкранный режим 00:13:58
42 чел. ★ 5 Done
  Десятый урок
На этом уроке мы переделаем нашу заставку чтобы она работала в полноэкранном режиме.
Для этого уберём заголовок, установим аттрибут "поверх всех окон".
Создадим ещё один конструктор, которому будем передавать размеры основного экрана.
Отчёт отправил: 10558. Иван Воронин Выполнено за 19 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Реализовал изменение размеров формы и использовал док фил для автопилота, так же центр скрин не трогал, очень даже красиво справляется со своей задачей, см. скриншот. 
12 Режим предобзора и установка 00:25:51
42 чел. ★ 5 Done
  Одиннадцатый урок, последний
На этом уроке мы закончим создание хранителя экрана.
Сделаем самую сложную часть - вывод предобзора в окно вызвавшей программы.

Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: Повторил пройденное (в курсе сапёра проходили подобное, когда бота писали) 
Сложности: найти время 
Комментарии: Добавил динамическое вычисление размеров объектов, чтобы и на превью и на весь экран было более адекватный размер. Данные WinAPI функции использовали уже в курсе Сапёра на C#, когда писали бота, который вычислял размеры окна игры, то данный урок был повторением в данном вопросе, что касается параметров запуска, я их тоже реализовал через Split(), как говорится, малоли, координаты двоеточия могут измениться =) Отличный урок, по поводу не вызванного конструктора, ждал до последнего, думал будет ход финтом, но нет, решили вынести всё во вспомогательную функицю и вызвать опять первоначальный конструктор, тоже вариант, но я думал будет определения размеров и вызов промежуточного конструктора, передав его необходимые резмеры, так как он уже в своём случае вызывает базовый конструктор. 
13 ФИНАЛЬНЫЙ урок 00:23:23
36 чел. ★ 4.9 Done
  Задание
Высказать свой отзыв об этом курсе
записав видеообзор полученной программы.

Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Добавил настройки типов объектов: Круг, Квадрат, Полигон(Многоугольник), Звезда. Добавил настройку толщины линий. Добавил настройку скорости анимации. Добавил настройку количества следов шлейфа за объектами (использовал Queue). Добавил настройку переливающихся цветов (реализовал свитч для анимации). Последние две настройки реализовал за 1 час и 45 минут, специально для Финального урока. Отличный курс, всем советую, очень много полезной информации и практики даёт. 
Видеообзор: 15Bpn0MZ6h8
14 VIP. Говорящие часы. Запись голоса 00:57:32
33 чел. ★ 5 Done
  На уроке создаём программу для записи звуковых файлов,
которые будут использованы для создания говорящих часов.
Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: NAudio 
Сложности: найти время 
Комментарии: Оптимизировал количество файлов, их получилось 36. Реализовал круглый лейбл, на который надо наводить и говорить. Библиотеку скачал и установил через NuGet. Отличный урок, очень понравился, всё коротко и ясно. з.ы. делал урок в два этапа, так как началась школьная пора, то подобные блинные уроки с первого захода времени не хватает, пришлось разбить по времени на 1,5 часа и 1 час позже, в сумме вышло 2,5 часа. 
15 VIP. Говорящие часы. Воспроизведение 00:38:41
31 чел. ★ 5 Done
  На уроке пишем программу,
которая показывает и говорит текущее время
Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Закрепил запись с микрофона 
Сложности: найти время 
Комментарии: Реализовал оптимизированный список необходимых файлов. Реализовал функции с общей озвучкой чисел. Объединил формы записи голоса и часов в одной программе. Добавил меню, через которое можно вызывать запись голоса. Используется один общий массив файлов для записи и воспроизведения. Реализовал озвучку секунд. Реализовал воспроизведение каждый час. При открытии записи голоса, основное окно скрывается. При закрытии окна записи голоса высвобождаются ресурсы и отображается основная форма. Отличные вип уроки, очень понравились, ребёнок в восторге. 
  Итого:   15 видеоуроков 7 час. 19 мин.
17 чел. ★ 4.97  
  Финалисты:   Олюшка,   Денис,   Дмитрий,   Андрей Поляков,   Артём,   Permitin Alexey,   Валерий Жданов,   Алексей В.,   Станислав,   Tekashnik,   Иван Воронин,   Neverwinter 2,   Новопашин Владимир,   Александр,   Yefim,   superGrover,   MaxB .

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





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

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

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

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


Научился: Практика в формулировании текста для видеобзора.
Трудности: Найти подходящее время для записи видео, чтобы не мешали посторонние звуки, подбор текста. Однако, после полуфинального обзора в этом же видеокурсе, финальный обзор дался сравнительно легко.
Огромное спасибо Евгению Витольдовичу за такой замечательный видеокурс и за создание проекта videosharp.info!
Смотреть видеозапись: http://www.youtube.com/watch?v=9mxVsbjri3c&feature=youtu.be


Научился: Скорее повторила прошлый опыт)
Трудности: Настроиться на съемку:)
На данном этапе что-то пошло не так с моей программой, это видно в видеоотзыве, но, надеюсь, что у меня получиться справиться с этой проблемой!:)