Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 22:20   #11
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

да , что бы можно было обращаться в его элементам
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 22:24   #12
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

1)прежде чем обратиться к его элементам необходимо выделить под них память. Это делается процедурой SetLength(d,n,m), где d-имя твоего массива, n-количество строк, m-количество столбцов. И что-то я ее у тебя не вижу.
2)Но даже если она и будет в таком виде как я тебе ее написал, количество элементов в каждой строке будет одинаковым и будет равно m (количеству столбцов)
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 22:27   #13
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

выделять память под каждую строку ???? я че та не понял . получается что вывод нужно делать не так ?
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 22:31   #14
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

В каждой строке будет по m элементов.
SetLength(d,10,15);
динамический массив d из 10 строк в каждой из котрых по 15 элементов. Индексация начинается с 0. Значит индекс последней строки - 9, а индекс последнего столбца - 14.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 22:34   #15
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

так ведь у меня по условию в строке разное количество элементов и массив может быть разный по количеству как столбцов , строк . так и по количеству элементов в строке .
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 22:35   #16
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

условия задачи напиши полностью если не трудно.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 22:38   #17
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

дан двумерный массиве (числа целые) , с разным количеством элементов в каждой строке , найти первый отр-ный элемент и 1-ый поло-ный . массив выводится в memo

Последний раз редактировалось drylozav; 09.10.2010 в 22:44.
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 22:52   #18
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Код:
type
  Tmas = array of integer;

var
  i: integer;
  mas: array of Tmas;

begin
// одномерный динамический массив каждым элементом которого будет массив типа
// Tmas
  SetLength(Mas,5);  

// теперь в цикле создаешь все эти самые массивы типа Tmas (тоже
// динамические)
  for i:=0 to High(Mas) do
    SetLength(Mas[i],StrToInt(Memo1.Lines.Strings[i]));
end;
количество элементов в каждой строке этого массива будет различным.
В данном случае оно берется из memo1, где каждая строка содержит одно числовое значение.

Вот теперь ты получишь свой массив с разной длиной строк, после чего с ним можно работать.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 23:00   #19
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

1)а что значит :
" одномерный динамический массив каждым элементом которого будет массив типа" ?
это получается что на каждую строку мне надо будет выделять свой массив ??
2)и что значит ; "SetLength(Mas,5)"
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 23:07   #20
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Ну ты получишь тот самый двумерный массив с разной длиной строк.
SetLength(mas,5) - создает динамический массив с именем mas из 5-ти элементов.

Просто для двумерного динамического массива есть продедура SetLength(d,n,m). Я тебе ее уже писал. Она выделяет сразу память под строки и столбцы. Только тогда длины строк будут одинаковыми. А тебе нужны разные.

Ты отладчиком пользоваться умеешь? Если да то посмотри при троссировке как будет выглядеть твой массив который ты создал. Там увидишь сколько в нем строк и сколько элементов в каждой строке.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с массивом @Ivan Общие вопросы C/C++ 2 11.10.2010 11:46
проблема с массивом Doppelganger Общие вопросы C/C++ 1 12.06.2010 14:12
проблема с массивом kommunist Паскаль, Turbo Pascal, PascalABC.NET 7 27.05.2010 19:00
проблема с массивом kommunist Помощь студентам 6 14.11.2007 18:36
проблема с массивом Lonix Общие вопросы Delphi 2 06.11.2007 23:56