46524 (Использование интегрированных в язык запросов (linq) при обработке массива данных в microsoft visual basic 2008)

2016-08-02СтудИзба

Описание файла

Документ из архива "Использование интегрированных в язык запросов (linq) при обработке массива данных в microsoft visual basic 2008", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "46524"

Текст из документа "46524"

Использование интегрированных в язык запросов (linq) при обработке массива данных в microsoft visual basic 2008

Асп. Волошин С. Б.*1

Кафедра теории и автоматизации металлургических процессов и печей.

Северо-Кавказский горно-металлургический институт (государственный технологический университет)

Проведено сравнение традиционной технологии обработки массива данных с технологией LINQ. Представлены исходные коды примеров на языке программирования Microsoft Visual Basic 2008.

Введение

В мире существует целый ряд высококлассных специализированных программных пакетов для обработки данных, таких как MathCAD или STATISTICA, но они, как правило, являются дорогими коммерческими продуктами и использование их расчетных библиотек в программах сторонних разработчиков затруднено или невозможно. Как правило, в таких программах сложно автоматизировать ввод исходных данных, поступающих от измерительных приборов, подключенных к персональному компьютеру. В связи с этим многие ученые самостоятельно разрабатывают программы для обработки данных.

В настоящее время лидирующую позицию в мире средств разработки программного обеспечения занимает корпорация Microsoft со своей платформой .NET Framework и средой разработки Visual Studio. Платформа .NET Framework является средой исполнения для программ, написанных на различных языках программирования. Наиболее популярными языками программирования под .NET Framework являются C#, Visual Basic, C++, Delphi, Nemerle, Python и др.

Еще до недавнего времени программисты применяли такие же алгоритмы обработки данных, как и 20 лет назад. К примеру, для вычисления суммы положительных элементов вектора программисту, кодирующему на Visual Basic 2005, приходилось в цикле последовательно проверять все элементы массива и складывать отвечающие условию Элемент > 0. В итоге, если условия отбора данных были сложные, алгоритм представлял собой многоэтажную конструкцию, состоящую из операторов цикла For…Next или Do…Loop (зачастую вложенных) и операторов условного перехода IF…EndIF и Select…Case. При этом в особо сложных случаях для выхода из внутреннего цикла применяли оператор GoTo, что так же не упрощало понимание кода.

Ситуация изменилась с выходом в свет технологии интегрированных в язык запросов LINQ (Language Integrated Query) [1], появившейся в составе новой платформы корпорации Microsoft – .NET Framework 3.5 в конце 2007 г. (предварительная версия была доступна с конца 2006 г.). Язык запросов позволяет упросить процедуру выборки необходимых данных за счет использования структурированных запросов специального формата.

Запросы могут применяться к объектам, которые реализуют интерфейсы IEnumerable<(Of <(T) или IQueryable<(Of )>)[2]. Следовательно, проводить поиск можно в массивах (Array), коллекциях (Collection), словарях (Dictionary), списках (List) и т.д. Кроме того, LINQ позволяет обеспечивать взаимодействие с СУБД Microsoft SQL Server 2005 (LINQ to SQL), с объектом DataSet (LINQ to DataSet), с данными XML (LINQ to XML) и Entities (LINQ to Entities) [3].

Сравнение технологий

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

Выборка положительных элементов из исходного множества.

Выборка положительных элементов и ранжирование их по возрастанию.

Возведение в квадрат всех элементов исходного множества.

Отбор элементов исходного множества без повторов элементов с одинаковыми значениями.

Вычисление количества отрицательных элементов в исходном множестве.

Вычисление среднего значения элементов исходного множества.

Вычисление суммы элементов исходного множества.

Нахождение элемента исходного массива с максимальным значением.

Было проведено сравнение быстродействия обеих технологий для каждого алгоритма.

Перед рассмотрением непосредственно самих алгоритмов обратим внимание на ряд особенностей:

В качестве исходного множества использован один раз автоматически сгенерированный одномерный массив целочисленных элементов. Массив был сериализован в бинарный файл на жесткий диск и перед каждым тестом данные десериализовались в оперативную память. Количество элементов массива – .

Ни один из приведенных алгоритмов не изменяет массив исходных данных. Это особенно имеет значение, в случае, когда данные поступают и обрабатываются непрерывно, в режиме псевдореального времени. Там где это было необходимо, данные перемещали во временный типизированный список List(of Integer).

В примерах традиционных алгоритмов обработки данных специально используется цикл For…Next, так как он быстрее работает с массивами структурных типов данных (Integer, Double, Long), чем более удобный в использовании, но менее производительный цикл For…Each.

Исследования проводили на рабочей станции со следующей конфигурацией: процессор Intel Core2Duo E6550-2,3ГГц/4096 МБ ОЗУ/ОС MS Windows Vista Ultimate с отключенным “файлом подкачки”.

Все алгоритмы написаны в бесплатно распространяемой интегрированной среде разработки Microsoft Visual Basic 2008 Express, которую можно свободно скачать с официального сайта корпорации Microsoft.

Реализация алгоритмов

Выборка положительных элементов из исходного множества

Традиционный подход

Dim Result As New List(Of Integer)

For i As Integer = 0 To UBound(Vector)

If Vector(i) > 0 Then Result.Add(Vector(i))

Next

LINQ подход

Dim Query = From element In Vector Where element >= 0 _

Select element

Выборка положительных элементов и ранжирование их по возрастанию.

Традиционный подход

Dim Result As New List(Of Integer)

For i As Integer = 0 To UBound(Vector)

If Vector(i) > 0 Then Result.Add(Vector(i))

Next

Result.Sort()

LINQ подход

Dim Query = From element In Vector Where element >= 0 _

Select element Order By element

Возведение в квадрат всех элементов исходного множества

Традиционный подход

Dim Result As New List(Of Integer)

For i As Integer = 0 To UBound(Vector)

Result.Add(Vector(i) ^ 2)

Next

LINQ подход

Dim Query = From element In Vector _

Select element ^ 2

Отбор элементов исходного множества без повторов элементов с одинаковыми значениями

Традиционный подход

Dim Result As New List(Of Integer)

Dim isOutput As Boolean = True

For i As Integer = 0 To UBound(Vector)

isOutput = True

For j As Integer = 0 To i

If i <> j And Vector(i) = Vector(j) Then

isOutput = False

Exit For

End If

Next

If isOutput = True Then Result.Add(Vector(i))

Next

LINQ подход

Dim Query = From element In Vector _

Select element Distinct

Вычисление количества отрицательных элементов в исходном множестве

Традиционный подход

Dim count As Integer = 0

For i As Integer = 0 To UBound(Vector)

If Vector(i) < 0 Then count += 1

Next

LINQ подход

Dim Result As Integer = Aggregate Element In Vector _

Where Element < 0 Into Count()

Вычисление среднего значения элементов исходного множества

Традиционный подход

Dim sum As Integer = 0

Dim average As Double = 0

Dim count As Integer = UBound(Vector) + 1

For i As Integer = 0 To count - 1

sum += Vector(i)

Next

average = sum / count

LINQ подход

Dim Result As Double = Aggregate Element In Vector _

Into Average()

Вычисление суммы элементов исходного множества.

Традиционный подход

Dim sum As Integer = 0

For i As Integer = 0 To UBound(Vector)

sum += Vector(i)

Next

LINQ подход

Dim Result As Integer = Aggregate Element In Vector _

Into Sum()

Нахождение элемента исходного массива с максимальным значением.

Традиционный подход

Dim max As Integer = Vector(0)

For i As Integer = 1 To UBound(Vector)

If Vector(i) > max Then max = Vector(i)

Next

LINQ подход

Dim Result As Integer = Aggregate Element In Vector _

Into Max()

Результаты сравнения

Алгоритм

LINQ, мс

Традиционный, мс

1

Выборка положительных элементов

1205

1324

2

Сортировка по возрастанию

62

6801

3

Возведение в квадрат

13791

14820

4

Отбор элементов без повторов

4330

209181

5

Количество отрицательных элементов

2137

592

6

Среднее значение

1139

201

7

Суммирование элементов

920

172

8

Поиск максимума

983

187

Выводы

Проведено сравнение традиционной технологии обработки массива данных с технологией LINQ.

Показано, что использование языка запросов LINQ значительно сокращает время разработки и объем написанного кода при проектировании алгоритмов для решения типичных задач обработки массива данных.

На некоторых типах рассмотренных задач (выборка положительных элементов, сортировка, возведение в квадрат, отбор элементов без повторов) производительность алгоритмов с LINQ технологией выше, чем у традиционных итерационных алгоритмов. На остальных рассмотренных типах задач (количество отрицательных элементов, вычисление среднего значения, суммирование элементов, поиск максимума) производительность алгоритмов с LINQ технологией хоть и ниже производительности итерационных алгоритмов, но является приемлемой для обработки достаточно больших объемов данных без существенных потерь скорости.

Рассматриваемая в данной статье технология LINQ успешно применялась автором для написания алгоритма обработки массива результатов тестирования более чем 6200 школьников 5 классов всех школ республики Северная Осетия-Алания в конце 2007 г.

Литература

Вагнер В. Исследуем LINQ // Алгоритм 2006. № 4.

Чистяков В. Коллекции в .NET Framework Class Library // RSDN Magazine 2003. № 6.

Paolo Pialorsi, Marco Russo. Introducing Microsoft LINQ. Microsoft Press. 2007.

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.skgtu.ru/

УДК 621.372

Перспектива внедрения оптических сетей взамен оптических линий связи

Асп. Хетагуров А.М.*2

Кафедра «Промышленная электроника».

Северо-Кавказский горно-металлургический институт

(государственный технологический университет)

Рассмотрена перспектива перехода от использования оптических линий связи к использованию оптических сетей связи. Необходимость осуществления перехода будет возрастать, так как объемы передачи информации ежегодно удваиваются, увеличивается число абонентов, испытывающих потребность в получении и передачи данных.

Еще совсем недавно критерием развития оптической связи было развитие оптических линий связи. Приоритетной задачей при этом было увеличение скорости, дальности и снижения стоимости передачи единицы информации.

На нынешнем этапе очевидно, что развитие оптических линий связи пойдет преимущественно в русле создания оптических сетей.

Повышение эффективности передачи по оптическим линиям продолжает играть ключевую роль, но одновременно возрастает важность задачи снижения стоимости маршрутизации единицы информации. Современные системы связи от выполнения простейшей задачи – оптической передачи информации между двумя точками – переходят к выполнению более сложной задачи по управлению и коммутации потоками информации в оптической форме [1].

Оптические линии связи хорошо зарекомендовали себя при высокоскоростной передаче информации от точки к точке. На концах таких линий данные преобразовывались из электрической в оптическую форму и обратно. Задачи по контролю, управлению, коммутации и маршрутизации, выполнялись оборудованием, работающим с цифровыми сигналами в электронной форме (SDH или IP оборудованием). Физический уровень такой сети представляет собой прозрачную, статическую оптическую сеть. Такие сети стали появляться в начале 80-х годов прошлого века.

Процесс эволюции оптических сетей связи.

По мере развития электронных технологий и технологий производства оптического волокна оптические сети переходят от статических к динамическим, полностью оптическим сетям и от прозрачных сетей с коммутацией каналов к интеллектуальным оптическим сетям с пакетной коммутацией данных [2].

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

Однако, помимо экономического обоснования использования полностью оптических сетей, есть основания полагать, что замена оптоэлектрооптических преобразователей полностью оптическими увеличит скорость коммутации и пропускную способность оптических сетей, а именно к этому стремятся компании, предоставляющие услуги связи по волоконно-оптическим каналам, так как объемы передаваемой информации увеличиваются с каждым днем. Оптические переключатели каналов способны коммутировать потоки информации до нескольких Тбит/с, в то время как наилучшие в своем классе IP – роутеры поддерживают максимальные скорости потоков информации порядка нескольких сот Мбит/с [3]. Значит транзитный поток информации должен проходить через промежуточное узлы, оставаясь в оптической форме. Оптоэлектрическое и электронно-оптическое преобразование в такой ситуации необходимо только в оконечных узлах для объединения низкоскоростных потоков информации. Оптические коммутаторы первого поколения осуществляют переключение спектральных каналов и пространственную коммутацию между оптическими волокнами.

Поскольку оптические коммутаторы преобразовывают весь поток информации, передаваемой по определенному каналу без каких либо преобразований, то такие устройства являются прозрачными относительно используемых цифровых технологий, форматов модуляций и т.д. Сегодня уже началось интенсивное внедрение таких технологий в коммерческие сети. Одновременно ведут исследования методов обработки сигналов в оптической форме, исследуют различные методы оптического преобразования длины волны световой несущей, методы оптического временного мультиплексирования и демультиплексирования и оптической регенерации. На фоне этого возникло научное направление «фотоника», занимающееся исследованием возможностей управления оптическими сигналами с использованием управляющих модулированных оптических полей [4].

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5161
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее