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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2010, 17:20   #1
F1eCSo
Новичок
Джуниор
 
Регистрация: 04.02.2010
Сообщений: 1
По умолчанию Поиск минимального элемента в матрице

Задание такое:
В матрице С [5 х 5] найти строку и столбец, в которых находится минимальный элемент, и заменить элементы этой строки на элементы этого столбца.

Не получается вывести номер строки и столбца где находится минимальный элемент и не могу вывести новую матрицу, где заменяются элементы строки элементами столбца
Код:
Код:
unit Lab_8;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls;

type
    Tmatr = array of array of integer;
    TForm1 = class(TForm)
    Image1: TImage;
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Memo3: TMemo;
    Memo4: TMemo;
    Memo5: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  Fmatr:Tmatr;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  k,l:integer;

implementation

{$R *.dfm}

// ****************************************************************

procedure TForm1.FormCreate(Sender: TObject);
begin
doublebuffered:=TRUE;
end;

// ****************************************************************

procedure TForm1.Button3Click(Sender: TObject);
var
 r:integer;
begin
  r:=MessageDlg('Закончить работу?',mtconfirmation,[mbOk,mbCancel],0);
  Case R of
    idOk : Form1.Close;
    idCancel:;
    end;
end;

// ****************************************************************

Function readmatr( const Filename:string):Tmatr;
var
  f:textfile;
  i,j:byte;
  M,N:integer;
begin
  result:=NIL;
  AssignFile(f,Filename);
  reset(f);
  try
   M:=0;
   while ( not eoln( f ) ) do
    begin
      read(f,I);
      inc(M);
    end;
   if ( M=0 ) then exit;
   N:=1;
   readln(f);
   while ( not eof( f ) ) do
    begin
      readln(f);
      inc(N);
    end;
   if ( N=0 ) then exit;
   close(f);
   reset(f);
   setlength(result,N,M);
   for i:=0 to (N-1) do
    begin
      for j:=0 to (M-1) do
       read(f,result[i,j]);
      readln(f);
    end;
   finally close(f);
  end;
end;

// ****************************************************************

procedure vivod ( const Matr:Tmatr; Lines:Tstrings);
var
  i,j:integer;
  s:string;
begin
  Lines.clear;
  for i:=0 to high(Matr) do
   begin
     s:='';
     for j:=0 to length(Matr[i])-1 do
         S:= S + Format('%-11d',[Matr[i,j]]);
     Lines.Add(S);
   end;
end;

// ****************************************************************

function poisk(const Matr:Tmatr; Lines:TStrings): Tmatr;
var
   i,j:integer;
begin
  k:=1;
  l:=1;
   for i:=1 to high(Matr) do
    for j:=1 to high(Matr) do
      if Matr[i,j]<Matr[k,l] then
   begin
    k:=i;
    l:=j;
    Lines.Text :=FloatToStr(Matr[k,l]);
 end;
end;

// ****************************************************************

function zamena(const Matr:Tmatr; Lines:TStrings): Tmatr;
Var
p,i,j:integer;
begin
j:=1;
for i:=1 to high(Matr) do
begin
p:=Matr[i,l];
If j<=high(Matr) then
Matr[k,j]:=p;
j:=j+1;
Lines.Text :=FloatToStr(Matr[i,j]);
end;
end;


// ****************************************************************

// ****************************************************************

procedure TForm1.Button1Click(Sender: TObject);
begin

 with TOpenDialog.Create(self) do
  try
   Filter:='test files(*.txt)|*.txt|Any file (*.*)|*.*';
   InitialDir:='.';
   Options:= Options + [ofFileMustExist];
 if ( not Execute ) then
  exit;
 Fmatr:=readmatr(FileName);
 vivod(Fmatr,Memo1.Lines);
 Finally Free;
 end;
end;

// ****************************************************************

procedure TForm1.Button2Click(Sender: TObject);
begin
vivod(Fmatr,Memo2.Lines);
poisk(Fmatr,Memo5.lines);
end;
end.
Заранее спасибо!
F1eCSo вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск минимального и максимального элемента в двухмерном массиве. Dem6 Общие вопросы Delphi 10 30.11.2009 20:22
Нахождение минимального элемента в массиве [Паскаль] pionerka Помощь студентам 4 03.11.2009 16:02
Поиск максимального и минимального элемента массива(с существенным дополнением) Dayterius Паскаль, Turbo Pascal, PascalABC.NET 6 20.05.2009 11:37
Поиск минимального (максимального) элемента массива Radamant Помощь студентам 10 24.12.2008 17:44