Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

VB-2012 / 2-cеместр / Дневники / Практики-2011 / Практ1-Использ-файлов-в-реш-задач

.doc
Скачиваний:
9
Добавлен:
26.03.2015
Размер:
33.28 Кб
Скачать

ИСПОЛЬЗОВАНИЕ ФАЙЛОВ В РЕШЕНИЕ ЗАДАЧ

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

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

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

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

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

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

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

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

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

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

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

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

Программная реализация

Public Type zap 'Тип данных пользователя. Определен в модуле

Name As String * 10

Norma As Single

Kol As Integer

End Type

Public sved As zap 'Переменная типа данных пользователя

Public i As Integer 'Счетчик записей

Private Sub Command1_Click() ' Кнопка Пополнение

Open Text1 For Random As #1 Len = Len(sved) 'oткрытие файла

i = LOF(1) / Len(sved) + 1 ' номер первой свободной записи

Form2.Show

End Sub

===========================================================

Private Sub Command1_Click() ' Занесение данных в файл работа с Form2

sved.Name = Text1.Text 'Данные по виду продукции

sved.Norma = CSng(Text2.Text)

sved.Kol = CInt(Text3.Text)

Put #1, i, sved 'Запись в файл

i = i + 1

Text1.Text = "" 'Очистка рабочих полей

Text2.Text = "0"

Text3.Text = "0"

End Sub

Private Sub Form_Unload(Cancel As Integer) ' Закрытие файла по закрытию Form2

Close #1

End Sub

============================================================

Private Sub Command2_Click() ' Кнопка Просмотр - Вывод содержимого файла

Dim kol_zap As Integer

Open Text1 For Random As #1 Len = Len(sved) 'Открытие файла

kol_zap = LOF(1) / Len(sved) 'Kоличествo записей файла

Print "Содержимое файла " + Text1.Text

For i = 1 To kol_zap

Get #1, i, sved 'Чтение из файла

Print " ", sved.Name, sved.Norma, sved.Kol 'Печать на форму

Next i

Close #1 'Закрытие файла

End Sub

Private Sub Command3_Click() ' Кнопка Поиск - Вычисление максимальной потребности

Dim Potr, MaxPotr As Single

Dim imax As Integer

Dim kol_zap As Integer

Open Form1.Text1 For Random As #1 Len = Len(sved)

i = 1

Get #1, i, sved

'Вычисление потребности в стали для первого изделия

Potr = sved.Norma * sved.Kol

MaxPotr = Potr

imax = i

kol_zap = LOF(1) / Len(sved)

For i = 2 To kol_zap 'Нахождение максимума

Get #1, i, sved

Potr = sved.Norma * sved.Kol

If Potr > MaxPotr Then

MaxPotr = Potr

imax = i

End If

Next i

Get #1, imax, sved 'Чтение записи с максимальной потребностью

'Отображение результирующей информации

Print "Изделие с максимальной потребностью в стали"

Print Tab(3), "Наименование"; Tab(33); sved.Name

Print Tab(3), "Потребность"; Tab(33); MaxPotr

Close #1

End Sub

Private Sub Form_Unload(Cancel As Integer) ' Закрытие файла по закрытию Form1

Close #1

End Sub