PDA

نسخه کامل مشاهده نسخه کامل : آرايه پويا



mnss
18-06-2008, 07:32
سلام. برنامه اي مي خوام كه آرايه پوياي دو بعدي را به صورت سطري بگيرد و به صورت ستوني چاپ كند. (با زبان c يا C++) كسي مي تونه كمك كنه؟

hamed valizadeh
18-06-2008, 11:23
سلام
منظورت رو از آرايه پويا نمي فهمم
ولي فكر كنم كه برنامه اي مي خواي كه يك آرايه‌ي دو بعدي رو بگيره و 90 درجه در جهت عقربه هايه ساعت بچرخونه؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Mina Mehdizadeh
18-06-2008, 17:41
برای ایجاد آرایه پویای دو بعدی هم باید به صورت زیر عمل کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطـمه
29-06-2008, 15:47
میشه راجع به تعریف آرایه توضیح بدین؟؟؟
من همیشه تو این قسمت مشکل داشتم.!!!

bagher_mo68
29-06-2008, 15:53
میشه راجع به تعریف آرایه توضیح بدین؟؟؟
من همیشه تو این قسمت مشکل داشتم.!!!

تعریف آرایه که خیلی سادس !!

اول نوع متغیر های توی آرایرو مشخص میکنین ( همون int , flout , char ... ) و بعد به تعداد بعد های آرایه ( آرایه از 1 تا n بعد میتونه داشته باشه ! ) [] و در داخلش مقدار آن بعد از آرایه رو قرار میدید مثل مثالای زیر :


int A[10][20]a
یه آرایه دو بعدی 10 در 20 از نوع int به نام A

Char CH[25]a
یه آرایه 25 تایی تک بعدی از جنس کارکتر به نام CH

فاطـمه
30-06-2008, 08:59
تعریف آرایه که خیلی سادس !!

اول نوع متغیر های توی آرایرو مشخص میکنین ( همون int , flout , char ... ) و بعد به تعداد بعد های آرایه ( آرایه از 1 تا n بعد میتونه داشته باشه ! ) [] و در داخلش مقدار آن بعد از آرایه رو قرار میدید مثل مثالای زیر :


int A[10][20]a
یه آرایه دو بعدی 10 در 20 از نوع int به نام A


Char CH[25]a

یه آرایه 25 تایی تک بعدی از جنس کارکتر به نام CH


نه دوست عزیز من منظورم تعریف آرایه به صورت پویا بود، همون طور که اون بالا نوشتن...
به هر حال Thanx

mnss
25-07-2008, 00:24
كلا متغيرهاي پويا اينطوري هستند كه درهنگام كامپايل حافظه اي براي آنها در نظر گرفته نمي شود و در هنگام اجرا حافظه به آنها اختصاص داده مي شود و پس از استفاده حافظه به سيستم بازگردانده مي شود. آرايه ها نيز جزيي از متغيرهاي هستند و مي توان به صورت پويا تعريف شوند.

mnss
25-07-2008, 00:33
دوست عزيز مينا جان. در تعريف شما باز از عدد براي تعيين سطر وستون استفاده شده است اين تعريف پويا بودن نيست. پويا يعني همه چيز در زمان اجرا مشخص شود يعني شما تعداد سطر و ستوان هم در زمان اجرا مشخص كنيد و محدود به عدد خاصي نباشد. متغيرهاي پويا محدوديت ندارند و به اندازه ram كامپيوتر مي توانند باشند و پس از استفاده مي توان به حافظه سيستم بازگردانده شوند. براي تخصيص حافظه در زمان اجرا در C از تابع malloc استفاده مي شود.

Mina Mehdizadeh
25-07-2008, 11:04
تا اونجایی که من می دونم malloc با new تفاوتی نداره فقط نحوه استفادشون فرق می کنه .....توی c از
malloc و توی ++c از new استفاده می شه ( البته از malloc هم می شه استفاده کرد )
برای این چیزی که شما می خواید می تونید از stl استفاده کنید (مثلا از vector یا list )

mahdi_pc
27-07-2008, 09:45
همون کدی که دوستمون از تابع new استفاده کردن کاملا درسته. حالا شما می تونید اون r و c رو هنگام اجرای برنامه از کاربر به عنوان ورودی بگیرید: cin >> r
cin >>c

HAW3D
03-08-2008, 15:47
سلام
یکی از اشکالات نظام آموزشی اینه که چیزیرو که یاد میده موارد استفادهش رو نمیگه
اگه خاطرتون باشه تو کتابهای ساختمان داده مطالبی راجع یه چگونگی ذخیره سازی آرایه تو حافظه و حساب کردن محل ذخیره سازی بودش
این مساله به درد همین مسائل میخوره.شما به راحتی بیان یه آرایه یک بعدی به اندازه کل آرایه مورد نیاز دو سه یا هر چند بعدی میخواین درست کنین و از اون فرمولها برای کا با آرایه استفاده کنین.
کاملا با همه زبانها هم سازگار هستش.
HaW3D

Mina Mehdizadeh
03-08-2008, 16:06
سلام
یکی از اشکالات نظام آموزشی اینه که چیزیرو که یاد میده موارد استفادهش رو نمیگه
اگه خاطرتون باشه تو کتابهای ساختمان داده مطالبی راجع یه چگونگی ذخیره سازی آرایه تو حافظه و حساب کردن محل ذخیره سازی بودش
این مساله به درد همین مسائل میخوره.شما به راحتی بیان یه آرایه یک بعدی به اندازه کل آرایه مورد نیاز دو سه یا هر چند بعدی میخواین درست کنین و از اون فرمولها برای کا با آرایه استفاده کنین.
کاملا با همه زبانها هم سازگار هستش.
HaW3D

آخه اینجوری من باید صبر کنم ساختمان داده پاس کنم ......می شه بیشتر توضیح بدید مام ملتفت شیم ؟

HAW3D
04-08-2008, 09:13
این طوری کار یکم سخت شد
اگه کتاب میخوای که کتاب پروفسور تنام باومن خوبه اگه کد نمونه میخوای چشم اونم اگه بخوای میدم.
برای دانلود کتاب اگه سایت ebookee.com درست بشه میتونی دانلود کنی. اما کد رو باید یکم صبر کنی

HAW3D
04-08-2008, 10:13
دو سه پست قبلی آقا mahdi پرسیده بودند چطوری میشه که طول و عرض آرایه پویا رو از کاربر گرفت
مثلا کاربر یک آرایه 10 * 12 میخواد ستون 10 و سطر 12
اندازه آرایه در حالت یک بعدی میشه 120 خانه که توسط تابه malloc تخصیص میدین یا توسط هر روش دیگه
الان مثلا اگه بخواین برین سطر 2 و ستون 3 از فرمول
سطر * تعداد ستون + ستون
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
که میشه 23 یعنی خانه 23 از آرایه یک بعدی شما

Mina Mehdizadeh
04-08-2008, 21:42
مرسی .....اینو می دونستم..... ولی نفهمیدم این چه مشکلی رو حل می کنه ؟؟؟.....آخه این کار( یعنی همون دسترسی به خونه های آرایه ) رو که خیلی راحتتر ما با همون اندیسها انجام میدیم ! ....شاید درست منظورتون رو نگرفتم اگه غیر از اینه بگید ممنون میشم .

HAW3D
04-08-2008, 23:12
دوست عزيز مينا جان. در تعريف شما باز از عدد براي تعيين سطر وستون استفاده شده است اين تعريف پويا بودن نيست. پويا يعني همه چيز در زمان اجرا مشخص شود يعني شما تعداد سطر و ستوان هم در زمان اجرا مشخص كنيد و محدود به عدد خاصي نباشد. متغيرهاي پويا محدوديت ندارند و به اندازه ram كامپيوتر مي توانند باشند و پس از استفاده مي توان به حافظه سيستم بازگردانده شوند. براي تخصيص حافظه در زمان اجرا در C از تابع malloc استفاده مي شود.
در سی مانند جاوا امکان این کد وجود نداره
cin>>i
int arr[i
اما توسط این روش میشه هر آرایه ای رو به صورت پویا ایجاد کرد
البته استفاده از vector این مشکل رو حل میکنه اما مشکل اینجاست vector هم مثل list در جاوا راحتی کار و آزادی لازم رو نداره