1 Теоретическое введение
Целью выполнения курсовой работы является создание библиотеки подпрограмм для работы с одномерными массивами (связанными списками). В ходе выполнения курсовой работы были реализованы следующие операции:
- операция вставки элемента в массив (создания массива);
- операция удаления из массива одного значения;
- операция удаления из массива группы значений;
- операция удаления из массива повторных вхождений;
- операция удаления пересечения двух массивов.
А также реализованы процедуры:
- сортировки массива по возрастанию;
- сортировки внешнего файла, состоящего из положительных чисел по возрастанию;
- формирования таблицы умножения для заданной системы счисления.
Для решения задачи мной была создана структура данных однонаправленный связанный список. Связанный список представляет собой последовательность элементов. Элемент связанного списка состоит из полезной информации и указателя на следующий элемент списка (рис. 1)[3].
Рисунок 1 Однонаправленный связанный список
В односвязном списке можно передвигаться только в сторону конца списка. Элемент реализованного мною связанного списка в качестве полезной информации несет целое положительное число F. Для того, чтобы получить доступ к связанному списку, необходимо знать его первый элемент. Изначально связанный список пуст, и его первый элемент помечается как nil. При добавлении элемента в пустой список, добавляемый элемент становится первым, и указывает на nil, это значит, что за ним элементов нет. При добавлении следующего элемента его адрес заносится в соответствующее поле предыдущего элемента списка, так образом организована связь всех элементов. Последний элемент в списке будет указывать на nil.
Основное преимущество связанных списков в том, что с помощью них легко можно передавать параметры-массивы в процедуры и функции. В Delphi подпрограммы могут быть процедурами (возвращать значения нескольких переменных) и функциями. Также в Delphi передаваемым и возвращаемым параметром может быть тип массив. Но если рассмотреть язык С, то там существуют только подпрограммы-функции, а функция может возвращать только одно значение. Поэтому для реализации процедур в С пользуются указателями. Указатель хранит в себе адрес переменной в оперативной памяти. По этому адресу можно записывать значение переменной, и считывать его. Таким образом, передача в функцию массива в виде связанного списка будет заключаться в передаче указателя на первый элемент списка. Функция изменяет (например) связанный список. И после того как связанный список изменён, к нему можно получить доступ, зная адрес его первого элемента.
Связанный список обладает преимуществами по сравнению с использованием типа одномерный массив. Главное преимущество связанных списков перед массивами состоит в том, что они могут уменьшать или увеличивать свои размеры во время выполнения программы. Второе преимущество состоит в том, чо они обеспечивают гибкость при переорганизации их элементов. Такая гибкость получается за счет потери в скорости доступа к произвольному элементу списка.
Для формирования таблицы умножения я воспользовался типом данных Массив.
Отличительная особенность массивов заключается в том, что все их компоненты - данные одного типа (возможно, структурированного). Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:
type
Содержание
1 Теоретическое введение 2
1.2 Описания методов 6
1.2.1 Операция вставки элемента в массив (создания массива) 6
1.2.2 Операция удаления из массива одного значения 6
1.2.3 Операция удаления из массива группы значений 6
1.2.4 Операция удаления из массива повторных вхождений 6
1.2.5 Операция удаления пересечения двух массивов 7
1.2.6 Cортировка массива по возрастанию 7
1.2.7 Cортировка внешнего файла, состоящего из положительных чисел по возрастанию 8
1.2.8 Формирование таблицы умножения для заданной системы счисления 10
2 Проектная часть 11
2.1 Постановка задачи 11
2.2 Подход к решению 12
3 Экспериментальная часть 13
3.1 Тестирование 13
3.2 Инструкция пользователя 14
Список литературы 15
Приложение А Главный модуль программы 16
Приложение Б Модуль методов 25
Приложение В Таблицы умножения для различных систем счисления 32
Приложение Г Инструкции для пользователя к каждой операции 33
Список литературы
1. Норенков И. П. Основы автоматизированного проектирования: Учеб. Для вузов. М.: Издательство МГТУ им. Н. Э. Баумана, 2000.
2. Фаронов В. В. Delphi. Программирование на языке высокого уровня: Учебник для вузов. Спб.: Питер, 2003.
3. Википедия свободная энциклопедия [Электронный ресурс]. [2009]. Режим доступа: http://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%8F%D0%B7%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA
4. Иллюстрированный самоучитель по Delphi 6 [Электронный ресурс]. [2009]. Режим доступа: http://www.realcoding.net/teach/delphi6/Glava%207/Index7.htm
для связи с ними только одной сигнальной линии и общего проводника. Питание и связь осуществляются через одно соединение. Для связи с такой микросхемой требуется задействовать только одну линию ввода-
и является пустым указателем, что означает конец списка. Рисунок 1. Линейный список (связанный список)Линейный список неудобен тем, что при попытке вставить некоторый элемент перед текущим элементом т