Задание на фото Номер 13 На лакокрасочном производсиве выпускаются продукты семи наименований. В каждое изделие входят до трех видов различных по объему(в литрах) компонентов. Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран: исходные данные в виде таблицы, где перечислены наименования изделий, объем компонентов, цена каждой компоненты; объем каждого вида продукта; название самого дорогого вида продукта и его цену
Для решения данной задачи на языке VBA, нам понадобится создать процедуру, которая будет выполнять следующие шаги:
1. Создать таблицу для ввода исходных данных в ячейках A1:E8. В этой таблице будут содержаться следующие столбцы:
- Наименование изделия (столбец A)
- Объем компонента 1 (столбец B)
- Цена компонента 1 (столбец C)
- Объем компонента 2 (столбец D)
- Цена компонента 2 (столбец E)
2. Запросить у пользователя ввод исходных данных и заполнить таблицу из предыдущего шага.
3. Создать переменные для хранения информации о объеме каждого вида продукта, названии самого дорогого вида продукта и его цене.
4. Произвести расчеты:
- Пройти в цикле по каждой строке таблицы (используя переменную-счетчик i от 2 до 8).
- Для каждой строки посчитать объем каждого вида продукта (суммированием объемов компонентов) и сохранить эту информацию в соответствующей переменной.
- Сравнить цены каждого вида продукта и найти самый дорогой.
- Сохранить название самого дорогого вида продукта и его цену в соответствующие переменные.
5. Вывести исходные данные в виде таблицы, где перечислены наименования изделий, объем компонентов и цены каждой компоненты, используя MsgBox.
6. Вывести на экран объем каждого вида продукта, название самого дорогого вида продукта и его цену, используя MsgBox.
Вот как будет выглядеть код программы на языке VBA:
```vba
Sub CalculateProducts()
'Шаг 1: Создать таблицу для ввода исходных данных
Range("A1:E8").Value = _
Array("Наименование", "Объем компонента 1", "Цена компонента 1", "Объем компонента 2", "Цена компонента 2")
'Шаг 2: Запросить у пользователя ввод исходных данных и заполнить таблицу
For i = 2 To 8
Cells(i, 1).Value = InputBox("Введите наименование изделия " & i - 1)
Cells(i, 2).Value = InputBox("Введите объем компонента 1 для изделия " & i - 1)
Cells(i, 3).Value = InputBox("Введите цену компонента 1 для изделия " & i - 1)
Cells(i, 4).Value = InputBox("Введите объем компонента 2 для изделия " & i - 1)
Cells(i, 5).Value = InputBox("Введите цену компонента 2 для изделия " & i - 1)
Next i
'Шаг 3: Создать переменные для хранения информации
Dim volume1 As Double
Dim volume2 As Double
Dim volume3 As Double
Dim volume4 As Double
Dim volume5 As Double
Dim volume6 As Double
Dim volume7 As Double
Dim maxProduct As String
Dim maxPrice As Double
'Шаг 4: Произвести расчеты
For i = 2 To 8
'Посчитать объем каждого вида продукта
volume1 = volume1 + Cells(i, 2).Value
volume2 = volume2 + Cells(i, 4).Value
'...
volume7 = volume7 + Cells(i, 6).Value
'Сравнить цены каждого вида продукта и найти самый дорогой
If Cells(i, 3).Value > maxPrice Then
maxProduct = Cells(i, 1).Value
maxPrice = Cells(i, 3).Value
End If
If Cells(i, 5).Value > maxPrice Then
maxProduct = Cells(i, 1).Value
maxPrice = Cells(i, 5).Value
End If
Next i
'Шаг 5: Вывести исходные данные в виде таблицы
Dim dataOutput As String
dataOutput = "Исходные данные:" & vbCrLf & vbCrLf & "Наименование | Объем компонента 1 | Цена компонента 1 | Объем компонента 2 | Цена компонента 2" & vbCrLf
For i = 2 To 8
dataOutput = dataOutput & Cells(i, 1).Value & " | " & Cells(i, 2).Value & " | " & _
Cells(i, 3).Value & " | " & Cells(i, 4).Value & " | " & Cells(i, 5).Value & vbCrLf
Next i
Чтобы запустить программу, вставьте данный код в модуль VBA в Excel. Затем запустите процедуру CalculateProducts. После этого программа запросит вас ввести исходные данные, и выведет результаты в виде таблиц и сообщений на экран.
1. Создать таблицу для ввода исходных данных в ячейках A1:E8. В этой таблице будут содержаться следующие столбцы:
- Наименование изделия (столбец A)
- Объем компонента 1 (столбец B)
- Цена компонента 1 (столбец C)
- Объем компонента 2 (столбец D)
- Цена компонента 2 (столбец E)
2. Запросить у пользователя ввод исходных данных и заполнить таблицу из предыдущего шага.
3. Создать переменные для хранения информации о объеме каждого вида продукта, названии самого дорогого вида продукта и его цене.
4. Произвести расчеты:
- Пройти в цикле по каждой строке таблицы (используя переменную-счетчик i от 2 до 8).
- Для каждой строки посчитать объем каждого вида продукта (суммированием объемов компонентов) и сохранить эту информацию в соответствующей переменной.
- Сравнить цены каждого вида продукта и найти самый дорогой.
- Сохранить название самого дорогого вида продукта и его цену в соответствующие переменные.
5. Вывести исходные данные в виде таблицы, где перечислены наименования изделий, объем компонентов и цены каждой компоненты, используя MsgBox.
6. Вывести на экран объем каждого вида продукта, название самого дорогого вида продукта и его цену, используя MsgBox.
Вот как будет выглядеть код программы на языке VBA:
```vba
Sub CalculateProducts()
'Шаг 1: Создать таблицу для ввода исходных данных
Range("A1:E8").Value = _
Array("Наименование", "Объем компонента 1", "Цена компонента 1", "Объем компонента 2", "Цена компонента 2")
'Шаг 2: Запросить у пользователя ввод исходных данных и заполнить таблицу
For i = 2 To 8
Cells(i, 1).Value = InputBox("Введите наименование изделия " & i - 1)
Cells(i, 2).Value = InputBox("Введите объем компонента 1 для изделия " & i - 1)
Cells(i, 3).Value = InputBox("Введите цену компонента 1 для изделия " & i - 1)
Cells(i, 4).Value = InputBox("Введите объем компонента 2 для изделия " & i - 1)
Cells(i, 5).Value = InputBox("Введите цену компонента 2 для изделия " & i - 1)
Next i
'Шаг 3: Создать переменные для хранения информации
Dim volume1 As Double
Dim volume2 As Double
Dim volume3 As Double
Dim volume4 As Double
Dim volume5 As Double
Dim volume6 As Double
Dim volume7 As Double
Dim maxProduct As String
Dim maxPrice As Double
'Шаг 4: Произвести расчеты
For i = 2 To 8
'Посчитать объем каждого вида продукта
volume1 = volume1 + Cells(i, 2).Value
volume2 = volume2 + Cells(i, 4).Value
'...
volume7 = volume7 + Cells(i, 6).Value
'Сравнить цены каждого вида продукта и найти самый дорогой
If Cells(i, 3).Value > maxPrice Then
maxProduct = Cells(i, 1).Value
maxPrice = Cells(i, 3).Value
End If
If Cells(i, 5).Value > maxPrice Then
maxProduct = Cells(i, 1).Value
maxPrice = Cells(i, 5).Value
End If
Next i
'Шаг 5: Вывести исходные данные в виде таблицы
Dim dataOutput As String
dataOutput = "Исходные данные:" & vbCrLf & vbCrLf & "Наименование | Объем компонента 1 | Цена компонента 1 | Объем компонента 2 | Цена компонента 2" & vbCrLf
For i = 2 To 8
dataOutput = dataOutput & Cells(i, 1).Value & " | " & Cells(i, 2).Value & " | " & _
Cells(i, 3).Value & " | " & Cells(i, 4).Value & " | " & Cells(i, 5).Value & vbCrLf
Next i
MsgBox dataOutput
'Шаг 6: Вывести результаты расчетов
Dim resultsOutput As String
resultsOutput = "Объем каждого вида продукта:" & vbCrLf & vbCrLf & "Объем продукта 1: " & volume1 & " л" & vbCrLf & _
"Объем продукта 2: " & volume2 & " л" & vbCrLf & _
"Объем продукта 3: " & volume3 & " л" & vbCrLf & _
"Объем продукта 4: " & volume4 & " л" & vbCrLf & _
"Объем продукта 5: " & volume5 & " л" & vbCrLf & _
"Объем продукта 6: " & volume6 & " л" & vbCrLf & _
"Объем продукта 7: " & volume7 & " л" & vbCrLf & vbCrLf & _
"Самый дорогой продукт: " & maxProduct & " Цена: " & maxPrice
MsgBox resultsOutput
End Sub
```
Чтобы запустить программу, вставьте данный код в модуль VBA в Excel. Затем запустите процедуру CalculateProducts. После этого программа запросит вас ввести исходные данные, и выведет результаты в виде таблиц и сообщений на экран.