Дата | Видеоурок | Результат | |
---|---|---|---|
Итератор ФИНАЛЬНЫЙ УРОК | |||
--- В общем-то, отзыв я уже написал в отчете к предыдущему уроку. Думаю курс будет очень полезен всем, кто намерен овладеть языком C#. Какой курс буду проходить следующим - пока не решил, полистаю доступные, посмотрю, что больше заинтересует. |
|||
Итератор Итератор. Один метод вместо классов. | + 16 | ||
Узнал, что используя метод с yield return можно реализовать не только интерфейс IEnumerator, но и сразу IEnumerable. Не совсем понял, то есть компилятор по-разному реализует метод с yield return в зависимости от возвращаемого этим методом типа - IEnumerator или IEnumerable? Ведь в последнем случае, ему еще нужно автоматически реализовать метод GetEnumerator. Спасибо, Евгений Витольдович, за очень интересный курс. Также, спасибо всем участникам проекта, которые потратили свое время, проверяя мои отчеты и давали советы. Узнал много нового о итераторах в языке C# и, что очень важно, закрепил эти знания на практике. Задался некоторыми вопросами по реализации связки yield и foreach, о чем раньше совершенно не задумывался -пойду пошуршу в литературе по "глубинам" C#. |
|||
Итератор Итератор. Список простых чисел. | + 16 | ||
Производить эффективный поиск простых чисел с использованием списка. "Переварить" алгоритм. Да, со списком поиск гораздо эффективнее =) |
|||
Итератор Итератор. Волшебное слово yield. | + 16 | ||
Использовать ключевое слово yield для быстрой реализации итератора Понять, хотя бы приблизительно, как цикл с yield return преобразуется в нашу state machine. Сфоpyлировaть своими слoвaми, что тaкoе yield. yield - ключевое слово, позволяющее быстро реализовать итератор, используя для реализации state machine синтаксис, подобный синтаксису "обычного" цикла. В уроке, кажется, не было отмечено, что при каждой последующей итерации управлении передается после(!) инструкции yield return. Заметил это, написав дополнительную инструкцию после yield return (отобразил на скриншоте). Это, конечно, нисколько не умаляет полезности урока, спасибо большое! |
|||
Итератор Итератор. Зачем нужно два класса | + 16 | ||
Создавать класс-итератор с возможностью "вложенной" итерации. Потренировался в "красивом" консольном выводе. Представить целиком всю цепочку передачи значения primeMax от Main() до экземпляра PrimesIterator. Форматирование консольного вывода. А зачем в классе Primes значение по умолчанию для primeMax задается и в объявлении поля и в конструкторе по умолчанию? Разве не достаточно чего-то одного? |
|||
Демо софт Вступительное слово | + 16 | ||
Познакомился с авторским подходом к обучению программированию. --- Созданные программы: писал небольшие программы для пакетной обработки файлов и их свойств для автоматизации рабочих процессов |
|||
Итератор Итератор. Перебор простых чисел. | + 16 | ||
Глубже разобрался с задачей поиска простых чисел. Не мог понять почему в методе IsPrime мы крутим цикл до prime/2, а не до prime-1. Но потом прочитал, что можно вообще до Math.Sqrt(prime). Также, не смог оценить мат. сложность реализации (в смысле О большого). Стало интересно оценить скорость работы алгоритма. Использовал StopWatch. Выяснилось, что дополнительный вызов метода IsPrime значительно замедляет поиск. А переустановка SetMax(number) на каждом шаге основного цикла - здорово ускоряет работу (порядка тысячи раз). Также логика подсказывает, что при вызове IsPrime() после каждого инкремента выполняется много лишней работы, так как перебираются каждый раз практически одни и те же числа. Не лучше ли вести какой-то список уже найденных простых чисел? |
|||
Итератор Итератор. Перебор чисел в итераторе. | + 16 | ||
Реализовывать работающий класс-итератор с ограничением на количество возвращаемых значений. Проводить отладку класса-итератора. Ничего особо сложного, по образцу же делал. - |
|||
Итератор Итератор. Создание пустого итератора. | + 16 | ||
Научился создавать класс, реализующий интерфейсы итератора. Понять, сколько создается экземпляров классов при реализации раздельных и общего класса, особенно при многоразовом итерировании. Итерaтoр cвoими словами: соглашение, которому должен соответствовать класс для возможности последовательного перебора и доступа к его элементам. |
|||
Итератор Итератор. Разложение числа на простые множители. | + 1 | ||
Вспомнил оператор нахождения остатка. Научился делать факторизацию натурального числа. Сложностей не возникло Думаю, можно добавить вывод исходного числа |
|||
Нано-игры Арканоид - Уровень и ракетка | |||
|