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

С помощью перестановок поместить наибольший элемент матрицы в верхний левый угол

04.04.2012, 14:55. Показов 1543. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана матрица размером п х т. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался в верхнем левом углу
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.04.2012, 14:55
Ответы с готовыми решениями:

Дана матрица размером m x n. Переместить наибольший элемент матрицы в ее верхний левый угол
Помогите пожалуйста. Дана матрица размером m x n. Переставляя ее строки и столбцы, переместить наибольший элемент матрицы в ее верхний...

Переместить наибольший элемент матрицы в верхний левый угол путем перестановок строк и столбцов
Дана вещественная матрица размером n×m. Переставляя её строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался...

Переставляя строки и столбцы матрицы, поместить наибольший элемент (один из них) в левый верхний угол
Пожалуйста помогите!! очень срочна нужна помощь, cоставьте программу, упорядочивающую по уменьшению элементы Добавлено через 1 минуту ...

5
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14
04.04.2012, 20:13
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
Sub TransMax(A() as Double)
Dim iMax as integer, jMax as integer ' координаты макс. элемента
Dim aMax As Double                      ' макс. элемент
Dim i as integer,j as integer
Dim Tmp as Double
 
      '::: Ищем макс. элемент
 
      aMax=A(1,1)
      iMax=1
      jMax=1
 
      For i=1 to n
           For j=1 to m
                If A(i,j) > aMax then
                   aMax=A(i,j)
                   iMax=i
                   jMax=j
                End if
           Next j
      Next i
 
      if (iMax=1) and (jMax=1) then Exit Sub ' Элемент уже там, где надо
 
      '::: меняем 1-ю и iMax-ю строки (чтобы элемент оказался в первой строке)
 
      for j=1 to m
          Tmp=A(iMax,j)
          A(iMax,i)= A(1,i)
           A(1,i)=Tmp
      Next j
 
      '::: меняем 1-й и jMax-й столбцы (чтобы элемент встал на место)
 
      for i=1 to n
          Tmp=A(i,jMax)
          A(i,jMax)= A(1,jMax)
           A(1,jMax)=Tmp
      Next i
 
End Sub
1
0 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 18
04.04.2012, 20:42  [ТС]
а как ввести массив и вывести результат?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14
04.04.2012, 21:13
Во-первых, я чуть-чуть ошибся с индексами и размерности матрицы надо включить в список параметров. Правильно вот так:
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
Sub TransMax(A() as Double,n as integer, m as integer) '::: размерности добавил
Dim iMax as integer, jMax as integer ' координаты макс. элемента
Dim aMax As Double                      ' макс. элемент
Dim i as integer,j as integer
Dim Tmp as Double
 
     '::: Ищем макс. элемент
 
     aMax=A(1,1)
     iMax=1
     jMax=1
 
     For i=1 to n
          For j=1 to m
               If A(i,j) > aMax then
                  aMax=A(i,j)
                  iMax=i
                  jMax=j
               End if
          Next j
     Next i
 
     if (iMax=1) and (jMax=1) then Exit Sub ' Элемент уже там, где надо
 
     '::: меняем 1-ю и iMax-ю строки (чтобы элемент оказался в первой строке)
 
     for j=1 to m
         Tmp=A(iMax,j)
         A(iMax,j)= A(1,j)  ' было i
          A(1,j)=Tmp        ' было i
     Next j
 
     '::: меняем 1-й и jMax-й столбцы (чтобы элемент встал на место)
 
     for i=1 to n
         Tmp=A(i,jMax)
         A(i,jMax)= A(1,jMax)
          A(1,jMax)=Tmp
     Next i
 
End Sub
А как ввести и распечатать, зависит от среды выполнения. Можно универсально:

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
Sub Main
Dim n as integer, m as integer, i as integer, j as integer
Dim Arr() as Double
 
      n=Val(InputBox("Введите n"))
      if n=0 then Exit Sub
 
      m=Val(InputBox("Введите m"))
      if n=0 then Exit Sub
 
      '::: Выделение памяти       
 
      Redim Arr(1 to n, 1 to m) as double
 
      '::: Ввод 
 
      For i=1 to n
           For j=1 to m
                Arr(i,j)=Val(InputBox("Введите A(" & Cstr(i) & "," & Cstr(j) ")"))
           Next j
      Next i
 
      '::: Перестановка 
 
      TransMax Arr(),n,m
 
      '::: Печать в окне отладки
 
      For i=1 to n
           For j=1 to m
               Debug.Print i;" ";j;" "; Arr(i,j)
           Next j
      Next i
 
End Sub
Только не задавай большие размерности - замучишься вводить...
1
0 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 18
04.04.2012, 21:19  [ТС]
Прости за наглость)) а ты не мог бы скомпоновать всё это в один код, у меня совсем туго с программированием))
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14
04.04.2012, 22:04
Вот проверенный код (проверял в Exel-е). Работает верно.

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
Sub TransMax(A() As Double, n As Integer, m As Integer)
Dim iMax As Integer, jMax As Integer    ' координаты макс. элемента
Dim aMax As Double                      ' макс. элемент
Dim i As Integer, j As Integer
Dim Tmp As Double
 
    '::: Ищем макс. элемент
 
    aMax = A(1, 1)
    iMax = 1
    jMax = 1
 
    For i = 1 To n
         For j = 1 To m
              If A(i, j) > aMax Then
                 aMax = A(i, j)
                 iMax = i
                 jMax = j
              End If
         Next j
    Next i
 
    If (iMax = 1) And (jMax = 1) Then Exit Sub ' Элемент уже там, где надо
 
    '::: меняем 1-ю и iMax-ю строки (чтобы элемент оказался в первой строке)
 
    For j = 1 To m
        Tmp = A(iMax, j)
        A(iMax, j) = A(1, j) ' было i
         A(1, j) = Tmp     ' было i
    Next j
 
    '::: меняем 1-й и jMax-й столбцы (чтобы элемент встал на место)
 
    For i = 1 To n
        Tmp = A(i, jMax)
        A(i, jMax) = A(i, 1)
        A(i, 1) = Tmp
    Next i
 
End Sub
 
Sub Main()
Dim n As Integer, m As Integer, i As Integer, j As Integer
Dim Arr() As Double
 
     n = Val(InputBox("Введите n"))
     If n = 0 Then Exit Sub
 
     m = Val(InputBox("Введите m"))
     If n = 0 Then Exit Sub
 
     '::: Выделение памяти
 
     ReDim Arr(1 To n, 1 To m) As Double
 
     '::: Ввод
 
     For i = 1 To n
          For j = 1 To m
               Arr(i, j) = Val(InputBox("Введите A(" & CStr(i) & "," & CStr(j) & ")"))
          Next j
     Next i
 
     '::: Перестановка
 
     TransMax Arr(), n, m
 
     '::: Печать в окне отладки
 
     For i = 1 To n
          For j = 1 To m
              Debug.Print i; " "; j; " "; Arr(i, j)
          Next j
     Next i
 
End Sub

Вводишь n=3 m=3
Матрица:

1 2 3
1 1 1
2 6 1

Вывод:

1 1 6
1 2 2
1 3 1
2 1 1
2 2 1
2 3 1
3 1 2
3 2 1
3 3 3

Что соответствует матрице

6 2 1
1 1 1
2 1 3
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2012, 22:04
Помогаю со студенческими работами здесь

Переместить наибольший элемент матрицы в левый верхний угол
дано действительную матрицу N*N. Сделать так, чтобы один с элементов матрицы, что имеет наибольшее значения, размещался бы в левом верхнем...

Путём перестановки элементов матрицы поместить её максимальный элемент в левый верхний угол
Помогите пожалуйста бездарю( дана целочисленная квадратная матрица размером 4х4 написать программу, содержащую функцию, которая путём...

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

Переставляя строки и столбцы матрицы, переместить наибольший элемент в верхний левый угол
Дана матрица NxM. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. Определить можно ли таким же...

Переставляя строки и столбцы, переместить первый наибольший элемент матрицы в верхний левый угол
Дана матрица. Переставляя ее строки и столбцы, переместить первый наибольший элемент матрицы в верхний левый угол.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru