Научная статья на тему 'СОЗДАНИЕ ВИЗУАЛИЗАТОРА ПРОГРАММНОГО КОДА ДЛЯ ОТОБРАЖЕНИЯ ПРОЦЕССА ФОРМИРОВАНИЯ СВЯЗНЫХ СПИСКОВ'

СОЗДАНИЕ ВИЗУАЛИЗАТОРА ПРОГРАММНОГО КОДА ДЛЯ ОТОБРАЖЕНИЯ ПРОЦЕССА ФОРМИРОВАНИЯ СВЯЗНЫХ СПИСКОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
54
4
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММИРОВАНИЕ / СРЕДСТВА ВИЗУАЛИЗАЦИИ ОТЛАДЧИКА / ПОЛЬЗОВАТЕЛЬСКИЙ ВИЗУАЛИЗАТОР / PROGRAMMING / DEBUGGER VISUALIZATION TOOLS / USER VISUALIZER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ромашкина Т.В., Манзуров А.Н.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE CREATION OF THE VISUALIZER PROGRAM CODE FOR DISPLAYING THE PROCESS OF FORMING A LINKED LIST

This article discusses the capabilities of the Visual Studio programming environment to use the debugger visualization tools. The result of the development of a custom code Visualizer for a linked list is presented. The use of this development in the educational process can contribute to the better assimilation of educational material by students.

Текст научной работы на тему «СОЗДАНИЕ ВИЗУАЛИЗАТОРА ПРОГРАММНОГО КОДА ДЛЯ ОТОБРАЖЕНИЯ ПРОЦЕССА ФОРМИРОВАНИЯ СВЯЗНЫХ СПИСКОВ»

УДК 378. 147.88

Ромашкина Т.В., к.пед.н.

доцент

кафедра «Прикладной математики и информатики»

Манзуров А.Н. студент 3 курса факультет «Механико-математический» Пермский государственный национальный исследовательский университет Россия, г. Пермь

СОЗДАНИЕ ВИЗУАЛИЗАТОРА ПРОГРАММНОГО КОДА ДЛЯ

ОТОБРАЖЕНИЯ ПРОЦЕССА ФОРМИРОВАНИЯ СВЯЗНЫХ

СПИСКОВ

Аннотация:

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

Ключевые слова: программирование, средства визуализации отладчика, пользовательский визуализатор.

Romashkina T. V., candidate of pedagogical Sciences associate Professor of " Applied mathematics and Informatics»

Perm state national research University

Russia, Perm Mansurov A.N. student

3 course, faculty of Mechanics and mathematics» Perm state national research University

Russia, Perm

THE CREATION OF THE VISUALIZER PROGRAM CODE FOR

DISPLAYING THE PROCESS OF FORMING A LINKED LIST

Annotation:

This article discusses the capabilities of the Visual Studio programming environment to use the debugger visualization tools. The result of the development of a custom code Visualizer for a linked list is presented. The use of this development in the educational process can contribute to the better assimilation of educational material by students.

Keywords: programming, debugger visualization tools, user Visualizer.

Восприятие и усвоение информации во многом зависит от способа передачи информации. Утверждается, что текстовое сообщение, усваивается

на 7%; сообщение, переданное с помощью аудио -технологий - на 38%; «визуализация» информации способствует усвоению более чем у 55% людей [1 ]. При разработке программ с использованием абстрактных типов данных, визуализация алгоритмов, просмотр текущего состояния объекта визуализации - становятся актуальными. В связи с этим были рассмотрены средства визуализации отладчика Visual Studio.

Под визуализатором понимается компонент пользовательского интерфейса отладчика Visual Studio. Объект визуализатор создает диалоговое окно или другой интерфейс для отображения переменной или объекта способом, подходящим для того или иного типа данных. Так, например, HTML-визуализатор интерпретирует строку HTML и отображает результат в виде, аналогичном отображению в окне браузера. Некоторые визуализаторы позволяют не только просматривать, но и редактировать данные. Например, отладчик Visual Studio 2015 содержит шесть стандартных визуализаторов (В VS 2010 существует четыре визуализатора): текст; HTML; XML; JSON визуализаторы, которые работают со строковыми объектами; визуализатор дерева WPF для отображения свойств визуального дерева объекта WPF; средство визуализации наборов данных, который работает с объектами DataSet, DataView и DataTable.

На рисунках 1 и 2 показан результат работы визуализатора отладчика для следующих возможностей: «Средство визуализации текста» и «Визуализатор HTML». Точка останова - строка программного кода: Console.WriteLine(" a="+a); .

class Program { static void Main(string[] args)

{ string a = "ОСНОВЫ CРЕДСТВ ВИЗУАЛИЗАЦИИ "; Console.WriteLine(" a="+a); Console.ReadKeyQ; } }

жальные

Имя Значение Тип

args {string[0]} string)]

Щ5 а "ОСНОВЫ СРЕДСТВ ВИЗУАЛИЗАЦИИ <! ^ Н string

S Средство визуализации текста Визуализатор XML Визу ал шатер HTML Визуализатор JSON

Рис. 1. Окно локальных переменных «Локальные» для выбора

визуализатора

Рис. 2. Окна выбранных визуализаторов для объекта строкового типа Архитектура визуализатора отладчика состоит из двух частей: Код отладчика — код, который запускается в отладчике Visual Studio. Этот код создает и отображает пользовательский интерфейс визуализатора. Код, который необходимо отладить — код, который выполняется внутри процесса, отлаживаемого в Visual Studio (отлаживаемая программа).

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

Существует возможность создавать собственные визуализаторы и устанавливать их в отладчик Visual Studio. Возможности Visual Studio позволяют создавать пользовательский визуализатор несколькими способами: «вручную» и используя шаблон элемента визуализатора[1].

На рисунке 3 представлен результат работы визуализатора пользователя для отображения однонаправленного списка из трех элементов с выводом реальных адресов расположения каждого из компонентов списка в динамической памяти. Например, первый элемент списка с информационным полем 10 располагается по адресу 50928592, адресное поле next хранит адрес следующего элемента с информационным полем 11, который располагается по адресу 50930120.

Рис. 3. Визуализатор пользователя для однонаправленного списка Графическое представление элементов списка реализовано с помощью пространства имен System.Drawmg.Drawmg2D.

В процессе работы программы создается структура, заполняется данными, а затем происходит вызов самого визуализатора. При запуске визуализатора вызывается функция Show, выполняющая две задачи: получить объект структуры и создать форму для отображения списка: public classVisualizerKurs : DialogDebuggerVisualizer { private OneLink thisObject;

protected override void Show (IDialogVisualizerService windowService,

IVisualizerObjectProvider objectProvider) { if (windowService == null)

throw new ArgumentNullException("windowService") if (objectProvider == null)

throw new ArgumentNullException ("objectProvider"); object data = (object) objectProvider.GetObject(); thisObject = (OneLink)data;

using (Form displayForm = new Form()) {displayForm.Text = data.ToString(); displayForm.Width = 1100; displayForm.Height = 500; displayForm.Text = "Visualizer";

displayForm.Shown += new System.EventHandler(FormShown); windowService.ShowDialog(displayForm); } }

Разработанный метод CheckFour реализует вариант отображения списка: если элементов не более трех, то список будет представлен аналогично рисунку 2; иначе перед последним элементом списка «ставится» многоточие:

Private bool CheckFour(OneLink now) { if (now.next.next.next == null) return true; else return false; }

Для визуализации отдельных элементов был разработан статический класс StructPainter на основе System.Drawing.Drawing2D. Изначально, необходимо получить ссылку на форму, на которой будут отображены элементы списка и инициализировать графику (метод start): Public static void start(Form temp) { form = temp; graphics = form.CreateGraphics(); } Визуализация отдельного объекта происходит в два этапа: сбор данных (метод PaintTableOneLink) и работа с графикой. Метод PaintTableOneLink является небезопасным участком кода в C#, так как получает адрес ячеек памяти. Для компиляции проекта, необходимо разрешить небезопасный код в свойствах проекта. Метод PaintTableOneLink:

Unsafe public static bool PaintTableOneLink(OneLinkobj)

{TypedReferencetrObj =_makeref(obj);

IntPtr tempPtr1 = **(IntPtr**)(&trObj); string adr1 = tempPtr1.ToString(); string data = obj.d.ToString(); string adr3 = ""; bool ans = false;

if (obj.next == null) { adr3 = "null"; ans = false; }

else { TypedReference trObj3 =_makeref(obj.next);

IntPtr tempPtr3 = **(IntPtr**)(&trObj3); adr3 = tempPtr3.ToString(); ans = true; } PaintTableOneLinkInterior(adr1, adr3, data);

return ans;}

Собранные данные передаются в метод PaintTableOneLinkInterior, для последующей визуализации.

Private static void PaintTableOneLinkInterior (string adrl, string adr3, string data)

{ int width = 70; int height = 35; intfontSize = 10;

graphics.DrawRectangle (fatPen, lastCoordinateX, lastCoordinateY, width * 3, height);

graphics.DrawRectangle (fatPen, lastCoordinateX, lastCoordinateY, width, height);

graphics.DrawString (adrl, new Font("Arial", fontSize), newSolidBrush (textColor),

newPointF(lastCoordinateX + 8, lastCoordinateY + 6) ); graphics.DrawRectangle (mainPen, lastCoordinateX + width, lastCoordinateY, width, height); graphics.DrawString ( data,

new Font ("Arial", fontSize), newSolidBrush (textColor),

newPointF(lastCoordinateX + 22 + width, lastCoordinateY + 6) );

graphics.DrawRectangle (mainPen, lastCoordinateX + 2 * width, lastCoordinateY, width, height);

graphics.DrawString( adr3, new Font ("Arial", fontSize), newSolidBrush(textColor),

newPointF(lastCoordinateX + 11 + 2 * width, lastCoordinateY + 6)); lastCoordinateX += 3 * width; }

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

Программный код визуализатора состоит из трех файлов: Program.cs, VisualizerKurs.cs и StructPainter.cs. Работа программы начинается с файла Program.cs, в котором расположена функция main.

usingSystem; usingSystem.Linq; usingSystem.Diagnostics; namespaceNotBadVisualizer {

[DebuggerVisualizer(typeof(VisualizerKurs))] [Serializable] Class OneLink { publicintd;publicOneLinknext; } Class Program

{ staticOneLinkGenerateLink (int[] items) {if (items.Length == 0) {return null; } else if (items.Length == 1) { OneLink last = newOneLink(); last.d = items[0]; return last; } else { OneLinkelem = newOneLink(); elem.d = items[0]; elem.next = GenerateLink (items.Skip(1).ToArray()); return elem; } } static void Main(string[] args)

{ int[] input = newint[5] { 10, 11, 12, 13, 14 }; OneLinkt = newOneLink();

t = GenerateLink(input); VisualizerKurs.TestShowVisualizer(t); } }} .

В функции main создается однонаправленный линейный список из 5 элементов, затем вызывается код визуализатора, привязанный к классу списка OneLink.

Использованные источники:

1. Почепцов Г. Г. Имиджелогия. М.: Рефл-бук; Киев: Ваклер, 2006. 575 с.

2. Пошаговое руководство. Написание визуализатора на C#. [Электронный ресурс]. Режим доступа: https://docs.microsoft.com/ru-ru/visualstudio/debugger/walkthrough-writing-a-visualizer-in-csharp?view=vs-2017 (дата обращения 14.04.2019).

УДК 004

Черников М.В. студент 3 курса

факультет «Информационных систем и технологий» ФГБОУ ВО «Поволжский государственный университет

телекоммуникаций и информатики»

Россия, г. Самара ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ

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

Ключевые слова: система электронного документооборота, информация, информационные системы.

Chernikov M. V. the student

3-nd year, Faculty of Information Systems and Technologies

Volga State University Telecommunications and Informatics Information systems and technologies

Federal State-Funded Educational Russia, Samara «Povolzhsky State University of Telecommunications and

Informatics», Russia, Samara PROGRAMMING OF MICROCONTROLLERS

Annotation. The article is devoted to the review and analysis of electronic document circulation systems. An overview of the electronic document circulation systems is presented as a means of organizing the workflow in the enterprise. It

i Надоели баннеры? Вы всегда можете отключить рекламу.