مشاهده نسخه کامل
: آرایه های دو بعدی پویا
سلام دوستان.
من یکم اطلاعات در مورد آرایه های دو بعدی پویا می خواستم.
طریقه ی تعریف و اونها ارجاع آنها به یه تابع .
کدی که میخوام بنویسم دو تا ماتریس رو باید بگیره بعد جمع شون کنه و بعدش چاپش کنه. البته میخوام طوری باشه که سطر و ستون ماتریس رو از کاربر بگیره.
CppBuilder2006
22-03-2009, 17:52
سلام
این بخشی از نوشته ی من در باره ++C سه:
حالا فرض کنید میخواهیم یک آرایهی دوگانه روی heap درست کنیم. این کار دو حالت دارد. گفتم که آرایهی دوگانه، آرایهای از آرایههاست. در حالت اول، ما آرایهای را که از آرایههاست روی stack تعریف میکنیم اما خود آرایهها را از heap میگیریم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که مثل
[SIZE=5]
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید[/B]
[RIGHT]است. [COLOR=#c00000]حالت دوم این است که کلا همه چیز روی heap باشد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خوبی آن این است که هم x و هم y متغیر است و لازم نیست ثابت باشند میدانید که در
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
x و y باید ثابت باشند.
نوشته ی منو میتو نید از وبلاگم دانلود کنید!
من کد رو با راهنمایی مفید شما نوشتم ولی نمیدونم چرا بازم وسط کار erorr میده :41:
لطفا یه نگاهی بهش بندازین.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
CppBuilder2006
22-03-2009, 22:17
اولا جمع کردن دو تا ماتریس خیلی ساده هستا و اصلا نیازی به تابع بازگشتی نداره!
مثلا این جوری:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته من برای این که سریع برنامه اجرا شه سطر و ستون رو توی خود برنامه بهش دادم. باید تغییر بدید تا مقدارها رو از کاربر بگیره.
ببخشید فک کنم یه اشتباهی شده.
این برنامه دو تا ماتریس رو ضرب میکنه و نه جمع.
1- چرا تابع strassen وقتی آرایه ها رو بهش میدین erorr میده؟
2- و چرا تابع چاپ نمیتونه a[i][j] رو نمایش بده؟
خیلی ممنون.
CppBuilder2006
23-03-2009, 20:15
ضرب دو ماتریس هم نیازی به تابع بازگشت نداره و خیلی ساده س. نیازی بهتابع بازگشی نداره. اما دترمینان رو میشه با تابه های بازگشتی نوشت چون یکی از تعریف های دترمینان با بازگشته!
CppBuilder2006
23-03-2009, 20:47
انم برنامه ش
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ضرب دو ماتریس هم نیازی به تابع بازگشت نداره و خیلی ساده س. نیازی بهتابع بازگشی نداره. اما دترمینان رو میشه با تابه های بازگشتی نوشت چون یکی از تعریف های دترمینان با بازگشته!
درسته ضرب دو تا ماتریس خیلی ساده است .
ولی من باید بازگشتی بنویسم.( خب استاد گفته) .
تو اون کدی که گذاشتم فقط تابع استراسنش مشکل داره . و فک میکنم مشکلش تو اشاره گر ها باشه.
اگه ممکنه یه کمکی بکنید.
ببخشید cppbuilder2006 نظری ندارین؟
CppBuilder2006
25-03-2009, 23:31
سلام
(یه مدت صبر کنید من بیام اینجا جواب میدم! )
ببینید وقتی از تابع های بازگشتی استفاده میشه که امکان شکستن مساله به چند مساله کوچکتر باشه. اما برای ضرب دو ماتریس به راحتی این امکان نیست. راه بازگشتی هست ولی کار از نظر ریاضی تخصصی و از نظر برنامه نویسی پر زحمته. اگه بخواید اجراش کنید تا آخر عید سر کارین.
راه حل شما اساسا اشتباهه. مثلا وقتی ماتریس ها n در m هست چرا همه جا نوشنین n/4 و اصلا چرا n/4؟ در ضمن برای ضرب باید یک سطر کامل در یک ستون کامل ضرب بشه برای همین با نصف یا یک چارم ماتریس اصلا نمیشه درایه های ماتریس حاصل ضرب رو مشخص کرد. البته اگه جمع n ماتریس رو داشتیم به سختی یه کارایی میشد کرد.
برنامه دترمینان رو بنویسد قشنگ تره!
بازگشت فقط باید در جایی به کار بره که راه ساده ای نیست و در واقع آخرین راه حله. برای ضرب دو تا ماتریس هیچ توجیهی براش نیست.
موفق باشید
از کمکتون ممنون. خیلی به من کمک کردین.
من باید یه کد بنویسم که دو تاچند جمله ی رو تو هم ضرب کنه (البته به روش بازگشتی ) ولی هیچی به ذهنم نمیرسه اگه ممکنه یه راهنمایی هم در این مورد بکنید .
ممنون.
CppBuilder2006
26-03-2009, 23:50
خواهش می کنم
روشنه که تابع بازگشتی باید مساله رو در هر مرحله ساده تر کنه تا به یه جای خیلی ساده برسونه.
من روی ضرب چند جمله ای ها فکر نکردم تا حال
ا ولی برنامه اولیه رو بذارین یه راهی پیدا می کنیم.
به نظرم در هر مرحله باید یکی از جمله ها کم بشه.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.