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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2009, 18:48   #1
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
Вопрос Как подключить модуль???

Здравствуйте

Я написала консольное приложение и все работало без проблем, но препод сказал, чтоб я попробовала сделать это же, но с модулем, и я все сделала вроде как положено, но у меня почему-то не компилируется и выходит сообщение

Цитата:
[Pascal Error] LabaConsolModul.dpr(31): E2033 Types of actual and formal var parameters must be identical
[Pascal Error] LabaConsolModul.dpr(32): E2033 Types of actual and formal var parameters must be identical
[Pascal Error] LabaConsolModul.dpr(33): E2010 Incompatible types: 'UnitA.plist' and 'LabaConsolModul.plist
Ну что же делать, я в отчаянии, все что знала я перепробовала, подскажите пожалуста, как это исправить! Очень вас прошу.

Вот главная программа
Код:
program LabaConsolModul;
{$APPTYPE CONSOLE}

uses unitA;

Type
  plist = ^tl;
    tl = record
      next : plist;
      data: integer;
  end;

Var
  Head,cur: plist;
  key: byte;
  a:integer;

Begin
Head:=nil; cur:=nil;
Repeat
 Writeln ('===========================');
 Writeln (' PROGRAM LabaConsolModul');
 Writeln ('===========================');
 Writeln ('1: Add element');
 Writeln ('2: Delete element');
 Writeln ('3: Scan');
 Writeln ('0: Exit');
 Writeln ('===========================');
 Readln (key);
 case key of
  1: AddList(cur,Head);
  2: DelList(Head);
  3: ScanList(cur,Head);
 end;
until key =0;
End.
А вот этот ненавистный модуль

Код:
unit UnitA;

interface
Type
  plist = ^tl;
    tl = record
      next : plist;
      data: integer;
  end;

Var
  Head,cur: plist;


procedure ScanList(curA ,HeadA: plist);
procedure AddList(var curA,HeadA: plist);
procedure DelList(var HeadA: plist);

implementation

procedure ScanList(curA ,HeadA: plist);
begin
  writeln ('Prosmotr spiska');
  if HeadA = nil then writeln ('Pustoy spisok')
  else
  begin
    curA := HeadA;
    while curA <> nil do
    begin
      write(curA^.Data, ' ');
      curA := curA^.Next
    end;
  writeln;
  end;
  writeln;
end;

procedure AddList(var curA,HeadA: plist);
var
  temp:plist;
  x: integer;
begin
  Write ('Dobavit element: ');
  Readln (x);
  New(temp); //добавл.в конец
  temp^.Data := x;
  temp^.Next := nil;
  if HeadA = nil then HeadA := temp
    else  curA^.next := temp;
  curA := temp;
  Writeln;
end;

procedure DelList(var HeadA: plist);
var
  temp:plist;
begin
  writeln ('Udalit element');
  if HeadA = nil then writeln ('Pustoy spisok')
  else  // удаление с начала списка
  begin
    temp:= HeadA;
    HeadA := HeadA^.Next;
    Writeln ('Udalen ',temp.data);
    dispose(temp);
   end;
end;

end.

Последний раз редактировалось diliana; 29.05.2009 в 18:51.
diliana вне форума Ответить с цитированием
Старый 29.05.2009, 18:58   #2
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Возможно из-за того, что в обоих модулях создан тип plist. Удалите в LabaConsolModul тип plist

Последний раз редактировалось Evgeniy26; 29.05.2009 в 19:00.
Evgeniy26 вне форума Ответить с цитированием
Старый 29.05.2009, 18:58   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
program LabaConsolModul;
{$APPTYPE CONSOLE}

uses
  unit1;

Var
  Head,cur: plist;
  key: byte;
  a:integer;

Begin
Head:=nil; cur:=nil;
Repeat
 Writeln ('===========================');
 Writeln (' PROGRAM LabaConsolModul');
 Writeln ('===========================');
 Writeln ('1: Add element');
 Writeln ('2: Delete element');
 Writeln ('3: Scan');
 Writeln ('0: Exit');
 Writeln ('===========================');
 Readln (key);
 case key of
  1: AddList(cur,Head);
  2: DelList(Head);
  3: ScanList(cur,Head);
 end;
until key =0;
End.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.05.2009, 19:14   #4
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию

Пепел Феникса
спасибо, я счастлива!!!!
diliana вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Как правильно подключить модуль? SnowFall Помощь студентам 6 12.05.2009 02:34
Как подключить к проекту модуль ras.pas Михаил Юрьевич Общие вопросы Delphi 3 14.03.2009 15:45
как подключить новый модуль без формы к проекту?? Yala Общие вопросы Delphi 1 04.05.2008 08:01