- •5. Проектирование разветвляющихся вычислительных процессов
- •5.1. Условный оператор
- •5.2. Проектирование приложения, реализующего разветвляющийся вычислительный процесс
- •Используемые переменные
- •5.2.5. Интерфейс с пользователем
- •5.2.6. Код программы
- •5.2.7. Реализация проекта
- •5.2.8. Анализ проекта
- •5.2.9. Выполнение программы и анализ полученных результатов
- •5.4. Пример использования оператора выбора
- •6. Проектирование приложений с циклами
- •6.1. Назначение операторов цикла
- •6.2. Условные циклы
- •6.3. Проектирование приложения на базе условного цикла с верхним окончанием
- •Используемые переменные
- •6.3.5. Интерфейс с пользователем
- •6.3.6. Код программы
- •6.3.7. Анализ проекта
- •6.3.8. Выполнение программы и анализ полученных результатов
- •6.4. Проектирование приложения с использованием условного цикла с нижним окончанием
- •Используемые переменные
- •6.4.5. Интерфейс с пользователем
- •6.4.6. Код программы
- •6.4.7. Анализ проекта
- •6.4.8. Выполнение программы и анализ полученных результатов
- •Планируемые расходы на ремонт офиса
- •6.5. Цикл со счетчиком
- •6.6. Проектирование приложения с использованием цикла со счетчиком
- •6.6.7. Реализация проекта
- •6.6.8. Анализ проекта
- •6.6.9. Выполнение программы и анализ полученных результатов
- •Остаток товаров на 17.09.01
- •7. Массивы данных
- •7.1. Общие сведения о сложных типах
- •Стоимость товаров
- •7.2. Описание и обращение к массивам
- •7.3. Динамические массивы
- •7.4. Использование массивов при решении экономической задачи
- •Используемые данные
- •7.4.5. Интерфейс с пользователем
- •7.4.6. Код программы
- •7.4.7. Реализация проекта
- •7.4.8. Анализ проекта
- •7.4.9. Выполнение программы и анализ полученных результатов
- •Прайс-лист
- •8. Массивы элементов управления
- •8.1. Назначение и создание массивов элементов управления
- •"Группа переключателей"
- •8.2.4. Структура данных
- •Используемые данные
- •8.2.5. Интерфейс с пользователем
- •8.2.6. Код программы
- •8.2.7. Реализация проекта
- •8.2.8. Анализ проекта
- •8.2.9. Выполнение программы и анализ полученных результатов
- •9. Пользовательский тип данных
- •9.1. Определение и обращение
- •9.2. Оператор присоединения With
- •10. Файлы
- •10.1. Назначение файлов
- •10.2. Операции с файлами
- •10.3. Режимы доступа
- •10.4. Файлы с произвольным доступом
- •10.5. Проектирование приложения с файлами
- •10.5.1. Постановка задачи
- •10.5.2. Экономико-математическая модель
- •10.5.3. Алгоритм решения задачи
- •10.5.4. Структура данных
- •10.5.5. Интерфейс с пользователем
- •10.5.6. Код проекта
- •10.5.7. Реализация проекта
- •10.5.8. Анализ проекта
- •9.5.9. Выполнение программы и анализ полученных результатов
- •Данные по заказу на крепежные изделия
- •11. Процедуры и функции
- •11.1. Назначение процедур и их виды
- •11.2. Описание процедур
- •11.3 Вызов процедуры
- •11.4. Функции
- •11.5. Использование процедур и функций при решении экономической задачи
- •11.5.1. Код проекта
- •11.5.2. Реализация проекта
10.5. Проектирование приложения с файлами
10.5.1. Постановка задачи
Машиностроительное предприятие выпускают несколько видов продукции, в которых в основном используется сталь.
Определить вид продукции, по которому потребуется максимальный расход стали, если известны:
норма расхода стали на изготовление единицы продукции i-го вида, кг;
плановое задание на выпуск i-го вида продукции, шт.
10.5.2. Экономико-математическая модель
Потребность в стали на изделия i-го вида определяется по формуле:
Потребностьі = Нормаі * Количествоі,
где Нормаі – расход стали на изготовление одного изделия i-го вида;
Количествоі – план выпуска изделий i-го вида;
i = 1, 2,…, n;
n – количество видов продукции.
Требуется определить максимальное значение величин Потребностьі, і=1, 2, ..., n.
10.5.3. Алгоритм решения задачи
Решение задачи состоит из следующих трех основных этапов
1. Создание файла.
2. Вывод файла.
3. Максимальная потребность.
Укрупненная схема алгоритма представлена на рис. 10.1.
Рис. 10.1.Укрупненная схема алгоритма
На этапе “Создание файла” вводятся данные по каждому виду продукции и сохраняются на диске. Схема алгоритма этого этапапредставлена на рис. 10.2.
Рис. 10.2. Схема алгоритма этапа “Создание файла”
На этапе “Вывод файла” осуществляется чтение данных из файла по каждому виду продукции и вывод этих данных на форму. Схема алгоритма этого этапа представлена на рис. 10.3.
Рис. 10.3. Схема алгоритма этапа “Вывод файла”
На этапе “Максимальная потребность” производится чтение данных о первом виде продукции из файла, вычисляется потребность стали на этот вид и предполагается, что расход стали на первый вид продукции будет максимальным. Затем это предположение проверяется путем сравнения с потребностями в стали на другие виды продукции. При этом запоминается номер записи в файле (iМах), в которой находятся данные с максимальной потребностью. Эти данные после полного просмотра файла выводятся на пустую форму. Алгоритм поиска построен в предположении, что в файле имеется не менее двух записей. Схема алгоритма этого этапа представлена на рис. 10.4.
Рис. 10.4. Схема алгоритма этапа “Максимальная потребность”
10.5.4. Структура данных
Для хранения данных о видах продукции на диске в приложении используется файл. Каждый вид продукции характеризуется следующими реквизитами:
Наименование – строка символов (максимум 7 символов, имеет имя strНаименование);
Норма – дробное число (тип Single, имеет имя sngНорма);
Количество – целое число (имеет имя intКоличество);
Эти простые переменные относятся к одному виду продукции, поэтому объединяются в пользовательский тип данных Запись. Для выполнения действий с данными типа Запись в программе используется переменная пользовательского типа udtСведения, которая состоит из перечисленных выше трех полей. Эта переменная используется для записи данных в файл и чтения из него.
Величина Потребность (число дробного типа, имя sngПотребность) хотя и относится к каждому виду продукции, но в файл не помещается, поскольку является вычисляемой и в случае необходимости может быть определена каждый раз.
Переменная udtСведения используется в разных частях приложения. Поэтому она, а также тип Запись, на основе которого определяется эта переменная, описываются в отдельном модуле общих описаний с атрибутом Public (общедоступный).
Там же описывается переменная i целого типа, определяющая номер изделия. Она будет использоваться в кодах различных форм.
Имя файла представляет собой последовательность символов и вводится в текстовом поле, поэтому имеет имя txtИмя_файла.
Для определения количества записей в файле перед началом чтения из него используется переменная intКол_зап. Выбран тип Integer, поскольку предполагается, что в файле не более 32 тыс. записей.
При поиске вида продукции с максимальным расходом стали используется переменная типа sngMaxПотребность и переменная целого типа iMax, в которой хранится номер записи с соответствующими данными.
Используемые в приложении данные представлены в табл. 10.1.
Таблица 10.1
Используемые данные
Реквизит |
Имя |
Назначение |
Имя файла |
txtИмя_файла |
Имя файла на диске для хранения данных по всем видам продукции |
Запись |
Запись |
Тип данных, хранящихся в файле |
Сведения |
udtСведения |
Переменная типа Запись |
Наименование |
strНаименование |
Наименование вида продукции, поле в пользова-тельском типе Запись |
Норма |
sngНорма |
Норма расхода стали на изделие одного вида, поле в пользовательском типе Запись |
Количество |
intКоличество |
План выпуска изделий одного вида, поле в пользовательском типе Запись |
Потребность |
sngПотребность |
Потребность в стали на один вид продукции |
МахПотребность |
sngMaxПотребность |
Максимальная потребность на один вид продукции |
iMax |
iMax |
Номер записи, в которой хранятся данные по виду продукции с максимальным расходом стали |
Кол. зап. |
intКол_зап |
Количество записей в файле |