Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 35

Составить вектор из сумм элементов матрицы, больших среднего геометрического, по строкам

02.01.2015, 20:34. Показов 939. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу, но не выводит вектор. Проверьте пожалуйста я правильно записал формулу ср. геометрического. Спасибо заранее!

Ввести массив А(N,M). Составить вектор из сумм элементов, больших среднего геометрического, по строкам.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
sub prog1()
dim a() as integer
dim b() as integer
 
n=inputbox("Vvedite zn n")
m=inputbox("Vvedite zn m")
 
redim a(n,m)
redim b(n)
 
for i=1 to n 
for j=1 to m
a(i,j)=cells(i,j)
next j,i
 
s=0
p=1
 
for i=1 to n 
for j=1 to m
  p=p*a(i,j)
  b(i)=b(i)+a(i,j)
next j,i
 
 f=p^(1/n*m)' ср.геометрическое
 x=1
for i=1 to n
  if b(i)>f then 
  cells(n+3,x)=b(i)
  x=x+1
  end if
next i
 
end sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2015, 20:34
Ответы с готовыми решениями:

Найти в каждой строке диапазона количество элементов, больших среднего геометрического всех его элементов
Среднее геометрическое n положительных чисел x1, x2, …, xn – это корень n-ой степени из произведения x1 *x2 * … * xn. Помогите,...

Получить массив из среднего геометрического заданных элементов матрицы
A B C Вычислить построчно в верхней треугольной матрице A среднее геометрическое значение положительных элементов массива A. ...

Составить процедуру вычисления среднего арифметического и среднего геометрического А и В
Составить процедуру вычисления среднего арифметического и среднего геометрического А и В. С ее помощью найти среднее арифметическое и...

5
Заблокирован
02.01.2015, 21:31
Вот вам средне-геометрическое

Visual Basic
1
2
3
    With WorksheetFunction
        MsgBox .GeoMean([a:a])
    End With
Альтернативная формула будет выглядеть так:
=EXP(1/СЧЁТ(A:A)*LN(ПРОИЗВЕД(A:A)))

К сожалению у вас не ясно какие числа должны быть в массиве
должно быть примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
 Sub iGeoMean()
    With ActiveSheet
        If MsgBox("Создать колонку со своими числами ?", vbInformation Or vbYesNo) = vbNo Then Exit Sub
        Set R = .[a:a]: R.Insert
        For i = 1 To 10: .Cells(i, 1) = i * 2: Next
        With WorksheetFunction
            If MsgBox("Средне-геометрическое = " & .GeoMean(R) & vbCrLf & _
            "Удалить расчеты ?", vbYesNo Or vbInformation) = vbNo Then Exit Sub
            R.Delete
        End With
    End With
End Sub
0
Заблокирован
03.01.2015, 12:16
Наверное так должно получиться
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
'Option Explicit
 
Sub VectoR()
    Const shn = "Составить вектор"
    '------------ !
    n = 7
    m = 12
    '------------ !
    tx = _
    "Сейчас будет созданн новый лист с расчетами" & vbCrLf & _
    "Введите значения [n * m]" & vbCrLf & _
    "примерно так-же как внизу:"
    While b = False
        x = InputBox(tx, , n & "*" & m)
        If Len(x) Then
            x = Split(x, "*")
            b = UBound(x) = 1
            If b Then
                If IsNumeric(Trim(x(0))) Then n = Val(x(0)) Else b = 0
                If IsNumeric(Trim(x(1))) Then m = Val(x(1)) Else b = 0
            End If
        Else: Exit Sub
        End If
    Wend
 
    Application.DisplayAlerts = False
    If SheetExists(shn) Then Worksheets(shn).Delete
    'Создание таблицы
    With Worksheets.Add: .Name = shn
        With .Cells(1, 1)
            .AddComment
            tx = _
            "Условие:" & vbLf & _
            "Составить вектор из сумм элементов матрицы," & vbLf & _
            "больших среднего геометрического, по строкам"
            .Comment.Text Text:=tx
            .Comment.Shape.TextFrame.AutoSize = True
            .Value = "Matrix !"
        End With
        With .Range(.Cells(1, 1), .Cells(1, n))
            .Merge 'Объеденение верхней полоски
            .HorizontalAlignment = xlCenter
            For xl = 7 To 10: .Borders(xl).LineStyle = 1: Next 'Границы
            .Interior.ColorIndex = 33 'Цвет
        End With
        .Cells(1, n + 2) = "Сумма по строкам (формулы)"
        With .Range(.Cells(2, n + 2), .Cells(m + 1, n + 2))
            For Each el In .Rows 'Отдельно по каждой
                For xl = 7 To 10: el.Borders(xl).LineStyle = 1: Next 'Границы
            Next
             .Interior.ColorIndex = 35
        End With
        'Заполнение числами похожими на геом.-прогрессию
        For j = 2 To m + 1: For i = 1 To n: .Cells(j, i) = i * j: Next i, j
        '===========Вычисление
        vec = Split(Space(m - 1))
        For j = 2 To m + 1
            geo = WorksheetFunction.GeoMean(.Range(.Cells(j, 1), .Cells(j, n)))
            isum = 0
            For i = 1 To n
                If .Cells(j, i) > geo Then
                    Set r = .Range(.Cells(j, i), .Cells(j, n))
                    For xl = 7 To 10: r.Borders(xl).LineStyle = xlDash: Next   'Границы
                    With .Cells(j, n + 2)
                        .Value = "=SUM(" & r.Address & ")"
                        vec(j - 2) = WorksheetFunction.Sum(r)
                        .AddComment
                        .Comment.Text Text:="Средне-геометрическое:" & vbLf & geo
                        .Comment.Shape.TextFrame.AutoSize = True
                    End With
                    Exit For
                End If
        Next i, j
        tx = _
        "Готово !" & vbCrLf & _
        "Вектор: [" & Join(vec, ", ") & "]" & vbCrLf & _
        "Удалить этот лист ?"
        If MsgBox(tx, 68) = vbNo Then Exit Sub
        .Delete
    End With
    Application.DisplayAlerts = True
End Sub
 
Function SheetExists(ByVal Name$) As Boolean
    On Error Resume Next
    txName = "": txName = Worksheets(Name).Name
    SheetExists = Len(txName)
End Function
Миниатюры
Составить вектор из сумм элементов матрицы, больших среднего геометрического, по строкам  
1
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 35
03.01.2015, 13:36  [ТС]
Спасибо, числа в матрице задаются самостоятельно на листе excel
0
Заблокирован
03.01.2015, 13:43
Цитата Сообщение от Филипп94 Посмотреть сообщение
Спасибо
Вам несказанно повезло, что мне как-раз заняться было нечем
каникулы, водку я не пью..

ну понятно почему я так сделал?, есть замечания по коду?, всё ли правильно запустилось ?
0
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 35
03.01.2015, 14:11  [ТС]
Замечаний нет, я просто переделал свой код опираясь на Ваш)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.01.2015, 14:11
Помогаю со студенческими работами здесь

Алгоритм определения среднего геометрического элементов под главной диагональю квадратной матрицы
опишите на русском языке или на одном из языков программирования алгоритм определения среднего геометрического всех элементов расположенных...

Создать одномерный массив из сумм элементов по строкам матрицы
Помогите пожалуйста сделать задание. Как написать программу по заданию: Дана матрица С, размер которой m<=6 - строк, n<=8 -...

Создать одномерный массив из сумм элементов матрицы по строкам
дана матрица в StringGrid(вводимая пользователем), как создать одномерный массив из сумм элементов по строкам и вывести в memo?

Составить программу определения количества элементов массива, больших среднего арифметического всех его элементов.
Составить программу определения количества элементов массива, больших среднего арифметического всех его элементов. Заранее спасибо)

Найти количество элементов матрицы, больших среднего арифметического всех её элементов
Дана матрица А(Н< Н).найти количество элементов этой матрицы ,больших среднего арифметического всех её элементов этой матрицы. заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru