Указатели

lena kalugina
Дата: 10.05.2011 21:37:48
мне нужно создать связный список из 5 элементов с вещественными полями.помогите решить пожалуйста))))))
Сергей Козинцев
Дата: 10.05.2011 21:52:04
lena kalugina,

тип запись существует +массив
DimaBr
Дата: 11.05.2011 14:55:24
var Mas: array[0..4] of double;
Esperito
Дата: 11.05.2011 15:15:22
lena kalugina
"спасибо" что не помогли решить задачу
Где собственные, пусть и нерабочие, попытки решения?
Judo
Дата: 11.05.2011 15:17:02
ну как всегда можно через ж...
TStringList.Objects
Gwa
Дата: 11.05.2011 15:28:30
type
pRecItem = ^TRecItem;

TRecItem = record
Value: double;
Next: pRecItem;
Prev: pRecItem;
end;

var
ItemList : array [1..5] of TRecItem;
Кроик Семён
Дата: 11.05.2011 16:52:42
Если бы у нас был TurboVision (кто помнит), то там бы мы имели такое :

//структура
type
   PFloatListItem=^TFloatListItem;

   TFloatListItem=record
      Value      : double;
      Next       : PFloatListItem;
   end;

//удобная функция
function FloatListItem(AValue: double; ANext: PFloatListItem): PFloatListItem;
begin
   New(Result);
   Result^.Value:=AValue;
   Result^.Next:=ANext;
end;


//инициализация списка
var
   List : PFloatListItem;
begin
   List:=FloatListItem(100.10, 
         FloatListItem(200.20, 
         FloatListItem(300.30, 
         FloatListItem(400.40,
         FloatListItem(500.50, 
         FloatListItem(600.60, 
         FloatListItem(700.70,nil))))))); 
Кроик Семён
Дата: 11.05.2011 16:59:16
P.S.
а если хотим так еще и ссылку на предыдущий элемент, то пеняем структуру + функцию на такое:

//структура
type
   PFloatListItem=^TFloatListItem;

   TFloatListItem=record
      Value      : double;
      Next       : PFloatListItem;
      Prev       : PFloatListItem;
   end;

//удобная функция
function FloatListItem(AValue: double; ANext: PFloatListItem): PFloatListItem;
begin
   New(Result);
   Result^.Value:=AValue;
   Result^.Next:=ANext;   
   Result^.Prev:=nil;
   
   if Assigned(ANext) then
      ANext^.Prev:=Result;
end;