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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2012, 04:02   #1
DeMoHoJIoG
Новичок
Джуниор
 
Регистрация: 12.03.2012
Сообщений: 1
Вопрос Массив из классов

Никак не пойму что здесь не так.
Код Pascal


Код:
type
CL= class
private
CName:string;
CG1,CG2,CG3:byte;
 
public
constructor (G1,G2,G3:byte);
begin
CG1:=G1;
CG2:=G2;
CG3:=G3;
end;
end;
 
var
ID:array [0..3] of CL;
IDT:CL:=new CL;
I,U1,u2,u3:byte;
begin
for I:=1 to 3 do
begin
write(I,' КЛАСС');
writeln;
read(U1);
read(U2);
read(U3);//тут типа заполняю классы в массиве руками
IDT.CG1:=U1;
IDT.CG2:=U2;
IDT.CG3:=U3;
ID[i]:=IDT;// толи тут неприсваевается
end;
IDT.CG1:=0;
IDT.CG2:=0; // зануляем временный класс
IDT.CG3:=0;
for I:=1 to 3 do
begin
writeln(I,' КЛАСС');
IDT:=ID[i]; //толи тут
writeln(IDT.CG1,IDT.CG2,IDT.CG3);
end;
end.

может в объявлении класса косяк или ещё где?

Последний раз редактировалось Stilet; 12.03.2012 в 11:18.
DeMoHoJIoG вне форума Ответить с цитированием
Старый 12.03.2012, 11:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Речь действительно о Паскале или всетки о Делфи?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.03.2012, 18:19   #3
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

В паскале, кажется, классов нет, но есть объекты.
Никогда в паскале этого не делал, но вот так, вроде бы, работает:
Код:
//проверял на Free Pascal
uses
  crt;
type
CL=object
private
CName:string;
CG1,CG2,CG3:byte;
public
constructor create(G1,G2,G3:byte);
end;
constructor cl.create(G1,G2,G3:byte);
begin
CG1:=G1;
CG2:=G2;
CG3:=G3;
//end;
end;

var
ID:array [0..3] of CL;
IDT:CL;//:=new CL;
I,U1,u2,u3:byte;
begin
clrscr;
for I:=1 to 3 do
begin
  write(I,' КЛАСС');
  writeln;
  read(U1);
  read(U2);
  read(U3);//тут типа заполняю классы в массиве руками
{IDT.CG1:=U1;
IDT.CG2:=U2;
IDT.CG3:=U3;}
  ID[i].create(u1,u2,u3);  //не знаю, как в паскале, но в дэлфи такая строка может доставить очень 
дофига проблем, поэтому если пишешь в дэлфи, то смотри, как написано в следующем коде
//  ID[i]:=IDT;// толи тут неприсваевается
end;
{IDT.CG1:=0;
IDT.CG2:=0; // зануляем временный класс
IDT.CG3:=0;}
writeln('----------------------');
for I:=1 to 3 do
  begin
  writeln(I,' КЛАСС');
//  IDT:=ID[i]; //толи тут
  writeln(ID[i].CG1,ID[i].CG2,ID[i].CG3);
  end;
  readln;
end.
Зачем нужен IDT так и не понял.

В Дэлфи вот так:
Код:
type
CL= class
private
  CName:string;
  CG1,CG2,CG3:byte;
public
  constructor create(G1,G2,G3:byte);
end;
constructor CL.create(G1,G2,G3:byte);
begin
  CG1:=G1;
  CG2:=G2;
  CG3:=G3;
end;

var
  ID:array [0..3] of CL;
//  IDT:CL=new CL; //вся строка - бред
  I,U1,u2,u3:byte;
begin
  for I:=1 to 3 do
    begin
      write(I,' КЛАСС');
      writeln;
      read(U1);
      read(U2);
      read(U3);//тут типа заполняю классы в массиве руками
{      IDT.CG1:=U1;
      IDT.CG2:=U2;
      IDT.CG3:=U3;   }
      ID[i]:=CL.create(u1,u2,u3);// толи тут неприсваевается
    end;
{  IDT.CG1:=0;
  IDT.CG2:=0; // зануляем временный класс
  IDT.CG3:=0;}
  for I:=1 to 3 do
    begin
      writeln(I,' КЛАСС');
//      IDT:=ID[i]; //толи тут
      writeln(ID[i].CG1,ID[i].CG2,ID[i].CG3);
    end;
  readln
end.
Все тривиальное просто

Последний раз редактировалось Stilet; 12.03.2012 в 20:24.
whatever вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Сохранить массив классов в файл Casper-SC Общие вопросы .NET 42 21.03.2010 09:27
Передать массив базового абстрактного класса функциям производных классов mishutka999 Общие вопросы C/C++ 2 01.12.2009 14:08
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18
Массив классов nns2009 Общие вопросы C/C++ 15 03.02.2009 00:47