📚 درس و تست کامپیوتر💻
الذهاب إلى القناة على Telegram
🔶گروه پرسش و پاسخ: 🔹https://t.me/darstestcomputer 🔶ادمین : 🔹@mojtaba_moradi_74 🔹مهم ترین نکات آزمون های استخدامی 🔹تست های دروس تخصصی 🔹تدریس و یادآوری نکات مهم 🔹فایل PDF همه کتاب ها 🔹معرفی بهترین منابع ، مشاوره درسی
إظهار المزيد2 517
المشتركون
لا توجد بيانات24 ساعات
+117 أيام
+930 أيام
أرشيف المشاركات
#برنامه_نویسی_فصل_پنجم_رشته
متغیرهای c2 و c4 هردو آرایه ای از کارکتر هستند و بجز مقادیر داده شده ، یک کارکتر null هم در انتهای آنها وجود دارد .
متغیر c1 و c3 هر دو کارکتری هستند و یک بایت فضا میگیرند
#برنامه_نویسی_فصل_پنجم_رشته
کامپایلر وقتی به 0\ میرسه این عبارت رو null میخونه و دیگه ادامه نمیده
#برنامه_نویسی_فصل_پنجم_آرایه
این سوال شرط حلقه for میگه تمام خونه های رشته c رو چک کن و تا وقتی به null نرسیدی ، کارای زیر رو انجام بده
اگه شماره ی اندیس خونه ای زوج بود ؛ محتوای اون اندیس رو دوبار چاپ کن
مقدار و شماره اندیس های اینجورین
c[0] = 'A' ;
c[1] = 'B' ;
c[2] = 'C ;
c[4] = 'D' ;
اندیس صفر و اندیس دو زوج هستن و محتواشون دوبار چاپ میشه
#برنامه_نویسی_فصل_پنجم_آرایه
این برنامه نکات مهمی داره . لطفا به مقدارهای داخل هر اندیس دقت کنید
هنگام مقداردهی مستقیم به آرایه ، باید از { } استفاده کنیم ، اگر مقدارهامون رو داخل پرانتز بذاریم و کاما بگذاریم فقط مقدار سمت راستی در آرایه ذخیره میشود
مقداره های داخلِ هر پرانتز هرچندتا که باشند فقط سمت راستی ترین عدد در نظر گرفته و به ازای هر یک پرانتز ، به یکی از اندیس های ارایه مقداردهی میشود
#برنامه_نویسی_فصل_پنجم_آرایه
کامپیوتر مقدار سمت راستِ کاما را در نظر میگیرد (خاصیت عملگر کاما)
بنظر میرسد پاسخ گزینه 456 باشد
اما دقت کنید دستور
return a+1
مقدار 1+3 یعنی 4 را برمیگرداند ولی مقدار a را تغییر نمیدهد .
اگر این دستور بصورت
a = a+1 یا return ++a
بود پاسخ گزینه 456 میشد .
#برنامه_نویسی_فصل_هفتم_توابع
متغیرهای اتوماتیک درواقع همان متغیرهای معمولی هستند . این متغیرها هنگام ورود به تابع ساخته میشوند و هنگام خروج بطور اتوماتیک از بین میروند . چون همه ی متغیرهای محلی دارای کلاس حافظه اتوماتیک هستند نیازی به استفاده از کلمه auto نیست .
int a = auto int a
هنگامی که یک متغیر از نوع کلاس register تعریف میشود ، کامپایلر در صورتی که ثبات یا حافظه کش خالی وجود داشته باشد ، از فضای آنها برای آن متغیر استفاده میکند و این باعث میشود دسترسی به محتویات این نوع متغیرها با سرعت خیلی بالاتری انجام شود .
register int i ;
for (i=0 ; i<100000 ; i++)
توجه کنید که فقط متغیرهای int , char و اشاره گر را میتوان از کلاس حافظه ثبات تعریف کرد و آدرس متغیرهایی با کلاس حافظه ثبات بدون معنی است ، هچنین باید دقت داشته باشید که اگر از کلاس حافظه ثبات برای متغیرهای سراسری استفاده کنید ، خطای کامپایلری رخ میدهد .
#برنامه_نویسی_فصل_هفتم_توابع
کلاس حافظه ، ویژگی از متغیر است که دوچیز را در مورد آن متغییر مشخص میکند :
۱- حوزه شناخت متغیر (scope) یعنی متغیر در چه جاهایی قابل استفاده هست و در چه جاهایی نمیتوان از ان استفاده کرد
۲- طول عمر متغیر ، یعنی متغیر کی در حافظه بوجود می آید و کی از بین میرود
چهارنوع کلاس حافظه وجود دارد :
۱ - کلاس حافظه استاتیک static
۲ - کلاس حافظه خارجی extern
۳ - کلاس حافظه اتوماتیک auto
۴ - کلاس حافظه ثبات register
#برنامه_نویسی_فصل_هفتم_توابع
متغیر static :
هنگامی که قرار است تابعی چندبار صدا زده شود و در آن تابع متغیری لازم داریم که محتوای قبلی خود را باید حفظ کند ، از متغیرهای static استفاده میکنیم .
این نوع متغیرها مانند متغیرهای سراسری (گلوبال) در «دیتا سگمنت» ساخته میشوند .
#برنامه_نویسی_فصل_هفتم_توابع
عملگر :: به برنامه نویس این اجازه را میدهد تا بتواند به محتویات یک متغییر سراسری در یک تابع که متغییری هم نام با آن دارد دسترسی پیدا کند
int a = 5 ; سراسری
int main(){
int a = 1 ; محلی
a = a + :: a ; (1+یعنی 5 )
cout<<a<<" "<<::a ; // 6 5
#برنامه_نویسی_فصل_هفتم_توابع
درون زیربرنامه (تابع) نمیتوان متغیری محلی هم نام با پارامتر تعریف کرد
void test (int a , char b) {
float b ; ❌
...
در یک بلوک برنامه نمیتوان متغیر و زیربرنامه ای ( تابعی ) هم نام داشت
int K ;
void K (int a , char b) { ❌
...
#برنامه_نویسی_فصل هفتم_توابع
متغیرهای محلی در استک (پشته) ساخته میشوند .
متغیرهای سراسری در دیتا سگمنت ساخته میشوند .
#برنامه_نویسی_فصل_پنجم_آرایه
اینجا دستور cout بخشی از خود حلقه هست و هی اجرا میشه و سومین بار ک حلقه و cout اجرا شدن ، میرسیم به سمی کالن
این برنامه ربطی به داستان سمی کالن انتهای حلقه نداره
#برنامه_نویسی_فصل_پنجم_آرایه
پس از اجرای حلقه زیر عناصر آرایه چه تغییری میکنند ؟
پاسخ : ترتیب عناصر آرایه برعکس میشود
به شرط حلقه دقت کنید
در مثال های قبل ده بار عناصر جابجا میشدند اما اینجا ۵ بار جابجا میشوند یعنی اندازه نصف تعداد خونه ها جابجایی انجام میشه .
اگه ده بار جابجا بشن ک دیگه باز همه شون برگردن سر جای خودشون
#برنامه_نویسی_فصل_پنجم_آرایه
همون برنامه ، با استفاده از متغییر کمکی
هیچ تغییری نمیکند چون ده بار عناصر رو با متغییر کمکی جابجا کردیم
#برنامه_نویسی_فصل_پنجم_آرایه
پس از اجرای حلقه زیر آرایه n چه تغییری میکند؟
پاسخ : عناصر آرایه متقارن میشوند
دقت کنید i به خونه صفرم اشاره میکنه
و j به خونه آخر اشاره میکنه
هر بار محتوای خونه j رو میذاریم تو خونه i ام و یکی به i اضافه میکنیم و یکی از j کم میکنیم
یعنی ۸ میاد جای ۷
۲ میاد جای ۵ و ...
یعنی هی به هم نزدیک میشن ...
از وسط که رد شدن ، باز همونایی که جابجا شدن ، دوباره با خودشون جابجا میشن
وقتی تو جابجایی محتوای آرایه از متغییره کمکی استفاده نکنیم میگیم عناصر آرایه متقارن میشوند
