Разработка прикладной программы
Использование прикладного программного обеспечения для решения повседневных задач обработки информации. Классификация программных средств. Жизненный цикл прикладной программы, методология и технология ее разработки. Тестирование программных средств.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.06.2013 |
Размер файла | 627,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Классификация программных средств
- 1.1 Жизненный цикл прикладной программы
- 1.2 Методология и технология разработки программного продукта
- 1.3 Тестирование программных средств
- 1.4 Описание прикладной задачи
- Раздел 2. Специальная часть
- 2.1 Расчет математической модели
- 2.2 Описание программы
- 2.2.1 О программе
- 2.2.2 Входные и выходные данные
- Заключение
Введение
Персональный компьютер, как известно, является универсальным устройством для обработки информации. Персональные компьютеры могут выполнять любые действия по обработке информации. Для этого необходимо составить для компьютера на понятном ему языке точную и подробную последовательность инструкций - программу, как надо обрабатывать информацию.
Меняя программы для компьютера, можно превратить его в рабочее место бухгалтера или конструктора, дизайнера или ученого, писателя или агронома. Кроме того, тенденция понижения стоимости компьютерной техники при одновременном росте ее производительности привела к тому, что компьютеры становятся предметом домашнего обихода, как, например, телевизор или холодильник, что расширяет сферу применения ПК еще больше. Соответственно, требуется все более разнообразное программное обеспечение для решения задач в новых областях применения ПК. Непрерывное повышение мощности персональных компьютеров, периферийных устройств, а также развитие средств связи дает разработчикам программного обеспечения все больше возможностей для максимально полного удовлетворения запросов конечных потребителей. Это и ставший стандартом графический интерфейс для любого ПО, и внедренные возможности для отправки документов и данных с помощью Интернет непосредственно из прикладной программы (Microsoft Word, Excel, Access и др.), и возможность использования компьютера как хранилища информации благодаря появлению новых видов накопителей большой емкости и малым временем доступа к данным, а также многие другие возможности и сервисные функции.
При своем выполнении программы могут использовать различные устройства для ввода и вывода данных, подобно тому, как человеческий мозг пользуется органами для получения и передачи информации. Сам по себе ПК не обладает знаниями ни в одной области своего применения, все эти знание сосредоточены в выполняемых на нем программах. Поэтому часто употребляемое выражение "компьютер сделал" означает ровно то, что на ПК была выполнена программа, которая позволила выполнить соответствующее действие.
В настоящее время весь комплекс ПО делится на системные и пользовательские программы. Системное программное обеспечение выполняет функции "организатора" всех частей ПК, а также подключенных к нему внешних устройств. Программы для пользователей служат для выполнения каких - либо конкретных задач во всех сферах человеческой деятельности.
Прикладное ПО представляет собой распространенный класс программных продуктов, представляющий наибольший интерес для пользователя.
Прикладное ПО предназначено для решения повседневных задач обработки информации:
создания документов, графических объектов, баз данных;
проведения расчетов;
ускорения процесса обучения;
проведения досуга.
Все эти программы пишутся по принципу максимального удобства для пользователя, обладают дружественным интерфейсом (средствами общения "компьютер-человек", "человек-компьютер"). В настоящее время эти программы требуют высокопроизводительных, обладающих большими ресурсами компьютеров, хотя каждый программист стремится сделать свою программу в первую очередь наиболее доступной.
Примеры прикладных программ:
средства управления базами данных, текстовые редакторы,
графические редакторы, электронные таблицы;
музыкальные редакторы
обучающие программы;
программы тестирования;
программы статистических расчетов;
компьютерные игры;
интегрированные пакеты;
телекоммуникационные и сетевые программы.
1. Классификация программных средств
Программное обеспечение современного компьютера очень разнообразно в соответствии с многообразием задач, решаемых пользователями с его помощью, и множеством операций, выполняемых устройствами компьютера. Все программные модули взаимосвязаны через управляющие (системные) программы. Часть модулей работает во взаимодействии с пользователем, часть - автоматически. Каждая из программ выполняет свою функцию, а все вместе они обеспечивают автоматизированное выполнение информационных процессов при решении задач пользователей. Таким образом, программное обеспечение компьютера - это автоматизированная информационная система, достаточно большая и сложная. Современные программы состоят, как правило, из большого числа модулей, а потому вместо термина "программа" чаще используются термины "программное средство" и "пакеты программ".
Можно выделить следующие виды программных средств: прежде всего, это программы, необходимые для управления работой самого компьютера как сложной системы. Пользователь, как правило, может даже не знать, что это за программы, сколько их, что они делают. Но большинство команд пользователя выполняется именно с их помощью. В совокупности они называются системным ПО. К нему традиционно относят:
начальную загрузку компьютера. Они хранятся в ПЗУ (постоянном запоминающем устройстве) и обеспечивают проверку работоспособности основных устройств компьютера после его включения и передачу управления операционной системе. Часто называются базовым ПО;
операционные системы (ОС), необходимые для управления согласованной работой всех устройств и программ компьютера, выполнения команд пользователя;
файловая система;
операционные оболочки, предназначенные для обеспечения удобного для пользователя способа работы с файлами и запуска прикладных программ;
драйверы устройств, обеспечивающие программную поддержку работы конкретных устройств (в последнее время входят в состав операционной системы).
Другой класс программного обеспечения - прикладное ПО.
Оно предназначено для решения пользователем задач из самых различных предметных областей - математики, лингвистики, делопроизводства, управления и т.д. Существуют самые разные классификации прикладного ПО. В прикладном ПО можно выделить следующие группы программных средств (ПС):
ПС для обработки текстов - текстовые редакторы, текстовые процессоры, редакционно-издательские системы, программы-переводчики, программы проверки орфографии и синтаксиса, лингвокорректоры и т.п.;
ПС для обработки числовой информации - электронные таблицы, пакеты математических программ, для статистической обработки данных и др.;
ПС для обработки графической информации - графические редакторы, аниматоры, программы деловой и презентационной графики, средства работы с трехмерными и видеоизображениями и др.;
ПС для обработки звуковой информации - музыкальные и звуковые редакторы, синтезаторы звука, программы распознавания и синтеза речи и пр.;
ПС, обеспечивающие работу в телекоммуникационных сетях - почтовые программы, поисковые системы, браузеры и пр.;
ПС, обеспечивающие автоматизированное хранение информации - системы управления базами данных (СУБД), построенные с их помощью базы и банки данных (БД и БнД), специализированные информационно-поисковые системы (ИПС) и др.;
ПС, используемые в процессах управления и диагностики - различные типы автоматизированных систем управления (АСУ) и систем автоматизированного управления (САУ), системы поддержки принятия решений (СППР), экспертные системы (ЭС) и пр.;
ПС, применяемые для проведения исследовательских и проектно-конструкторских работ - специализированные моделирующие программы, системы автоматизированного проектирования (САПР) и пр.;
ПС, используемые в обучении - электронные учебники, тренажеры, тесты и пр.;
игровые программы;
программы, созданные пользователем с помощью сред программирования.
Еще один класс программного обеспечения - специальное ПО. Основное его отличие от системного ПО в том, что пользователь сам решает, будет ли он использовать эти ПС или нет, а отличие от прикладного ПО состоит в том, что специальные ПС используются не для решения задач из других предметных областей, а для задач, связанных с использованием непосредственно компьютера.
В специальном ПО можно выделить инструментальное и сервисное ПО.
Инструментальное ПО - это всевозможные среды программирования, с помощью которых создается все многообразие программных средств.
К сервисному ПО относятся:
антивирусные программы;
программы-архиваторы;
утилиты, расширяющие возможности ОС по управлению аппаратными и программными средствами (восстановление ошибочно удаленных файлов, дефрагментация диска, попытка восстановления "испорченных" секторов диска, очистка системных регистров и т.п.)
Программное обеспечение компьютера постоянно совершенствуется. Появляются новые программы, позволяющие расширить круг решаемых задач. Существующие программы модифицируются: устраняются замеченные ошибки, добавляются новые функции, пользовательский интерфейс (способ взаимодействия пользователя с программой) делается более удобным. Для сложных программ составляются инструкции, пишутся обучающие версии, демонстрирующие приемы и правила работы и т.д.
Все эти процессы называют сопровождением программ.
Одной из важных подсистем программного обеспечения является файловая система. В виде файлов хранятся и сами программы, и данные к ним, и результаты их работы.
Файл - это поименованная целостная совокупность записей на внешнем носителе. Иными словами, файл - это совокупность записей, логически взаимосвязанных между собой, хранящихся на внешнем носителе под определенным именем.
То, что файл - целостная совокупность записей, означает, что, например, нельзя скопировать или удалить только половинку файла. В определении подчеркивается, что файлы хранятся лишь на внешних носителях. Это, в частности означает, что по отношению к оперативной памяти нельзя сказать, что информация в ней хранится в виде файлов.
То есть файловая система - это способ хранения информации на внешних носителях.
Имя файла состоит из двух частей - собственно имени и расширения, определяющего чаще всего тип записей, составляющих содержимое файла.
Кроме имени файла атрибутами файла являются тип его содержимого, дата и время создания, фамилия создателя, размер, условия предоставления разрешений на его использование, метод доступа, полный путь к файлу.
Файлы объединяются в каталоги, каждый из которых тоже имеет свое имя. Не может быть в одном каталоге двух файлов с одинаковым именем. Последовательное перечисление имен всех подкаталогов, в которых размещен файл, называется полный путь к файлу.
Схема 1. Классификация программных средств
1.1 Жизненный цикл прикладной программы
Жизненный цикл создания и использования компьютерных программ отражает различные их состояния, начиная с момента возникновения необходимости в данном программном изделии и заканчивая моментом его полного выхода из употребления у всех пользователей. Традиционно выделяют следующие основные этапы жизненного цикла программного обеспечения:
анализ требований;
проектирование;
кодирование (программирование);
тестирование и отладка;
эксплуатация и сопровождение.
Особенностью разработки программного продукта является принятие решений на начальных этапах с их реализацией на последующих этапах. Ошибки в требованиях к программному продукту способны привести не только к потерям на этапах разработки и эксплуатации, но и к провалу проекта. Внесение изменений в спецификацию программного продукта чаще всего вызывает необходимость повторить все следующие этапы проектирования и создания программного продукта.
В коммерческом программном обеспечении жизненный цикл определяется моментом начала его продаж.
Разработчики стремятся сделать максимально возможным период жизненного цикла информационных продуктов и услуг. Для большинства современных компьютерных программ длительность жизненного цикла равна двум-трём годам, хотя встречаются программы, существующие десять и более лет.
Для увеличения этого периода необходимо постоянно осуществлять маркетинговые и иные мероприятия по их поддержке. Падение продаж и интереса к информационным продуктам и услугам является сигналом к: изменению программного продукта и услуг; изменению цены на них; проведению модификации или снятию с продажи и предоставления.
Модель жизненного цикла программного обеспечения - структура, содержащая процессы действия и задачи, которые осуществляются в ходе разработки, использования и сопровождения программного продукта.
Эти модели можно разделить на 3 основных группы: инженерный подход; с учетом специфики задачи; современные технологии быстрой разработки. Теперь рассмотрим непосредственно существующие модели (подклассы) и оценим их преимущества и недостатки.
прикладная программа жизненный цикл
1.2 Методология и технология разработки программного продукта
Модель кодирования и устранения ошибок
Совершенно простая модель, характерная для студентов ВУЗов. Именно по этой модели большинство студентов разрабатывают, ну скажем лабораторные работы. Данная модель имеет следующий алгоритм:
1. Постановка задачи.
2. Выполнение.
3. Проверка результата.
4. При необходимости переход к первому пункту.
Модель также ужасно устаревшая, характерна для 1960-1970 гг., поэтому преимуществ перед следующими моделями в нашем обзоре практически не имеет, а недостатки на лицо.
Относится к первой группе моделей.
Каскадная модель жизненного цикла программного обеспечения (водопад)
Алгоритм данного метода, который я привожу на схеме, имеет ряд преимуществ перед алгоритмом предыдущей модели, но также имеет и ряд весомых недостатков.
Рисунок 2. Каскадная модель жизненного цикла ПО
Преимущества:
последовательное выполнение этапов проекта в строгом фиксированном порядке;
позволяет оценивать качество продукта на каждом этапе.
Недостатки:
отсутствие обратных связей между этапами;
не соответствует реальным условиям разработки программного продукта;
относится к первой группе моделей.
Каскадная модель с промежуточным контролем (водоворот)
Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного
цикла, при этом порождает очень весомый недостаток: 10-ти кратное увеличение затрат на разработку. Относится к первой группе моделей.
V модель (разработка через тестирование)
Данная модель имеет более приближенный к современным методам алгоритм, однако все еще имеет ряд недостатков. Является одной из основных практик экстремального программирования.
Схема 3. V модель
Модель на основе разработки прототипа
Данная модель основывается на разработки прототипов и прототипирования продукта.
Прототипирование используется на ранних стадиях жизненного цикла программного обеспечения:
1. Прояснить не ясные требования (прототип UI)
2. Выбрать одно из ряда концептуальных решений (реализация сценариев)
3. Проанализировать осуществимость проекта
Классификация прототипов:
1. Горизонтальные и вертикальные.
2. Одноразовые и эволюционные.
3. Бумажные и раскадровки.
Горизонтальные прототипы - моделирует исключительно UI не затрагивая логику обработки и базу данных.
Вертикальные прототипы - проверка архитектурных решений.
Одноразовые прототипы - для быстрой разработки.
Эволюционные прототипы - первое приближение эволюционной системы.
Модель принадлежит второй группе.
Спиральная модель жизненного цикла программного обеспечения
Спиральная модель представляет собой процесс разработки программного обеспечения, сочетающий в себе как проектирование, так и постадийное прототипирование с целью сочетания преимуществ восходящей и нисходящей концепции.
Схема 4. Спиральная модель жизненного цикла программного обеспечения
Преимущества:
быстрое получение результата;
повышение конкурентоспособности;
изменяющиеся требования - не проблема;
Недостатки:
отсутствие регламентации стадий;
третьей группе принадлежат такие модели как экстремальное программирование (XP), SCRUM, инкриментальная модель (RUP).
1.3 Тестирование программных средств
Тестирование программного обеспечения - процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта
Существует несколько признаков, по которым принято производить классификацию видов тестирования. Обычно выделяют следующие:
По объекту тестирования
По знанию системы
По знанию системы
По степени автоматизированности
По степени изолированности компонентов
По времени проведения тестирования
По признаку позитивности сценариев
По степени подготовленности к тестированию
Уровни тестирования
Модульное тестирование (юнит-тестирование) - тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.
Интеграционное тестирование - тестируются интерфейсы между компонентами, подсистемами. При наличии резерва времени на данной стадии тестирование ведётся итерационно, с постепенным подключением последующих подсистем.
Системное тестирование - тестируется интегрированная система на её соответствие требованиям.
Альфа-тестирование - имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования. Иногда альфа-тестирование выполняется под отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.
Бета-тестирование - в некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц, с тем чтобы убедиться, что продукт содержит достаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобы получить обратную связь о продукте от его будущих пользователей.
Часто для свободного/открытого ПО стадия Альфа-тестирования характеризует функциональное наполнение кода, а Бета тестирования - стадию исправления ошибок. При этом как правило на каждом этапе разработки промежуточные результаты работы доступны конечным пользователям.
Тестирование "белого ящика" и "чёрного ящика".
В терминологии профессионалов тестирования (программного и некоторого аппаратного обеспечения), фразы "тестирование белого ящика" и "тестирование чёрного ящика" относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.
При тестировании "белого ящика" (англ. white-box testing, также говорят - прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции - работоспособны и устойчивы, до определённой степени. При тестировании "белого ящика" используются метрики покрытия кода.
При тестировании "чёрного ящика", тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование "чёрного ящика" ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).
Если "альфа-" и "бета-тестирование" относятся к стадиям до выпуска продукта (а также, неявно, к объёму тестирующего сообщества и ограничениям на методы тестирования), тестирование "белого ящика" и "чёрного ящика" имеет отношение к способам, которыми тестировщик достигает цели.
Бета-тестирование в целом ограничено техникой "чёрного ящика" (хотя постоянная часть тестировщиков обычно продолжает тестирование "белого ящика" параллельно бета-тестированию). Таким образом, термин "бета-тестирование" может указывать на состояние программы (ближе к выпуску чем "альфа"), или может указывать на некоторую группу тестировщиков и процесс, выполняемый этой группой. Итак, тестировщик может продолжать работу по тестированию "белого ящика", хотя ПО уже "в бете" (стадия), но в этом случае он не является частью "бета-тестирования" (группы/процесса).
1.4 Описание прикладной задачи
Для того, чтобы транспортная задача линейного программирования имела решение, необходимо и достаточно, чтобы суммарные запасы поставщиков равнялись суммарным запросам потребителей, т.е. задача должна быть с правильным балансом.
Опорным решением транспортной задачи называется любое допустимое решение, для которого векторы условий, соответствующие положительным координатам, линейно независимы.
В зависимости от соотношения между запасами и заявками транспортная задача называется сбалансированной или несбалансированной.
Задача называется сбалансированной, если отношение суммы возможностей поставщиков к сумме запросов потребителей равно единице, в противном случае она несбалансированная.
Начальное опорное решение применяется к сбалансированным задачам и может быть получено несколькими способами.
Метод северо-западного угла
Выполнение начинается с верхней левой ячейки (северо-западного угла) транспортной таблицы, т.е. с переменной x11
Шаг 1.
Переменной x11 присваивается максимальное значение, допускаемое ограничениями на спрос и предложение.
Шаг 2.
Вычеркивается строка (или столбец) с полностью реализованным предложением (с удовлетворенным спросом). Это означает, что в вычеркнутой строке (столбце) мы не будем присваивать значения остальным переменным (кроме переменной, определенной на первом этапе). Если одновременно удовлетворяются спрос и предложение, вычеркивается только строка или только столбец.
Шаг 3. Если е вычеркнута только одна строка или только один столбец, процесс останавливается. В противном случае переходим к ячейке справа, если вычеркнут столбец, или к нижележайшей ячейке, если вычеркнута строка. Затем возвращаемся к первому этапу.
Метод минимальной стоимости
Данный метод находит лучшее начальное решение, чем метод северо-западного угла, поскольку выбирает переменные, которым соответствуют наименьшие стоимости. Сначала по всей транспортной таблице ведется поиск ячейки с наименьшей стоимостью. Затем переменной в этой ячейке присваивается наибольшее значение, допускаемое ограничениями на спрос и предложение. (Если таких переменных несколько, выбор произволен.) Далее вычеркивается соответствующий столбец или строка, соответствующим образом корректируются значения спроса и предложений. Если одновременно выполняются ограничения и по спросу, и по предложению, вычеркивается или строка, или столбец (точно так же, как в методе северо-западного угла). Затем просматриваются невычеркнутые ячейки, и выбирается новая ячейка с минимальной стоимостью. Описанный процесс продолжается до тех пор, пока не останется лишь одна невычеркнутая строка или столбец.
Раздел 2. Специальная часть
2.1 Расчет математической модели
Три электрогенерирующие станции мощностью A1,A2 и A3 миллионов кВт/ч поставляют энергию в три города. Максимальная потребность в электроэнергии этих городов оценивается в B1, B2 и B3 миллионов кВт/ч. Цены за миллион кВт/ч в данных городах показаны в таблице
Электростанции |
Города |
|||
B1 |
B2 |
B3 |
||
A1 |
X11 |
X12 |
X13 |
|
А2 |
X21 |
X22 |
X23 |
|
А3 |
X31 |
X32 |
X33 |
Целью курсовой работы является создание компьютерной модели опорного решения транспортной задачи.
Для достижения поставленной цели по созданию компьютерной модели на данную тему необходимо реализовать следующие подцели:
1. Понять математические закономерности конкретного объекта, его структуру, основные свойства и законы развития.
2. Научиться управлять объектом или процессом при заданных целях и критериях.
3. Прогнозировать прямые и косвенные последствия, реализации заданных способов и форм воздействия.
При достижении данных целей программа должна быть:
понятной пользователю:
1. Быстро и корректно выполнять расчеты
2. Быстро и корректно выполнять расчеты
3. Реализовывать данный прикладной метод оптимальным образом
4. Легко переносится на различные технологические платформы
5. Обеспечить обработку некорректно введенных данных Удовлетворять требованиям простоты, доступности и наглядности интерфейса
Вариант 1. Три электрогенерирующие станции мощностью 25, 40 и 30 миллионов кВт/ч поставляют энергию в три города. Максимальная потребность в электроэнергии этих городов оценивается в 30, 35 и 25 миллионов кВт/ч. Цены за миллион кВт/ч в данных городах показаны в таб.
Электростанции |
Города |
|||
35 |
35 |
25 |
||
25 |
600$ |
700$ |
400$ |
|
40 |
320$ |
300$ |
350$ |
|
30 |
500$ |
480$ |
450$ |
Задача сбалансирована, так как отношение сумма возможностей поставщиков равна сумме запросов потребителей.
35+35+25=25+40+30
Построить начальное опорное решение распределения электроэнергии станциями. Построение начального опорного решения методом северо-западного угла
Шаг 1
Электростанции |
Города |
|||
35-25=10 |
35 |
25 |
||
25-25=0 |
25 |
|||
40 |
||||
30 |
Шаг 2
Электростанции |
Города |
|||
35-25-10=0 |
35 |
25 |
||
25-25=0 |
25 |
|||
40-10=30 |
10 |
|||
30 |
Шаг 3
Электростанции |
Города |
|||
35-25-10=0 |
35-30=5 |
25 |
||
25-25=0 |
25 |
|||
40-10-30=0 |
10 |
30 |
||
30 |
Шаг 4
Электростанции |
Города |
|||
35-25-10=0 |
35-30-5=0 |
25 |
||
25-25=0 |
25 |
|||
40-10-30=0 |
10 |
30 |
||
30-5=25 |
5 |
Шаг 5
Электростанции |
Города |
|||
35-25-10=0 |
35-30-5=0 |
25-25=0 |
||
25-25=0 |
25 |
|||
40-10-30=0 |
10 |
30 |
||
30-5-25=0 |
5 |
25 |
Построение начального опорного решения методом минимальной стоимости.
Шаг 1.
Электростанции |
Города |
|||
35 |
35-35=0 |
25 |
||
25 |
600$ |
700$ |
400$ |
|
40-35=5 |
320$ |
35 300$ |
350$ |
|
30 |
500$ |
480$ |
450$ |
Шаг 2
Электростанции |
Города |
|||
35-5=30 |
35-35=0 |
25 |
||
25 |
600$ |
700$ |
400$ |
|
40-35-5=0 |
5 320$ |
35 300$ |
350$ |
|
30 |
500$ |
480$ |
450$ |
Шаг 3
Электростанции |
Города |
|||
35-5=30 |
35-35=0 |
25-25=0 |
||
25-25=0 |
600$ |
700$ |
25 400$ |
|
40-35-5=0 |
5 320$ |
35 300$ |
350$ |
|
30-0=30 |
500$ |
480$ |
450$ |
Шаг 4
Электростанции |
Города |
|||
35-5-30=0 |
35-35=0 |
25-25=0 |
||
25-25=0 |
600$ |
700$ |
25 400$ |
|
40-35-5=0 |
5 320$ |
35 300$ |
350$ |
|
30-30=0 |
30 500$ |
480$ |
450$ |
Вариант 2.
Три электрогенерирующие станции мощностью 20, 30 и 40 миллионов кВт/ч поставляют энергию в три города. Максимальная потребность в электроэнергии этих городов оценивается в 20, 30 и 40 миллионов кВт/ч. Цены за миллион кВт/ч в данных городах показаны в таб.
Электростанции |
Города |
|||
20 |
30 |
40 |
||
20 |
500$ |
400$ |
100$ |
|
30 |
120$ |
600$ |
450$ |
|
40 |
700$ |
480$ |
550$ |
Задача сбалансирована, так как отношение сумма возможностей поставщиков равна сумме запросов потребителей.
30+30+40=20+30+40
Построить начальное опорное решение распределения электроэнергии станциями. Построение начального опорного решения методом северо-западного угла
Шаг 1.
Электростанции |
Города |
|||
20-20=0 |
30 |
40 |
||
20-20=0 |
20 |
|||
30 |
||||
40 |
Шаг 2.
Электростанции |
Города |
|||
20-20-0=0 |
30 |
40 |
||
20-20=0 |
20 |
|||
30 |
0 |
|||
40 |
Шаг 3.
Электростанции |
Города |
|||
20-20-0=0 |
30-30=0 |
40 |
||
20-20=0 |
20 |
|||
30-30=0 |
0 |
30 |
||
40 |
Шаг 4.
Электростанции |
Города |
|||
20-20-0=0 |
30-30-0=0 |
40 |
||
20-20=0 |
20 |
|||
30-30=0 |
0 |
30 |
||
40 |
0 |
Шаг 5.
Электростанции |
Города |
|||
20-20-0=0 |
30-30-0=0 |
40-40=0 |
||
20-20=0 |
20 |
|||
30-30=0 |
0 |
30 |
||
40-40=0 |
0 |
40 |
Построение начального опорного решения методом минимальной стоимости.
Шаг 1.
Электростанции |
Города |
|||
20 |
30 |
40-20=20 |
||
20-20=0 |
500$ |
400$ |
20 100$ |
|
30 |
120$ |
600$ |
450$ |
|
40 |
700$ |
480$ |
550$ |
Шаг 2.
Электростанции |
Города |
|||
20-20=0 |
30 |
40-20=20 |
||
20-20=0 |
500$ |
400$ |
20 100$ |
|
30-20=10 |
20 120$ |
600$ |
450$ |
|
40 |
700$ |
480$ |
550$ |
Шаг 3.
Электростанции |
Города |
|||
20-20=0 |
30-30=0 |
40-20-10=10 |
||
20-20=0 |
500$ |
400$ |
20 100$ |
|
30-20-10=0 |
20 120$ |
600$ |
10 450$ |
|
40-30=10 |
700$ |
30 480$ |
550$ |
Шаг 4.
Электростанции |
Города |
|||
20-20=0 |
30-30=0 |
40-20-10-10=0 |
||
20-20=0 |
500$ |
400$ |
20 100$ |
|
30-20-10=0 |
20 120$ |
600$ |
10 450$ |
|
40-30=10 |
700$ |
30 480$ |
10 550$ |
Вариант 3.
Три электрогенерирующие станции мощностью 10, 30 и 40 миллионов кВт/ч поставляют энергию в три города. Максимальная потребность в электроэнергии этих городов оценивается в 20,20 и 40 миллионов кВт/ч. Цены за миллион кВт/ч в данных городах показаны в таб.
Электростанции |
Города |
|||
20 |
20 |
40 |
||
10 |
140$ |
400$ |
100$ |
|
30 |
170$ |
600$ |
550$ |
|
40 |
500$ |
480$ |
150$ |
Задача сбалансирована, так как отношение сумма возможностей поставщиков равна сумме запросов потребителей.
10+30+40=20+20+40
Построить начальное опорное решение распределения электроэнергии станциями. Построение начального опорного решения методом северо-западного угла
Шаг 1.
Электростанции |
Города |
|||
20-10=10 |
20 |
40 |
||
10-10=0 |
10 |
|||
30 |
||||
40 |
Шаг 2.
Электростанции |
Города |
|||
20-10-10=0 |
20 |
40 |
||
10-10=0 |
10 |
|||
30-10=20 |
20 |
|||
40 |
Шаг 3.
Электростанции |
Города |
|||
20-10-10=0 |
20-20=0 |
40 |
||
10-10=0 |
10 |
|||
30-10-20=0 |
20 |
20 |
||
40 |
Шаг 4.
Электростанции |
Города |
|||
20-10-10=0 |
20-20=0 |
40-0=40 |
||
10-10=0 |
10 |
|||
30-10-20-0=0 |
20 |
20 |
0 |
|
40 |
Шаг 5.
Электростанции |
Города |
|||
20-10-10=0 |
20-20=0 |
40-0=40 |
||
10-10=0 |
10 |
|||
30-10-20-0=0 |
20 |
20 |
0 |
|
40 |
40 |
Построение начального опорного решения методом минимальной стоимости.
Шаг 1.
Электростанции |
Города |
|||
20 |
20 |
40-10=30 |
||
10-10=0 |
140$ |
400$ |
10 100$ |
|
30 |
170$ |
600$ |
550$ |
|
40 |
500$ |
480$ |
150$ |
Шаг 2.
Электростанции |
Города |
|||
20 |
20 |
40-10-30=0 |
||
10-10=0 |
140$ |
400$ |
10 100$ |
|
30 |
170$ |
600$ |
550$ |
|
40-30=10 |
500$ |
480$ |
30 150$ |
Шаг 3.
Электростанции |
Города |
|||
20-20=0 |
20 |
40-10-30=0 |
||
10-10=0 |
140$ |
400$ |
10 100$ |
|
30-20=10 |
20 170$ |
600$ |
550$ |
|
40-30=10 |
500$ |
480$ |
30 150$ |
Шаг 4.
Электростанции |
Города |
|||
20-20=0 |
20-10=10 |
40-10-30=0 |
||
10-10=0 |
140$ |
400$ |
10 100$ |
|
30-20=10 |
20 170$ |
600$ |
550$ |
|
40-30-10=0 |
500$ |
10 480$ |
30 150$ |
Шаг 5.
Электростанции |
Города |
|||
20-20=0 |
20-10-10=0 |
40-10-30=0 |
||
10-10=0 |
140$ |
400$ |
10 100$ |
|
30-20-10=0 |
20 170$ |
10 600$ |
550$ |
|
40-30-10=0 |
500$ |
10 480$ |
30 150$ |
2.2 Описание программы
2.2.1 О программе
Данная программа написана в системе Delphi 6.0. Она предназначена для составления начального опорного решения транспортной задачи
Программа требует ОС Windows 98 и выше, процессор 486DX/66 MHz или лучше, 16 Мб ОЗУ и по крайней мере 476 Кб свободного дискового пространства.
2.2.2 Входные и выходные данные
Обозначение |
Тип данных |
Комментарий |
|
M [1, i] |
Массив целых чисел Array of integer |
Потребность в электроэнергии |
Выходные данные
Обозначение |
Тип данных |
Комментарий |
|
M [I,j] |
Массив целых чисел Array of integer |
Распределение потребляемой энергии в соответствии с данными |
// ТЕСТИРОВАНИЕ
Тестовый набор |
Ожидаемый результат |
Полученный результат |
|
Метод северо-западного угла |
|||
Электростанции Города 30 35 25 25 600$ 700$ 400$ 40 320$ 300$ 350$ 30 500$ 480$ 450$ |
Электростанции Города 35-25-10=0 35-30-5=0 25-25=0 25-25=0 25 40-10-30=0 10 30 30-5-25=0 5 25 |
||
Электростанции Города 20 20 40 10 140$ 400$ 100$ 30 170$ 600$ 550$ 40 500$ 480$ 150$ |
Электростанции Города 20-10-10=0 20-20=0 40-0=40 10-10=0 10 30-10-20-0=0 20 20 0 40 40 |
||
Метод минимальной стоимости |
|||
Электростанции Города 30 35 25 25 600$ 700$ 400$ 40 320$ 300$ 350$ 30 500$ 480$ 450$ |
Электростанции Города 35-5-30=0 35-35=0 25-25=0 25-25=0 600$ 700$ 25 400$ 40-35-5=0 5 320$ 35 300$ 350$ 30-30=0 30 500$ 480$ 450$ |
Описание прикладной задачи
Начальное опорное решение получается для дальнейшего использования его в решении транспортной задачи. Опорным решением транспортной задачи называется любое допустимое решение, для которого векторы условий, соответствующие положительным координатам, линейно независимы
Заключение
В ходе разработки курсового проекта были достигнуты следующие задачи:
1. Изучен математический метод "разработки приложения, реализующего метод решения опорного решения транспортной задачи.
2. Составлен алгоритм компьютерной модели.
3. Создана программа
Размещено на Allbest.ru
...Подобные документы
Проектирование программы, реализующей синтаксический анализ простой программы на языке С: этапы создания, алгоритм ее функционирования, структура, технология обработки информации. Описание программных модулей, интерфейс; выбор инструментальных средств.
курсовая работа [1,6 M], добавлен 12.12.2011Информатизация России. Рынок программных средств. Основные задачи стандартизации, сертификации и лицензирования в сфере информатизации. Совокупность инженерных методов и средств создания программного обеспечения. Жизненный цикл программного обеспечения.
лекция [352,8 K], добавлен 09.03.2009Жизненный цикл информационных систем. Процессы документирования и управления конфигурацией. Использование каскадного и спирального подходов к построению ИС. Их преимущества и недостатки. Процесс разработки программного обеспечения по каскадной схеме.
презентация [350,6 K], добавлен 09.11.2015Этапы тестирования при испытаниях надежности программных средств. Комплексирование модулей и отладка автономных групп программ в статике без взаимодействия с другими компонентами. Испытания главного конструктора. Жизненный цикл программного средства.
презентация [339,6 K], добавлен 22.03.2014Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.
курсовая работа [974,0 K], добавлен 21.12.2016Cоздание и описание логической модели автоматизированной системы обработки информации. Проектирование структуры системы в виде диаграмм UML. Анализ программных средств разработки программного обеспечения и интерфейса. Осуществление тестирования программы.
дипломная работа [2,5 M], добавлен 25.01.2015Разработка технологии обработки информации, а также структуры и формы представления данных. Подбор алгоритма и программы решения задачи. Определение конфигурации технических средств. Специфика процесса тестирования и оценки надежности программы.
курсовая работа [959,1 K], добавлен 12.12.2011Характеристика этапов разработки программных средств. Спецификация, алгоритм, кодирование, отладка и тестирование. Создание справочной системы и установочного диска. Назначение программы, язык программирования. Технические требования к программе.
курсовая работа [1006,4 K], добавлен 19.12.2013Изучение основных этапов проектирования программных систем, создание прикладной программы, которая выполняет решение систем линейных алгебраических уравнений методом Гаусса. Вычисление определителя и обращение матриц. Листинг разработанной программы.
курсовая работа [563,3 K], добавлен 12.07.2012Стадии разработки программного средства. Средства, методологии и методы его разработки. Оценка надежности и качества проекта. Обоснование необходимости разработки программы. Тестирование как процесс выполнения тестовой программы с намерением найти ошибки.
презентация [57,0 K], добавлен 27.12.2013Классификация служебных программных средств. Файловая структура операционных систем. Основы графического интерфейса пользователя Windows XX. Анализ алгоритмов решения задач. Описание процесса разработки программного обеспечения и результатов работы.
курсовая работа [2,4 M], добавлен 14.11.2016Этапы технологического процесса разработки программных продуктов, их жизненный цикл. Общая характеристика языков программирования. Виды ошибок и принципы тестирования программ. Установление прав собственности на продукт посредством лицензий и контрактов.
презентация [1,9 M], добавлен 01.05.2011Обоснование выбора программно-технических средств. Надежность программы и состав технических средств. Разработка структурной схемы программы, алгоритмического и программного интерфейса. Технология разработки интерфейса пользователя и программных модулей.
дипломная работа [3,2 M], добавлен 22.01.2013Программное обеспечение как продукт. Основные характеристик качества программного средства. Основные понятия и показатели надежности программных средств. Дестабилизирующие факторы и методы обеспечения надежности функционирования программных средств.
лекция [370,1 K], добавлен 22.03.2014Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С.
курсовая работа [2,4 M], добавлен 12.12.2011Программа как описание процесса обработки данных. Неконструктивность понятия правильной программы. Надежность программного средства. Технология программирования как технология разработки надежных программных средств. Интеллектуальные возможности.
курс лекций [168,3 K], добавлен 26.12.2008Разработка эскизного и технического проектов программы, ее назначение и область применения, технические характеристики. Организация входных и выходных данных, выбор состава технических и программных средств. Текст программы, ее описание и тестирование.
курсовая работа [1,3 M], добавлен 15.11.2009Разработка программных средств. Жизненный цикл программного средства и понятие его качества. Форма и интерфейс приложений, алгоритмы решения задач на языке Delphi. Методы борьбы со сложностью. Преодоление барьера между пользователем и разработчиком.
курсовая работа [650,5 K], добавлен 27.01.2011Понятие технологии разработки программы. Основа проектирования программного обеспечения. Модели жизненного цикла, возникшие исторически в ходе развития теории проектирования программного обеспечения. Спиральная (spiral), каскадная и итерационная модели.
презентация [1,0 M], добавлен 11.05.2015Разработка программного обеспечения для реализации криптографической защиты информации. Обоснование выбора аппаратно-программных средств. Проектирование модели информационных потоков данных, алгоритмического обеспечения, структурной схемы программы.
дипломная работа [2,0 M], добавлен 10.11.2014