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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2010, 18:45   #1
kroatoani
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 13
Восклицание Поясните мне этот код шаг за шагом

Добрый день всем. У меня этот код ну я его не со всем понимаю.
Задача:
Описать рекурсивную процедуру
Код:
procedure dele(var r:link; w:integer);
удаляющую из списка r первое вхождение.
Его код : 
unit lib;
interface
uses
  Windows, SysUtils, Grids;
type
  TInfo = integer;
  Pt = ^T;
  T = record
    Info: TInfo;
    Next: Pt;
  end;
var
  beglist,endlist,p,code:pt;
procedure dele(var r:pt; w:integer);
procedure refreshlist(list:tstringgrid);
function createlist(list:tstringgrid):boolean;
implementation
{procedure createsp(n:integer);
begin
  New(q);
  q.Next:=p;
  p:=q;
  p.Info:=n;
end;}
procedure dele(var r:pt; w:integer);
var
  z:pt;
begin
if r<>nil then
  if r.info=w then
  begin
    z:=r;
    r:=z.next;
    dispose(z);
  end
  else
    dele(r.next,w);
end;
procedure refreshlist(list:tstringgrid);
var
  i:integer;
  g:pt;
begin
  g:=beglist;
  i:=0;
  while g<>Nil do
  begin
    list.cells[i,0]:=inttostr(g^.Info);
    g:=g^.Next;
    i:=i+1;
  end;
  list.ColCount:=i;
  g:=nil;
  dispose(g);
end;
function createlist(list:tstringgrid):boolean;
var
  i,k:integer;
begin
  BegList:=nil;
  result:=true;
  with list do
  begin
    for i:=0 to colcount-1 do
    begin
      if (cells[i,0]<>'')and result then
      begin
        k:=strtoint(cells[i,0]);
        if BegList=nil then
        begin
          New(p);
          p^.Info:=k;
          p.Next:=nil;
          BegList:=p;
          EndList:=p
        end
        else
        begin
          New(p);
          p^.Info:=k;
          p.Next:=nil;
          EndList.Next:=p;
          EndList:=p;
        end;
      end
      else
      begin
        result:=false;
        break
      end
    end;
  end;
end;
end.
заранее спасибо

Последний раз редактировалось Stilet; 18.09.2010 в 18:53.
kroatoani вне форума Ответить с цитированием
Старый 18.09.2010, 18:53   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

Вы бы для начала воспользовались бы тегом code и оформили бы код по человечески. В таком виде даже читать его нет желания.

P.S. О, уже оформлен

Цитата:
Сообщение от kroatoani
Задача:
Описать рекурсивную процедуру
Это такую задачу задал преподаватель?

Советую Вам почитать основы работы с указателями и динамической памятью. Далее разбирайте код по шагам.

Последний раз редактировалось Arigato; 18.09.2010 в 18:56.
Arigato вне форума Ответить с цитированием
Старый 18.09.2010, 19:08   #3
kroatoani
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 13
Радость

вот задача: Описать рекурсивную процедуру
procedure dele(var r:link; w:integer);
удаляющую из списка r первое вхождение с информационным полем w.
thnx for the answer

Ах ещё где мне найти'' основы работы с указателями и динамической памятью''?

Последний раз редактировалось Stilet; 18.09.2010 в 22:53.
kroatoani вне форума Ответить с цитированием
Старый 18.09.2010, 22:04   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

Цитата:
Сообщение от kroatoani
основы работы с указателями и динамической памятью
Любой учебник или справочник по Паскалю подойдет. Этот вопрос должен быть рассмотрен.
Arigato вне форума Ответить с цитированием
Старый 19.09.2010, 16:57   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Начните с мат-части, что-ли.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 21.09.2010, 14:21   #6
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Работа с указателями хорошо описана в учебнике Фленова....там вообще всё хорошо ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Народ обьясните этот код alexz29 Общие вопросы C/C++ 3 20.06.2010 06:52
Поясните код... Masip Общие вопросы Delphi 1 18.05.2010 07:22
Что делает этот код? Alex_sim Общие вопросы C/C++ 10 03.03.2010 23:45
Автоматизация нумерации. Просто? Так поясните же мне!! enRai Помощь студентам 3 23.07.2009 07:55
Что делает этот код? lucky Общие вопросы Delphi 4 17.06.2009 17:02