|
Вопрос # 5 346/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Задание такое: (по массивам) Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами.
Не могу понять где прописал что то не так, меняет местами цифры не правильно, на форме расположены StringGrid, две кнопки, в первой кнопке прописан код на генерацию цифр, а во второй непосредственно код на перестановку элементов.
Приложение: Переключить в обычный режим- unit U_F_1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Grids;
-
- type
- TF_1 = class(TForm)
- StringGrid1: TStringGrid;
- Button1: TButton;
- E_3: TEdit;
- L_3: TLabel;
- L_com_3: TLabel;
- L_4: TLabel;
- B_2: TButton;
- procedure Button1Click(Sender: TObject);
- procedure B_2Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- F_1: TF_1;
- const n=6;
- var
- m:array[1..n,1..n]of integer;
- i,j,index,k,max,buf:integer;
-
- implementation
-
- {$R *.dfm}
-
-
- procedure TF_1.Button1Click(Sender: TObject);
- {const n=6;
- var
- m:array[1..n,1..n]of integer;
- i,j,index,k,max,buf:integer; }
- begin
-
- randomize;
-
- for i:=1 to n do
- begin
-
- for j:=1 to n do
-
- begin
- m[i,j]:=random(10);
- StringGrid1.Cells[i-1,j-1] := FloatToStrF(m[i,j], ffFixed, 2, 0);
-
- end;
-
-
- end;
- max:=m[1,1];
- index:=1;
- for i:=1 to n do
- if m[i,i]>max then
- begin
- max:=m[i,i];
- index:=i;
-
-
- end;
-
-
- end;
-
- procedure TF_1.B_2Click(Sender: TObject);
- {const n=6;
- var
- m:array[1..n,1..n]of integer;
- i,j,index,k,max,buf:integer; }
- begin
-
- max:=m[1,1];
- index:=1;
- for i:=1 to n do
- if m[i,i]>max then
- begin
- max:=m[i,i];
- index:=i;
- end;
- repeat
- k:=StrToInt(E_3.Text);
- until k in [1..n];
- if index<>k then
- for i:=1 to n do
- begin
- buf:=m[index,i];
- m[index,i]:=m[k,i];
- m[k,i]:=buf;
-
- end;
- for i:=1 to n do
- begin
- for j:=1 to n do
- //StringGrid1.Cells[i-1,j-1] := inttostr(m[i,j]);
- StringGrid1.Cells[i-1,j-1] := FloatToStrF(m[i,j], ffFixed, 2, 0);
- end;
- end;
-
- end.
 |
Вопрос задал: Силиванов (статус: Посетитель)
Вопрос отправлен: 30 мая 2011, 19:59
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Мережников Андрей
Здравствуйте, Силиванов!
Решение в прилагаемом файле. Будут вопросы - пишите. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 4 июня 2011, 10:10
|
Мини-форум вопроса
Всего сообщений: 21; последнее сообщение — 4 июня 2011, 09:42; участников в обсуждении: 4.
Страницы: [« Предыдущая] [1] [2]
|
Мережников Андрей (статус: Абитуриент), 4 июня 2011, 09:42 [#21]:
вопрос - если в матрице несколько максимальных элементов, то что делать?
|
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|