Другие языки программирования и технологии
помогите с VBA
пожалуйста помогите решить контрольную! 1) ввести массив А(N). Найти сумму элементов массива. Четные элементы массива увеличить на сумму. Вывести полученный массив. 2) ввести массив А(N). Найти произведение четных элементов массива, сумму нечетных элементов, разность произведения и суммы. Вывести все результаты.
На VBA - значит, в Excel.
1) Пусть начальный массив записан в столбце А (2) - А (N+1), конечный будет выведен в В (2) - В (N+1).
В 1 строке написаны заголовки: в А1 "Начальный массив" и в В1 "Конечный массив".
Dim N As Long, i As Long, S As Double
S = 0: i = 2
Do While Rows(i).Cells(1) <> ""
S = S + Rows(i).Cells(1) ' Просуммировали весь столбец, пока в нем не кончатся числа
Rows(i).Cells(2) = Rows(i).Cells(1) ' Скопировали массив в столбец В
i = i + 1
Loop
N = i - 2 ' Нашли количество чисел в столбце А
For i = 3 To N Step 2 ' В строках 3, 5, 7 и т. д. лежат 2-ой, 4-ый, 6-ой и т. д. элементы массива, т. е. четные.
Rows(i).Cells(2) = Rows(i).Cells(2) + S ' Увеличили четные элементы на сумму
Next i
End
2) Пусть начальный массив записан в столбце А (2) - А (N), Итоговые числа запишем в столбце В
В А1 написан заголовок: "Начальный массив"
Dim N As Long, i As Long, SOdd As Double, PEven As Double
SOdd = 0: PEven = 1: i = 1
Do While Rows(i).Cells(1) <> ""
If i mod 2 = 1 Then
SOdd = SOdd + Rows(i).Cells(1) ' Просуммировали нечетные элементы
Else
PEven = PEven * Rows(i).Cells(1) ' Перемножили четные элементы
End If
i = i + 1
Loop
Rows(1).Cells(2) = "Произведение четных элементов"
Rows(2).Cells(2) = PEven
Rows(3).Cells(2) = "Сумма нечетных элементов"
Rows(4).Cells(2) = SOdd
Rows(5).Cells(2) = "Разность произведения и суммы"
Rows(6).Cells(2) = PEven - SOdd
End
1) Пусть начальный массив записан в столбце А (2) - А (N+1), конечный будет выведен в В (2) - В (N+1).
В 1 строке написаны заголовки: в А1 "Начальный массив" и в В1 "Конечный массив".
Dim N As Long, i As Long, S As Double
S = 0: i = 2
Do While Rows(i).Cells(1) <> ""
S = S + Rows(i).Cells(1) ' Просуммировали весь столбец, пока в нем не кончатся числа
Rows(i).Cells(2) = Rows(i).Cells(1) ' Скопировали массив в столбец В
i = i + 1
Loop
N = i - 2 ' Нашли количество чисел в столбце А
For i = 3 To N Step 2 ' В строках 3, 5, 7 и т. д. лежат 2-ой, 4-ый, 6-ой и т. д. элементы массива, т. е. четные.
Rows(i).Cells(2) = Rows(i).Cells(2) + S ' Увеличили четные элементы на сумму
Next i
End
2) Пусть начальный массив записан в столбце А (2) - А (N), Итоговые числа запишем в столбце В
В А1 написан заголовок: "Начальный массив"
Dim N As Long, i As Long, SOdd As Double, PEven As Double
SOdd = 0: PEven = 1: i = 1
Do While Rows(i).Cells(1) <> ""
If i mod 2 = 1 Then
SOdd = SOdd + Rows(i).Cells(1) ' Просуммировали нечетные элементы
Else
PEven = PEven * Rows(i).Cells(1) ' Перемножили четные элементы
End If
i = i + 1
Loop
Rows(1).Cells(2) = "Произведение четных элементов"
Rows(2).Cells(2) = PEven
Rows(3).Cells(2) = "Сумма нечетных элементов"
Rows(4).Cells(2) = SOdd
Rows(5).Cells(2) = "Разность произведения и суммы"
Rows(6).Cells(2) = PEven - SOdd
End
ну например у тебя есть 5 текстовых полей, куда вводятся элементы массива и одна метка для вывода результата
1)
a(1) = text1.text
a(2) = text2.text
a(3) = text3.text
a(4) = text4.text
a(5) = text5.text
sum=0
for n=1 to 5
sum=sum+a[n]
next
for n=1 to 5
if (a(n) mod 2 = 0) a(n) = a(n)+sum
next
for n=1 to 5
label1.caption=label1.caption + a(n) + ", "
next
2)
a(1) = text1.text
a(2) = text2.text
a(3) = text3.text
a(4) = text4.text
a(5) = text5.text
q=1
sum=0
for n=1 to 5
if (a(n) mod 2=0) then q = q * a(n) else sum=sum + a(n)
next
raznost = q / sum
label1.caption = "Сумма = " + sum + ", произведение = " + q + ", разность = " + raznost
если препод будет пристебываться на счет того что там переменная идет как число а там - как строка - говори что использовал тип variant... или на крайний случай воспользуйся функцией преобразования числа в строку
1)
a(1) = text1.text
a(2) = text2.text
a(3) = text3.text
a(4) = text4.text
a(5) = text5.text
sum=0
for n=1 to 5
sum=sum+a[n]
next
for n=1 to 5
if (a(n) mod 2 = 0) a(n) = a(n)+sum
next
for n=1 to 5
label1.caption=label1.caption + a(n) + ", "
next
2)
a(1) = text1.text
a(2) = text2.text
a(3) = text3.text
a(4) = text4.text
a(5) = text5.text
q=1
sum=0
for n=1 to 5
if (a(n) mod 2=0) then q = q * a(n) else sum=sum + a(n)
next
raznost = q / sum
label1.caption = "Сумма = " + sum + ", произведение = " + q + ", разность = " + raznost
если препод будет пристебываться на счет того что там переменная идет как число а там - как строка - говори что использовал тип variant... или на крайний случай воспользуйся функцией преобразования числа в строку
Похожие вопросы
- помогите с vba excel
- помогите по vba
- Нужен простой ЯП как для хобби, так и вспомогательный в работе, что то на замену VBA.
- Прошу теоретической помощи с VBA! (не кодер)
- VBA - Парсинг в Excel-VBA курса ЦБ
- Програмирование в VBA
- VBA EXCEL. Где найти список формул по английски??? чтоб потом вписывать формулы через VBA.
- помогите решить задачку, на VBA для Excel
- Как решать задачи по VBA
- Создание функции в VBA