Научная статья на тему 'Особенности работы с линейными списками в реализации с помощью указателей'

Особенности работы с линейными списками в реализации с помощью указателей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
78
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЛИНЕЙНЫЕ СПИСКИ / УКАЗАТЕЛИ / LINEAR LISTS / POINTERS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Степович-цветкова Г. С.

Рассмотрены особенности и некоторые преимущества реализации линейных списков с помощью указателей в сравнении с другими способами реализации.

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

PECULIARITIES OF WORKING WITH LINEAR LISTS IN IMPLEMENTATION BY POINTERS

The peculiarities and some advantages of the pointers implementation of linear lists in comparison with other methods.

Текст научной работы на тему «Особенности работы с линейными списками в реализации с помощью указателей»

Ключевые слова: система управления, САПР-системы, фрезерный станок.

Sokur A.A.

Student of 5th course, Tomsk State University of Control Systems and Radioelectronics MILLING MACHINE CONTROL SYSTEM FOR THE PRODUCTION OF PRINTED CIRCUIT BOARDS

The article considered the control system of the milling equipment for the manufacturing of printed circuit boards and overview of the unique software for the design of electronic product model.

Keywords: control systems, CAD-systems, milling machine.

Универсальным средством для обработки поверхностей являются фрезерные станки. Они позволяют работать с разнообразными материалами, в том числе с металлами. Фрезерные станки можно встретить как на больших, так и малых предприятиях различных отраслей промышленности.

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

Фрезерные станки с ЧПУ позволяют изготовить детали со сложными криволинейными поверхностями. Они могут использоваться как для серийного выпуска деталей, так и для единичных партий. Использование предприятием современных фрезерных станков позволяет повысить эффективность труда и снизить затраты, вследствие чего возрастет доход предприятия.

В настоящее время существует множество станков по изготовлению печатных плат с использованием ЧПУ (числовое программное управление). К таким станкам относятся:

• Фирма «РЕАБИН»;

• Марки «BEAVER»;

• Марки «RABBIT».

Большинство станков используют встроенные программные обеспечения. У каждого своя собственная система управления. В данной работе используется программа Mach2, позволяющая управлять фрезерным станком во время процесса изготовления печатной платы.

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

В наше время самым популярным и самым мощным ПО считается ACCEL EDA. Система ACCEL EDA 12.0 объединяет лучшие качества пакетов TangoPRO и P-CAD. От TangoPRO заимствован редактор схем и менеджер библиотек, от P-CAD -средства разработки печатных плат. Система ACCEL EDA выполняет полный цикл проектирования печатных плат, включающий графический ввод схем, упаковку схемы на печатную плату, ручное размещение компонентов, ручную, интерактивную и/или автоматическую трассировку проводников, контроль ошибок в схеме и печатной плате и выпуск документации.

Поддерживает данную систему только Windows. Минимальные требования:

1. ACCEL Schematic - 8 МБ ОЗУ;

2. ACCEL P-CAD PCB - 8 МБ ОЗУ;

3. Автотрассировщик ACCEL PRO Route - 16 МБ

Рассмотрев множество аналогов, подобных ACCEL EDA, было принято решение использовать программу EAGLE CAD (v. 6.4.0), являющейся более «поддерживаемой» системой. Доступна как на Windows, так и на Linux и Mac OS.

Но это не самое главное преимущество, по сравнению с ACCEL EDA. Система является «легковесной», проста в использовании и многое другое. Работа в демо-версии позволяет инженеру работать с платой, размерами 100*80 мм, что в свое время отлично подходит для станка фирмы «РЕАБИН». Как упоминалось раньше, системой управления станка фирмы «Реабин» является программное обеспечение МАСН2 (см. Рисунок 1)

Рис. 1 - Пример рабочего окна программы MACH2

Позволяет работать непосредственно как с печатными платами, так и простой резьбу по дереву, либо металлу, в зависимости какими свойствами обладает станок. Имеет в наличие кнопку «Аварийной остановки», именуемой RESET. Способность редактирования кода. Кстати, программа поддерживает форматы TAP, NCC, NC и TXT. Работает на основе G-кодов. Некоторые задают направление фрезы (линейная или круговая экстраполяции), другие задают смену плоскостей (возможность использования комбинаций XY, YZ либо ZX) и многое другое.

Подытожим, систем управления фрезерным станком довольно много, как и ПО для разработки печатной платы. Во многих есть свои как преимущества, так и недостатки. Каждый свойственен выбирать на свой вкус. В данной работе протестирована и оценена программа EAGLE (версии 6.4.0 в демо-режиме), а также программа MACH2. Использовав данные САПР-системы была составлена система управления для фрезерного оборудования по изготовлению печатных плат, на основе которой произведены процессы проектирования и изготовления печатной платы.

Литература

1. Петров М. Лазерная обработка материалов в электронике //Компоненты и технологии, 8. - 2002.

Степович-Цветкова Г.С.

Кандидат экономических наук, Ивановский государственный университет ОСОБЕННОСТИ РАБОТЫ С ЛИНЕЙНЫМИ СПИСКАМИ В РЕАЛИЗАЦИИ С ПОМОЩЬЮ УКАЗАТЕЛЕЙ

Аннотация

Рассмотрены особенности и некоторые преимущества реализации линейных списков с помощью указателей в сравнении с другими способами реализации.

98

Ключевые слова: линейные списки, указатели.

Stepovitch-Tsvetkova G.S.

PhD in economic, Ivanovo State University

PECULIARITIES OF WORKING WITH LINEAR LISTS IN IMPLEMENTATION BY POINTERS

Abstract

The peculiarities and some advantages of the pointers implementation of linear lists in comparison with other methods.

Keywords: linear lists, pointers.

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

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

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

Описание одного элемента двунаправленного списка, объединяющего поле данных и указатели на предыдущий и последующий элементы, на языке С++ выглядит следующим образом:

struct Node{ int info;

Node *next; // указатель на следующий элемент Node *prev; // указатель на предыдущий элемент

};

Весь список задается указателем на его начало, для удобства можно создать дополнительно указатель на конец списка (рис. 1), учитывая, что список двунаправленный и может понадобиться проход по списку в обратном порядке.

begin end

0

Рис. 1 - Двунаправленный линейный список

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

Особенностью работы со списками в реализации с помощью указателей является необходимость манипулирования различными указателями. Так, например, при удалении элемента списка необходимо произвести пять действий, каждый из которых так или иначе связан с работой над указателями. Первое действие - создание указателя на удаляемый элемент, второе - проверка местоположения удаляемого элемента в списке. В случае если удаляемый элемент находится в начале списка, то необходимо сначала установить указатель на начало списка на следующий за удаляемым элемент, а затем у нового начального элемента списка в поле указателя на предыдущий элемент установить значение ноль. Удаление элемента, расположенного в конце списка происходит аналогично. Чтобы удалить элемент из середины списка, необходимо у соседних элементов переставить указатели друг на друга. После того, как все необходимые указатели переставлены, производим освобождение памяти, занятой удаляемым элементом.

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

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

Литература

1. Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы : пер. с англ. - М. : Издательский дом «Вильямс», 2000. - 384 с.

2. Шилдт Г. Искусство программирования на C++. - СПб. : БХВ-Петербург, 2005. - 496 с.

Степович-Цветкова Г.С.

Кандидат экономических наук, Ивановский государственный университет РЕКУРСИВНЫЕ АЛГОРИТМЫ ПРИ РАБОТЕ С БИНАРНЫМИ ДЕРЕВЬЯМИ

Аннотация

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

Ключевые слова: бинарное дерево, рекурсия.

Stepovitch-Tsvetkova G.S.

PhD in economic, Ivanovo State University

99

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