Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2013, 19:19   #1
aleko05
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 11
Вопрос матрица и сортировка

задали написать программу нахождения вектора с помощью матрицы и оформить это через модуль. запнулся на одном куске.
Строки матрицы упорядочить по убыванию элементов её первого столбца и в качестве вектора принять главную диагональ преобразованной матрицы
вроде все и понятно, но не знаю, как при замене менять не числа, а целые строки по значению всего лишь одного числа, и как при этом выделить главную диагональ полученной матрицы.
Код:
Procedure CreateVector(n:TIndex;a:Matrix;var x:Vector);
var
m:real;
f:boolean;
i,j:Tindex;
begin
repeat
f:=false;
         for i:=1 to n-1 do
         begin
         if a[i][1]<a[i+1][1] then
                            begin
                            f:=true;
                            m:=a[i][j];
                            a[i][j]:=a[i+1][j];
                            a[i+1][j]:=m;
                            end;
         end;
        
until not f;
end;
aleko05 вне форума Ответить с цитированием
Старый 07.01.2013, 14:20   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Насчет сортировки.
Предпочитаю сортировку вида
Код:
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then ...
Имхо, она будет чуть быстрее вашей.

Во-вторых, для сортировки строк, после того, как Вы определились, что нужно поменять i и j строку местами, нужно пройтись по всей строке и менять соответствующие элементы в массиве. Или же задать тип matrix как array[1..n] of vector. Тогда достаточно через доп переменную поменять местами два вектора-строки.

В-третьих, что бы заполнить вектор х, нужно пройтись циклом от 1 до n и присваивать i-тому элементу вектора [i,i] значение матрицы.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 07.01.2013 в 15:11.
BDA вне форума Ответить с цитированием
Старый 07.01.2013, 14:48   #3
aleko05
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 11
По умолчанию

спасибо, попробую
aleko05 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11