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

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта | Обход блокировки
Игровой комплекс Сокобан - Введи код скидки

Итератор

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

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


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

Хочу купить!

Цена: 100 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 Итератор. Разложение числа на простые множители. 00:09:22 77 чел. ★ 4.9 Done
  На этом уроке мы создадим очевидный алгоритм,
который будет раскладывать число на просты множители.
Отчёт отправил: 3146. Permitin Alexey Выполнено за 1 час. 05 мин. [Показать отчёт]
Научился: Начал вспоминать про решето Эратосфена, таблицу простых чисел....и вообще вспоминать.... 
Сложности: вспоминать и было сложным 
Комментарии: отзывы только положительные 
2 Итератор. Создание пустого итератора. 00:11:21 73 чел. ★ 4.9 Done
  На этом уроке мы подберём ключ к циклу foreach.
создадим класс, который позволит создать свой алгоритм
для перебора значений в обычном цикле foreach.

Нaпиши, что такое итератор, своими словами.
Отчёт отправил: 3146. Permitin Alexey Выполнено за 1 час. 05 мин. [Показать отчёт]
Научился: Учусь работать с интерфейсами 
Сложности: сложно увидеть то что будет в конце - а это необходимо 
Комментарии: Итератор - интерфейс, заставляющий(обучающий или наследующий свои методы) объект класса делать то что он умеет. Но вот возникает другой вопрос - а что же такое будет primes? Итератор - от слова итерация (повторение). Повторение в чем? В массиве?  
3 Итератор. Перебор чисел в итераторе. 00:09:04 70 чел. ★ 4.9 Done
  На этом уроке мы добавим в созданный класс перебор чисел.
Начнём с двойки и будем его всё время увеличивать "до бесконечности".
В конце урока добавим ограничение, чтобы итератор останавливался.
Отчёт отправил: 3146. Permitin Alexey Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: пошагово прорабатывать программу 
Сложности: логику освоить 
Комментарии: все-таки Current это поле объекта primes - не привычно как-то Итак..чисто для себя... //задает максимум для итератора, максимально шагаем max шагов public void SetMax(long max) //пока ничего public void Reset() { } //можно или нельзя делать след.шаг public bool MoveNext() //поле объекта класса с запретом на редактирование public object Current //не смог понять и сформулировать ++++++++++++++++++ public IEnumerator GetEnumerator() 
4 Итератор. Перебор простых чисел. 00:10:28 70 чел. ★ 4.9 Done
  На этом уроке мы сдеаем так, чтобы наш класс возвращал в цикл
только простые числа, как и было задуманно изначально.
Отчёт отправил: 3146. Permitin Alexey Выполнено за 1 час. 10 мин. [Показать отчёт]
Научился: еще немного об интерфейсах 
Сложности: как ни странно - пошагово пройти программу 
Комментарии: спасибо что разжевали this задание со звездочкой мне не понятно - что я должен сделать? 
5 Итератор. Зачем нужно два класса 00:16:21 64 чел. ★ 5 Done
  На этом уроке мы разберёмся, зачем всё-таки нужно два класса
один для создания итератора, второй для его использования.
Для демонстрации напишем программу, которая выведет
на экран таблицу умножения простых чисел.
Отчёт отправил: 3146. Permitin Alexey Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: еще немного ООП 
Сложности: следить за мыслями Вождя 
Комментарии: нет мыслей...было бы интересно через год повторить 
6 Итератор. Волшебное слово yield. 00:11:03 64 чел. ★ 5 Done
  На этом уроке мы узнаем, как упростить создание итератора.
Для этого достаточно просто написать нужный нам цикл,
внутри которого воспользоватся волшебным словом yield.

Отчёт отправил: 3146. Permitin Alexey Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: увидел в работе оператор yield  
Сложности: опять же логика 
Комментарии: yield - это итератор 
7 Итератор. Список простых чисел. 00:08:42 62 чел. ★ 5 Done
  На этом уроке мы перепишем алгоритм перебора простых чисел с использованием списка,
который будет постепенно, по мере необходимости, пополняться новыми простыми числами.

Отчёт отправил: 3146. Permitin Alexey Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: увидел как работает список List 
Сложности: а у меня OutOfMemory и все..... 
Комментарии: не работает мой паровозик... 
8 Итератор. Один метод вместо классов. 00:06:19 62 чел. ★ 5 Done
  На этом уроке мы увидим, что класс, оказывается, создавать не обязательно.
Магия слова yield сделает всё за тебя, можно просто один раз организовать перебор нужных элементов,
и потом его можно использовать через обычный foreach в любом месте программы.
Вся прелесть в том, что перебор элементов происходит по мере необходимости.

Отчёт отправил: 3146. Permitin Alexey Выполнено за 2 час. 40 мин. [Показать отчёт]
Научился: чистое ООП ... было тяжело но приятно работать 
Сложности: логика для меня по крайней мере (по русски если - въезжать в тему) 
Комментарии: Я выбрал картинку как гуманитарий наверное, исходя из определения Итератора. Итератор (от англ. iterator ― перечислитель) — интерфейс, предоставляющий доступ к элементам коллекции (массива или контейнера) и навигацию по ним. В различных системах итераторы могут иметь разные общепринятые названия. В терминах систем управления базами данных итераторы называются курсорами. Военкоматы отдаленно напоминают мне итераторы.....На картинке Автозаводский военкомат в Нижнем Новгороде. Новичкам курс не рекомендую. 
9 ФИНАЛЬНЫЙ УРОК 53 чел. ★ 5 Done
  Поздравляю с окончанием курса!
Оставь, пожалуйста, отзыв о курсе.

Какой курс ты будешь проходить следующим?
Отчёт отправил: 3146. Permitin Alexey Выполнено за 25 мин. [Показать отчёт]
Научился: вспоминать как было интересно и здорово 
Сложности: найти косяк в своей программе - в итоге нашел утром 
Комментарии: Что сказать про данный курс.....Он не для новичков. Лучше посидеть с учебниками прежде чем пройти его, потому что опущены некоторые особенности тех или иных объектов ООП. Очень понравился принцип "не все сразу" - потихоньку на простых примерах въезжаем в сложную тему понятий: наследование и ИТЕРАТОР. Уроки по 10-15 минут для меня - то что надо! Жаль что Евгений Витольдович так и не ответил на мой вопрос про List.  
10 VIP. Оптимизация поиска простых чисел 01:19:28 23 чел. ★ 5 Done
  Пишем функцию для поиска простых чисел и
поэтапно оптимизируем её в двух направлениях.
Отчёт отправил: 3146. Permitin Alexey Выполнено за 14 час. 00 мин. [Показать отчёт]
Научился: ой....простые числа вспомнил 
Сложности: все сложно.... 
Комментарии: ну вот написал что-то 
  Итого:   10 видеоуроков общей продолжительностью 2 час. 42 мин. 23 чел. ★ 4.96  
  Финалисты:   Иван Воронин,   Елена,   Артём,   Новопашин Владимир,   Алексей В.,   Фомичева Наталья,   Rita,   Станислав,   Neverwinter 2,   Permitin Alexey,   aleksey-k,   Николай Денисов,   Денис,   Bazel,   kalobyte,   Yefim,   Tekashnik,   Алексей Малышев,   Sergio,   Роман,   konstantin,   Сергей Стефаненко,   chokayes .

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




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

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

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

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


Курс демонстрирует, как можно получать доступ "внутрь" цикла foreach. Если пользователь сделал свой класс, инкапсулировал его, а хочется через foreach перебирать по элементам объекта этого класса, то здесь нумераторы и помогут. Ну yield - вообще чума - делает всё и сразу (и кофе варит, да да!) Вобщем было интересно поморщить мозг, проходя этот курс. Хотелось бы чтобы в начале было сразу сказано - вот смотрите - мы хотим сделать вот такую специфическую вещь, и без того, о чем пойдет речь - не обойтись!


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