![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Задана матрица А размером NxM. Получить массив В, присвоив его к-му элементу значение 1,если к-я строка матрицы симметрична и значение 0 в противном случае.
Ошибка в том,что программа выдает во 2 стринггрид только каждый 5ый ответ.притом не верный в чем проблема? Код:
procedure TForm5.Button4Click(Sender: TObject);
var
i,j:byte;
A:array [1..100,1..100] of Integer;
b: Boolean;
n,m:Byte;
begin
m:=SpinEdit2.Value;
N:=SpinEdit1.Value;
for j := 0 to m - 1 do
begin
b:=True;
for i:=0 to (N div 2) do
begin
if a[i,j]=a[n-i,j] then
b:=False;
end;
if b = False then
StringGrid2.Cells[0, i] := '0'
else
StringGrid2.Cells[0, i] := '1';
end;
end;
end.2)переделать из паскаля в делфи http://www.cyberforum.ru/post1024721.html нужно упорядочить 2-умерный массив по возрастанию элементов каждой строки выручайте!очень нужно!!! Последний раз редактировалось Admin, 15.12.2011 в 09:43. |
|
#2
|
|||
|
|||
|
2. Если я правильно понял
Код не проверял. Код:
type
TRow = array of integer;
TMatrix = array of TRow;
procedure SortRow(var Row: TRow);
var
i, k, temp: integer;
f: Boolean;
begin
k := 1;
repeat
for i := 0 to High(Row) - k do
if Row[i] > Row[i + 1] then begin
temp := Row[i];
Row[i] := Row[i + 1];
Row[i + 1] := temp;
end;
k := k + 1;
until k = High(Row) - 1;
end;
var
i: integer;
M: TMatrix;
begin
...
for i := 0 to High(M) do
SortRow(M[i]);
...
end.
|
|
#3
|
||||
|
||||
|
К первому, как я понял:
Код:
procedure TForm5.Button4Click(Sender: TObject); var i,j:byte; A:array [1..100,1..100] of Integer; b: Boolean; n,m:Byte; begin m:=SpinEdit2.Value; N:=SpinEdit1.Value; for j := 1 to m do begin b:=True; for i:=1 to (N div 2) do begin if a[i,j]<>a[n-i+1,j] then b:=False; end; if b = False then StringGrid2.Cells[0, j-1] := '0' else StringGrid2.Cells[0, j-1] := '1'; end; end; end. |