بخش هشتم

گرافیک در زبان برنامه نویسی C++

 

حلقه چیست؟

حلقه ها در برنامه نویسی جهت جلوگیری از تکرار نوشته شدن دستورات می باشند و اگر بتوان رابطه ای  بین دستوراتی که قرار است تکرار شوند به دست آورد می توان به جای تکرار دستورات، رابطه بین آن ها را در حلقه نوشت تا با استفاده از امکانات حلقه ها، بدون اینکه نیازی به نوشتن چندین باره دستورات باشد، دستورات چندین بار انجام شود.

 

انواع حلقه های تکرار

در اغلب زبان های برنامه نویسی  دو نوع حلقه تکرار وجود دارد. یک نوع بر اساس تعداد و نوع دیگر بر اساس شرط کار می کنند. در زبان برنامه نویسی C برای تکرار بر اساس تعداد حلقه از for و برای تکرارهای بر اساس شرط از حلقه while یا do … while استفاده می شود.

 

دستور for

این دستور جهت ایجاد مقادیری می باشد که با نظم معینی تغییر می کنند و مقدار شروع و پایان مشخصی دارند. در زبان پاسکال که دارای ساده ترین و ضعیفترین نوع حلقه for در بین زبان های برنامه نویسی می باشد، فقط می توانیم از یک متغیر استفاده نماییم و توسط آن مقدار شروع و پایان را مشص نماییم. اما در زبان برنامه نویسی C دارای قویترین حلقه for در بین زبان های برنامه نویسی می باشد و امکانات زیاد این حلقه امکان انجام بسیاری از کارها را سهل و ممکن نموده است. از جمله امکانات مهم در این حلقه عبارتند از: استفاده همزمان از چندین متغیر، تعریف متغیر جدید در خود حلقه، انجام تغییرات متفاوت بر روی مقادیر هر متغیر به طور مستقل از سایر متغیرها، اضافه یا کم کردن هر مقدار دلخواه اعشاری یا صحیح به متغیرها، بررسی شرط های متنوع برای اجرا شدن حلقه و بسیاری امکانات دیگر.

این حلقه به شکل کلی زیر می باشد و دارای 3 قسمت است که هر قسمت توسط ; از قسمت دیگر مجزا می شود:

  (دستور یا دستورات مقداردهی اولیه ; شرط ; دستور یا دستورات اضافه کننده یا کاهنده)for

      ; دستور یا دستورات مورد نظر برای تکرار

 قسمت اول جهت اختصاص مقدار به یک یا چند متغیر می باشد. اگر بخواهیم همزمان به چند متغیر مقدار بدهیم ما بین این دستورات از علامت کاما استفاده می کنیم و در صورتیکه نخواهیم مقدار جدیدی به متغیر بدهیم حتی می توانیم قسمت اول را کامل بگذاریم. در صورت نیاز می توان در این قسمت متغیر جدید محلی نیز تعریف کرد که فقط در داخل همین حلقه قابل استفاده خواهد بود. محدودیتی برای نوع متغیرهای به کار رفته در این حلقه وجود ندارد و می تواند از نوع شمارش پذیر یا غیر شمارش پذیر باشد. به طور مثال می توان از نوع int یا float استفاده کرد.

قسمت دوم برای شرطی می باشد که می خواهیم تا زمان درست بودن آن شرط اجرای دستورات تکرار شود. این شرط می تواند ساده یا مرکب باشدو این شرط الزاما نباید در رابطه با متغیر یا متغیرهایی باشد که در قسمت اول معرفی شده اند. قسمت شرط می تواند خالی نیز باشد که در این صورت همیشه یک شرط درست در نظر گرفته می شود.

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

نکته: اگر به جای یک دستور بخواهیم چندین دستور همزمان در هر تکرار حلقه اجرا شود همه آن ها را بین آکولاد باز و بسته می گذاریم. {  }

نکته: در تعریف حلقه for هر سه قسمت می تواند خالی باشد ولی باید علامتهای مابین آن ها وجود داشته باشد، به عبارت دیگر حلقه for حداقل دارای شکل for( ;  ; ) می تواند باشد که معرفی کننده یک حلقه بی پایان، بدون دستورات مقداردهی اولیه و اضافه کننده می باشد.

 

دستور break

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


دستور continue در حلقه ها

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

 

مثال 1) برنامه ای بنویسید که پنج دایره در وسط صفحه با فاصله های 30 پیکسل از یکدیگر رسم کند.

تحلیل: در این برنامه فقط مقدار شعاع دایره ها در حال تغییر است. بنابراین به جای اینکه 5 دستور circle بنویسیم، از یک حلقه for استفاده می کنیم که از یک تا پنج تغییر کند و دستور circle داخل حلقه را 5 بار تکرار کند.

کد برنامه مانند عکس 1 است:

عکس 1

 

خروجی برنامه مانند عکس 2 است:

عکس 2

دانلود مثال 1 برنامه 5 دایره با for

 

دستور delay

از این دستور برای توقف یا مکث به مدت زمان مشخص در قسمتی از برنامه استفاده می شود. واحد بر حسب هزارم ثانیه می باشد. مثلا درستور delay(500); در هرکجای برنامه که استفاده شود به مدت نیم ثانیه در برنامه توقف ایجاد خواهد کرد. در بسیاری از برنامه ها می توان از این دستور برای آهسته تر اجرا شدن برنامه و اجرای برنامه های نمایشی استفاده کرد. این دستور از مجموعه دستورات dos.h است و در هر برنامه ای کی می خواهیم از delay استفاده کنیم باید فایل سرآیند را به صورت #include فراخوانی و در ابتدای برنامه بنویسیم.

 

مثال 2) برنامه ای بنویسید که خروجی آن مانند عکس 3 باشد.

عکس 3

 

کد برنامه مانند عکس 4 خواهد بود:

عکس 4

 

دانلود مثال 2 برنامه رسم شکل با for

 

مثال 3) برنامه ای بنویسید که شکلی مانند عکس 5 تولید نماید.

عکس 5

کد برنامه مانند عکس 6 خواهد بود:

عکس 6


دانلود مثال 3 برنامه رسم شکل با for

 

______________________________________________________________________________

همينطور مي توانيد به مباحث قبلي برگرديد:

بخش اول برنامه نويسي گرافيك در زبان ++C

بخش دوم برنامه نويسي گرافيك در زبان ++C

بخش سوم برنامه نويسي گرافيك در زبان ++C

بخش چهارم برنامه نویسی گرافیک در زبان ++C

بخش پنجم برنامه نویسی گرافیک در زبان ++C

بخش ششم برنامه نویسی گرافیک در زبان ++C

بخش هفتم برنامه نویسی گرافیک در زبان ++C