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

Арифметические действия с матрицей

09.05.2013, 11:00. Показов 3073. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
разработать приложение с формой для решения задач:

1. в матрице А(N,N) вычислить среднее арифметическое отрицательных элементов в каждом нечетном столбце.

2. в матрице вычислить произведение нечетных элементов в 3 четверти.

запускать приложение кнопкой с листа excel.

на форме предусмотреть ввод размера массива, кнопки формирования массива, решения задач, отчистки и выхода.

вывод исходной матрицы производить на рабочий лист excel, а результаты решения задач выводить на лист excel и форму.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.05.2013, 11:00
Ответы с готовыми решениями:

Арифметические действия над числами
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер...

Арифметические действия с диапазоном ячеек в Word с использованием VBA
Не могу выполнить ссылки на ячейки, а так же сделать что бы они считались в не заполненные диапазоны. Про Excel не пишите все нужно сделать...

Дан текст, в котором встречаются арифметические выражения вида a Å b, где Å - один из знаков +, -, *, /. Выписать все арифметические выражения и вычис
Дан текст, в котором встречаются арифметические выражения вида a Å b, где Å - один из знаков +, -, *, /. Выписать все арифметические...

22
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
10.05.2013, 13:14
Здравствуйте. А свои мысли какие-нибудь есть?
0
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
10.05.2013, 14:53  [ТС]
нет. не умею программировать. а это задали по информатике в институте
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
10.05.2013, 21:29
Сегодня постараюсь помочь, сейчас занят. Поищите пока по форуму (вопрос в "Поис" возьмите в кавычки ""). Если найдете - скажите, что б не зря. И еще. Я очень не люблю формы. Сделаю с кнопками и InputBox. С игрушками-формами уже сами. Ищите пока.

Добавлено через 5 часов 30 минут
Ничего не понимаю. Еще ничего не сделал, а уже... Вот бы так мне за работу на работе! (размечтался!!!
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
Sub nextMatrix()
 
Dim i&, j&, mARR(), N&, mLover&, mUpper&, bFlag As Boolean
Dim mAVG#, mPROD&, counter&, arrELcount&, mLIMIT&, OddProd&
 
    With ActiveSheet
        Cells.Delete
    End With
    
    bFlag = True '! ! ! ! ! !
    
'--Part1--------------------------------------------------------------
    N = Application.InputBox("MATRIX   SIZE", , 6, , , , , 1)
    mLover = Application.InputBox("INPUT   YOUR" & Space(3) & _
                                            "LOWER   BOUND", , -10, , , , , 1)
    mUpper = Application.InputBox("INPUT   YOUR" & Space(3) & _
                                            "UPPER   BOUND", , 10, , , , , 1)
'====================================================
'---Part2--------------------------------------------------------------
    mLIMIT = Application.WorksheetFunction.RoundUp((((N ^ 2) / 4) * 3), 0)
    counter = 0
    arrELcount = 0
    mAVG = 0
    OddProd = 1
    ReDim mARR(1 To N, 1 To N)
'=====================================================
'---Part3--------------------------------------------------------------
        For i = 1 To N
            For j = 1 To N
                mARR(i, j) = Int((mUpper - mLover + 1) * Rnd) + mLover
                arrELcount = arrELcount + 1
                    If j Mod 2 <> 0 And mARR(i, j) < 0 Then
                        counter = counter + 1
                        mAVG = mAVG + mARR(i, j)
                    End If
                    If arrELcount >= mLIMIT And mARR(i, j) Mod 2 <> 0 Then
                        OddProd = OddProd * mARR(i, j)
                    End If
            Next 'j
        Next 'i
'==========================================================
'---Part4----------------------------------------------------------------
    Cells(1, 1).Resize(UBound(mARR, 1), UBound(mARR, 2)).Value = mARR
    With Cells(Rows.Count, "A").End(xlUp)
        .Offset(2, 0).Value = "Среднее отрицательных в нечет.: "
        .Offset(2, 3).Value = Round(mAVG / counter, 2)
        .Offset(3, 0).Value = "Произв. нечет. 3-й четв.: "
        .Offset(3, 3).Value = OddProd
    End With
'==============================================================
 
    bFlag = False '! ! ! ! ! !
 
    ' !!!!! вторая часть с UserForm !!!!!!
 
    
End Sub
Теперь подскажу, сам делать не буду - у меня на UserForm алергия.
Здесь есть переменная bFlag As Boolean. Создаете форму, на которой три пары: Label - TextBox. В каждый Label (.Caption), при инициализации, записываете надписи как в Inputbox-сах, а в TextBox (после запуска, руками), записываете нужные значения (размер, границы). Потом оттуда считываете в переменные N, mLover, mUpper. Это все вместо блока "Part1". В это время bFlag = false. После блока "Part4", bFlag = False. Это как индикатор, который Вашей форме должен указать, что тогда Label1.caption="Среднее отрицательных в нечет.: ", Label2.caption="Произв. нечет. 3-й четв.: ", Label3.visible=False,
TextBox1.value=Round(mAVG / counter, 2), TextBox2.value=OddProd, TextBox3.visible=False. Поиграйтесь. Может, как раз Вас это и заинтересует. Я не использую. В реальной жизни - это только реальный менингит и во время..., и потом.... Удачи.
1
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
12.05.2013, 08:20  [ТС]
большое спасибо
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
12.05.2013, 10:05
Извиняюсь. Пропустил. Там сразу после:
'---Part3-------
вставьте:
Randomize
а то будет создаваться всегда одна и та же матрица.
С формами получилось? Еще добавлю по формам. Кроме трех пар, в начале, у Вас должна быть одна/две кнопки (~Ok и, если нужно, Cancel). Когда во второй части (bFlag=True) делаете невидимыми одну пару, координаты размещения кнопок на форме заменяете координатами пары, которая становится невидимой (кнопка(-и) перемещается вверх и как-бы накладывается сверху). За это отвечают свойства (в Properties, при выделенном элементе на форме в окне редактора) Top и Left. Саму форму уменьшаете свойством Height (там же, в Properties, после двойного клика на самой форме в редакторе) до нужного размера (но все первоначальные параметры формы и изменяемых элементов должны быть прописаны в модуле UserForm_Initialize). Осталось прописать изменения цветов самой формы при bFlag = True и bFlag = False. И тогда у Вас одна форма будет выглядеть как две абсолютно разные и выполнять разные функции. Поиграйтесь. Красиво, интересно, эфективно визуально, но для меня как-то абсолютно безсмысленно.
0
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
14.05.2013, 07:07  [ТС]
Люди у меня есть подобная задача, уже с формами и все как надо, можете подсказать что тут нужно поменять, чтобы выполняла условия задания
Кликните здесь для просмотра всего текста
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
89
90
91
92
93
94
95
96
97
98
99
100
101
Dim N, A()
 
Private Sub CommandButton1_Click()
    Dim i, j As Integer
    N = ScrollBar1.Value
    ReDim A(N, N)
    For i = 1 To N Step 1
        For j = 1 To N Step 1
            If i > j Then
                A(i, j) = 3
            Else
                A(i, j) = 2
            End If
            If i = j Then
                A(i, j) = 1
            End If
            Cells(i + 7, j + 2) = A(i, j)
        Next j
    Next i
End Sub
 
Private Sub CommandButton2_Click()
    Dim summ, i, j As Integer
    summ = 0
    For i = 1 To N Step 1
        For j = 1 To N Step 1
            If A(i, j) Mod 2 <> 0 Then
                summ = summ + A(i, j)
            End If
        Next j
    Next i
    TextBox1.Text = summ
    Cells(3, 2) = summ
End Sub
 
Private Sub CommandButton3_Click()
    Dim count, i, j As Integer
    For i = 1 To N Step 1
        count = 0
        For j = 1 To N Step 1
            If A(i, j) Mod 2 = 0 Then
                count = count + 1
            End If
        Next j
        ListBox1.AddItem "Строка " & i & _
                " - " & count & " четных. элемент."
        Cells(4, 1 + i) = i & " строка: " & count
    Next i
End Sub
 
Private Sub CommandButton4_Click()
    TextBox1.Text = ""
    TextBox2.Text = ""
    ListBox1.Clear
    ListBox2.Clear
    Dim i, j As Integer
        For i = 3 To N + 7 Step 1
        For j = 2 To N + 2 Step 1
            Cells(i, j).Clear
        Next j
    Next i
    
End Sub
 
Private Sub CommandButton5_Click()
    Dim Max, i, j As Integer
    For i = 1 To N Step 1
        If (i Mod 2) <> 0 Then
            Max = 0
            For j = 1 To N Step 1
                If A(j, i) > Max Then
                    Max = A(j, i)
                End If
            Next j
        ListBox2.AddItem "Столбец  " & i & " - " & Max
        Cells(5, 1 + i) = "Столбец  " & i & " - " & Max
        End If
    Next i
End Sub
 
Private Sub CommandButton6_Click()
    Dim K, i, j As Integer
    K = 1
    For i = 1 To N Step 1
        For j = 1 To N Step 1
            If (i < j) And (i + j <= N + 1) Then
                K = K * A(i, j)
            End If
        Next j
    Next i
    TextBox2.Text = K
    Cells(6, 2) = K
End Sub
 
Private Sub ScrollBar1_Change()
    Label3.Caption = ScrollBar1.Value
End Sub
 
Private Sub UserForm_Activate()
    ScrollBar1.Value = 5
End Sub


Добавлено через 21 час 8 минут
Цитата Сообщение от alexey55 Посмотреть сообщение
Люди у меня есть подобная задача, уже с формами и все как надо, можете подсказать что тут нужно поменять, чтобы выполняла условия задания Кликните здесь для просмотра всего текста
формы уже готовы, не могли бы вы просто помочь переделать код?
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.05.2013, 11:03
Попробую по другому. Сама работа с формой - это обычная нудная рутина. Главное - выполняющая процедура (например, та, которую я Вам написал (но не единственная возможная!)). В большинстве - форма только раздувает код. Но если уже точно нужно форму, тогда к ней нужно подходить осторожно. Вот например. Вы создали что-то с формой. Все чудесно, все работает. Через месяц Вам нужно ее модифицировать. И тут Вы начинаете бегать по всзаимосвязанным листингам, вспоминать, править, ругаться... Поэтому, как я считаю, если уже форма, тогда все делать в минимальном кол-ве процедур, а форму использовать только для занесения исходных, и отображения результатов (ну можеть еще и промежуточных результатов). Вот поэтому и не очень стремятся люди залазить в эту кашу. Хотя сложного там ничего нет, в любом учебнике все расписано, и основное для Вас уже сделано.
0
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
14.05.2013, 16:29  [ТС]
Ну а Вы можете переписать код?
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.05.2013, 18:09
Конечно да. Но я уже говорил - алергия у меня на формы. И все что нужно - я Вам посоветовал. Еще раз. Создали форму. Сколько нужно данных ввести? Три? Вот три окна TextBox ввода создали. Что б их не перепутать, рядом три Label с соответствующими надписями. И одна/две кнопки - "выполнить"/"прекратить". Это все вместо Part1. Записали Ваши числа, нажали выполнить, вызвали этим к жизни мой код, который должен начаться с Part2, и который должен считать записи из окон формы и выполнить на их базе все действия. Результаты у меня выписаны в MsgBox. Вместо MsgBox, результаты заганяете опять в ту же Вашу форму. И все. Теперь при любых изменениях Вы будете иметь дело практически, только с исполняющим листингом. Но прежде чем мучить себя и Excel, почитайте про работу с формами. Если не ошибаюсь, лучше всех расписано у Гарнаев (см. шапку форума "Учебники...."). За эти дни можно было наизусть выучить... Ну и так еще, на всякий. В основном, формы создаются для того, что бы помочь юзерам правильно вводить данные, или просмотреть предварительно/промежуточно результаты. Они - не панацея!!!

Добавлено через 29 минут
Киньте сюда свой лист. Я Вам сделаю начало. Может поможет. Только не тяните, время ...
0
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
14.05.2013, 18:30  [ТС]
А как на этом форуме вставлять файлы?
0
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
14.05.2013, 18:36  [ТС]
yartsev.xlsm.zip
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.05.2013, 18:53
Нет, ну нормально. СЮДА кидайте. И в 2003-м Excel. Просто закиньте пустую книгу с каким-то своим именем.
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.05.2013, 19:06
Да, долгая история... Те части кода, про которые я Вам говорил, просто переведены в коменты. Теперь играйтесь, меняйте на форме шрифты, размеры, раскрашивайте и т.д. и т.п.
Вложения
Тип файла: xls mUserForm.xls (36.0 Кб, 3 просмотров)
1
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.05.2013, 19:10
Скажете, или хоть чуть-чуть понятней Вам стало, а то настрадался Excel. А книгу все-таки почитайте. Ох какие они уумныеееее. Аж тошно, иногда.
1
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
14.05.2013, 19:17  [ТС]
да просто мне в институте задали задание, а я не понимаю толком не чего в ней. вот нашел подобную, а переделать не могу под свое задание
0
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
14.05.2013, 19:18  [ТС]
yartsev.xls
а можно ли вот этот переделать как нибудь?
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.05.2013, 19:43
Все точно также, как и в первом варианте. Решаете в первую очередь с основным листингом. А тогда оборачиваете, как цветы в бумагу (ну вот кто до этого додумался?!!! Аж мороз по коже! Всегда кажется, что девушка когда-нибудь кому-нибудь эту бумагу на голову наденет . Если уже нет...) в форму. Почитайте же что-нибудь.
Ну в общем, опишите новое задание толком. Будет время - посмотрю. Но сделаю только основное, как в первом задании. А Вы пока читайте про формы. Фотки, как выглядят книги (бумажные, электронные) скинуть? Не обижайтесь, ну такой я. Мне б похохотать.

Добавлено через 5 минут
О! Забыл! Вот жену красиво одевать ( точнее - помогать ей это делать) - я понимаю, а из формы делать фетиш - ну зачем????!!!!
0
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 29
14.05.2013, 19:55  [ТС]
Да нет же. задание тоже самое, т.е. исходное, но я нашел похожее задание в интернете и подумал что его можно переделать, т.е запихать его в более удобную и понятную форму
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
14.05.2013, 20:37
А я обяснил. Форма - та же бумага для цветов. Ну получили Вы результаты ну в ооочееньь красивую форму. А дальше что? По другому "Вам шашечки? Или поехать" (это не мое, это я где-то вычитал). А Вы кем будете после ВУЗа? Мне кажется, у Вас максимализировано чувство прекрасного

Добавлено через 13 минут
Нет, не могу... Представляю себя пассажиром самолета, в котором перед пилотом моргают новогодние гирлянды, а что-бы посмотреть на приборы - нужно на четвереньки, и смотреть под основной панелью. У Вас в ВУЗе есть такие вещи, как эргономика и психология? За такую красоту меня бы отправили переделать все, но оценку за старательность поставили бы положительно. Но что бы подумал препод???? Про меня?

Добавлено через 18 минут
Все. Я уже насмеялся и успокоился. Короче, для большинства спецов, результаты - это как взгляд на спидометр, шкалу штангенциркуля, микрометра, рейку нивелира и т.д. Посмотрел - и все стало на свои места. Теперь понимаете?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2013, 20:37
Помогаю со студенческими работами здесь

Арифметические действия над числами. Выбор номера действия. Перевод с Pascal
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер...

Арифметические действия
Вычислить значение выражения: а) \chi + \frac{1}{3} + {\left(\chi + \frac{1}{3} \right)}^{2} б) In\left|2 - \frac{1}{{\chi }^{2}}...

Арифметические действия на C++
Подскажите , я новичок в этом , как выглядит код данного действия :

7.7 Арифметические действия
Всем доброго дня! Может быть, кто-нибудь подскажет в чем дело. В модуле формы оператор: ВсегоРеализованоТовараБезНДС =...

Действия с матрицей
Выполнить над прямоугольной матрицей В размером m х n последовательность действий, указанную в задании. а) Сформировать из столбцов В,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru