|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Упорядочить элементы главной диагонали в порядке убывания
Код:
procedure TForm1.Button1Click(Sender: TObject); var mas:array [1..4,1..4] of integer; mas2:array [1..4] of integer; i,j,buf,min,imin:integer; begin for i:=1 to 4 do for j:=1 to 4 do mas[i,j]:=StrToInt(StringGrid1.Cells[j-1,i-1]); for i:=1 to 4 do mas2[i]:=mas[i,i]; for i:=1 to 4 do begin min:=mas2[i]; for j:=1 to 4 do if (mas2[j]>min) then begin min:=mas2[j]; imin:=j; end; buf:=mas2[i]; mas2[i]:=mas2[imin]; mas2[imin]:=buf; end; for i:=1 to 4 do for j:=1 to 4 do begin if(i=j)then StringGrid2.Cells[j-1,i-1]:=IntToStr(mas2[i]) else StringGrid2.Cells[j-1,i-1]:=IntToStr(mas2[i,j]); end; end; end. lmikle: пользуемся тегами!!! ошибка else StringGrid2.Cells[j-1,i-1]:=IntToStr(mas2[i,j]); типа "array type required" помогите, если сможете) Последний раз редактировалось lmikle, 15.04.2013 в 20:43. |
#2
|
||||
|
||||
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
помог) опечатка i там одно.
|
#4
|
|||
|
|||
у тебя в этой строке не тот массив. нужен mas, который двухмерный.
ЗЫ. Обысная проблема копи-паста. Скопировал, а поменять забыл. |
#5
|
|||
|
|||
тогда пишет, что типы не совпадают.
|
#6
|
|||
|
|||
Цитата:
Блин, строка должна быть: else StringGrid2.Cells[j-1,i-1]:=IntToStr(mas[i,j]); |
#7
|
|||
|
|||
тогда array type required.
|
#8
|
||||
|
||||
Ты бы внимательней ответы читал, иначе толку помогать... Или переменные называл СИЛЬНО РАЗНЫМИ именами.
jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
да я написал, какая ошибка получается, если написать так, как вы говорите.
|
#10
|
||||
|
||||
Код:
var mas:array [1..4,1..4] of integer; i,j:integer; begin for i := 1 to 4 do for j := 1 to 4 do mas[i,j] := random(10); for i := 1 to 4 do for j := 1 to 4 do StringGrid1.Cells[j-1,i-1]:=IntToStr(mas[i,j]); end; Вот зачем обращаться за помощью, если её даже не слушать? jmp $ ; Happy End! The Cake Is A Lie. |
#11
|
|||
|
|||
мне не нужно просто ввести матрицу в stringgrid. это реализовывается от руки после запуска программы. мне нужно ОТСОРТИРОВАТЬ ПО УБЫВАНИЮ ЭЛЕМЕНТЫ ГЛАВНОЙ ДИАГОНАЛИ.
|
#12
|
|||
|
|||
Цитата:
Не напрягает что в одной строке mas2[i], а в другой mas2[i,j]? |
#13
|
||||
|
||||
Цитата:
Цитата:
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#14
|
|||
|
|||
Цитата:
я написал, что будет, если написать так, как вы мне говорите. |
#15
|
||||
|
||||
Вот ведь, прямо искритесь от соприкосновения в теме
Вот собственно весь код: Код:
procedure TForm1.Button1Click(Sender: TObject); Var Row,Col: Integer; begin for Row := 0 to StringGrid1.RowCount - 1 do for Col := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cells[Col, Row] := IntToStr(Random(100)); end; procedure TForm1.Button2Click(Sender: TObject); Var i,j: Integer; v: String; begin for i := 0 to StringGrid1.RowCount - 1 do for j := 0 to StringGrid1.RowCount - 2 do if StrToInt(StringGrid1.Cells[j, j]) < StrToInt(StringGrid1.Cells[j+1, j+1]) then begin v := StringGrid1.Cells[j, j]; StringGrid1.Cells[j, j] := StringGrid1.Cells[j+1, j+1]; StringGrid1.Cells[j+1, j+1] := v; end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 18.04.2013 в 20:38. |