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

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

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

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

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

После взноса  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:05:08
1 тест
43 чел. ★ 5 Done
  Мы начинаем серию видеоуроков по созданию алгоритма решения головоломки Судоку.

Ваша задача -
разобраться с правилами этой игры.
найти/распечатать бумажное (!) Судоку.
Решить его ручкой или карандашом.
Сфоткать решение и приложить к отчёту.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 24 час. 00 мин. [Показать отчёт]
Научился: Узнал правила игры Судоку. Научился решать судоку для самого легкого уровня. 
Сложности: Самым сложным было то, что когда ставишь цифры и остается две клетки и обе клетки могут содержать только скажем двойку или другую цифру - то есть игру сделал неправильно. Собственно говоря из-за этого пришлось попотеть целую неделю. Я нашел сайт sudokuprint.ru и выбрал кроссворд и напечатал его несколько экземпляров - у меня только ручка и карандашика нет. Кстати печатал сразу несколько экземпляров кроссвордов с кандидатами (то есть теми достимыми в данной клетке цифрами) , только так я смог решить. Кстати возникали неоднозначные ситуации, ну например остаются две клетки и в обоих может быть 7 или 8. Или же другой случай остаются 3 клетки в одной может быть 1 или 2, в другой 2 или 3 , в третей 1 или 3. Вот сидишь и ломаешь голову, какую цифру подставить. Когда кандидат один на одну клетку все прекрасно. 
Комментарии: Прекрасное начало. Пришлось изрядно попотеть , но я не жалею. Кстати сразу идея - помимо судоку можно же решать японские кроссворды. 
2 Сетка для цифр 00:16:08
1 тест
37 чел. ★ 5 Done
  На этом уроке мы создадим класс Sudoku,
опишем в нём две константы и создадим
функцию для отображения сетки для цифр.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 23 мин. [Показать отчёт]
Научился: Научился выводить рационально сеточку судоку. 
Сложности: Ничего. 
Комментарии: Было лень в редакторе что-то рисовать. 
3 Печать цифр в таблице 00:17:57
36 чел. ★ 5 Done
  На этом уроке мы добавим метод для добавления цифр в наш Судоку.
Также напишем функцию для отображения цифр в консольном экране.
И свяжем их через использование делегата.
В конце урока заполним наше поле случайнмыи цифрами.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 32 мин. [Показать отчёт]
Научился: Научился помещать цифры в отдельные координаты ячейки и выводить их на экран. 
Сложности: Собственно ничего - Витольдович все хорошо объяснил. 
Комментарии: Делегат - это значок такой (у меня на скрине) - шутка. Делегат - это возможность вызывать функции одного класса из другого посредством передачи некой ссылки, если бы это был бы C++ , то можно было делегат назвать указателем, а так очень удобная штука и позволяет меньше кода писать. 
4 Проверка правил игры 00:13:23
1 тест
35 чел. ★ 5 Done
  На этом уроке мы наконец-таки начнём писать алгоритм.
В метод PlaceDigit() мы запрограммируем проверку правил игры.
Числа должны быть из верного диапозона, они не должны
повторяться в строчке, в столбце и в квадрате.
Под занавес мы сгенирируем случайную матрицу по всем правилам судоку.
Не факт, что её можно будет решить, и что решение будет единственным.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 20 мин. [Показать отчёт]
Научился: Научился проверять интервалы судоку. 
Сложности: Ничего. 
Комментарии: Ура первые рабочие судоку распечатались. 
5 Загрузка головоломки с интернета 00:25:44
1 тест
33 чел. ★ 4.9 Done
  На этом уроке мы напишем функцию для загрузки Судоку с интернет-сайта.
Через буфер обмена содержимое страницы будет размещено в текстовом файле.
Алгоритм будет его анализировать и добавлять в матрицу класса Sudoku.

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 43 мин. [Показать отчёт]
Научился: Научился генерировать на сайте игру судоку и использовать в своей программе. 
Сложности: Я так и не смог скопировать Ctrl+A и Ctrl+C  - копируется все кроме цифр - во всяком случае в FireFox и IE - других браузеров у меня не стоит. Кстати о птичках - сайт позволяет сохранять игру в виде ss- файлов (которые по факту явлюятся текстовыми). Так что я сделал свой генератор, который считывал данные именно с ss файлов. 
Комментарии: Вот код моего генератора:         public void LoadSudoku(string filename) {             string[] lines = File.ReadAllLines(filename);             int y=0;             for (int i = 0; i < lines.Length; i++)             {                 string s = lines[i];                 if (lines[i].Contains("---")) continue;                 s = s.Replace("!", "");                 s = s.Replace('.', '0');                 for (int x = 0; x < s.Length; x++)                                    sudoku.PlaceDigit (x,y, int.Parse ( s.Substring (x,1)));                                y++;             }         }  
6 Идея алгоритма - 81 цикл 00:11:48
32 чел. ★ 4.9 Done
  На этом уроке мы вручную проработаем алгоритм
поиска в глубь с возвращением.
Твоя задача - не аналитически решить судоку,
а программно, применяя описанный на уроке алгоритм.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 29 мин. [Показать отчёт]
Научился: Научился прорабатывать рекурсивный алгоритм поиска в глубину при решении судоку. 
Сложности: Ничего. 
Комментарии: Лучше поручать такие рекурсивные задачи компьютеру. 
7 Рекурсивная функция поиска 00:25:24
1 тест
29 чел. ★ 5 Done
  На этом уроке мы напишем рекурсивную функцию NextDigit(),
которая и будет заниматься поиском решения головоломки.

Способы оптимизации алгоритма поиска решения:
https://habrahabr.ru/post/173795/
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 43 мин. [Показать отчёт]
Научился: Наконец-таки научился решать судоку. 
Сложности: Ничего. 
Комментарии: Следующий этап для каждой клетки брать только те цифры, которые допустимы для нее, расстановкой цифр потихоньку убирать цифры в соответствующих клетках. 
8 Сохранение ответа 00:07:28
1 тест
29 чел. ★ 5 Done
  На этом уроке мы напишем функцию для сохранения решения головоломки в текстовый файл.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 10 мин. [Показать отчёт]
Научился: Научился сохранять результат судоку в файл. 
Сложности: Ничего. 
Комментарии: ++++ 
9 Генерация головоломок 00:15:25
25 чел. ★ 5 Done
  На этом уроке мы напишем алгоритм для формирования
Судоку-головоломок, поэкспериментируем с генератором случайных полей.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 29 мин. [Показать отчёт]
Научился: Научился генеровать случайные карты для судоку. 
Сложности: Сгенерировать карту, чтобы была решаема. 
Комментарии: Я прикрепил скриншот - вот попытаемся поставить двойку в место, где обозначил крестиками. В левом верхнем углу не дает та двойка, которая в в правом верхнем углу. В остальные места не дает ставить двойка, которая находится в нижнем квадрате, а это не правильно - для верхнего левого квадрата невозможно поставить двойку из-за такой наведенки. Нужна еще одна проверка, на целостность отдельного квадрата, чтобы такой ошибки не было. Да чуть не забыл следующий курс буду изучать либо asp, либо сокобан - еще не решил. 
10 ФИНАЛЬНЫЙ УРОК без видео
17 чел. ★ 4.9 Done
  Поздравляю с завершением этого видеокурса!
Запиши и опубликуй видеообзор созданной программы.
Напиши, какой курс будешь проходить следующим.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 51 мин. [Показать отчёт]
Научился: Особо ничему. 
Сложности: Ничего. 
Комментарии: Видеообзор опубликовал. 
Видеообзор: https://youtu.be/XfISSeGhB_o
11 VIP. Модульное тестирование 00:36:07
15 чел. ★ 5 Done
  На этом уроке мы познакомимся с модульным тестированием.
Мы напишем небольшой калькулятор, в который добавим
проект для модульного тестирования, и покажем,
как это всё работает, как это нужно использовать.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 10 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Ничего. 
Комментарии: Данный урок прошел в курсе "Новые технологии", тем кто не знакомым с ним будет очень полезным уроком. 
  Итого:   11 видеоуроков 2 час. 54 мин.
6 тестов
15 чел. ★ 4.98  
  Финалисты:   zhikharevav,   Максим,   Новопашин Владимир,   Максим Лапшинов,   Волнухин Владимир,   Tekashnik,   Александр,   Николай Денисов,   Иван,   no name,   Александр,   Anatoli,   Freud,   Татьяна,   MaxB .

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





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

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

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

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


Научился: Решать и сохранять решение Sudoku. Следующий курс, я заметил что еще комбинаторику до конца не прошёл.



Научился: Находить время и желание.
Трудности: Пока не решил за что взяться. Разбегаются глаза.. Спасибо за курс. Забыл сказать на видео, что еще стал яснее себе представил место делегатов в общем смысле программирования.