IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> перестановка максимального и минимального элемента
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Женский

Репутация: -  0  +


В квадратной матрице в каждой строке переставить ее максимальный и минимальный элементы.
Я начинала делать с помощью StringGrid. Дошла до момента сортировки и всё, дальше не знаю.
unit Unit3;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Math;

type
TForm3 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;
Const
n1=50; m1=50;
min=1000;
Max=0;
var
Form3: TForm3;
n,m,i,j:integer;
implementation

{$R *.dfm}


procedure TForm3.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
n:=4; //число строк в массиве
m:=4; //число столбцов в массиве
Edit1.Text:='';
Edit2.Text:='';
StringGrid1.Cells[0,0]:='I/J';
for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i);
for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);
end;
procedure TForm3.Button2Click(Sender: TObject);
var i,j:integer;
begin
n:=StrToInt(Edit1.Text); //ввод переменной n
m:=StrToInt(Edit2.Text); //ввод переменной m
StringGrid1.RowCount:=n+1; //задание числа строк и столбцов в массиве
StringGrid1.ColCount:=m+1;
for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i);
for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);

randomize;
for i:=1 to n do
for j:=1 to m do
stringgrid1.cells[i,j]:=inttostr(random (100)-50);
end;

procedure TForm3.Button3Click(Sender: TObject);


end;

end.


Прикрепленные файлы
Прикрепленный файл  Unit3.pas ( 1.9 килобайт ) Кол-во скачиваний: 497
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


А зачем сортировать?
Тут достаточно в каждой строке найти мин и макс элементы (их позиции) и обменять местами.

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

Покажу без StringGrid, чтобы был понятнее сам алгоритм:

пусть
a: array[1..n, 1..n] of integer; <--- эквивалент StringGrid

тогда

for i:=1 to n do {цикл по строкам}
begin
{в каждой строке ищем мин и макс элемент, а точнее их индексы}
Jmin:=1;
Jmax:=1;
for j:=2 to n do
begin
if a[i, j] > a[i, Jmax] then
Jmax:=j;
if a[i, j] < a[i, Jmin] then
Jmin:=j;
end;
{теперь обмениваем}
tmp:=a[i, Jmin];
a[i, Jmin]:=a[i, Jmax];
a[i, Jmax]:=tmp;
end;


Сообщение отредактировано: Федосеев Павел -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 155
Пол: Мужской

Репутация: -  0  +


Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. How Online Casinos Came Into Being
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 9:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name