Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 18:35   #1
Джиган
 
Регистрация: 07.02.2011
Сообщений: 7
По умолчанию Массивы. Вывод в Excel

Всем доброго времени суток. Программа следующая (много простых операций):

Код:
Option Explicit
Sub pr1()
Dim A(50) As Integer, n As Byte, y As Byte, s As Byte, x As Integer, pr As Integer, min As Integer, max As Integer, k As Byte, i As Byte

n = InputBox("введи длину массива")

Randomize
For y = 1 To n
A(y) = Int(Rnd * 35 - 15)
Cells(1, y) = A(y)
Next y

x = InputBox("ввод x")

'сумма элементов кратных трем'
s = 0
For y = 1 To n
If A(y) Mod 3 = 0 Then s = s + A(y)
Next y
Cells(5, 5) = "сумма" & s

'Произведение элементов стоящих на четных местах'
pr = 1
For y = 2 To n Step 2
pr = pr * A(y)
Next y
Cells(6, 5) = "произведение" & pr

'Количество отрицательных элементов > заданного x'
k = 0
For y = 1 To n
If A(y) < 0 And A(y) > x Then
k = k + 1
End If
Next y
Cells(7, 5) = "количество=" & k

'поиск max элемента из НЕЧЕТНЫХ положительных и его индекса'
max = -16
For y = 1 To n
If A(y) > max And A(y) Mod 2 <> 0 And A(y) > 0 Then max = A(y)
i = y
Next y
Cells(8, 5) = "max=" & max & "индекс max=" & i

'поиск min элемента'
min = 21
For y = 1 To n
If A(y) < min Then min = A(y)
Next y
Cells(9, 5) = "min=" & min

'увеличиваются отрицательные элементы в 2 раза и массив выводится во 2 строку'
For y = 1 To n
If A(y) < 0 Then A(y) = A(y) * 2
Cells(2, y) = A(y)
Next y

'четные элементы заменяются заданной суммой и массив выводится в 3 строку'
For y = 1 To n
If A(y) Mod 2 = 0 Then A(y) = s
Cells(3, y) = A(y)
Next y

'найденный max заменяется найденным количеством'
For y = 1 To n
A(i) = k
Cells(4, i) = A(i)   
Next y
End Sub
Однако вы excel следующая картина:


Вопрос: откуда там столько нулей?
пожалуйста, помогите найти ошибку. Буду очень благодарен)

Последний раз редактировалось Джиган; 10.04.2011 в 18:36. Причина: ошибка
Джиган вне форума Ответить с цитированием
Старый 10.04.2011, 20:15   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Sub Vau()
Dim A() As Integer, n As Byte, y As Byte, s As Integer, x As Integer, pr As Double, min As Long, max As Double, k As Byte, i As Byte

n = InputBox("введи длину массива")
ReDim A(1 to n)
Randomize
For y = 1 To n
A(y) = Int(Rnd * 35 - 15)
Cells(1, y) = A(y)
Next y

x = InputBox("ввод x")

'сумма элементов кратных трем'
s = 0
For y = 1 To n
If A(y) Mod 3 = 0 Then s = s + A(y)
Next y
Cells(5, 5) = "сумма" & s

'Произведение элементов стоящих на четных местах'
pr = 1
For y = 2 To n Step 2
pr = pr * A(y)
Next y
Cells(6, 5) = "произведение" & pr

'Количество отрицательных элементов > заданного x'
k = 0
For y = 1 To n
If A(y) < 0 And A(y) > x Then
k = k + 1
End If
Next y
Cells(7, 5) = "количество=" & k

'поиск max элемента из НЕЧЕТНЫХ положительных и его индекса'
max = -16
For y = 1 To n
If A(y) > max And A(y) Mod 2 <> 0 And A(y) > 0 Then max = A(y)
i = y
Next y
Cells(8, 5) = "max=" & max & "индекс max=" & i

'поиск min элемента'
min = 21
For y = 1 To n
If A(y) < min Then min = A(y)
Next y
Cells(9, 5) = "min=" & min

'увеличиваются отрицательные элементы в 2 раза и массив выводится во 2 строку'
For y = 1 To n
If A(y) < 0 Then A(y) = A(y) * 2
Cells(2, y) = A(y)
Next y

'четные элементы заменяются заданной суммой и массив выводится в 3 строку'
For y = 1 To n
If A(y) Mod 2 = 0 Then A(y) = s
Cells(3, y) = A(y)
Next y

'найденный max заменяется найденным количеством'
For y = 1 To n
A(i) = k
Cells(4, i) = A(i)
Next y
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы(вывод минимальный чисел) kidkilla Visual C++ 7 10.04.2011 20:07
вывод данных в Excel vilena Компоненты Delphi 3 01.06.2010 16:51
массивы , вывод stringrid undead92 Помощь студентам 6 29.12.2009 23:21
Excel.Вывод формулы red_kabantchik Microsoft Office Excel 3 27.10.2009 19:28
Вывод данных в Excel Novi4ek Помощь студентам 3 22.05.2008 11:32