C# дистанционное обучение

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

основатель — Волосатов Евгений Витольдович

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

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

После взноса  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 State - Вступление 00:08:34
2 теста
22 чел. ★ 4.8 Done
  Мы начинаем знакомство с шаблоном проектирования Состояние.
На этом уроке мы узнаем назначение этого шаблона и его отличия от Стратегии.
Далее мы напишем две программы:
игру Камень-ножницы-бумага и целый Калькулятор.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 7 час. 10 мин. [Показать отчёт]
Научился: поведенческий шаблон проектирования Состояние очень напоминает перегружаемые методы В зависимости от контекста один и тот же интерфейс, как я понял из вводной, способен по-разному выполнять свои задачи Простейший пример - старый плёночный магнитофон, в зависимости от того,  в каком он состоянии (в каком режиме работает), от него получают разный результат (музыка играет или наоборот что-то записывается в этот момент), и доступны разные функции. К примеру, когда идет запись, невозможно включить перемотку Отличие шаблона Состояние от шаблона Стратегия в бОльшей гибкости, если Стратегия выбирается и шаг вправо, шаг влево - запрет, то Состояние не имеет этих ограничений Вспомнилась старая песня Толкуновой о женской жизни от младых ногтей, до старости - не Стратегия, ибо возможны девиации Как раз ближе к Состоянию - в разные периоды у дам разные задачи и цели и переходы из одного в другое состояние возможны вариативно 
Видеообзор: ZmNJcxUtKrM
2 State - КНБ - States 00:09:45
1 тест
20 чел. ★ 5 Done
  Мы начинаем создание программы "Камни, ножницы, бумага"
для демонстрации шаблона проектирования: "State".
На этом уроке мы подготовим основные классы и интерфейс.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 37 мин. [Показать отчёт]
Научился: метод context.show(); становится перегружаемым из класса State.java В классе состояния камня на второй иллюстрации тестово поменяли камень на бумагу и вывели результат на экран В среднем окне видно, что один и тот же оператор context.show(); выводит разные значения в консоль после изменения состояния в классе Камня Прикрутив к этой конструкции рандомайзер получим отличную игру 
3 State - КНБ - Play 00:12:58
1 тест
20 чел. ★ 5 Done
  Мы продолжаем создание программы "Камни, ножницы, бумага"
для демонстрации шаблона проектирования: "State".
На этом уроке мы реализуем необходимые алгоритмы для того,
чтобы можно было полноценно поиграть.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт]
Научился: Java from 7th version allow to use String argument in switch-case construction Чуть-чуть наморщил мозг и счётчик добавил через статические переменные в классе пр0грам ) 
4 VIP - State - КНБ - JFrame 00:10:08
1 тест
20 чел. ★ 5 Done
  Мы закончили создание программы "Камни, ножницы, бумага"
для демонстрации шаблона проектирования: "State".
Но на этом уроке мы добавим GUI интерфейс на основе JFrame.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 43 мин. [Показать отчёт]
Научился: адаптация методов из войда в возвращающие строковый тип снова дала ошибку анричбл код - не затормозил и сделал скриншот (иллюстрация номер ноль) Очень показательно, если метод уже вернул требуемое значение, то дальнейшие строки уже не читаются компилятором и находятся вне зоны доступа Решение простое - недоступные строки перенеси ДО ритёрна JFrame - библиотека джавы, ответственная за графические объекты, позволяет создавать экранные формы в отличие от консольных программ 
5 VIP - State - КНБ - JButtons 00:12:11
1 тест
20 чел. ★ 5 Done
  Мы продолжаем создание GUI интерфейса для игры "Камни, ножницы, бумага".
На этом уроке мы исправим косметические ошибки и продолжим
реализовывать GUI интерфейс для возможности полноценной игры.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 2 мин. [Показать отчёт]
Научился: пробовал вчера добавить остальные кнопки - также получил отображение лишь последней по коду кнопки Бумага Оператор setLayout (new GridLayout (5, 1)); создающий сетку для размещения кнопок вчера не нашел Счетчик приделал - благо задел уже был из консольной версии, жаль + "\n» не переводит строку, как хотелось - надо еще разобраться с этим 
6 ПОЛУФИНАЛЬНЫЙ УРОК без видео
1 тест
12 чел. ★ 4.8 Done
  Поздравляю c завершением первой части курса.
Напиши, чему ты научился, нравится ли тебе данный шаблон.
Какие видишь преимущества и недостатки.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 33 мин. [Показать отчёт]
Научился: шаблон Состояние хорошо подходит для написания интернет-магазина в части Корзина-Покупка. В зависимости от состояния покупки, до какой стадии добрался посетитель сайта, ему должны становиться доступны различные возможности и естественно, отключаться ненужные. К примеру, правка содержимого корзины должна становиться недоступной с момента перехода к оплате корзины, иначе неясно за что оплачено, за что нет. До оплаты должны быть доступны варианты платежа, после транзакции, это должно стать информацией о совершенном покупателем выборе. В рассмотренной игре КАМЕНЬ-НОЖНИЦЫ-БУМАГА состояния были реализованы классами StateKam.java StateNoz.java State Bum.java В каждом из этих классов предусмотрели три игровых метода, для каждого из вариантов, выбрасываемых игроком. Для выброшенного камня ответы не сходились с классом, разработанным для состояния «выброшены ножницы», и аналогично с состоянием «выброшена бумага». Курс прекрасен отличным аудиорядом - никаких проблем с громкостью здесь не наблюдалось. Уроки краткие, с выделением времени на выполнение таких уроков не возникает проблем. И да, как же хорошо не смотреть на клавиши ноута при наборе текста! Ошибаюсь до сих пор, но уже начал получать удовольствие от такого набора текста. Спасибо за Марафон!  
Сложности: Понять, насколько облегчается понимание кода, если давать ПРАВИЛЬНЫЕ И СООТВЕТСТВУЮЩИЕ функционалу имена полям и методам 
7 State - Целый калькулятор - States 00:15:30
1 тест
19 чел. ★ 5 Done
  Мы начинаем создание целого калькулятора для демонстрации
использования шаблона проектирования State.
На этом уроке мы изучим работу калькулятора.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 29 мин. [Показать отчёт]
Научился: число плюс равно даст в результате на калькуляторе удвоенное число введенное до плюса Получив задание наваять граф по функционалу калькулятора, вспомнил о draw.io Результат изысканий на иллюстрации номер 0 Попробовал поиграть с графическими шаблонами, доступными на draw.io 
8 State - Целый калькулятор - Context 00:09:57
1 тест
20 чел. ★ 5 Done
  Мы продолжаем создание целого калькулятора для демонстрации
использования шаблона проектирования State.
На этом уроке мы реализуем базовую логику.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 26 мин. [Показать отчёт]
Научился: в икс будет передаваться первый операнд, в игрек - второй, строковая переменная оп будет хранить знак операции, тип Стейт будет отвечать за текущее состояние калькулятора Для каждого из состояний создали класс, имлементирующий Состояние 
Сложности:  
9 State - Целый калькулятор - Press key 00:08:36
1 тест
20 чел. ★ 5 Done
  Мы продолжаем создание целого калькулятора для демонстрации
использования шаблона проектирования State.
На этом уроке мы реализуем основной класс Program(),
чтобы можно было тестировать написанный код.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 9 мин. [Показать отчёт]
Научился: в конструкте switch-case наваял для каждого кейса повторяющиеся методы в каждой строке, и лишь по видео вспомнил, что повторы можно не писать, а указать лишь последний Но работает и так с излишностями ) В тестировании снова чудил - проверял как добавить умножение на 10 вводя двузначное число десять, забыв про цифровой ввод - со второй попытки дошло, что вводить надо просто ноль )  
10 State - Целый калькулятор - Logic 00:14:28
1 тест
20 чел. ★ 5 Done
  Мы продолжаем создание целого калькулятора для демонстрации
использования шаблона проектирования State.
На этом уроке мы реализуем переход между состояниями ввода данных.

Постарайтесь самостоятельно найти все ошибки в программе.
Потом сравните со списком ошибок, которые нашёл Иван Воронин:
https://www.videosharp.info/10558/checking/design-state=1510
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 41 мин. [Показать отчёт]
Научился: в конструкте свичкейс нашел ошибки - вычистил. Они видны в прошлом отчете, если кто смотрел иллюстрации, там где я нашлёпал лишних, но ещё и неверных операторов Попробовал сброс ввода литерой с - не сбрасывает Искал недолго - стояла русская раскладка клавиатуры, переключив на латиницу сброс работал успешно без перезапуска приложения  
11 State - Целый калькулятор - 16 кнопок 00:26:07
1 тест
20 чел. ★ 5 Done
  На этом уроке мы сделаем графический интерфейс для калькулятора.
Попрактикуемся в использовании JFrame, JButton, JLabel, JPanel.
Немножко доработаем контекст и состояния.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 5 час. 19 мин. [Показать отчёт]
Научился: чтобы оживить кнопки от джифрейма, им надо применить метод addActionListener, который потребует имплементации экшнЛиснера, а также наличия метода void actionPerformed(ActionEvent e), отвечающего за событие нажатия кнопки Действительно, программулина получилась душевная и годная для переделки под различные задачи - в зависимости от Состояния приложение обрабатывает одинаковую команду (метод) по-разному. Вот здесь весь оверрайд и кстати! 
12 State - Целый калькулятор - Fix Bugs 00:10:45
1 тест
18 чел. ★ 4.9 Done
  На этом уроке мы исправим ошибки,
которые были допущены при реализации
функций перехода между состояниями.


Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 29 мин. [Показать отчёт]
Научился: ошибки видел, но исправить не брался, радуясь уже тому, что курс удается повторить без ошибок фатального характера, как это было в Комбинаторике, где нужный класс отрабатывал не так, как в видео. Подозревал тому причиной различия в хардвере, студия под ПК и студия под Мак выглядят даже интерфейсом по-разному, что говорить о функциональности, естественно, она должна варьироваться. Ошибки совершал свои лично, их пока удается нейтрализовать, что уже радует 
13 ФИНАЛЬНЫЙ УРОК без видео
2 теста
10 чел. ★ 5 Done
  Поздpaвляю!
Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест".

Напиши отзыв или видеообзор по этому видеокурсу.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт]
Научился: в начале ролика видео с Дикаприо, когда он летел в Россию и мотор загорелся - тоже про состояния полёта и реакцию паксов ) Курс достаточно ясно излагает смысл стейтпаттерна, кода немного, в финале - красивая экранная форма с калькулятором. Возможность для развития программы - к кнопкам можно прикрутить иной, нужный по ТЗ функционал, а интерфейс + классы состояний позволяют сделать разноплановый отклик на одни и те же запросы пользователя в зависимости от контекста. Почву под ногами этот курс почувствовать позволяет более чем. Спасибо за уроки! 
Видеообзор: l7IxraKNzZk
  Итого:   13 видеоуроков 2 час. 18 мин.
15 тестов
10 чел. ★ 4.97  
  Финалисты:   Сергей Соколов,   Иван Воронин,   Алексей Малышев,   Александр,   Новопашин Владимир,   Tekashnik,   Виктор,   Dmitry Sinitsin,   Yefim,   Anatoli .

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





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

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

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

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


Научился: закончил обучение по шаблону Состояние
замечательный курс по шаблону Состояние в рамках которого был написан калькулатор.


Научился: Отличный паттерн программирования State. Его возможное широкое применеие делает обязательным к изучению, для каждого уважвющего себя программиста. Рекомендован к изучению
Трудности: Вспомнить, что из себя представляет данный паттерн))