Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Графика + Циклы = Мастерство
Вебинар «Создание прикладных программ на C#» начнётся через 15 час. 08 мин.

Коллекция графа

Мы рассмотрим основные коллекции в языке C#.
Поэкспериментируем с ними, сравним их быстродействие.
Далее, познакомимся с теорией графов. Создадим класс
для представления графа в памяти компьютера.
Сделаем визуальное отображения графа и
составим алгоритмы поиска вширь и глубь,
с использованием коллекций Стек и Очередь.




1000 p.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 ArrayList 00:12:16 36 чел. ★ 4.9 Done
  Отчёт отправил: 6391. Владимир Решено за 30 мин. [Показать отчёт]
Научился: использовать ArrayList 
Сложности: ничего 
Комментарии: У ArrayList довольно много методов, хотелось бы узнать где можно их применять. Спасибо! 
2 List 00:12:57 36 чел. ★ 4.9 Done
  Отчёт отправил: 6391. Владимир Решено за 30 мин. [Показать отчёт]
Научился: использовать List и его методы. 
Сложности: ничего 
Комментарии: Среднее тоже считает ;) Спасибо! 
3 Array vs List 00:11:04 35 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 30 мин. [Показать отчёт]
Научился: Сравнивать скорость работы разных коллекций. 
Сложности: ничего 
Комментарии: Спасибо! 
4 ListDictionary 00:15:19 35 чел. ★ 4.9 Done
  Отчёт отправил: 6391. Владимир Решено за 35 мин. [Показать отчёт]
Научился: Использовать ListDictionary 
Сложности: ничего 
Комментарии: Попробовал dict.Count Спасибо, идем дальше! 
5 Hashtable 00:11:56 34 чел. ★ 4.9 Done
  Отчёт отправил: 6391. Владимир Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Сравнивать работу различных коллекций. 
Сложности: ничего. 
Комментарии: При создании коллекций с большим количеством элементов ListDicronary пришлось на порядок снизить по сравнению с другими видами. Спасибо за возможность экспериментировать!  
6 BitArray 00:14:00 34 чел. ★ 4.9 Done
  Отчёт отправил: 6391. Владимир Решено за 45 мин. [Показать отчёт]
Научился: Интересной коллекцией BitArray. 
Сложности: ничего 
Комментарии: Выбрал Or и And, и увидел что все методы, включая Xor изменяют массив на котором выполняются эти методы. Пришлось перед каждым вызовом заново инициализировать начальными значениями. Спасибо! 
7 Граф 00:13:48 34 чел. ★ 4.9 Done
  Отчёт отправил: 6391. Владимир Решено за 30 мин. [Показать отчёт]
Научился: Вспомнил графы. 
Сложности: ничего. 
Комментарии: Можно хранить в структуре из двух элементов: 1. Цвет. 2. Список смежных вершин Спасибо! 
8 Вершины 00:14:15 34 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 35 мин. [Показать отчёт]
Научился: Началу реализации класса для хранения Графов. 
Сложности: Переводить на английский ;) 
Комментарии: Смежные вершины храним в списке. Спасибо! 
9 Рёбра 00:12:47 33 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 40 мин. [Показать отчёт]
Научился: Описывать граф и инициализировать его. 
Сложности: легко. 
Комментарии: На скриншоте в режиме отладки видно как прошла инициализация Графа. Спасибо! 
10 Инициация 00:11:15 33 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 25 мин. [Показать отчёт]
Научился: Выводить граф на форму (пока без связей) 
Сложности: ничего. 
Комментарии: Вывел просто лесенкой, хотел вывести по кругу, но решил идти дальше. Спасибо! 
11 Отображение 00:16:18 33 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 25 мин. [Показать отчёт]
Научился: Визуализировать граф. 
Сложности: ничего. 
Комментарии: Супер! 
12 Шахматная доска 00:19:58 33 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 40 мин. [Показать отчёт]
Научился: Визуализации графа шахматной доски. 
Сложности: ничего. 
Комментарии: Очень классный урок! Спасибо! 
13 Широкий поиск 00:14:59 33 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Вручную прорабатывать алгоритм поиска в ширину. 
Сложности: Дополнительное задание размещения по кругу, результат на втором скриншоте. 
Комментарии: Спасибо за урок и за задание, было интересно и выглядит красиво! 
14 Широкий алгоритм 00:14:12 32 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 35 мин. [Показать отчёт]
Научился: Создавать класс для реализации алгоритма поиска в ширину.  
Сложности: разобраться с ошибкой. 
Комментарии: Так как коллекция изменяется заменил в методе AllVertices() foreach на for. Все работает. Супер, идем дальше, спасибо! 
15 Широкий пошаговый ход 00:11:46 31 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 30 мин. [Показать отчёт]
Научился: Пошагово отлаживать алгоритм поиска в ширину. 
Сложности: ничего. 
Комментарии: С помощью отладки исправил ошибку с установкой цвета. Спасибо! 
16 Визуализация процесса 00:14:07 27 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 1 час. 35 мин. [Показать отчёт]
Научился: Вспомнил делегаты, узнал о Application.DoEvents(); 
Сложности: убрать мигание. 
Комментарии: Отличный результат, можно часами наблюдать раскраску графа. Красота! Спасибо!  
17 Глубокий поиск 00:09:58 27 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 20 мин. [Показать отчёт]
Научился: Алгоритм поиска в глубину вручную. 
Сложности: ничего. 
Комментарии: Будем реализовывать! 
18 Глубокий алгоритм 00:15:07 27 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 55 мин. [Показать отчёт]
Научился: Проработал поиск в глубину. 
Сложности: легко. 
Комментарии: Понравилась видимая простота поиска в глубину после того как уже знаешь как работает поиск в ширину. Красота, Добавил еще случайное расположение узлов графа на панели по нажатию кнопки, так что можно разные формы графа наблюдать. Спасибо за курс! 
19 ФИНАЛЬНЫЙ УРОК 27 чел. ★ 5 Done
  Отчёт отправил: 6391. Владимир Решено за 15 мин. [Показать отчёт]
Научился: Стал лучше разбираться в коллекциях C#. Алгоритмы поиска на графах могу пройти вручную без компьютера ;) 
Сложности: Не все получалось с первого раза, были ошибки и озарения. 
Комментарии: Курс очень понравился своей проработанностью и вниманием к деталям, теперь я уверенно буду использовать коллекции наряду с массивами. Очень рекомендую этот курс всем кто хочет разбираться в сложных структурах данных. Очень понравилась визуализация! Спасибо за так великолепно поданный, не очень простой материал, узнал много нового, а алгоритмы поиска имеют очень много применений!  
  Итого:   19 видеоуроков общей продолжительностью 4 час. 06 мин. 27 чел. ★ 4.97  
  Финалисты:   Максим,   Alcatraz,   Дмитрий,   Tekashnik,   Denis,   Иван,   Дмитрий 199,   Николай,   Михаил,   Дмитрий,   Ender,   Платон,   Владимир,   Андрей Н.,   Владимир Борисенко,   Максим Лапшинов,   Permitin Alexey,   Новопашин Владимир,   Максим Саратов,   Алексей В.,   Den Andreevich,   Елена,   Станислав,   Сергей Соколов,   Yefim,   Алексей Малышев,   Александр .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: На данном курсе я ознакомился и реализовал на практике алгоритмы обхода вершин графа (заодно систематизировал свои первоначальные знания о графах, которые немного подзабыл). Очень эффектно выглядит, когда реализованный функционал в коде становится наглядным и визуализируется. Так лучше понимаешь то, что не смог понять в тексте алгоритма и в коде.
Трудности: Самым сложным все равно остается понимание работы с итераторами (IEnumerable, IEnumerator, yield). До конца не уверен, что смогу сам реализовать такой подход в другом проекте (решается только практикой).
Меня очень интересует тема визуализации данных и процессов. Очень хочется понять как например реализуется графический эквалайзер в проигрывателях музыки (прыгающие уровни ползунков, не говоря уже о полноценных образах)
Научился: Познакомился с применением на практике различных коллекций (ArrayList, List, ListDictionary, Hashtable и HybridDictionary), а также их встроенных методов . Выяснил, что по скорости обработки различных комбинаций большого кол-ва эл-ов ListDictionary на порядок уступил по времени отработки двум другим классам : Hashtable и HybridDictionary, которые показали практически одинаковые результаты . Применять битовый массив BitArray, а также некоторые его методы на практике . Получил представление о графе и его разновидностях, методах представления, применять русские названия методов , перечисление , узнал об итераторах (yield return). Формировать граф в виде шахматной доски либо опр-ой формы и выводить его на экран с последующим поиском пути Вширь и Вглубь . При этом узнал о специфике применения foreach() и HashTable().
Трудности: При выполнении самостоятельных заданий определиться с вариантом хранения графа { цвета вершин, смежные вершины }, найти причину возникновения Exception-a при отработке foreach() и HashTable(), разобраться с общей логикой работы программы.
Хочу от всей души поблагодарить за коллекционный курс графопостроения ) ! Материала для применения и размышлений - более чем ! После данного курса планирую закончить "Бинарная жизнь" и переключиться на курсы "Игра Сокобан", "Графоциклы", "Итератор" . Конечно же в планах пройти все предложенные курсы на данный момент - главное двигаться дальше .