Проектирование программы по анализу массива

 

Введение


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

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

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

В дипломной работе я использовала среду программирования Delphi. На стадии анализа требований мною был собран весь необходимый теоретический материал для создания программы. На стадии интеграции разработан программный код. На стадии тестирования проводилась проверка работоспособности программы.


1. Теоретическая часть


1.1Назначение и область применения


Программа позволяет визуально демонстрировать заполнение массива случайным образом и сортировать его различными методами.

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

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


1.2 Технические характеристики

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

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

Необходимо создать разработку программного продукта предназначенного для заполнения и сортировки массива.

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

·Наличие клавиш для заполнения, сортировки, удаления массива

·Наличие поля для отображения количества массива;

·Наличие поля скорости заполнения массива

·Наличие поля вывода гистограммы

Входными данными являются значения элементов целочисленного массива, сгенерированного случайным образом.

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

Внешний вид программы должен соответствовать интерфейсу Windows-приложения.

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

Описание алгоритма

Алгоритм - последовательность чётко определенных действий, выполнение которых ведёт к решению задачи. Алгоритм, записанный на языке машины, есть программа решения задачи.

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

1.разработка структуры программного продукта;

2.сбор информации;

.выбор среды программирования и разработка интерфейса;

.создание дизайна программного продукта;

.создание кнопок и ползунков, при помощи которых осуществляется работа программы;

.создание поля для вывода гистограммы.

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

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

Администратор устанавливает программу и имеет доступ к ее исходному коду.

входных и выходных данных

Входными данными являются значения элементов целочисленного массива, сгенерированного случайным образом.

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

К функциональным особенностям созданной программы можно отнести:

·возможность заполнения, сортировки, удаления массива;

·наличие поля для отображения размерности массива;

·возможность выбора скорости сортировки массива;

·возможность выбора метода и направления сортировки;

·возможность фиксирования времени сортировки;

·визуальное отображение процесса сортировки.

Выбор состава технических и программных средств

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

Для нормального функционирования программного продукта требуется ПК со следующими минимальными характеристиками:

·центральный процессор с частотой не ниже 1000 MГц;

·объём оперативной памяти не менее 512 MБ;

·жесткий диск с объемом свободной памяти не менее 70 МБ;

·дисковод CD/DVD;

·манипулятор «мышь»;

·клавиатура;

·монитор.

Программа работает в операционной системе Microsoft Windows 7. Операционные системы данного класса являются самыми надежными и популярными.

В качестве программных средств, при разработке программного продукта используется Delphi.- результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5. 5, добавил в Паскаль объектно-ориентированные свойства, а Delphi - объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией.

Изначально среда разработки Delphi была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован вариант для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и вскоре было объявлено о поддержке Microsoft.NET, которая, в свою очередь, была прекращена с выходом Delphi 2007.

На сегодняшний день, наряду с поддержкой разработки 32 и 64-разрядных программ для Windows, реализована возможность создавать приложения для Apple Mac OS X (начиная с Embarcadero Delphi XE2), IOS (включая симулятор, начиная с XE4 посредством собственного компиятора), а также, в Delphi XE5, приложения для Google Android (непосредственно исполняемые на ARM процессоре).

Независимая, сторонняя реализация среды разработки проектом Lazarus (Free Pascal, компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE.

Также предпринимались попытки использования языка в проектах GNU (например, Notepad GNU) и написания компилятора для GCC.

Язык Pascal предназначен для описания вычислительного процесса решения задачи, в состав которой могут входить величины.

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

Схема 1 - Используемые величины

Константы - данные, значения которых не изменяются в программе.

Переменные - данные, могущие изменяться при выполнении программы.

Для обозначения имен констант, переменных, функций, процедур и модулей используются буквы и цифры, входящие в алфавит языка, и знак подчеркивания «_». Имена начинаются с буквы или знака подчеркивания» _ «и содержат до 63 значащих символов. Символ пробела в имени не допускается. Эти имена принято называть идентификаторами.

Выражения - константы, переменные и обращения к функциям, соединенные знаками операций. Операторы - специальные символы и слова, выполняющие действия.

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

Классы и объекты Delphi. Для реализации интерфейса Delphi использует библиотеку классов, которая содержит большое количество разнообразных классов, поддерживающих форму и различные компоненты формы (командные кнопки, поля редактирования и т.д.).

Во время проектирования формы приложения Delphi автоматически добавляет в текст программы необходимые объекты. Это описание класса Когда программист, добавляя необходимые компоненты, создает форму, Delphi формирует описание класса формы. Когда программист создает функцию обработки события формы или ее компонента, Delphi добавляет объявление метода в описание класса формы приложения.

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

Графика языка программирования

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

В работе с графикой в Delphi в распоряжении программиста находятся канва (холст, полотно - свойство Canvas Delphi компонентов), карандаш (свойство Pen), кисть (свойство Brush) того компонента или объекта, на котором предполагается рисовать. У карандаша Pen и кисти Brush можно менять цвет (свойство Color) и стиль (свойство Style). Доступ к шрифтам предоставляет свойство канвы Font. Эти инструменты позволяют отображать как текст, так и достаточно сложные графики математического и инженерного содержания, а также рисунки. Кроме этого, работа с графикой позволяет использовать в Delphi такие ресурсы Windows как графические и видеофайлы.

Конечно, не все компоненты в Delphi имеют эти свойства. На вкладке Additional расположен специализированный компонент TImage, специально предназначенный для рисования, но также свойство Canvas имеют, например, такие компоненты как ListBox, ComboBox, StringGrid, а также и сама Форма, которая размещает наши компоненты! Кроме того, для печати документов Delphi обращается к свойству Canvas такого объекта как принтер.

Основное свойство такого объекта как Canvas Delphi - Pixels [i, j] типа TColor, то есть это двумерный массив точек (пикселов), задаваемых своим цветом. Рисование на канве происходит в момент присвоения какой-либо точке канвы заданного цвета. Каждому пикселу может быть присвоен любой доступный для Windows цвет. Например, выполнение оператора. Canvas. Pixels [100, 100]:=clRed;

приведёт к рисованию красной точки с координатами [100, 100]. Узнать цвет пиксела можно обратным присвоением::=Image1. Canvas. Pixels [100, 100];

Тип TColor определён как длинное целое (LongInt). Его четыре байта содержат информацию о долях синего (B), зелёного (G), и красного (R) цветов. В 16-ричной системе это выглядит так: $00BBGGRR. Доля каждого цвета может меняться от 0 до 255. Поэтому чтобы отобразить максимально красную точку, ей нужно присвоить цвет $000000FF.
Для стандартных цветов в Delphi определён набор текстовых констант. Увидеть его можно, открыв в Инспекторе Объектов свойство Color, например, той же Формы.


2. Практическая часть


.1 Техническое задание


Полное наименование программы «Создание программы визуализации методов сортировки массива».

Краткое наименование программы - «Сортировка массива».

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

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

Задание утверждено на заседании предметно-цикловой комиссии специальности 230105 14.04.2014 года.

Разработка является аттестационной при подготовке программиста.

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

Программный продукт должен обладать следующими функциональными характеристиками:

·иметь кнопки для заполнения массива;

·иметь кнопки для сортировки массива;

·удаление массива;

·внешний вид программы должен соответствовать интерфейсу Windows - приложения и должен быть удобен в работе и понятен пользователю любого уровня;

·программа должна запускаться по стандартам запуска Windows - приложения.

Входными данными являются значения элементов целочисленного массива, сгенерированного случайным образом.

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

Требования к временным характеристикам и размерам занимаемой памяти состоят в том, что время реакции программы на нажатие любой из клавиш не должно превышать 0,25 с, за исключением реакций на чтение и запись входных и выходных файлов.

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

·перезагрузки операционной системы;

·запуска исполняемого файла программы.

Уровень надежности программы должен соответствовать технологии программирования, предусматривающей комплексное тестирование программы.

Время восстановления после отказа должно состоять из:

·времени перезапуска пользователем операционной системы;

·времени запуска пользователем исполняемого файла программы.

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

Выбор методов решения осуществляется разработчиком.

Выбор языка программирования осуществляется разработчиком. При разработке программного продукта используется среда Delphi

Описание основных конструкций языка программирования

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

Элемент управления - это объект, имеющий свои свойства, методы, события.

1.Компонент Form

Форма - это важнейший визуальный компонент, который представляет собой видимое окно Windows. В системе Delphi форма является компонентом, который служит контейнером для всех других компонентов.

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

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

2.Компонент Button

Компонент Delphi Button это стандартная кнопка Delphi, кнопка имеет на поверхности надпись (описывающая её назначение при нажатии). Основное событие для кнопки является OnClick, выполняемое при нажатии, при этом кнопка меняет внешний вид, подтверждая этим происходящее действие визуально. Сразу после отпускания кнопки, выполняется действия в обработчике OnClick. Кнопку можно нажать не только щелчком мыши но и комбинацией клавиш, что бы задать комбинацию необходимо перед символом используемый в комбинации поставить символ амперсанта «&». После чего пользователь вместо щелчка мыши может использовать сочетание клавиш Alt и клавишей выделенного символа.


Свойства Button

Cancelесли установлено true, то нажимая клавишу «Esc» будет выполнено нажатие на данную кнопку. Это свойство лучше задавать для кнопок «Отменить»;Captionзадает название кнопкиDefaultесли установлено в true, то при нажатии клавиши Enter будет выполнено нажатию на данную кнопку, даже если в этот момент данная кнопка не находится в фокусе. Но если в момент нажатия в фокусе находится другая кнопка, то сработает кнопка находящаяся в фокусе.Hintподсказка - текст, который будет появляется рядом с курсором мыши при наведении указателя на кнопку (для того что бы текст отображался, свойство ShowHint должно быть <true>)ShowHintразрешает или запрещает отображение подсказки при наведении указателя на кнопку3.Компонент Image

Компонент Delphi Image предназначен для отображение на форме графических изображений по умолчанию выводит на поверхность формы изображения представленных в bmp формате. Для вывода изображений в jpg формате необходимо в дерективе uses подключить модуль JPEG. После размещения на форме компонента Image, он принимает вид выделенной прямоугольной области.


Свойства Image

Pictureизображение отображающееся в поле компонентаWidth, Heightразмеры компонента. Если эти размеры меньше размера иллюстрации, а значение свойств Strech, AutoSize и Proportional равны False, то отображается часть изображенияProportionalпозволяет автоматически масштабировать картинки без искажения. Для выполнения масштабирования, значение свойства AutoSize должно быть равным FalseStrechпозволяет автоматически масштабировать (сжимать или растягивать) изображение в соответствии с размером компонента Image.AutoSizeпозволяет автоматически изменять размер компонента в соответствии с размером изображенияCenterпозволяет определять расположение изображения в поле компонента Image по горизонтали, если ширина картинки меньше ширины компонента.Canvasповерхность, позволяющая вывести графикуTransparentуказывает прозрачный цвет фона изображения

4.Компонент Delphi - Label

Компонент Delphi Label предназначен для показа текста на форме нашей программы, которые не будет меняются в течение работы программы. Текст надписи компонента Label можно изменить, но делается это только программно. Текст, отображаемые в компоненте, определяются значением свойства Caption. Он прописывается в процессе проектирования или задается программно во время выполнения программы.



Свойства Label

colorопределяет фон компонентаfontопределяет свойство текстаvisibleyes(показать), false(скрыть) компонентWordWrapесли «yes» переносит текст на новую строкуCaptionнадпись отображаемого текстаAlignmentопределяет способ выравнивания текста. может принимать 3 состояния taLeftJustify - по левому краю компонента, taCenter - выравнивание по центру и taRightJustify - выравнивание по правому краюTransparentпри значение True, фон вывода текста прозрачный т.е. область компонента не закрашивается цветом установленным свойством ColorNameимя компонента

.Компонент TRadioButton

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

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

Свойства переключателя аналогичны свойствам флажка. Свойство Alignment определяет положение подписи справа или слева от переключателя, а свойство Checked - состояние объекта.



6.Компонент RadioGroup

Компонент Delphi RadioGroup представляет собой контейнер с группой компонентов RadioButton (переключателей). Такой компонент упрощает организацию работы переключателей, по сравнению другими групповыми контейнерами требующими добавлять переключатели вручную.

Компонент RadioGroup может содержать и другие компоненты, такие как редактор Edit или флажок CheckBox. Но автоматическое форматирование и распределение элементов на них не будет распространяться. В результате внешний вид приложения может пострадать тем, что элементы если и не будут перекрывать друг друга, то будут неравномерно располагаться относительно переключателей.

Основное свойство компонента RadioGroup это Items. В нем находятся строки, которые являются заголовками переключателей. Двойным щелчком на многоточии рядом с Items в Инспекторе Объектов мы попадаем в редактор списков строк, где каждая отдельная строка будет заголовком переключателя (радиокнопки). Отсчет строк идет с нуля. Элемент Items[2] будет третьим. Для работы с элементами используются методы: Add, Delete, Clear.



7.Компонент TrackBar

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

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



Свойства TrackBar

Positionцелое значение, которое изменяется в пределах, задаваемые свойствами Min и Max. По умолчанию это 0 и 10 соответственно. Если задать больше значение Max, то увеличится кол-во возможных значений Position.Orientationопределяет ориентацию ползунка горизонтальная или вертикальнаяTickMarksопределяет размещение шкалы относительно компонента сверху или снизу если компонент расположен горизонтально и справа или слева если компонент расположен по вертикали либо с обоих сторонTickStyleуказывает способ изображения шкалы. Может принимать значения: tsAuto - автоматическая прорисовка шкалы, tsManual - программное рисование шкалыс помощью метода SetTick, который помещает метку шкалы в позицию, соответствующую значению ValueFrequencyчастота меток шкалы если свойство TickStyle равно tsAutoLineSizeопределяет насколько смещается ползунок при перемещении стрелкамиPageSizeопределяет насколько смещается ползунок при перемещении клавишами PageUp и PageDawnSelStart и SelEndпозволяет визуально выделить на шкале некоторый диапазон (средний компонент на рисунке 1)ThumbLengthТолщина полосы бегунка в пикселях

Для работы программы необходима операционная система Windows 7

Для нормального функционирования программного продукта требуется ПК со следующими минимальными характеристиками:

·центральный процессор с частотой не менее 1000 MГц;

·объём оперативной памяти не менее 512 MБ;

·жесткий диск с объемом свободной памяти не менее 70 МБ;

·дисковод CD/DVD;

·манипулятор «мышь»;

·клавиатура;

·монитор.

Программный продукт записан на диске - CD-R, который хранится в пластиковом конверте. Маркировка программного продукта содержит тему разработки, имя разработчика, дату внедрения программного продукта.

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

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

Испытание и верификация программного продукта будут проводиться руководителем дипломной работы.

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


2.2 Технология разработки программного продукта


Создание программного продукта производилось по следующим технологическим этапам:

·Формирование и анализ требований к проекту - на этом этапе были сформулированы цели, задачи и требования к проекту. На основе этих требований была определена продолжительность его разработки.

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

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

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

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

·Проектирование программного продукта - разработка внутренней структуры программного продукта

·Выбор методологии разработки программного продукта и начало разработки (кодирование) - на этом этапе был создан первый работающий прототип программы средствами языка программирования Delphi для того, чтобы в дальнейшем, на следующих итерациях, постепенно детализировать и реализовать конкретные возможности, пропущенные по каким-то причинам на предыдущих итерациях;

В процессе выполнения этого этапа идет преобразование результатов этапа проектирования в коды на среде программирования Delphi.

·Тестирование программного продукта - проверка работоспособности отдельных модулей и всего проекта в целом.

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

На этапе тестирования была произведена проверка внешнего вида формы и её работы по заполнению таблиц в базе данных

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

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


.3 Текст программы с комментариями


unit Unit1;


interface

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, XPMan, Menus, ComCtrls;

= Array [0..25] of Integer;=Array [0..25] of Byte;= class(TForm): TImage;: TButton;: TLabel;

Button2: TButton;: TXPManifest;: TButton;

MainMenu1: TMainMenu;: TMenuItem;: TTrackBar;

Label2: TLabel;: TLabel;: TLabel;

Label5: TLabel;: TRadioGroup;: TRadioGroup;: TLabel;: TLabel;Button1Click (Sender: TObject);Button3Click (Sender: TObject);Button2Click (Sender: TObject);Pause (const Dela: Integer);Ris();Clearing();Zero(); Sort11 (); // пузырьковая по убыванию

procedure Sort12 (); // пузырьковая по возрастанию

procedure N1Click (Sender: TObject);TrackBar1Change (Sender: TObject);Sort21 (var A: TArray; min, max: Integer); // процедура быстрой сортировки по убыванию

procedure Sort22 (var A: TArray; min, max: Integer); // процедура быстрой сортировки по возрастанию

procedure Sort31 (var a: TArray); // Шелла по убываниюSort32 (var a: TArray); // Шелла по возрастаниюSort41 (Var ar: TArray; n: Integer); // выбор по убыванию

procedure Sort42 (Var ar: TArray; n: Integer); // выбор по возрастанию

private

{Private declarations}, my:TArray;, gg, bb:TAColor;

{Public declarations}

end;n=25;: TForm1;, t2:TDateTime;, sh, x1, x2, y1, y2, i, x, h:integer;

BitM:TImage;, Sbuf: TBitMap;: Byte;



{$R *.dfm}

TForm1. Sort21 (var A: TArray; min, max: Integer); // процедура быстрой сортировки по возрастанию

var i, j, supp, tmp: Integer;

begin:=Now;:=A [max - ((max-min) div 2)];

i:=min; j:=max;i<j do

beginA[i]<supp do i:=i+1;A[j]>supp do j:=j-1;i<=j then:=A[i]; A[i]:=A[j]; A[j]:=tmp;

:=rr[i];[i]:=rr[j];[j]:=buf;

buf:=gg[i];[i]:=gg[j];[j]:=buf;:=bb[i];

bb[i]:=bb[j];[j]:=buf;


i:=i+1; j:=j-1;; Ris;;

end;min<j then Sort21 (A, min, j);i<max then Sort21 (A, i, max);:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);;

TForm1. Sort22 (var A: TArray; min, max: Integer); // процедура быстрой сортировки по возрастанию

var i, j, supp, tmp: Integer;

begin:=Now;:=A [max - ((max-min) div 2)];

i:=min; j:=max;i<j do

beginA[i]>supp do i:=i+1;A[j]<supp do j:=j-1;i<=j then:=A[i]; A[i]:=A[j]; A[j]:=tmp;

:=rr[i];[i]:=rr[j];[j]:=buf;

buf:=gg[i];[i]:=gg[j];[j]:=buf;:=bb[i];

bb[i]:=bb[j];[j]:=buf;


i:=i+1; j:=j-1;; Ris;;

end;min<i then Sort22 (A, min, j);i<max then Sort22 (A, i, max);:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);;

TForm1. Sort31 (var a: TArray); // процедура Шелла убыванием

Var d, i, t: integer;: boolean; {пpизнак пеpестановки}:=Now;

d:=N div 2; {начальное значение интеpвала}

d>0 do begin {цикл с yменьшением интеpвала до 1}


{пyзыpьковая соpтиpовка с интеpвалом d}:=true;k do begin {цикл, пока есть пеpестановки}

k:=false; i:=1;i:=1 to N-d do begin

{сpавнение эл-тов на интеpвале d}

if a[i]>a [i+d] then begin:=a[i]; a[i]:=a [i+d]; a [i+d]:=t; {пеpестановка}

:=rr[i];[i]:=rr [i+d];

rr [i+d]:=buf;:=gg[i];[i]:=gg [i+d];[i+d]:=buf;:=bb[i];[i]:=bb [i+d];[i+d]:=buf;

:=true; {пpизнак пеpестановки}


Clearing; Ris;; {if…}; {for…}; {while k}:=d div 2; {yменьшение интеpвала}; {while d>0}:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);

end;

TForm1. Sort32 (var a: TArray); // процедура Шелла возрастаниемd, i, t: integer;: boolean; {пpизнак пеpестановки}:=Now;

d:=N div 2; {начальное значение интеpвала}

d>0 do begin {цикл с yменьшением интеpвала до 1}


{пyзыpьковая соpтиpовка с интеpвалом d}:=true;k do begin {цикл, пока есть пеpестановки}

k:=false; i:=1;i:=1 to N-d do begin

{сpавнение эл-тов на интеpвале d}

if a[i]<a [i+d] then begin:=a[i]; a[i]:=a [i+d]; a [i+d]:=t; {пеpестановка}:=true; {пpизнак пеpестановки}


buf:=rr[i];[i]:=rr [i+d];[i+d]:=buf;:=gg[i];[i]:=gg [i+d];[i+d]:=buf;:=bb[i];[i]:=bb [i+d];[i+d]:=buf;

; Ris;

; {if…}; {for…}; {while k}:=d div 2; {yменьшение интеpвала}

end; {while d>0}:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);;

TForm1. Sort41 (Var ar: TArray; n: Integer); // процедура вставки убыванием

Var i, j, T: Integer;

buf1, buf2, buf3: Byte;:=Now;i:= 1 To n Do:= ar[i];:= Pred(i);:=rr[i];:=gg[i];:=bb[i];

(j > 0) and (T < ar[j]) Do

Begin {!!!}[Succ(j)]:= ar[j];


rr [Succ(j)]:= rr[j];

gg [Succ(j)]:= gg[j];[Succ(j)]:= bb[j];

(j);;[Succ(j)]:= T;

[Succ(j)]:= buf1;[Succ(j)]:= buf2;

bb [Succ(j)]:= buf3;

; Ris;;:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);

End;

TForm1. Sort42 (Var ar: TArray; n: Integer); // процедура вставки возрастаниемi, j, T: Integer;

buf1, buf2, buf3: Byte;:=Now;i:= 1 To n Do:= ar[i];:= Pred(i);:=rr[i];:=gg[i];:=bb[i];

(j > 0) and (T > ar[j]) Do

Begin {!!!}[Succ(j)]:= ar[j];

rr [Succ(j)]:= rr[j];

gg [Succ(j)]:= gg[j];[Succ(j)]:= bb[j];(j);;[Succ(j)]:= T;[Succ(j)]:= buf1;[Succ(j)]:= buf2;

bb [Succ(j)]:= buf3;

; Ris;;:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);;


procedure TForm1. Pause (const Dela: Integer); // процедура задержки вывода: Cardinal;:= GetTickCount;. ProcessMessages;(GetTickCount - StT) >= Dela;

end;

TForm1. Ris(); // процедура графического вывода элементов массива

begin:=0;:=20;Image1. Canvas do

i:=1 to n do

begin:=x1+h;:=x1+h;

y1:=360;:=my[i];. Color:= RGB (rr[i], gg[i], bb[i]);

Rectangle (x1, y1, x2, y2);. Caption:=IntToStr(i);. Color:= clWhite;(x1, y2-15, IntToStr (y1-y2));. Visible:=false;

:=Image1. Picture. Bitmap;


end;;:=TBitMap. Create;. Width:=Image1. Width;. Height:=Image1. Height;(TrackBar1. Position);. Canvas. Draw (sv, sh, Bm);;

TForm1. Clearing(); // процедура очистки формы без обнуления массива:=0;

. Canvas. Brush. Color:= clWhite;. Canvas. FillRect (Rect(0,0, Width, Height));. Visible:=false;

. Caption:='';;

TForm1.N1Click (Sender: TObject); // информация о разработчиках

begin('Программа «Визуальная демонстрация'+#13#10+'методов сортировки массива» '

+#13#10+'Разработчик: Родионова П.С. гр П-IV-2'+#13#10+

'Руководитель-консультант: Александров В.Н.'+#13#10+'ТОГБОУ СПО «КИТ» 2014 г.'

+#13#10+'www.kit68.ru');;

TForm1. Zero(); // процедура очистки формы и обнуления массива

begin:=0;x:=1 to n do[x]:=0;. Canvas. Brush. Color:= clWhite;. Canvas. FillRect (Rect(0,0, Width, Height));:=Image1. Picture. Bitmap;. Canvas. Draw (0, sh, Bm);

. Caption:='';;

TForm1. Sort11 (); // пузырьковая по убыванию

var r, t, b:integer;


begin:=Now;t:=1 to n dor:=1 to n-t domy[r]>my [r+1] then:=my[r];[r]:=my [r+1];

my [r+1]:=b;

buf:=rr[r];[r]:=rr [r+1];[r+1]:=buf;:=gg[r];[r]:=gg [r+1];[r+1]:=buf;[r+1]:=b;:=bb[r];[r]:=bb [r+1];[r+1]:=buf;

Clearing; Ris;;;:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);

end;

TForm1. Sort12 (); // пузырьковая по возрастанию

var r, t, b:integer;

begin:=Now;t:=1 to n dor:=1 to n-t domy[r]<my [r+1] then:=my[r];[r]:=my [r+1];

my [r+1]:=b;

:=rr[r];[r]:=rr [r+1];[r+1]:=buf;:=gg[r];[r]:=gg [r+1];[r+1]:=buf;[r+1]:=b;:=bb[r];[r]:=bb [r+1];[r+1]:=buf;


Clearing; Ris;;;:=Now;. Caption:=FloatToStrF((t2-t1)*1000, ffFixed, 1,10);;

TForm1. TrackBar1Change (Sender: TObject); // скорость сортировки. Caption:=IntToStr (TrackBar1. Position);;

TForm1. Button1Click (Sender: TObject); // заполнение массива; Clearing;;x:=1 to n do[x]:=360-random(300);[x]:=random(250);[x]:=random(250);[x]:=random(250);; Ris;;

TForm1. Button3Click (Sender: TObject); // очистка массива

begin:=0; Zero;. Caption:=IntToStr(i);

for x:=1 to n do[x]:=0;;

TForm1. Button2Click (Sender: TObject); // выбор способа и направления сортировки(RadioGroup1. ItemIndex=0) and (RadioGroup2. ItemIndex=0) then Sort11;(RadioGroup1. ItemIndex=0) and (RadioGroup2. ItemIndex=1) then Sort12;

(RadioGroup1. ItemIndex=1) and (RadioGroup2. ItemIndex=0) then Sort21 (my, 1, n);(RadioGroup1. ItemIndex=1) and (RadioGroup2. ItemIndex=1) then Sort22 (my, 1, n);(RadioGroup1. ItemIndex=2) and (RadioGroup2. ItemIndex=0) then Sort31 (my);(RadioGroup1. ItemIndex=2) and (RadioGroup2. ItemIndex=1) then Sort32 (my);

(RadioGroup1. ItemIndex=3) and (RadioGroup2. ItemIndex=0) then Sort41 (my, n);(RadioGroup1. ItemIndex=3) and (RadioGroup2. ItemIndex=1) then Sort42 (my, n);

end;.


2.4 Описание программы


Общие сведения

Название программного продукта - «Создание программы визуализации методов сортировки массива».

Для нормальной работы программного продукта необходим компьютер типа IBM PC или совместимый с ним со следующим набором аппаратных средств:

Для нормального функционирования программного продукта требуется ПК со следующими минимальными характеристиками:

·центральный процессор с рабочей частотой не ниже 1000 MГц;

·объём оперативной памяти не менее 512 MБ;

·жесткий диск со свободным объемом не менее 70 МБ;

·дисковод CD/DVD;

·манипулятор «мышь»;

·клавиатура;

·монитор.

Программа написана на среде программирования Delphi

Функциональное назначение

«Сортировка массива» предназначена демонстрировать различные методы сортировки и выделять наиболее эффективные из них.

К функциональным особенностям разработанного в дипломе программного продукта можно отнести:

·Наличие клавиш для заполнения, сортировки, удаления массива

·Наличие поля для отображения количества массива;

·Наличие поля скорости заполнения массива

·Наличие поля вывода гистограммы

Описание логической структуры

Используемые технические средства

Для нормального функционирования программного продукта требуется ПК со следующими минимальными характеристиками:

·центральный процессор с рабочей частотой не ниже1000 MГц;

·объём оперативной памяти не менее 512 MБ;

·жесткий диск с объемом 70 МБ;

·дисковод CD/DVD;

·манипулятор «мышь»;

·клавиатура;

·монитор.

Так как.exe-файл программы «Сортировка массива» подвержен заражению, то для защиты компьютера от вирусов рекомендуется установить антивирусную программу.

Использование приведенных выше технических средств позволит обеспечить надежную работу всей системы в целом.

Установка и загрузка программы

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

Для запуска программы необходимо воспользоваться файлом Sortirovka.exe. При этом откроется окно программы (рисунок 1). После этого можно начинать работу с программой.


Рисунок 1 Окно программы

Входные данные

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

Выходные данные

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


2.5 Сопроводительная документация


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

Программный продукт находится на диске в папке «Сортировка массива».

Установка пособия происходит путем копирования соответствующей папки на жесткий диск компьютера.

Файлом, который загружает данное пособие, является Sortirovka.exe (рисунок 2).

Рисунок 2. Расположение загрузочного файла


При открытии файла Sortirovka.exe отображается панель ввода данных (Рисунок.3), которая содержит:

·Клавишу для заполнения массива(1)

·Способы сортировки

vПузырьковая(2)

vБыстрая(3)

vШелла(4)

vСлиянием(5)

·Скорость демонстрации сортировки(6)

·Направление сортировки

vПо убыванию(7)

vПо возрастанию(8)

·Кнопку сортировка массива(9)

·Наличие кнопки очищения массива(10)

·Количество элементов массива (11)

·Время сортировки(12)

Рисунок.3 Панель ввода логического выражения


Результатом работы программного продукта является гистограмма (Рисунок.4)


Рисунок.4 Результаты работы программы


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

Руководство администратора

Для работы программы необходим компьютер типа IBM PC или совместимый с ним со следующим набором аппаратных средств:

·центральный процессор с частотой не ниже 1000 MГц;

·объём оперативной памяти не менее 512 Mб;

·жесткий диск с объемом 70 МБ и более;

·привод для чтения лазерных дисков;

·стандартный манипулятор «мышь»;

·стандартная клавиатура;

·монитор.

·операционная система Windows 7

Эти требования к аппаратным средствам обеспечивают корректную работу приложения без сбоев и зависания.

Требуемое программное обеспечение:

·Операционная система Windows 7;

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

Установка программного обеспечения происходит с диска путем копирования «Сортировка массива»

Затем из каталога «Сортировка массива» необходимо запустить файл Sortirovka.exe и произойдет загрузка окна программы

Пользователь не имеет доступа к исходному коду программы.


2.6 Внедрение


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

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

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

Сотрудничество с заказчиком по обслуживанию системы называется сопровождением. Оно бесплатно на определенный гарантийный срок (например, год).

Сопровождение программы - поддержка работоспособности программы, переход на ее новые версии, внесение изменений, исправление ошибок и т.д.

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

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



3. Экономическая часть


.1 Расчет времени на создание программного продукта


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

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


Таблица 1 - Структура общего времени на создание ПП

№ этапаОбозначение времени данного этапаСодержание этапа1ТпоПодготовка описания задачи.2ТоОписание задачи.3ТаРазработка алгоритма.4ТбсРазработка блок-схемы алгоритма.5ТнНаписание программы на языке…6ТпНабивка программы.7ТотОтладка и тестирование программы.8ТдОформление документации, инструкции пользователю, пояснительной записки.

Время этапов рассчитывается в человеко-часах, причем Тпо и Тд принимается по фактически отработанному времени, а время остальных этапов определяется расчетно с учетом условного числа команд (Q).

Условное число команд определяется по формуле:

Q=q * c, (1)


где q - коэффициент, учитывающий условное число команд в зависимости от типа задачи.

Выбрать значение коэффициента q можно из таблицы 2

Принимаю коэффициент q=4550


Таблица 2 - Условное число команд в зависимости от типа задачи

Тип задачиПределы изменений коэффициентаЗадачи учетаот 1400 до 1500Задачи оперативного управленияот 1500 до 1700Задачи планированияот 3000 до 3500Многовариантные задачиот 4500 до 5000Комплексные задачиот 5000 до 5500

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

Программные продукты по степени новизны могут быть отнесены к одной из четырех групп:

группа А - разработка принципиально новых задач;

группа Б - разработка оригинальных программ;

группа В-разработка программ с использованием типовых решений.

- группа Г - разовая типовая задача.

Данный ПП по степени новизны может быть отнесен к группе Б - разработка оригинальных программ.

По степени сложности программные продукты могут быть отнесены к одной из трех групп:

1 - алгоритмы оптимизации и моделирования систем;

2 - задачи учета, отчетности и статистики;

3 - стандартные алгоритмы.

По степени сложности ПП отнесен к стандартным алгоритмам.

Коэффициент с определяется по таблице 3 на пересечении групп сложности и степени новизны.

Принимаю коэффициент с =1,10


Таблица 3 - Степень сложности ПП

ЯЗЫК ПРОГРАММИР.ГРУППА СЛОЖНОСТИСТЕПЕНЬ НОВИЗНЫАБВГвысокого уровня11,381,261,150,6921,301,191,080,6531,201,101,000,60низкого уровня11,581,451,320,7921,491,371,240,7431,381,261,150,69

Используем формулу 1 для определения условного числа команд Q.

Q =4550*1,10=5005 ч.

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

) Тпо (время на подготовку описания задачи), берется по факту и составляет:

Тпо = 4 чел.·час.

) То (время на описание задачи) определяется по формуле:


То = Q * В / (50 *К), (2)


где: В-коэффициент учета изменений задачи. Коэффициент В в зависимости от сложности задачи и числа изменений выбирается в интервале от 1,2 до 1,5.

Для данной задачи В = 1,2

К - коэффициент, учитывающий квалификацию программиста.

Выбрать значение коэффициента К можно из таблицы 4

Таблица 4 - Коэффициент квалификации программиста

Стаж программистаЗначение коэффициента Кдо 2-х лет0,8от 2 до 3 лет1,0от 3 до 5 лет1,1 - 1,2от 5 до 10 лет1,2 - 1,3свыше 10 лет1,3 - 1,5

В данном случае коэффициент К = 1,1

Применяя формулу 2, подсчитываем время на описание задачи.

То =5005*1,2/(50*1,1)=109,2 чел.·час

) Та (время на разработку алгоритма) рассчитываем по формуле:


Та = Q / (50 * К) (3)


Применяя формулу 3, подсчитываем время на разработку алгоритма.

Та=5005/(50*1,1)=91,0 чел.·час

) Тбс (время на разработку блок - схемы) определяется аналогично Та

по формуле 3 и составляет

Тбс = 91,0 чел.·час

) Тн (время написания программы на языке программирования)

определяется по формуле:


Тн = Q* 1,5/(50* К) (4)


Рассчитываем время написания программы на языке программирования.

Тн = 5005*1,5/(50*1,1)=136,5 чел.·час

) Тп (время набивки программы) определяется по формуле:


Тп = Q / 50(5)

Определяем время набивки программы.

Тп = 4550/50=100,1 чел.·час

) Тот (время отладки и тестирования программы) определяется

по формуле:


(6)


Подставляем значения в формулу и получаем:

Тот =5005*4.2/(50*1.1) =382,2 чел.·час

) Тд (время оформления документации) определяется по фактическим затратам времени Тд = 3 часа.

Таким образом, общее время на создание программного продукта (Т) равно:


Т = Тпо + То + Та + Тбс + Тн + Тп + Тот + Тд чел.·час(7)


T = 4+109,2+91,0+91,0+136,5+100,1+382,0+3=917,0 чел. час


3.2 Расчет заработной платы исполнителя работ


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

Оплата труда работников - это цена трудовых ресурсов, задействованных в производственном процессе.

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

) при сдельной форме оплаты труда различают виды:

·простая сдельная;

·сдельно-премиальная;

·косвенная сдельная;

·аккордная;

·сдельно-прогрессивная;

) при повременной оплате труда:

·простая повременная;

·повременно-премиальная;

·окладная.

В дипломном проекте я применяю повременно-премиальную систему оплаты труда работников.

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

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

При повременно-премиальной системе устанавливается размер премии в процентах к тарифной ставке за перевыполнение установленных показателей и условий премирования.

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

Тарифная форма оплаты труда предусматривает использование данных тарифных сеток.

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

Существуют единые тарифно-квалификационные справочники для специальностей применяемых во всех отраслях экономики и отраслевые тарифно-квалификационные справочники.

Основная заработная плата работника (ЗПосн.) определяется по формуле 8:


,(8)


где

З1 - месячная зарплата работника первого разряда, руб.;

Кт - тарифный коэффициент, соответствующий разряду, по которому работает исполнитель;

Т - общее время на создание программного продукта чел.·час;

Чр - число рабочих дней в месяце;

tр.д. - продолжительность рабочего дня в часах.

П - процент премии, согласно Премиального положения на данном предприятии, организации. Согласно Положения размер ставок премирования составляет:


·для исполнителя работ - от 20 до 30%,

·работников, обеспечивающих функционирование

ПЭВМ - от 25 до 35%;

·администрации - от 30 до 40%;

·уборщицы - от 10 до 20%.

Согласно законодательства Российской Федерации минимальный размер оплаты труда (МРОТ) составляет 5554 руб. в месяц.

Принимаю заработную плату работника первого разряда на уровне МРОТ.

Уровень квалификации исполнителя ПП - от 4 до 7 разряда.

Принимаю уровень квалификации исполнителя данного ПП - 5 разряд, соответственно тарифный коэффициент (Л.4, Приложение Б):

Кт = 1,268,

П = 25%.

tр.д. = 8 часов.

Чр - 21 день.

Основная заработная плата исполнителя работ составляет:

З.п.осн = ==48050,2 руб.

Размер дополнительной заработной платы (резерв на отпуск) принимается, от 10 до 15% основной заработной платы работника. Принимаю - 10%.

ЗПдоп = 48050,20*0,1 =4805,02 руб.

Таким образом, общая заработная плата исполнителя равна:


ЗПобщая = ЗПосн + ЗПдоп, руб. (9)


ЗПобщая=48050,2+4805,02=52855,22 руб.


3.3 Расчет отчислений на социальное страхование и обеспечение


Согласно Налогового кодекса РФ (часть 2), организации, предприятия перечисляют во внебюджетные фонды отчисления на социальное страхование и обеспечение, что позволяет мобилизировать средства для реализации права граждан на государственное пенсионное и социальное обеспечение, медицинскую помощь, а также обеспечить более строгий контроль за учетом и поступлением средств в соответствующие фонды.

Страховые отчисления с 01.01.2013 г. составляют - 30,0%, структура и расчет которых представлены в таблице 5. В случае изменения законодательства вводится поправка.


Таблица 5 - Начисления на заработную плату

NНаправленность отчисленийСтавка отчислений, %Сумма, руб.1Отчисления на социальное страхование2,91532,802Отчисления на медицинское страхование5,12695,623Отчисления в пенсионный фонд.22,011628,15Итого:30,015856,57

Нс.с = 52855,22*0,029 =1532,80 руб.


3.4 Расчет расходов на содержание и эксплуатацию ПК


Расчет себестоимости одного машино-часа работы ПК

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

Сначала определю годовые затраты каждого компонента себестоимости, в число которых входят:

) Основная заработная плата работников, обеспечивающих функционирование ПК.

К числу этих работников относятся:

инженер - электронщик;

системный программист;

оператор.

Зарплата каждого из этих категорий работников определяется по формуле:


руб.(11)


где:

Нобсл. - количество ПК, обслуживаемых одним работником;

Для инженеров - электронщиков -Нобсл. от 10 до 15 единиц;

для системных программистов -Нобсл. от 25 до 30 ед;

для оператора -Нобсл. от 5 до 10 ед.

Уровень квалификации:

·инженера - электронщика (условно) - от 10 до 12 разряда;

·системного программиста - от 12 до 14 разряда;

·оператора - от 9 до 11 разряда.

Принимаю уровень квалификации:

·инженера - электронщика - 10 разряд, Кт = 2,047 (Л.4. Приложение Б);

·системного программиста - 13 разряд, Кт = 2,618;

·оператора - 10 разряд, Кт = 2,047.

Заработная плата инженера-электронщика при Нобс = 10 единиц равна:

ЗПосн.год. и.-э. =,

системного программиста при Нобс = 26 единиц

ЗПосн.год. с.п. =

оператора при Нобс = 6 единиц равна

ЗПосн.год. оп. =

Общая годовая заработная плата работников, обеспечивающих функционирование ПЭВМ составит:


ЗПосн.год. обсл. перс. = ЗПосн.год. и.-э. + ЗПосн.год. с.п. + ЗПосн.год. оп. (12)


ЗПоснгод.обсл. перс.=17735,7+8724,22+29559,50=56019,41 руб.


) Дополнительная заработная плата обслуживающего персонала


ЗПдоп. = ЗПосн.г. *10% / 100%, руб. (13)


ЗПдоп.= 56019,42* 0,1 = 5601,94 руб.

Общая заработная плата равна сумме основной и дополнительной:


Зпгод.о.п. = ЗПосн + ЗПдоп, руб. (14)


Зпгод.о.п. = 56019,42+5601,94= 61621,36 руб.

) Начисления на заработную плату обслуживающего персонала.

Нзп 61621,36 * 0,30 = 18486,4 руб.

) Основная заработная плата административного и вспомогательного персонала.

К административному персоналу относим - начальника ИВЦ, вспомогательному персоналу - уборщицу.

Уровень квалификации начальника ИВЦ - от 10 до 13 разряда, уборщицы - от 2 до 3 разряда.

Принимаю уровень квалификации начальника ИВЦ - 10 разряд, Кт = 2,047 уборщицы - 2 разряд, Кт = 1,04

Определяем заработную плату уборщицы:

ЗПосн.уб. = 0 руб.,

начальника ИВЦ:

ЗПосн.н.ИВЦ=0 руб.

Общая основная зарплата административного и вспомогательного персонала составит:

ЗПосн.адм. всп. = ЗПосн.н. + ЗПосн.уб.

ЗПосн.адм. всп.= 3065,80+7083,80=10149,60 руб.

) Дополнительная заработная плата административного и вспомогательного персонала:

ЗПдоп = 10149,60*0,1 = 1014,96 руб.

Общая заработная плата:

ЗПгод.адм. всп.= 10149,60+1014,96= 11164,56 руб.

6) Начисления на заработную плату административного и вспомогательного персонала:

Нзп адм. и всп. = 11164,56 *0,30 = 3349,37 руб.

) Амортизационные отчисления определяются исходя из стоимости ПК и срока полезного использования ПК.

Амортизация - процесс постепенного переноса стоимости основных фондов на производимую продукцию в целях накопления средств для последующего воспроизводства основных фондов.

А = Кб * На / 100%, (15)


где:

Кб - балансовая стоимость одного ПК с периферией;

На - годовая норма амортизации ПК, которая зависит от срока полезного использования (Ти).

Ти - от 5 до 8 лет. Принимаю Ти = 8 лет.

Следовательно,

На = 100% / 8 = 12,5%

Принимаю балансовую стоимость одного ПК с периферией

равной 30000 руб.

А=30000*0,125=3750 руб.

) Затраты на электроэнергию складываются из:

затрат на силовую электроэнергию;

затрат на электроэнергию, которая идет на освещение.

Затраты на силовую электроэнергию определяются по формуле 16:


Зс.эн = Фэф. * Цэ * Р (руб.),(16)


где:

Фэф. - эффективный фонд времени работы ПК в часах.

Календарный фонд времени составляет 366 дней для високосного года, 365 дней.

Фэф.=[365 - (52*2+14)*0,9]*8=1778,4 час,

Цэ - стоимость 1 кВт/часа в руб.;

Р - суммарная мощность ПК с периферией в кВт / часах.

При работе ИВЦ в одну смену принимаю Фэф. = 1778,4 час.

Для бюджетных организаций Цэ = 2,20 коп. за 1 кВт * час. (условно).

Р - от 0,7 до 1,2 кВт/часа в зависимости от периферии.

Принимаю Р = 0,9 квт/час.

Определяем стоимость силовой электроэнергии:

Зс.эн = 1778,4*2,20*0,9=3521,23 руб.

Стоимость электроэнергии, которая идет на освещение помещения определяется по формуле 17:


Зосв = Фэф. * Цэ * Росв, руб. (17)


где:

Росв - суммарная мощность, которая идет на освещение в кВт /часах,

Росв = 200 вт / час.

Определяю стоимость осветительной энергии:

Зосв = 1778,4*2,20*200/1000= 782,5 руб.

Общие затраты на электроэнергию составят:

Зэн = Зс.эн + Зосв

Зэн = 3521,23+782,5 = 4303,73 руб.

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

Мр = 800 руб.

) Расходы на профилактику принимаются в размере от 1% до 2% балансовой стоимости ПК с периферией. Принимаю ставку расходов - 1%

Рпр = 30000*0,01= 300 руб.

) Затраты на отопление производственных площадей определяются по формуле 18


Зотоп. = Ц от. кв. м. * S * 12, (18)


где:

Ц кв. м. - расходы на отопление 1 кв. метра площади (условно) - 8,50 руб. в месяц;

S - площадь ИВЦ в кв. м. на 1 ПК, принимаю (условно) - от 5 до 7 м. Для расчета S=7 м2. Таким образом, расходы на отопление равны

Зотоп. = 8,50*7*12=714 руб.

12) Затраты на обслуживание производственных площадей определяются по формуле 19:


Зобс. = Ц кв. м. * S * 12,(19)


где:

Ц кв. м. - расходы на обслуживание 1 кв. метра, приблизительно от 150 до 170 руб. в месяц;

Принимаю Ц кв. м.=150 руб.

Зобс.= 150*7*12=12600 руб.

) Прочие производственные расходы принимаются в размере от 2,0% до 4,0% основной заработной платы работников, обеспечивающих функционирование ПК. Принимаю= 2,0%

Пр. = 56019,3*0,02=1120,39 руб.

Общие расходы на содержание и эксплуатацию одного ПК составят:

Рс.э.=56019,42+5601,94+18486,41+10149,6+1014,96+3349,37+3750+4303,73+800+300+714+12600+1120,39=118209,82 руб.

Далее определяем себестоимость одного машино-часа работы ПЭВМ, по формуле 20


(20),


Смч = руб.

Расчет расходов на содержание и эксплуатацию ПК

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


Рсэп = Смч * Тсум.


РСЭП = 66,47*917=60952,99 (руб.)

Данные расчета заносим в таблицу 6.


.5 Расчет себестоимости программного продукта


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

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

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

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

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

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

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

На предприятиях большое внимание уделяется совершенствованию структуры себестоимости, производится анализ затрат, разрабатываются мероприятия, направленные на снижение тех или иных затрат.

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

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

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

) основная заработная плата исполнителя работ,

) дополнительная заработная плата исполнителя работ,

) начисления на заработную плату (единый социальный налог),

) расходы на содержание и эксплуатацию ПЭВМ, относящихся к данному программному продукту,

) прочие расходы.

Прочие расходы составляют 8 - 10% от суммы первых четырех элементов. Принимаю - 8%.


Пр.р. = (ЗПосн + ЗПдоп + Нзп + Рсэп) * 8%/100% (руб.)


Пр.р. =(48050,2+4805,02+15856,57+60952,99)*0,08=10373,18 (руб.)

Себестоимость программного продукта составляет:


Сп.п. = ЗПосн + ЗПдоп + Нзп + Рсэп + Пр.р. (руб.)


Сп.п. ==(48050,2+4805,02+15856,57+60952,99+10373,18=140037,96 (руб.)

Отразим структуру себестоимости программного продукта в таблице 6


Таблица 6 - Структура себестоимости

№Элементы себестоимостиСумма, руб.Структура, %1Основная заработная. плата исполнителя48050,2034,32Дополнительная заработная. плата исполнителя4805,023,53Отчисления на социальное страхование и обеспечение15856,5711,34PC и ЭПЭВМ60952,9943,55Прочие расходы10373,187,4Итого:140037,96100

.6 Расчет цены программного продукта


Свободная договорная цена складывается из нескольких компонентов:


Цд = Ц + НДС,(20)


где

НДС - налог на добавленную стоимость, ставка - 18%.

Ц = С + П,


где

С - себестоимость программного продукта,

П - прибыль, которая составляет 30 - 40% от себестоимости.

Принимаю уровень рентабельности ПП - 35%

П =140037,96*0,3=42011,39 (руб.)

Ц = 140037,96+ 42011,39 =182049,36 (руб.)

НДС = 182049,36 * 0,18= 32768,88 (руб.)

Цд =182049,36 + 32768,88= 214818,24 (руб.)


3.7 Сводная таблица показателей


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


Таблица 7 - Сводная таблица показателей

НАИМЕНОВАНИЕ ПОКАЗАТЕЛЯСумма, руб.Себестоимость программного продукта140037,96Прибыль42011,39Цена предприятия182049,36НДС32768,88Свободная договорная цена программного продукта214818,24

Заключение


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

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

В экономической части работы рассматривались следующие вопросы:

·стоимость работ по составлению программы;

·стоимость одного компьютерного часа работы оператора;

·общая стоимость работ по составлению программы и вводу ее в эксплуатацию;

·стоимость работ по сдаче программы в эксплуатацию.

·прибыль,

Себестоимость моего программного продукта составляет 140037,96 руб. Цена программного продукта составляет 182049,36 руб. Прибыль равна 42011,39

Разработанный программный продукт - имеет современный дизайн, его интерфейс соответствует стандартному интерфейсу Windows - приложений, который позволяет пользователю в понятной и доступной форме выполнять необходимые для него действия.

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

Список используемой литературы


1.Ахо, Хопкфорт, Ульман. Построение и анализ вычислительных алгоритмов» Издательство: Мир Жанр

2.Вирт Н. Алгоритмы и структуры данных.

3.Кнут Д. Искусство программирования для ЭВМ, - Том 3, «Сортировка и поиск»).

4. ГОСТ 19.401-78 Текст программы

5. ГОСТ 19.402-78 Описание программы

. ГОСТ 19.505-79 Руководство пользователя

7. ГОСТ 19.503-79 Руководство администратора

Используемые Internet-ресурсы

11. http://www.softtime.ru/bookphp/gl4_4.php


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ