Макрос

Автор Влад, 27 июня 2014, 17:27

Влад

В общем вот задание "Для 6 хозяйств известны общий обьем валовой продукции (ден.ед) и площадь сельскохозяйственных угодий (га.). Определите средний выход валовой продукции на 100 га сельскохозугодий для каждого хозяйства и по всей групе хозяйств в  целом."

Вот есть некое предисловие перед заданием:
Public Sub Расчет наибольшего ()
Dim Пллощадь(6) As Integer, max Площадь As Integer, I As
Integer, N As Integer
For i = 1 to 6
Площадь (I )= Cells(i+1, 2)
Next i
max Площадь = Площадь(1)
N=1
For i = 2 to 6
If Площадь(i)>Max площадь then
Max Площадь  = Площадь(i)
N=i
End If
Next I
Range("A9") = "Наибольшая площадь сельхозугодий в хозяйстве"
& Cells(n+1,1) & " равна" & max Площадь & "га".
End Sub
Public Sub Урожайность()
Dim Площадь(6) As Single, Валовый сбор(6) As Single, Урожайность(6) As Single, общая площадь As Single
Общая площадь=0
Ввод данных и расчеты
For i=1 to 6
Площадь(i) = InputBox (Введите площадь & i & й-культуры:)
Урожайность(i) = InputBox (Введите валовый сбор для  & i & культуры)
Урожайсноть(i) = Валовый сбор(i)/Площадь(i)
Общая площадь = Общая площадь + Площадь (i)
Next i
Вывод рещультатов
Range(A1) = "№"
Range(B1) = "Посевная площадь, га"
Range(C1) = " Валовой сбор, ц"
Range(D1) = "Средняя урожайность"
For i = 1 to 6
Cells(i+1,1) = i
Cells(i+1,2) = площадь(i)
Cells(i+1,3) = Валовый сбор(i)
Cells(i+1,4) = Урожайсноть(i)
Next i
Range(A9) = "Общая площадь, га"
Range(C9) = "ОбщаяПлощадь"
End Sub

[свернуть]
И вот вторая приписка:
Public Sub Расчет наибольшего ()
Dim Пллощадь(6) As Integer, max Площадь As Integer, I As
Integer, N As Integer
For i = 1 to 6
Площадь (I )= Cells(i+1, 2)
Next i
max Площадь = Площадь(1)
N=1
For i = 2 to 6
If Площадь(i)>Max площадь then
Max Площадь  = Площадь(i)
N=i
End If
Next I
Range("A9") = "Наибольшая площадь сельхозугодий в хозяйстве"
& Cells(n+1,1) & " равна" & max Площадь & "га".
End Sub

[свернуть]

И вот файл с данными с которыми нужно работать.

[вложение удалено администратором]

Администратор

Влад, в файле нужно ещё указать объём валовой продукции, т.к. по условию задачи он известен.

Влад

Это должно быть в файле? Как я понимаю в приписке которую я наводил там просят ввести нас, как пользователя данные недостающие в файле, или я не прав? И они все таки долэжны быть изначально в файле?

Влад

Вот эти 2 строки:
Площадь(i) = InputBox (Введите площадь & i & й-культуры:)
Урожайность(i) = InputBox (Введите валовый сбор для  & i & культуры)

Администратор

Влад, можно без файла сделать - пользователь будет вручную вводить данные.
А как рассчитывается вот этот пункт:?
Определите средний выход валовой продукции на 100 га сельскохозугодий для каждого хозяйства

Я спрашиваю не про программирование, а вообще, как это рассчитывается?

Влад

Мне кажеться нужно поделить всю площадь на сотни и посчитать ВВП на них.

Администратор

Влад, в макросе, который находится ниже, могут быть неточности в расчётах - подкорректируйте сами.
Для этого макроса не нужны данные в Excel-файле - макрос запускайте на пустом листе.

Макрос:
Public Sub СредняяВП()

    Dim ВП(6) As Single, Площадь(6) As Single, СредняяВП(6) As Single
    Dim ОбщаяВП As Single
    Dim i As Long
   
   
    'Ввод пользователем данных по хозяйству.
    'Расчёты по заданию.
    For i = 1 To 6 Step 1
        ВП(i) = InputBox("Введите общий обьем валовой продукции (ден. ед) " & i & _
                "-ого хозяйства:")
        Площадь(i) = InputBox("Введите площадь сельскохозяйственных угодий (га.) " & i & _
                    "-ого хозяйства:")
        'Определите средний выход валовой продукции на 100 га сельскохозугодий
            'для каждого хозяйства
        'ВП(i) / Площадь(i) - это ВП с 1 га.
        'ВП(i) / Площадь(i) * 100 - это ВП со 100 га.
        СредняяВП(i) = ВП(i) / Площадь(i) * 100
        '... и по всей групе хозяйств в  целом."
        ОбщаяВП = ОбщаяВП + СредняяВП(i)
    Next i
   
    'Вывод исходных данных и результатов в Excel.
   
    'Формирование шапки таблицы.
    Range("A1") = "№"
    Range("B1") = "Общий обьем валовой продукции, ден. ед."
    Range("C1") = "Площадь сельскохозяйственных угодий, га."
    Range("D1") = "Средний выход валовой продукции на 100 га сельскохозугодий"
   
    'Вывод исходных данных и результатов.
    For i = 1 To 6 Step 1
        Cells(i + 1, 1) = i
        Cells(i + 1, 2) = ВП(i)
        Cells(i + 1, 3) = Площадь(i)
        Cells(i + 1, 4) = СредняяВП(i)
    Next i
   
    Range("A9") = "Средний выход валовой продукции на 100 га сельскохозугодий " & _
                    "по всей групе хозяйств в  целом."
    Range("C9") = ОбщаяВП
   
End Sub
[свернуть]

Влад

Большое Вам спасибо!