Автор: Пользователь скрыл имя, 27 Июля 2011 в 14:44, курсовая работа
Целью моей работы является создать сортировку данных строкового типа методом перестановок, используя процедуры и функции в среде Delphi.
Введение 3
1 Теоретические основы 4
1.1 Системные требования 4
1.2Анализ технического задания 4
1.3 Среда программирования Delphi 6
1.4 Основные принципы структурного программирования 12
1.5 Создание консольного приложения в среде Delphi 15
1.6 Компиляция и выполнение 18
1.7 Массивы на языке Delphi 19
1.8 Алгоритм ввода массива 20
1.9 Алгоритм вывода массива 20
1.10 Поиск минимального элемента массива 21
1.11 Алгоритм сортировки 21
1.12 Реализация алгоритмов с использованием подпрограмм 21
1.13 Алгоритм решения задачи 22
2 Разработка программы 23
2.1 Создание консольного приложения 23
2.2 Объявление основных переменных и констант 24
2.3 Реализация алгоритмов ввода и вывода массива 25
2.4 Реализация алгоритма сортировки 27
2.5 Тестирование и отладка 28
2.6 Руководство пользователя 29
Заключение 30
Рисунок 1.13 - Окно работающей консольной программы
5 Нажмите в этом окне клавишу Enter – консольное приложение завершится.
Теперь, когда есть основа для проверки изучаемого материала, рассмотрим операторы консольного ввода-вывода. К ним относятся Write, Writeln, Read, Readln.
Консольный вывод.
Инструкции Write и Writeln служат для вывода чисел, символов, строк и булевских значений на экран. Они имеют следующий формат:
Если инструкции Write и Writeln записаны без параметров:
Инструкции ввода обеспечивают ввод числовых данных, символов, строк для последующей обработки в программе. Формат их прост:
Read(X1, X2, ... ,Xn);
Readln(X1, X2, ... ,Xn), где X1, X2, ..., Xn – переменные, для которых осуществляется ввод значений
Пример:
Read(A);
// Вводится значение переменной A
Readln(B); // Вводится значение переменной B |
Если одна инструкция вводит несколько значений:
Read(A, B), то все эти значения надо набрать на клавиатуре, отделяя одно значение от другого пробелом, и нажать клавишу Enter.
Если вводится одно значение:
Read(C), то его следует набрать и нажать клавишу Enter. С этого момента программа может обрабатывать введенное значение в соответствии с алгоритмом решаемой задачи.
Инструкция Readln отличается от Read только одним свойством: каждое выполнение инструкции Readln переводит курсор в начало новой строки, а после выполнения Read курсор остается в той же строке, где и был (потренеруйтесь – и вы быстро поймете разницу).
В простейшем случае в инструкциях Read и Readln параметры можно вообще не указывать:
Read;
Readln;
Оба
этих оператора останавливают
1.6 Компиляция и выполнение
После того как пользовательский интерфейс создан, программу можно скомпилировать и запустить. Компиляцию без запуска выполняют комбинацией клавиш CTRL+F9 , компиляцию с последующим запуском – клавишей F9. При этом элементы управления, размещённые на форме, формально работоспособны(на кнопки можно нажимать, элементы меню можно набирать), однако полезных действий такая пустая программа, конечно , не выполняет.
Для ввода значений переменных с клавиатуры в программе можно использовать два оператора:
В
результате, в качестве значений каждой
из этих переменных будут использованы
введенные пользователем числа. Вводимые
значения можно разделять пробелами или
переносами строки.
1.7 Массивы на языке Delphi
Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков.
Объявление массива:
Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных. В общем виде инструкция объявления массива выглядит следующим образом:
Имя: array [нижний_индекс. .верхний_индекс] of тип
где:
имя — имя массива;
array
— зарезервированное слово
нижний_индекс и верхний_индекс — целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива;
тип — тип элементов массива.
Примеры объявления массивов:
name: array[1..30] of string[25];
При
объявлении массива удобно использовать
именованные константы. Именованная
константа объявляется в
const
NT = 18; // число команд
SN = 25; // предельная длина названия команды var
team: array[1..NT] of string[SN];
Для того чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив индекс в квадратные скобки. В качестве индекса можно использовать константу или выражение целого типа.
Если
массив не является локальным, т. е. объявлен
не в процедуре обработки события,
а в разделе переменных модуля,
то одновременно с объявлением массива
можно выполнить его
Обратите внимание, что количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет сообщения об ошибке: Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении).
При попытке инициализировать локальный массив компилятор выводит сообщение об ошибке: Cannot initialize local variables (локальная переменная не может быть инициализирована). Локальный массив можно инициализировать только во время работы программы, например, так:
For i := 1 to 10 do
a [i]:= 0;
Операции с массивами
Типичными операциями при работе с массивами являются:
1.8 Алгоритм ввода массива
Для ввода значений переменных с клавиатуры в программе можно использовать два оператора:
В результате, в качестве значений каждой из этих переменных будут использованы введенные пользователем числа. Вводимые значения можно разделять пробелами или переносами строки.
1.9 Алгоритм вывода массива
Для вывода информации на экран используются операторы:
В качестве выражений могут выступать:
Оба этих оператора выполняют одинаковое действие. Отличие их заключается в том, что при использовании writeln последующий вывод данных будет осуществляться с новой строки.
1.10 Поиск минимального элемента массива
Алгоритм поиска минимального элемента массива: сначала делается предположение, что первый элемент массива является минимальным, затем остальные элементы массива последовательно сравниваются с этим элементом. Если во время очередной проверки обнаруживается, что проверяемый элемент меньше принятого за минимальный, то этот элемент становится минимальным и продолжается проверка оставшихся элементов.
1.11 Алгоритм сортировки
Сортировка перестановкой (англ. Exchange selection) – метод сортировки, при котором все строки в списке устанавливаются в определенный порядок, путем перестановки двух соседних строк.
Сортировка перестановками состоит в следующем:
1.12 Реализация алгоритмов с использованием подпрограмм
Описание подпрограммы состоит из трех частей: заголовка подпрограммы, локального описания и тела подпрограммы. Заголовок используется, чтобы явно ввести в программу новую подпрограмму и обозначить начало ее описания. Локальные описания представляют собой набор описаний типов, переменных, констант и других подпрограмм, которые действуют только в рамках данной подпрограммы. Тело подпрограммы – это логический блок begin/end, содержащий операторы и команды Паскаля и реализующий нужную логику работы.
Заголовок подпрограммы состоит из трех частей: ключевого слова, характеризующего тип подпрограммы (процедура – procedure, или функция – function), списка параметров, перечисленных через точку с запятой и взятых в круглые скобки, и (только для функций) типа возвращаемого значения, указываемого вслед за двоеточием. Список параметров содержит параметры, каждый из которых представляет собой произвольное имя переменной и соответствующий ей тип через двоеточие. Если несколько параметров имеют одинаковый тип, то их можно перечислить через запятую.
Список параметров может быть опущен. Для некоторых параметров могут быть заданы значения по умолчанию (все параметры с такими значениями должны располагаться вместе и после параметров, для которых не задано значений по умолчанию).
1.13 Алгоритм решения задачи
Идея алгоритма сортировки по возрастанию массива, состоящего из К элементов, методом перестановок элементов состоит в последовательном поиске минимальных элементов и их перемещении к началу массива с помощью перестановок с элементами, имеющими меньший индекс.
На первом шаге находим минимальный элемент массива и меняем его местами с первым элементом массива. Остаются неупорядоченными n-1 элемент. Проводим поиск минимального элемента среди элементов со 2 по n-1 и делаем перестановку.
Повторяем процедуру поиска минимального элемента среди оставшихся неупорядоченных элементов многократно. Повторение реализуем с помощью цикла со счетчиком, максимальное значение которого составляет n-1. В результате массив сортируется по возрастанию.
2 Разработка программы
2.1 Создание консольного приложения
Консольное приложение – это особая форма программы для Windows, не создающая специальных окон и графических элементов управления. Для взаимодействия с пользователем используется текстовый интерфейс.
Выберем в диалоговом окне New items (Создать объект) категорию Delphi for. NET Projectsе (проекты Delphi для NET) и дважды щелкнем на значке Console Application (Консольное приложение). Система Delphi создаст новый проект, откроет его и переключится в редактор исходного текста создаваемой программы(рисунок 2.1).
Рисунок – 2.1 – Окно среды Delphi для создания нового проекта