Обучение по c#

Формула программиста
основатель — Волосатов Евгений Витольдович
Open shop Итератор

Итератор

На этом курсе мы познакомимся с интерфейсами IEnumerable + IEnumerator.
На примере решения задачи разложения числа на простые множители
мы будем создавать итератор, который будет перебирать простые числа.

Содержание курса
+ создание класса по интерфейсу IEnumerable
+ создание класса по интерфейсу IEnumerator
+ подробное объяснение, зачем нужно два класса.
+ использование yield для удобной реализации итератора.
+ создание итератора через функцию, не создавая спец. класса.

9 миниуроков.
1 час 22 минут.
Доступ на 15 дней.


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

# Название видеоурока Решило Рейтинг Доступ
1 Итератор. Разложение числа на простые множители. 00:09:22 65 чел. ★ 4.8 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 10 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: Когда я слышу что-то про простые числа - всегда вспоминаю замечательную книгу: Дербишир, Джон. Простая одержимость. Бернхард Риман и величайшая нерешённая проблема в математике. Всем интересующимся читать обязательно, книга читается не хуже чем хороший детектив + с драматической подоплекой. Многие думают (да и я думал), что простые числа, да и вообще теория чисел придумана математиками для себя лишь для развлечения, но на самом деле теорема о распределении простых чисел так широко используется и связана с такими областями физики, что вы будете ... в шоке. Подробнее в книге ;) 
2 Итератор. Создание пустого итератора. 00:11:21 63 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: Создавать класс, который наследует один или несколько интерфейсов 
Сложности: --- 
Комментарии: > Нaпиcaть, чтo такoе итератoр свoими словами. Итератор - это такой интерфейс, который должен уметь отдавать последовательно члены "своей последовательности". Кстати, массив в .Net (класс Array) тоже наследник IEnumerable, поэтому он позволяет перебирать элементы в цикле foreach. 
3 Итератор. Перебор чисел в итераторе. 00:09:04 61 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 10 мин. [Показать отчёт]
Научился: Организовывать перечисление в методах IEnumerator. 
Сложности: --- 
Комментарии: --- 
4 Итератор. Перебор простых чисел. 00:10:28 61 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: Гуглить список пятичначных простых чисел. 
Сложности: --- 
Комментарии: --- 
5 Итератор. Зачем нужно два класса 00:16:21 56 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 20 мин. [Показать отчёт]
Научился: Теперь понятна потребность в двух интерфейсах, все более-менее становится на свои места. 
Сложности: --- 
Комментарии: --- 
6 Итератор. Волшебное слово yield. 00:11:03 57 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 25 мин. [Показать отчёт]
Научился: Узнал новое ключевое слово - yield. 
Сложности: Вникнуть заново в алгоритм 
Комментарии: > Сфopyлиpовaть своими словaми, что такoе yield. yield используется для возвращения поочередно членов перечисления, при этом текущее состояние перечисления сохраняется. Для завершения итераций используется конструкция yield break. 
7 Итератор. Список простых чисел. 00:08:42 55 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 10 мин. [Показать отчёт]
Научился: Освежил в памяти работу с List<> (шутка, List не забыть, т. к. он очень часто используется) 
Сложности: --- 
Комментарии: Теперь алгоритм очень прост для восприятия, чист и понятен. В конкретно нашем случае двойку можно было не сохранять в список, т. к. у нас потом идет перебор только по нечетным числам, которые заведомо на 2 не делятся, но мы с завидной упрямостью каждое все же пробуем разделить. Хотя, конечно, класс от этого перестанет быть универсальным, но ведь у нас все же нет публичного доступа к List primes из вне и если нам потребуется список простых чисел еще раз, мы начнем генерировать его заново... %) 
8 Итератор. Один метод вместо классов. 00:06:19 54 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 10 мин. [Показать отчёт]
Научился: Научился использовать возможности интерфейса перечисления без создания специального класса, наследующего этот интерфейс. 
Сложности: --- 
Комментарии: Возможность, конечно, очень интересная, но смысла от нее я не вижу никакого, если мы уж пишем такой метод, то логично его выделить в отдельный полноценный класс, отвечающий всем канонам IEnumerator. В теле цикла foreach() метода Start() добавил строчку if (j > number) break; после вложенного цикла while(), т. к. если начальное число большое, а его делители маленькие, очень долго приходится ждать пока он там впустую прогонит цикл до конца, хотя множители все уже найдены... 
9 ФИНАЛЬНЫЙ УРОК 46 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 3 мин. [Показать отчёт]
Научился: По курсу в целом. Курс короткий (буквально на 3-4 часа со всеми перерывами на попить чайку), но на самом деле очень ценный (по крайней мере оказался для меня). Магия интерфейса IEnumerator/IEnemerable и ключевых слов foreach()/yield завораживает. Что называется - однозначно мастхэв. 
Сложности: --- 
Комментарии: Приложил книгу, о которой говорил в первом уроке || V 
10 VIP. Оптимизация поиска простых чисел 01:19:28 18 чел. ★ 5 ^
  Итого:   10 видеоуроков общей продолжительностью 2 час. 42 мин. 18 чел. ★ 4.94  
  Финалисты:   Иван Воронин,   Елена,   Артём,   Новопашин Владимир,   Алексей В.,   Фомичева Наталья,   Rita,   Станислав,   Neverwinter 2,   Permitin Alexey,   aleksey-k,   Николай Денисов,   Денис,   Bazel,   kalobyte,   Yefim,   Tekashnik,   Алексей Малышев .

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Курс хороший и нужный, т.к. тема сложная. Еще много чего в него можно добавить. Даже скорее всего можно сделать курс "Интерфейсы" и в него добавить IEnumerable, ICollection, List и пр.
Задание написать отзыв было в предыдущем уроке. За это время мое мнение о курсе не изменилось. Поэтому я повторюсь см. скрин. Следующим курсом будет "Коллекция графов"