0 / 0 / 0
Регистрация: 04.10.2017
Сообщений: 6
1

Сортировка столбцов матрицы в порядке убывания заданной строки

15.11.2018, 20:57. Показов 1406. Ответов 21

Author24 — интернет-сервис помощи студентам
Доброго.
При нажатии на button3 (выполнить) выдает "...is not a valid integer value". Думаю, проблема с иксом, но не могу понять где.
Само по себе задние: Сортировка столбцов матрицы в порядке убывания заданной строки.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;
 
type
  TForm1 = class(TForm)
    Label3: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Button4: TButton;
    Edit2: TEdit;
    StringGrid2: TStringGrid;
    Edit3: TEdit;
    Label1: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  a:array of array of integer;
  b:array of array of integer;
  i,j,x,n,m:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
BEGIN
randomize;
   StringGrid1.RowCount:=n;
StringGrid1.ColCount:=m;
 
for i:=0 to n-1 do
for j:=0 to m-1 do
 begin
  a[i+1,j+1]:=-10+random(21);
  StringGrid1.Cells[j,i]:=IntToStr(a[i+1,j+1])
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var k,i,j,x :integer;
 s:string;
begin
     Setlength(b,strtoint(edit1.Text)+1,strtoint(edit2.Text)+1);
  n:=strtoint(edit1.Text);
  m:=strtoint(edit2.Text);
  x:=strtoint(edit3.Text);
  StringGrid2.RowCount:=n;
StringGrid2.ColCount:=m;
 
for i:=Stringgrid2.FixedRows to m-2 do
for j:=i+1 to m-1 do
if strtoint(Stringgrid2.Cells[i,x])> strtoint(Stringgrid2.Cells[j,x]) then
 begin
   s:=Stringgrid2.rows[i].Text;
   Stringgrid2.rows[i].text:=Stringgrid2.rows[j].text;
   Stringgrid2.rows[j].text:=s;
 end;
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
  Setlength(a,strtoint(edit1.Text)+1,strtoint(edit2.Text)+1);
  n:=strtoint(edit1.Text);
  m:=strtoint(edit2.Text);
end;
 
procedure TForm1.Edit2Change(Sender: TObject);
begin
 
end;
 
procedure TForm1.Edit3Change(Sender: TObject);
begin
 
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  with StringGrid1 do
 begin
  fixedCols:=0;
  fixedRows:=0;
  defaultColwidth:=35;
  scrollBars:=ssBoth
 end;
end;
end.
Миниатюры
Сортировка столбцов матрицы в порядке убывания заданной строки  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2018, 20:57
Ответы с готовыми решениями:

Сортировка в порядке убывания
Помощь нужна такая........ Сделал выгрузку в Excel напримую без шаблона. Всё работает правельно...

Разработать функцию, переставляющую строки заданной квадратной матрицы в обратном порядке
Разработать функцию, которая переставляет строки заданной квадратной матрицы в обратном порядке....

Отсортировать элементы матрицы (StringGrid) в порядке убывания построчно
Добрый день. У меня возникла проблема с написанием программы. Дан двумерный массив размерностью n*m...

Расставить элементы строк с четными номерами матрицы в порядке убывания
Добрый день всем. Нужна помощь в решении нелегкой (для меня) задачки... Дана матрица A порядка n....

21
1437 / 1014 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
16.11.2018, 12:16 21
Author24 — интернет-сервис помощи студентам

Не по теме:

D1973, респект и браво:bravo:


Вставлю и свои 5 копеек. Я никогда не завожу отдельные поля под количество строк и столбцов матрицы (читай, размер массива). Всегда пользуюсь функцией Length(имя_массива). Да, набирать текста больше, но так я не ошибусь с выбором имени для своей переменной. Но это так, дело привычки А так, подписываюсь под каждым словом D1973 и намёком от Веревкина и Аркора - компоненты нужны только для визуализации информации. Пользователь что-то вводит в Edit и StringGrid? Замечательно! В какой-то процедуре, например, обработчике клика кнопки, забираем все введённые данные в массив(либо список, либо record, либо класс - смотря что удобнее в этой задаче), попутно проверяя корректность того, что юзер там навводил, и забываем о существовании этих компонентов. Все данные у нас в массиве, с ним мы и работаем. Хотим вывести информацию на форму - вспоминаем, что у нас есть, допустим, StringGrid2, и выводим в него информацию. И снова, напроч об этом стринггриде забываем.
0
62 / 48 / 20
Регистрация: 01.09.2017
Сообщений: 381
17.11.2018, 10:44 22
lordofthequn, Вы уже объявили переменные глобально, зачем же повторно их объявляете в обработчиках Button 1
И Button 3 ?
0
17.11.2018, 10:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2018, 10:44
Помогаю со студенческими работами здесь

Найти min каждого столбца матрицы и расположить их в порядке убывания
Помогите пожалуйста, дана матрица A(4x5). Нужно найти минимальный элемент каждого столбца матрицы и...

Сортировать строки массива в порядке убывания элементов шестого столбца
Заполнить элементы массива В(8,6) случайными числами. Сортировать строки массива в порядке убывания...

Просуммировать элементы столбцов заданной матрицы
Просуммировать элементы столбцов заданной матрицы А размером 4х5. Результат получить в одномерном...

Для заданной матрицы расположить элементы каждой строки в порядке не убывания их абсолютных величин
Для заданной матрицы расположить элементы каждой строки в порядке не убывания их абсолютных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru