Другие языки программирования и технологии

помогите с VBA

пожалуйста помогите решить контрольную! 1) ввести массив А(N). Найти сумму элементов массива. Четные элементы массива увеличить на сумму. Вывести полученный массив. 2) ввести массив А(N). Найти произведение четных элементов массива, сумму нечетных элементов, разность произведения и суммы. Вывести все результаты.
N^
Nioharu ^_^
816
На 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
Юрий Иванченко
Юрий Иванченко
70 806
Лучший ответ
ну например у тебя есть 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... или на крайний случай воспользуйся функцией преобразования числа в строку