Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.06.2012, 18:27
mxra1n mxra1n вне форума
Прохожий
 
Регистрация: 23.06.2012
Сообщения: 3
Репутация: 10
По умолчанию матрицы (delphi)

помогите пожалуйста,оочень надо

Найти минимальный положительный элемент в главной диагонали матрицы. Сформировать вектор из элементов столбца, содержащего этот элемент, упорядочить вектор по возрастанию. Поменять места-ми элементы 2-й и 4-й строк.
Ответить с цитированием
  #2  
Старый 23.06.2012, 18:54
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Ваш код? Иначе - в раздел "работа".
Ответить с цитированием
  #3  
Старый 23.06.2012, 19:02
mxra1n mxra1n вне форума
Прохожий
 
Регистрация: 23.06.2012
Сообщения: 3
Репутация: 10
По умолчанию

Код:
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  
Старый 24.06.2012, 02:26
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,048
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Мда, негусто.

В общем так.
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  
Старый 24.06.2012, 13:31
mxra1n mxra1n вне форума
Прохожий
 
Регистрация: 23.06.2012
Сообщения: 3
Репутация: 10
По умолчанию

спасибо,от души))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter