Автор Тема: Массив VBA - проверьте пожалуйста  (Прочитано 4630 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nataly1992

  • Пользователь
  • **
  • Сообщений: 21
    • Просмотр профиля
Массив VBA - проверьте пожалуйста
« : 13 Января 2010, 16:57:56 »
Здравствуйте
Задача
Дан двухмерные массив Х размеров mxn(m строчек, n столбцов)
Вычислить среднее арифметическое елементов каждого столбца, которые больше за ноль
Вот написаная програма
Private Sub CommandButton1_Click()
M = Val(InputBox("Размерность массива по вертикали (количество строк), m",))
N = Val(InputBox("Размерность массива по горизонтали (количество колонок), n"))
ReDim a(M, N)
For i = 1 To M
For j = 1 To N
Do
a(i, j) = InputBox("A(" & i & ", " & j & ") = ?") 'ввод j-го элемента i-й строки'
If IsNumeric(a(i, j)) Then
Cells(i, j) = a(i, j)
Else
Cells(i, j) = 0: a(i, j) = 0 'ставим принудительно 0, если ошиблись при вводе'
End If
If a(i, j) <> Empty Then Exit Do            'ввели число a(i, j) - идём к следующим'
Loop
Next j
Next i
For j = 1 To N
S = 0
Nj = 0
For i = 1 To M
If a(i, j) > 0 Then S = S + a(i, j): Nj = Nj + 1 'подсчёт положительных эл-тов столбца j'
Next i
If Nj > 0 Then S = S / Nj 'S присваиваем (если есть) среднее по столбцу j из его положит. чисел'
If S > 0 Then Cells(M + 2, j) = S Else Cells(M + 2, j) = "немає" 'в (M + 2)-й строчке пишем результат'
Next j
End Sub




Скажите, можна как-то эту програму написать без If IsNumeric(a(i, j)) Then
Cells(i, j) = a(i, j)

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Массив VBA - проверьте пожалуйста
« Ответ #1 : 13 Января 2010, 17:35:07 »
Проверить  пограмму можете вы сами: задайте несколько наборов входных данных и проверьте выполнение программы на них.   
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nataly1992

  • Пользователь
  • **
  • Сообщений: 21
    • Просмотр профиля
Re: Массив VBA - проверьте пожалуйста
« Ответ #2 : 13 Января 2010, 18:05:07 »
Она то работает.
Вопрос то в конце написан:
Скажите, можна как-то эту програму написать без If IsNumeric(a(i, j)) Then
Cells(i, j) = a(i, j)??????

Оффлайн Nataly1992

  • Пользователь
  • **
  • Сообщений: 21
    • Просмотр профиля
Re: Массив VBA - проверьте пожалуйста
« Ответ #3 : 13 Января 2010, 21:26:56 »
Я умаляю, скажите, это возможно без этого IsNumeric написать????????

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Массив VBA - проверьте пожалуйста
« Ответ #4 : 13 Января 2010, 21:36:23 »
это я так понимаю контроль ввода...то есть если юзер введет вместо цифры букву или символ она не вылетит...писать можно,но при недопустимых символах программа упадет
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nataly1992

  • Пользователь
  • **
  • Сообщений: 21
    • Просмотр профиля
Re: Массив VBA - проверьте пожалуйста
« Ответ #5 : 13 Января 2010, 21:39:29 »
А вы можете мне написать? Буду очь благодарна.
Просто у меня така преподавательница, которая ничего не поймет(проверено).

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Массив VBA - проверьте пожалуйста
« Ответ #6 : 13 Января 2010, 21:54:47 »
If IsNumeric(a(i, j)) Then
Cells(i, j) = a(i, j)
Else
Cells(i, j) = 0: a(i, j) = 0 'ставим принудительно 0, если ошиблись при вводе'
End If

меняйте на
Cells(i, j) = a(i, j)
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nataly1992

  • Пользователь
  • **
  • Сообщений: 21
    • Просмотр профиля
Re: Массив VBA - проверьте пожалуйста
« Ответ #7 : 13 Января 2010, 22:34:58 »
Большое спасибо)

 

Люди добрые помогите пожалуйста с решением задачки в паскале

Автор Fi

Ответов: 3
Просмотров: 6642
Последний ответ 22 Апреля 2010, 09:54:05
от Asix
Помогите решить пожалуйста. Алгоритм в виде блок схемы

Автор Кочубеев

Ответов: 0
Просмотров: 5974
Последний ответ 22 Сентября 2010, 18:31:07
от Кочубеев
Помогите пожалуйста решить задачи в паскале!!!очень срочно

Автор sergsergserg

Ответов: 2
Просмотров: 6068
Последний ответ 28 Октября 2010, 21:14:22
от domny
Добрый День помогите пожалуйста решить задачи на Паскале!!!

Автор Ramzes 1993

Ответов: 1
Просмотров: 3644
Последний ответ 31 Октября 2011, 12:13:47
от wital1984
Помогите пожалуйста решить задачу симплекс методом.

Автор MissKiss

Ответов: 5
Просмотров: 5804
Последний ответ 10 Ноября 2010, 02:01:49
от tig81