0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 15
1

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

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

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

Вопрос: размерность этой матрицы не дана, как тогда определить наибольший и наименьший элемент?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2012, 15:37
Ответы с готовыми решениями:

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

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

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

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

18
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 15:50 2
Цитата Сообщение от sidney cros Посмотреть сообщение
Дана матрица размером NxM.Поменяйте строки с наибольшим и наименьшим элементами этой матрицы между собой.
Вопрос: размерность этой матрицы не дана, как тогда определить наибольший и наименьший элемент?
В (a+b)^2 тоже цифры не даны... Нужна ОБЩАЯ схема решения.
0
465 / 179 / 15
Регистрация: 25.02.2012
Сообщений: 417
Записей в блоге: 2
18.03.2012, 18:45 3
Цитата Сообщение от sidney cros Посмотреть сообщение
Вопрос: размерность этой матрицы не дана
Ответ:
Цитата Сообщение от sidney cros Посмотреть сообщение
Дана матрица размером NxM
Цитата Сообщение от sidney cros Посмотреть сообщение
как тогда определить наибольший и наименьший элемент?
С помощью программного кода
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
21.03.2012, 20:53 4
Ребят,помогите с этой задачей, плиз
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 15
21.03.2012, 20:55  [ТС] 5
Алис а ты с какого универа?
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
21.03.2012, 21:16 6
Cкорее всего с твоего)
0
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
21.03.2012, 21:37 7
Ребята, только на первой странице раздела есть не один пример создания массива MxN !!! Уж в четыре руки можно (для начала) составить свой массив ??!!
А попутно может найдёте и как Макс/Мин находят, а там уже мелочи останутся !! (в Lego играли ??)
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 7
21.03.2012, 21:47 8
т.е потом надо будет присвоить новые номера строк и столбцов?
0
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
21.03.2012, 22:21 9
Цитата Сообщение от Alisa2 Посмотреть сообщение
т.е потом надо будет присвоить новые номера строк и столбцов?
Пото надо надо будет поменять местами ВСЕ элементы двух строк массива - строки с Макс и строки с Мин... Начинайте, там разберёмся
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
21.03.2012, 22:34 10
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 11
Задаю массив и заполняю его
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
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
22.03.2012, 00:27 12
Цитата Сообщение от Alisa2 Посмотреть сообщение
Задаю массив и заполняю его
Это ты какое задание выполняешь ??
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 15
22.03.2012, 08:41  [ТС] 13
неа точно не смоего))))

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

Добавлено через 1 минуту
а почему от 1 до 3.....матрица размерностью неизвестна то есть она бесконечна
0
es geht mir gut
11267 / 4749 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.03.2012, 10:25 14
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  [ТС] 15
ага слишком замудрено....можно чуть чуть попроще, а то начав разбираться в программе еще больше запутался
0
es geht mir gut
11267 / 4749 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.03.2012, 11:02 16
Цитата Сообщение от 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  [ТС] 17
спасиб)))
1.Dim temp As Single а что обозначает temp
2.Print vbTab; a(i, j); vbTab??????
0
es geht mir gut
11267 / 4749 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.03.2012, 17:46 18
Таб
Таб
Функция 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 19
Спасибо большое! Откорректирую,если что
0
22.03.2012, 18:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2012, 18:11
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru