Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB-2012 / 1-семестр / Методика / Lab10-(тип-файлы).doc
Скачиваний:
10
Добавлен:
26.03.2015
Размер:
804.86 Кб
Скачать

Пример решения задачи Постановка задачи

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

  • норма затрат стали на единицу продукции i-го вида (в килограммах);

  • плановое задание на выпуск i-го вида продукции (в штуках).

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

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

Потребностьі = Нормаі * Количествоі

где Нормаі - затраты стали на изготовление одного продукта і-го вида;

Количествоі –план выпуска продуктов і-го вида;

n –количество видов продукции.

Необходимо определить максимальное значение величин Потребностьі , если і=1,2,…, n.

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

Решение задачи имеет три основных этапа:

  1. Создание файла данных.

  2. Отображение содержимого файла.

  3. Вычисление максимальной потребности.

Упрощённая схема алгоритма представлена на рис. 1.1.

На этапе «Создания файла данных» вводят данные по каждому виду продукции и сохраняют на диске.

На этапе «Отображение содержимого файла» осуществляется чтение из файла данных по каждому виду продукции и вывод их на форму

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

Структура данных

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

  • Наименование – строка символов (не более 7 символов, имя Name);

  • Норма – дробное число (тип Single, имя Norma);

  • Количество – целое число (имя Kol).

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

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

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

Рис. 1.1. Упрощенная система алгоритма

Имя файла - последовательность символов вводится в текстовое поле с именем Тext1.text.

Для определения количества записей в файле перед началом чтения из него используется переменная Kol_zap типа Integer.

При поиске вида продукции с максимальной затратой стали используется переменная типа Single MaxPotr и переменная типа Integer іMax, в которой сохраняется номер записи с соответствующими данными. Используемые переменные представлены в табл. 9.1.

Таблица 9.1. Используемые переменные

Реквизиты

Имя

Назначение

Имя файла

Text1.text

Имя файла на диске для хранения данных по всем видам продукции

Запись

Zap

Тип данных, которые сохраняются в файле

Сведения

Sved

Переменная типа Zap

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

Name

Наименование вида продукции, поле в типе данных пользователя Zap

Норма

Norma

Норма затрат стали на выбор одного вида, поле в типе данных пользователя Zap

Количество

Kol

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

Потребность

Potr

Потребность стали на один вид продукции

Мах Потребность

МахPotr

Максимальная потребность стали на один вид продукции

іМах

iМах

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

Количество записей

Kol_zap

Количество записей в файле

Интерфейс с пользователем.

Общая величина, для всех трёх этапов решения задачи - имя файла. Его вводят в текстовое поле на главной форме «Потребность в стали» (рис. 1.2.)

Рис. 1.2. Главная форма приложения

Выполнение каждого этапа начинается после нажатия соответствующей кнопки на главной форме. Этап создания файла реализуется путём нажатия на кнопку «Создание», при этом появляется форма «Вид продукции» (рис. 1.3.)

Рис. 1.3. Форма «Вид продукции»

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

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

Рис. 1.4. Форма «Содержимое файла»

Третий этап выполняется нажатием кнопки «Максимальная потребность» при этом на соответствующую форму будет выведена информация о виде продукции с максимальной затратой стали (рис. 1.5.) данные об изделии выводятся в столбик.

Рис. 1.5. Форма «Максимальная потребность»

Код проекта

Общие для всего приложения величины описывают в отдельном модуле «Общие описания». Он содержит следующие операторы:

Соседние файлы в папке Методика