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

Поменяйте строки с наибольшим и наименьшим элементами этой матрицы между собой

18.03.2012, 15:37. Показов 1993. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана матрица размером NxM.Поменяйте строки с наибольшим и наименьшим элементами этой матрицы между собой.

Вопрос: размерность этой матрицы не дана, как тогда определить наибольший и наименьший элемент?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2012, 15:37
Ответы с готовыми решениями:

Поменять строки матрицы с наибольшим и наименьшим элементами между собой
Дана матрица размером NxM.Поменяйте строки с наибольшим и наименьшим элементами этой матрицы между собой.

Проверить, является ли равными между собой по сумме все строки матрицы
вобщем код написал, осталось сравнить все sumStr(i) and sumStolb(i) and subDiag подскажите как, а то тупняк :-| условие задачи было:...

Даны четыре натуральных числа. Определить разность между наибольшим и наименьшим из них
Даны четыре натуральных числа. Определить разность между наибольшим и наименьшим из них,используя процедуру и функцию

18
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 15:50
Цитата Сообщение от sidney cros Посмотреть сообщение
Дана матрица размером NxM.Поменяйте строки с наибольшим и наименьшим элементами этой матрицы между собой.
Вопрос: размерность этой матрицы не дана, как тогда определить наибольший и наименьший элемент?
В (a+b)^2 тоже цифры не даны... Нужна ОБЩАЯ схема решения.
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
18.03.2012, 18:45
Цитата Сообщение от sidney cros Посмотреть сообщение
Вопрос: размерность этой матрицы не дана
Ответ:
Цитата Сообщение от sidney cros Посмотреть сообщение
Дана матрица размером NxM
Цитата Сообщение от sidney cros Посмотреть сообщение
как тогда определить наибольший и наименьший элемент?
С помощью программного кода
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
21.03.2012, 20:53
Ребят,помогите с этой задачей, плиз
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 15
21.03.2012, 20:55  [ТС]
Алис а ты с какого универа?
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
21.03.2012, 21:16
Cкорее всего с твоего)
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
21.03.2012, 21:37
Ребята, только на первой странице раздела есть не один пример создания массива MxN !!! Уж в четыре руки можно (для начала) составить свой массив ??!!
А попутно может найдёте и как Макс/Мин находят, а там уже мелочи останутся !! (в Lego играли ??)
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
21.03.2012, 21:47
т.е потом надо будет присвоить новые номера строк и столбцов?
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
21.03.2012, 22:21
Цитата Сообщение от Alisa2 Посмотреть сообщение
т.е потом надо будет присвоить новые номера строк и столбцов?
Пото надо надо будет поменять местами ВСЕ элементы двух строк массива - строки с Макс и строки с Мин... Начинайте, там разберёмся
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
21.03.2012, 22:34
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
Private Sub Command1_Click()
Dim a(), n%, m%, t%, i%, j%
Dim tmp, i_mn%, i_mx%
n = 10: m = 5
ReDim a(1 To n, 1 To m)
Cls
For i = 1 To n
  For j = 1 To m
     a(i, j) = Int(Rnd * 89) + 10
  Next
Next
 
 i_mn = ind_mm%(a(), -1)
 i_mx = ind_mm%(a(), 1)
 
For j = 1 To m
 tmp = a(i_mn, j)
   a(i_mn, j) = a(i_mx, j)
     a(i_mx, j) = tmp
Next
 
Call print_m("исходный массив", a(), i_mn, i_mx)
Call print_m("полученный массив", a(), i_mn, i_mx)
End Sub
Function ind_mm%(mass(), t%)
Dim i%, j%, ui%, uj%, mm
ui = UBound(mass, 1): uj = UBound(mass, 2)
mm = mass(1, 1): ind_mm = 1
For i = 1 To ui
For j = 1 To uj
 If mm * t < mass(i, j) * t Then
     mm = mass(i, j): ind_mm = i
 End If
Next
Next
End Function
Sub print_m(z$, mass(), r1%, r2%)
Dim i%, j%, ui%, uj%
ui = UBound(mass, 1): uj = UBound(mass, 2)
Print: Print z: Print
For i = 1 To ui
For j = 1 To uj
Me.ForeColor = IIf((r1 > 0 And r1 = i) Or (r2 > 0 And r2 = i), vbRed, 0)
 Print mass(i, j); vbTab;
Next
Print
Next
End Sub
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
21.03.2012, 23:36
Задаю массив и заполняю его
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Command2_Click()
Dim A(1 To 3, 1 To 3), i, j As Integer
For i = 1 To 3
For j = 1 To 3
  A(i, j) = Val(InputBox("Ââåäèòå ÷èñëî", "Çàïîëíåíèå ìàññèâà"))
Next j
Next i
End Sub
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
22.03.2012, 00:27
Цитата Сообщение от Alisa2 Посмотреть сообщение
Задаю массив и заполняю его
Это ты какое задание выполняешь ??
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 15
22.03.2012, 08:41  [ТС]
неа точно не смоего))))

Добавлено через 15 секунд
факультет какой

Добавлено через 1 минуту
а почему от 1 до 3.....матрица размерностью неизвестна то есть она бесконечна
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.03.2012, 10:25
gaw, похоже Ваш ответ не заметили.
Или решение для студентов слишком мудрёное, им бы попроще.
Кстати, в том виде код ничего не меняет. Осмелюсь подправить немного:
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
Private Sub Command1_Click()
Dim a(), n%, m%, t%, i%, j%
Dim tmp, i_mn%, i_mx%
n = 10: m = 5
ReDim a(1 To n, 1 To m)
Cls
For i = 1 To n
  For j = 1 To m
     a(i, j) = Int(Rnd * 89) + 10
  Next
Next
 
 i_mn = ind_mm%(a(), -1)
 i_mx = ind_mm%(a(), 1)
 
Call print_m("исходный массив", a(), i_mn, i_mx)
 
For j = 1 To m
 tmp = a(i_mn, j)
   a(i_mn, j) = a(i_mx, j)
     a(i_mx, j) = tmp
Next
 
 
Call print_m("полученный массив", a(), i_mn, i_mx)
End Sub
Function ind_mm%(mass(), t%)
Dim i%, j%, ui%, uj%, mm
ui = UBound(mass, 1): uj = UBound(mass, 2)
mm = mass(1, 1): ind_mm = 1
For i = 1 To ui
For j = 1 To uj
 If mm * t < mass(i, j) * t Then
     mm = mass(i, j): ind_mm = i
 End If
Next
Next
End Function
Sub print_m(z$, mass(), r1%, r2%)
Dim i%, j%, ui%, uj%
ui = UBound(mass, 1): uj = UBound(mass, 2)
Print: Print z: Print
For i = 1 To ui
For j = 1 To uj
Me.ForeColor = IIf((r1 > 0 And r1 = i) Or (r2 > 0 And r2 = i), vbRed, 0)
 Print mass(i, j); vbTab;
Next
Print
Next
End Sub
2
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 15
22.03.2012, 10:29  [ТС]
ага слишком замудрено....можно чуть чуть попроще, а то начав разбираться в программе еще больше запутался
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.03.2012, 11:02
Цитата Сообщение от sidney cros Посмотреть сообщение
чуть чуть попроще
Проще некуда
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
Private Sub Command1_Click()
Dim a() As Single, n As Integer, m As Integer, i As Integer, j   As Integer
Dim temp As Single, min As Single, max As Single, i_min As Integer, i_max As Integer
n = InputBox("Количество строк =", "Ввод данных", 10): m = InputBox("Количество столбцов =", "Ввод данных", 5)
ReDim a(1 To n, 1 To m)
Cls
Randomize
Print "Исходный массив": Print
 
For i = 1 To n
  For j = 1 To m
     a(i, j) = Int(Rnd * 89) + 10
     Print vbTab; a(i, j);
  Next
  Print
Next
Print
 
min = a(1, 1): max = a(1, 1): i_min = 1: i_max = 1
 
For i = 1 To n
  For j = 1 To m
    If min > a(i, j) Then min = a(i, j): i_min = i
    If max < a(i, j) Then max = a(i, j): i_max = i
  Next
Next
 
If i_min = i_max Then Print "Максимальный и минимальный элемент находятся в одной строке"
Print
Print "Минимальный элемент = " & min & " , в " & i_min & " строке."
Print "Максимальный элемент = " & max & " , в " & i_max & " строке."
Print
 
For j = 1 To m
   temp = a(i_min, j): a(i_min, j) = a(i_max, j): a(i_max, j) = temp
Next
 
Print "Полученный массив"
Print
 
For i = 1 To n
  For j = 1 To m
      Print vbTab; a(i, j);
  Next
  Print
Next
 
End Sub
1
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 15
22.03.2012, 17:34  [ТС]
спасиб)))
1.Dim temp As Single а что обозначает temp
2.Print vbTab; a(i, j); vbTab??????
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.03.2012, 17:46
Таб
Таб
Функция Tab
Tab(n)
Функция Tab используется вместе с инструкцией Print # или методом Print для указания позиции вывода для создания более красивого вида. Больше ее нигде не используют, поэтому назвать функцией ее можно назвать весьма условно. При использовании метода Print и функции Tab поле печати разбивается на позиции фиксированной ширины, ширина которых равняется средней ширине всех символов текущего размера в используемом шрифте. Следует отметить, что не существует зависимости между числом напечатанных символов и числом позиций фиксированной ширины, занимаемых этими символами. Например, прописная буква "W" шире одной позиции, а строчная буква "I" уже

Возвращаемое значение
Функция Tab что-то возвращает, раз это функция. Только что!

Параметры
n
Необязательный аргумент задает номер столбца, к которому следует перейти перед выводом на экран или печать следующего выражения из списка. Если аргумент опущен, Tab устанавливает курсор в начало следующей зоны печати. Это позволяет использовать функцию Tab вместо запятой в качестве разделителя списка, если в текущей национальной настройке запятая используется в качестве десятичного разделителя.
Если текущая позиция печати на текущей строке больше n, функция Tab вызывает переход к n-му столбцу на следующей строке вывода. Если n меньше 1, Tab переходит к столбцу 1. Если n больше, чем ширина строки вывода, следующая позиция печати вычисляется по приведенной ниже формуле:
n Mod ширина

Например, если ширина равняется 80, то выражение Tab(90) установит следующую позицию печати равной 10 (остаток от деления 90 на 80). Если n меньше, чем текущая позиция печати, печать начинается в вычисленной позиции печати в следующей строке. Если вычисленная позиция печати больше, чем текущая позиция печати, печать начинается в вычисленной позиции печати в той же строке. Крайней левой позицией печати строки вывода всегда является 1. При печати в файл с помощью инструкции Print # крайней правой позицией печати является текущая ширина результирующего файла, которая устанавливается с помощью инструкции Width #
Примечание: Убедитесь, что табличные колонки достаточно широки для размещения широких букв

Пример

' В данном примере функция Tab
' используется для позиционирования вывода
' в файле и в окне Отладка
' Функцию Tab можно использовать в инструкции Print #
Open "TESTFILE" For Output As #1 ' открываем файл для записи
' Второе слово печатается в столбце 20
Print #1, "Всем"; Tab(20); "привет"
' Если аргумент опущен, курсор
' перемещается в начало следующей зоны печати
Print #1, "Русский"; Tab; "Проект"
Close #1 ' Закрываем файл

' Следующая инструкция выводит текст
' в окно Отладка с помощью метода Print,
' печатая текст,начиная со столбца 10

Debug.Print Tab(10); "Начиная со столбца 10"


temp - просто переменная
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
22.03.2012, 18:11
Спасибо большое! Откорректирую,если что
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2012, 18:11
Помогаю со студенческими работами здесь

Определение числа элементов между наименьшим и наибольшим элементами матрицы
Ввести матрицу порядка N*M. Определить количество элементов между наименьшим и наибольшим элементами матрицы.Написать на Си; Сам массив я...

Поменять местами строки матрицы с наибольшим и наименьшим элементами
2. Дано натуральное число m, матрица A. Поменять местами строки с наибольшим и наименьшим элементами.

Найти сумму элементов в каждой строке матрицы между наибольшим и наименьшим её элементами
Найти сумму элементов в каждой строке матрици между наибольшим её элементом и наименьшим. Использовать подпрограмму.

Объясните принцип действия программы, меняющей местами строки матрицы с наибольшим и наименьшим элементами
Доброго времени суток. Задание звучит так: В произвольной матрице A поменять местами строку, содержащую минимальный элемент матрицы,...

Найти сумму чисел, расположенных между наибольшим и наименьшим элементами
Дана последовательность из 10 чисел. Найти сумму чисел, расположенных между наибольшим и наименьшим элементами


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru