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 Iterator - Numbers - Introduction 00:05:39
1 тест
24 чел. ★ 4.8 Done
  Мы начинаем знакомство с самым популярным, используемым
и самым востребованным шаблоном проектирования: "Итератор".
Так же мы создадим базовый интерфейс, который является
основой для последовательного перебора любых объектов.
Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт]
Научился: Общему интерфейсу итератора в Java 
Сложности: найти время 
Комментарии: Начало интересное, идём дальше. з.ы. hasNext() и next() использовалось в Scanner =) 
2 Iterator - Numbers - 12345 00:04:27
1 тест
22 чел. ★ 5 Done
  Мы продолжаем знакомство с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы создадим класс NumbersIterator()
реализовав интерфейс Iterator для перебора целых чисел.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Вынес статичные константы мин и макс значений итератора в класс Program(), для удобства настройки, если что. Реализовал перебор значений итератора от мин до макс. Так же решил использовать свой стиль консольных отчётов для наглядности. Сгенерировал jar файл и запустил его из консоли для лучшей наглядности. з.ы. Так же избавился от статика (надо вырабатывать привычку). 
3 Iterator - Numbers - Iterable 00:04:44
1 тест
22 чел. ★ 5 Done
  Мы продолжаем знакомство с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы создадим класс Program() в котором продемонстрируем
как работать с созданным ранее итератором NumbersIterator().
Отчёт отправил: 10558. Иван Воронин Выполнено за 45 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Очень интригующий урок, не стал специально гуглить, лучше в след. уроке узнаю, зачем же нам нужен интерфейс Iterable =) з.ы. Создал синглтон ConsoleArt() куда перенёс свои наработки в плане формирования рамок для более красивого отображения информации =) Так же оптимизировал метод формирования шапки рамки. 
4 Iterator - Numbers - Running 00:05:12
1 тест
22 чел. ★ 5 Done
  Мы продолжаем знакомство с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы реализуем класс Numbers() implements Iterable.
Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт]
Научился: Использованию итератора через интерфейс итерабл 
Сложности: найти время 
Комментарии: Я так понял, смысл этого деяния в том, чтобы какой либо класс мог иметь возможности производить какие либо действия со своими собственными данными. Что-то похожее уже делали, когда передавали в класс два числа и вызывали нужные математические действия над ними (сложить, разделить, перемножить и вычесть). Пока такие мысли приходят в голову, по поводу того, что было сделано относительного того, что и так работало по методу прошлого урока. з.ы. типо, пока сделали перебор обычный, с 1 до 5, а можно будет типо добавить переборы в обратном порядке, рандомном и т.д. =) 
5 Iterator - Numbers - Inner class 00:02:25
1 тест
22 чел. ★ 5 Done
  Мы продолжаем знакомство с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы объединим два класса в один.
Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Полезный рефакторинг, идём дальше. 
6 Iterator - Numbers - System 00:05:13
1 тест
22 чел. ★ 4.9 Done
  Мы продолжаем знакомство с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы удалим созданные ранее интерфейсы Iterable и Iterator.
После чего воспользуемся встроенным java.util.Iterator.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: java.util.Iterator 
Сложности: найти время 
Комментарии: Отличная реализация на базе java.util.Iterator, компактненько и красивенько =) Можно перебирать что угодно, от чисел до нужных объектов. з.ы. Добавил вывод двух видов циклов, так же оптимизировал использование массива, дабы значение выводилось при наличии значений, тем самым теперь не нужно плодить лишний строки кода для обнуления. 
7 Iterator - Random 00:07:48
1 тест
22 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы попрактикуемся в использовании итератора и
создадим очередную программу для генерации случайных чисел.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Отличный пример использования итератора для получения рандомных значений. Добавил счётчик, чтобы выводилось нужное количество и останавливалось. Так же перенёс свой класс ConsoleArt(), чтобы красиво выводить на экран консоли. Избавился от статика (привычка уже преобладает). Всё просто и понятно, идём дальше. 
8 Iterator - Digits 00:07:54
1 тест
22 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы напишем ещё один Итератор, который
будет перебирать цифры числа.
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Отличный пример использования итератора. Как обычно добавил класс ConsoleArt() для генерации красивой таблицы в консоли. Избавился от статика. В таблице отображено три варианта обработки цифр числа: 1 - перебор цифр, 2 - сумма цифр, 3 - произведение цифр. 
9 Iterator - BlackJack - Introduction 00:05:13
1 тест
22 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы распишем план игры BlackJack,
которую реализуем в течении следующих уроков.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: Пока ничему 
Сложности: найти время 
Комментарии: В эту игру никогда ранее не играл, вообще с азартными играми работал, но как сисадмин игровых клубов и казино. Занимался настройкой, починкой и запуском игровых автоматом, аппаратов и т.д. желания играть самому никогда не возникало, но в карточные игры в детстве играли вечерами, было дело. Может с тех пор я и наигрался =) 
10 Iterator - BlackJack - Card 00:09:22
1 тест
22 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы начинаем создание игры BlackJack,
а конкретно создадим вначале проект IteratorBlackJack и
создадим класс Card(), который продемонстрирует возможность
использования итератора для перечисления не только чисел.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: this.ordinal() 
Сложности: найти время 
Комментарии: this.ordinal() очень полезная штука, в C# достаточно первому значению добавить " = 0," и все последующие получат значение +1 от предыдущего. з.ы. Как обычно избавился от статика. Добавил свой класс ConsoleArt(). Сразу в глаза попался тот факт, что можно реализовать вложенные циклы по перебору всех вариантов карт, что я и реализовал, см. второй скриншот (надеюсь не поторопился с этим, так как было очевидное решение, как для наглядности, так и для теста и будет чем заняться на след. уроке). Так же ещё в самом начале заметил, что вместо девятки в перечислении добавили одиннадцать, я же сразу написал как надо и ждал конца урока, если бы не заметили ошибку, отписался бы по ней в комментарии =) 
11 Iterator - BlackJack - Deck of Cards 00:06:44
1 тест
21 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы создадим класс Cards() implements Iterable,
который будет перебирать все возможные комбинации карт.
Отчёт отправил: 10558. Иван Воронин Выполнено за 25 мин. [Показать отчёт]
Научился: Формированию колоды и её перебору при помощи Итератора. 
Сложности: найти время 
Комментарии: Мне не понравилось, что колоду выводим задом наперёд и способ добавление карты в колоду тоже, поэтому реализовал это дело немного иначе, см. скриншот. Так же красиво отобразил массив карт, для корректного формирования таблицы пришлось добавить доп. метод getSuit() в классе Card() =) 
12 Iterator - BlackJack - Random 00:06:59
1 тест
21 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы реализуем алгоритм перемешивания колоды.
Для этого мы воспользуемся нестандартным способом,
который напоминает игру: "Что? Где? Когда?".
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: Алгоритму выборку аля "Что? Где? Когда?" 
Сложности: найти время 
Комментарии: Вынес константы в класс Program() и сделал их статичными Оптимизировал класс Cards(), теперь данные о размере колоды берутся на основе количества карт и мастей. Так же и при формировании колоды вместо числа использована константа. Названия карт и мастей теперь на русском языке =) з.ы. Можно было использовать список и выдёргивая оттуда рандомную карту в пределах размера текущего списка, после чего удалять выбранную карту и проверять, не равен ли список нулю, этот подход был бы более ООП =) Но вариант с массивом работает быстрее!!! 
13 Iterator - BlackJack - Stages 00:09:06
1 тест
21 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы реализуем базовый алгоритм Дилера,
чтобы он раздавал карты играющим.
Отчёт отправил: 10558. Иван Воронин Выполнено за 45 мин. [Показать отчёт]
Научился: Созданию игры BlackJack в консоли на языке Java 
Сложности: найти время 
Комментарии: Погуглил правила игра, но решил автоматизировать, чтобы было чем заняться на след. уроке =) Добавил стадию Ничьи, если Дилер и Игрок набрали по 21 очку. Добавил необходимые константы и глобальные переменные для реализации игры. Игрок стремиться набрать определённый минимум, после чего передаёт эстафету Дилеру. Если игрок перебрал, Дилер победил. Дилер в свою очередь пытается набрать не меньше Игрока. Если Дилер перебрал, победа игроку. Если Дилер набрал больше или равно очкам Игрока, победил Дилер. Отличный опыт, спасибо за реализацию этой игрушки. 
14 Iterator - BlackJack - Play game 00:16:58
1 тест
20 чел. ★ 5 Done
  Мы продолжаем эксперименты с самым популярным
и востребованным шаблоном проектирования: "Итератор".
На этом уроке мы доделаем игру BlackJack, после чего
можно будет играть с Дилером один на один.
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Созданию игры BlackJack 
Сложности: найти время 
Комментарии: В процессе реализации алгоритма для игрока, который сам решает, брать ещё или хватит, сразу бросился в глаза тот факт, что карта, от которой отказывается игрок, уже взята из колоды и при использовании свитча, получается, что игрок отказался, карта то взята, но далее выходит из свитча и берёт новую карту, а эту куда? под стол? БАГ явно, поэтому стадию игры Дилера вынес ниже свитча, но перед проверкой победы. Теперь если игрок отказывается брать карту из колоды, эту карту берёт Дилер. Протестировал алгоритм, на скриншоте видно, сколько карт в колоде перед тем как кто-либо берёт карту или отказывается от этого действия. Отличный мини-курс, теперь я знаю как играть в BlackJack, ранее никогда не играл, как-то не было надобности и задачи в этом =) з.ы. Как видно из скриншота, отрефакторил код основательно. Всем спасибо за внимание. 
15 ФИНАЛЬНЫЙ УРОК без видео
5 тестов
10 чел. ★ 5 Done
  Поздpaвляю!
Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест".

Напиши отзыв или видеообзор по этому видеокурсу.
Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт]
Научился: Созданию итератора любых объектов 
Сложности: найти время 
Комментарии: Отличный шаблон проектирования, думаю если не всегда, то почти всегда будет использоваться в современном ПО/ИГРАХ, так как всегда есть что перебирать =) "маст хэв" как говорится. 
  Итого:   15 видеоуроков 1 час. 37 мин.
19 тестов
10 чел. ★ 4.98  
  Финалисты:   Иван Воронин,   Сергей Соколов,   Новопашин Владимир,   Виктор,   Tekashnik,   Александр,   Dmitry Sinitsin,   Anatoli,   Yefim,   Tom .

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





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

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

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

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


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



Научился: вот и новый курс за плечами, количество говорят должно перерасти в качество, жаль небыстрый это процесс Итератор несложен и для новичка удобен к пониманию и осмыслению Два принципа в основе - проверить наличие следующего элемента для обработки И обработать как требуется Это база - булевский метод hasNext проверит есть ли куда двигаться, а метод next, возвращающий обрабатываемый элемент занимается его изменением как того требует ТЗ Всё остальное - уже надстройка В нашей игре итератор реализован в Cards.java