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

Удалить из массива строку и столбец, на пересечении которых находится наибольший элемент

19.02.2012, 21:04. Показов 2282. Ответов 14
Метки нет (Все метки)

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

Добавлено через 4 часа 32 минуты
C Поиском наибольшего элемента справился, осталось строку и столбец удалить..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2012, 21:04
Ответы с готовыми решениями:

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

Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент
Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент. Задавать матрицу так, чтобы...

Удалить из двумерного массива строку и столбец, на пересечении которых находится минимальный элемент
Сформировать двумерный массив .Удалить из него строку и столбец, на пересечении которых находится минимальный элемент.

14
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
19.02.2012, 21:45
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
n = 8
m = 9
ReDim mas(n, m)
Max = -6
For i = 0 To n
    For j = 0 To m
        mas(i, j) = Int(Rnd * 20 - 5)
        If mas(i, j) > Max Then Max = mas(i, j): i_max = i: j_max = j
    Next
Next
ReDim temp(n, m)
temp = mas
ReDim mas(n - 1, m - 1)
For i = 0 To n - 1
    For j = 0 To m - 1
        mas(i, j) = temp(IIf(i >= i_max, i + 1, i), IIf(j >= j_max, j + 1, j))
    Next
Next
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
19.02.2012, 21:58  [ТС]
что такое IIf?
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
19.02.2012, 22:53  [ТС]
VB.NET
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
78
79
80
81
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
    'Процедура вывода результата в TextBox
    Sub vivod(ByVal Z As Double, ByVal T As TextBox)
        T.Text = CStr(Z)
    End Sub
    'Формирование массива случайным образом
    Sub rndMatr(ByRef a(,) As Single)
        Dim m, n As Integer
        ReDim a(8, 4)
        m = a.GetLength(0) - 1
        n = a.GetLength(1) - 1
        For i = 0 To m
            For j = 0 To n
                a(i, j) = CInt(Rnd(1) * 100 - 50)
            Next j
        Next
    End Sub
 
    'Процедура форматированного вывода двумерного массива 
    ' типа Single в ListBox
    Sub vivodSngMac19(ByRef x(,) As Single, ByRef LB As ListBox)
        Dim i, j, m, n As Integer
        Dim z, z1 As String
        m = x.GetLength(0) - 1
        n = x.GetLength(1) - 1
        LB.Items.Clear()
        For i = 0 To m
            z = ""
            For j = 0 To n
                z1 = Format(x(i, j), "0.000")
                If x(i, j) < 0 Then
                    z1 = Space(2) + z1
                Else
                    z1 = Space(3) + z1
                End If
                z = z + z1
            Next j
            LB.Items.Add(z)
        Next i
    End Sub
    'Процедура поиска наибольшего элемента массива
    Public Sub m0(ByRef a(,) As Single)
        Dim b(,) As Single
        Dim RawCount, ColumnCount As Integer
        Dim i, j, nn, mm As Integer
        Dim max, imax, jmax As Single
        RawCount = a.GetLength(0) : ColumnCount = a.GetLength(1)
        mm = RawCount - 1 : nn = ColumnCount - 1
        max = a(0, 0) : imax = 0 : jmax = 0
        For i = 0 To mm
            For j = 0 To nn
                If a(i, j) > max Then max = a(i, j) : imax = i : imax = j
            Next
        Next
        b = a
        ReDim b(mm - 1, nn - 1)
        For i = 0 To nn - 1
            For j = 0 To mm - 1
                b(i, j) = a(CInt((IIf(i >= imax, i + 1, i))), CInt(IIf(j >= jmax, j + 1, j)))
            Next
        Next
        vivod(imax, TextBox1)
        vivod(jmax, TextBox2)
        vivod(max, TextBox3)
        vivodSngMac19(a, ListBox2)
    End Sub
    'Процедура обработки нажатия кнопки.
    Private Sub Button1_Click(ByVal sender As System.Object, _
           ByVal e As System.EventArgs) Handles Button1.Click
        Dim a(,), b(,) As Single
        rndMatr(a)
        vivodSngMac19(a, ListBox1)
        m0(a)
 
    End Sub
 
 
End Class
Миниатюры
Удалить из массива строку и столбец, на пересечении которых находится наибольший элемент  
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
19.02.2012, 22:53  [ТС]
В чем ошибка?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
19.02.2012, 23:25
Цитата Сообщение от ...vamp Посмотреть сообщение
В чем ошибка?
А тебе на чём надо было? VB6, QBasic , VB.Net ?
Внимательней надо быть.
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
19.02.2012, 23:32  [ТС]
Ну я вроде создал в разделе Visual Basic, язык у меня VisualBasic)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
19.02.2012, 23:53
Цитата Сообщение от ...vamp Посмотреть сообщение
Button1_Click
Это явно не VB6. Определись сначала, наверное 2008 или 2010
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
19.02.2012, 23:55  [ТС]
2010.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.02.2012, 00:15
Значит или в VB.Net пиши , или переводи код , который предоставил уважаемый vstz с VB6.
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
20.02.2012, 00: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
    Public Sub m0(ByRef a(,) As Single)
        Dim b(,) As Single
        Dim RawCount, ColumnCount As Integer
        Dim i, j, nn, mm As Integer
        Dim max, imax, jmax As Single
        RawCount = a.GetLength(0) : ColumnCount = a.GetLength(1)
        mm = RawCount - 1 : nn = ColumnCount - 1
        max = a(0, 0) : imax = 0 : jmax = 0
        For i = 0 To mm
            For j = 0 To nn
                If a(i, j) > max Then
                End If
                max = a(i, j) : imax = i : jmax = j
            Next
        Next
        For i = 0 To nn - 1
            For j = 0 To mm - 1
                a(i, j) = a(((IIf(i >= imax, i + 1, i))), (IIf(j >= jmax, j + 1, j)))
            Next
        Next
        vivod(imax, TextBox1)
        vivod(jmax, TextBox2)
        vivod(max, TextBox3)
        vivodSngMac19(a, ListBox2)
    End Sub
Понять не могу, почему не работает.
Visual Basic
1
a(i, j) = a(((IIf(i >= imax, i + 1, i))), (IIf(j >= jmax, j + 1, j)))
на этой строчке выдает ошибку : "Индекс находился вне границ массива."
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
20.02.2012, 00:45
12 и 13 строчки поменяй местами

18 строчка
Visual Basic
1
a(i, j) = a(IIf(i >= imax, i + 1, i), IIf(j >= jmax, j + 1, j))
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
20.02.2012, 00:52  [ТС]
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
    Public Sub m0(ByRef a(,) As Single)
        Dim b(,) As Single
        Dim RawCount, ColumnCount As Integer
        Dim i, j, nn, mm As Integer
        Dim max, imax, jmax As Single
        RawCount = a.GetLength(0) : ColumnCount = a.GetLength(1)
        mm = RawCount - 1 : nn = ColumnCount - 1
        max = a(0, 0) : imax = 0 : jmax = 0
        For i = 0 To mm
            For j = 0 To nn
                If a(i, j) > max Then
                    max = a(i, j) : imax = i : jmax = j
                End If
            Next
        Next
        For i = 0 To nn - 1
            For j = 0 To mm - 1
                a(i, j) = a(IIf(i >= imax, i + 1, i), IIf(j >= jmax, j + 1, j))
            Next
        Next
        vivod(imax, TextBox1)
        vivod(jmax, TextBox2)
        vivod(max, TextBox3)
        vivodSngMac19(a, ListBox2)
    End Sub
Все так же на строке a(i, j) = a(IIf(i >= imax, i + 1, i), IIf(j >= jmax, j + 1, j)) "Индекс находился в не границ массива..
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
20.02.2012, 00:54
а зачем убрал -1 с 16 и 17 строки???
и еще функция ничего не возвращает - массив a попадает в функцию и там остается, т.е. исходный массив не поменяется.
1
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
20.02.2012, 00:57  [ТС]
Я вернул.
Это процедура..Мне от нее нужен только вывод массива в листбокс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2012, 00:57
Помогаю со студенческими работами здесь

Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент
Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент

Удалить строку и столбец матрицы, на пересечении которых находится максимальный элемент
Сформировать матрицу 5*5 случайных целых чисел в диапазоне от -20 до 60. Напечатать матрицу. Найти максимальный элемент и удалить строку и...

Удалить из матрицы строку и столбец, на пересечении которых находится минимальный элемент
Нужна помощь с задачками по VBA Сформировать двумерный массив. Удалить из него строку и столбец, на пересечении которых находится...

Удалить из матрицы строку и столбец, на пересечении которых расположен наибольший по модулю элемент
Из матрицы размером NxM получить матрицу размером (N-1)x(M-1) путем удаления из исходной матрицы строки и столбца, на пересечении которых...

Удалить строку и столбец, на пересечении которых расположен наибольший по модулю элемент матрицы
Задан двумерный массив 3х3. Удалить строку и столбец, на пересечении которых расположен наибольший по модулю элемент матрицы. Помогите...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru