Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблеммы с реализацией сортировки массива 
:(
    Опции темы
Роман
Дата 7.6.2005, 18:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Добрый день. Столкнулся со следующей проблеммой. имеется двухмерный массив размером NxN (квадратная матрица). необходимо найти сумму прямой и обратной диагонали. с прямой диагональю все просто, что-то в таком духе:
for i = 0 to n
for j = 0 to n
if i=j then
sum=sum+A(i,j)
end if
next j
next i
Проблемма с обратной диагональю. Каким образом можно найти сумму обратной диагонали.
  Вверх
ChofCh
Дата 7.6.2005, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 27.4.2005
Где: г. Долгопрудный

Репутация: нет
Всего: 2



smile Не обижайся, просто зачем в твоем коде нужна переменная j? Ну да ладно. Собственно, я бы решал эту задачу следущим образом:
Код

const n=9 'n-количество строк/столбцов -1 (т.е. данный пример работает с матрицей 10х10)
Sub main
Dim A(0 to n, 0 to n) As Double
Dim S As Double, i as long
'Здесь мы матрицу чем-нибудь заполняем
S=0
For i=0 to n
S=S+A(i,i)
Next i
MsgBox "Сумма элементов на прямой диагонали: " & CStr(S)
S=0
For i=0 to n
 S=S+A(i,n-i)
Next i
MsgBox "Сумма элементов на обратной диагонали: " & CStr(S)
End Sub


PM MAIL ICQ   Вверх
cardinal
Дата 7.6.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Код

Option Explicit

Private Sub Command1_Click()
Dim i As Integer
Dim sum1 As Integer ' прямая диагональ
Dim sum2 As Integer ' обратная диагональ

' матрица размером 4x4
Dim matrix(1 To 4, 1 To 4) As Integer

matrix(1, 1) = 8
matrix(1, 2) = 6
matrix(1, 3) = 3
matrix(1, 4) = 1

matrix(2, 1) = 5
matrix(2, 2) = 3
matrix(2, 3) = 2
matrix(2, 4) = 0

matrix(3, 1) = 4
matrix(3, 2) = 9
matrix(3, 3) = 7
matrix(3, 4) = 8

matrix(4, 1) = 3
matrix(4, 2) = 0
matrix(4, 3) = 1
matrix(4, 4) = 2

For i = 1 To 4
    sum1 = sum1 + matrix(i, i)
    sum2 = sum2 + matrix(i, 5 - i)
Next

End Sub

Добавлено @ 20:41
ChofCh, ага smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 8.6.2005, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Код

Option Explicit

Private Sub Command1_Click()
Dim Matrix(4, 4) As Integer
Dim i As Integer, j As Integer
Dim sum As Integer
Dim reciprocal As Integer

Print

For i = 0 To 4 ' мой код ;=)
    For j = 0 To 4
    Randomize
    Matrix(i, j) = Int(Rnd * -100)
    Print "  "; Matrix(i, j);
    Next j
    Print
Next i

For i = 0 To 4 'твой код, Романыч ;=)
For j = 0 To 4
If i = j Then
sum = sum + Matrix(i, j)
reciprocal = reciprocal + Matrix(i, 4 - i) ' и код cardinal'a ;=)
End If
Next j
Next i

Print "Сумма прямой диагонали = " & sum ' наш результат ;=))
Print "Сумма обратной = " & reciprocal
' итого: сообразили на троих, что называется ;=)))
End Sub



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0671 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.