Вычисления в прямоугольной матрице - VB

Узнай цену своей работы

Формулировка задачи:

Добрый вечер !Нужна ваша помощь! Дана целочисленная прямоугольная матрица. Вычислить: 1)минимальный по модулю элемент массива; 2)сумму модулей элементов , расположенных после первого элемента ,равному нулю. 3)Преобразовать массив таким образом , чтобы в первой его половине распологались элементы , стоявшее в четных позициях , а во второй половине - элементы , стоявшее в нечетных позициях. похожая тема есть здесь: но там нужно вычислить в одномерном массиве состоявшим из n целочисленных элементов, а у меня в прямоугольной матрице Помогите пожалуйста понять разницу

Решение задачи: «Вычисления в прямоугольной матрице»

textual
Листинг программы
Sub Stavr1992()
Dim i%, j%, N%, M%, Min%, A()
Dim K%, R%, Sum%, D%, E%, t%
Cells.Clear
N = Int(InputBox("Введите количество строк", "Ввод данных", 6))
M = Int(InputBox("Введите количество столцов", "Ввод данных", 5))
ReDim A(1 To N, 1 To M)
For i = 1 To N
  For j = 1 To M
   Cells(i, j) = Int((20 * Rnd) + (-10))
  Next j
Next i
 
Min = Abs(Cells(1, 1))
For i = 1 To N
  For j = 1 To M
   If Abs(Cells(i, j)) <= Min And Abs(Cells(i, j)) <> 0 Then
      Min = Abs(Cells(i, j))
      End If
  Next j
Next i
Cells(N + 2, 5) = Min
Cells(N + 2, 1) = "   Минимальн. по модулю эл-т: Min = "
 
K = 0: R = 0: Sum = i + j
For i = 1 To N
  For j = 1 To M
   If Cells(i, j) = 0 And Cells(i, j) < Sum Then
      K = i
      R = j
      End If
  Next j
Next i
Cells(N + 3, 5) = K
Cells(N + 3, 1) = "   Минимальн. по Sum эл-т: i = "
Cells(N + 4, 5) = R
Cells(N + 4, 1) = "   Минимальн. по Sum эл-т: j = "
 
D = 0
For i = K To UBound(A)
  For j = R To M
   If Cells(i, j) <> 0 Then
      D = D + Cells(i, j)
      End If
  Next j
Next i
Cells(N + 5, 5) = D
Cells(N + 5, 1) = "   Сумма после 1-го нуля: D = "
 
'сделал самую быструю сортировку
'возможно ошибаюсь, ребята подскажите: как верно?
E = Cells((i + j) \ 2)
Do
  While Cells(i) < E: i = i + 1: Wend
  While Cells(j) < E: j = j - 1: Wend
  If i <= j Then
  t = Cells(i): Cells(i) = Cells(j): Cells(j) = t
  i = i + 1: j = j - 1
  End If
Loop While i <= j
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.467 из 5
Похожие ответы