Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
qis
0 / 1 / 0
Регистрация: 07.08.2012
Сообщений: 47
1

Преобразовать фиксированный массив в динамический

22.03.2013, 00:08. Просмотров 670. Ответов 8
Метки нет (Все метки)

Таблица у меня заполняется динамически, и при неполном заполнении не работает эта процедура. Поковырявшись в нете догнал, что нужно преобразовать фиксированный массив в динамический, но как это сделать без понятия (я не программист). Буду рад за помощь:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.Hit;
var
  h:array[1..4,0..0] of integer;
  i,j:integer;
  imax,jmax:integer;
begin
  //Перепишем данные StringGrid в массив...
  For i:=0 to 0  do
  For j:=1 to 4  do
  h[j,i]:=strtoint(StringGrid3.Cells[i,j]);
 
  //Найдём максимальный элемент в массиве...
  imax:=1;
  jmax:=1;
  For i:=0 to 0  do
  For j:=1 to 4  do
  if h[j,0] > h[jmax,imax] then
  begin
    imax:=i;
    jmax:=j;
  end;
  label2.caption:=IntToStr(h[jmax,imax]);
end;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2013, 00:08
Ответы с готовыми решениями:

Используя многострочный редактор и динамический массив ввести массив произвольного размера
Используя многострочный редактор и динамический массив ввести массив,...

Создать двумерный динамический массив произвольного размера NxN (размер ввести). Заполнить массив случайным об
Создать двумерный динамический массив произвольного размера NxN (размер...

Массив строк в Memo, динамический массив
Помогите пожалуйста! Нужно решить задачу по динамическому массиву: Дан массив...

Преобразовать двумерный массив T в одномерный массив Y
Сформируйте двумерный целочисленный массив T(6x6), используя генератор...

Динамический массив
Не совсем понимаю работу динамических данных, в работе программы, точнее в...

8
alexan0308
61 / 45 / 4
Регистрация: 07.06.2011
Сообщений: 378
Записей в блоге: 2
22.03.2013, 00:15 2
Выкинь массив. Ищи максимальный напрямую в стринггриде. Можешь назвать его короче =)
1
qis
0 / 1 / 0
Регистрация: 07.08.2012
Сообщений: 47
22.03.2013, 00:35  [ТС] 3
Спасибо, счас буду "мутить", хотя это для меня сложновато

Добавлено через 15 минут
Цитата Сообщение от alexan0308 Посмотреть сообщение
Выкинь массив. Ищи максимальный напрямую в стринггриде. Можешь назвать его короче =)
Может напишите как, чтобы я не мучился?
0
alexan0308
61 / 45 / 4
Регистрация: 07.06.2011
Сообщений: 378
Записей в блоге: 2
22.03.2013, 00:40 4
Пиши везде вместо
Delphi
1
h[j,i]
Delphi
1
strtoint(StringGrid3.Cells[i,j])
0
qis
0 / 1 / 0
Регистрация: 07.08.2012
Сообщений: 47
22.03.2013, 01:00  [ТС] 5
Цитата Сообщение от alexan0308 Посмотреть сообщение
Пиши везде вместо
Delphi
1
h[j,i]
Delphi
1
strtoint(StringGrid3.Cells[i,j])
Ага, и вылезает куча ошибок, да ладно с этими массивами..
0
angstrom
2471 / 1847 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
22.03.2013, 01:16 6
Зачем нужен такой цикл?
Delphi
1
 For i:=0 to 0  do
0
qis
0 / 1 / 0
Регистрация: 07.08.2012
Сообщений: 47
22.03.2013, 01:24  [ТС] 7
Цитата Сообщение от angstrom Посмотреть сообщение
Зачем нужен такой цикл?
Delphi
1
 For i:=0 to 0  do
Я ж говорю что не программист, не знаю как проще сделать, а этот код взял с одной из веток форума, немного присобачил под свои нужды и.. ступор.
0
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
22.03.2013, 06:57 8
Если работаешь с гридом без массива тогда пиши:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Hit;
var
  i,j:integer;
  zmax,imax,jmax:integer;
begin
  //Найдём максимальный элемент в массиве...
  imax:=0;
  jmax:=1;
  zmax:=strtointDef(StringGrid3.Cells[0,1],0);
  For i:=0 to StringGrid3.ColCount-1  do
  For j:=1 to StringGrid3.RowCount-1  do
  if strtointDef(StringGrid3.Cells[i,j],0) > zmax then
  begin
    imax:=i;
    jmax:=j;
    zmax:=strtointDef(StringGrid3.Cells[i,j],0);
  end;
  label2.caption:=IntToStr(zmax);
end;
Примерно так. И используй strtointDef тогда если ячейка грида не заполнена - будет полученр значение по умолчанию. Я поставил 0.
1
qis
0 / 1 / 0
Регистрация: 07.08.2012
Сообщений: 47
22.03.2013, 08:37  [ТС] 9
Одиночка, уж не знаю как вас благодарить - в который раз вы мне помогаете конкретным примером. Придется в Харьков много пива высылать..
0
22.03.2013, 08:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2013, 08:37

динамический массив
доброго дня :) помогите решить задачу: написать приложение позволяющее...

Динамический массив
procedure TForm1.Button1Click(Sender: TObject); var l:array of string; ...

Динамический массив
Дана матрица случайных целых чисел(размеры вводит пользователь). В тех строках,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru