Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Грибные блоки - красочная головоломка, в которой вам предстоит передвигать блоки и заполнять ряды, чтобы собирать грибочки в корзину! Попробуйте продержаться как можно дольше!

Грибные блоки

Головоломки, Расслабляющая, Пазлы

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • AlexKud AlexKud 26 постов
  • StariiZoldatt StariiZoldatt 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Data Structure

4 поста сначала свежее
Jewgeni
1 год назад

Ответ на пост «Про штрих-код на молочке»⁠⁠1

Поговорил с коллегой:
Я работаю в одной большой немецкой сети. В европе есть стандарты для Штрихкода (нп EAN, ISBN ). Это тот который из полосочек. В принципе это просто набор цифр который присваивают определенному товару(Код продукта).
Сроки годности через него получить не получится(прицепил картинку для наглядности).
В России же, с 2018 года, ввели отдельную маркировку товара с помощью системы маркировки товара "Честный ЗНАК". Так вот этот знак не просто штрихкод, а нечто большее: QR-код (если еще точнее GS1 DataMatrix).
Вот в него можно вписать больше данных, но и тут не заносится срок годности, а:

  1. Код продукта (GTIN)

  2. Серийный номер

  3. Ключ проверки

  4. Электронная подпись

и еще немного мишуры.

Именно посредством серийного номера система определяет дату изготовления, сроки годности и всю прочую информацию, относящуюся к данной партии товара.

Кстати, в Германии применение GS1 DataMatrix не является обязательным условием. Однако, в России наложение GS1 DataMatrix становится обязательным для некоторых категорий товаров.

Использование GS1 DataMatrix, несомненно, приносит выгоду потребителю, однако оно также представляет собой финансовое бремя для производителя(которое в последующем вкладывается в цену товара), так как этот код нужно сначала купить.

Например, покупка EAN стоит в Германии примерно 40€ за условный продукт (например 1 Литр молока фирмы "Коровка" в пластиковой бутылке), а GS1 DataMatrix стоит уже 55€ и его надо будет покупать для каждой партии произведенного товара. И мне кажется что это еще не конечная цена...
Надеюсь мой ответ удовлетворил вашу жажду знаний :-)

Если появятся вопросы - спрашивайте.

Больше про GS1 DataMatrix

Показать полностью
Продукты Магазин Покупка Текст IT Data Structure Ответ на пост
8
4
codingblog
codingblog
7 лет назад

Словарь (map) на языке C#⁠⁠

Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост

Словарь (map) — это структура данных, представляющая собой специальным образом организованный набор элементов хранимых данные. Все данные хранятся в виде пар ключ-значение. Доступ к элементам данных осуществляется по ключу. Ключ всегда должен быть уникальным в пределах одного словаря, данные могут дублироваться при необходимости. У данной структуры есть и другие часто встречающиеся названия: ассоциативный массив или Dictionary. Принцип работы словаря схож с камерой хранения: есть ячейка, в которой может храниться что угодно, но доступ к этой ячейке осуществляется по уникальному номеру, благодаря чему ее всегда легко найти. Давайте рассмотрим пример реализации словаря на языке C#.

На рисунке ниже представлена схематичная структура словаря.

Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост

У словаря доступ осуществляется к любому из элементов хранимых данные по его ключу. Основные операции, которые могут выполняться со словарем:

1. Add — добавление нового элемента с уникальным ключом.

2. Remove — удаление элемента по ключу.

3. Update — изменить хранимое значение по ключу.

4. Get — получить хранимое значение по ключу.

Теперь приступим к реализации данной структуры данных. Будем использовать обобщенный класс с двумя принимаемыми типами для ключа и значения. Для хранения данных воспользуемся списком. Данная реализация является весьма примитивной, но позволяет разобраться в структуре и алгоритме работы данного типа данных.

Теперь рассмотрим программный код.

Элемент словаря

Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост

Объявим класс словаря, его свойства и реализуем основные операции

Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост
Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост
Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост

Теперь проверим работу словаря обратившись к нему

Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост

Ну и наконец запустим приложение и посмотрим результат работы на консоли

Словарь (map) на языке C# Программирование, Структуры Данных, Словарь, Dictionary, Карты, Csharp, Data Structure, Длиннопост

Заключение

На платформе .NET уже есть готовая реализация данной структуры данных. Она содержится в пространстве имен System.Collections и называется Dictionary. Я не претендую на правильность, оптимальность и красоту реализации. Единственная цель, которую я преследую, поделиться полезной информацией о программировании, которая может кому-то пригодиться.

Источник: https://shwan.ru/map/

Показать полностью 8
[моё] Программирование Структуры Данных Словарь Dictionary Карты Csharp Data Structure Длиннопост
15
4
codingblog
codingblog
7 лет назад

Множество (Set) на языке C#⁠⁠

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Множество (set) — это структура данных, представляющая собой не организованный набор уникальных элементов одного типа. Данная структура очень тесно связано с математическим понятием теории множеств. В наиболее упрощенном понимании, множество — это набор уникальных однотипных данных, рассматриваемых как единое целое. Давайте рассмотрим пример реализации множества и основных операций выполняемых с множествами на языке C#.


На рисунке ниже схематически представлены два множества A и B, а также основные операции: объединение, пересечение, разность.

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Давайте подробнее рассмотрим все наиболее часто встречающиеся операции над множествами:

1. Add — добавление элемента. Если такой элемент уже присутствует, то он не будет добавлен.

Remove — удаление элемента из множества.

2. Union — объединение множеств. Создается новое множество, включающее в себя все элементы из множества А и множества В. Если элемент содержится в обоих множествах, он будет добавлен однократно.

3. Difference — разность множеств. Создается новое множество, включающее в себя все элементы множества А, которые не входят в множество В.

4. Intersection — пересечение множеств. Создается новое множество, включающее в себя все элементы входящие одновременно и в множество А, и в множество В.

5.Subset — проверка на подмножество. Чтобы быть подмножеством, все элементы множества А должны содержаться в множестве В. Тогда множество А является подмножеством множества В.


Теперь приступим к реализации данного класса. Будем использовать обобщенный класс и реализовывать интерфейс IEnumerable для произвольного доступа к элементам множества. Для хранения данных воспользуемся списком. Данная реализация является весьма примитивной и не оптимальной, но возможность разобраться в алгоритмах работы основных операций над множествами.


Реализация класса Set.cs

Для начала объявим класс и его свойства

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Теперь реализуем операции добавления и удаления элементов множества

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Теперь реализуем операцию объединения множеств

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Реализуем операцию пересечения множеств

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Реализуем операцию разности множеств

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Ну и наконец сделаем проверку на подмножество и реализуем интерфейс IEnumerable

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Теперь проверим работу нашего класса

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост
Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

В результате получаем следующий вывод на экран

Множество (Set) на языке C# Множество, Set, Programming, Программирование, Структуры Данных, Data Structure, Длиннопост

Заключение

На платформе .NET все операции над множествами уже оптимально реализованы в рамках LINQ запросов, поэтому реализовывать самостоятельно нет необходимости. Я не претендую на правильность, оптимальность и красоту реализации. Единственная цель, которую я преследую, поделиться полезной информацией о программировании, которая может кому-то пригодиться.


Источник https://shwan.ru/set/

Показать полностью 11
[моё] Множество Set Programming Программирование Структуры Данных Data Structure Длиннопост
5
3
codingblog
codingblog
7 лет назад

Связный список (Linked List) C#⁠⁠

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Связный список (Linked List) представляет собой коллекцию связанных элементов, которые содержат в себе хранимые данные, а также ссылку на связанные с ним элементы (один или несколько). Основным преимуществом данной структуры данных перед обычным массивом является ее динамичность — возможность легко менять количество элементов. Давайте рассмотрим пример реализации на языке C# элементарного односвязного списка.


Для начала необходимо упомянуть, что существует несколько видов связных списков. Вот наиболее часто используемые из них:

1. Односвязный список

2. Двусвязный список

3. Кольцевой список


Схематическая структура односвязного списка представлена на рисунке ниже.

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Элемент списка

Рассмотрим класс элемента связного списка. Для того, чтобы сделать его более универсальным мы используем Универсальный параметр T. Это позволит динамически указывать тип данных при использовании списка.

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Список элементов

Теперь рассмотрим сам класс связного списка. Для него мы также используем Универсальный (generic) тип T, а также реализуем интерфейс IEnumerable, чтобы в дальнейшем было удобно перебирать элементы списка с помощью цикла foreach. Выделим основные необходимые свойства класса:

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Теперь реализуем метод добавления данных в коллекцию

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Удаление данных из коллекции

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Ну и наконец вспомогательные методы для полной очистки связного списка и перебора элементов в цикле

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Использование

Теперь нам остается проверить работу нашего списка. Для этого создадим несколько элементов и проверим работу списка.

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

В итоге получаем следующий вывод на консоль

Связный список (Linked List) C# Linkedlist, Связный Список, Data Structure, Структуры Данных, Csharp, Dotnet, Visualstudio, Программирование, Длиннопост

Заключение

Здесь представлена элементарная реализация данной динамической структуры данных. На практике она уже реализована намного лучше внутри платформы .NET в виде списка List<T>, но для того, чтобы понять внутреннюю структуру лучше рассматривать более простые примеры. Источник https://shwan.ru/linked-list/

Показать полностью 8
[моё] Linkedlist Связный Список Data Structure Структуры Данных Csharp Dotnet Visualstudio Программирование Длиннопост
14
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии