ساختار های حلقه ها در زبان ++C :
در زبان ++C سه نوع ساختار حلقه (گردش) وجود دارد :
for 1-
do while 2-
while 3-
در ادامه به بررسی هر سه حلقه خواهيم پرداخت .
ساختار حلقه ی for :
ساختار کلی حلقه ی for به صورت زیر است :
( مقدار تغيير متغير ;مقدار نهایی ;مقدار اوليه )for
{
دستور یا دستورات
}
توجه : در صورت مجموعه دستورات شما فقط شامل یک دستور باشد می توانيد از آکولاد ها صرف نظر کنيد .
مسئله 9 : برنامه ای بنویسيد که تا اعداد طبيعی کوچکتر از 100 را چاپ کند .
#include <iostream.h>
int main()
{
cout<<“figures which are less than 100 : \n”;
for(int i=0; i<100; i++)
{
cout<<i<<endl;
}
return 0;
}
مسئله ی 10 : برنامه ای بنویسيد که مجموع اعداد 1 تا 99 را بنویسد .
#include <iostream.h>
int main()
{
int s;
cout<<“majmo is : “;
for(int i=0; i<100; i++)
{
s=s+i;//http://sim-power.ir
}
cout<<s;
return 0;
}
مسئله ی 11 : برنامه ای بنویسيد که اعداد زوج بين 100 و 1000 را چاپ کند .
#include <iostream.h>
int main()
{
int s,k;
cout<<“even numbers between 100 and 1000 are : “;
for(int i=100; i<1001; i++)
{
k=i%2;
if (k==0)
cout<<i<<” “;//http://sim-power.ir
}
return 0;
}
مسئله 12 : برنامه ای بنویسيد که حاصلضرب اعداد 5 تا 10 را در خروجی چاپ کند .
#include <iostream.h>
int main()
{
long int p;
p=1;
for(int i=5; i<10; i++)
{
p=p*i;
}
cout<<” zarbe adade 5 ta 10 : ” <<p;//http://sim-power.ir
return 0;
}
ساختار حلقه ی while :
( شرط اجرای حلقه )while
{
دستورات برنامه
}
سئله ی 13 :برنامه ای بنویسيد که دنباله ی زیر را تا عدد 9999 چاپ کند :
30 10 90 70 50 …
#include <iostream.h>
int main()
{
long int a;
a=10;
while (a<9999){
cout<<a<<” “;//http://sim-power.ir
a+=20;
}
return 0;
}
مسئله ی 14 : برنامه ای بنویسيد که تا تعدادی عدد مثبت را گرفته و مجموع آنها را حساب کند . (شرط پایان کار ، وارد کردن عدد صفر از
طرف کاربر خواهد بود ) .
#include <iostream.h>
int main()
{
long int s,a;
cout<<“enter your numbers : “<<endl;//http://sim-power.ir
cin>>a;
s=a;
while (a>0){
cin>>a;
s+=a;
}
cout<<“Sum is “<<s;
return 0;
}
ساختار حلقه ی do while:
do{
دستورات برنامه
( شرط اجرای کد حلقه )while{
فرق اساس حلقه ی do while با while در این است که در حلقه ی فوق ، دستورات برای یک بار بدون توجه به شرط برنامه اجرا می
شوند .
رای مثال مسئله 14 را یکبار دیگر با حلقه ی do while می نویسيم :
#include <iostream.h>
int main()
{
int s,a;
cout<<“enter your numbers : “<<endl;//http://sim-power.ir
s=0;
do{
cin>>a;
s=a+s;
} while (a>0);
cout<<“Sum is “<<s;
return 0;
}
مسئله ی 15 : برنامه ای بنویسيد که تعدادی عدد مثبت را از ورودی گرفته و بزرگترین و کوچکترین آنها را تعيين کند . (شرط پایان کار وارد
کردن عدد صفر است )
#include <iostream.h>
int main()
{
int s,max,min,a;
cout<<“enter your numbers : “<<endl;
cin>>a;
max=a; min=a;
while (a>0){
if (a>max)
max=a;//http://sim-power.ir
if (a<min)
min=a;
cin>>a;
}
cout<<“max is “<<max;
cout<<“min is “<<min;
return 0;
}
تمرینات :
-1 (مسئله ی 16): برنامه ای بنویسيد که دستور فاکتوریل را انجام دهد . یعنی اینکه عددی را از ورودی گرفته و فاکتوریل آنرا را حساب کند .
راهنمایی :
0!=1 و a!= 1*2*3*…*a
2 (مسئله ی 17):برنامه ای بنویسيد که 10 عدد از ورودی گرفته و بزرگترین آنها را مشخص کند .
-3 (مسئله ی 18 ): برنامه ای بنویسيد که عددی را گرفته و مشخص کند که آیا عدد اول است یا نه .
-4 (مسئله ی 19 ): برنامه ای بنویسيد که عددی را از ورودی گرفته و مشخص کند که عدد گرفته شده تام است یا نه .
(راهنمایی : عدد تام عددی است که مجموع مقسوم عليه های کوچکتر از خودش ، برابر خودش باشد )
-5 (مسئله ی 20 ): برنامه ای بنویسيد که اعداد اول 1 تا 5000 را چاپ کند .
-6 (مسئله ی 21 ):برنامه ای بنویسيد که عددی را گرفته و مقسوم عليه های آنرا چاپ کند . (می توانيد برنامه را گسترش دهيد تا تعداد و
مجموع مقسوم عليه ها را هم چاپ کند . )
-7 (مسئله ی 22):برنامه ای بنویسيد که مجموع مضارب 5 را بين 1 و 100 چاپ کند .
-8 (مسئله ی 23 ):برنامه ای بنویسيد که دو عدد را از ورودی بگيرد و اعداد بين آنها را چاپ کند .
-9 (مسئله ی 24 ):برنامه ای بنویسيد که تعداد مضارب 7 و 5 را در بازه ی بين 1 تا 10000 چاپ کند .
(توضيح : اعداد مورد نظر هم باید مضرب 7 باشد و هم مضرب 5 )
10 (- مسئله ی 25 ):برنامه ای بنویسيد که 10 عدد را گرفته و ميانگين و حاصلجمع آنها ر ا به ما بدهد .
11- (مسئله ی 26 ):دنباله ی فيبوناچی به صورت زیر است :
1,1,2,3,5,8,13,21…
این دنباله به صورت زیر تعریف می شود :
Fn برنامه ای بنویسيد که با دریافت مقدار صحيح n ، مقدار را برای دنباله ی فيبوناچی چاپ کند .
12 – ( مسئله ی 27) : برنامه ای بنویسيد که تعدادی عدد گرفته و مجموع مربعات آن را حساب کند
