|
#1
|
|||
|
|||
матрицы (delphi)
помогите пожалуйста,оочень надо
Найти минимальный положительный элемент в главной диагонали матрицы. Сформировать вектор из элементов столбца, содержащего этот элемент, упорядочить вектор по возрастанию. Поменять места-ми элементы 2-й и 4-й строк. |
#2
|
|||
|
|||
Ваш код? Иначе - в раздел "работа".
|
#3
|
|||
|
|||
Код:
var mass:array[1..100,1..100] of integer; i,j,n:integer; n:=mass[1,1]; for j:=1 to 100 do begin for i:=1 to 100 do begin if i=j then begin if (mass[i,j]>0) and (mass[i,j]<n) then n:=mass[i,j]; end; end; end; Последний раз редактировалось lmikle, 23.06.2012 в 19:33. |
#4
|
|||
|
|||
Мда, негусто.
В общем так. 1. Тебе нужна функция, по переданным i, j рассчитывающая значение в ячейке. 2. Первый цикл, находжение макс. элемента диагонали. Сохраняем так же индекс. 3. По найденному выше индексу строим массив (одномерный) для нужного столбца. 4. Сортируем полученный массив - да хоть пузырек - он самый простой в реализации. 5. Делаем замену. 6. Выводим результат. Как-то так (кое-что лень писать, так как и так понятно, что делать): Код:
function GetValue(i, j : Integer) : Double; begin // Здесь твоя формула. end; var I, J, Idx : Integer; vMax : Double; A : Array Of Double; begin // Max элемент vMax := GetValue(1,1); Idx := 1; For I := 2 To N Do // N - размер матрицы If vMax < GetValue(I,I) Then Begin vMax := GetValue(I,I); Idx := I; End; // Получаем столбец SetLength(A,N); For I := 1 To N Do A[I-1] := GetValue(Idx,I); // Сортировка For I := 0 To N-2 Do For J := I+1 To N-1 Do IF A[i] > A[J] Then Begin vMax := A[i]; A[i] := A[J]; A[J] := vMax; End; // Обмен (индекс дин. массива начинается с 0) vMax := A[2-1]; A[2-1] := A[4-1]; A[4-1] := vMax; // Тут делаешь вывод получившегося массива A ... end; |
#5
|
|||
|
|||
спасибо,от души))
|