0% found this document useful (0 votes)
34 views28 pages

Toneka Code

Uploaded by

zpZAPzp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views28 pages

Toneka Code

Uploaded by

zpZAPzp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Toneka

Code
1
Contents
2
‫‪3‬‬

‫انواع دادههای اولیه‬


‫در زبان ‪ C++‬چند نوع اولیهی داده‪ ،‬تعریف شده است‪.‬‬

‫این انواع داده را کاراکترها‪ ،‬اعداد صحیح‪ ،‬بولینها و اعداد اعشاری و نوع خاصی به نام‬
‫‪ void‬تشکیل میدهد‪.‬‬

‫مشخصات‬
‫در جدول زیر مقدار حافظهای که برای نگهداری هر نوع داده نیاز است و بازهی مقادیری‬
‫که در آن میتوان ذخیره کرد را میبینید‪.‬‬

‫اندازه‬ ‫مقادیر ممکن‬ ‫معنا‬ ‫نوع‬


‫‪۱‬‬ ‫‪true‬یا ‪false‬‬ ‫‪. bool‬یک مقدار بویل را نگه‬
‫بایت‬ ‫یمدارد‬
‫‪۱‬‬ ‫]‪[−128,127][−128,127‬‬ ‫‪ char‬کد ‪ASCII‬کاراکتها را‬
‫بایت‬ ‫نگه یمدارد‪.‬‬
‫مقادیر صحیح نشان ]‪۴ [−231,231−1][−231,231−1‬‬ ‫‪int‬‬
‫بایت‬ ‫یمدهد‪.‬‬
‫مقادیر صحیح نشان ]‪۸ [−263,263−1][−263,263−1‬‬ ‫‪long‬‬
‫بایت‬ ‫یمدهد‪.‬‬ ‫‪long‬‬
‫‪۴‬‬ ‫‪±3.4×10±38±3.4×10±38‬‬ ‫حدود ‪ ۷‬رقم باارزش‬ ‫‪float‬‬
‫بایت‬ ‫مقادیر اعشاری را‬
‫نشان یمدهد‪.‬‬
‫‪۸‬‬ ‫‪ double‬حدود ‪ ۱۵‬رقم باارزش ‪±1.7×10±308±1.7×10±308‬‬
‫بایت‬ ‫مقادیر اعشاری را‬
‫نشان یمدهد‪.‬‬
‫برای مطالعه بیشتر ‪ ASCII‬به صفحه ویکی پدیا مراجعه کنید‬

‫هر متغیر بخشی از حافظهی کامپیوتر را با نامی که برای آن مشخص میکنیم در‬
‫اختیار ما قرار میدهد‪ .‬می توانیم در آن بخش از حافظه مقداری را ذخیره کنیم و مقدار‬
‫ذخیره شده در آن را بخوانیم‪ .‬هر متغیر نوعی دارد که میزان حافظهی مورد نیاز آن و‬
‫‪4‬‬
‫نحوهی ذخیرهی مقدارش در حافظه‪ ،‬بازهی مقادیری که میتواند ذخیره کند و‬
‫عملگرهای تعریف شده روی آن را مشخص میکند‪.‬‬

‫نامگذاری‬
‫نام یک متغیر میتواند شامل حروف التین‪ ،‬ارقام و کاراکتر _ باشد‪ .‬حرف اول نام متغیر‬
‫نمیتواند یک رقم باشد‪ .‬همچنین حروف کوچک و حروف بزرگ در نام متغیرها تفاوت‬
‫دارند‪.‬‬

‫همواره سعی کنید که نام هر متغیر را متناسب با کاربرد آن در برنامه و مقداری که قرار‬
‫است ذخیره کند‪ ،‬انتخاب کنید‪ .‬این گونه احتمال رخ دادن خطا در برنامهی شما کمتر‬
‫میشود و برنامه خواناتر میشود‪.‬‬

‫تعریف متغی‬
‫برای تعریف یک متغیر جدید باید نوع و نام متغیر را مشخص کنیم‪.‬‬
‫‪5‬‬
‫در مثال باال میبینید که میتوان چند متغیر از یک نوع را همزمان تعریف کرد‪.‬‬

‫همچنین میتوان هنگام تعریف هر متغیر به آن مقدار اولیهای تخصیص داد‪.‬‬

‫عملگرها و عبارات‬

‫زبان ‪ C++‬مجموعهای از عملگرها را در اختیار ما میگذارد‪ .‬همچنین رفتار هر عملگر‬


‫وقتی که روی عملوندها اعمال میشوند‪ ،‬تعریف شده است‪.‬‬

‫یک عبارت متشکل از یک یا چند عملوند است‪ .‬ساده ترین عبارت میتواند یک متغیر‬
‫باشد و یا یک مقدار ثابت‪ .‬حاصل چنین عبارتی برای با مقدار متغیر یا مقدار ثابت‬
‫میباشد‪ .‬عبارات پیچیدهتر را میتوان به کمک عملگرها و تعدادی عملوند ساخت‪،‬‬
‫مانند‪.b * b - 4 * a * c :‬‬

‫عملگر تخصیص‬

‫این عملگر برای تخصیص حاصل یک عبارت به یک خانه از حافظه میباشد‪.‬‬

‫در سمت چپ عملگر مساوی که به آن ‪ LHS‬یا ‪ Left-Hand Side‬گفته میشود باید‬


‫یک خانه از حافظه را مشخص کرد‪ .‬به طور معمول ‪ LHS‬نام یک متغیر میباشد‪RHS .‬‬
‫نیز باید یک عبارت باشد‪.‬‬

‫پس از اجرای دستور مقدار عبارت ‪ RHS‬در حافظهی ‪ LHS‬ذخیره میشود‪.‬‬


‫‪6‬‬

‫در مثال باال اگر ‪ a‬و ‪ b‬طول دو ضلع قائم یک مثلث قائم الزاویه باشند‪ ،‬در ‪ c‬طول وتر‬
‫آن مثلث را حساب کردهایم‪.‬‬

‫حاصل عملگر = برابر با ‪ RHS‬میباشد‪ .‬این عملگر وقتی به صورت متوالی استفاده شود‪ ،‬از‬
‫راست به چپ محاسبه میشود‪.‬‬

‫عملگرهای حساب‬

‫پنج عملگر حسابی در ‪ C++‬تعریف شدهاند‪.‬‬


‫‪7‬‬
‫توضیح‬ ‫عملگر‬
‫جمع‬ ‫‪+‬‬
‫تفریق‬ ‫‪-‬‬
‫رضب‬ ‫*‬
‫تقسیم‬ ‫‪/‬‬
‫باقماندهی تقسیم‬ ‫‪%‬‬
‫عملگرهای جمع و تفریق و ضرب و تقسیم همانند تعریف ریاضیشان عمل میکنند‪.‬‬

‫عملگر ‪ %‬نیز باقیماندهی تقسیم ‪ LHS‬بر ‪ RHS‬را محاسبه میکند‪ .‬برای مثال حاصل‬
‫‪ 11%3‬برابر با ‪ 2‬میباشد‪.‬‬

‫تخصیص مرکب‬

‫بعضی اوقات میخواهیم مقدار متغیر را ‪ ۵‬واحد اضافه کنیم‪ .‬میتوانیم با نوشتن عبارت‬
‫‪ a = a + 5‬این کار را انجام دهیم‪ .‬اما برای کاهش احتمال اشتباه میتوان از عملگرهای‬
‫تخصیص مرکب استفاده کرد‪ .‬برای مثال میتوان به جای عبارت ‪ a = a + 5‬از عبارت‬
‫‪ a += 5‬استفاده کرد‪ .‬از نگاهی دیگر‪ ،‬عبارت اخیر خالصه شدهی عبارت اولیه است‪.‬‬

‫خالصه شدهی‬ ‫عبارت‬


‫;‪y = y + x‬‬ ‫;‪y += x‬‬
‫;‪x = x - 5‬‬ ‫;‪x -= 5‬‬
‫;‪x = x / y‬‬ ‫;‪x /= y‬‬
‫;)‪price = price * (units+1‬‬ ‫;‪price *= units + 1‬‬

‫کاهش و افزایش‬
‫بعضی از عبارات را میتوان خالصهتر نوشت‪ .‬عملگر کاهش (–) و عملگر افزایش (‪)++‬‬
‫مقدار یک متغیر را یک واحد کاهش یا افرایش میدهند‪ .‬این عملگرها به ترتیب معادل‬
‫‪ -=1‬و ‪ +=1‬هستند‪.‬‬

‫به دو مثال زیر توجه کنید‪:‬‬


‫‪8‬‬

‫در دو مثال باال مقدار نهایی ‪ y‬متفاوت است‪ .‬در صورتی که عملگر کاهش یا افزایش بعد‬
‫از متغیر بیاید‪ ،‬حاصل عبارت برابر با مقدار اولیهی متغیر میشود‪ ،‬ولی در صورتی که‬
‫این عملگرها قبل از متغیر استفاده شوند‪ ،‬حاصل عبارت برابر با مقدار تغییر کردهی‬
‫متغیر میشود‪.‬‬

‫عملگرهای مقایسه‬

‫عملگرهای مقایسه در صورت برقراری رابطهای بین ‪ LHS‬و ‪ RHS‬مقدار ‪ true‬و در غیر‬
‫این صورت مقدار ‪ false‬را بر میگردانند‪.‬‬
‫‪9‬‬
‫توضیح‬ ‫عملگر‬
‫اگر ‪ LHS‬با ‪ RHS‬برابر باشد‬ ‫‪LHS == RHS‬‬
‫اگر ‪ LHS‬با ‪ RHS‬فرق کند‬ ‫‪LHS != RHS‬‬
‫اگر ‪ LHS‬کوچکت از ‪ RHS‬باشد‬ ‫‪LHS < RHS‬‬
‫اگر ‪ LHS‬بزرگت از ‪ RHS‬باشد‬ ‫‪LHS > RHS‬‬
‫اگر ‪ LHS‬کوچکت از یا مساوی با ‪ RHS‬باشد‬ ‫‪LHS <= RHS‬‬
‫اگر ‪ LHS‬بزرگت یا مساوی با ‪ RHS‬باشد‬ ‫‪LHS >= RHS‬‬
‫به مثال زیر توجه کنید‪.‬‬

‫توجه کنید که حاصل عملگرهای مقایسه از نوع ‪ bool‬میباشد‪.‬‬


‫‪10‬‬
‫عملگرهای منطق‬
‫سه عملگر منطقی زیر برای ترکیب شرطها و نوشتن عبارات شرطی پیچیدهتر وجود‬
‫دارند‪.‬‬

‫توضیح‬ ‫عملگر‬
‫اگر ‪ LHS‬و ‪ RHS‬هر دو ‪ true‬باشند‬ ‫‪LHS && RHS‬‬
‫اگر دست کم ییک از ‪ LHS‬و ‪ RHS‬مقدارش ‪ true‬باشد‬ ‫‪LHS || RHS‬‬
‫مقدار نقیض ‪( RHS‬این عملگر یک ورودی دارد)‬ ‫‪!RHS‬‬
‫به مثال زیر توجه کنید‪.‬‬
‫‪11‬‬
‫میتوان عملگر شرطی را به صورت زنجیرهای از چند شرط به کار برد‪.‬‬

‫عملگرهای بیت‬

‫عملگرهای بیتی بر حسب الگوی بیتهای نشان دهندهی ورودیهایشان‪ ،‬خروجیای با‬
‫بیتهای تغییر یافته تولید میکنند‪.‬‬

‫با مثال زیر و رجوع به بهش عملگرهای منطقی میتوانید کارکرد دقیق این عملگرها‬
‫حدس بزنید‪.‬‬
‫‪12‬‬
‫برای مطالعهی بیشتر به صفحهی عملیات بیتی در ویکیپدیا مراجعه کنید‪.‬‬

‫عملگر تبدیل نوع‬


‫با این عملگر میتوان نوع یک مقدار را تبدیل به نوعی دیگر کرد‪ .‬این عملگر با نوشتن نوع‬
‫مقصد در یک جفت پرانتز و نوشتن مقدار مبدا پس از آن‪ ،‬استفاده میشود‪.‬‬

‫به مثال زیر توجه کنید‪.‬‬

‫پیشنهاد میشود تبدیلهای مقادیر مختلف را با نوشتن قطعه کدهایی به شکل باال‬
‫آزمایش کنید و به صورت تجربی یاد بگیرید‪.‬‬

‫ورودی و خروج‬
‫این بخش را با مثال زیر آغاز میکنیم‪:‬‬
‫‪13‬‬

‫بخشهای مختلف مثال باال را بررسی میکنیم‪:‬‬

‫کتابخانهی استاندارد ‪ iostream‬را برای خواندن ورودی و نوشتن خروجی از‬ ‫‪.1‬‬
‫طریق رابط کاربری متنی (‪ cmd‬در ویندوز و ‪ terminal‬در لینوکس) فراخوانی‬
‫میکنیم‪.‬‬

‫برای استفادهی آسانتر از دستورات کتابخانهی استاندارد ‪ C++‬از این دستور‬ ‫‪.2‬‬
‫استفاده میکنیم‪ .‬توضیح بیشتر این خط در بخش مقدماتی نمیگنجد‪.‬‬

‫هر برنامه با اجرای تابع ‪ main‬شروع میشود‪ .‬این تابع نقطهی شروع برنامه است‬ ‫‪.3‬‬
‫و پس از اتمام مقداری را به عنوان کد خروج برنامه برمیگرداند‪.‬‬

‫متغیری به نام ‪ age‬از نوع ‪ int‬تعریف میکنیم‪ .‬قصد داریم سن کاربر را در این‬ ‫‪.4‬‬
‫متغیر ذخیره کنیم‪.‬‬

‫با دستور ‪ cin‬به همان شکلی که در کد استفاده شدهاست‪ ،‬میتوانیم از کاربر‬ ‫‪.۵‬‬
‫ورودی بگیریم و مقدار وارد شده را در یک متغیر ذخیره کنیم‪ .‬برای مثال در اینجا از‬
‫کاربر میخواهیم تا عددی را به عنوان سن خود وارد کند‪ .‬عدد وارد شده در متغیر ‪age‬‬
‫ذخیره میشود‪.‬‬
‫‪14‬‬
‫تعداد روزهایی که کاربر زندگی کردهاست را با ضرب عدد سن او در ‪ ،36۵‬حساب‬ ‫‪.6‬‬
‫میکنیم و در متغیر ‪ days‬ذخیره میکنیم‪.‬‬

‫با دستور ‪ cout‬به همان شکلی که در کد استفاده شدهاست‪ ،‬میتوانیم مقادیری‬ ‫‪.7‬‬
‫را در خروجی چاپ کنیم‪ .‬برای مثال در اینجا تعداد روزهای عمر کاربر را در قالب یک‬
‫جمله به او نمایش میدهیم‪ .‬چاپ کردن عبارت ‪ endl‬با دستور ‪ cout‬باعث میشود تا‬
‫خط فعلی خروجی تمام شود و ادامهی خروجی در خطهای بعدی نمایش داده شود‪.‬‬

‫در آخرین خط برنامه‪ ،‬مقدار ‪ 0‬را به عنوان کد خروج برنامه بازمیگردانیم‪ .‬کد‬ ‫‪.8‬‬
‫خروج ‪ 0‬معموال به معنای پایان صحیح و بدون مشکل برنامه است‪ .‬استفاده از این‬
‫دستور اجباری نیست‪ .‬هرچند رعایت این نکات غیر ضروری از پیشآمدن اتفاقات‬
‫پیشبینی نشده جلوگیری میکند‪.‬‬
‫‪15‬‬

‫دستور انتخاب‬
‫برخی مواقع نیاز داریم با توجه به شرایط موجود (برای مثال با توجه به مقدار یک متغیر)‬
‫بین چند عمل مختلف برای اجرا‪ ،‬انتخاب انجام دهیم و یا این که در مورد اجرای یک‬
‫عمل تصمیم بگیریم که انجام بشود یا نه‪ .‬این کار به کمک دستورات انتخاب قابل انجام‬
‫است‪ .‬این دستور یکی از پرکاربرد ترین دستورات است که تقریبا در هر برنامه ای به کار‬
‫می رود‪.‬‬

‫یک مثال‬

‫فرض کنید در حین اجرای یک برنامه به قسمتی رسیده ایم که باید با توجه به مثبت‬
‫بودن یک متغیر به نام ‪ Var‬عملیاتی اجرا شود‪ .‬اگر مقدار این متغیر منفی باشد نمی‬
‫خواهیم که این عملیات اجرا شود‪ .‬تکه کد زیر این عمل را به کمک دستور انتخابی ‪if‬‬
‫انجام می دهد‪.‬‬

‫)‪if (Var > 0‬‬


‫{‬
‫‪//Statement‬‬
‫}‬
‫‪If‬‬
‫صورت کلی این دستور به شکل زیر است‪.‬‬

‫)‪if(condition‬‬
‫{‬
‫‪//Statement‬‬
‫}‬
‫‪16‬‬
‫در کد باال اگر ‪ condition‬برقرار باشد آنگاه دستورات ‪ statement‬اجرا خواهند شد‪.‬‬
‫در غیر این صورت دستورات داخل بالک ‪ if‬اجرا نخواهند شد و ادامه ی اجرای برنامه‬
‫بعد از ‪ if‬خواهد بود‪.‬‬

‫‪ if‬و ‪else‬‬
‫گاهی اوقات نیاز داریم تا چند شرط مختلف را بررسی کنیم و در صورت برقرار بودن هر‬
‫کدام عمل مختلفی انجام شود‪ .‬صورت کلی این دستور در زیر آمده است‪.‬‬

‫)‪if (condition 1‬‬


‫{‬
‫‪//statement 1‬‬
‫}‬

‫)‪else if (condition 2‬‬


‫{‬
‫‪//statement 2‬‬
‫}‬

‫‪else‬‬
‫{‬
‫‪//statement 3‬‬
‫}‬
‫‪17‬‬

‫تعداد دستورات ‪ else if‬می تواند به دلخواه افزایش یابد‪.‬اگر شرط اول برقرار باشد‪،‬‬
‫دستورات بلوک اول‪ ،‬اگر شرط دوم برقرار باشد‪ ،‬دستورات بلوک دوم‪ …،‬و در نهایت اگر‬
‫هیچ کدام از شرط ها برقرار نباشد‪ ،‬دستورات بلوک ‪ else‬اجرا خواهند شد‪.‬‬

‫مثال دیگر‬
‫‪18‬‬
‫دقت کنید که اگر بلوک دستورات ‪ ،if‬شامل یک دستور باشد نیازی به گذاشتن آکوالدها‬
‫نیست‪.‬‬

‫روش دیگر پیادهسازی ‪else,if‬‬

‫برای پیاده سازی دستور انتخاب‪ ،‬روش دیگری هم وجود دارد‪.‬‬

‫تکه کد زیر را در نظر بگیرید‪ .‬فرض کنید میخواهیم اگر مقدار متغیر ‪ a‬برابر ‪ 1‬باشد‪،‬‬
‫مقدار ‪ b‬برابر ‪ 10‬گردد و در غیر این صورت مقدار ‪ b‬برابر ‪ -10‬گردد‪.‬‬

‫; )‪b = (a == 1?10 : -10‬‬


‫‪19‬‬

‫حلقه ها در ‪C++‬‬
‫حلقه های شرطی‬

‫بر خالف دستور شرطی که شرط خود را تنها یک بار چک می کند و اگر برقرار باشد‬
‫دستورات بلوک خود را اجرا می کند‪ ،‬حلقه های شرطی به این صورت عمل می کنند‬
‫که شرط داخل خود را بررسی می کنند و تا زمانی که شرطشان برقرار باشد دستورات‬
‫داخل بلوکشان اجرا خواهند شد‪ .‬این حلقه ها از دو نوع هستند که در زیر به توضیح آن‬
‫ها می پردازیم‪.‬‬

‫‪while‬‬
‫تکه کد زیر را که صورت کلی این نوع حلقه است‪ ،‬در نظر بگیرید‪.‬‬

‫)‪while(condition‬‬
‫{‬
‫‪//statement‬‬
‫}‬
‫عملکرد این حلقه شرطی به این صورت است‪ :‬ابتدا شرط حلقه چک می شود‪ ،‬اگر شرط‬
‫آن برقرار باشد داخل حلقه شده و دستورات آن اجرا می شود‪ .‬بعد از اجرای دستورات‬
‫دوباره شرط حلقه چک می شود و اگر برقرار باشد باز هم داخل حلقه شده و دستورات‬
‫آن را اجرا می کند و این روند تا زمانی که شرط حلقه برقرار باشد ادامه می یابد ‪.‬‬

‫‪do while‬‬
‫این نوع حلقه شرطی هم همانند حلقه شرط ‪ while‬است با این تفاوت که دستورات‬
‫داخل بلوک آن حداقل یک بار اجرا می شوند‪ .‬برای درک این مسعله صورت کلی آن را‬
‫در نظر بگیرید‪.‬‬
‫‪20‬‬
‫{ ‪do‬‬
‫‪//statement‬‬
‫;)‪} while(condition‬‬
‫همان طور که از صورت کلی این حلقه هم نمایان است‪ ،‬زمانی که برنامه به این قسمت‬
‫می رسد وارد حلقه شده و دستورات را انجام می دهد و سپس شرط حلقه را چک می‬
‫کند‪ .‬بنابراین واضح است که در این حالت دستورات حداقل یک بار اجرا می شوند‪ .‬به‬
‫عالمت نقطه ویرگول(‪ )semicolon‬بعد از پرانتز دقت کنید‪ .‬این نقطه ویرگول اجباری‬
‫است و در صورت نگذاشتن آن با ‪ syntax error‬مواجه می شوید‪.‬‬

‫مثال‪:‬‬
‫‪21‬‬

‫در کد اول چون شرط حلقه برقرار نیست بنابراین برنامه وارد حلقه نشده و هیچ چیزی‬
‫چاپ نمی کند‪ .‬در کد دوم ابتدا وارد حلقه می شویم و چون مقدار ‪ i‬برابر ‪ 0‬است پس‬
‫وارد بلوک ‪ if‬شده و مقدار ‪ i‬برابر ‪ -10‬می شود‪ .‬بعد از چاپ شدن ‪ ،i‬شرط حلقه چک‬
‫می شود و چون برقرار است‪ ،‬به اول بلوک حلقه بر می گردد‪ .‬با کمی دقت مشاهده می‬
‫کنیم که در این حلقه اعداد ‪ -10‬تا ‪ -1‬چاپ می شوند و سپس از حلقه خارج می‬
‫شویم‪.‬‬

‫حلقه های شمارش‬


‫حلقههای شمارشی را در واقع میتوان به این صورت تعبیر کرد که همان حلقه های‬
‫شرطی هستند با این تفاوت که حلقههای شمارشی‪ ،‬همان طور که از نامشان مشخص‬
‫است دارای یک شمارنده هستند که به میزان خاصی حلقه را تکرار میکنند‪ .‬همان طور‬
‫‪22‬‬
‫که به نظر می آید می توان حلقهی شمارشی را به وسیلهی حلقه شرطی ایجاد کرد که‬
‫نحوه ی این کار را در ادامه خواهیم دید‪.‬‬

‫صورت کلی حلقه شمارشی‬

‫در زیر می توانید شکل کلی این نوع حلقه را مشاهده کنید‪.‬‬

‫(عمل افزایشی یا کاهشی ; شرط حلقه ; تعریف و مقداردهی متغیر های حلقه)‪for‬‬
‫{‬
‫‪//statement‬‬
‫}‬

‫نحوهی عملکرد حلقه شمارشی باال به این صورت است که ابتدا وارد قسمت تعریف‬
‫میشود و به متغیر ها مقدار می دهد‪.‬سپس شرط حلقه چک میشود و در صورت برقرار‬
‫بودن آن‪ ،‬وارد حلقه شده و دستورات داخل آن را انجام میدهد‪.‬پس از اجرای دستورات‬
‫داخل حلقه به قسمت تغییر مقدار متغیرها(افزایش یا کاهش آن ها) رفته و پس از‬
‫اجرای این تغییرات‪ ،‬دوباره شرط حلقه را چک میکند و در صورات برقرار بودن وارد‬
‫حلقه میشود‪ .‬این کار آنقدر تکرار میشود تا شرط حلقه دیگر برقرار نباشد و از حلقه‬
‫خارج شویم‪.‬‬

‫دقت کنید که قسمت « تعریف و مقداردهی متغیر های حلقه » تنها یک بار اجرا‬
‫میشود‪.‬‬
‫‪23‬‬
‫پیاده سازی حلقه شمارش به کمک حلقه شط‬
‫شبه کد نشان داده شده در زیر نحوه ی پیاده سازی حلقه شمارشی به کمک حلقه‬
‫شرطی را نشان میدهد‪.‬‬

‫تعریف و مقدار دهی متغیر ها‬


‫(شرط حلقه)‪while‬‬
‫{‬
‫‪// statement‬‬
‫عمل افزایشی یا کاهشی‬
‫}‬
‫به وضوح مشخص است که شبه کد باال همان حلقه شمارشی است‪.‬‬

‫‪break‬‬
‫این دستور‪ ،‬یکی از دستور های کنترلی است که در حلقه ها استفاده می شود‪(.‬این‬
‫دستور هم در حلقههای شمارشی استفاده میشود و هم درحلقههای شرطی) نحوهی‬
‫عملکرد این دستور به این صورت است که هرگاه در حلقهها به این دستور برسیم‪،‬‬
‫بالفاصله از حلقه خارج میشویم و ادامهی کار را از دستورات پس از حلقه پی میگیریم‪.‬‬
‫در واقع با گذاشتن این دستور در مکان مناسب در حلقه میتوانیم هر زمان که‬
‫خواستیم از حلقه خارج شویم و برای اتمام حلقه‪ ،‬به انجام کل حلقه نیازی نباشد‪.‬‬
‫‪24‬‬
‫‪continue‬‬
‫دستور کنترلی دیگری که در حلقه کاربرد دارد‪ ،‬دستور ‪ continue‬است‪ .‬نحوهی‬
‫عملکرد این دستور به این صورت است که هرگاه در طول اجرای حلقه به این دستور‬
‫رسیدیم‪ ،‬ادامه ی برنامه از ابتدای حلقه پی گرفته میشود‪ .‬به عبارت بهتر دستوراتی که‬
‫بعد از ‪ continue‬قرار دارند‪ ،‬در صورت رسیدن به این دستور کنترلی اجرا نمیشوند‪.‬‬

‫یک مثال ‪:‬‬

‫در این حلقه مقدار اولیهی ‪ i‬برابر ‪ 0‬است وطبق حلقه تا مقدار ‪ 20‬پیش میرود‪ .‬اگر‬
‫اولین ‪ if‬را در نظر بگیریم‪ ،‬مشاهده می شود‪ ،‬تا زمانی که مقدار ‪ i‬از ‪ 6‬کمتر است‪ ،‬شرط‬
‫اول برقرار می شود و دستور ‪ continue‬اجرا می شود‪.‬طبق توضیحات باال به اول حلقه‬
‫باز میگردیم و مقدار ‪ i‬را اضافه میکنیم‪ .‬پس از تکرار این عمل و بعد از این که مقدار ‪i‬‬
‫به ‪ 6‬رسید دیگر شرط اول برقرار نیست و مقدار ‪ 6‬چاپ میشود‪ .‬چون شرط دوم هم‬
‫برقرار نیست پس این عمل آنقدر ادامه مییابد تامقدار ‪ i‬به ‪ 13‬برسد‪.‬بعد از این حالت‬
‫شرط دوم برقرار شده‪ ،‬و دستور ‪ break‬اجرا می شود‪ .‬پس از اجرای این دستور حلقه‬
‫تمام میشود‪ .‬بنابراین در این حلقه اعداد ‪ 6‬تا ‪ 13‬چاپ میشوند‪.‬‬
‫‪25‬‬
‫مثال دیگر‬

‫در این کد آنقدر از ورودی‪ ،‬داده میگیرد تا کاربر عدد ‪ -1‬را وارد کند‪ .‬در این صورت از‬
‫حلقه خارج میشود‪.‬‬

‫تابع‬
‫تابع چیست؟‬

‫در برنامه نویسی میتوانیم از توابع استفاده کنیم تا هم به ساختار کد نظم ببخشند و هم‬
‫اینکه از تکرار کد جلوگیری کنیم‪ .‬هنگامی که یک تابع تعریف میشود ما میتوانیم بدون‬
‫توجه به ساختار داخلی آن بارها از آن استفاده کنیم‪ .‬در واقع میتوان به آن به عنوان‬
‫‪26‬‬
‫یک ‪ BlackBox‬نگاه کرد که با دادن ورودی به آن از آن خروجی مورد نظر را انتظار‬
‫داشت ‪.‬‬

‫تعریف تابع‬
‫برای تعریف تابع باید از قاعده زیر پیروی کرد‬

‫)‪ReturnType NameOfFunction ( Parameter1, Parameter2, ...‬‬


‫{‬
‫‪//‬‬ ‫‪Statements‬‬
‫}‬

‫نوع خروجی ‪ : ReturnType‬در اینجا نوع خروجی را انتخاب می کنیم که یکی‬ ‫▪‬

‫از ‪ Type‬های ‪ c++‬است یا اگر می خواهیم تابع خروجی نداشته باشد از ‪void‬‬
‫استفاده می کنیم‬

‫اسم تابع‪ : NameOfFunction‬نامی است که روی تابع میگذارید و ازین پس‬ ‫▪‬

‫با این اسم آن را صدا میکنید‪.‬‬

‫پارامتر های ورودی ‪ : Parameter‬پارامتر های ورودی هستند که به ترتیب‬ ‫▪‬

‫میایند و هرکدام شامل نوع ورودی و اسم آن هستند‪.‬‬

‫▪‬

‫نحوه برگداندن خروج‬


‫برای برگرداند خروجی از عبارت‬

‫;)‪return (ret_Value‬‬
‫‪27‬‬
‫استفاده میکنیم که بعد از اجرای آن مقدار خروجی بازگردانده میشود و اجرای تابع به‬
‫پایان میرسد اگر نوع خروجی ‪ void‬باشد دستور‪:‬‬

‫; ‪return‬‬
‫اجرای تابع را به پایان میرساند ‪.‬‬

‫مثال‬
‫به عنوان مثال میخواهیم تابعی بنویسیم که جمع دو عدد را محاسبه کند‬

You might also like