حل مسائل ++C را با چند نمونه مسئله دیگر دنبال میکنیم. در این درس نیز برای شما عزیزان چند مسئلۀ بسیار مهم زبان ++C حل شده است که برخی از آنها جزء پروژه های مهم و معروف این زبان می باشند. از جمله نمونه مسائل حلقه ها در ++C ، بررسی کامل بودن عدد در ++C ، دریافت کداسکی یک کاراکتر و چاپ آن در ++C ، برنامۀ ماشین حساب در ++C ، یک نمونه مسئله دربارۀ توابع بازگشتی در ++C و چند برنامه از آرایه ها در ++C . بطورکلی میتوان گفت این نمونه مسئله ها کاربرد بسیار زیادی در طراحی مسائل برای درس برنامه سازی پیشرفته دارند.


۴١. برنامه ای  به زبان ++C بنویسید که با استفاده از حلقه ھا، خروجی زیر را چاپ کند:

*
**
***
****
*****
******

<include <iostream.h#
()int main
}
(++for(int c=1;c<=6;c
}
(++for(int i=1;i<=c;i
;'*'>>cout
;"cout<<"\n
{
;return 0
{

 

 

 

۴٢. برنامه ای در ++C بنویسید که عددی از ورودی گرفته و کامل بودن یا نبودن آن را چاپ کند. (عددی کامل است که مجموع مقسوم علیه ھای غیر از خودش برابر خود عدد باشند. مانند۶ )

<include <iostream.h#
()int main
}
;int n, s=1
;cout<<"Enter a number:"<<endl
;cin>>n
(++for(int i=2;i<n;i
(if((n%i)==0
;s+=i
(if(s==n
;"!cout<<"\nNumber is complete
else
;"!cout<<"\nNumber is not complete
;return 0
{

 

 


۴٣. برنامه به زبان ++C بنویسید که اعداد کامل کوچکتر از ١٠٠٠٠ را چاپ کند.(عددی کامل است که مجموع مقسوم علیه ھای غیر از خودش برابر خود عدد باشند)

<include <iostream.h#
()int main
}
;int s
(++for(register long n=2;n<10000;n
}
;s=1
(++for(register i=2;i<n;i
(if((n%i)==0
}
;s+=i
(if(s==n
;"cout<<n<<"\t
{
{
;return 0
{

 

 


۴۴. برنامه ای به زبان ++C بنویسید که یک کاراکتر از ورودی گرفته و کد اسکی آن را چاپ نماید.

<include <iostream.h#
()int main
}
;char a
;short int b
;cout<<"Enter a character:"<<endl
;cin>>a
;b=a
;cout<<"\nAscii code:\t"<<b
;return 0
{

 

 


۴۵. سورس ماشین حساب کامل مھندسی به زبان ++C

<include <iostream #
<include <cmath #
;using namespace std
;()void help
;in tabe be onvane help baraye amalgar ha mibashad barname ast//
;(int fact (float a
in tabe factoryel ra hesab mikonad//
;()void error
in tabe peyghame khata ra chap mikonad//
}()int main
;[float result,zakhire ,a[50
;char b
;int flag=0,resultint, aint
}(++for (int i=1; i<50; i
} (if (i==1
;()help
;":cout <<"Enter Number
;cin>>result
{;i+=1
}do
}do
;("system("cls
;()help
;cout<<"Last result= "<<result<<endl
;" :cout<<"Enter Operator
;cin>>b
while (b!='f' && b!='l'&& b!='z'&& b!='b'&& b!='c'&& b!='+'&& b!='m'&& {
b!='n'&& b!='-'&& b!='*'&& b!='/'&& b!='o'&& b!='s'&& b!='r'&&b!='q'&&
;('\\'=!b!='p'&& b
;flag=3
}('\\'==if (b
}((if (result!=floor(result
;()error
;flag=2
end if//{
end if//{
/*// ;(while(flag==2{
}(switch (b
:'case 'r
;i=0
;("system("cls
;continue
:'case 'f
;(result= fact(result
;continue
:'case 's
;((result=sin(3.1416/(180/result
;resultint=result*100
;result=resultint*1./100
;continue
:'case 'o
;((result=cos(3.1416/(180/result
;resultint=result*100
;result=resultint*1./100
;continue
:'case 'm
;resultint=result
}(if(resultint%180!=90
;(result=3.1416/(180/result
;(result=tan(result
;resultint=result*100
result=resultint*1./100;}//end if
else
;()error
;continue
:'case 'n
;resultint=result
}(if(resultint%180!=0
;(result=3.1416/(180/result
;((result=1/(tan(result
;resultint=result*100
result=resultint*1./100;}//end if
else
;()error
;continue
:'case 'z
;zakhire=result
;continue
:'case 'b
;result=zakhire
;continue
:'case 'l
(if(result>0
;(result=log10(result
else
;()error
;continue
end switch//{
;if (b=='c') break
/*end for//
;("system("cls
;()help
;cout<<"Last result= "<<result<<" "<<b<<endl
;":cout <<"Enter Number
;[cin>>a[i
}(switch(b
:'+' case
;result+=a[i] ;break
:'-' case
;result -= a[i]; break
:'*' case
;result *= a[i]; break
:'/' case
}(if (a[i]==0
;()error
;break
{
}else
{;result/=a[i]; break
:'case 'p
;result= pow(result,a[i]); break
:'case 'q
;result=pow(result, 1/a[i]); break
:'\\' case
;resultint=result
;[aint=a[i
}(([if (a[i]==floor(a[i
;result = resultint%aint; break
end if//{
}else
;()error
;break
end else//{
end switch//{
end for//{
;return 0
end main//{
}()void help
;"cout<<" In the name of God\n\n
;cout<<"//Created By Sepehr Mohammad\\\\"<<<<endl
;cout<<"// Http://cplusprogram.tk \\\\"<<endl<<endl
;cout<<"HELP:"<<endl
;cout<<"Enter in Operator"<<endl
;cout<<"Close:[c]"<<endl
;cout<<"Reset:[r]"<<endl
;cout<<"Save in Memory:[z]"<<endl
;cout<<"Load from Memory:[b]"<<endl
;cout<<"Plus:[+] ;example(2+3=5)"<<endl
;cout<<"Subtract:[-] ;example(5-3=2)"<<endl
;cout<<"Multiply:[*] ;example(2*3=6)"<<endl
;cout<<"Division:[/] ;example(5/2=2.5 $ 5/0=Undefined)"<<endl
;cout<<"Reminder:[\\] ;example(5\\2=1 $ 5.3\\2.1=Undefined)"<<endl
;cout<<"power:[p] ;example(2 p 3=8)"<<endl
;cout<<"sqrt:[q] ;example(8 s 3=2)"<<endl
;cout<<"factorial:[f] ;example(4f=24)"<<endl
cout<<"Sin:[s] ;example(30s=0.5)"<<endl ;
;cout<<"Cos:[o] ;example(60o=0.5)"<<endl
;cout<<"tan:[m] ;example(45m=1)"<<endl
;cout<<"Cot:[n] ;example(45n=1)"<<endl
;cout<<"log:[l] ;example(10l=1)"<<endl
;cout<<endl
end help//{
int fact (float a ( }
i; nt b=a, result=1
}(++for (int i=2; i<=b; i
;result*=i
end for//{
;return result
end fact//{
}()void error
;("system("cls
cerr<<endl<<"!!; Undefined!!"<<endl<<endl
;("system("pause
end error//{
end//

 

 


۴۶. این برنامه به زبان ++C ابتدا مقادیر دو آرایه ی یک بعدی با ٣ عنصر را از ورودی گرفته و حاصل جمع عناصر آرایه را با استفاده از تابعی در یک آرایه ی دیگر ریخته و در خروجی نمایش میدھد.

<include <iostream.h#
([]void sum(int x[], int y[], int len, int out
}
(++for(int i=0;i<len;i
;[out[i]=x[i]+y[i
{
()void main
}
;[int x[3], y[3], z[3
;cout<<"Enter 6 numbers:"<<endl
(++for(int i=0;i<3;i
;[cin>>x[i
(++for(i=0;i<3;i
;[cin>>y[i
;(sum(x,y,3,z
;"cout<<"\nSum:\n
(++for(i=0;i<3;i
;"cout<<z[i]<<"\t
{
end//

 

 


۴٧. این برنامه به زبان ++C ابتدا مقادیر دو آرایه ی یک بعدی با ٣ عنصر را از ورودی گرفته و حاصل ضرب عناصر آرایه را با استفاده از تابعی در یک آرایه ی دیگر ریخته و در خروجی نمایش میدھد.

<include <iostream.h#
([]void arraymultiply(int x[], int y[], int len, int out
}
(++for(int i=0;i<len;i
;([out[i]=(x[i]*y[i
{
()void main
}
;[int x[3], y[3], z[3
(++for(int i=0;i<3;i
;[cin>>x[i
(++for(i=0;i<3;i
;[cin>>y[i
;(arraymultiply(x,y,3,z
(++for(i=0;i<3;i
;"cout<<z[i]<<"\t
{
end//

 

 


۴٨. برنامه ای به زبان ++C که طول اضلاع صفحه شطرنج و تعداد وزیرھا رو گرفته و سپس به کمک توابع بازگشتی،تمامی حالات قرار گرفتن اونھا رو طوری که یکدیگر رو تھدید نکنند.

<include <conio.h#
<include <iostream#
<include <iomanip#
<include <stdio.h#
<include <stdlib.h#
;using namespace std
;const int m=20
;[int k[m][m
;int Count=0
;int v=0 , n=0 , i=0 , j=0 , state=0
(void remove(int i,int j
}
;int p,q
;k[i][j]=0
;--Count
(++for(p=0;p<n;p
(if(p!=i
;--[k[p][j
(++for(p=0;p<n;p
(if(p!=j
;--[k[i][p
;p=i+1
;q=j+1
(while(p<n && q<n
}
;--[++k[p++][q
{
;p=i-1
;q=j-1
(while(p>=0 && q>=0
}
;--[--k[p--][q
{
;p=i+1
;q=j-1
(while(p<n && q>=0
}
;--[--k[p++][q
{
;p=i-1
;q=j+1
(while(p>=0 && q<n
}
;--[++k[p--][q
{
{
(int apply(int i,int j
}
;int p,q
;k[i][j]=1
;++Count
(++for(p=0;p<n;p
(if(p!=i
;++[k[p][j
(++for(p=0;p<n;p
(if(p!=j
;++[k[i][p
;p=i+1
;q=j+1
(while(p<n && q<n
}
;++[++k[p++][q
{
;p=i-1
;q=j-1
(while(p>=0 && q>=0
}
;++[--k[p--][q
{
;p=i+1
;q=j-1
(while(p<n && q>=0
}
;++[--k[p++][q
{
;p=i-1
;q=j+1
(while(p>=0 && q<n
}
;++[++k[p--][q
{
{
()void draw
}
;("system("cls
(++for(int p=0;p<n;p
}
(++for(int q=0;q<n;q
}
(if(k[p][q]!=1
;'.'>>(cout<<setw(3
else
;'cout<<setw(3)<<'X
{
;cout<<endl<<endl
{
cout<<endl<<endl<<"Total states founded for "<<n<<"*"<<n<<" boards and
;"<<v<<" Queens: "<<state<<endl
{
()void check
}
(if(Count==v
}
;++state
;()draw
;"...cout<<endl<<endl<<"Press q to exit or any key to continue
;()int c=getch
;(if(c=='q')exit(0
{
{
(void move(int p,int q
}
;(apply(p,q
;()check
(++for(int i=p;i<n;i
}
(++for(int j=0;j<n;j
(if(k[i][j]==0
;(move(i,j
{
;(remove(p,q
{
()int main
}
;cout<<"**************Queens******************"<<endl<<endl
;": cout<<"Enter size of board
;cin>>n
;":cout<<"Enter number of queens
;cin>>v
;("system("cls
;()draw
(++for(i=0;i<n;i
(++for(j=0;j<n;j
;(move(i,j
;("system("cls
;cout<<"Total states:"<<state<<endl
 ;()getch
;return 0
{
end//

 

 


۴٩. برنامه ی بدست آوردن تمام زیر مجموعه ھای n عضوی یک مجموعه با استفاده از توابع (به زبان ++C) 

<include<iostream#
<include<conio.h#
<include<time.h#
;using namespace std
;int **m
;long q=0
;long num=0
;long number=0
( long fact( long n
}
;( return ( n > 0 ? n*fact(n-1) : 1
{
( long C( long n , long r
}
;( ((return ( fact(n)/(fact(r)*fact(n-r
{
(bool isPrinted(int *a, long n
}
;bool is=true
(++for(long i=0;i<num;i
}
;is=true
(++for(long j=0;j<n;j
}
([if(a[j]!=m[i][j
}
;is=false
{
{
;if(is)return true
{
;return false
{
(void print(int *a,long n
}
;int swap=0
(++for(long i=0;i<n;i
}
(++for(long j=i;j<n;j
}
([if(a[j]<a[i
}
;[swap=a[i
;[a[i]=a[j
;a[j]=swap
{
{
{
((if(!isPrinted(a,n
}
;++number
;"}.">>cout<<number
(++for(long i=0;i<n;i
}
;[cout<<a[i
;[m[q][i]=a[i
(if(i!=n-1
}
;",">>cout
{
{q
;++
;cout<<"}"<<endl
{
{
(void printAll(int *a,int *b,long n,long k
}
(if(q<num
}
(if(k==1
}
;(print(a,n
{
(if(k==0
}
;(print(a,n
{
(else if(k>0
}
;int *c, *d
;long p=0
(++for(long j=0;j<k;j
}
;p=0
;[c=new int[k-1
(++for(long t=0;t<k;t
}
(if(t!=j
}
;[c[p]=b[t
;++p
{
{
;[d=new int[n
(++for(long i=-1;i<n;i
}
(++for(long t=0;t<n;t
}
;[d[t]=a[t
{
(if(i!=-1
}
;[d[i]=b[j
{
;(printAll(d,c,n,k-1
{
{
;delete c , d
{{
{
()int main
}
;time_t start , end
;long n = 0 , k = 0
;":cout<<"Tedade ozv haye majmue
;cin>>n
;":cout<<"Tedade ozv haye zir majmue
;cin>>k
;cout<<"Ozv haye majmue ra vared konid:"<<endl
;[int *a=new int[n
(++for(long i=0;i<n;i
}
;[cin>>a[i
{
;[int *b=new int[k
;[int *c=new int[n-k
(++for(long i=0;i<n;i
}
(if(i<k
}
;[b[i]=a[i
{
else
}
;[c[n-i-1]=a[i
{
{
;("system("cls
;"}=cout<<"S
( ++for( long i = 0 ; i < n ; i
}
;[cout<<a[i
( if( i != n-1
;",">>cout
{
;cout<<"}"<<endl
;(num=C(n,k
;[(m=new int*[C(n,k
(++for(long i=0;i<C(n,k);i
}
;[m[i]=new int[k
{
;(printAll(b,c,k,n-k
;delete a , b , c
 ;()getch
;return 0
{
end//

 


 ***

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید