Создание информационно-вычислительной сети
Проектирование информационно-вычислительной сети в дополнительном офисе АО "Шымкентцемент". Разработка программного комплекса, предназначенного для расчета сметы затрат на оборудование и материалы, которые использовались при создании ЛВС предприятии.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 10.04.2011 |
Размер файла | 6,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2.3.4 Выбор аппаратных средств
В дипломном проекте для реализации поставленной задачи используется только новые компьютеры. В качестве серверов должны быть использованы компьютеры с характеристиками не ниже, чем следующие: 2 процессора Pentium@4 Xeon 2,2 GHz /4х 512 /2x120/128 FX 5600/LAN 10/100/1000, функционирующих под управлением сетевой ОС Windows 2000 Advanced Server. В качестве рабочих станции должны быть использованы компьютеры с конфигурацией Pentium-4 3.0 GHz / 2x256/ 80/ 128M FX 5600P, функционирующих под управлением сетевой ОС Windows XP. Серверы, кроме своего прямого назначения обработки и хранения информации, решают задачу маршрутизации и транспортировки информации, с одной стороны снижая трафик на основной информационной магистрали и с другой - обеспечивают прозрачный доступ к информации других серверов. Серверы в настоящее время обслуживают порядка 61-й рабочей станций, обрабатывающих различного вида технологическую информацию, свыше 45-ка рабочих станций находится в здании Заводоуправления. В качестве сетевых аппаратных средств серверов и рабочих станций используются встроенные в материнскую плату сетевые адаптерные карты.
Пассивная часть кабельной структуры ЛВС предприятия содержит в себе: 6 сегментов кабелей витой 4-парный, UTP, 5е кат;
соединительные кабели Patch-Cord, RJ-45 кат. 5е, 3 м, Patch-Cord, RJ-45 кат. 5е, 2 м, Patch-Cord, RJ-45 кат. 5е, 1 м;
кабели "витая пара" Belden 4-парный, UTP, 5е кат.(305м.);
коммутирующую панель 48 X Т568А/В категории 5е, HD-RWM Patch Panel;
конекторные разъемы RJ-45;
Активная часть кабельной структуры ЛВС представлена следующей аппаратурой:
Transceiver 3Com DFE 853 FAST MII 100/1000-T (one RJ-45 connector);
Коммутаторы SuperStack 3 Switch 4250T 50-port (48х10/100 +2х1000);
Коммутаторы SuperStack OfficeConnect Gigabit Switch 5 {5 ports10/100/1000 RJ-45.
Коммутаторы SuperStack OfficeConnect Gigabit Switch 8 {8 ports10/100/1000 RJ-45.
информационный локальный сеть смета
3. РЕАЛИЗАЦИЯ ПРОГРАММНОГО КОМПЛЕКСА
3.1 Разработка интерфейса программы
3.1.1 Создание и описание структур данных
Программное обеспечение расчета сметной стоимости оборудования, которое необходимо для проектирования ИВС состоит из следующих модулей:
Стартовый модуль ПО
1cv7s Вход в систему связующий модуль с основными приложениями, этот модуль подключает к себе базу данных, затем проверяет наличие пользователей записанных в БД (по умолчанию «Администратор»), и привязанных к пользователям паролей. При вводе верного пароля открывается основная материнская форма.
Users (Список пользователей) этот модуль отвечающий за редактирование списка пользователей ПО. В форме возможно добавление, изменение, удаление списка пользователей кроме пользователя «Администратор». Пользователя ПО можно временно блокировать, то есть его имя не будет фигурировать в качестве активных пользователей программного обеспечения.
1Cv7 DD- модуль содержащий и показывающий всю информацию о хранении таблиц, индексы, ссылки, строки.
1Cv7 DM- модуль где находиться информация об элементах содержащихся в отчете.
Командное меню состоит:
- Перечень оборудования
- Единицы измерения
- Поставшик
- Сотрудник
- Документ Заявка
- Журнал Заявок
- Отчеты
- Отчет о заявки
Рассмотрим модули, которые манипулируют исходными данными, т.е. справочники.
- Перечень оборудования модуль, который собирает в таблицу БД данные на оборудовании и материалов необходимые для построения ЛВС предприятий. В этом модуле, имеется возможность отображения таблицы оборудований их исходных данных. С помощью командной строки и кнопки возможно добавление, удаление того или иного оборудования из справочника.
- Users (Пользователи) это модуль, в котором собирается список пользователей использующих ПО “расчет сметной стоимости оборудования затрат на. Здесь есть возможность добавить, удалить, отредактировать пользователя, а также активировать (деактивировать) его работу в ПО.
- Заявка - модуль ввода и вывод данных по заявкам. Модуль содержит информацию нескольких таблиц БД, с помощью которых выбираются справочные данные. Модуль имеет возможность регистрировать информацию по заявкам, с указанием заключенного соглашения.
В программе реализовано управление с помощью модуля главного меню и кроме этого на форме расположены панели инструментов, пунктов главного меню.
Ниже приводится кнопочная форма модуля главного меню программы.
Рисунок 3.1 - Форма программы
Ниже приводится кнопочные формы модуля главного меню Справочников.
Рисунок 3.2 - главное меню Справочников
Рисунок 3.3 - Справочник оборудования
Модуль содержит таблицу Справочник оборудования, в котором содержится информация об оборудовании. При нажатии кнопки «Новый» появляется окно, где надо заполнять все пункты.
Модуль Справочник Единиц Измерения, содержит в себе информацию о выборе той ил иной единицы измерения. При нажатии кнопки «Новый» появляется окно, где надо ввести или единицу измерения.
Рисунок 3.4 - Справочник Единиц Измерения
Рисунок 3.5 - Справочник Поставщики
Модуль Справочник Поставщик, содержит в себе информацию о выборе того или иного поставщика который будет поставлять нам оборудование. При нажатии кнопки «Новый» появляется окно, где надо ввести наименование поставщика, его адрес и телефон.
Рисунок 3.6 - Справочник Сотрудники
Модуль Справочник сотрудник предназначен для выбора сотрудника, и внесения его в отчетную ведомость, где будет указываться где, когда и на какую сумму он приобрел оборудования. При нажатии кнопки «Новый» появляется окно, где надо ввести наименование поставщика, его адрес и телефон.
Рисунок 3.7 - Документ Заявка
Модуль документа Заявка предназначен для выбора оборудования и материалов необходимого для предприятия. При нажатии кнопки «Товар» появляется окно, где надо выбрать наименование товара, указав его стоимость и количество. После указания этих реквизитов программа автоматически делает подсчет по общей стоимости оборудования. Также в данном модуле нажав на кнопку “Печать Заявки” можно просмотреть отчет по стоимости выбранного сотрудником оборудования.
Модуль Журнал Заявка предназначен для выбора и просмотра заявки оборудования и материалов, которые были сделаны сотрудником. При нажатии кнопки «Период» мы вводим Дату когда было закуплено оборудование и с помощью кнопки Сформировать можем просмотреть отчет.
Рисунок 3.8 - Документ Печать Заявки
Рисунок 3.9 - Журнал Заявки
Рисунок 3.10 - Журнал Заявки
Модуль отчет по заявкам с поставщиками предназначен для выбора и просмотра заявки оборудования и материалов в период, какого числа была сделана заявка на приобретение, нажав на кнопку “Сформировать” выдается отчет по заявкам.
Рисунок 3.11 - отчет по заявкам с поставщиками
3.1.2 Логическая и физическая структура файловой системы и назначение
3.1.2.1 Структура файловой системы
В папке «Смета затрат» содержатся все файлы проекта. Более подробное описание файлов, содержащихся в этих папках, приводится ниже.
Рассмотрим файловую систему в виде иерархической структуры.
Рисунок 3.12 - Содержимое папки Смета затрат
SYSLOG - исполняемая папка. Запускает основную форму
*.cdx - .Содержит индексные файлы
*.dbf - файл базы данных.
*.md - файл проекта
*.dd - файл отчета
*.cfg - системный модуль
3.1.2.2 Структура БД
Созданная БД основана на реляционной модели. На рисунке 3.13 показана структурная схема разработанной базы данных.
Таблица 3.1.2.2
Последовательность работы программы
1 |
Пользователь вводит пароль для проверки прав доступа и для входа в систему БД |
|
2 |
Ввод информации в справочники и сохранение ее в БД |
|
4 |
В документе Заявка выбирает оборудование из справочников и формирует отчет о стоимости оборудования и материалов |
|
4 |
Сохраняет отчет в БД |
|
5 |
Все сохраненные заявки в БД можно увидеть и подкорректировать в журнале заявок |
|
6 |
Сохранение подкорректировочных данных в БД |
|
7 |
Просмотр отчетов по поставщикам за период |
|
8 |
Сохранение отчета в БД |
Целостность базы данных означает, что все записи содержат правильные данные (целостность данных) и их ключевые поля точно отражают отношения между записями и файлами (целостность ссылок).
Ответственность за целостность базы данных, с одной стороны, несут разработчики системы путем тщательного проектирования, программирования и использования специальных средств операционной системы.
3.1.2.4 Состав таблиц
Программный код хранится в файле 1Cv7.MD, открытый, База данных хранятся в DBF файлах, файлы созданы в 1С - Предприятии и состоят из пяти таблиц.
Таблица, в которой находятся данные о перечне оборудования (Перечень оборудования)
Таблица с данными о единицах измерений (Единицы измерений)
Таблица с данными о сотрудниках компании (Сотрудники)
Таблица с данными о поставщиках оборудования (Поставщики)
Таблица с данными о заявках на оборудования (Заявки)
3.1.2.5 Структура, используемых таблиц базы данных
Таблица 3.1.2.5.1
Единицы измерений
Имя |
Тип |
Длина |
Описание |
|
Код |
Счетчик |
Счётчик |
||
Наименование |
Текстовый |
25 символов |
Название единиц измерений |
Таблица 3.1.2.5.2
Перечень оборудования
Имя |
Тип |
Длина |
Описание |
|
Код |
Счетчик |
Счётчик |
||
Наименование |
Текстовый |
25 символов |
Название оборудования |
|
Единица измерения |
Справочник |
Справочник |
||
Цена |
Число |
10 символов, точность 2 |
Цена оборудования |
Таблица 3.1.2.5.3
Сотрудники
Имя |
Тип |
Длина |
Описание |
|
Код |
Счетчик |
Счётчик |
||
Наименование |
Текстовый |
25 символов |
ФИО сотрудника |
|
Отдел |
Текстовый |
Неограниченно |
Отдел сотрудника |
|
Должность |
Текстовый |
Неограниченно |
Должность |
Таблица 3.1.2.5.14
Заявки
Имя |
Тип |
Длина |
Описание |
|
Код |
Счетчик |
Счётчик |
||
Номер |
Числовой |
10 символов, точность 0 |
Номер заявки |
|
Дата заявки |
Дата |
Дата заявки |
||
Наименование |
Справочник |
Справочник оборудование |
||
Цена |
Число |
10 символов, точность 2 |
Цена оборудования |
|
Количество |
Число |
10 символов, точность 0 |
Количество оборудования |
|
Сумма |
Число |
10 символов, точность 2 |
Сумма заявки |
|
Поставщик |
Справочник |
Справочник поставщики |
||
Сотрудник |
Справочник |
Справочник сотрудники |
Таблица
Поставщики
Имя |
Тип |
Длина |
Описание |
|
Код |
Счетчик |
Счётчик |
||
Наименование |
Текстовый |
25 символов |
Название поставщика |
|
Адрес |
Текстовый |
Неограниченно |
Адрес поставщика |
|
Телефон |
Текстовый |
Неограниченно |
Телефон поставщика |
3.1.2.6 Схема связи таблиц БД
Рисунок 3.14 - схема связи таблиц базы данных
3.2 Отладка информационных модулей и программы в целом
3.2.1 Обеспечение целостности БД
Целостность базы данных означает особый механизм, способствующий поддержанию непротиворечивых сведений в реляционно-связанных таблицах базы данных.
Ответственность за целостность базы данных, с одной стороны, несут разработчики системы путем тщательного проектирования, программирования и использования специальных средств операционной системы. С другой стороны, поддержку базы данных в рабочем состоянии, создание резервных копий и восстановление базы данных в случае аварии должен осуществлять администратор базы данных.
3.2.2 Отладка программы
В программе 1С предусмотрена функция откладки программ, которая поможет программистам, когда у них что-то не ладится с программой. Здесь можно отследить, как выполняется программа буквально по шагам. При этом программа выполняется в режиме Предприятие.
Синтаксические ошибки обнаруживаются автоматически. Сообщения о найденных ошибках отображаются в нижней части редактора, в небольшом окне. При двойном щелчке на строке с сообщением об ошибке система 1С переключится в редактор, где подсветит строку, в которой эта ошибка обнаружена. Само сообщение описывает ошибку достаточно подробно, чтобы можно было понять причину.
Логические ошибки. Существует несколько способов предотвращения, выявления и устранения логических ошибок. За наиболее часто встречающимися ошибками можно заставить следить саму программу.
При написании кода программы 1С помечает ошибки автоматически. В случае успешной отладке выдается сообщение ошибок не обнаружено.
3.3 Тестирование на контрольном примере
При запуске 1С предлагается ввести логин и пароль (рисунок 3.15). После выбора одной из доступных групп пользователей, вводится пароль и происходит вход в систему.
Рисунок 3.15 -- Окно авторизации доступа
После ввода правильного пароля (123). При входе в систему, пользователь попадает на главную форму «1С: Предприятия 7.7». Главное окно программы имеет меню с командами, панель инструментов в верхней части и строку состояния в нижней. Также на главной форме находится кнопочная панель, содержащая специальные элементы управления.
Рисунок 3.16 - Главное меню программы
Чтобы ввести данные в справочные таблицы нужно воспользоваться соответствующим подпунктом пункта меню «Справочники».
Рисунок 3.17 - выбор оборудования
После ввода данных данные сохраняются автоматически нажатием кнопки. Подобным образом данные заносятся во все справочные таблицы.
Теперь можно вводить данные по конкретному виду оборудования. Для этого надо воспользоваться пунктом «оборудование» и выбрать подподпункт.
Окно «Выбора оборудования» показано на рисунке 3.18
В открывшемся оке нужно ввести данные по конкретном оборудованию, указывая (наименование, единицы измерения и цену).
Рисунок 3.19 - Окно для ввода данных
После вода данных в справочные таблицы необходимо в пункте меню документа выбрать вкладку “Заявка”. С помощью этого документа мы можем выбирать оборудование, которое нам нужно при проектировании сети предприятия.
Рисунок 3.20 - Окно для ввода данных
Также с помощью кнопки “Печать заявки” мы можем просмотреть отчет о полной стоимости необходимого нам оборудования.
Рисунок 3.16 - Окно для ввода данных
Далее, выбираем из главного меню, выбираем вкладку “Журнал Заявок”, где можем полностью просмотреть материал о выбранном оборудовании.
Рисунок 3.17 - “Журнал Заявок”
Наконец, осталось просмотреть отчет по Заявкам с поставщиками на приобретаемое оборудование.
Рисунок 3.18 - “Журнал Заявок”
3.4 Документирование
3.4.1 Инструкция пользователя
3.4.1.2 Запуск и эксплуатация программы
Запуск программы осуществляется, также как и запуск других программных продуктов для операционной системы Windows. Для этого необходимо нажать мышкой два раза по ярлыку программного продукта расположенного на рабочем столе.
Если на рабочем столе нет ярлыка программы, то запуск программы необходимо произвести из проводника операционной системы Windows, куда мы распаковали архив
Запустить на выполнение файл путём двойного нажатия по ярлыку программного продукта расположенного на рабочем столе.
После запуска на экране появится окно с предложением ввести имя пользователя и пароль, если эти данные не ввести или ввести не правильные данные, то программа не откроется.
При первом запуске 1С предлагается создать или выбрать БД . Для этого необходимо на вкладке нажать кнопку “Добавить” или “Изменить”. Откроется окно, где необходимо указать название базы данных и указать путь, где будем сохраняться БД.
Рисунок 3.20 Название БД
Рисунок 3.21 Регистрация БД
Рисунок 3.22 Загрузка в режиме Конфигуратор
После загрузки БД в режиме Конфигуратор откроется окно выбора хранения БД. Так как в созданной папке пока ничего нет то программа 1С спросит в каком формате будет храниться база данных: В файлах DBF или на SQL-Server. Укажите формат "Файлы DBF" и нажмите ОК. Выбираем формат сохранения файла и нажимаем кнопку ОК.
Рисунок 3.23 Выбираем формат хранения базы данных
Запустится конфигуратор. Откройте дерево конфигурации, в котором мы будем работать очень часто. Для этого щелкните меню Конфигурация => Открыть конфигурацию. Появится окно дерева конфигурации. Задайте ему нормальные размеры.
В этом окне представлены все объекты конфигурации, такие как справочники, документы, отчеты и т.д. Для раскрытия какой-то ветки нужно два щелкнуть на плюсике или два раза щелкнуть на ее названии.
Конструкторы предназначены для помощи программисту в выполнении определенных действий. Только что мы увидели конструктор справочников.
Рисунок 3.24 Открываем дерево конфигурации
В 1С есть конструктор документов, конструктор отчетов, конструктор запросов и т.д. Все действия, которые делает конструктор, можно выполнить вручную, но возможно, что с конструктором будет быстрее. Если вам конструктор не нужен (или не нравится), тогда снимите флажок "Использовать конструкторы при создании новых объектов".
Создание «Справочника»
Для создания справочника необходимо установите курсор на строку Справочники и щелкните кнопку Новый. При этом откроется окно Конструктора справочников.
Задайте идентификатор справочника (имя), например, сейчас мы создадим справочник "Оборудование".
Идентификатор справочника очень важен, поскольку он будет использоваться при программировании. Его нельзя будет исправить просто так, поскольку придется также исправить все места в программе, где используется этот справочник. Относитесь к идентификатору справочника очень серьезно. Идентификатор должен быть лаконичным, понятным, отражающим содержимое справочника, например: "Товары" и т.д.
Задайте длину наименования 70 символов. У каждого справочника есть уже заранее заданные два поля "Код" и "Наименование". Вы можете редактировать длину наименования, длину кода, а также тип кода: Числовой/Текстовый.
Рисунок 3.25 Создаем новый справочник
Рисунок 3.26 Задайте длину наименования 70 символов
Инструкция программиста
Программный продукт для расчета сметной стоимости оборудования и материала при проектировании ЛВС поставляется в пакете для установки программы, Используется под управлением операционной системы Windows XP и выше.
Для того чтобы установить программу 1С на ваш компьютер необходимо иметь пакет с программой 1С предприятие версии 7.7. В этом пакете выбираем файл «Setup.exe». Запускаем его, затем программа установки предложит установить ПО в каталог «C:\Program Files\ 1Cv77», в случае если вы согласны установить ПО, то необходимо нажать на значок с изображением компьютора, если не согласны то нажмите на кнопку «Exit setup».
Рисунок 3.27 Установка и настройка 1С
После установки программы 1С на локальном диске появится папка для исполнительного модуля «Расчет сметной стоимости оборудования и материала». Также чтоб программный продукт работал необходимо установить на компьютер Sable-ключ. Послу установки программы необходимо создать на диске С:\ папку “Расчет сети” куда скидываем мы базу данных. После чего необходимо перезагрузить компьютер, чтоб вступили в силу новые параметры. После перезагрузки компьютера необходимо запустить 1С и в кладку добавить указать имя и путь гду у нас находиться папка с БД. Редактирование и коррекция БД необходимо проводить только с помощью 1С предприятие 7.7, так как работа с другими версиями может испортить структуру данных. Так же необходимо не забывать делать резервную копию всей папки, в случае изменений версии программы, или же версии БД.
3.5 Разработка алгоритма метода наискорейшего спуска вниз для лабораторной работы дисциплины «Методы оптимизации»
Наиболее известным среди градиентных методов является метод наискорейшего спуска. Идея этого метода проста: поскольку вектор градиента указывает направление наискорейшего возрастания функции, то минимум следует искать в обратном направлении.
Этот метод работает, как правило, на порядок быстрее методов случайного поиска. Он имеет два параметра - Точность, показывающий, что если изменение оценки за шаг метода меньше чем Точность, то обучение останавливается; Шаг - начальный шаг для оптимизации шага. Заметим, что шаг постоянно изменяется в ходе оптимизации шага.
Остановимся на основных недостатках этого метода. Во-первых, эти методом находится тот минимум, в область притяжения которого попадет начальная точка. Этот минимум может не быть глобальным. Существует несколько способов выхода из этого положения. Наиболее простой и действенный - случайное изменение параметров с дальнейшим повторным обучение методом наискорейшего спуска. Как правило, этот метод позволяет за несколько циклов обучения с последующим случайным изменением параметров найти глобальный минимум.
Вторым серьезным недостатком метода наискорейшего спуска является его чувствительность к форме окрестности минимума. На рис. 6а проиллюстрирована траектория спуска при использовании метода наискорейшего спуска, в случае, если в окрестности минимума линии уровня функции оценки являются кругами (рассматривается двумерный случай). В этом случае минимум достигается за один шаг. На рис. 6б приведена траектория метода наискорейшего спуска в случае эллиптических линий уровня. Видно, что в этой ситуации за один шаг минимум достигается только из точек, расположенных на осях эллипсов. Из любой другой точки спуск будет происходить по ломаной, каждое звено которой ортогонально к соседним звеньям, а длина звеньев убывает. Легко показать, что для точного достижения минимума потребуется бесконечное число шагов метода градиентного спуска. Этот эффект получил название овражного, а методы оптимизации, позволяющие бороться с этим эффектом - антиовражных.
Градиент функции в любой точке показывает направление наибольшего локального увеличения . Поэтому при поиске минимума , следует двигаться в направлении противоположном направлению градиента в данной точке, то есть в направлении наискорейшего спуска.
Итерационная формула процесса наискорейшего спуска имеет вид
,
или
Очевидно, что в зависимости от выбора параметра л траектории спуска будут существенно различаться. При большом значении л траектория спуска будет представлять собой колебательный процесс, а при слишком больших л процесс может расходиться. При выборе малых л траектория спуска будет плавной, но и процесс будет сходиться очень медленно. Обычно л выбирают из условия
,
решая одномерную задачу минимизации с использованием некоторого одномерного метода. В этом случае получаем алгоритм наискорейшего спуска.
Если л определяется в результате одномерной минимизации, то градиент в точке очередного приближения будет ортогонален направлению предыдущего спуска
Вообще говоря, процедура наискорейшего спуска может закончиться в стационарной точке любого типа, в которой . Поэтому следует проверять, не завершился ли алгоритм в седловой точке.
Эффективность алгоритма зависит от вида минимизируемой функции. Алгоритм наискорейшего спуска сойдется за одну итерацию при любом начальном приближении для функции , но сходимость будет очень медленной, например, в случае функции вида . В тех ситуациях, когда линии уровня минимизируемой функции представляет собой прямолинейный или, хуже того, криволинейный "овраг" эффективность алгоритма оказывается очень низкой. Очевидно, что хорошие результаты может давать предварительное масштабирование функций.
Процесс наискорейшего спуска обычно быстро сходится вдали от точки экстремума и медленно в районе экстремума. Поэтому метод наискорейшего спуска нередко используют в комбинации с другими алгоритмами.
Алгоритм метода наискорейшего спуска
При заданной точке x алгоритм наискорейшего спуска заключается в реализации линейного поиска вдоль направления -grad(f(x))/||grad(f(x))|| или, что то же самое, вдоль направления -grad(f(x)).
Начальный этап. Пусть eps > 0 - константа остановки. Выбрать начальную точку x1, положить k=1 и перейти к основному этапу.
Основной этап. Если ||grad(f(x))|| < eps , то остановиться; в противном случае положить dk = -grad(f(x)) и найти lym[k] - оптимальное решение задачи минимизации
а(чл + днь*вл) при днь Ю= 0ю
Положить
x[k+1]=xk+lym[k]*dk,
заменить k на k+1 и повторить основной этап.
Определить координаты точки экстремума функции вида:
f(x1,x2)=5x14+x1*x2+15x22
Начальный интервал [-1;1].
Абсолютная погрешность ?=10-5.
Описание метода наискорейшего спуска
Рассмотрим алгоритм метода наискорейшего спуска:
Задается погрешность измерений e и начальная точка (x1,x2).
Рассчитывается антиградиент di: d[1]:=-f'x1(x1,x2); d[2]:=-f'x2(x1,x2).
Минимизируется функция f(x1+?*d[1], x2+?*d[2]) по параметру ? при помощи одномерного метода (в реализации используется метод золотого сечения).
Рассматривается следующая точка xi+1=xi+?*di.
Если ?xi+1-xi?<e, тогда выход из алгоритма и точка xi+1 - точка минимума, иначе i=i+1 и переходим к пункту 2.
ПРИЛОЖЕНИЕ А
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
const
e=0.00001;
{$R *.dfm}
function f(x1,x2: real): real;
begin
Result:=5*x1*x1*x1*x1+x1*x2+15*x2*x2;
end;
function first_x1(x1,x2:real):real;
begin
first_x1:=20*x1*x1*x1+x2;
end;
function first_x2(x1,x2:real):real;
begin
first_x2:=x1+30*x2;
end;
procedure min_liam(x1,x2,d1,d2: real; var liam: real);
var
kol: integer;
a,b,x,y1,y2: real;
begin
kol:=0;
a:=-1;
b:=1;
x:=0;
// Memo1.Clear;
// Memo1.Lines.Add('x'+#9+'a'+#9+'b'+#9+'f(x)');
// Memo1.Lines.Add('');
// Memo1.Lines.Add('2'+#9+'0'+#9+'2'+#9+FloatToStrF(f1(x),ffGeneral,5,0));
while abs(a-b)>abs(e*x) do
begin
kol:=kol+1;
x:=(a+b)/2;
y1:=f(x1+(x+abs(e*x/2))*d1,x2+(x+abs(e*x/2))*d2);
y2:=f(x1+(x-abs(e*x/2))*d1,x2+(x-abs(e*x/2))*d2);
if y1<=y2 then a:=x;
if y1>y2 then b:=x;
// Memo1.Lines.Add(FloatToStrF(x,ffGeneral,5,0)+#9+FloatToStrF(a,ffGeneral,5,0)+#9+FloatToStrF(b,ffGeneral,5,0)+#9+FloatToStrF(f1(x),ffGeneral,5,0));
end;
liam:=x;
// Memo1.Lines.Add('');
// Memo1.Lines.Add('Количество итераций: '+IntToStr(kol));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
d:array[1..2] of real;
x1,x2,liam,x10,x20: real;
kol:integer;
begin
kol:=0;
x1:=1;
x2:=1;
Memo1.Clear;
Memo1.Lines.Add('x'+#9+'y'+#9+'f(x)');
Memo1.Lines.Add('');
Memo1.Lines.Add(FloatToStrF(x1,ffGeneral,5,0)+#9+#9+FloatToStrF(x2,ffGeneral,5,0)+#9+#9+FloatToStrF(f(x1,x2),ffGeneral,5,0));
Memo1.Lines.Add('');
repeat
kol:=kol+1;
x10:=x1;
x20:=x2;
d[1]:=-first_x1(x1,x2);
d[2]:=-first_x2(x1,x2);
min_liam(x1,x2,d[1],d[2],liam);
x1:=x1+liam*d[1];
x2:=x2+liam*d[2];
Memo1.Lines.Add(FloatToStrF(x1,ffGeneral,5,0)+#9+#9+FloatToStrF(x2,ffGeneral,5,0)+#9+#9+FloatToStrF(f(x1,x2),ffGeneral,5,0));
until (abs(x1-x10)<e) and (abs(x2-x20)<e);
Memo1.Lines.Add('Минимум функции:');
Memo1.Lines.Add(FloatToStrF(x1,ffGeneral,5,0)+#9+#9+FloatToStrF(x2,ffGeneral,5,0)+#9+#9+FloatToStrF(f(x1,x2),ffGeneral,5,0));
Memo1.Lines.Add('Количество шагов:');
Memo1.Lines.Add(InttoStr(kol));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
end;
end.
ПРИЛОЖЕНИЕ Б
Листинг программы
Процедура ОбработкаПроведения()
Перем ТаблицаДокумента;
Перем Товар, Комитент, ДоговорКомиссии;
ФлагНПР=0;
Сч19_6 = СчетПоКоду("19.6");
Сч40 = СчетПоКоду("40");
Сч41_1 = СчетПоКоду("41.1");
Сч41_3 = СчетПоКоду("41.3");
Сч41_2 = СчетПоКоду("41.2");
Сч41_4 = СчетПоКоду("41.4");
Сч42_1 = СчетПоКоду("42");
Сч68_2 = СчетПоКоду("68.2");
Сч19_3 = СчетПоКоду("19.3");
СуммаНДС=0;
СуммаБезНДС=0;
ТаблицаНДС=СоздатьОбъект("ТаблицаЗначений");
ТаблицаНДС.НоваяКолонка("НДС");
ТаблицаНДС.НоваяКолонка("Сумма","Число",15,2);
ТаблицаНДС.НоваяКолонка("Наценка","Число",15,2);
ТаблицаНДС.НоваяКолонка("НПР","Число",15,2);
СписокТоваров = СоздатьОбъект("СписокЗначений");
ВыгрузитьТабличнуюЧасть(СписокТоваров, "Товар");
БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, СписокТоваров, 2);
БухИт.ИспользоватьСубконто(ВидыСубконто.МестаХранения);
БухИт.ВыполнитьЗапрос(,ТекущийДокумент(),"40, 41.1, 41.3, 41.4, 41.5",,,,,"СК");
БухИт004 = СоздатьОбъект("БухгалтерскиеИтоги");
ВыгрузитьТабличнуюЧасть(ТаблицаДокумента, "Товар,Количество,Сумма");
//ТаблицаДокумента.Свернуть("СтрокаДокумента,Товар","Количество,Сумма,ПрихСумма,ПрихНДС");
ТаблицаДокумента.ВыбратьСтроки();
Наценка=0;
НДС_Пров=0;
Пока ТаблицаДокумента.ПолучитьСтроку() = 1 Цикл
Товар = ТаблицаДокумента.Товар;
Если Товар.ТипНоменклатуры.Выбран() = 0 Тогда
Сообщить("Не указан тип номенклатуры для товара: "+Товар, ТаблицаДокумента.НомерСтроки);
СтатусВозврата(0); Возврат;
КонецЕсли;
СчетУчета = "";
Если Товар.ТипНоменклатуры =
Перечисление.ТипыНоменклатуры.Продукция Тогда
СчетУчета = Сч40;
ИначеЕсли Товар.ТипНоменклатуры =
Перечисление.ТипыНоменклатуры.Товар Тогда
Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
СчетУчета = Сч41_3;
ИначеЕсли Товар.ТипТовара =
Перечисление.ТипыТоваров.ПокупныеИзделия Тогда
СчетУчета = Сч41_4;
Иначе //Если Товар.ТипТовара =
Перечисление.ТипыТоваров.Собственный Тогда
СчетУчета = Сч41_1;
КонецЕсли;
КонецЕсли;
Если ПустоеЗначение(СчетУчета) = 1 Тогда //счет учета не выбран
Сообщить("Документ не предназначен для номенклатуры типа: "+Товар.ТипНоменклатуры, ТаблицаДокумента.НомерСтроки);
СтатусВозврата(0); Возврат;
КонецЕсли;
СуммаНаСкладах = 0;
КоличествоНаСкладах = 0;
КоличествоНаСкладе = 0;
Если БухИт.ПолучитьСчет(,СчетУчета) = 1 Тогда
Если БухИт.ПолучитьСубконто(ВидыСубконто.Номенклатура,,Товар) = 1 Тогда
СуммаНаСкладах = БухИт.СКД("С");
КоличествоНаСкладах = БухИт.СКД("К");
Если БухИт.ПолучитьСубконто(ВидыСубконто.МестаХранения,,МестоХранения) = 1 Тогда
КоличествоНаСкладе = БухИт.СКД("К");
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если КоличествоНаСкладе < ТаблицаДокумента.Количество Тогда
Сообщить("На складе "+КоличествоНаСкладе+" "+Товар.ЕдиницаИзмерения+
"из необходимых "+ТаблицаДокумента.Количество+" "+Товар.ЕдиницаИзмерения+" товара "+Товар, ТаблицаДокумента.НомерСтроки);
СтатусВозврата(0); Возврат;
КонецЕсли;
Если ТаблицаДокумента.Количество = КоличествоНаСкладах Тогда
СуммаОтгрузки = СуммаНаСкладах;
Иначе
СуммаОтгрузки =
ТаблицаДокумента.Количество*СуммаНаСкладах/КоличествоНаСклад
КонецЕсли;
//СуммаОтгрузки=ТаблицаДокумента.ПрихСумма-ТаблицаДокумента.ПрихНДС;
//Наценка=ТаблицаДокумента.Сумма-СуммаОтгрузки;
Наценка=ТаблицаДокумента.Сумма*Константа.ПроцентНаценкиРозница/100;
//Если (НДС_Пров <>0) И (СкладПолучатель.ВосстанавливатьНДСвРозницу = Перечисление.Булево.Да) Тогда
// Наценка=Наценка-НДС_Пров;
//КонецЕсли;
//Если (СкладПолучатель.ЕНВД=0) Тогда
// Наценка=Наценка-НДС_Пров;
//КонецЕсли;
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Перемещен товар в розницу";
Операция.НомерЖурнала = "ТВ";
Операция.Кредит.Счет = СчетУчета;
Операция.Кредит.Номенклатура = Товар;
Операция.Кредит.МестаХранения = МестоХранения;
Операция.Количество = ТаблицаДокумента.Количество;
Операция.Сумма = ТаблицаДокумента.Сумма;
Операция.Дебет.Счет = Сч41_2;
Операция.Дебет.Номенклатура=Константа.ТоварРозница;
Операция.Дебет.МестаХранения = СкладПолучатель;
//Если СкладПолучатель.ЕНВД=1 Тогда
//Операция.Дебет.СтавкиНДС=Константа.СтавкаНДСдляЕНВД;
//Иначе
Операция.Дебет.СтавкиНДС=Товар.СтавкаНДС.Получить(ДатаДок);
//КонецЕсли;
СуммаБезНДС=СуммаБезНДС+СуммаОтгрузки;
ТаблицаНДС.НоваяСтрока();
//Если СкладПолучатель.ЕНВД=1 Тогда
//ТаблицаНДС.НДС=Константа.СтавкаНДСдляЕНВД;
//Иначе
ТаблицаНДС.НДС=Товар.СтавкаНДС.Получить(ДатаДок);
//КонецЕсли;
ТаблицаНДС.Сумма=НДС_Пров;
ТаблицаНДС.Наценка=Наценка;
КонецЦикла;
ТаблицаНДС.Свернуть("НДС","Сумма,Наценка");
ТаблицаНДС.ВыбратьСтроки();
Пока ТаблицаНДС.ПолучитьСтроку() = 1 Цикл
Если ТаблицаНДС.Сумма<>0 тогда
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Перемещен НДС в розницу.";
Операция.НомерЖурнала = "РТ";
Операция.Дебет.Счет = Сч41_2;
Операция.Дебет.Номенклатура=Константа.ТоварРозница;
Операция.Дебет.МестаХранения=СкладПолучатель;
Операция.Дебет.СтавкиНДС=ТаблицаНДС.НДС;
//Если ДокументОснование.Выбран()=1 Тогда
//Операция.Кредит.Счет = СчетПоКоду("19.3");
//Операция.Кредит.Контрагенты=ДокументОснование.Контрагент;
//Операция.Кредит.СчетаФактурыПолученные=ДокументОснование;
//Иначе
Операция.Кредит.Счет = Сч68_2;
Операция.Кредит.ВидыПлатежейВБюджет=Перечисление.ВидыПлатежейВБюджет.Налог;
//Конецесли;
Операция.Сумма = ТаблицаНДС.Сумма;
СуммаНДС=СуммаНДС+ТаблицаНДС.Сумма;
Конецесли;
Если ТаблицаНДС.Наценка<>0 Тогда
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Перемещена наценка в розницу";
Операция.НомерЖурнала = "ТВ";
Операция.Кредит.Счет = Сч42_1;
Операция.Кредит.МестаХранения = СкладПолучатель;
Операция.Кредит.СтавкиНДС=ТаблицаНДС.НДС;
//Операция.Кредит.НПРилиНаценка=Перечисление.НПРилиНаценка.Наценка;
Операция.Сумма = ТаблицаНДС.Наценка;
Операция.Дебет.Счет = Сч41_2;
Операция.Дебет.Номенклатура=Константа.ТоварРозница;
Операция.Дебет.МестаХранения = СкладПолучатель;
Операция.Дебет.СтавкиНДС=ТаблицаНДС.НДС;
Конецесли;
КонецЦикла;
Операция.Записать();
КонецПроцедуры
Процедура Сформировать()
если ПустоеЗначение (Поставщик)=1 тогда
ЗАпрос = СоздатьОбъект ("Запрос");
ТекстЗапросаЗаявки =
"//{{Запрос (Сформировать)
|Период с ДатаНач по ДатаКон;
|ОбрабатыватьДокументы ВСЕ;
|Обрабатывать НеПомеченныеНаУдаление;
|НомерДок = Документ.Заявка.НомерДок;
|Сотрудник = Документ.Заявка.Сотрудник;
|Товар = Документ.Заявка.Товар;
|Кол = Документ.Заявка.Количество;
|Сумма = Документ.Заявка.Сумма;
|ДатаДок = Документ.Заявка.ДатаДок;
|Поставщик1 = Документ.Заявка.Поставщик;
//|Условие(Поставщик=Поставщик1);
|Группировка Товар; "//}}ЗАПРОС
Запрос.Выполнить(ТекстЗапросаЗаявки) ;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
ИтогоСтрок = 0;
ИтогоСумма = 0;
Ном=1;
Пока Запрос.Группировка("Товар") = 1 Цикл
Таб.ВывестиСекцию("Данные");
Ном=Ном+1;
ИтогоСтрок = ИтогоСтрок + 1;
ИтогоСумма = ИтогоСумма + Запрос.Сумма;
КонецЦикла;
Таб.ВывестиСекцию("Итог");
Таб.ТолькоПросмотр(1);
Таб.Показать("","");
иначе
ЗАпрос = СоздатьОбъект("Запрос");
ТекстЗапросаЗаявки =
"//{{Запрос(Сформировать)
|Период с ДатаНач по ДатаКон;
|ОбрабатыватьДокументы ВСЕ;
|Обрабатывать НеПомеченныеНаУдаление;
|НомерДок = Документ.Заявка.НомерДок;
|Сотрудник = Документ.Заявка.Сотрудник;
|Товар = Документ.Заявка.Товар;
|Кол = Документ.Заявка.Количество;
|Сумма = Документ.Заявка.Сумма;
|ДатаДок = Документ.Заявка.ДатаДок;
|Поставщик1 = Документ.Заявка.Поставщик;
|Условие(Поставщик=Поставщик1);
|Группировка Товар; "//}}ЗАПРОС
;
Запрос.Выполнить(ТекстЗапросаЗаявки) ;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
ИтогоСтрок = 0;
ИтогоСумма = 0;
Ном=1;
Пока Запрос.Группировка("Товар") = 1 Цикл
Таб.ВывестиСекцию("Данные");
Ном=Ном+1;
ИтогоСтрок = ИтогоСтрок + 1;
ИтогоСумма = ИтогоСумма + Запрос.Сумма;
КонецЦикла;
Таб.ВывестиСекцию("Итог");
Таб.ТолькоПросмотр(1);
Таб.Показать("","");
конецесли;
КонецПроцедуры
Процедура Очистка(номер)
Если номер = 1 тогда
поставщик = "";
конецесли
КонецПроцедуры
Размещено на Allbest.ru
Подобные документы
Типовая структура информационно-вычислительной сети. Функции, процедуры, механизмы и средства защиты ИВС. Технология виртуальных частных сетей. Разработка алгоритмов управления интенсивностью информационного обмена удаленных сегментов распределенной ИВС.
дипломная работа [2,1 M], добавлен 21.12.2012Анализ современных информационно-вычислительных сетей предприятия. Построение модели незащищенной информационно-вычислительной сети предприятия. Виды удаленных и локальные атак. Анализ сетевого трафика. Методы защиты информационно-вычислительной сети.
курсовая работа [640,2 K], добавлен 26.06.2011Настройка телекоммуникационного оборудования локальной вычислительной сети. Выбор архитектуры сети. Сервисы конфигурации сервера. Расчет кабеля, подбор оборудования и программного обеспечения. Описание физической и логической схем вычислительной сети.
курсовая работа [1,3 M], добавлен 22.12.2014Способы связи разрозненных компьютеров в сеть. Основные принципы организации локальной вычислительной сети (ЛВС). Разработка и проектирование локальной вычислительной сети на предприятии. Описание выбранной топологии, технологии, стандарта и оборудования.
дипломная работа [2,3 M], добавлен 19.06.2013Характеристика технико-экономического обоснования разработки вычислительной сети. Изучение вопросов реализации системы документооборота, создания локальной вычислительной сети, позволяющей пользователям получать доступ к сети передачи данных Интернет.
курсовая работа [471,8 K], добавлен 08.12.2011Проектирование локальной вычислительной сети для предприятия c главным офисом в центре города и двумя филиалами на удалении не более 1,5 км. Выбор топологии сети и основного оборудования. Программное обеспечение для клиент-серверного взаимодействия сети.
курсовая работа [3,4 M], добавлен 27.02.2015Понятие и основные характеристики локальной вычислительной сети. Описание типологии "Шина", "Кольцо", "Звезда". Изучение этапов проектирования сети. Анализ трафика, создание виртуальных локальных компьютерных сетей. Оценка общих экономических затрат.
дипломная работа [990,2 K], добавлен 01.07.2015Выбор технологий локальной вычислительной сети. Выход в Интернет. Схема кабельных укладок и расчет длин кабелей. Логическая топология и масштабирование сети. Спецификация используемого оборудования с указанием стоимости и расчет затрат на оборудование.
курсовая работа [599,6 K], добавлен 27.11.2014Организационная структура Центра службы занятости. Выбор конфигурации вычислительной сети, системы электронного документооборота. Проектирование структурной схемы вычислительной сети Центра службы занятости, схема размещения сетевой инфраструктуры.
курсовая работа [3,0 M], добавлен 22.07.2011Нормативные документы по разработке серверной комнаты. Схема локальной вычислительной сети колледжа. Размещение серверного помещения и его недостатки. Описание существующего оборудования и подбор недостающего. Расчет себестоимости создания проекта.
дипломная работа [4,7 M], добавлен 17.03.2013