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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2013, 16:37   #1
vete-7557
 
Регистрация: 11.04.2013
Сообщений: 9
По умолчанию Вопрос по работе с объектами в Турбо Паскаль

Добрый день! Никто не подскажет почему в программе представленной ниже не выводится содержимое переменных N и P.
Код:
type
 poezdka=object
 N: integer; P: string;
procedure nomer;
procedure punkt;
end;
procedure poezdka.nomer;
begin
write('Введите номер поезда');
readln(N);
end;
procedure poezdka.punkt;
begin
write('Введите пункт назначения');
readln(P);
end;
var x: poezdka;
N:integer; P,D:string;
begin
x.nomer;
x.punkt;
writeln(N,P);
end.

Последний раз редактировалось Stilet; 10.08.2013 в 16:55.
vete-7557 вне форума Ответить с цитированием
Старый 10.08.2013, 17:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может потому что ты не создал объект, а просто объявил его.
https://www.piter-press.ru/attachmen...295&at=exc&n=0
Цитата:
Создание объектов

объект;созданиеВ Турбо Паскале для создания объектов используются тризарезервированное слово;objectзарезервированное слово;constructorзарезервированное слово;destructor зарезервированных слова: object, constructor, destructor
Т.е.
Код:
x:=poezdka.create;
x.nomer;
Цитата:
writeln(N,P);
Это зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.08.2013, 21:32   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

В данном случае ошибка в том, что объявленные переменные и поля объекта совпадают.
Код:
type
 poezdka=object
 N: integer; P: string;  {поля объекта}
procedure nomer;
procedure punkt;
end;
...
var x: poezdka;
N:integer; P,D:string; {переменные программы}
...
В этом случае надо явно указать что выводится:
Код:
writeln(x.N, x.P); {вывод значений полей объекта}
Во вложении добавил расширенный пример ...

Вроде так, ...
Вложения
Тип файла: rar Obj_01.rar (410 байт, 7 просмотров)
Как-то так, ...

Последний раз редактировалось ViktorR; 10.08.2013 в 22:16. Причина: Добавление примера
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализации иерархической зависимости между объектами (Турбо паскаль) EDK Помощь студентам 0 10.10.2012 15:03
Как можно в Паскаль АВС (Паскаль-Турбо) вставлять в результаты печати программы графики, таблицы, схемы, набранные формулы, выраже IZOPGRAM Паскаль, Turbo Pascal, PascalABC.NET 0 11.06.2012 10:54
Вопрос по работе с Qt CarmaC Общие вопросы C/C++ 3 16.07.2011 13:52
Ошибка при работе с объектами transgd Microsoft Office Excel 11 25.06.2009 09:26