Другие языки программирования и технологии
Задача по делфи на двухмерный массив.
Совсем запутался с этими StringGrid подскажите как Ввести двумерный массив размером 7*4. Поменять столбец с максимальным элементом с первым столбцом двумерного массива. Кто знает де посмотреть можно или исходник буду очень благодарен
Доброго времени суток.
Сначала надо настроить грид путем установки его свойств RowCount и ColCount в соответствующие значения, т. е. в 7 и 4. Кроме того, надо объявить массив такой же размерности.
var A : array[1..7, 1..4] of НужныйТипЗначений;
Вот, собственно, и все. Дальше вводите данные в грид, а для того, чтобы перенести их в массив надо использовать пару вложенных циклов. При этом надо учитывать, что в гриде индексация идет с нуля и что первым параметром при обращении к ячейке грида указывается номер колонки, в отличие от ображения к элементу массива, где первым указывается строка.
for i:=0 to StringGrid1.ColCount-1 do
for j:=0 to StringGrid1.RowCount-1 do
A[j+1, i+1] := StrToInt(StringGrid1.Cells[i, j]); {здесь предполагается, что массив целых чисел}
Добавление единиц к переменным циклов обусловлено тем, что наш массив индексирован с 1.
Столбец в массиве с максимальным значением ищется так
MaxN := A[1,1];
for i:=1 to 7 do
for j:=1 to 4 do
if A[i,j] > MaxN then begin
MaxN := A[i,j];
MaxJ := j;
end;
После работы в переменной MaxJ будет номер столбца с максимальным элементом.
А теперь в цикле по строкам массива меняете местами элементы первого столбца и столбца с индексом MaxJ, используя промежуточноую переменную. Примерно так.
for i:= 1 to 7 do begin
Buf := A[i,1];
A[i,1] := A[i, MaxJ];
A[i, MaxJ] := Buf;
end;
Удачи!
Сначала надо настроить грид путем установки его свойств RowCount и ColCount в соответствующие значения, т. е. в 7 и 4. Кроме того, надо объявить массив такой же размерности.
var A : array[1..7, 1..4] of НужныйТипЗначений;
Вот, собственно, и все. Дальше вводите данные в грид, а для того, чтобы перенести их в массив надо использовать пару вложенных циклов. При этом надо учитывать, что в гриде индексация идет с нуля и что первым параметром при обращении к ячейке грида указывается номер колонки, в отличие от ображения к элементу массива, где первым указывается строка.
for i:=0 to StringGrid1.ColCount-1 do
for j:=0 to StringGrid1.RowCount-1 do
A[j+1, i+1] := StrToInt(StringGrid1.Cells[i, j]); {здесь предполагается, что массив целых чисел}
Добавление единиц к переменным циклов обусловлено тем, что наш массив индексирован с 1.
Столбец в массиве с максимальным значением ищется так
MaxN := A[1,1];
for i:=1 to 7 do
for j:=1 to 4 do
if A[i,j] > MaxN then begin
MaxN := A[i,j];
MaxJ := j;
end;
После работы в переменной MaxJ будет номер столбца с максимальным элементом.
А теперь в цикле по строкам массива меняете местами элементы первого столбца и столбца с индексом MaxJ, используя промежуточноую переменную. Примерно так.
for i:= 1 to 7 do begin
Buf := A[i,1];
A[i,1] := A[i, MaxJ];
A[i, MaxJ] := Buf;
end;
Удачи!
не совсем поняла условие. проблема с заполнением stringGrid или с обработкой массива?
если первое, то заполнение ячейки: stringgrid1.Cells[i,j]:=value; нумерация ячеек с 0
если второе, то алгоритм такой: ищешь столбец с максимальным элементом (сначала сам максимальный элемент, потом запоминаешь столбец jmax, на котором он находится) ; в цикле по строкам меняешь местами элементы, находящиеся в 1 столбце и столбце с номером jmax (как-то так: tmpv:=arr[i,1]; arr[i,1]:=arr[i,jmax]; arr[i,jmax]:=tmpv). stringgrid заполняешь новыми данными.
если первое, то заполнение ячейки: stringgrid1.Cells[i,j]:=value; нумерация ячеек с 0
если второе, то алгоритм такой: ищешь столбец с максимальным элементом (сначала сам максимальный элемент, потом запоминаешь столбец jmax, на котором он находится) ; в цикле по строкам меняешь местами элементы, находящиеся в 1 столбце и столбце с номером jmax (как-то так: tmpv:=arr[i,1]; arr[i,1]:=arr[i,jmax]; arr[i,jmax]:=tmpv). stringgrid заполняешь новыми данными.
Похожие вопросы
- C++ Двухмерный массив с случайными не повторяющимися числами.
- Двухмерные массивы(может быть есть добрые люди которые помогут решить)
- Как отсортировать статический двухмерный массив?
- Язык си, двухмерный массив и функция.
- В каждой из задач данного раздела заданы два массива случайных значении
- Помогите решить задачу по паскалю на двумерные массивы.
- помогите решить задачку по информатике на паскале. найти минимальный и максимальный элемент двухмерного массива
- Как в С++ двухмерный массив записать в переменную??
- народ помогите задан двухмерный массив вытянуть его в строку обходя его построчно
- Здраствуйте! На Vb.net дано двухмерные массивы из (5,5) элементов!