PDA

View Full Version : توضیح دادن کد



adonis27
پنج شنبه 28 آذر 1392, 14:35 عصر
سلام میشه یکی این کد رو واسم شرح بده به صورت کامل


#include <iostream.h>
#include <math.h>
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{

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;

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'){
cout <<"\n\t\t***** www.Takcoder.ir ****** \n";
break;
}
//end for*/


help();
cout<<"Last result= "<<result<<" "<<b<<endl;
cout <<"Enter Number:";
cin>>a[i];//www.takcoder.ir
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<<"\t\t **** IN THE NAME OF GOD **** \n";
cout <<"\t\t***** programer : MOJTABA ERFANI ****** \n";
cout<<"\t\t **** MOJTABA ERFANI *****"<<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){
int b=a, result=1;
for (int i=2; i<=b; i++){
result*=i;
}//end for
return result;
}//end fact
void error()
{
cerr<<endl<<"!!Undefined!!"<<endl<<endl;
}//end error
//end

adonis27
پنج شنبه 28 آذر 1392, 22:14 عصر
هیچکی نمیتونه توضیح بده