PDA

View Full Version : انجام عملیات جمع بر روی چند جمله ای



mohsen_zelzela00
پنج شنبه 20 فروردین 1388, 00:22 صبح
با عرض سلام خدمت اساتید محترم
من میخواستم یه برنامه ای رو به زبان c بنویسم که دو چند جمله ای رو از ورودی دریافت کرده(تا 10 جمله ای) و در یک آرایه ذخیره کرد و آنها رو با هم جمع کند و در آرایه دوم قرار دهد

ممنون میشم دوستان کمکم کنند

vahid.bz
پنج شنبه 27 فروردین 1388, 20:19 عصر
1.یه کلاس بنویس با نام چند جمله ای که دو تا متغیر شی ای یکی ضریب یکیم توان داشته باشه
2.یه آرایه از نوع کلاس بالا برا چندجمله اولی و یه آرایه برا چندجمله دومی بساز
3.ضریب و توانشونو با سازنده ای که برا کلاس می نویسی مقدار بده
4.حالا کافی اضریب های دو جمله هایی از دو چند جمله ای را که توان یکسان دارند رو با هم جمع کنی و داخل یه ارایه ی جدیدی از کلاس بریزی اگرم دویت داری نمایش بده در ضمن جمله هایی رو که توان یکسان ندارند رو هم باید در آرایه ی جواب بریزی

mohsen_zelzela00
شنبه 29 فروردین 1388, 18:10 عصر
دوست عزیز من میخوام دوتا دو جمله ای بگیرم و در یک آرایه قرار بدم آرایه دو بعدی که در بعد اول آن توان و در بعد دوم آن پایه قرار میگیره حالا برای این کار احتیاج به سه متغیر دارم یکی برای آرایه اول و دومی برای آنجایی که آرایه دوم شروع میشه و سومی برای آرایه دوم
حالا من میگم که هر تابع من میتونه تا 10 جمله رو بگیره برای همین منظور من یک آرایه 20 عنصری رو برای ذخیره کردن این دو چند جمله تعریف کردم اما ممکنه کاربر بخواد که کمتر 10 جمله قرار بده حالا چگونه میتونم تشخیص بدم که کاربر برای آرایه اول چند جمله و برای آرایه دوم چند جمله میخواد به کار ببره

ممنون

rivaaaldo
شنبه 29 فروردین 1388, 23:10 عصر
اگر قبل از شروع ارایه رو صفر کنی مهم نیست که اولی چند تا باشه
به طور ثابت 10 تای اول رو برای اولی و 10 تای بعدی رو برای دومی بذار..
بعد تو جمع چون خونه هایه خالی صفر هستن مشکلی پیش نمیاد..

البته اگر میخوای واقعا تعداد رو داشته باشی
دو حالت داره
اگر حداکثر توانی که وارد میشه مشخص باشه و 9 باشه میتونی یه متغیر تو حلقه ای که کاربر اعداد رو وارد میکنه بذاری و برابر با بیشترین توانی بذاری که کاربر وارد میکنه و این میشه اخرین خونه ای که در قسمت اول ارایه پر میشه..

ولی اگر حداکثر توانی که وارد میشه معلوم نباشه (بزرگتر از 9 باشه) اونوقت بدلیل اینکه ممکنه فضا زیاد بخواد نمیشه هر چند جمله ای رو تو خونه متناظرش بگذاری مثلا


3X^2+8X^100

برای این حالت میتونی از شمارنده داخل حلقه ورود داده ها استفاده کنی
و البته ارایه ای که برای جواب میگیری باید 20 تا باشه چون ممکنه تمام جملات دو چند جمله ای متفاوت باشه.

mohsen_zelzela00
یک شنبه 30 فروردین 1388, 12:25 عصر
اگر قبل از شروع ارایه رو صفر کنی مهم نیست که اولی چند تا باشه
به طور ثابت 10 تای اول رو برای اولی و 10 تای بعدی رو برای دومی بذار..
بعد تو جمع چون خونه هایه خالی صفر هستن مشکلی پیش نمیاد..

البته اگر میخوای واقعا تعداد رو داشته باشی
دو حالت داره
اگر حداکثر توانی که وارد میشه مشخص باشه و 9 باشه میتونی یه متغیر تو حلقه ای که کاربر اعداد رو وارد میکنه بذاری و برابر با بیشترین توانی بذاری که کاربر وارد میکنه و این میشه اخرین خونه ای که در قسمت اول ارایه پر میشه..

ولی اگر حداکثر توانی که وارد میشه معلوم نباشه (بزرگتر از 9 باشه) اونوقت بدلیل اینکه ممکنه فضا زیاد بخواد نمیشه هر چند جمله ای رو تو خونه متناظرش بگذاری مثلا


3X^2+8X^100

برای این حالت میتونی از شمارنده داخل حلقه ورود داده ها استفاده کنی

و البته ارایه ای که برای جواب میگیری باید 20 تا باشه چون ممکنه تمام جملات دو چند جمله ای متفاوت باشه.

میشه اینجوری در نظر گرفت که همون اول از کاربر بپرسیم که آرایه اول ما شامل چند جمله است و یک اشارگر به اول و آخر اون گذاشت و از ادامه اون آرایه دوم رو ذخیره کنیم و یک اشاره گر دیگه به اول و آخر آن بزاریم؟؟؟؟؟؟

rivaaaldo
یک شنبه 30 فروردین 1388, 13:55 عصر
اره میشه اینکار رو هم کرد..
ولی همونطور که گفتم ضرورتی نداره..

mortezamsp
یک شنبه 30 فروردین 1388, 23:45 عصر
سلام آقای زلزله. من یکی نوشته بودم که دو چندجمله ای رو ساده میکنه و با هم جمعشون میکنه.البته با لینک لیست.اینهم آدرس دانلودش از 4SHARED: http://www.4shared.com/file/92915942/71289f9a/2jomleiee_-_wwwcplusplusblogskycom.html اینم توضیحش: http://www.cplusplus.blogsky.com/1387/12/24/post-20/

taeyeon
جمعه 06 تیر 1393, 12:20 عصر
سلام دوستان میشه بگید چطوری باید یک چند جمله ای رو در زبان سی با استفاده از ارایه نوشت.
من خودم یه ارایه نوشتم که x به توان های از 0تا n بنویسه
یه ارایه هم اینکه ضرایب بگیره بعد یه حلقه نوشتم ضرب اون 2تا ارایه رو انجام بده و با m جمع کنه باز بریزه تو m که حاصلش بشه چند جمله ای
اما خیلی خطا میگیره میشه راهنماییم کنید لطفا