menusearch
javapro.ir

جلسه سوم | حلقه ها و دستورات شرطی در زبان برنامه نویسی C

جستجو
پنج شنبه ۲۹ اردیبهشت ۱۴۰۱ | ۷:۴۲:۱۴
۱۴۰۰/۱۱/۱۸ دوشنبه
(2)
(0)
جلسه سوم | حلقه ها و دستورات شرطی در زبان برنامه نویسی C
جلسه سوم | حلقه ها و دستورات شرطی در زبان برنامه نویسی C

 

دوره صفر تا پیشرفته آموزش رایگان زبان برنامه نویسی C در سایت آموزشی جاواپرو

 

 

مدرس زبان برنامه نویسی C

 

 

 

جلسه سوم | حلقه ها و دستورات شرطی در زبان برنامه نویسی C

 

 


ساختار‌‌‌‌های تکرار در زبان برنامه نویسی C:
ساختار‌‌‌‌های تکرار، تحت شرایط خاصی، یک یا چند دستور را چندین بار اجرا می‌کنند. به عنوان مثال، اگر بخواهیم تعداد۱۰۰ عدد را از ورودی بخوانیم و آنها را با هم جمع کنیم. باید عمل خوانـدن عـدد را ۱۰۰ بـار تـکـرار کنیم. ساختار‌‌‌‌های تکرار در زبان‌‌‌‌های برنامه سازی مختلف به شکل‌‌‌‌های گوناگونی مورد استفاده قرار می‌گیرند. این ساختارها را در زبان C مورد بررسی قرار می‌دهیم.

 

 

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

 

For ( مقدار اولیه اندیس حلقه; شرط حلقه ; گام حرکت) {
   دستورات;
}



مثال 1-1 :

 

#include <stdio.h>
#include <conio.h>

int main(){

  int sum=0, num, i;
  float ave;
  int n = 2;
  for (i = 0; i<n; i++){
      printf("Adad shomare %d ra vared konid: ", n+i);
      scanf("%d",&num);
      sum += num;
      printf("\n");
  }
  ave = sum / n;
  printf("the ave is %f ", ave);

  getch();
  return 0;
}


خروجی :

 

Adad shomare 1 ra vared konid: 10
Adad shomare 2 ra vared konid: 20
the ave is 15

 

تحلیل :
   در برنامه بالا متغییر n را اساس حلقه for قرار دادیم و این حلقه را 2 بار اجرا کردیم
سپس 2 عدد را از کاربر دریافت کرده و آن را در متغییر sum ذخیره کردیم. توجه کنید که متغییر sum باید در اول مقداری را داشته باشد و اگرنه برنامه با مشکل مواجه میشود. سپس بعد از اتمام حلقه متغییر ave که مخفف شده عبارت میانگین است را با مجموع دو عدد وارد شده که همان sum است بر n که همان تعداد عدد است تقسیم کردیم تا میانگین را بدست آوریم. سپس به خط بعدی رفته و متغییر ave که از نوع float یا عدد اعشاری است چاپ کردیم.


حلقه‌‌‌‌های تودرتو در زبان برنامه نویسی C:
   وقتی حلقه تکراری در داخل حلقه تکرار دیگر قرار داشته باشد، می‌گوییم که حلقه‌‌‌‌های تودر تـو ایجاد شـده انـد. قانونی که بر حلقه‌‌‌‌های تکرار تو در تو حاکم است این است که، به ازای هر بار اجرای حلقه تکرار خـارجی، حلقه تکرار داخلی به طور کامل اجرا می‌شود. ضمناً، انت‌‌‌‌های حلقه تکرار داخلی، زودتر از حلقه تکرار خارجی مشخص می‌شود. به عنوان مثال، در دستورات زیر، حلقه تکرار با اندیس i، حلقه خارجی و حلقه تکـرار بـانـديس j، حلقه تکرار داخلی است :

 

For (i = 0; i<10 ; i++){
   ….
   For (j = 0 ; j<10 ; j++){
       …..
}
….
}


مثال جدول ضرب با حلقه‌‌‌‌های تو در تو:

 

#include <stdio.h>
#include <conio.h>

int main(){
  int i,j;
  for(i = 1 ; i<=4 ; i++){
      for (j = 1 ; j<=4 ; j++){
          printf("%3d", i*j);
      }
      printf("\n");
  }
  getch();
  return 0;
}


خروجی:

 

1  2  3  4
2  4  6  8
3  6  9  12
4  8  12 16

 

تحلیل:
   اول از همه اندیس‌‌‌‌های حلقه‌‌‌‌های خود را انتخاب کرده که همان متغییر‌‌‌‌های i و j هستند را از نوع عدد صحیح یا همان int تعریف کردیم و اساس هر دو حلقه را عدد 4 در نظر گرفتیم و سپس در حلقه دوم یا حلقه داخلی خود مقدار i*j را به صورت %3d که همان عدد صحیح مرتب شده است قرار دادیم تا جدول در خروجی منظم و زیبا نشان داده شود.

 

ساختار while در زبان برنامه نویسی C :


   ساختار while یکی دیگر از ساختار حلقه ها است و روش استفاده از ان به صورت زیر است :

 

while (شرط) {
   دستورات 1
   دستورات 2
   .
   n دستورات
}

 

مثال حلقه while :

 

#include <stdio.h>
#include <conio.h>

int main(){

  int x = 1;
  printf("adad zoj 1 ta 20 : ");
  while (x < 21){
      if (x%2 == 0){
          printf("%d ",x);
      }
  }

  getch();
  return 0;
}


خروجی:

 

adad zoj 1 ta 20 : 2 4 6 8 10 12 14 16 18 20

 

تحلیل:
   در حلقه بالا شرط ما این است تا زمانی که متغییر x کوچکتر از عدد 21 بود حلقه اجرا میشود و در صورت درست نبودن این عبارت حلقه اجرا نمیشود. سپس درون دستورات گفتیم اگر متغییر x ما عددی زوج بود ان را نشان بده. زوج بودن متغییر را از این روش متوجه شدیم که گفتیم اگر باقیمانده تقسیم متغییر x بر 2 برابر با 0 بود دستور را انجام بدهد ( علامت باقیمانده تقسیم % است ).

 


ساختار do while در زبان برنامه نویسی C :
   ساختار تکرار do ... while مانند ساختار تکرار while است ؛ با این تفاوت که در ساختار while، شرط حلقه در ابتدای حلقه تست می‌شود، در حالی که در do … while شرط حلقه در انت‌‌‌‌های حلقه تست می‌گردد. بنابراین دستورات موجود در حلقه do ... while، در هر حال، حداقل یک بار اجرا می‌شوند. این ساختار به صورت زیر به کار می‌رود.

 

do {
   دستورات 1
   دستورات 2
   .
   n دستورات
} while (شرط);


مثال عدد شانسی با do while :

 

#include <stdio.h>
#include <conio.h>

int main(){

  int x = 37;
  int y = 1;
  int z;
  do {
      printf("Enter 1 num : ");
      scanf("%d",&z);
      if (z != x){
          printf("\n enter 1 more num : ");
          scanf("%d", &z);
      }
      else {
          printf("\n great");
          y = 0;
      }
  } while (y == 1);

  getch();
  return 0;
}

 

خروجی:

 

Enter 1 num : 28
Enter 1 num : 4
enter 1 more num : 37
great

 

تحلیل :
   در مرحله اول یک متغییر از کاربر دریافت کرده و چک می‌کنیم اگر متغییر با متغییر x که همان عدد 37 است برابر بود عبارتی را نشان داده و متغییر y را با عدد 0 قرار داده و شرط حلقه برقرار نباشد و حلقه تمام شود. و اگر عدد وارد شده با 37 برابر نباشد دوباره حلقه اجرا میشود زیرا به متغییر y دست نزدیم و مقدار ان را تغییر نداده به همین دلیل شرط حلقه درست است و دستورات دوباره اجرا میشوند.

 

 

از کدام حلقه استفاده کنیم؟
   زمانی که تعداد دفعات اجرای برنامه مشخص باشد بهتر است از حلقه for استفاده کنیم و در شریاطی که هر بار باید یک شرطی بخصوص چک شود بهتر است از حلقه while و حلقه do … while برای راحتی کار استفاده کنیم. در غیر این صورت زبان c زبانی بی حد و مرز است و در هر شرایطی میتوان از هر حلقه ای استفاده کرد ولی مشخصا کاری آسان نیست.

 

 

ساختار‌‌‌‌های شرطی در زبان برنامه نویسی C:
   همانطور که دیدید، ساختار‌‌‌‌های تکرار، برای تکرار اجرای دستورات مورد استفاده قرار می‌گیرند. اما اگر بخواهیم، تحت شرایطی، تعدادی از دستورات اجرا شوند و یا تعدادی دیگر از دستورات اجـرا نـشـود، باید از ساختار‌‌‌‌های تصمیم استفاده کنیم. این ساختارها شرطی را تست کرده در صورت درست بودن شرط، مجموعه ای از دستورات را انجام می‌دهند. در زبان C چندین ساختار تصمیم وجود دارد که آنها را در این بخش بررسی میکنیم.

 

 

جهت مشاهده ادامه جلسه سوم | حلقه ها و دستورات شرطی در زبان برنامه نویسی C اینجا کلیک کنید.

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
هدر سایت
زودتر از دیگران از جدیدترین مطالب آموزشی برنامه نویسی جاواپرو اطلاع پیدا کن
 شاید برای شما کم اهمیت باشد; اما حمایت مالی به جاواپرو جان می‌دهد
سوالات متداول برنامه نویسی