• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

سوال در مورد کلاس ها

sara94

New member
salam .yebarname daram minevisam ke az chandta kelas tashkil shode..yeki az kelasam : class point hastesh va oon yeki class line..tooye kelase line ye tabe daram mikham behem bege ke 2khat barham amood hastan ya na.


(bool isPrependicular(line* N
{
if((N->m*this->m) == -1) return true

return false;

}
bad tooye private classe line m ro float tarif kardam...behamin khater zarbe 2ta shib ha daghighan -1 nemishe ..in moshkelo chetori mitoonam bar taraf konm???










soale 2:


(point* line::intersection(line* L

in tabe noghte barkhorde 2khat ro behem mide.vaseye in tabe bayad moadele khat haro bedast biaram.chetorisho nemidoonam.age komak konin mamnoon misham
 

Mahdi Askari

مدير فنی
سلام خدمت شما دوست عزیز
لطفا طبق قوانین فارسی تایپ کنید

:گل:

با چه زبانی دارید مینویسید؟
لطفا کلاس هاتون رو هم بذارید تا ببینیم:گل:
 

sara94

New member
با c++
#include "line.h"
#include"point.h"


line::line(point* a, point* b)
{
m=(a->getx() - b->getx())/(a->gety() - a->gety());
}
bool line::isParallel(line* M)
{
int k;
if(k*(M->m)==this->m) return true;
return false;
}
bool line::isPrependicular(line* N)
{
if((N->m*this->m) == -1) return true;
return false;
}
point* line::intersection(line* L)
{
??????????????????????????????????????????????????????????????????????????
point o(x1,y1);
return &o;
}




line::~line(void)
{
}
 

sara94

New member
ﻫندسﻪ
خــﻂ و چنــد ضــلعی پیــاده ســازی ، بــرای ایــﻦ ســوال بایــد کــﻼس هــایی بــرای شــبیه ســازی مفــاهیم اولیــه هندســی ماننــد نﻘﻄــه کنیــد .
امــا در پیــاده ســازی کــﻼس مربــوط بــه چنــد ضــلعی ﺣتمــا ، نحــوه ی پیــاده ســازی ایــﻦ کــﻼس هــا بــر عهــده ی خــود شماســت بایــد یکــی از کﻼس های پیاده سازی شده برای خﻂ یا نﻘﻄه استفاده کنید .
نﻘﻄه :
کﻼس پیاده سازی شده برای نﻘﻄه باید شامل توابﻊ زیر باشد :
class point {

point (int x, int y ) ;
int getX();
int getY();
int distance (point*);
line* Line (point*);
polygon* triangle(point*, point*);

};
:ایــﻦ تــابﻊ point (int x, int y ) ایــﻦ کــﻼس اســت .دو مﺨتﺼــه ی مربــوط شــی را ﮔرفتــه و شــی مــی constructor
سازد.
: ایﻦ تابﻊ مﻘدار مربوط به مﺨتﺼه ی int getX() را بر میگرداند x .
: ایﻦ تابﻊ مﻘدار مربوط به مﺨتﺼه ی int getY() . را بر میگرداند y
: ایـــﻦ تـــابﻊ فاصـــله ی بـــیﻦ ایـــﻦ نفﻄـــه و نﻘﻄـــه ی پـــاس داده شـــده را محاســـبه کـــرده و بـــاز int distance(point*)
میگرداند .
: ایـــﻦ تـــابﻊ خـــﻂ ایﺠـــاد شـــده توســـﻂ ایـــﻦ نﻘﻄـــه و نﻘﻄـــه ی پـــاس داده شـــده را ســـاخته و یـــﮏ line* Line(point*) اشـــاره
ﮔر به شی ساخته شده بر میگرداند.
: ایـــﻦ تـــابﻊ مﺜلـــﺚ ایﺠـــاد شـــده توســـﻂ ایـــﻦ نﻘﻄـــه و دو نﻘﻄـــه ی پـــاس داده Polygon* triangle(point* , point*)
شده را میسازد و یﮏ اشاره ﮔر به شی ساخته شده بر میگرداند.
خﻂ:
کﻼس پیاده سازی شده برای خﻂ باید شامل توابﻊ زیر باشد.
class line {
...
line(point*,point*);
bool isParallel(line*);
bool isPrependicular(line*);
point* intersection(line*);
line* parallel(point*);
polygon* triangle(line*,line*);
...
};
مربــوط بــه ایــﻦ کــﻼس اســت .دو نﻘﻄــه ﮔرفتــه و بــا توجــه بــه آن هــا constructor :ایــﻦ تــابﻊ line (point* , point*)
شی خﻂ را می سازد .
. :ایﻦ تابﻊ وضعیت توازی ایﻦ خﻂ با خﻂ داده شده را باز میگرداند bool isParallel(line*)
. :ایﻦ تابﻊ وضعیت تعامد ایﻦ خﻂ با خﻂ داده شده را باز میگرداند bool isPrependicular(line*)
:ایــــﻦ خــــﻂ نﻘﻄــــه ی برخــــورد ایــــﻦ خــــﻂ بــــا خــــﻂ داده شــــده را محاســــبه میکنــــد point* intersection(line*) و
برمیگرداند (.فرض کنید مﺨتﺼات نﻘﻄه ی بر خورد ﺣتما صحیﺢ است ) .
. با ایﻦ خﻂ میسازد و برمیگرداند ، :ایﻦ تابﻊ یﮏ خﻂ موازی ﮔﺬرنده از نﻘﻄه ی داده شده line* parallel(point*)
:ایـــﻦ تـــابﻊ مﺜلـــﺚ ســـاخته شـــده از ایـــﻦ خـــﻂ و دو خـــﻂ داده شـــده را ســـاخته و بـــاز polygon* triangle(line*,line*)
) . نﻘﻄه ی برخورد مﺨتﺼات صحیﺢ دارند 3 میگرداند ( .فرض کنید هر
چند ضلعی :
کﻼس پیاده سازی شده برای چند ضلعی ها باید شامل موارد زیر باشد .
class polygon { …
polygon(point** arr,int size);
polygon(line** arr,int size); bool isTriangle();
bool isSquare();
...
};

هـــای ایـــﻦ کـــﻼس اســـت و در آن بایـــد شـــی constructor :ایـــﻦ تـــابﻊ یکـــی از polygon (point** arr , int size)
مربــوط بــه چنــد ضــلعی بــر اســاس نﻘــاط داده شــده ســاخته شــود ( .نﻘــاط-راس هــای چنــد ضــلعی - بــه ترتیــﺐ در آرایــه قــرار خواهند ﮔرفت )
هـــای ایـــﻦ کـــﻼس اســـت و در آن بایـــد شـــی constructor :ایـــﻦ تـــابﻊ یکـــی از polygon (line** arr ,int size)
ضــلﻊ هــای چنــد ضــلعی- بــه ترتیــﺐ در آرایــه قرار – مربــوط بــه چنــد ضــلعی بــر اســاس خﻄــوط داده شــده ســاخته شــود ( .خﻄــوط خواهند ﮔرفت )
. باز می ﮔرداند false و در ﻏیر ایﻦ صورت true :در صورت مﺜلﺚ بودن ایﻦ چند ضلعی bool isTriangle()
. باز می ﮔرداند false و در ﻏیر ایﻦ صورت true :در صورت مربﻊ بودن ایﻦ چند ضلعی bool isSquare()
توجه کنید :
اســت .در نتیﺠــه تســت هــای داده شــده ﻃــوری انتﺨــاب میشــوند کــه نﻘــاط برخــورد و فاصــله ی نﻘــاط هــم int .مﺨتﺼــات از نــوع 1 یﮏ عدد صحیﺢ شود .
. .تعریف توابﻊ ﺣتما باید به صورت خواسته شده باشد 2
: .فایل هایی که باید در پوشه ی مربوط به ایﻦ سوال قرار ﮔیرند 3
point.h (a
line.h (b
polygon.h (c
point.cpp (d
line.cpp (e
polygon.cpp (f
. ندارد main .ایﻦ تمریﻦ تابﻊ 4
. .باید تا جایی که ممکﻦ است به محتویات داخل کﻼس ها به صورت عمومی دسترسی نداشته باشیم
 
بالا