lapulechka
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Исходные данные о продукции: шифр, наименование, план выпуска по годам пятилетия, выполнение плана в процентах за каждый год пятилетия. Число видов продукции не определено. Записать данные в файл. Используя данные в файле, найти продукцию с максимальным процентом выполнения по ней пятилетнего плана. Private Sub mnuVvod_Click() Open CurDir$ & "\produkt.dat" For Random As #1 Len = Len(pr) Do pr.shifr = InputBox("Введите шифр продукции") pr.name = InputBox("Введите название продукции") For i = 1 To 5 pr.pl(i) = InputBox("Введите план за " & i & " год") Next i For i = 1 To 5 pr.vp(i) = InputBox("Введите выполнение плана в % за " & i & " год") Next i Put #1, , pr Loop Until MsgBox("Продолжить ввод данных ?", 36) = vbNo Close #1 End Sub Процедура решения задачи: Private Sub mnuObrab_Click() Dim Mas!(), max!, sv!, sp!, i%, j%, M!(5) Open CurDir$ & "\produkt.dat" For Random As #1 Len = Len(pr) kolzap = LOF(1) \ Len(pr) ReDim Mas(1 To kolzap) fg.Clear: Text1.Text = "" fg.Cols = 13: fg.Rows = 16 sv = 0: sp = 0 For i = 1 To kolzap Get #1, , pr For j = 1 To 5 M(j) = pr.vp(j) * pr.pl(j) / 100 sv = sv + M(j) sp = sp + pr.pl(j) Next j Mas(i) = sv / sp fg.TextMatrix(i, 0) = pr.name fg.TextMatrix(i, 1) = Mas(i) Next i max = Mas(1): j = 1 For i = 2 To kolzap If Mas(i) > max Then max = Mas(i) j = i End If Next i Seek #1, j Get #1, , pr Text1.Text = " Продукция с макс. процентом выполнения плана за 5 лет: " & _ pr.name & vbCrLf & _ " Ее процент выполнения плана за 5 лет = " & Format(max, "Percent") Close #1 End Sub Процедура просмотра хранящихся в файле данных: Private Sub mnuView_Click() Dim i%, j% Open CurDir$ & "\produkt.dat" For Random As #1 Len = Len(pr) kolzap = LOF(1) \ Len(pr) fg.Cols = 13: fg.Rows = 16 For i = 0 To 12 fg.ColWidth(i) = fg.Width / 13 Next i fg.Clear fg.FormatString = "^ № р/р |^ Шифр |< Наименование |^ PL1 |^ PL2 “ & _ “|^ PL3 |^ PL4 |^ PL5 |^ VP!% |^ VP2% |^ VP3% |^ VP4% |^ VP5% " For i = 1 To kolzap Get #1, , pr fg.TextMatrix(i, 0) = i fg.TextMatrix(i, 1) = pr.shifr fg.TextMatrix(i, 2) = pr.name For j = 1 To 5 fg.TextMatrix(i, j + 2) = pr.pl(j) fg.TextMatrix(i, j + 7) = pr.vp(j) Next j Next i Close #1 End Sub | Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 17:51 27-05-2007 | Исправлено: lapulechka, 17:53 27-05-2007 |
|