IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача по ООП
Анисия
сообщение 4.01.2009 19:36
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Женский
Реальное имя: Анисия

Репутация: -  0  +


Дали задание написать курсовой проект с применением объектно-ориентированного программирования.
Начала выполнять задание и столкнулась с проблемой возникла ошибка "Invalid procedure of functio referense".
Подскажите где я не правильно что делаю?

PROGRAM Paralel;
USES Crt, Graph;
type graph_1 =  object
    PROCEDURE Draw;
    PROCEDURE Otr_XOZ_YOZ;
end;

VAR Gd, Gm: Integer;
    par: array[1..8, 1..3] of real;
    rebra: array[1..12, 1..2] of integer;
    i: integer;
    ch: char;
{==============================}
PROCEDURE graph_1.draw;
VAR x1,x2,y1,y2: integer;
    ver1,ver2: integer;
BEGIN
   For i:=1 To 12 Do Begin
       ver1:=rebra[i,1];
       ver2:=rebra[i,2];
       x1:=round(par[ver1,1])+320;
       y1:=240-round(par[ver1,2]);
       x2:=round(par[ver2,1])+320;
       y2:=240-round(par[ver2,2]);
       line(x1,y1,x2,y2);
   End;
END;
{==============================}
PROCEDURE graph_1.Otr_XOZ_YOZ;
BEGIN
   For i:=1 To 8 Do Begin
       par[i,2]:=-par[i,2];
       par[i,1]:=-par[i,1];
   End;
END;
BEGIN

   par[1,1]:=0;    par[1,2]:=0;    par[1,3]:=0;
   par[2,1]:=0;    par[2,2]:=110;  par[2,3]:=0;
   par[3,1]:=175;  par[3,2]:=110;  par[3,3]:=0;
   par[4,1]:=175;  par[4,2]:=0;    par[4,3]:=0;
   par[5,1]:=0;    par[5,2]:=0;    par[5,3]:=150;
   par[6,1]:=0;    par[6,2]:=110;  par[6,3]:=150;
   par[7,1]:=175;  par[7,2]:=110;  par[7,3]:=150;
   par[8,1]:=175;  par[8,2]:=0;    par[8,3]:=150;

   rebra[1,1]:=1;   rebra[1,2]:=2;
   rebra[2,1]:=2;   rebra[2,2]:=3;
   rebra[3,1]:=3;   rebra[3,2]:=4;
   rebra[4,1]:=4;   rebra[4,2]:=1;
   rebra[5,1]:=5;   rebra[5,2]:=6;
   rebra[6,1]:=6;   rebra[6,2]:=7;
   rebra[7,1]:=7;   rebra[7,2]:=8;
   rebra[8,1]:=8;   rebra[8,2]:=5;
   rebra[9,1]:=1;   rebra[9,2]:=5;
   rebra[10,1]:=2;  rebra[10,2]:=6;
   rebra[11,1]:=3;  rebra[11,2]:=7;
   rebra[12,1]:=4;  rebra[12,2]:=8;

   Gd := Detect;
   InitGraph(Gd, Gm, '');
   If GraphResult <> grOk Then
      Halt(1);
   SetBkColor(Blue);
   ClearDevice;
    While ch<>#27 Do Begin
      ClearDevice;
   {  graph_1.draw;   }
      OuttextXY(10,450,'Press <1>-<6> for rotation, <7>-<9> for reflection');
      OuttextXY(10,465,'Press <Esc> to Exit');
      ch:=readkey;
      Case ch Of
              '1': graph_1.Otr_XOZ_YOZ;
            End;
   End;
   CloseGraph;
END.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 4.01.2009 19:49
Сообщение #2


Гость






Цитата
graph_1.Otr_XOZ_YOZ;
- этого делать нельзя. graph_1 - это тип объекта. Нужно создавать экземпляр этого типа, и вызывать метод именно через экземпляр:

Var obj: graph_1;
...
  obj.Otr_XOZ_YOZ;
...

 К началу страницы 
+ Ответить 
Анисия
сообщение 4.01.2009 19:56
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Женский
Реальное имя: Анисия

Репутация: -  0  +


Спасибо за подсказку поправила.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 11:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"