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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 09:29   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну да, ты описал какой должна быть переменная, а где сама переменная? Вот для примера. Ты делаешь так:
Хочу посадить дерево, это будет саженец дуба, метра полтора, можно с почками . И все. Само дерево ты не сажаешь. А потом тебе вдруг надумалось его сфотографировать. Вот ты смотришь на снимок и говоришь - Ахтунг! Где дерево?

Цитата:
насколько сложно бывает что-то объяснить дураку (в данном случае мне)
Такое отношение к самому себе вредно и рождает всякие нехорошие комплексы. Дурак, тот кто пришел на форум за решением и не желает разбираться в вопросе.

ЗЫ. Все что в секции type не существует. Там описывается кто должен существовать (и иногда как). Рождение происходит в секции var, и в твоем случае после new.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 29.06.2010 в 09:35.
Utkin вне форума Ответить с цитированием
Старый 29.06.2010, 10:06   #12
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Ну что, мужики, спасибо большое. написал вот так:
Код:
program nevazhno;

{$APPTYPE CONSOLE}

uses
  SysUtils;
type
  PTree=^TTree;
  TTree=record
    sod:integer;
    L,R:PTree;
  end;

VAR
  T:textfile;
  S:PTree;

procedure build_S(var F:textfile; var Q:PTree);
begin
  while not EOF(F) do
    begin
      if Q<>nil then
        begin
//          Q^.R^.L:=Q;    !!!
          build_S(F,Q^.R);
        end
      else
        begin
        new(Q);
          readln(F,Q^.sod);
        end

    end;
end;

BEGIN
  assign(T,'source.txt');
  {$i-}
  reset(T);
  {$i+}
  if IOResult<>0 then
    begin
      writeln('file not found');
      readln;
      HALT;
    end;
  build_S(T,S);
  writeln(S^.sod);
  writeln(S^.R^.sod);
  writeln(S^.R^.R^.sod);
  readln;
END.
Под конец подряд выводит эти числа из текстовика, все норм.
Но опять таки проблема, под знаком "!!!". Ссылки на правые (R) элементы есть, а как сделать на левые (L)? Ну тоесть, чтобы S^.sod ~ S^.R^.L^.sod?

Как я понимаю, это опять изза того, что память не выделил под L. Можно как-то сделать это по месту, или отдельную процедуру писать придется?
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 29.06.2010, 10:26   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как сделать на левые
Всмысле?
Короче говоря, если тебе нужен двусвязанный список рекомендую ознакомится с:
http://www.programmersforum.ru/showthread.php?t=47462
http://www.programmersforum.ru/showthread.php?t=87357
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2010, 12:26   #14
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Да похоже действительно не нужен он мне, односвязного хватает.
Спасибо за помошь, разобрался, пошел творить :D
Все тривиальное просто
whatever вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с изменением формата даты при копировании из CSV формата в эксель mars56 Microsoft Office Excel 4 16.03.2010 09:50
Проблема с вызовом динамической DLL SkAndrew Общие вопросы Delphi 12 12.03.2010 07:59
Проблема выделения динамической памяти в С++ oxygen90 Помощь студентам 3 14.09.2009 21:47
Проблема с изменением ориентации страницы в отчете madmech Общие вопросы Delphi 0 22.05.2009 20:04
Паскаль: шейкерная сортировка на динамической структуре. kotzebu Фриланс 1 01.05.2009 12:48