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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 06:28   #1
Ink_90
 
Регистрация: 22.12.2008
Сообщений: 4
По умолчанию Помогите c паскалем, выдает ошибку...

Нормально компилируется, но выдает ошибку "cannot run a unit"
Имя файла программы trans.pas
unit trans1;
interface
Type
Transport=object
S,stoim:real;
Procedure Init(s1:real);
end;

Autobus=object(Transport)
bustype:integer;
bag:integer;
bust:real;
Constructor Init(bustype1, bag1:integer; s1,bust1:real);
Destructor Done;virtual;
Procedure Stoimost; virtual;
end;

Poezd=object(Transport)
raintype: integer;
ctype:integer;
rst:integer;
raint:real;
Constructor Init(raintype1,ctype1,rst1:integer; s1,raint1:real);
Destructor Done;virtual;
Procedure Stoimost; virtual;
end;

Samolet=object(Transport)
airt:integer;
clairs:integer;
airts:real;
Constructor Init(airt1, clairs1:integer; s1,airts1:real);
Destructor Done;virtual;
Procedure Stoimost; virtual;
end;

implementation

Procedure Transport.Init(s1:real);
begin
S:=s1;
End;

Constructor Autobus.Init(bustype1,bag1:integer; s1,bust1:real);
Begin
Transport.Init(s1);
bustype:=bustype1;
bag:=bag1;
bust:=bust1;
End;
Destructor Autobus.Done;
Begin
End;

Constructor Poezd.Init(raintype1,ctype1,rst1:in teger; s1,raint1:real);
Begin
Transport.Init(s1);
Raintype:=raintype1;
Ctype:=ctype1;
Rst:=rst1;
Raint:= raint1;
End;
Destructor Poezd.Done;
Begin
End;

Constructor Samolet.Init(airt1,Clairs1:integer; s1,airts1:real);
Begin
Transport.Init(s1);
airt:=airt1;
clairs:=Clairs1;
airts:=airts1;
End;
Destructor Samolet.Done;
Begin
End;

Procedure Autobus.Stoimost;
Begin
stoim:= bustype*50 + bag*100+bust + 1.1 * S;
writeln(stoim);
End;

Procedure Poezd.Stoimost;
Begin
stoim:= raintype*50 + ctype*30 + rst*55+ raint + 1.02*S;
writeln(stoim);
End;

Procedure Samolet.Stoimost;
Begin
stoim:= airt*100+clairs*120 + airt + 3.7*S;
End;
End.

Uses Crt,trans1;
var: trans_type:integer;
rasstoyanie: real;

Procedure Autobus_Stoim()
Begin
Writeln (‘Введите тип автобуса’);
Writeln (‘0. ПАЗ’);
Writeln (‘1. Икарус’);
Writeln (‘2. Мерседес’);
Readlin (bustype1);

Writeln (‘Имеется ли багаж? ’);
Writeln (‘0. Нет’);
Writeln (‘1. Да’);
Readln (bag1);
Readln (‘Введите другие сборы ’, bust1);
Autobus.Init(bustype1,bag1,s1,bust1 );
Autobus.Stoimost; -
End;

Procedure Poezd_Stoim()
Begin
Writeln (‘Введите тип поезда’);
Writeln (‘0. Пассажирский’);
Writeln (‘1. Скорый’);
Writeln (‘2. Фирменный’);
Readln (raintype1);
Writeln (‘Введите тип вагона ’);
Writeln (‘0. Общий’);
Writeln (‘1. Плацкартный’);
Writeln (‘2. Купейный’);
Writeln (‘3. Мягкий’);
Readln(ctype1);
Writeln (‘Укажите тип обслуживания’);
Writeln (‘0. Обычный’);
Writeln (‘1. Эконом’);
Writeln (‘2. Коммерческий’);
Readln(rst1);
Readln (‘Введите другие сборы ’, raint1);
Poezd.Init(raintype1,ctype1,rst1,s1 ,raint1);
Poezd.Stoimost;

Procedure Samolet_Stoim()
Begin
Writeln (‘Введите тип самолета’);
Writeln (‘0. Ан-124’);
Writeln (‘1. Ту-154’);
Writeln (‘2. Ту-204’);
Readln (raintype1);
Writeln (‘Введите класс места ’);
Writeln (‘0. Эконом’);
Writeln (‘1. Коммерческий’);
Writeln (‘2. Первый’);
Readln(clairs1);
Readln (‘Введите другие сборы ’, airts1);
Samolet.Init(airt1,Clairs1,s1,airts 1);
Samolet.Stoimost;
End;

Begin
clrscr;
writeln ('Введите тип транспорта:');
writeln ('1. Автобус');
writeln ('2. Поезд');
writeln ('3. Самолет');
read(trans_type);
clrscr;

(writeln 'Введите расстояние в км');
read(rasstoyanie);
case trans_type of
1 : Autobus_Stoim;
2 : Poezd_Stoim;
3 : Samolet_Stoim;
else exit end;
End.

Все выходные потратил на написание этого кода, компилируется нормально, но вот упорно выдает ошибку "cannot run a unit". Хотя в меню Compile указал Destination ->Disk, Primary file -> trans.pas

Последний раз редактировалось Ink_90; 22.12.2008 в 06:32.
Ink_90 вне форума Ответить с цитированием
Старый 22.12.2008, 06:39   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Это потому что ты все запихал в unit.
_Engine_ вне форума Ответить с цитированием
Старый 22.12.2008, 08:31   #3
Ink_90
 
Регистрация: 22.12.2008
Сообщений: 4
По умолчанию

В том-то и дело, что trans.tpu как отдельный файл от основной программы который начинается с

Uses Crt,trans1;
var: trans_type:integer;
rasstoyanie: real;
и так далее по тексту..
Ink_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADOQuery - выдает ошибку kiber0net0 Общие вопросы Delphi 2 02.09.2008 19:49
Windows2003 ошибку выдает Cantana Windows 11 07.12.2007 06:04
MasterSource - выдает ошибку nataly_ukr БД в Delphi 10 12.10.2007 13:49
При активизации формы выдает ошибку Canadec Общие вопросы Delphi 11 04.09.2007 12:10
выдает ошибку в очень глупом месте помогите пожалуйста durexa Помощь студентам 2 24.06.2007 11:45