На этом курсе мы познакомимся с интерфейсами IEnumerable + IEnumerator.
На примере решения задачи разложения числа на простые множители
мы будем создавать итератор, который будет перебирать простые числа.
Содержание курса
+ создание класса по интерфейсу IEnumerable
+ создание класса по интерфейсу IEnumerator
+ подробное объяснение, зачем нужно два класса.
+ использование yield для удобной реализации итератора.
+ создание итератора через функцию, не создавая спец. класса.
# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Итератор. Разложение числа на простые множители. |
1 тест |
|||
На этом уроке мы создадим очевидный алгоритм, который будет раскладывать число на просты множители. Отчёт отправил: 30514. Tom Выполнено за 2 час. 18 мин. [Показать отчёт] Научился: Познакомился с идеей курса, о создании итератора для перебора простых чисел. Переписал программу из урока, которая раскладывает число на множители. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primerator/1/index.html |
|||||
2 | Итератор. Создание пустого итератора. |
1 тест |
|||
На этом уроке мы подберём ключ к циклу foreach. создадим класс, который позволит создать свой алгоритм для перебора значений в обычном цикле foreach. Нaпиши, что такое итератор, своими словами. Отчёт отправил: 30514. Tom Выполнено за 48 мин. [Показать отчёт] Научился: Создал класс Primes, написал в нем методы для работы с итератором. Итератор - это объект, который позволяет получать элементы из последовательности. |
|||||
3 | Итератор. Перебор чисел в итераторе. |
|
|||
На этом уроке мы добавим в созданный класс перебор чисел. Начнём с двойки и будем его всё время увеличивать "до бесконечности". В конце урока добавим ограничение, чтобы итератор останавливался. Отчёт отправил: 30514. Tom Выполнено за 41 мин. [Показать отчёт] Научился: Добавил в класс Primes счетчик primes и максимальное значение счетчика maxPrimes. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primerator/3/index.html |
|||||
4 | Итератор. Перебор простых чисел. |
2 теста |
|||
На этом уроке мы сдеаем так, чтобы наш класс возвращал в цикл только простые числа, как и было задуманно изначально. Отчёт отправил: 30514. Tom Выполнено за 56 мин. [Показать отчёт] Научился: Добавил метод isPrime, который проверяет является ли число простым. Изменил метод итератора, теперь он возвращает простые числа. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primerator/4/index.html |
|||||
5 | Итератор. Зачем нужно два класса |
1 тест |
|||
На этом уроке мы разберёмся, зачем всё-таки нужно два класса один для создания итератора, второй для его использования. Для демонстрации напишем программу, которая выведет на экран таблицу умножения простых чисел. Отчёт отправил: 30514. Tom Выполнено за 2 час. 3 мин. [Показать отчёт] Научился: Изменил класс Primes для того чтобы он возвращал новый итератор для работы во вложенных циклах. Вывел таблицу умножения простых чисел. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primerator/5/index.html |
|||||
6 | Итератор. Волшебное слово yield. |
3 теста |
|||
На этом уроке мы узнаем, как упростить создание итератора. Для этого достаточно просто написать нужный нам цикл, внутри которого воспользоватся волшебным словом yield. Отчёт отправил: 30514. Tom Выполнено за 30 мин. [Показать отчёт] Научился: Добавил ключевое слово yield для возврата следующего простого числа. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primerator/6/index.html |
|||||
7 | Итератор. Список простых чисел. |
1 тест |
|||
На этом уроке мы перепишем алгоритм перебора простых чисел с использованием списка, который будет постепенно, по мере необходимости, пополняться новыми простыми числами. Отчёт отправил: 30514. Tom Выполнено за 48 мин. [Показать отчёт] Научился: Переписал алгоритм перебора простых чисел. Добавил список, в который записываются найденные простые числа. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primerator/7/index.html |
|||||
8 | Итератор. Один метод вместо классов. |
|
|||
На этом уроке мы увидим, что класс, оказывается, создавать не обязательно. Магия слова yield сделает всё за тебя, можно просто один раз организовать перебор нужных элементов, и потом его можно использовать через обычный foreach в любом месте программы. Вся прелесть в том, что перебор элементов происходит по мере необходимости. Отчёт отправил: 30514. Tom Выполнено за 34 мин. [Показать отчёт] Научился: Создал функцию getPrimes и заменил ей класс Primes. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primerator/8/index.html |
|||||
9 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с окончанием курса! Оставь, пожалуйста, отзыв о курсе. Какой курс ты будешь проходить следующим? Отчёт отправил: 30514. Tom Выполнено за 11 мин. [Показать отчёт] Научился: Курс мне понравился. Познакомился с итераторами и ключевым словом yield. Следующий курс Массивы в php7. |
|||||
10 | VIP. Оптимизация поиска простых чисел |
1 тест |
|||
Пишем функцию для поиска простых чисел и поэтапно оптимизируем её в двух направлениях. Отчёт отправил: 30514. Tom Выполнено за 1 день 7 час. 42 мин. [Показать отчёт] Научился: Отличный урок. Познакомился с методами поиска простых чисел. Узнал как можно оптимизировать эти методы. Добавил метод решето Эратосфена. Сравнил результаты работы методов. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/primes/index.html Видеообзор: IDjqtUow8Ss |
|||||
Итого: 10 видеоуроков |
2 час. 42 мин. 10 тестов |
44 чел. | |||
Финалисты: Иван Воронин, Елена, Артём, Новопашин Владимир, Алексей В., Фомичева Наталья, Rita, Станислав, Neverwinter 2, Permitin Alexey, aleksey-k, Николай Денисов, Денис, Bazel, kalobyte, Yefim, Tekashnik, Алексей Малышев, Sergio, Роман, konstantin, Сергей Стефаненко, chokayes, ser2018, vip, Виктор, Дмитрий, Максим Лапшинов, FireWolf, Слава, Денис, Александр, New programist, no name, Deep Network, Кирилл, Max, Kitsuneco, Дмитрий, Anatoli, MaxB, София, Tom, Tim . |