سلام اگه ممکنه میخواستم در مورد آرایه و رشته کمکم کنید.
آخه من تازه دارم یاد میگیرم از کتاب جعفرنژاد هم استفاده میکنم ولی زیاد تعریفی نداره.
مرسی.
سلام اگه ممکنه میخواستم در مورد آرایه و رشته کمکم کنید.
آخه من تازه دارم یاد میگیرم از کتاب جعفرنژاد هم استفاده میکنم ولی زیاد تعریفی نداره.
مرسی.
سوال بپرس جواب بدم![]()
خوب آرایه کلاً چیزه خوبیه
در واقع آرایه یه سری حافظه پشته همه که چندین نوع داره : 1 بعدی - 2 بعدی - 3 بعدی - ... - n بعدی
که شما نهایت با 3 بعدیش کاری داری که اونم بعیده ! همون 1 بعدی و 2 بعدی جواب میده
آرایه همه عضواش از یک نوعن یعنی یا همش char یا int یا float یا ... نمیشه که یجا int باشه یجا float .
کاربرد 1 بعدیش برای خوندن جمله یا مثلاً یه سری عدد خواص مثل نمیره یا .... است
کاربرد دو بعدیش میشه ماتریس یا مثلاً نمره و دانشجو یا هرچیزی که دو تا متغیر بخواد و ...
حالا آرایه اینشکلیه : نگاش کن
A[n]a ( اون a آخرو گزاشتم درست نشون بدی اونو نگا نکن اصلاً )
این آرایه یک بعدیه به نام A با n عضو که دست خودته تعدادش دیگه ( به n میگن اندیس )
حالا اینو نگا :
A[n][m]a ( اون a آخرو گزاشتم درست نشون بدی اونو نگا نکن اصلاً )
این آرایه 2 بعدیه به نام A با تعداد n سطر و m ستون و در مجموع n*m خونه
این نکته یادت باشه :
.......................................... آرایه ها از اندیس 0 شروع میشه و با n-1 تموم میشه ..........................................
یعنی اگه یه آرایه 20 عضوی تعریف کنی عضو اول میشه A[0]a و عضو آخر میشه A[19]a اگه بشماری میبینی که 20 تاس
برای خوندن یا استفاده کردن از آرایه ها حداقل به یک حلقه احتیاج داری تا بتونی به تک تک خونه ها دسترسی پیدا کنی
برای حلقه های یک بعدی 1 حلقه 2 بعدی 2 حلقه ... در حقیقت به تعداد بعد حلقه میخوان تا بتونی با همه خونه هاش ارتباط داشته باشی
یه نکته دیگه :
.......................................... تعداد آرایه رو باید از اول مشخص کنی یعنی اگه از اول ندونی که چنتا عضو میخوای داشته باشی کار سخت میشه ..........................................
حالا مقدار جایی که یک آرایه تو حافظه اشغال میکنه میشه تعداد آرایه* مقدار اون متغیری که براش تعریف کردی مثلاً تعریف کردی int A[20]a این میشه 20*2 ( int 2 بایت حافظه میخواد )
================================================== ==============
اگه بازم مشکلی بود بگو
دوست خوب می شه در مورد تعریف و استفاده از آرایه پویا توضیح بدین؟؟؟ (قواعدش رو می دونم ولی همیشه تو استفاده قاطی می کنم!!!)
برای گرفتن حافظه از سیستم ( آرایه پویا ) هم می شه از malloc استفاده کرد هم از new که وقتی کارت تموم شد باید به ترتیب اونها را free و delete کنی ......استفاده از new بهتره چون اگه توی برنامه از کلاس استفاده کرده باشید وقتی new می کنید سازنده کلاس فراخوانی می شه ولی با malloc سازنده فراخوانی نمی شه ...و کلا کار با new راحتتره
به این صورت آرایه یک بعدی از جنس long را تعریف می کنیم :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو همینطور آرایه دو بعدی ( که قبلا هم توی یه تاپیکه دیگه نوشتم ) :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدفقط یه چیزی باید یادتون باشه ....اینکه هر چیزی که new می شه باید حتما delete بشه .....تا حافظه اخذ شده از سیستم بهش برگردونده بشه ....
ببخشید انقدر سوال میکنمfor ( long i = 0 ; i < r ; i ++ )
p[i]=new long [c] ;
میشه بگین دستور بالا دقیقاً چکار می کنه
(من فکر کنم داره بعد دوم آرایه رو نظیر با بعد اول ایجاد می کنه ، درسته؟؟)
اگه اشتباه نکنم وقتی که می نویسی :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددر واقع یه فضای دو بعدی رزرو می کنی که فقط بعد اولش را new میکنی .....و در سطر بعد وقتی می نویسی :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدداری به بعد اول ( که قبلا new کردی) بعد دوم را اضافه میکنی ( خونه های بعد دومش را یکی یکی new میکنی )
اگه شما نظر دیگه ای داریدحتما بگید.....
من نظرم رو گفتم"من فکر کنم داره بعد دوم آرایه رو نظیر با بعد اول ایجاد می کنه "
یه جورایی همون میشه که شما گفتین.
فقط مشکل من اینجاس که چرا نتیجه رو تو [ p[ i
(خط آخر تو حلقه)
یعنی چی ؟ خوب داره یکی یکی به هر کدوم از خونه های آرایه بعد دومش رو اضافه می کنه دیگه
فکر کنم فهمیدم چی شد...
از توصیح شما ممنون
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)