|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
2 задачи (доделать, а не с нуля)
Задана матрица А размером 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. |