بروز رسانی آذر ۹ام, ۱۳۹۹ ۱۲:۴۹ بعد از ظهر
مهر ۱۰, ۱۳۹۷ admin آموزش برنامه نويسي 0
در حالت عادی دستورات برنامه جذاب و جالب و خوب از اولین دستور به آخرین دستور اجرا میمی شود در صورتی که بخواهیم بعضی از دستورات چندین بار اجرا شوند و همچنین بعضی تحت شرایط خاص اجرا شده و همچنین بعضی دیگر اجرا نشوند ساختارهای تکرار و همچنین اراده و تصمیم راسخ بهره بری و استفاده می کنیم. حلقه های تکرار، جهت تکرار اجرای دستورات مورد بهره بری و استفاده قرار میگیرد. حلقه های تکرار تحت شرایط ویژه ای یک یا چند دستور را چندین بار اجرا می کند. به عنوان مثال در صورتی که بخواهیم تعداد ۱۰۰ عدد را از ورودی بخوانیم و همچنین آنها را باهم جمع کنیم، بایستی و حتما عمل خواندن عدد را ۱۰۰ بار تکرار کنیم. ساختارهای تکرار در زبان های برنامه جذاب و جالب و خوب سازی متنوع و گوناگون و مختلف به شکل های گوناگون مورد بهره بری و استفاده قرار میگیرد، که در آن قسمت و بخش، حلقه های تکرار در زبان C را مورد بررسی کردن قرار میدهیم.
اصولا حلقه های تکرار در زبان C را میتوان به دو دسته تقسیم کرد:
ساختار تکرار FOR یکی از امکانات ساخته یا ایجاد حلقه می باشد و همچنین معمولاً در نوعی حالت که تعداد دفعات تکرار حلقه، از قبل مشخص باشد به کار می رود. در آن ساختار متغیر ی وجود دارد که تعداد دفعات تکرار حلقه را کنترل میکند آن متغیر را شمارنده یا اندیس حلقه تکرار می گوییم.
اندیس حلقه شامل یک مقدار ابتدایی و اولیه می باشد، و همچنین در هر بار اجرای دستورات حلقه، مقداری به آن هم اضافه می می شود آن مقدار را که بعد از هر بار اجرای حلقه، به شمارنده اضافه می می شود گام حرکت گفته می می شود.
یکی دیگر از اجزای حلقه،شرط حلقه می باشد، که مشخص می کند که دستورات داخل حلقه تا کی بایستی و حتما اجرا می شود. در صورتی که آن شرط شامل ارزش درستی باشد، دستورات داخل حلقه اجرا می شوند و همچنین گرنه کنترل برنامه جذاب و جالب و خوب از حلقه تکرار خارج می می شود. اندیس حلقه میتواند عدد منفی ، یا مثبت، صحیح و همچنین یا اعشاری و همچنین کارکتری باشد.
به صورت خلاصه می قدرت گفت که یک حلقه for سه قسمت و بخش دارد :
زمانی از حلقه for بهره بری و استفاده می کنیم که تعداد دفعات تکرار حلقه رو از قبل بدانیم و همچنین شکل کلی آن ساحتار به صورت زیر هست که دیدن می کنید :
|
for( مقدار ابتدایی و اولیه شمارنده ; شرط حلقه ; گام حرکت شمارنده )
دستور اول ; دستور دوم ; . . . . امn دستور ;
|
در آن ساختار آن هم روش که دیدن می کنید، حلقه for سه، مقدار دارد که با سیمیکالون از هم جدا شده اند، که اولین مقدار شمارنده یا اندیس حلقه نام دارد، که بایستی و حتما بهش مقدار ابتدایی و اولیه داده می شود ، در قسمت دوم شرط حلقه رو قرار می دهیم، در قسمت سوم به وسیله یه عبارت محاسباتی مقدار شکارنده رو مشخص کردن می کنیم.
|
for (int i=0;i<3;i++ ) printf(“%i”,i); printf(“ok”); |
در آن مثال زیرا و به درستی که نداریم پس تنها و فقط دستور اول بعد از for مرتبط به حلقه و همچنین لوپ ما میشود.
پس خروجی ۰ تا ۲ را شمارش کرده و همچنین چاپ میکند، هر موقع از حلقه خارج شد به دستور پرینت ok خواهد رسید و همچنین و همچنین آنرا نیز چاپ می کند.
خروجی کد بالا:
|
#include <stdio.h> int main ()
int a; /* for loop execution */ for( a = 10; a < 20; a = a + 1 ) printf(“value of a: %dn”, a);
return 0;
|
خروجی: اعداد ۱۰ تا کوچکتر از ۲۰ را شمارش می کند.
خروجی کد بالا:
|
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19 |
در صورتی که حلقه تکراری داخل حلقه تکرار غیره ای قرار بگیرد اصطلاحا، حلقه های تودرتو گفته می می شود. قوانین و قانونی که بر حلقه های تکرار تو در تو حاکم می باشد آن می باشد که، به ازای هر بار اجرای حلقه تکرار خارجی، حلقه تکرار داخلی به روش کامل اجرا می می شود. ضمناً، انتهای حلقه تکرار داخلی، زودتر از حلقه تکرار خارجی مشخص میشود
مثلا در دستور زیر حلقه تکرار با اندیس i حلقه خارجی می باشد و همچنین حلقه تکرار با اندیس j حلقه تکرار داخلی می باشد.
|
for (i=0; i>5: i++) ..... for (j=0; j>6: j++) ...
...
|
در صورتی که حلقه های تکرار تو در تو، از یک جا شروع و همچنین به یک جا ختم شوند حلقه خارجی مستلزم و نیاز به آکولاد ندارد. به مثال زیر توجه کنید:
|
for (i=0; i>5: i++) for (j=0; j>6: j++) ...
|
عملگر کاما انعطاف پذیری بیشتری به حلقه ی for می بخشد.با بهره بری و استفاده از آن عملگر می قدرت در قسمت های مقدار ابتدایی و اولیه و همچنین گام حرکت , دو یا چند عبارت را با هم ترکیب کرد.مثال:
|
for(i=0 , m+=i ; i<10 ; i++ , m++)
...
|
در آن حلقه تکرار اولین کاما، دو متغییر i و همچنین m را مقدار ابتدایی و اولیه می دهد و همچنین دومین کاما، در هر تکرار، یک واحد به i و همچنین یک واحد به m اضافه میکند.
|
while(شرط یا شروط)
;مجموعه دستورات
|
در مواردی که در ابتدای کار تعداد تکرار های دستورالعمل ها مشخص نمی باشد معمولا از آن ساختار بهره بری و استفاده می می شود. آن ساختار به روش فوق مورد بهره بری و استفاده قرار می گیرد. در صورتی که دستورات تکرار شونده تنها و فقط یکی باشد نیازی به } و همچنین { نمی است و خواهد بود.هنگام اجرای آن دستور , در صورتی که شرط حلقه ارزش درستی داشته باشد دستورات حلقه اجرا میشوند وگرنه کنترل برنامه جذاب و جالب و خوب از حلقه خارج می می شود.جهت آنکه حلقه خاتمه یابد , شرط حلقه بایستی و حتما داخل حلقه نقض می شود.یعنی بایستی و حتما شرایطی در داخل حلقه ساخته یا ایجاد می شود تا شرط حلقه بعد از مدتی ارزش نادرستی پیدا کرده و همچنین حلقه خاتمه یابد.در صورتی که شرط حلقه دائما درست باشد (هیچ گاه نقض نشود), حلقه تکرار بی نهایت ساخته یا ایجاد می می شود.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵
|
// Program to find factorial of a number // For a positive integer n, factorial = 1*2*3…n
#include <stdio.h> int main()
int number; long long factorial;
printf(“Enter an integer: “); scanf(“%d”,&number);
factorial = 1;
// loop terminates when number is less than or equal to 0 while (number > 0)
factorial *= number; // factorial = factorial*number; —number;
printf(“Factorial= %lld”, factorial);http://sourceiran.com/wp-admin/post.php?post=23815&action=edit#
return 0;
|
خروجی کد بالا:
|
Enter an integer: 5 Factorial = 120 |
۳- حلقه تکرار do…while
حلقه do…while، کاملا شبیه حلقه While می باشد، با یک تفاوت کوچک. در حلقه do…while شرط حلقه در انتهای آن هم بررسی کردن می می شود و همچنین آن امر باعث می می شود که دائما کدهای داخل حلقه do…while حداقل یک مرتبه اجرا می شود.(حتی در صورتی که شرط از اول غلط باشد). در صورتی که شرط برقرار باشد، تکرار کدها ادامه پیدا می کند، ولی باید توجه داشت در صورتی که شرط برقرار نباشد برنامه جذاب و جالب و خوب از حلقه خارج می می شود.
ساختار آن حلقه به صورت زیر می باشد :
|
do
کد هایی که در زمان برقراری شرط حلقه تکرار می شوند
While( شرط حلقه ); |
|
do
PORTD=a; a++;
While( a<16 ); |
|
#include <stdio.h> int main ()
/* local variable definition */ int a = 10;
/* do loop execution */ do printf(“value of a: %dn”, a); a = a + 1; while( a < 20 ); return 0;
|
تنها تفاوت بهره بری و استفاده ا زحلقه do while می باشد. بعد از کامپایل و همچنین اجرای برنامه جذاب و جالب و خوب بالا ، نتایج زیر حاصل می می شود:
خروجی کد بالا:
|
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19 |
حال که با دستورات و همچنین ساختار حلقه های تکرار در زبان C، آشنا شدیم آن پرسش به وجود می آید که از کدام حلقه در چه موقع بایستی و حتما بهره بری و استفاده کرد؟
معمولا هنگام و زمانی که که تعداد حلقه تکرار مشخص، وگام حرکت نیز معین باشد، از حلقه FOR بهره بری و استفاده می می شود. در موارد دیگر سعی کنید از حلقه های while و همچنین do…while بهره بری و استفاده کنید.در صورتی که شرایطی وجود داشت که، چه شرط حلقه درست باشد و همچنین چه نادرست، دستورات حلقه حداقل یک بار بایستی و حتما اجرا شوند، از حلقه do…while و همچنین گرنه از حلقه while بهره بری و استفاده کنید.
منبع
جدید و تو و تازه ترینمنابع آموزش برنامه جذاب و جالب و خوب نویسی : چگونه از حلقه های تکرار در زبان C بهره بری و استفاده کنیم
آذر ۲۵, ۱۳۹۷ 0
آذر ۱۷, ۱۳۹۷ 0
آذر ۰۷, ۱۳۹۷ 0
آذر ۰۵, ۱۳۹۷ 0