Сортировка массива как один из способов его обработки

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.04.2011
Размер файла 295,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

ВВЕДЕНИЕ
1. Основная часть
1.1 Постановка задачи
1.2 Теоретическое решение задачи
2. Программная реализация решения задачи

2.1 Выбор языка программирования и среды разработки

2.2 Руководство пользователя

2.2.1 Системные требования к среде выполнения программы

2.2.2 Установка программы на компьютер пользователя

2.2.3 Работа с программой

2.2.4 Удаление программы

2.3 Руководство программиста

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.

ПРИЛОЖЕНИЯ

ЛИСТИНГ ПРОГРАММЫ

Введение

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

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

В данной курсовой работе рассматривается один из способов обработки массивов -сортировка массива.

1. Основная часть

1.1 Постановка задачи

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

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

1.2 Теоретическое решение задачи

Массив - это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти.
Количество элементов в массиве всегда конечно.
В общем случае массив - это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.
Название регулярный тип (или ряды) массивы получили за то, что в них объединены однотипные (логически однородные) элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве.

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

Тип элементов массива называется базовым.

Сортировка - один из наиболее распространённых процессов современной обработки данных. Сортировкой называется распределение элементов массива в соответствии с определёнными правилами. Например, сортировка массива по возрастанию или убыванию его элементов.

Для выполнения поставленной задачи используем следующий метод. В массиве необходимо найти элемент с минимальным значением и поменять его местами с первым элементом массива (для сортировки по убыванию - это необходимо сделать с максимальным элементом). После этого элемент с минимальным значением отыскивается среди всех элементов, кроме первого, и меняется значениями со вторым элементом массива и т.д. В результате все элементы выстраиваются по порядку.

2. Программная реализация решения задачи

2.1 Выбор языка программирования и среды разработки

Для разработки программного продукта данной задачи был использован язык программирования С++ в среде разработке С++ Builder 6.

В последнее время появилась потребность в эффективных средствах разработки программного обеспечения. Это привело к появлению систем программирования, ориентированных на так называемую «быструю разработку» или RAD- систем(Rapid Application Development - среда быстрой разработки приложений). В её основе лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берёт на себя большую часть рутины, оставляя программисту работу по конструированию диалоговых окон и созданию функции обработки событий.

Одной их широко используемых RAD- систем является Borland C++Builder, которое позволяет создавать различные программы: от простейших однооконных приложений до программ управления распределёнными базами данных. В качестве языка программирования в среде Borland C++Builder используется С++. Система программирования Borland C++Builder 6 завоевала достаточно прочные позиции среди профессиональных и начинающих программистов. Здесь можно отметить ряд причин: большая популярность языка программирования С++, удобство визуального конструирования приложений, эффективность генерируемого кода и др. Несмотря на появление других систем программирования таких как Visual C++ , система C++Builder устойчиво занимает свою нишу. Это обусловлено меньшей требовательностью к аппаратным ресурсам при разработке приложений, большей легкостью в освоении и применении средств системы для разработки приложений достаточной степени сложности.

С++ является объектно-ориентированным языком (ООЯ). Разработчик С++ - Бьерн Страуструп - хотел разработать ООЯ на базе С. Объектно-ориентированный подход пытается писать программы не в терминах ЭВМ, а в терминах нашей суровой действительности (предметной области). Например, необходимо написать программу, которая будет обрабатывать информацию об автомобилях. В программе на С был бы набор переменных, описывающих авто (марка, объем двигателя и т.д.) и набор функций для работы с этими переменными. Может быть переменные были бы объединены в структуру. В С++ был бы класс, описывающий авто и содержащий методы (функции в терминах С), для обработки информации об автомобиле. Вроде бы подход С и С++ почти похож (тем более, что классы являются дальнейшим развитием структур). Но в С++ есть несколько кардинальных отличий:

Инкапсуляция (сокрытие данных). Сведения о том, как хранится информация в классе от программиста, его использующего, скрыта. Например, если в классе есть метод, для получения объема двигателя, то программисту безразлично как эта информация определяется: или вычисляется или хранится в отдельной переменной. Такой подход, во-первых, уменьшает количество сущностей, которые необходимо знать программисту (принцип бритвы Оккама), во-вторых предоставляет большую свободу разработчику класса. Разработчик может как угодно менять внутренне содержимое класса, не влияя на программы, использующие этот класс. В С эта информация доступна пользователю и есть соблазн использовать ее на прямую, что может повлечь за собой необходимость переделки всей программы. Например, если раньше для объема двигателя применялась переменная, и программа к ней обращалась, то при переходе к расчету объема двигателя с помощью функции, программу надо переделывать для использования этой функции.

Наследование. Автомобиль является частным случаем транспортного средства. ООЯ позволяют строить новые, более специализированные, типы данных на базе уже существующих.

Полиморфизм. Несколько функций могут иметь одно и тоже значение. Это применяется когда для разных типов надо выполнять похожие действия. Зачатки полиморфизма есть и в обычных языках. Например символом '+' обозначается сложение и целых и вещественных чисел. Однако эти операции для разных типов данных выполняются по-разному.

Эти особенности С++ упрощают процесс программирования.

На основе объектно-ориентированного подхода был разработан алгоритм решения задачи представленный на рисунке 1.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 1

2.2 Руководство пользователя

2.2.1 Системные требования к среде выполнения программы

Для нормальной работы с данным программным продуктом требуется IBM-совместимый компьютер следующей конфигурации: тактовая частота процессора не менее 500 МГц, оперативная память не менее 32 МВ, видеоадаптер SVGA, объём свободного места на жестком диске не менее 15 МВ, операционная система Microsoft Windows 95/98/NT/2000/XP, устройство для чтения компакт-дисков.

2.2.2 Установка программы на компьютер пользователя

Установка программного продукта производится с компакт - диска на компьютер следующим образом:

a) вставить CD-ROM с программным продуктом в устройство чтения компакт-дисков;

b) произвести копирование папки massiv с программным продуктом в папку C:\Program Files

2.2.3 Работа с программой

Работа с программой начинается с открытия файла massiv.exe из папки с установленной программы. В результате откроется окно с

программы представленное на рисунке. В окне отображено две панели: одна предназначена для ввода чисел (левая), другая предназначена для вывода чисел в упорядоченном виде. Также в окне расположены две кнопки для выполнения сортировки массива. Одна кнопка сортирует по возрастанию - кнопка «Возрастание». Другая кнопка сортирует по убыванию - кнопка «Убывание».

Рисунок 2 - Окно приложения после загрузки.

В левую панель следует ввод произвольный набор чисел. Каждое число следует вводить в отдельную строку. Количество и длинна чисел не ограничена.

Рисунок 3 - Ввод данных.

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

Далее необходимо нажать на соответствующую кнопку операции. При нажатии на кнопку «Возрастание» массив чисел будет выведен по возрастанию чисел в правой панели.

Рисунок 4 - Результат работы кнопки «Возрастание».

При нажатии на кнопку «Убывание» соответственно вывод чисел по убыванию.

Рисунок 5 - Результат работы кнопки «Убывание».

2.2.4 Удаление программы

Удаление программы заключается в прекращении работы программы и удалением папки с программой через контекстное меню или перемещение папки с программой в корзину из окна программы проводника.

программа массив пользователь алгоритм

2.3 Руководство программиста

Программный продукт massiv разработан на языке программирования выского уровня С++ в среде C++ Builder 2006. Программа предназначена для работы для любой платформе, где установлена среда NET Framework версии не ниже 1.1. Программный продукт состоит из файла massiv.exe.

При разработке в среде С++Builder были использованы следующие компоненты визуализации: 2 компонента Мемо(поле ввода и вывода) и 2 компонента Button (кнопки «Возрастание» и «Убывание).

В программе используются следующие переменные:

float* a=new float [Memo1->Lines->Count]; - одномерный массив, который является расширяемым - размер массива и выделенное количество памяти зависит от количества введенных пользователем чисел. Все введенные пользователем числа в поле ввода сохраняются в данный массив.

a[x]=StrToFloat(Memo1->Lines->Strings[x]); - отдельный элемент массива считывающееся с поля ввода и преобразованный из строковой в числовую переменную.

int count=Memo1->Lines->Count; - целочисленная переменна равная количеству введенных чисел (строк).

Введенный массив чисел упорядочивается в соответствии с представленным алгоритмом:

{

int tmp;

for (int x = 0; x<count; ++x)

for (int j= x+1; j<count; j++)

{

if (a[x]>a[j])

{

tmp = a[x];

a[x] = a[j];

a[j] = tmp;

}

}

}

Вывод упорядоченного массива осуществляется через цикл и функцию вывода:

for(int x=0;x<Memo1->Lines->Count;x+=1)

Memo2->Lines->Add(a[x]);

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

1.Бобровский, С.И. Технологии С++Builder. Разработка приложений для бизнеса. Учебный курс. [Текст] / Бобровский С.И - СПб.:Питер, 2007. - 560с.

2.Архангельский, А.Я.. Программирование в С++Builder 6 и 2006. [Текст] / Архангельский А.Я., Тагин М.А. - М.: ООО «Бином-Пресс», 2007. - 1184с.

3. Бужан В.В. Основы программирования в среде Borland C++ Builder. Учебное пособие [Текст] / В.В. Бужан. -- Краснодар.: ЮИМ, 2005. -- 109 с.

4.Керниган, Б. Язык программирования Си Пер. с англ. [Текст] / Б. Керниган, Д. Ритчи. -- М.: Финансы и статистика, 1992.- 272 с

5.Нейгел, К. C# 2008 и платформа .NET 3.5 для профессионалов [Текст] / К. Нейгел, Б. Ивьен, Дж. Глинн, К. Уотсон, М. Скиннер - М:. И.Д. «Вильямс», 2008. - 1392 с.

6.Павловская, Т.А. C/C++ Программирование на языке высокого уровня [Текст] / Т.А. Повловская. - СПб.: Питер, 2004. -- 461 с.

7. Симонович,С.В .Информатика.[Текст] Базовый курс/С.В.Симонович - СПб.: Питер, 2004. - 640 с.

8. Уоррен,Д. Алгоритмические трюки для программистов.Пер. с англ. [Текст] / Д. Уоррен, С.Генри -- М. : Вильямс, 2007, --288с,

9. Подбельский, В. В. Программирование на языке Си. [Текст] / В. В. Подбельский , С. С Фомин -- М.: Финансы и статистика, 2005. - 600 с.

10. Амелина, Н.И. Задачи по программированию[Текст] / Н.И Амелина, Я.М. Демяненко - М.:Вузовская книга, 2008. - 500с

11. Вирт, Н.Алгоритмы и структуры данных.[Текст] /Н. Вирт - М.: Мир, 2007. - 452с.

12. Арсак, Р. Программирование игр и головоломок.[Текст] /Р. Арсак -М.:Мир, 2005. - 368с.

13.Шень, А.Программирование: теоремы и задачи.[Текст] /А. Шень - М.:МЦНМО, 2004 - 680с.

14. Скляров, В. А. Программирование на языках Си и Си++. [ Текст] / Скляров В. А - М.: Высшая школа, 2009 - 459с.

15. Керниган, Б.Язык программирования Си. Задачи по языку Си. [ Текст] / Б.Керниган, Д.Ритчи, А.Фьюер. - М.: Финансы и статистика, 1985 - 250с.

ПРИЛОЖЕНИЕ А

Листинг программы

#include <vcl.h>

#pragma hdrstop

#include<iostream.h>

#include<math.h>

#include "massiv.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//кнопка «Возрастание»

void __fastcall TForm1::Button1Click(TObject *Sender)

{

{ Memo2->Lines->Clear();

float* a=new float [Memo1->Lines->Count];

for(int x=0;x<Memo1->Lines->Count;x+=1)

a[x]=StrToFloat(Memo1->Lines->Strings[x]);

int count=Memo1->Lines->Count;

{

int tmp;

for (int x = 0; x<count; ++x)

for (int j= x+1; j<count; j++)

{

if (a[x]>a[j])

{

tmp = a[x];

a[x] = a[j];

a[j] = tmp;

}

}

}

for(int x=0;x<Memo1->Lines->Count;x+=1)

Memo2->Lines->Add(a[x]);}

}

//---------------------------------------------------------------------------

//кнопка «Убывание»

void __fastcall TForm1::Button2Click(TObject *Sender)

{

{ Memo2->Lines->Clear();

float* a=new float [Memo1->Lines->Count];

for(int x=0;x<Memo1->Lines->Count;x+=1)

a[x]=StrToFloat(Memo1->Lines->Strings[x]);

int count=Memo1->Lines->Count;

{

int tmp;

for (int x = 0; x<count; ++x)

for (int j= x+1; j<count; j++)

{

if (a[x]<a[j])

{

tmp = a[x];

a[x] = a[j];

a[j] = tmp;

}

}

}

for(int x=0;x<Memo1->Lines->Count;x+=1)

Memo2->Lines->Add(a[x]); }

}

Размещено на Allbest.ru


Подобные документы

  • Создание программы визуализации методов сортировки массива, особенности и направления ее практического применения. Выбор и обоснование среды программирования. Разработка руководства пользователя. Листинг программы и оценка эффективности ее использования.

    дипломная работа [1,0 M], добавлен 15.06.2014

  • Выбор языка программирования. Требования к информационному и техническому обеспечению. Реализация базы данных. Разработка алгоритма работы программного обеспечения. Форма идентификации пользователя. Руководство пользователя. Типы элементов диалога.

    дипломная работа [1,3 M], добавлен 05.07.2013

  • Проектирование программного обеспечения для создания баз данных о работах студентов университета при помощи языка Visual Basic. Разработка интерфейса пользователя. Руководство для системного программиста. Краткое описание алгоритма работы с программой.

    курсовая работа [2,6 M], добавлен 19.03.2010

  • Подготовка презентации по теме "Excel – фильтрация данных". Сличительная ведомость по материальным ценностям, форма разработки документа. Построение сводной таблицы расчета суммарного и среднего значений поля. Характеристика формирования массива.

    курсовая работа [2,6 M], добавлен 23.01.2011

  • Изучение особенностей растровых и векторных графических редакторов. Создание графического редактора: выбор языка программирования, разработка структуры программы и алгоритма работы. Описание интерфейса программы. Руководство программиста и пользователя.

    курсовая работа [1,3 M], добавлен 28.07.2013

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

    курсовая работа [4,5 M], добавлен 16.08.2012

  • Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.

    лабораторная работа [12,8 K], добавлен 02.12.2014

  • Структура программного комплекса и UML–представление программного обеспечения. Анализ статических нагрузок на пользователя при работе за компьютером. Руководство пользователя, программиста и системного администратора. Ошибки фискальных регистраторов.

    дипломная работа [3,4 M], добавлен 02.09.2013

  • Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.

    курсовая работа [1,5 M], добавлен 17.01.2011

  • Разработка программного продукта для ведения статистики спортивного мероприятия с удобным интерфейсом для оператора. Выбор среды разработки, дополнительных библиотек. Создание базы данных, виды проектирования. Руководства для пользователя и программиста.

    курсовая работа [6,5 M], добавлен 20.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.