دسترسی مهمان ها محدود است، برای استفاده از انجمن وارد شوید، اگر حساب کاربری ندارید ابتدا ثبت نام کنید و سپس وارد شوید.

کاربران عزیز لطفا در ارسال پست های خود دقت فرمایید. هر گونه بک لینک گذاری در پست ها و یا تبلیغ برند یا نامی که مغرضانه باشد، منجر به حذف آن پست و محرومیت دائمی ارسال کننده میباشد.

مهمان گرامی، هرگونه ارسال پست نامرتبط به نام و محور موضوع انجمن از این لحظه ممنوع بوده و مشاهده آن نیز محرومیت در پی خواهد داشت.


امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 1
  • 1
  • 2
  • 3
  • 4
  • 5
رفع اشکال درس ++C-آرایه ها، اشاره گرها، ارجاع ها
#1
خب دوستان این تاپیک رو گذاشتیم برای رفع اشکال مباحث توی موضوع گفته شده « آرایه و اشاره گر ها و ارجاع ها » .
دوستانی که مشکلی دارن توی این مباحث میتونن اینجا بپرسن و پاسخ بگیرن.
اگر موضوعات دیگه هست تاپیک جدا گونه ایجاد کنید یا به بنده بگید ایجاد کنمو اونجا بگید.Heart
به دنیای من خوش اومدی...
هیــــــــــچ چیــــــز بـــــــی دلیــــل نیستــــــ
پاسخ
 سپاس شده توسطsMostafaB (3-23-1393، 03:28 عصر)
#2
با عرض سلام تبریک بر شما وسپاس از اینکه وقتتان رو در اختیار ما می‌گذارید میخواستم اشکالاتی توی ارایه ها رو بگم،عمر خواهی میکنم اگر اشکالاتی زیاده مطمئن هستم ب بهترین نحو پاسخ میدیا تشکر  صفحه ۱۷۸ مثلا ۶_۲ی ثابت ب بنام slzeتعریف کرده این در واقع فقط همان تعداد خونه های ارایه است؟؟؟
پاسخ
 سپاس شده توسطMMTakalloo (3-23-1393، 04:47 عصر)
#3
درود. خوش اومدید.
بله این سایز در اصل جا همون عدد عمل میکنه.کار خاص دیگه ای نداره و صرفا برای گنگ کردن ما گذاشتن D

ثابت گذاری معمولا برای کارای سخت مثل عدد پی با چند رقم اعشار که چندجا میخوایم استفاده کنیم ، بکار میره.
فرض کنید عددی به این شکل 56.484466782 یا بزرگتر از این رو شما بخواید 20 بار توی برنامه ازش استفاده کنید و روش عملیات بکار ببرید.برای همین از ثابت استفاده میکنید.

به همین سادگی.

و آخرین چیزی که هست t\ هستش. این هم برای ایجاد 7 جای خالی یا همون اسپیس استفاده میشه. طبق صفحه 42 کتاب
به دنیای من خوش اومدی...
هیــــــــــچ چیــــــز بـــــــی دلیــــل نیستــــــ
پاسخ
#4
ایندکس خارج از محدوده خطای زمان اجراست همون اثر همسایگی و ایندکس ارایه خیلی بزرگ استثنائی مدیریت نشده سیستم عامل برنامه رو متوقف میکنه درسته فقط خروجی اثر همسایگی چیه?
پاسخ
 سپاس شده توسطMMTakalloo (3-24-1393، 11:52 صبح)
#5
ص۱۸۵ ارسال ارایه ب تابع چند خط اول برنامه رو. لطفا توضیح میدید?
پاسخ
 سپاس شده توسطMMTakalloo (3-24-1393، 12:26 عصر)
#6
معکوس کردن ارایه اگر ارایه تعداد زوج و یا فرد داشته باشه با هم فرق دارن?ممنون'
پاسخ
 سپاس شده توسطMMTakalloo (3-24-1393، 12:23 عصر)
#7
ااگر از ما میانگین سطر  را خواستند چطور  همیشه برنامه رو نوشت؟
پاسخ
 سپاس شده توسطMMTakalloo (3-24-1393، 12:40 عصر)
#8
(3-23-1393، 06:06 عصر)it-yashm نوشته است: ایندکس خارج از محدوده خطای زمان اجراست همون اثر همسایگی و ایندکس ارایه خیلی بزرگ استثنائی مدیریت نشده سیستم عامل برنامه رو متوقف میکنه درسته فقط خروجی اثر همسایگی چیه?

درودی دوباره.
به نکته ظریفی اشاره کردید.
دوستان دقت کنند که اگر آرایه ما مثلا 3 خانه ای باشه(ایندکس همون شماره خانس)، و ما بخواهیم خانه 4 را فراخوانی کنیم دچار ارور میشیم.

بدیهیه. غیر از اینه؟

حالا به این خطا ها میگن خطای زمان اجرا.

توی حالت بالا که مثلا 2 3 تا باشه برنامه ادامه پیدا میکنه ولی جواب های نادرس و عجیبی به ما میده.دقیقا مثال 6-6 صفحه 182 بیان کرده.Heart




اگر این مقدار اضافی خیلی بیشتر بشه سیستم عامل میگه بچه گیر آوردی؟من یه حدی بهت ارفاق (ارفاغ Huh) کردم دیگه زیادی پر رو شدی برنامتو قطع میکنم.
که توی این حالت خطایی که پیش میاد بهش میگن «استثنای مدیریت نشده».یه سری کدا میشه اضافه کرد که این حالت استثنا رو از بین بد که بهش میگن «پردازش گر استثنا»Heart





اثر همسایگی چی میگه؟اثر همسایگی میگه که توی کد های برنامه بعد از آرایه یه متغیر دیگه تعریف شده(مثلا به اسم x از همون نوع هم حتما هست) وقتی خونه چهارم رو فراخوانی میکنیم کامپیوتر میره سراغ خونه بعدی حافظه آرایه که ایکس هستش.
مثال 6-7 صفحه 183 کامل خوبه شکلش هم واضحه.
دقت داشته باشید اگر اون ایکس از نوع صحیح بود و آرایمون از نوع اعشاری این اثر همسایگی پیش نمیاد.Heart

نمونه همون بالا فرض کنید آرایه ما سه خانه ای و ایکس هم هم نوع آرایه بعد از آرایه تعریف شده و یه مقداری داره داخل خودش و ما میخوایم به خونه 4 از آرایه مقدار بدیم.
کد:
void main()
{
int a[3];
int x=47;
a[0] = 1;
a[1] = 3;
a[2] = 5;
a[3] = 10;
cout << x;
}

خب برنامه سه تا خونه رو پر کرد با مقدار های  1و3و5 و رفت سراغ خونه چهارم که تعریف نشده و مقدار 10 داده.
توی اینجا اتفاقی میفته.خونه ها توی حافظه کنار هم قرار دارن و با زدن خونه چهارم وارد خونه بعدی میشه؛ که خونه بعد از آرایه چی هست توی حافظه؟ « x » و مقدار دهی شده به 10.
حالا که خروجی میده مقدار 47 چاپ نمیشه مقدار 10 چاپ میشه.
به دنیای من خوش اومدی...
هیــــــــــچ چیــــــز بـــــــی دلیــــل نیستــــــ
پاسخ
#9
(3-23-1393، 06:07 عصر)it-yashm نوشته است: ص۱۸۵ ارسال ارایه ب تابع چند خط اول برنامه رو. لطفا توضیح میدید?

خب چیزی که ممکنه براتون عجیب باشه خط اول اول برنامه هست.این استاندارد هستش که میگه یا تابع رو بالا بنویس یا اگر پایین برنامه اصلی مینویسی باید نمونه ای به اون شکل بالای برنامه اصلی همون main بدی که وقتی برنامه دید ارور نده.

استاد مثل اینکه گفتن لازم نیست اون خط رو برای امتحان بنویسید.شما اگر دوست داشتید راحت باشه کارتون و استاندارد بنویسید تابع رو بالای main بنویسید نه زیرش.Angel

بعد از خط اول که برنامه اصلیمون شروع میشه که یه آرایه تعریف کرده که تعداد خانه هاش مشخص نیست.این نوع آرایه باید همونجا مقدار دهی بشه تا تعداد خانه هاش مشخص بشه.جای دیگه نمیشه بهش تعداد داد.
الان آرایه a چند خانه ای هست؟ 4 خانه ایIdea

بعدش یه متغیر تعریف کرده به اسم size که از حاصل اندازه بایت اشغالی توسط a تقسیم بر اندازه بایت قابل اشغال توسط نوع int بدست میاد.که چون a از نوع صحیح هست و 4 خونه داره میشه 2*4 و اینت هم که خودش 2 هست.حاصل 8/2 میشه4
مقدار size میشه 4.Sleepy

خط بعدش هم یه پیغام که مهم نیست و بعدش تابع فراخوانی میشه و الباقی ماجرا.Heart
به دنیای من خوش اومدی...
هیــــــــــچ چیــــــز بـــــــی دلیــــل نیستــــــ
پاسخ
#10
(3-23-1393، 06:17 عصر)it-yashm نوشته است: معکوس کردن ارایه اگر ارایه تعداد زوج و یا فرد داشته باشه با هم فرق دارن?ممنون'



درود.در حال حاضر نه.فرقی نداره.
چون برای معکوس کردن شرط استاپ حلقه for نصف تعداد خانه ها هستش به این صورت میشه

8/2=4
خب چهاربار این عمل انجام میشه تا معکوس بشه.مشکلی که نداریم تابلو هست.
مثال
 1 2 3 4 5 6 7 8
 8 7 6 5 4 3 2 1
کامل معکوس شده.

7/2=3
برای این هم دقت داشته باشید چون فرد هست خانه 4 خودش تک میمونه و همونطور بعد از معکوس کردن وسط به اعداد زیر توجه کنید
 1 2 3 4 5 6 7
 7 6 5 4 3 2 1
میبینید که وقتی معکوس شد 4 سرجاش موند.
پس با 3 بار انجام عمل معکوس میشه و در نتیجه فرقی با هم ندارن.Cool
به دنیای من خوش اومدی...
هیــــــــــچ چیــــــز بـــــــی دلیــــل نیستــــــ
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان