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

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

Итератор

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

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


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

1,000 руб.


Для подписки на пакет необходимо авторизоваться.

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

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

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: По курсу в целом. Курс короткий (буквально на 3-4 часа со всеми перерывами на попить чайку), но на самом деле очень ценный (по крайней мере оказался для меня). Магия интерфейса IEnumerator/IEnemerable и ключевых слов foreach()/yield завораживает. Что называется - однозначно мастхэв.
Приложил книгу, о которой говорил в первом уроке || V
Научился: Отличный курс! Показано на практике использование итератора. Надо будет еще почитать теорию для закрепления материала. Ну и попрактиковаться конечно!
Трудности: Сложностей не возникло
Замечаний нет