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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2016, 14:42   #1
Vebkor
Новичок
Джуниор
 
Регистрация: 27.01.2016
Сообщений: 2
По умолчанию Работа с матрицами (Visual Basic 6.0)

Задача звучит так: Дана матрица X(n,n), нужно найти столбцы в которых есть одинаковые элементы и сумму этих элементов.

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

Код:
 
Dim a As Integer, b As Integer, N As Double, i As Integer, j As Integer, sum As Integer, t As Integer, k As Integer, g As Single 
Private Sub Command4_Click()

Call Clear ' Очистка полей
N = 4
a = 1
b = 9
g = 0
sum = 0
ReDim X(N - 1, N - 1) As Single
Call Input_Matrix(X, a, b) ' Генерация матрицы
Call Output_Matrix(X)      ' Вывод матрицы

For i = 0 To N - 1
    For k = i + 1 To N - 1
        For j = 0 To N - 1
            If X(i, j) = X(k, j) Then
                sum = X(i, j) + X(k, j)
                Label2.Caption = Label2.Caption & j + 1 & "   "
                Label1.Caption = Label1.Caption & sum & "   "
            End If
        Next j
    Next k
Next i

End Sub

Sub Input_Matrix(X() As Single, a As Integer, b As Integer)
    Randomize Timer

For i = LBound(X) To UBound(X)
    For j = LBound(X) To UBound(X)
        X(i, j) = Fix(Rnd * (b - a + 1)) + a
    Next j
Next i
    
End Sub

Sub Output_Matrix(X() As Single)

For i = LBound(X) To UBound(X)
    For j = LBound(X) To UBound(X)
        Label3.Caption = Label3.Caption & X(i, j) & "  "
    Next j
    Label3.Caption = Label3.Caption & Chr(13)
Next i
    
End Sub
Вот пример работы программы если в столбце два одинаковых числа:


А это если чисел больше двух:



Я понимаю как работает моя программа и почему она выдает такой результат. Я могу решить эту задачу для матрицы строго заданного размера, но если размер матрицы неизвестен? То есть решение для матрицы 4х4 не будет актуально в матрице 5х5. Короче ничего в голову не приходит, может кто-то тут подскажет. Спасибо если дочитали

P.S. Простите за функции и за лишние переменные, просто у меня на этой форме еще задачи

Последний раз редактировалось Vebkor; 27.01.2016 в 16:18.
Vebkor вне форума Ответить с цитированием
Старый 27.01.2016, 16:19   #2
Vebkor
Новичок
Джуниор
 
Регистрация: 27.01.2016
Сообщений: 2
По умолчанию

Никто бейсик не знает что ли?
Vebkor вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами, матрицами(Visual С++, консольное приложение) Sobic Помощь студентам 1 07.11.2015 10:28
Работа с матрицами (Visual С++) assasin612 Помощь студентам 1 15.06.2014 09:19