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

Произведение элементов на побочной диагонали и сумму элементов главной диагонали

04.04.2017, 20:24. Показов 2380. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста:
Для матрицы (N*M) вычислить произведение элементов на побочной диагонали и сумму элементов главной диагонали.
Всё это в Visual Basic.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2017, 20:24
Ответы с готовыми решениями:

Найти произведение элементов главной диагонали и сумму элементов побочной диагонали
Помогите пожалуйста: я осилил только блок схему, нужен код: Найти произведение элементов главной диагонали и сумму элементов побочной...

Определить сумму элементов на главной диагонали, и сумму отрицательных элементов побочной диагонали
условие: Задана матрица M*M Определить суму элементов на главной диагонали и суму отрицательных элементов побочной диагонали . ...

Определить сумму элементов на главной диагонали, и сумму отрицательных элементов побочной диагонали
Задана матрица M*M Определить суму элементов на главной диагонали и суму отрицательных элементов побочной диагонали .

8
Заблокирован
05.04.2017, 00:15
Цитата Сообщение от noizer__ Посмотреть сообщение
Для матрицы (N*M) вычислить произведение элементов на побочной диагонали и сумму элементов главной диагонали.
Всё это в Visual Basic
noizer, Бэйсик не умеет так рисовать, как Эксель (VBA). Хотя они вроде братьев.
Поэтому будет трудно проверить, что он считает.
Принцип кода легко применить к Visual Basic 6.0, легко справитесь сами.
Надо только удалить все "Cells", заменив на "Print".
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
Sub Mynoizer()
Dim a(), b()
Dim i&, j&, n&
Dim s#, p#
'--------------------
    ActiveSheet.UsedRange.EntireRow.Delete
    
    'вводим размер матрицы, например: 5
    On Error Resume Next
    n = Int(InputBox("Введите порядок матрицы", "Ввод числа"))
    If Err Then
        Err.Clear
        MsgBox "Введите целое число от 1 до 10", vbInformation
        Exit Sub
    End If
    
    'наполняем массив случайными числами от 1 до 20
    ReDim a(1 To n, 1 To n)
    Randomize
    For i = 1 To n
        For j = 1 To n
            a(i, j) = (20 * Rnd) + 1
        Next
    Next
    Cells(1, 1).Resize(n, n) = a
    
    'считаем произведение по элементам побочной диагонали
    For i = 1 To n
        j = n - i + 1
        Cells(i, j).Interior.Color = vbBlue
        p = IIf(p = 0, a(i, j), p * a(i, j))
      Next
    Cells(n + 3, 6) = p
    Cells(n + 3, 1) = "Произведение по эл-м побочной диагонали p = "
    
   'считаем сумму по элементам главной диагонали
    For i = 1 To n
        j = i
        Cells(i, j).Interior.Color = vbGreen
        s = IIf(s = 0, a(i, j), s + a(i, j))
    Next
    Cells(n + 5, 5) = s
    Cells(n + 5, 1) = "   Сумма по эл-м главной диагонали s = "
        
    End Sub
Миниатюры
Произведение элементов на побочной диагонали и сумму элементов главной диагонали  
3
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
05.04.2017, 08:18
noizer__
Для матрицы (N*M) вычислить произведение элементов на побочной диагонали и сумму элементов главной диагонали.
Вопрос
А что вы называете главной диагональю,
если M <> N ?

Добавлено через 5 минут
MyExcel_17
Вы вычисляете произведение Ненулевых элементов
побочной диагонали. А у ТС такого условия в задаче нет.
1
Заблокирован
05.04.2017, 12:13
Цитата Сообщение от noizer__ Посмотреть сообщение
Всё это в Visual Basic
noizer__, возможности Visual Basic ограничены. Очень скуп на информацию.
Считает он правильно, но нет визуального контроля. Что к чему?

Лишние комментарии в коде удалите на свой вкус.
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
Option Explicit
Private Sub Form_Activate()
Dim a(), b()
Dim i&, j&, n&
Dim s#, p#
'--------------------
    'ActiveSheet.UsedRange.EntireRow.Delete
    
    'вводим размер матрицы, например: 5
    On Error Resume Next
    n = Int(InputBox("Введите порядок матрицы", "Ввод числа"))
    If Err Then
        Err.Clear
        MsgBox "Введите целое число от 1 до 10", vbInformation
        Exit Sub
    End If
    
    'наполняем массив случайными числами от 1 до 20
    ReDim a(1 To n, 1 To n)
    Randomize
    For i = 1 To n
        For j = 1 To n
            a(i, j) = (20 * Rnd) + 1
        Next
    Next
    'Cells(1, 1).Resize(n, n) = a
    
    'считаем произведение по элементам побочной диагонали
    For i = 1 To n
        j = n - i + 1
        'Cells(i, j).Interior.Color = vbBlue
        p = IIf(p = 0, a(i, j), p * a(i, j))
      Next
    'Cells(n + 3, 6) = p
    'Cells(n + 3, 1) = "Произведение по эл-м побочной диагонали p = "
    Print "Произведение по эл-м побочной диагонали p = "; p
   
   'считаем сумму по элементам главной диагонали
    For i = 1 To n
        j = i
        'Cells(i, j).Interior.Color = vbGreen
        s = IIf(s = 0, a(i, j), s + a(i, j))
    Next
    'Cells(n + 5, 5) = s
    'Cells(n + 5, 1) = "   Сумма по эл-м главной диагонали s = "
    Print "   Сумма по эл-м главной диагонали s = "; s
End Sub
Миниатюры
Произведение элементов на побочной диагонали и сумму элементов главной диагонали  
2
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
05.04.2017, 20:31
Цитата Сообщение от echs Посмотреть сообщение
если M <> N
Цитата Сообщение от mc-black Посмотреть сообщение
В неквадратной 2-мерной матрице диагоналей по большому счёту 4 штуки.
И все они автоматически вырисовываются (числом и цветом) в проектах
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Водомерки.xls (68.0 Кб, 2 просмотра)
(единицами) и
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Снизу_вверХ.xls (64.0 Кб, 9 просмотров)
(номером "уровня")



Также в теме Afemind (Определить разность между средним арифметическим элементом главной диагонали и максимальным её элементом) есть ссылки.

А ближе всех, видимо, это:
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Кое-что с диагоналями.xls (50.0 Кб, 5 просмотров)
2
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
05.04.2017, 21:15
Цитата Сообщение от MyExcel_17 Посмотреть сообщение
возможности Visual Basic ограничены. Очень скуп на информацию.
Считает он правильно, но нет визуального контроля. Что к чему?
Так сделайте " визуальный контроль", не надо на Visual Basic бочку катить.
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
05.04.2017, 21:45
Цитата Сообщение от MyExcel_17 Посмотреть сообщение
Бэйсик не умеет так рисовать, как Эксель


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
Option Explicit
Private Sub Command1_Click()
    Dim a(), b(), i&, j&, n&, sum#, p#, x#, y#
    Do
      n = Val(InputBox("Введите порядок матрицы", "Ввод числа", 14))
    Loop Until n > 0
    ReDim a(1 To n, 1 To n)
    Randomize
    Cls
    Me.AutoRedraw = True
    p = 1
    For i = 1 To n
        For j = 1 To n
            a(i, j) = Round(20 * Rnd + 1, 2)
            x = CurrentX: y = CurrentY
            If i = j Then
               Line (x, y)-(x + 500, y + 200), RGB(150, 150, 255), BF
               PSet (x, y)
            ElseIf j = n - i + 1 Then
               Line (x, y)-(x + 500, y + 200), RGB(255, 150, 150), BF
               PSet (x, y)
            End If
            Print a(i, j) & vbTab;
        Next
        sum = sum + a(i, i)
        p = p * a(i, n - i + 1)
        Print
    Next
    Print
    Print "Произведение по эл-м побочной диагонали p = " & p
    Print "Сумма по эл-м главной диагонали = " & sum
End Sub
1
Заблокирован
05.04.2017, 21:49
Цитата Сообщение от SoftIce Посмотреть сообщение
Так сделайте " визуальный контроль", не надо на Visual Basic бочку катить
SoftIce, как умею, так и делаю. Могу только повесить на Форму ТекстБокс.
Если кому-то интересно, то будет копировать его данные и расставлять их по строкам
Догадываюсь, что Visual Basic может больше.
Но если не сопровождать вложением архива Формы и Проекта, то пользователи ничего не поймут.
Произойдёт отрыв от простого народа. Катастрофа. Разный уровень знаний.
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
Option Explicit
Private Sub Form_Activate()
Dim a(), b()
Dim i&, j&, n&
Dim s#, p#
 
    'вводим размер матрицы, например: 5
    On Error Resume Next
    n = Int(InputBox("Введите порядок матрицы", "Ввод числа"))
    If Err Then
        Err.Clear
        MsgBox "Введите целое число от 1 до 10", vbInformation
        Exit Sub
    End If
    
    'наполняем массив случайными числами от 1 до 20
    ReDim a(1 To n, 1 To n)
    Randomize
    For i = 1 To n
        For j = 1 To n
            a(i, j) = Int(20 * Rnd) + 1
            Text1.Text = Text1.Text + Format(a(i, j), " 0.0")
        Next
    Next
        
    'считаем произведение по элементам побочной диагонали
    For i = 1 To n
        j = n - i + 1
        p = IIf(p = 0, a(i, j), p * a(i, j))
      Next
    Print "Произведение по эл-м побочной диагонали p = "; p
   
   'считаем сумму по элементам главной диагонали
    For i = 1 To n
        j = i
        s = IIf(s = 0, a(i, j), s + a(i, j))
    Next
    Print "   Сумма по эл-м главной диагонали s = "; s
End Sub
Миниатюры
Произведение элементов на побочной диагонали и сумму элементов главной диагонали  
0
Заблокирован
05.04.2017, 22:04
Цитата Сообщение от SoftIce Посмотреть сообщение
Line (x, y)-(x + 500, y + 200), RGB(150, 150, 255), BF PSet (x, y)
SoftIce, спасибо. Мне ещё рано писать такой код.
Пока творчески не созрел. До вершин мастерства ещё далеко.
Миниатюры
Произведение элементов на побочной диагонали и сумму элементов главной диагонали  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.04.2017, 22:04
Помогаю со студенческими работами здесь

Найти разность произведений элементов выше главной диагонали и элементов ниже побочной диагонали матрицы
Помогите пожалуйста, Надо найти разность двух произведений: произведения элементов выше главной диагонали и произведения элементов...

Определить сумму отриц.элементов главной диагонали, произведение элементов 2-ой строки с четными индексами
Требуется определить: сумму отриц.элементов главной диагонали. произведение элементов 2-ой строки с четными индексами

Найти сумму элементов на побочной диагонали и сумму элементов ниже главной диагонали
я запутался. нашёл сумму выше главной диагонали (ошибочно, нужно ниже), а с суммой на побочной не могу разобраться даже Sub hhhhh() ...

Найти произведение двух чисел: суммы элементов главной диагонали и суммы элементов побочной диагонали
В квадратной матрице 4*4 1)найти произведение двух чисел: суммы элементов главной диагонали и суммы элементов побочной диагонали. ...

Матрица: рассчитать сумму положительных элементов 3-ей строки и произведение элементов побочной диагонали
Помогите с решением пожалуйста: Дана квадратная матрица n*n. Составить программу и рассчитать сумму положительных элементов третьей строки...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
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 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru