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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Описание куба, С помощью ООП
Godsmack2007
сообщение 16.06.2011 21:47
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


Народ помогите написать вот такую штучку - Опишите геометрический объект куб с помощью ООП
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 16.06.2011 22:35
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


Может, что-то типа такого:

  type TCoor=record
x,y,z:integer;
end;
TCube=class
private
public
v:array[1..8] of TCoor;
end;


Можно было бы TCoor загнать в Private-секцию, но не получилось)

Сообщение отредактировано: Unconnected - 16.06.2011 22:36


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Godsmack2007
сообщение 16.06.2011 22:39
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


а может быть и не так?)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 16.06.2011 22:42
Сообщение #4


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


Ну, этот класс содержит координаты вершин, к ним можно обратиться по порядковому номеру, но никто ведь не знает, что за кубы у твоего преподавателя(и что он хочет увидеть))


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 16.06.2011 22:49
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Godsmack2007 @ 16.06.2011 23:39) *
а может быть и не так?)))

Да, может.
1. В программировании любую задачу можно решить сотнями способов.
2. Мы тут тоже не боги. Не доверяешь - не приходи на форум и не спрашивай.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Godsmack2007
сообщение 16.06.2011 22:51
Сообщение #6





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


Unconnected ну да))
Lapp а я вообще то ничего и не говорил, просто переспросил, а вы тут сразу с какими то неопнятными наездами. Я просто очень хочу понять как делать это задание разобратся наконец с ним и все.

Сообщение отредактировано: Godsmack2007 - 16.06.2011 22:52
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 16.06.2011 22:53
Сообщение #7


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Unconnected @ 16.06.2011 23:35) *
Может, что-то типа такого:

Un, я думаю, ему нужно наследование от абстрактного объекта через геом. точку, цветную точку, точку с размером, ориентацией и к кубу - как-то так.. С методами (перемещение, поворот, окраска..)


Добавлено через 5 мин.
Цитата(Godsmack2007 @ 16.06.2011 23:51) *
Lapp а я вообще то ничего и не говорил, просто переспросил, а вы тут сразу с какими то неопнятными наездами. Я просто очень хочу понять как делать это задание разобратся наконец с ним и все.

Переспрашивают, когда не расслышали. А вопросы задавай более конкретно и по сути. Наехал потому, что не люблю, когда челу ответят, а он: а ты не врешь?
Давай на этом закроем конфликт, я рад, что ты хочешь разобраться. Просто сразу это не было заметно..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Godsmack2007
сообщение 16.06.2011 23:02
Сообщение #8





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


Lapp ок все закрыли) а если по делу то как вообще все реализовать мне тут вот так подкидывают идею но это только куб без ООП

Type
TKube = class
private
FX0,FY0,FZ0:Integer; // Какая-то из точек куба
FWidth:Word; // Ширина
FHeight:Word; // Высота
FDepth:Word; // Глубина
FColor:TColor; // Цвет стенок
public
// мне так захотелось, что б после создания
// куб нельзя было изменить, посему дальше свойства параметров куба, но
// только для чтения
property X0:Integer read FX0;
property Y0:Integer read FY0;
property Z0:Integer read FZ0;
property Width:Word read FWidth;
property Height:Word read FHeight;
property Depth:Word read FDepth;
// А вот цвет можно менять:
property Color:TColor read FColor write FColor;
//------------------------------------------
// нужно также придумать кучу методов:
Constructor Create(AX0,AY0,AZ0:Integer; AWidth, AHeight, ADepth:Word); // самый главный - конструктор
Destructor Destroy; Virtual; // Тоже не менее важный - дестуктор
Proceudre Draw;Virtual; // Метод - "Нарисуте меня". Пущай будет виратуальным. Вдруг потребуется на основании этого куба (в техмерном пространстве) изобразить какой-нить другой объект
Procedure Hide;Virtual; // Спрятать куб
//------------------------------------------
// Можно придумать еще как куб скажем будет перемещаться в простарнстве под действием различных сил
// но фантазия иссякает
End;




чета встрял я с этим заданием сегодня как то оно мне легким не показалось
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 16.06.2011 23:06
Сообщение #9


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


Мм ну как раз это с ООП, класс ведь сделал.. только непонятно, зачем ширина, высота и глубина отдельно - в кубе они одинаковые ж. Можно сделать методы для поворота вокруг 3х осей, проходящих через центры граней..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Godsmack2007
сообщение 16.06.2011 23:10
Сообщение #10





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


Unconnected на этом примере пожете показать что имеете ввиду?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 16.06.2011 23:20
Сообщение #11


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


А как вообще вводится куб? Я сначала думал, что координаты всех вершин в базисе, а тут какая-то точка фигурирует, относительно которой что-то делается..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 16.06.2011 23:25
Сообщение #12


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

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


Lapp разбушевался! smile.gif

Un, нарисуй на бумажке точку и от нее любой ортогональный базис. Его положение уже должно задаваться дальше в программе.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Godsmack2007
сообщение 16.06.2011 23:27
Сообщение #13





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


все о чем то размышлают))) а я чета вообще ниочем)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 16.06.2011 23:28
Сообщение #14


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

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


God, ты придумай для себя что ты хочешь - и делай хоть что нибудь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Godsmack2007
сообщение 16.06.2011 23:37
Сообщение #15





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


sheka - я хочу эту прогу чтоб она работала и все))) а как будет хоть как я всеравно умнее не придумаю)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 17.06.2011 17:32
Сообщение #16


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

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


Цитата
мне тут вот так подкидывают идею но это только куб без ООП
Это ООП, но идея неправильная. Одной точки в пространстве недостаточно для задания куба. Нужно еще что-то. Не веришь? Ну, попробуй взять карандаш, и нарисовать на листе бумаги (в клеточку, договорились) куб. Точку я тебе задам. Скажем, <10, 10, 10>. Ширина/Высота/Глубина = 15 ... Бери карандаш и начинай рисовать кубик. Для начала - оси координат, а уж потом - сами точки, соединяя которые получишь то, что тебе надо.

Что, "не выходит каменный цветок"(С)? А почему? Потому, что ты не знаешь, какая именно точка задана, и как относительно нее расположены остальные точки. А вот если я добавлю, что ребра куба параллельны осям координат, координаты всех точек - положительны, и точка <10, 10, 10> находится ближе всего к началу координат - то ты сможешь нарисовать кубик без проблем. Так что думай, какую еще информацию внести в класс, чтобы однозначно описать фигуру.

P.S. Делать задачу полностью - не буду, предупреждаю сразу. Потому что задана она тебе, а не мне. И решать ее должен ты, а не кто-то за тебя... Думай, пробуй. Что не получится - спрашивай...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 17.06.2011 17:39
Сообщение #17


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


Тремя точками можно однозначно задать (два вершины и центр, к примеру). Но я, не особо раздумывая, сделал бы задание по всем вершинам)


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Godsmack2007
сообщение 17.06.2011 18:24
Сообщение #18





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Михаил

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


IUnknown как то так?

uses crt;
Type
TKube = object


X,Y,Z:Integer;
Width:Word;
Height:Word;
Depth:Word;
Color:byte;
constructor Create(mX,mY,mZ:Integer; mWidth, mHeight, mDepth:Word);
procedure print;
end;

constructor tkube.Create(mX,mY,mZ:Integer; mWidth, mHeight, mDepth:Word);
begin
x:=mx;y:=my;z:=mz;Width:=mWidth;Height:=mHeight;Depth:=mDepth;
end;

procedure tkube.print;
begin
writeln('x=',x,' y=',y,' z=',z,' width=',Width,' height=',Height,' depth=',Depth,' color=',Color);
end;

var
q:tkube;
begin
q.create(10,10,10,10,10,10);
q.color:=2;
q.print;
q.color:=5;
q.print;
readln;
end.


М
Теги!! Правила. Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 17.06.2011 22:43
Сообщение #19


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Unconnected @ 17.06.2011 18:39) *
Но я, не особо раздумывая, сделал бы задание по всем вершинам)
.. и поимел бы маааассу удовольствьица потом, вылавливая ну оооччень странные ошибки.. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 17.06.2011 22:59
Сообщение #20


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


Цитата
и поимел бы маааассу удовольствьица потом, вылавливая ну оооччень странные ошибки..


Мм какого плана ошибки?)

Сообщение отредактировано: Unconnected - 17.06.2011 23:00


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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