PDA

View Full Version : سوال: 4عمل اصلی



hafez1
دوشنبه 11 دی 1391, 21:44 عصر
می خام یه برنامه بنویسم که 4 عمل اصلی رو برای اعداد مختلط نشون بده.
باید از کلاسها استفاده کرد.
بلدمش ولی نمی دونم کلاسام باید چی داشته باشن.

lexical_error
سه شنبه 12 دی 1391, 00:18 صبح
منظورتون چی هست که 4 عمل اصلی رو برای اعداد مختلط حساب کنه؟!!

the king
سه شنبه 12 دی 1391, 05:17 صبح
می خام یه برنامه بنویسم که 4 عمل اصلی رو برای اعداد مختلط نشون بده.
باید از کلاسها استفاده کرد.
بلدمش ولی نمی دونم کلاسام باید چی داشته باشن.

هر کلاس باید دو مشخصه (یا متغیر) داشته باشه، برای نگهداری و ارائه مقدار بخش حقیقی و بخش موهومی. مثلا R و I
چهار عملگر اصلی رو هم گرانبار خواهید کرد تا دو نمونه شیء از این کلاس را با هم جمع و ضرب و ... کنند و نتیجه رو به عنوان
یک نمونه شیء جدید از همین کلاس برگردانند.

این حداقل مواردی است که باید داشته باشه، حالا ممکنه بخواهید مواردی دیگری مثل مقایسه دو شیء از این کلاس (بزرگتری / کوچکتری)،
تشخیص برابری مقدار دو شیء، دریافت مقدار ورودی از stdin و ارسال مقدار خروجی به stdout، اضافه کردن چهار عملگر اصلی
برای یک نمونه از این کلاس و یک عدد حفیقی (نه عدد مختلط) و ... رو هم به کلاس تون اضافه کنید.

hafez1
سه شنبه 12 دی 1391, 18:17 عصر
منظورتون چی هست که 4 عمل اصلی رو برای اعداد مختلط حساب کنه؟!!
یعنی اعداد مختلط رو جمع کنه و تفریق کنه و ضرب و تقسیم.

hafez1
سه شنبه 12 دی 1391, 18:19 عصر
هر کلاس باید دو مشخصه (یا متغیر) داشته باشه، برای نگهداری و ارائه مقدار بخش حقیقی و بخش موهومی. مثلا R و I
چهار عملگر اصلی رو هم گرانبار خواهید کرد تا دو نمونه شیء از این کلاس را با هم جمع و ضرب و ... کنند و نتیجه رو به عنوان
یک نمونه شیء جدید از همین کلاس برگردانند.

این حداقل مواردی است که باید داشته باشه، حالا ممکنه بخواهید مواردی دیگری مثل مقایسه دو شیء از این کلاس (بزرگتری / کوچکتری)،
تشخیص برابری مقدار دو شیء، دریافت مقدار ورودی از stdin و ارسال مقدار خروجی به stdout، اضافه کردن چهار عملگر اصلی
برای یک نمونه از این کلاس و یک عدد حفیقی (نه عدد مختلط) و ... رو هم به کلاس تون اضافه کنید.
یعنی باید جمع و تفریق و... رو به صورت تابع توی کلاس تعریف کنم .درسته؟

mahak006
سه شنبه 12 دی 1391, 19:46 عصر
یعنی باید جمع و تفریق و... رو به صورت تابع توی کلاس تعریف کنم .درسته؟

از توابع operator استفاده کن ( عضو کلاس تعریف می شن ) توضیح بیشتر و آموزششو می تونی با یه سرچ تو سایت پیدا کنی .
کلاست باید دو تا int بگیره . یکی بره I و یکی هم بره R این دو تا رو که می دونی چیه ؟
تو جمع و تفریمق :جمع و تفریق R ها با هم . جمع و تفریق I ها با هم .
بره ضرب و تقسیم هم فرمولی داره که با ضرب و تقسیم دو تا عدد پارامتری مختلط می شه فرمولاشو به دست اورد . الآن یادم نیست چی بودن .

hafez1
پنج شنبه 21 دی 1391, 20:51 عصر
بله کاملا منظورتون رو می فهمم.
بدون استفاده از اپراتورا نمی شه نوشت؟

hafez1
پنج شنبه 21 دی 1391, 22:52 عصر
هیچکس نمی دونه بدون استفاده از اپراتورا می شه نوشت یانه؟
اصلا شدنیه؟

aidinMC
پنج شنبه 21 دی 1391, 22:56 عصر
هیچکس نمی دونه بدون استفاده از اپراتورا می شه نوشت یانه؟
اصلا شدنیه؟
علت این که میخوای همچین کاری کنی چیه؟
منظورم اینه چرا وقتی امکانات هست میخوای یه راه من درآوردی بری؟
این دو عدد که میفرمایین از یه کلاسه؟

hafez1
پنج شنبه 21 دی 1391, 23:19 عصر
بله .اینا رو می دونم و نحوه کار با اپراتور ها رو هم می دونم .
ولی بجز استفاده از اینا چطوری می شه؟

aidinMC
پنج شنبه 21 دی 1391, 23:22 عصر
نمیشه :لبخند:

hafez1
پنج شنبه 21 دی 1391, 23:23 عصر
اکی خیلی ممنون

mahak006
جمعه 22 دی 1391, 02:26 صبح
نمیشه :لبخند:

میشه!!!
ولی بدون اپراتور باید تابع تعریف کنی . یعنی مثلا به جای جمع دو عدد مختلط که با اپراتور نوشته می شه :
c=a+b;
می تونی تابع تو کلاس تعریف کنی به نام مثلا add و اینطور کار کنی :

c=a.add(b);

فک کنم شیوه ی کار کاملا واضحه .

aidinMC
جمعه 22 دی 1391, 14:25 عصر
شما میخوای این عملیات رو با سه تا شی از یه کلاس انجام بدی یعنی شی اول و دوم جمع بشه تو شی سومی قرار داده بشه، وقتی نمیخوای با اپراتور کار کنی پس مساوی معنی نداره...

mahak006
جمعه 22 دی 1391, 14:42 عصر
شما میخوای این عملیات رو با سه تا شی از یه کلاس انجام بدی یعنی شی اول و دوم جمع بشه تو شی سومی قرار داده بشه، وقتی نمیخوای با اپراتور کار کنی پس مساوی معنی نداره...

اگه تابع به این صورت تعریف بشه معنی داره :

complex complex::add(complex b)
{
complex s;
s.real=this->real+b.real;
s.image=this->image+b.image;
return s;
}


من چنین چیزی رو قبلا پیاده سازی کردم .

aidinMC
جمعه 22 دی 1391, 14:52 عصر
شد همون اپراتور دیگه....
به هر حال....