Разработка электронного учебного методического комплекса по изучению раздела "Симплексный метод решения задачи линейного программирования" дисциплины "Математические методы"

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

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

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

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

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. ПОСТАНОВКА ЗАДАЧИ

2. ОПИСАНИЕ СИМПЛЕКСНОГО МЕТОДА РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГОПРОГРАММИРОВАНИЯ

3. ОБОСНОВАНИЕ ВЫБОРА ЯЗЫКА ПРОГРАММИРВОАНИЯ

4. ПЕРЕЧЕНЬ ИДЕНТИФИКАТОРОВ

5. БЛОК-СХЕМА АЛГОРИТМА

5.1 Блок - схема модуля Symplex

5.2 Блок - схема модуля eTest

6. ЛОГИЧЕСКАЯ СХЕМА РАБОТЫ ПРОГРАММЫ

7. ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ

8. ПРОВЕРКА СЧЕТА ПО ПРОГРАММЕ

9. ТЕХНИКА БЕЗОПАСНОСТИ И НАУЧНАЯ ОРГАНИЗАЦИЯ ТРУДА

9.1 Общие требования безопасности

9.2 Требования безопасности перед началом работ

9.3 Требования безопасности во время работы

9.4 Требования безопасности в аварийных ситуациях

9.5 Требования безопасности по окончании работ

10. ЭКОНОМИЧЕСКАЯ ЧАСТЬ

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММЫ

ПРИЛОЖЕНИЕ 2. РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ

ВВЕДЕНИЕ

Сами истоки линейного программирования (методы решения, геометрическая интерпретация и т.д.) были введены в 30х годах в ленинградском университете Л. В. Конторовичем.

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

В последние годы толчок в развитии этой дисциплины дало развитие вычислительной техники.

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

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

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

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

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

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

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

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

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

Объктом дипломного проектирования является методика решения задачи линейного программрования, приведенного к стандартному виду.

Предметом исследования автоматизация процессов решения задачи линейного программирования, формирования отчета и организации процесса контроля знаний.

Для достижения поставленной цели были поставлены и решены следующие задачи:

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

· определение основных функций электронного учебного методического комплекса;

· выбор инструментария программирования;

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

· разаработка логической и реализация физической структуры приложения;

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

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

1. ПОСТАНОВКА ЗАДАЧИ

Дана линейная функция вида при ограничениях

,

где:

- коэффициент целевой функции ;

- коэффициент при ;

- неизвестные ;

- свободные члены ;

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

Для данного типа задачи необходимо разработать программу, позволяющую:

1. Вносить исходные данные;

2. Производить протокол расчета решения задачи;

3. Выдавать справочную информацию по теории решения задачи;

4. Вести базу данных тестовых материалов по заданной теме;

5. Вести базу данных учетных записей пользователей тестовой системы;

6. Проводить тестирование с выдачей и сохранением результатов.

2. ОПИСАНИЕ СИМПЛЕКСНОГО МЕТОДА РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГОПРОГРАММИРОВАНИЯ

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

Заметим, что каждое из линейных неравенств на переменные ограничивает полупространство в соответствующем линейном пространстве. В результате все неравенства ограничивают некоторый многогранник (возможно, бесконечный), называемый также полиэдральным конусом. Уравнение W(x) = c, где W(x) -- максимизируемый (или минимизируемый) линейный функционал, порождает гиперплоскость L(c). Зависимость от c порождает семейство параллельных гиперплоскостей. Тогда экстремальная задача приобретает следующую формулировку -- требуется найти такое наибольшее c, что гиперплоскость L(c) пересекает многогранник хотя бы в одной точке. Заметим, что пересечение оптимальной гиперплоскости и многогранника будет содержать хотя бы одну вершину, причём, их будет более одной, если пересечение содержит ребро или k-мерную грань. Поэтому максимум функционала можно искать в вершинах многогранника. Принцип симплекс-метода состоит в том, что выбирается одна из вершин многогранника, после чего начинается движение по его рёбрам от вершины к вершине в сторону увеличения значения функционала. Когда переход по ребру из текущей вершины в другую вершину с более высоким значением функционала невозможен, считается, что оптимальное значение c найдено.

Последовательность вычислений симплекс-методом можно разделить на две основные фазы:

1. нахождение исходной вершины множества допустимых решений,

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

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

Теперь приведём шаги алгоритма. На каждом шаге мы будем менять множества простых и непростых векторов (двигаться по рёбрам), и матрица будет иметь следующий вид:

где cB -- коэффициенты вектора c соответствующие простым переменным (переменным xs соответствуют 0), B -- столбцы , соответствующие простым переменным. Матрицу, образованную оставшимися столбцами обозначим D. Почему матрица будет иметь такой вид поясним в описании шагов алгоритма.

Первый шаг.

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

Второй шаг

Покажем, что в выражении только непростые переменные имеют ненулевой коэффициент. Заметим, что из выражения Ax+xs=b простые переменные однозначно выражаются через непростые, так как число простых переменных равно числу уравнений. Пусть x ' -- простые, а x ' ' -- непростые переменные на данной итерации. Уравнение Ax+xs=b можно переписать, как Bx '+Dx ' '=b. Умножим его на B ? 1 слева: x' + B ? 1Dx'' = B ? 1b. Таким образом мы выразили простые переменные через непростые, и в выражении B ? 1Ax + B ? 1xs, эквивалентному левой части равенства, все простые переменные имеют единичные коэффициенты. Поэтому, если прибавить к равенству Z ? cTx = 0 равенство , то в полученном равенстве все простые переменные будут иметь нулевой коэффициент -- все простые переменные вида x сократятся, а простые переменные вида xs не войдут в выражение .

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

.

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

Третий шаг

Теперь необходимо понять, какая простая переменная первой обратится в ноль по мере увеличения входящей переменной. Для этого достаточно рассмотреть систему:

При фиксированных значениях непростых переменных система однозначно разрешима относительно простых, поэтому мы можем определить, какая из простых переменных первой достигнет нуля при увеличении входящей. Эту переменную назовем выходящей. Это будет означать, что мы натолкнулись на новую вершину. Теперь входящую и выходящую переменную поменяем местами -- входящая «войдёт» в простую, а выходящая из них «выйдет» в непростые. Теперь перепишем матрицу B и вектор cB в соответствии с новыми наборами простых и непростых переменных, после чего вернёмся ко второму шагу. x''

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

3. ОБОСНОВАНИЕ ВЫБОРА ЯЗЫКА ПРОГРАММИРВОАНИЯ

Программа для решения задач Симплекс - методом и система тестового контроля знаний студентов написана на языке программирования С++ и отлажена в среде Borland C++ Builder 6.0.

Си++ (англ. C++) -- компилируемый статически типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования, но в сравнении с его предшественником -- языком Си, -- наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

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

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

· Предсказуемое выполнение программ является важным достоинством для построения систем реального времени. Весь код, неявно генерируемый компилятором для реализации языковых возможностей (например, при преобразовании переменной к другому типу), определён в стандарте. Также строго определены места программы, в которых этот код выполняется. Это даёт возможность замерять или рассчитывать время реакции программы на внешнее событие.

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

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

· Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной. Объявление константности даёт программисту, читающему текст программы дополнительное представление о правильном использовании классов и функций, а также может являться подсказкой для оптимизации. Перегрузка функций-членов по признаку константности позволяет определять изнутри объекта цели вызова метода (константный для чтения, неконстантный для изменения). Объявление mutable позволяет сохранять логическую константность при использовании кэшей и ленивых вычислений.

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

· Возможность имитации расширения языка для поддержки парадигм, которые не поддерживаются компиляторами напрямую. Например, библиотека Boost.Bind позволяет связывать аргументы функций.

· Возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.

· Используя шаблоны и множественное наследование можно имитировать классы-примеси и комбинаторную параметризацию библиотек. Такой подход применён в библиотеке Loki, класс SmartPrt которой позволяет, управляя всего несколькими параметрами времени компиляции, сгенерировать около 300 видов «умных указателей» для управления ресурсами.

· Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Для определения реальных свойств системы выполнения в стандартной библиотеке присутствуют соответствующие возможности (например, std::numeric_limits <T>). Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.

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

· Имеется возможность работы на низком уровне с памятью, адресами.

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

Borland C++ Builder 6.0 -- это комплексное решение для быстрой разработки приложений Windows®, .NET, веб-приложений и приложений баз данных.

Основные возможности для разработки приложений Windows

* Интегрированная среда разработки C++Builder с функцией “перетаскивания мышью”.

* Более 250 компонентов в библиотеке VCL.

* dbExpress с поддержкой 9 основных баз данных, включая InterBase®.

* DataSnap с поддержкой JSON, REST, HTTP, COM и XML.

* Возможность отладки многопоточных приложений.

* UML/аудит кода и учет показателей.

4. ПЕРЕЧЕНЬ ИДЕНТИФИКАТОРОВ

Модуль Symplex

Главная форма Form1

Таблица 4.1

Название

Описание

Label1

Метка, содержащая текст «f=».

Label2

Метка, содержащая текст «Количество коэффициентов:».

Label3

Метка, содержащая текст «Стремится к:».

CSpinEdit1

Поле для ввода количества коэффициентов.

Button1

Кнопка вызова процедуры применения параметров, введенных в CSpinEdit1, для таблиц StringGrid1 и StringGrid2.

Label4

Метка, содержащая текст «Количество ограничений».

CSpinEdit2

Поле для ввода количества строк ограничений.

StringGrid2

Таблица для ввода исходных данных системы ограничений.

Button2

Кнопка вызова процедуры применения параметров, введенных в CSpinEdit1, для таблицы StringGrid2.

StringGrid3

Таблица для ведения расчетов Симплекс - методом.

Memo1

Многострочный текст. Используется для формирования файла отчета в *.html.

Unit 1

Таблица 4.2

Название

Описание

i

Переменная целочисленного типа, используется в качестве счетчика цикла.

j

Переменная целочисленного типа, используется в качестве счетчика цикла.

Err

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

err1

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

err2

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

e1

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

e2

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

convert

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

NCC

Переменная целочисленного типа, используется в качестве счетчика итераций процесса.

OtrStr

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

MinStlb

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

NomStlb

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

PolStlb

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

k

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

MinOt

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

NomStr

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

MinStr

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

Rest

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

RazEl

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

TekZn

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

RazZn

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

KonZn

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

Форма отчета Form2

Таблица 4.3

Название

Описание

CppWebBowser1

Компонент, служащий для преобразования файла отчета Report.html.

Button1

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

Button2

Кнопка вызова процедуры закрытия формы отчета Form2.

Модуль eTest

Главная форма Form1

Таблица 4.4

Название

Описание

Lebel1

Метка, содержащая текст «Система электронного тестирования "eTest"».

Lebel2

Метка, содержащая текст «Для того чтобы пройти тестирования, Вам необходимо быть зарегистрированным в базе данных программы».

Lebel3

Метка, содержащая текст «Если Вы зарегистрированы, то Вам необходимо авторизоваться и начать тестирование».

Button1

Кнопка вызова формы регистрации Form2.

Button2

Кнопка вызова формы авторизации Form5.

Button3

Кнопка вызова формы тестирования Form9.

Unit1

Таблица 4.5

Название

Описание

ID

Переменная целочисленного типа, используется для хранения ID - номера авторизованного пользователя.

Login

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

sName

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

SurName

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

Group

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

Status

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

DateOfRegist

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

TimeOfRegist

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

Lock

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

AVTORIZ

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

Форма регистрации Form2

Таблица 4.6

Название

Описание

Label1

Метка, содержащая текст «Логин:».

Label2

Метка, содержащая текст «Пароль:».

Label3

Метка, содержащая текст «Подтверждение пароля:».

Label4

Метка, содержащая текст «Имя:».

Label5

Метка, содержащая текст «Фамилия:».

Label6

Метка, содержащая текст «Группа:».

Edit1

Поле для ввода логина.

Edit2

Поле для ввода пароля.

Edit3

Поле для повторного ввода пароля.

Edit4

Поле для ввода имени.

Edit5

Поле для ввода фамилии.

Edit6

Поле для ввода Группы.

Button1

Кнопка вызова процедуры регистрации в базе

Button2

Кнопка отмены процедуры регистрации

Button3

Кнопка вызова процедуры очистки полей формы

Unit2

Таблица 4.7

Название

Описание

DATE

Переменная типа Дата/время, используется для хранения текущих даты и времени.

MaxIDU

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

Форма панели управления Form4

Таблица 4.8

Название

Описание

DBGrid1

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

RadioButton1

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

RadioButton2

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

RadioButton3

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

RadioButton4

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

MaskEdit1

Поле для ввода даты.

MaskEdit2

Поле для ввода даты.

MaskEdit3

Поле для ввода даты.

Button2

Кнопка вызова процедуры формирования отчета за определенную дату.

Button3

Кнопка вызова процедуры формирования отчета за определенный период.

Label1

Метка, содержащая текст «С».

Label2

Метка, содержащая текст «По».

Memo1

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

Button1

Кнопка вызова формы конструктора вопросов Form7.

Button4

Кнопка вызова формы регистрации Form2.

Button5

Кнопка вызова формы авторизации Form5.

Button6

Кнопка вызова формы информации о текущей сессии Form6.

Button7

Кнопка вызова формы тестирования Form9.

Unit4

Таблица 4.9

Название

Описание

i

Переменная целочисленного типа, используется в качестве счетчика цикла.

D

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

D1

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

D2

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

Форма авторизации Form5

Таблица 4.10

Название

Описание

Label1

Метка, содержащая текст «Логин:».

Label2

Метка, содержащая текст «Пароль:».

Edit1

Поле для ввода логина.

Edit2

Поле для ввода пароля.

Button1

Кнопка вызова процедуры входа в систему и авторизации.

Button2

Кнопка отмены авторизации.

Unit5

Таблица 4.11

Название

Описание

ID

Переменная целочисленного типа, используется для хранения ID - номера авторизованного пользователя.

Login

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

sName

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

SurName

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

Group

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

Status

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

DateOfRegist

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

TimeOfRegist

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

Lock

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

AVTORIZ

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

Форма информации о текущей сессии Form6

Таблица 4.12

Название

Описание

Label1

Метка с текстом «ID:».

Label2

Метка с текстом «Имя:».

Label3

Метка с текстом «Фамилия:».

Label4

Метка с текстом «Группа:».

Label5

Метка с текстом «Статус:».

Label6

Метка с текстом «Дата регистрации:».

Label7

Метка с текстом «Время регистрации:».

Label8

Метка с текстом «Блокировка:».

Label9

Метка с текстом «Активность».

Label10

Метка для вывода ID - номера авторизованного пользователя.

Label11

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

Label12

Метка для вывода фамилии авторизованного пользователя.

Label13

Метка для вывода группы авторизованного пользователя.

Label14

Метка для вывода статус авторизованного пользователя.

Label15

Метка для вывода даты регистрации авторизованного пользователя.

Label16

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

Label17

Метка для вывода информации о блокировке авторизованного пользователя.

Label18

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

Форма конструктора вопросов на выборку Form7

Таблица 4.13

Название

Описание

RadioButton1

Переключатель типа вопроса. Установлен на вопрос - выборку.

RadioButton2

Переключатель Типа вопроса. Переключает на вопрос, который требует письменного ответа.

L1able1

Метка с текстом «Текст вопроса:».

L1able2

Метка с текстом «Варианты ответа:».

L3able3

Метка с текстом «Количество вариантов:».

Memo1

Многострочный текст, используется для ввода текста вопроса.

CSpinEdit1

Поле для ввода количества вариантов ответа.

Button1

Кнопка вызова процедуры формирования компонентов на форме.

Button2

Кнопка вызова процедуры изменения вариантов ответа.

Button3

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

Unit7

Таблица 4.14

Название

Описание

*Label

Массив типа TLabel, используется для формирования меток на форме.

*Edit

Массив типа TEdit, используется для формирования полей ввода на форме.

*RadioButton

Массив типа TRadioButton, используется для формирования переключателей на форме.

i

Переменная целочисленного типа, используется в качестве счетчика по циклу.

Error

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

err

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

RBS

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

bul

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

MaxIDQ

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

MaxIDA

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

Форма конструктора вопросов, требующих письменного ответа Form8

Таблица 4.15

Название

Описание

RadioButton1

Переключатель типа вопроса. Установлен на вопрос, требующий ответ.

RadioButton2

Переключатель типа вопроса. Переключает на вопрос - выборку.

Edit1

Поле, для вывода адреса загружаемого на изображения.

Button1

Кнопка вызова процедуры загрузки изображения.

Button2

Кнопка вызова процедуры сохранения вопроса и ответа в базу

Label1

Метка с текстом «Изображение:».

Label2

Метка с текстом «Текс вопроса:».

Label3

Метка с текстом «Ответ:».

Edit2

Поле для ввода ответа.

Memo1

Многострочный текст, используется для ввода текста вопроса.

Image1

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

Unit8

Таблица 4.16

Название

Описание

DBFName

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

FName

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

Dir

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

NewName

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

Error

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

err

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

MaxIDQ

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

MaxIDA

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

Форма тестирования Form9

Таблица 4.17

Название

Описание

Label1

Метка с текстом «Текст вопроса:».

Label2

Метка с текстом «Варианты ответа:».

Label3

Метка с текстом «ID».

Label4

Метка с текстом «Логин:».

Label5

Метка с текстом «Имя:».

Label6

Метка с текстом «Фамилия:».

Label7

Метка с текстом «Группа:».

Label8

Метка с текстом «Статус:».

Label9

Метка с текстом «Активность:».

Label10

Метка для вывода ID - номера авторизованного пользователя.

Label11

Метка для вывода логина авторизованного пользователя.

Label12

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

Label13

Метка для вывода фамилии авторизованного пользователя.

Label14

Метка для вывода группы авторизованного пользователя.

Label15

Метка для вывода статус авторизованного пользователя.

Label16

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

Label17

Метка с текстом «Изображение:».

Label18

Метка с текстом «Текущий вопрос:».

Label19

Метка с текстом «Всего вопросов:».

Label20

Метка для вывода номера текущего вопроса.

Label21

Метка для вывода количества вопросов текущего тестирования.

Label23

Метка с текстом «Ответ:».

Memo1

Многострочный текст, используется для вывода текста вопроса.

Memo2

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

Edit1

Поле для ввода ответа.

Button1

Кнопка вызова процедуры начала тестирования

Button2

Кнопка вызова процедуры переключения вопросов тестирования

Button3

Кнопка вызова процедуры завершения тестирования

Unit9

Таблица 4.18

Название

Описание

ID

Переменная целочисленного типа, используется для хранения ID - номера авторизованного пользователя.

Login

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

sName

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

SurName

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

Group

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

Status

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

DateOfRegist

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

TimeOfRegist

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

Lock

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

AVTORIZ

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

NowIDQ

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

NowIDA

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

MaxIDQ

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

MaxIDA

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

Ans

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

TrAns

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

CControl

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

i

Переменная целочисленного типа, используется в качестве счетчика цикла.

Type

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

NCheckAns

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

Error

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

err

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

T

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

F

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

Dir

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

ND

Переменная типа Дата/Время, используется для хранения даты и времени.

MaxIDT

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

5. БЛОК-СХЕМА АЛГОРИТМА

5.1 Блок - схема модуля Symplex

5.2 Блок - схема модуля eTest

Блок- схема модуля регистрации

Блок - схема модуля авторизации

Блок - схема модуля конструктора вопросов 1

Блок - схема модуля конструктора вопросов 2

Блок - схема модуля тестирования

6. ЛОГИЧЕСКАЯ СХЕМА РАБОТЫ ПРОГРАММЫ

7. ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ

Программа состоит из двух независимых модулей: модуля решения Symplex и модуля системы тестового контроля eTest.

После запуска модуля Symplex, перед пользователем открывается главное окно программы, в котором содержатся элементы управления (Рис. 6.1).

Рис. 6.1. Головная форма программы Symplex

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

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

Далее необходимо заполнить таблицу системы ограничений и нажать кнопку «Решить». Кнопка «Очистить» служит для очистки элементов и подготовки полей для заполнения.

В случае если введены не все исходные данные, то программа выдаст сообщение об этом (Рис. 6.2).

Рис. 6.2. Сообщение об ошибке ввода данных

Если же все данные введены верно, то программа выдаст сообщение о том, что найден оптимальный план, либо сообщение о том, что задача не имеет решения (Рис. 6.3).

Рис. 6.3. Сообщения о результате работы программы

После этого кнопка «Сформировать отчет на форме становится активна». При ее нажатии появляется форма с отчетом (Рис. 6.4).

Рис. 6.4. Форма вывода отчета

Отчет на данной форме можно распечатать при нажатии на кнопку «Печать». При нажатии на кнопку «Закрыть» форма закроется.

Модуль eTest может быть запущен независимо от модуля Symplex, а может быть вызван из модуля Symplex через меню Опции / Пройти тестирование (Рис. 6.5).

Рис. 6.5 Запуск модуля eTest

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

Рис. 6.6. Головная форма программы eTest

Система тестового контроля работает на основе базы данных UsDB. Она сформирована при помощи программы Microsoft Access и содержит 4 таблицы:

· Таблица учетных записей пользователей;

· Таблица результатов тестирования пользователей;

· Таблица вопросов тестирования;

· Таблица ответов на вопросы.

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

Рис. 6.7. Форма регистрации

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

После заполнения всех полей, необходимо нажать на кнопку «Зарегистрироваться». Программа проверит все ли данные введены, совпадают ли введенные пароли и не зарегистрирован ли пользователь с таким логином ранее. С случае обнаружения этих ситуаций, программа выдаст соответствующие сообщения (Рис. 6.8).

Рис. 6.8. Возможные сообщения об ошибках при регистрации

В случае успешной авторизации, программа выдаст сообщение следующего вида. (Рис. 6.9)

Рис. 6.9. Сообщение об успешной регистрации

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

После регистрации пользователю нужно авторизоваться. Нужно вызвать форму авторизации и ввести в нее логин и пароль, указанные при регистрации (Рис.6.10).

Рис. 6.10. Форма авторизации

При успешной авторизации, программа выдаст сообщение следующего вида. (Рис. 6.11)

Рис. 6.11. Сообщение об успешной авторизации

Каждому пользователю при регистрации присваивается статус «Student». Этот статус предоставляет право только проходить тестирование.

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

После регистрации пользователь может пройти тестирование, нажав на соответствующую кнопку. Перед ни откроется форма, на которой производится тестирование. При нажатии кнопки «Начать» начинает процесс тестирования: на форму загружаются вопросы и варианты ответов. Необходимо выбрать какой-то вариант ответа и нажать кнопку «Продолжить», загрузится другой вопрос. Вопросы в системе могут быть двух типов: вопросы, основанные на выборе ответа и вопросы, основанные на вводе ответа (Рис. 6.12, 6.13).

Рис. 6.12. Форма тестирования, вопрос второго типа

Рис. 6.13. Форма тестирования, вопрос первого типа

Если пользователю присвоен статус «Admin», то он имеет доступ к панели управления. Для перехода к ней, он должен быть авторизован и должен перейти по пунктам главного меню Управление / Панель управления (Рис. 6.14).

Рис. 6.14. Форма панели управления

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

Так же из этой формы есть кнопки вызова всех остальных основных форм. Это удобно, среди которых есть кнопка конструктора вопросов.

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

Для ввода вопросов с выбором ответа нужно ввести текст вопроса, выставить количество вариантов ответа, заполнить поля и выбрать верный ответ. После чего нажать кнопку «Сохранить вопрос в базу» (Рис. 6.15).

Рис. 6.15. Форма конструктора вопросов первого типа

Для ввода вопросов с вводом ответа необходимо загрузить сопроводительное изображение, если оно необходимо, ввести текст вопроса и ввести правильный ответ, после чего нажать кнопку «Сохранить вопрос в базу» (Рис. 6.16).

Рис. 6.16. Форма конструктора вопросов второго типа

По завершению тестирования, пользователю будет выдано сообщение о результате (Рис. 6.17)

Рис. 6.17 Сообщение результата тестирования

Создастся файл отчета, а результат запишется в базу.

8. ПРОВЕРКА СЧЕТА ПО ПРОГРАММЕ

Используя симплексный метод, решим следующую задачу:

Дана функция

При ограничениях

.

Задача представлена в общем виде. Для ее решения условие необходимо преобразовать в вид ОЗЛП путем введения новых переменных. В этом случае, условие задачи примет вид:

.

По данному условию составим Симплекс - таблицу. В столбец «План» заносятся свободные члены из системы ограничений. Ячейки столбцов X1 - X5 заполняются в соответствии с коэффициентами уравнений системы ограничений.

Нижняя строка заполняется по следующему алгоритму:

· Поскольку задача решается обычным симплекс -методом, то в ячейке соответствующей столбцу «План» записывается 0;

· Ячейки, соответствующие столбцам X1- X5, заполняются в соответствие с целевой функцией, но с противоположным знаком.

Базис

План

X1

X2

X3

X4

X5

X3

12

1

2

1

0

0

X4

24

1

6

0

1

0

X5

30

1

1

0

0

1

F'

0

-1

-3

0

0

0

Найден начальный опорный план:

F0=0;

X3=12; X4=24; X5=30.

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

Необходимо найти максимальный по модулю отрицательный элемент. Если таковых нет, то считается, что задача приведена к оптимальному плану. В нашем случае таким элементом является элемент -3, находящийся в нижней строке столбца X2. Переменная, соответствующая этому столбцу будет вводимой. Затем происходит поиск выводимой переменной. Для этого нужно найти минимальное отношение элементов столбца «План» и соответствующих им положительных элементов столбца, соответствующего вводимой переменной. Если в столбце нет положительных элементов, то задача не имеет решения. Та строка, на которой находится наименьшее отношение, является выводимой, а элемент на пересечении выводимого вводимого столбца и выводимой строки называется направляющий. В данном случае из базиса выводиться будет переменная X4, а вводиться - X2.

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

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

В результате этих операций, получим следующую Симплекс - таблицу:

Базис

План

X1

X2

X3

X4

X5

X3

4

0,66

0

1

-0,34

0

X2

4

0,17

1

0

0,17

0

X5

26

0,83

0

0

-0,17

1

F'

12

-0,49

0

0

0,51

0

Найден новый опорный план:

F1=12;

X3=4; X2=4; X5=26.

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

Базис

План

X1

X2

X3

X4

X5

X1

6,06

1

0

1,52

-0,52

0

X2

2,97

0

1

-0,26

0,26

0

X5

20,97

0

0

-1,26

0,26

1

F'

14,97

0

0

0,74

0,26

0

Найден новый опорный план:

F2=14,97;

X1=6,06; X2=2,97; X5=20,97.

Данный опорный план является оптимальным, так как в нижней строке нет отрицательных элементов.

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

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

9. ТЕХНИКА БЕЗОПАСНОСТИ И НАУЧНАЯ ОРГАНИЗАЦИЯ ТРУДА

Инструктажи по требованиям безопасности в зависимости от характера, цели, места и времени проведения подразделяют на:

· вводный;

· первичный;

· повторный;

· внеплановый;

· целевой;

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

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

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

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

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

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

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

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

9.1 Общие требования безопасности

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

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

Работник должен помнить об опасности поражения электрическим током (на ПЭВМ имеются точки с высоким потенциалом и 220В -- ОПАСНО ДЛЯ ЖИЗНИ).

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

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

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

9.2 Требования безопасности перед началом работ

1. Для проведения работ на ПЭВМ получить разрешение у ответственного за ПЭВМ.

2. Перед началом работы произвести внешний осмотр ПЭВМ, ее составных частей. Убедиться:

- в наличии и исправности защитного заземления в сетевой розетке;

- в закрытом положении крышек, кожухов, панелей;

- в отсутствии повреждений кабелей, их изоляции, целостности разъёмов (радиусы изгибов должны быть не менее 3-5 их диаметров);

- в обеспечении свободного доступа воздуха к ПЭВМ (не менее 200мм между составными частями и внешними предметами);

- в том, что органы управления составных частей ПЭВМ и периферии находятся в исходном положении.

9.3 Требования безопасности во время работы

1. Включение ПЭВМ и работа на ней должны производиться в строгом соответствии с «Инструкцией оператору по работе на ПЭВМ».

2. Запрещается:

- снимать крышки, кожухи, панели, заменять предохранители;

- производить какие-либо ремонтные работы;

- допускать посторонних лиц к работе на ПЭВМ.

- оставлять включенную ПЭВМ или ее составные части без присмотра.

9.4 Требования безопасности в аварийных ситуациях

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

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


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

  • Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.

    контрольная работа [196,1 K], добавлен 15.01.2009

  • Анализ метода линейного программирования для решения оптимизационных управленческих задач. Графический метод решения задачи линейного программирования. Проверка оптимального решения в среде MS Excel с использованием программной надстройки "Поиск решения".

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

  • Теоретическая основа линейного программирования. Задачи линейного программирования, методы решения. Анализ оптимального решения. Решение одноиндексной задачи линейного программирования. Постановка задачи и ввод данных. Построение модели и этапы решения.

    курсовая работа [132,0 K], добавлен 09.12.2008

  • Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.

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

  • Применение методов линейного программирования для решения оптимизационных задач. Основные понятия линейного программирования, свойства транспортной задачи и теоремы, применяемые для ее решения. Построение первичного опорного плана и системы потенциалов.

    курсовая работа [280,8 K], добавлен 17.11.2011

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

    методичка [366,8 K], добавлен 16.01.2010

  • Математическое программирование. Линейное программирование. Задачи линейного программирования. Графический метод решения задачи линейного программирования. Экономическая постановка задачи линейного программирования. Построение математической модели.

    курсовая работа [581,5 K], добавлен 13.10.2008

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

    задача [74,7 K], добавлен 21.08.2010

  • Сущность линейного программирования. Математическая формулировка задачи ЛП и алгоритм ее решения с помощью симплекс-метода. Разработка программы для планирования производства с целью обеспечения максимальной прибыли: блок-схема, листинг, результаты.

    курсовая работа [88,9 K], добавлен 11.02.2011

  • Особенности метода ветвей и границ как одного из распространенных методов решения целочисленных задач. Декомпозиция задачи линейного программирования в алгоритме метода ветвей и границ. Графический, симплекс-метод решения задач линейного программирования.

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

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