Online обучение c#

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Статистика по видеоурокам

  • Всего просмотрено уроков: 24
  • Всего выполнено уроков: 21

Отчёты по видеоурокам

Дата Видеоурок Результат
2019-07-31 12:42 Коллекция графов ФИНАЛЬНЫЙ УРОК + 6 3 мин.
По шагам разобрался в алгоритме Граф
поиск в ширь на основе очереди
поиск в глубь на основе стека
далее пройдусь по Asynk Away + Task а там посмотрим

2019-07-29 18:59 Коллекция графов Глубокий алгоритм + 8 5 час. 43 мин.
Создали новый класс с новым методом поиска в глубину - 2 -3 - 4 насладился


2019-07-29 13:13 Коллекция графов Глубокий поиск + 9 2 дня 20 час. 39 мин.
в общем я в принципе сам и сделал уже метод
Особо строго не судите:

// Поиск в глубину запускаем рекурсию
        public Queue<int> SearchPachDepth()
        {
            // останавливается !!!?
            graf.SetColorAll(Graf.EnumColor.White);

            if (stackPassed.Count != 0)
            {
                stackPassed.Clear();
            }

            // если элемент _StartInt Белый значит делаем его Красный цвет или пропускаем
            AddRedtoStack(0);

            // Рекурсия
            return SearchPachDepth(0);
        }

        // Поиск в глубину
        public Queue<int> SearchPachDepth(int _StartInt)
        {
            // если элемент _StartInt Красный делаем его Черным и удаляем и возвращаем
            _StartInt = RemoveBlackFromStack(_StartInt);

            // Собственная очередь прохода по вершинам
            queuePassed.Enqueue(_StartInt);

            foreach (int NestedVertex in graf.TempEdge.ReturnAllEdgeL(_StartInt))
            {
                AddRedtoStack(NestedVertex);
            }

            if (stackPassed.Count == 0)
            {
                // Выход из рекурсии
            }
            else
            {
                // Запускаем рекурсию
                SearchPachDepth(stackPassed.Peek());
            }

            if (queuePassed != null)
            {
                return queuePassed;
            }
            else
            {
                return null;
            }
        }

        void AddRedtoStack(int _int)
        {
            if (graf.GetColorVertex(_int).Equals(Graf.EnumColor.White))
            {
                // окрашиваем в Red
                graf.SetColor(_int, Graf.EnumColor.Red);

                // добавляем в стэк
                stackPassed.Push(_int);
            }
        }

        int RemoveBlackFromStack(int _int)
        {
            if (graf.GetColorVertex(_int).Equals(Graf.EnumColor.Red))
            {
                // Окрашиваем в черный
                graf.SetColor(_int, Graf.EnumColor.Black);

                //Удаляем элемент из стека
                _int = stackPassed.Pop();
            }

            // Возвращаем элемент
            return _int;
        }


2019-07-26 16:14 Коллекция графов Визуализация процесса + 5 1 день 3 час. 50 мин.
Делегат, MarkLabel, sleep, кайфанул

2019-07-25 12:20 Коллекция графов Широкий пошаговый ход + 8 19 час. 6 мин.
По поводу исправления ошибки суть понял. Но у меня Visio 2019. Короче в ней это проблема решается путем следующим:

// Если Назначаемый цвет 'Key' нашего списка, равен назначаемому цвету, то пропускаем
            if(!ListVertex[_int].Equals(_color))
            {
                ListVertex[_int] = _color;
            }

По сути у меня идея как все разложить по шагам:  в виде таблицы и в последствии в виде графа с сменой цветов вершин и ребер.
Попробую там посмотрим.

2019-07-24 14:08 Коллекция графов Широкий алгоритм + 6 19 час. 50 мин.
Насколько я понял нельзя назначить item.key тот цвет который в нем уже существует!  По крайней мере у меня все сложилось!!!
// Задаем цвет
        public void SetColor(int _int, Color _color)
        {
            // Проверяем существует искомый ключь в списке
            if (!ListVertex.ContainsKey(_int))
            {
                return;
            }
           
            // Если Назначаемый цвет 'Key' нашего списка, равен назначаемому цвету, то пропускаем
            if(!ListVertex[_int].Equals(_color))
            {
                ListVertex[_int] = _color;
            }
        }

2019-07-23 18:17 Коллекция графов Широкий поиск + 7 1 час. 8 мин.
проработка алгоритма путем создания очереди из вершин.

2019-07-23 17:07 Коллекция графов Шахматная доска + 7 1 день 2 час. 51 мин.
в каждой кнопке добавил методы:
// Очищаем список Label
            listLabel.Clear();

            // Очищаем Панель
            panel1.Controls.Clear();

            // очищаем Графику
            g.Clear(Color.Silver);

Сама шахматная матрица, я до сих пор не понимаю как она работает. Но это математика!
2019-07-22 13:51 Коллекция графов Отображение + 6 2 дня 19 час. 20 мин.
Создали функцию отображение координат вершин + создали функцию отображения линий из этих координат в координаты смежных вершин

2019-07-19 18:23 Коллекция графов Инициация + 4 2 час. 20 мин.
создали функцию: control Label. Которая берет вершину, а также по координатам x, y.
задает (графический объект) местонахождение в окне WinForm - вершины. Я путем перебора списка вершин и рандомно назначел координаты вышло изображение Graf.
Теперь догадываюсь если создать control который зная координаты вершин будет перебирать. список вершин  и на основании имеющегося списка смежными вершинами и чертить к ним линии.

2019-07-19 16:02 Коллекция графов Рёбра + 8 22 час. 41 мин.
Создали ребро
Создали ребра по принципу (вершина - > смежное ребро)
организовали перебор на основании определенной вершины предоставить все смежные вершины



2019-07-18 17:20 Коллекция графов Вершины + 8 2 час. 7 мин.
Создаем класс Edge, в этом классе создаем поле = int from, int To.
Можно еще добавить поле Int weight( вес ). В дальнейшем можно создавать методы с сравнением по весу ребер.
Я уже на основе графов делал проект точнее по факту копировал и изучал. Примерно там так и было.

2019-07-18 14:35 Коллекция графов Граф + 10 23 час. 29 мин.
1) Для начало я создал класс Vertex.
2) Создал класс Algoritm где создал список всех вершин - public List<Vertex> ListVertex { get; set; }
3) В классе  Vertex создал список Смежных вершин - public List<Vertex> NestedVertex  { get; set; }

алгоритм добавления:
a) Создаю вершину и записываю ее в список ListVertex
б) беру определенную вершину и заношу в нее список NestedVertex все смежные вершины

2019-07-17 15:05 Коллекция графов BitArray + 6 18 час. 49 мин.
работать с коллекцией BitArray. 
.Not(); // обращает все элементы: если False => True и наоборот
.SetAll(true); // Обращает все элементы в конкретное значение
newBit1.And(newBit2); // операция переназначения всех элементов в соответствии предоставленного масива

2019-07-16 20:13 Коллекция графов Hashtable + 9 2 час. 43 мин.
Создавали коллекцию.
ListDictionary, HashTable, HybridDictionary

Проверил скорость работы создания и перебора этих коллекций. Итог: HashTable > HybridDictionary (возможно спорно!) > ListDictionary (в разы медленнее создает и перебирает)

2019-07-16 17:27 Коллекция графов ListDictionary + 5 1 час. 29 мин.
Создание коллекции Dictionary, Коллекция содержит два значения Key - Value.

если нужно проверить содержит ли коллекция элемент по ключу. NewDictionary.Contains("key");


2019-07-12 12:56 Коллекция графов Array vs List + 5 43 мин.
масив > List > ArrayList

2019-07-10 12:32 Коллекция графов List + 6 17 час. 25 мин.
Создавать коллекцию List. В данной коллекции реализован интерфейс IEnumerable что значит я могу задействовать такой цикл как foreach(), while(). Есть реализованный интерфейс IList который в свою очередь дает такие стандартные функции как Add - добавить элемент, Clear - очистить список, функция bool Contains - есть ли данный элемент в коллекции, Insert вставка, remove удаление элемента. IndexOf - возвращает индекс объекта

2019-07-09 19:03 Коллекция графов ArrayList + 9 35 мин.
Создавать коллекцию ArrayList, это тип коллекции в которого добавляется объекты, размер [n] n=само расширяемый (то есть не нужно о нем беспокоиться как а массиве заранее устанавливая размер массива).

2019-07-02 16:24 Демо софт Вступительное слово + 12 1 день 14 час. 24 мин.
Программа со скриншота  код взят с интернета, незначительно мной модифицированна.

2019-07-01 13:53 Демо игры C# чего начать программировать + 9 10 час. 56 мин.
WPF MVVM

  Демо игры Картинка с секретом   Открыто


  Игры со Спрайтами Спрайт. Первая форма   Открыто


  Графические циклы Подготовка графики   Открыто


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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

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


Научился: Создавать коллекцию List. В данной коллекции реализован интерфейс IEnumerable что значит я могу задействовать такой цикл как foreach(), while(). Есть реализованный интерфейс IList который в свою очередь дает такие стандартные функции как Add - добавить элемент, Clear - очистить список, функция bool Contains - есть ли данный элемент в коллекции, Insert вставка, remove удаление элемента. IndexOf - возвращает индекс объекта



Научился: Создали ребро Создали ребра по принципу (вершина - > смежное ребро) организовали перебор на основании определенной вершины предоставить все смежные вершины