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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.12.2010, 15:21
papapadzaepalo papapadzaepalo вне форума
Прохожий
 
Регистрация: 20.12.2010
Сообщения: 6
Репутация: 10
По умолчанию Может кто нибудь решить?

Назовем допустимым преобразованием матрицы перестановку двух строк или двух столбцов. Для действительной квадратной матрицы порядка n с помощью допустимых преобразований добиться того, чтобы элемент мат-рицы с наименьшим по модулю значением располагался в нижнем правом углу матрицы. Исходную матрицу вводить с клавиатуры...

пожалуйста помогите кто нить... и если можно с пояснением...За ранее благодарю...
Ответить с цитированием
  #2  
Старый 20.12.2010, 15:37
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

1) пробегаешься по матрице. Ищешь минимальный по модулю элемент. Сохраняешь его строку и столбец (назовем их соответственно k и m).
2) меняешь строку k с последней, потом столбец m с последним.
3) радуешься результату
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 20.12.2010, 16:37
papapadzaepalo papapadzaepalo вне форума
Прохожий
 
Регистрация: 20.12.2010
Сообщения: 6
Репутация: 10
Смущение ы

А программу не сможеш?
Ответить с цитированием
  #4  
Старый 20.12.2010, 17:53
stil stil вне форума
Новичок
 
Регистрация: 24.11.2010
Сообщения: 91
Репутация: 41
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var i,j,i1,j1,n: integer;
    a: array of array of real;
    b: array of real;
    min:real;
begin
write('n=');
read(n);
setLength(a,n,n);
setLength(b,n);
for i:=0 to n-1 do
  for j:=0 to n-1 do begin
    write('a[',i,',',j,']');
    read(a[i,j]);
  end;
min:=abs(a[0,0]);
for i:=0 to n-1 do
  for j:=0 to n-1 do begin
    if min>abs(a[i,j]) then begin
      min:=abs(a[i,j]);
      i1:=i;
      j1:=j;
    end;
  end;
for i:=0 to n-1 do begin
  b[i]:=a[i1,i];
  a[i1,i]:=a[n-1,i];
  a[n-1,i]:=b[i];
end;
for i:=0 to n-1 do begin
  b[i]:=a[i,j1];
  a[i,j1]:=a[i,n-1];
  a[i,n-1]:=b[i];
end;
for i:=0 to n-1 do begin
  for j:=0 to n-1 do
    write(a[i,j]:6:2,' ');
  writeln;
end;
readln;
readln;
readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.

Последний раз редактировалось stil, 20.12.2010 в 18:36.
Ответить с цитированием
  #5  
Старый 21.12.2010, 19:27
papapadzaepalo papapadzaepalo вне форума
Прохожий
 
Регистрация: 20.12.2010
Сообщения: 6
Репутация: 10
По умолчанию

Дружище а можеш через форму??? пожалуйста... сроки поджимают просто... если сможеш буду благодарен
Ответить с цитированием
  #6  
Старый 21.12.2010, 20:08
stil stil вне форума
Новичок
 
Регистрация: 24.11.2010
Сообщения: 91
Репутация: 41
По умолчанию вот на форму

Код:
{размерность массива}
procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.ColCount:=StrToInt(edit1.text);
StringGrid1.RowCount:=StrToInt(edit1.text);
end;
{перестановка}
procedure TForm1.Button2Click(Sender: TObject);
var i,j,i1,j1,n: integer;
    b: array of real;
    min:real;
begin
n:=StringGrid1.ColCount;
setLength(b,n);
min:=abs(StrToFloat(StringGrid1.cells[0,0]));
for i:=0 to StringGrid1.ColCount-1 do
  for j:=0 to StringGrid1.RowCount-1 do begin
    if min>abs(StrToFloat(StringGrid1.cells[i,j])) then begin
      min:=abs(StrToFloat(StringGrid1.cells[i,j]));
      i1:=i;
      j1:=j;
    end;
  end;
for i:=0 to n-1 do begin
  b[i]:=StrToFloat(StringGrid1.cells[i1,i]);
  StringGrid1.cells[i1,i]:=StringGrid1.cells[n-1,i];
  StringGrid1.cells[n-1,i]:=FloatToStr(b[i]);
end;
for i:=0 to n-1 do begin
  b[i]:=StrToFloat(StringGrid1.cells[i,j1]);
  StringGrid1.cells[i,j1]:=StringGrid1.cells[i,n-1];
  StringGrid1.cells[i,n-1]:=FloatToStr(b[i]);
end;
end;
У StringGrid1 св-во Options->doEditing->true
Ответить с цитированием
  #7  
Старый 23.12.2010, 17:37
papapadzaepalo papapadzaepalo вне форума
Прохожий
 
Регистрация: 20.12.2010
Сообщения: 6
Репутация: 10
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);


ошибка вот тут

[Error] Project2.dpr(7): ';' expected but '.' found такая
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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