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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 22:58   #1
Nataly1992
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 44
Печаль Двухмерные массивы VBA

Здравствуйте опять)
Снова нужна ваша помощь
Задача
Дан двухмерные массив Х размеров mxn(m строчек, n столбцов)
Вычеслить среднее арифметическое елментов каждого столпца, которые больше за ноль

Буду благодарна за помощь
Nataly1992 вне форума Ответить с цитированием
Старый 21.12.2009, 23:01   #2
Nataly1992
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 44
По умолчанию

На паре была вот такая вот задача:
Дан двухмерные массив Х размеров mxn(m строчек, n столбцов)
Найти суму квадратов элементов, которые находятся на диагоналях(m=n)

Вот так вот програмировали
n = InputBox("VVedite n")
m = InputBox("Vvedite m")
ReDim a(n, m)
For i = 1 To n
For j = 1 To m
a(i, j) = InputBox("Vvedite A(" & i & "," & j & ")")
Next j
Next i
For i = 1 To n
For j = 1 To m
Cells(2 + i, 2 + j).Value = a(i, j)
Next j
Next i
For i = 1 To n
For j = 1 To m
If i = j Then
S = S + a(i, j) ^ 2
End If
Next j
Next i
Cells(4 + n, 4 + m).Value = S


Что в нем можно заменить, чтобы вышла задача из первого сообщения?
Nataly1992 вне форума Ответить с цитированием
Старый 21.12.2009, 23:04   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от Nataly1992 Посмотреть сообщение
Здравствуйте опять)
...елментов каждого столпца, которые больше за ноль
1) "больше за ноль" = "больше нуля"?

2) а массив откуда считывать? из таблицы? или с клавиатуры его ввести?

И что именно у вас не выходит? Только ввод массива — это уже непросто! Что у вас не получается?
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.12.2009, 23:05   #4
Nataly1992
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 44
По умолчанию

1) Да, больше нуля
2) Ввести из клавиатуры..

Я бы не обращалась, но у меня ничего не получается...
Nataly1992 вне форума Ответить с цитированием
Старый 21.12.2009, 23:09   #5
Nataly1992
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 44
По умолчанию

Я не понимаю, как написать вычисление среднего арифметического этих елементов
Nataly1992 вне форума Ответить с цитированием
Старый 21.12.2009, 23:15   #6
Nataly1992
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 44
По умолчанию

понимаете, нам ничего не обьясняют на занятиях. Вот поэтому нужно самому все делать. У меня до массивов у меня все получалось, а вот с массивами роблемы
Nataly1992 вне форума Ответить с цитированием
Старый 21.12.2009, 23:15   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Эти элементы надо сложить и полученную сумму разделить на число элементов.
Только учтите, что их (которые > 0) в каком-то столбце может и не быть. Понятно это?

3) в примере у Вас результат выводится в таблицу, что ли?
Цитата:
Сообщение от Nataly1992 Посмотреть сообщение
понимаете, нам ничего не обьясняют на занятиях
А как (и где) писать программы — это хотя бы вам сказали?

(Я не уверен, что нужно объяснять арифметическое среднее, например, старшеклассницам. Это начальная школа!)
Цитата:
Сообщение от Nataly1992 Посмотреть сообщение
а как это прописать?
В цикле, как в примере.
Код:
if a(i, j) > 0 then S = S + a(i, j)
для i от 1 до n. Затем эту сумму (если она > 0) разделить на n, иначе выдать сообщение:
Цитата:
В столбце j элементов > 0 нет.
Элементарно же! Подождите, я ваш код испытаю в среде VBA. Это минут 15 надо.

Последний раз редактировалось Sasha_Smirnov; 21.12.2009 в 23:34.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.12.2009, 23:16   #8
Nataly1992
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 44
По умолчанию

а как это прописать?
3) да
Nataly1992 вне форума Ответить с цитированием
Старый 21.12.2009, 23:23   #9
Serebro
FORTRAN programmer
Форумчанин
 
Регистрация: 08.12.2009
Сообщений: 153
По умолчанию

Код:
For j = 1 To m
  s=0.0
  number=0
  For i = 1 To n
    if x(i,j)>0.0 then
      s=s+x(i,j)
      number=number+1
    end if
  Next i
  sa(j)=s/number        rem среднее арифметическое элементов >0 по столбцам
Next j
Serebro вне форума Ответить с цитированием
Старый 21.12.2009, 23:23   #10
Nataly1992
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Эти элементы надо сложить и полученную сумму разделить на число элементов.
Только учтите, что их (которые > 0) в каком-то столбце может и не быть. Понятно это?

3) в примере у Вас результат выводится в таблицу, что ли?


А как (и где) писать программы — это хотя бы вам сказали?

(Я не уверен, что нужно объяснять арифметическое среднее, например, старшеклассницам. Это начальная школа!)
ну понятно что не нужно обьяснять)))
НАм обясняют все на Вижуал Бейсике. Мы заходим через Excell и делаем по методичке, но очень простіе задачки. А домой задают посложнее
Nataly1992 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Двухмерные массивы rus_rock_no_dead Помощь студентам 4 23.05.2010 23:21
C++. Двухмерные массивы. bpystep Помощь студентам 11 23.05.2010 13:49
Двухмерные массивы(StringGrid) MaksimSeriy Общие вопросы Delphi 3 06.04.2009 01:27
Двухмерные массивы (С++) Nattka Помощь студентам 2 04.12.2008 21:15
Двухмерные массивы - ошибка fudzy79 Помощь студентам 21 06.02.2008 22:50