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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Построение опорного плана поставки газа методом северо-западного угла и методом минимального элемента

Информация:

Тип работы: курсовая работа. Добавлен: 13.06.13. Сдан: 2012. Страниц: 35. Уникальность по antiplagiat.ru: < 30%

Описание (план):


АГЕНСТВО ПО УПРАВЛЕНИЮ ГОСУДАРСТВЕННЫМИ УЧРЕЖДЕНИЯМИ
ПЕРМСКОГО КРАЯ
государственное бюджетное образовательное учреждение среднего
профессионального образования
«Пермский химико-технологический  техникум»
 
Специальность 230105 «Программное обеспечение вычислительной техники  и автоматизированных систем»
КУРСОВАЯ  РАБОТА
Дисциплина: «Математические методы»
Тема: «Построение опорного плана поставки газа методом северо-западного угла и методом минимального элемента»
Выполнила: студентка гр. П-10-1
_________________Н.А. Петрова
Проверила:
_________________Н.А. Зверева
2012 

СОДЕРЖАНИЕ
 
Введение 4
1. Общая часть 5
1.1. Цель разработки 5
1.2. Анализ  использования разработки 5
1.3. Анализ  методов решения 6
1.4. Анализ  средств программирования 6
1.4.1. Характеристики  ПЭВМ 6
1.4.2. Характеристика  ПО 8
1.4.3. Обзор  средств программирования 9
1.4.4. Характеристика  языков программирования 10
2. Специальная  часть 13
2.1. Постановка  задачи 13
2.2. Экономико-математическая  модель 14
2.3. Метод  северо-западного угла 15
2.4. Метод  минимальной стоимости 17
2.5. Алгоритм  решения задачи 20
2.5.1. Алгоритм  основной программы 20
2.5.2. Алгоритм процедуры TForm1.Edit1Exit 21
2.5.3. Алгоритм  процедуры TForm1.Edit2Exit 22
2.5.4. Алгоритм  процедуры TForm1.Button4Click 23
2.5.5. Алгоритм  процедуры TForm1.Button3Click1 23
2.5.6. Алгоритм  процедуры sevzar 29
2.5.7. Алгоритм процедуры minelem 30
2.6. Описание  решения задачи 32
2.6.1. Описание  алгоритма основной программы 32
2.6.2. Описание  алгоритма процедуры TForm1.Edit1Exit 32
2.6.3. Описание  алгоритма процедуры TForm1.Edit2Exit 33
2.6.4. Описание  алгоритма процедуры TForm1.Button4Click 33
2.6.5. Описание  алгоритма процедуры TForm1.Button3Click1 33
2.6.6. Описание  алгоритма процедуры sevzap 34
2.6.7. Описание  алгоритма процедуры minelem 35
2.7. Ручной  расчет контрольных примеров 36
2.8. Описание  процесса отладки программы 51
Заключение 53
Список литературы 54
Приложение 1 55
Текст программы 55
Приложение 2 60
Результаты  работы программы 60
 

Введение

Организация современного производства требует не только наличия современных  станков и оборудования, но и разработки новых технологических процессов  и современных методов управления. Для решения каждой из поставленных задач разрабатываются математические модели, анализируя которые удается  найти наилучшее решение поставленной задачи. Созданием такой модели занимается дисциплина «Математические Методы».
Математические методы являются важнейшим инструментом анализа  экономических явлений и процессов, построения теоретических моделей, позволяющих отобразить существующие связи в экономической жизни, прогнозировать поведение экономических  субъектов и экономическую динамику.
Данная курсовая работа имеет прямое отношение к экономике и звучит как первый опорный план о минимальной стоимости перевозки газа. Эта задача является одной из важнейших экономических задач в наше время, ведь различные крупные газодобывающие организации нуждаются в постоянной транспортировке газа в различные точки города, страны или даже мира.
Данная задача относится  к разделу линейного программирования.
Курсовая работа включает в себя две основные части: общая  и специальная.
Общая часть курсовой работы содержит цели разработки программы, характеристики средств, с помощью которых была разработана программа.
Специальная часть связана  с разработкой программы: постановка задачи, составление ЭММ, анализ метода решения, расчет контрольных примеров. 

1. ОБЩАЯ ЧАСТЬ

1.1. Цель разработки

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

1.2. Анализ использования  разработки

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

1.3. Анализ методов  решения

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

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

1.4.1. Характеристики  ПЭВМ

Технически персональный компьютер (ПК) представляет собой совокупность электронных микросхем и устройств, способных взаимосвязано выполнять  какие-либо последовательности вычислений.
В состав типичного ПК обычно входят системный блок; устройства вывода информации, такие как монитор, динамики; устройства ввода информации, например, клавиатура, микрофон.
Системный блок – это, своего рода, железная коробка, внутри которой  находятся непосредственно самые  важные элементы компьютера, без которых, собственно, и не будет никакого компьютера.
Блок питания – это  устройство, которое крепится к задней стенке корпуса и в большинстве  случаев располагается в верхней  его части. Блок питания предназначен для снабжения узлов компьютера электрической энергией постоянного  тока.
Материнская плата - это сложная  многослойная печатная плата, прикрепленная  к боковой стенке системного блока, на которой располагаются разъемы  для подключения всех остальных  устройств компьютера.
Центральный процессор –  это самая главная часть аппаратного  обеспечения компьютера. Именно процессор  производит все вычисления.
Оперативная память – это  устройство, состоящее из одной или  нескольких плат, вставляемых в слоты  в материнской плате, предназначенное  для хранения кодов и данных выполняемых  в данный момент программ. Эта часть  памяти компьютера является энергозависимой, что значит, после отключения питания  компьютера, вся информация, хранимая в оперативной памяти, уничтожается.
Жесткий диск – устройство хранения информации.
Внешние устройства компьютера, такие как устройства ввода-вывода информации, подключаются к нему через  входы на задней панели системного блока. Там так же располагаются  разъемы для USB-носителей и для подключения прочих периферийных устройств.
Для вывода графической информации материнская плата снабжена видеоадаптером, к которому через разъем на задней стенке подключается монитор.
Для ввода символьной информации используется устройство, называемое клавиатурой. Клавиатура подключается так же к задней стенке системного блока через интерфейс PS/2 либо USB.
Мышь – это указательное устройство, обеспечивающее интерфейс  пользователя с компьютером. Подключается к компьютеру подобно клавиатуре.
Программа, реализующая метод, описанный в данной курсовой работе, была написана и отлажена на персональном компьютере, имеющем следующие характеристики.
Процессор: AMD Phenom™ 9650 Quard-Core 2,3 ГГц.
Объем оперативной памяти: 3,25 Гб.
Жесткий диск: Western Digital WD5000AAKS, 500 Гб.
Видеокарта: ATI Radeon HD 4800 Series.
Клавиатура: стандартная, 102 клавиши, PS/2.
Мышь: оптическая, PS/2.

1.4.2. Характеристика  ПО

Программное обеспечение (ПО) – совокупность программ, процедур и правил, а также документации, относящихся к функционированию системы обработки данных.
ПО подразделяют на системное, прикладное и инструментальное.
Системное ПО – это комплекс программ, предназначенных для управлением  ресурсами компьютера, такими как  оперативная память, процессор и  многими другими. Системное ПО управляет устройствами, подключенными к компьютеру. Обеспечение графического интерфейса для взаимодействия пользователя и компьютера также входит в обязанности системного ПО.
Одной из самых важных частей системного ПО является операционная система (ОС), которая расширяет возможности  вычислительной системы, обеспечивает загрузку и выполнение прикладных программ и многое другое.
Одной из самых распространенных и широко применяемых ОС является Windows, самая последняя версия которой Windows Seven. Данная курсовая работа была полностью выполнена в ОС Windows XP Service Pack 2.
Прикладное ПО предназначено для решения на компьютере конкретных задач пользователя. К прикладному ПО относятся такое ПО, как текстовые и графические редакторы, медиаплееры, развлекательные программы и т.п.
Инструментальное ПО –  это ПО, предназначенное для использования  в ходе проектирования, разработки и сопровождения программ. Сюда относятся системы программирования, о которых и пойдет речь далее.

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

Интегрированная среда разработки ПО - это система программных средств, используемая для разработки ПО.
Обычно среда разработки включает в себя:
      текстовый редактор для редактирования текста программы;
      компилятор и/или интерпретатор для перевода текста программы, написанного на каком-то конкретном языке программирования в машинный код, понятный процессору;
      отладчик для поиска ошибок в коде написанной программы.
Среда разработки обычно предназначается  для конкретного языка программирования, как например Visual Basic, Dev-C++.
Среда разработки ПО также  может быть оснащена специальными инструментами  для визуального редактирования интерфейса программы. Такие среды называются средами визуальной разработки.
Среда разработки Borland Delphi 7.0, в которой и была разработана программа для данной курсовой работы, относится именно к средам визуальной разработки, что означает, что вид каждой программы создается простым перемещением составных элементов из набора данных.
В Delphi реализуется объектно-ориентированный подход к программированию (ООП). Отличием ООП от структурного программирования является то, что в ООП программист оперирует не просто процедурами и функциями, как в структурном программировании, а целыми объектами.
Объект представляет собой  совокупность переменных, влияющих на его состояние и процедур и  функций, которые определяют его  поведение во время выполнения программы, либо могут быть вызваны при помощи этого объекта.
В ООП на программиста ложиться роль написания процедур-обработчиков определенных событий, которые могут  произойти с объектом во время  выполнения программы.

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

Языки программирования бывают двух видов: языки высокого уровня и  языки низкого уровня.
Языки низкого уровня представляют собой набор команд непосредственно  для процессора, и наиболее приближенны  по своему синтаксису к машинному  коду.
Языки высокого уровня более  просты в освоении. Они не так  зависят от компьютера, на котором  происходит написание кода программы, как языки низкого уровня. Так  же языки высокого уровня позволяют  писать сложные выражения, использовать переменные уже существующих типов, либо же создавать свои типы, и обладают большим набором операций.
В Delphi в качестве базового языка программирования принят Object Pascal, являющийся расширением языка программирования высокого уровня Pascal.
Язык Pascal довольно прост в освоении. Программа, написанная на нём, представляет собой последовательность команд, разделенных точкой с запятой. Сами команды состоят из слов английского языка, что упрощает изучение Pascal.
Основные операторы языка  Pascal это оператор присваивания, операторы циклов и условный оператор.
Оператор присваивания служит, как можно догадаться из названия, для присваивания переменной какого-либо значения. Этот оператор имеет следующую  структуру:
<Переменная>:=<Значение>;
Значение должно быть того же типа, что и переменная.
Циклы в средах разработки, где основной язык Pascal, могут быть трех видов.
Цикл с предварительным условием используется в тех случаях, когда заранее неизвестно число повторений цикла. Оператор цикла с предусловием:
WHILE <Логическое условие> DO <Тело цикла>
 Оператор работает  следующим образом: предварительно  проверяется условие, и  цикл  выполняется в том случае, если  условие истинно, если условие  ложно, то выполняется следующий  за циклом оператор. Если тело  цикла содержит больше одной  команды, то оно заключается  в конструкцию BEGIN…END.
Цикл с последующим  условием используется в тех случаях, когда заранее неизвестно число  повторений цикла. Его оператор:
REPEAT <Тело цикла> UNTIL <Логическое выражение>
Последовательность операторов из тела цикла выполняется хотя бы один раз до тех пор, пока условие  не примет значение «истина». Использование  операторных скобок в этом цикле  не требуется.
Оператор цикла с параметром используется в тех случаях, когда  заранее известно сколько раз  должно повторяться тело цикла, и  выглядит он так:
FOR <Переменная цикла>:=<Выражение 1> TO <Выражение 2> DO <Тело цикла>
Переменная цикла –  это специальная переменная целого типа, с помощью которой оператор цикла будет вести отсчет того, сколько раз повторился цикл. Сперва оператор присваивает переменной значение выражения 1, а затем, с каждым новым выполнением тела цикла, прибавляет к этой переменной шаг цикла, равный единице. Цикл выполняется до тех пор, пока переменная не примет значение выражения 2. Если требуется не увеличивать, а уменьшать переменную цикла, то вместо служебного слова TO используется слово DOWNTO, и тогда шаг цикла становится равным -1. Тело цикла, состоящее из более чем одной команды, заключается в операторные скобки BEGIN…END.
Условный оператор, или  оператор ветвления, используется в  тех случаях, когда вычисления могут  пойти по разным веткам. Его синтаксис:
IF <Условие> THEN <Оператор 1> ELSE <Оператор 2>
Если условие истинно, выполняется оператор, либо последовательность операторов, которая, в таком случае, должна быть записана в операторных  скобках, идущий за словом THEN. Если условие принимает ложное значение, выполняется оператор, идущий после ELSE.
Условный оператор так  же может быть неполным, то есть, в  нем может отсутствовать вся  часть оператора после слова  ELSE, включая само это слово. В таком случае, при ложном значении условия произойдет выход из условного оператора. 

2. СПЕЦИАЛЬНАЯ ЧАСТЬ

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

Задача состоит в том, чтобы отыскать минимальную стоимость перевозки газа.
Пусть поставщиками газа будут ОАО «ЛУКОЙЛ», ООО «Межрегионгаз» и ООО «НГК «Итера», которые поставляют газ в такие организации как ООО «СЭТ», ОАО «ОГК-2» и УК «Объединенные бумажные фабрики». Пример расчета приведен в таблице 1.
 
Таблица 1
Поставщики
Объем вывоза, м3
Организации-потребители
B1
B2
B3
Стоимость перевозки 1м3, д.ед.
A1
1
2
3
12
A2
4
1
6
18
A3
7
4
9
10
Объем вывоза, м3
10
11
19
40
 
Цель задачи: минимизировать общую стоимость перевозки газа, в соответствии с которой построить оптимальный план перевозок.

2.2. Экономико-математическая  модель

Исходя из поставленной задачи с учетом ввода объема газа, перевозимого из точек поставки в торговые точки, целевая функция будет выглядеть, как показано в формуле 1:
 
 
 
где cij – стоимость перевозки единицы газа от i-ого поставщика j-ому потребителю;
xij – количество м3 газа, отправленное i-ым поставщиком j-ому потребителю.
Таким образом, в данной задаче необходимо найти такое решение x = {x11, x12, x13, …, xmn} (m – количество поставщиков, n – количество потребителей), при котором значение целевой функции будет минимальным.
Найденный план перевозок  должен будет удовлетворять системе  неравенств:
 
 
 
Условие 1 определяет распределение  газа между потребителями, не превышающее объемов запасов данного поставщика (ai). Условие 2 определяет объемы поставок газа текущему потребителю, которые будут не меньше необходимых потребностей (bj).

2.3. Метод северо-западного угла

В данном методе запасы очередного по номеру поставщика используются для  обеспечения запросов очередных  по номеру потребителей до тех пор, пока не будут исчерпаны полностью, после чего используются запасы следующего по номеру поставщика.
Заполнение таблицы транспортной задачи начинается с левого верхнего угла.
Метод состоит из ряда однотипных шагов, на каждом из которых, исходя из запасов очередного поставщика и  запросов очередного потребителя, заполняется  только одна клетка и соответственно исключается из рассмотрения один поставщик  или один потребитель.
 В данном примере  три поставщика с м3 газа 12, 18 и 10, и три потребителя с м3 газа 10, 11 и 19, как показано в таблице 2.
 
Таблица 2
 
В1
В2
В3
А1
 
1
 
2
 
3
12
     
А2
 
4
 
1
 
6
18
     
А3
 
7
 
4
 
9
10
     
  10
11
19
 
 
Если запасы первого поставщика больше запросов первого потребителя, то записываем в клетку (1,1) сумму  запроса первого потребителя  и переходим ко второму потребителю. Если же запасы первого поставщика меньше запросов первого потребителя, то записываем в клетку (1,1) сумму  запасов первого поставщика, исключаем  из рассмотрения первого поставщика и переходим ко второму поставщику.
Таким образом, так как  запасы первого поставщика (A1) больше запросов первого потребителя (B1), в клетку (1,1) записываем сумму запросов B1 (10), и первого потребителя исключаем из рассмотрения. В клетку с запасами первого поставщика записываем количество неизрасходованных запасов, т.е. 12 - 10 = 2.
 
Таблица 3
 
В1
В2
В3
А1
 
10
1
 
2
 
3
2
     
А2
 
4
 
1
 
6
18
     
А3
 
7
 
4
 
9
10
     
  0
11
19
 
 
Выполняя аналогичные  действия для следующих пар поставщик-потребитель, в конечном итоге получаем готовый  первый опорный план поставки газа как показано в таблице 4.
 


Таблица 4
 
В1
В2
В3
А1
 
10
1
 
2
2
 
3
0
     
А2
 
4
 
9
1
 
9
6
0
     
А3
 
7
 
4
 
10
9
0
     
  0
0
0
 
 
После того как первый опорный  план найден, рассчитывается целевая  функция задачи. В данном случае F=10*1+2*2+9*1+9*6+10*9=167.

2.4. Метод минимальной стоимости

Следующий метод, рассмотренный в данной работе, называется метод минимальной стоимости.
Как и метод северо-западного  угла, он состоит из ряда однотипных шагов, на каждом из которых заполняется  только одна клетка таблицы, соответствующая  минимальной стоимости:
 
 
 
где cij – стоимость перевозки единицы газа от i-ого поставщика j-ому потребителю;
и исключается из рассмотрения только одна строка (поставщик) или  один столбец (потребитель). Очередную  клетку, соответствующую условию, заполняют по тем же правилам, что и в методе северо-западного угла. Поставщик исключается из рассмотрения, если его запасы груза использованы полностью. Потребитель исключается из рассмотрения, если его запросы удовлетворены полностью. На каждом шаге исключается либо один поставщик, либо один потребитель. При этом если поставщик еще не исключен, но его запасы равны нулю, то на том шаге, когда от данного поставщика требуется поставить груз, в соответствующую клетку таблицы заносится базисный нуль и лишь, затем поставщик исключается из рассмотрения. Аналогично с потребителем.
В данном примере сначала заполнятся клетка (1,1), поскольку цена перевозки газа в эту клетку равна 1, т.е., минимальна. В клетку записывается сумма запросов B1 (10), первый потребитель исключается из рассмотрения, а в клетку с запасами первого поставщика записывается количество неизрасходованных запасов (2).
 
Таблица 5
 
В1
В2
В3
А1
 
10
1
 
2
 
3
2
     
А2
 
4
 
1
 
6
18
     
А3
 
7
 
4
 
9
10
     
  0
11
19
 
 
Затем ищем следующий минимальный  элемент матрицы стоимостей. Это  клетка (2,2). Записываем в нее значение по правилам. 

Таблица 6
 
В1
В2
В3
А1
 
10
1
 
2
 
3
2
     
А2
 
4
 
11
1
 
6
7
     
А3
 
7
 
4
 
9
10
     
  0
0
19
 
 
В результате выполнения аналогичных  действий, получаем первый опорный  план:
 
Таблица 7
 
В1
В2
В3
А1
 
10
1
 
2
 
2
3
0
     
А2
 
4
 
11
1
 
7
6
0
     
А3
 
7
 
4
 
10
9
0
     
  0
0
0
 
 
Метод минимальной стоимости  прост и позволяет построить  опорное решение, достаточно близкое  к оптимальному, так как использует матрицу стоимостей транспортной задачи C=(cij).

2.5. Алгоритм решения задачи

2.5.1. Алгоритм основной программы


Рис. 1 

2.5.2. Алгоритм процедуры TForm1.Edit1Exit


Рис. 2
 


2.5.3. Алгоритм процедуры TForm1.Edit2Exit


Рис. 3 

2.5.4. Алгоритм процедуры TForm1.Button4Click


Рис. 4

2.5.5. Алгоритм процедуры TForm1.Button3Click1


Рис. 5 


 
Продолжение рис. 5

 
Продолжение рис. 5

 
Продолжение рис. 5

Продолжение рис. 5
 



Продолжение рис. 5 

2.5.6. Алгоритм процедуры sevzar


Рис. 6 

2.5.7. Алгоритм процедуры minelem


Рис. 7 


 
Продолжение рис. 7

2.6. Описание решения задачи

2.6.1. Описание алгоритма основной программы

Блок 1: Начало работы программы.
Блок 2: Выход из элемента Edit1 вызывает процедуру TForm1.Edit1Exit.
Блок 3: Выход из элемента Edit2 вызывает процедуру TForm1.Edit2Exit.
Блок 4: Нажатие на кнопку Button4 вызывает процедуру TForm1.Button4Click.
Блок 5: Нажатие на кнопку Button3 вызывает процедуру TForm1.Button3Click.
Блок 6: Завершение работы программы.

2.6.2. Описание алгоритма  процедуры TForm1.Edit1Exit

Блок 1: Начало работы процедуры.
Блок 2: Присвоение глобальной переменной n (количество потребителей) значения из объекта Edit1.
Блок 3: Задание количества колонок объектов StringGrid1, StringGrid2, StringGrid3.
Блок 4-6: Заполнение фиксированной строки объектов StringGrid1 и StringGrid2 названиями потребителей.
Блок 7: Завершение работы процедуры.

2.6.3. Описание алгоритма процедуры TForm1.Edit2Exit

Блок 1: Начало работы процедуры.
Блок 2: Присвоение глобальной переменной m (количество поставщиков) значения из объекта Edit2.
Блок 3: Задание количества строк объектов StringGrid1, StringGrid2 и колонок объекта StringGrid4.
Блок 4-6: Заполнение фиксированной  колонки объектов StringGrid1 и StringGrid2 названиями поставщиков.
Блок 7: Завершение работы процедуры.

2.6.4. Описание алгоритма процедуры TForm1.Button4Click

Блок 1: Начало работы процедуры.
Блок 2: Закрытие формы.
Блок 3: Завершение работы процедуры.

2.6.5. Описание алгоритма  процедуры TForm1.Button3Click1

Блок 1: Начало работы процедуры.
Блок 2-4: Заполнение массива b (массив потребителей) значениями ячеек объекта StringGrid3.
Блок 5-7: Заполнение массива  a (массив поставщиков) значениями ячеек объекта StringGrid4.
Блок 8-12: Заполнение двумерного массива c (матрица стоимостей) значениями ячеек объекта StringGrid1.
Блок 13-18: Обнуление результирующих переменных.
Блок 19: Проверка, каким методом  будет производиться решение.
Блок 20: Запуск на выполнение процедуры sevzap, реализующей метод северо-западного угла.
Блок 21: Запуск на выполнение процедуры minelem, реализующей метод минимальной стоимости.
Блок 22: Обнуление переменной kol (количество непустых ячеек в результирующей матрице).
Блок 23-28: Нахождение количества непустых ячеек в результирующей матрице и занесение его в  переменную kol.
Блок 29-30: Проверка составленного  плана на вырожденность. Если план вырожден, работа процедуры прекращается.
Блок 32-37: Расчет значения функции.
Блок 38: Вывод значения функции  пользователю, в элемент Edit3.
Блок 39: Завершение работы процедуры.

2.6.6. Описание алгоритма процедуры sevzap

Блок 1: Начало работы процедуры.
Блок 2-3: Начало цикла, в котором будет производиться нахождение плана (переменные i и j – координаты ячеек в результирующей матрице).
Блок 4-5: Если запросы потребителя меньше запасов поставщика, в ячейку результирующей матрицы R записывается соответствующее значение из массива b, рассчитываются оставшиеся запасы текущего поставщика.
Блок 6-7: Если запасы поставщика меньше запросов потребителя, в ячейку результирующей матрицы R записывается соответствующее значение из массива a, рассчитываются оставшиеся запросы текущего потребителя.
Блок 8-9: Если запросы потребителя равны запасам поставщика, в ячейку результирующей матрицы R записывается соответствующее значение из массива a, значения запасов текущего поставщика и запросов текущего потребителя обнуляются.
Блок 10-11: Завершение цикла.
Блок 12: Завершение работы процедуры.

2.6.7. Описание алгоритма  процедуры minelem

Блок 1: Начало работы процедуры.
Блок 2: Начало цикла, в котором  будет производиться нахождение плана (переменная l – количество повторений цикла).
Блок 3-9: Нахождение минимального элемента в матрице стоимостей, занесение  его значения в переменную min и координат в переменные mini и minj соответственно.
Блок 10-11: Если запросы потребителя меньше запасов поставщика, в ячейку результирующей матрицы R, соответствующую ячейке с минимальным значением в матрице стоимостей, записывается соответствующее значение из массива b, рассчитываются оставшиеся запасы текущего поставщика.
Блок 12-13: Если запасы поставщика меньше запросов потребителя, в ячейку результирующей матрицы R, соответствующую ячейке с минимальным значением в матрице стоимостей, записывается соответствующее значение из массива a, рассчитываются оставшиеся запросы текущего потребителя.
Блок 14-15: Если запросы потребителя равны запасам поставщика, в ячейку результирующей матрицы R, соответствующую ячейке с минимальным значением в матрице стоимостей, записывается соответствующее значение из массива a, значения запасов текущего поставщика и запросов текущего потребителя обнуляются.
Блок 16: Завершение цикла.
Блок 17: Завершение работы процедуры.

2.7. Ручной расчет контрольных примеров

Чтобы проверить корректность работы программы, были решены вручную  два контрольных примера на данную задачу.
Пример 1.
Входные данные:
a = {12, 19, 13, 17}     (4)
b = {15, 15, 16, 15}     (5)
(6)
 
В формуле 4 содержаться данные о поставщиках; в формуле 5 - потребителей; в формуле 6 - матрица стоимостей.
 
Решение методом северо-западного угла: 

Таблица 8
 
В1
В2
В3
B4
А1
 
2
 
5
 
7
  6
12
       
А2
 
4
 
4
 
5
  5
19
       
А3
 
3
 
5
 
4
  4
13
       
A4
  1
  6
  2
  5
17
       
  15
15
16
15
 
 
Таблица 8.1
 
В1
В2
В3
B4
А1
 
12
2
  5
  7
  6
0
       
А2
  4
  4
  5
  5
19
       
А3
  3
  5
  4
  4
13
       
A4
  1
  6
  2
  5
17
       
  3
15
16
15
 
 
(1,1) = 12;   (1,5) = 12 – 12 = 0;   (5,1) = 15 - 12 = 3;
 


Таблица 8.2
 
В1
В2
В3
B4
А1
 
12
2
 
5
 
7
  6
0
       
А2
 
3
4
 
4
 
5
  5
16
       
А3
 
3
 
5
 
4
  4
13
       
A4
  1
  6
  2
  5
17
       
  0
15
16
15
 
 
(2,1) = 3;   (2,5) = 19 – 3 = 0;   (5,1) = 3 - 3 = 0;
 
Таблица 8.3
 
В1
В2
В3
B4
А1
 
12
2
 
5
 
7
  6
0
       
А2
 
3
4
 
15
4
 
5
  5
1
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.