2014年11月16日 星期日

(綠色皮) 最新C++程式語言, 施威銘研究室 著, 旗標 第六章 變數 '參考' 答案

==============================================
/* 程式檔名:Test_C6-44-1.cpp */
/* 程式目的:可印出指定行數的"HELLO C++" 訊息*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   
void alle(int x)
{
     for(int i=0;i<x;i++)
     {
      cout << "HELLO C++" << endl;    
     }          
     
}

int main()
{
     int usernumber;
     cout << "請輸入行數: " ;
     cin >> usernumber;
     alle(usernumber);
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-2.cpp */
/* 程式目的:在main()輸入兩個數字從函式比大小 傳回main顯示*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   


float bigger(float x,float y)
{
     if(x>y)
      return x;
     else
      return y;     
}

int main()
{
     float a,b;
     cout << "請輸入第一個數字:";
     cin >> a;
     cout << "請輸入第二個數字:";
     cin >> b;
     cout << "較大的值為:" << bigger(a,b) << endl;
     
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-3.cpp */
/* 程式目的:遞迴函數計算1+2+3+...+100*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   


long double dqa(int x)
{
    if (x==0)
        return 1;
    else
        return x*dqa(x-1);      
}

int main()
{
     cout << "1+2+3+...+100="<< dqa(100) << endl;
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-4.cpp */
/* 程式目的:計算1/1+1/2+1/3+...+1/n*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   


long double dqa(int x)
{
    if (x==0)
        return 1;
    else
        return 1.0/x+dqa(x-1);      
}

int main()
{
     int addnum;
     cout << "請輸入一個整數:";
     cin >> addnum;
     cout << "1/1+1/2+1/3+...+1/n=" << dqa(addnum)-1 << endl;
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-5.cpp */
/* 程式目的:計算1+2+3+...n*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   

long double dqa(int x)
{
    if (x==0)
        return 1;
    else
        return x+dqa(x-1);      
}

int main()
{
     int addnum;
     cout << "請輸入一個整數:";
     cin >> addnum;
     cout << "1+2+3+...n=" << dqa(addnum)-1 << endl;
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-6.cpp */
/* 程式目的:計算1到指定參數n之間所有可以被13整除的數值*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream>
using namespace std;   


int main()
{
     int addnum;
cout << "計算1到指定參數n之間所有可以被13整除的數值\n";
     cout << "請輸入一個整數:";
     cin >> addnum;
     for(int i=1;i<addnum;i++)
{
if(i%13==0)
{
cout << i << " ";
}
 
}
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-7.cpp */
/* 程式目的:模擬 pow 行為的函式已遞迴方式計算任意數的任意數次方*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream>
#include<ctime> 
using namespace std;   

int poww(int x,int y)
{
     static int sum=0;
     if(y==0)
      return 1;
     else
      return (x*poww(x,y-1));
}

int main()
{
     int number,powe;
     cout << "請輸入一個數字:";
     cin >> number;
     cout << "請輸入一個次方:";
     cin >> powe;
     if(number==0 && powe==0)
     {
         cout << "無解\n";     
     }
     else
     {
         clock_t starttime=clock();
         cout << number << " 的 " << powe << " 次方等於:" << poww(number,powe) << endl; 
         clock_t endtime=clock(); 
         cout << (double)(endtime-starttime)/CLK_TCK << " 秒\n";   
     }
     
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-8.cpp */
/* 程式目的:請設計一多載函式*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream> 
using namespace std; 

void volume (char x,char y)
{
     cout << "兩個參數都是字元\n"
          << "第一個字元:" << x
          << "第二個字元:" << y << endl;     
}

void volume (int x,char y)
{
     cout << "兩個參數一個字元一個數字\n";
     for(int i=0;i<x;i++)
     {
      cout << y;        
     }  
     cout << endl;   
}

void volume (int x,int y)
{
     cout << "兩個參數都是數字\n"
          << "兩數相乘:" << x*y << endl;
}

int main()
{
     volume('a','b');
     volume(5,'b');
     volume(5,6);
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-9.cpp */
/* 程式目的:求最大公因數的函式*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream> 
using namespace std; 
void eco(int x,int y)
{
    int a,b,c;
    c=x%y;
    b=y;
    while(c!=0)
    { 
     a=b;
     b=c;
     c=a%b;      
    }
    cout << x << "與" << y <<"的最大公因數:" << b << endl;     
}

int main()
{
     int a,b;
     cout << "求兩數的最大公因數\n";
     cout << "請輸入第一個數字:";
     cin >> a;
     cout << "請輸入第二個數字:";
     cin >> b;
     eco(a,b); 
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-10.cpp */
/* 程式目的:換零錢機器*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */

#include<iostream> 
using namespace std; 

int allmoney(int,int);
void chanmoney(int);

int main()
{
     int money,num,chmoney,chnum;
     int sum,chsum;
     cout << "換零錢機器\n"
          << "只接受100,200,500,1000元\n"
          << "輸入要換的紙鈔 1.100, 2.200, 3.500, 4.1000元\n";
     cin >> money;    
    
     if (money>4 || money<1)
        cout << "輸入紙鈔錯誤\n";       
     else 
     { 
        cout << "輸入張數:\n";
        cin >> num;   
        sum=allmoney(money,num);
        cout << "總金額:" << sum;
        chanmoney(sum);
     } 
     system("PAUSE");
     return 0;    
}

int allmoney(int money,int num)
{
        switch(money)
        {
            case 1:
                   {
                   cout << num << " 張100元";
                   return(num*100);
                   break;
                   }                
            case 2:
                   {
                   cout << num << " 張200元";
                   return(num*200);
                   break;  
                   }
            case 3:
                   {
                   cout << num << " 張500元";
                   return(num*500); 
                   break;
                   }  
            case 4:
                   {
                   cout << num << " 張1000元";
                   return(num*1000); 
                   break;
                   }                    
        }
     
}

void chanmoney(int sum)
{     
    int allchsum,chmoney,chnum;   
    int fiveten=0,ten=0,five=0,one=0;
    cout << "選擇零錢面額(1.一元、2.五元、3.十元、4.五十元):\n";
    cin >> chmoney;
    if (chmoney>4 || chmoney<1)
        cout << "輸入零錢面額錯誤\n";       
    else 
    {                
        cout << "輸入個數:\n";
        cin >> chnum; 
        switch(chmoney)
        {
                case 1:
                       {
                       one=chnum;             
                       break;
                       }
                case 2:
                       {
                       five=chnum*5;             
                       break;
                       }    
                case 3:
                       {
                       ten=chnum*10;               
                       break;
                       }        
                case 4:
                       {
                       fiveten=chnum*50;              
                       break;                          
                       } 
        }
        if(one>sum || five>sum || ten>sum || fiveten>sum)
            cout << "超過投入金額\n";
        else 
        {
            switch(chmoney)
            {
                case 1:
                       {
                       cout << "兌換 " << chnum << "個1元\n";
                       allchsum=chnum;             
                       break;
                       }
                case 2:
                       {
                       cout << "兌換 " << chnum << "個5元\n";
                       allchsum=chnum*5;               
                       break;
                       }
                case 3:
                       {
                       cout << "兌換 " << chnum << "個10元\n";
                       allchsum=chnum*10;               
                       break;
                       }
                case 4:
                       {
                       cout << "兌換 " << chnum << "個50元\n";
                       allchsum=chnum*50;               
                       break; 
                       }                          
            }
            sum=sum-allchsum;
            cout << "剩下金額 "<< sum << "找出零錢\n";
            fiveten=(sum-sum%50);
            ten=((sum-fiveten)-(sum-fiveten)%10);
            five=((sum-fiveten-ten)-(sum-ten)%5);
            one=((sum-ten)%5);
            cout << "五十元:" << fiveten/50;
            cout << "十元:" << ten/10;
            cout << "五元:" << five/5;
            cout << "一元:" << one; 
            cout << endl;
        }
    }                

}

==============================================

2014年11月4日 星期二

(綠色皮) 最新C++程式語言, 施威銘研究室 著, 旗標 第五章 變數 '參考' 答案

==============================================
/* 程式檔名:Test_C5-55-1.cpp */
/* 程式目的:使用if比較運算式,判斷使用者輸入的數值為奇數或偶數*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int usernumber;
     cout << "請輸入一個數字: " ;
     cin >> usernumber;
     if (usernumber%2==0)
     {
       cout << "您輸入的偶數 \n";                  
     }
     else
     {
       cout << "您輸入的奇數 \n";        
     }
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-2.cpp */
/* 程式目的:寫一個程式,輸入學生的成績,判斷成績範圍*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int usernumber;

     cout << "請輸入一個數字: " ;
     cin >> usernumber;
     if (usernumber >=90 && usernumber <= 100)
     {
       cout << "級分為A \n";                  
     }
     else if (usernumber >=80 && usernumber <= 89) 
     {
       cout << "級分為B \n";                  
     }
     else if (usernumber >=70 && usernumber <= 79) 
     {
       cout << "級分為C \n";                  
     }
     else if (usernumber >=60 && usernumber <= 69) 
     {
       cout << "級分為D \n";                  
     }
     else if (usernumber >=0 && usernumber < 60) 
     {
       cout << "級分為E \n";                  
     }
     else
     {
       cout << "輸入錯誤 \n";        
     }
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-3.cpp */
/* 程式目的:寫一個程式,輸入學生的成績,判斷成績範圍*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int Area;
     float ground,high;
     float length,Width;
     float upground,downground,tall;

     cout << "計算三角形或矩形面積\n" ;
     cout << "1.三角形 2.矩形面積 3.梯形\n" ;
     cin >> Area;
     if (Area==1)
     {
       cout << "計算三角形面積 \n";          
       cout << "請輸入底: \n"; 
       cin >> ground;   
       cout << "請輸入高: \n"; 
       cin >> high;
       cout << "三角形面積為: " << ground*high/2.0 <<endl;               
     }
     else if(Area==2)
     {
       cout << "計算矩形面積 \n";          
       cout << "請輸入長: \n"; 
       cin >> length;   
       cout << "請輸入寬: \n"; 
       cin >> Width;
       cout << "矩形面積為: " << length*Width <<endl;   
     }
     else if(Area==3)
     {
       cout << "計算梯形面積 \n";          
       cout << "請輸入上底: \n"; 
       cin >> upground;   
       cout << "請輸入下底: \n"; 
       cin >> downground;
       cout << "請輸入高: \n"; 
       cin >> tall;
       cout << "矩形面積為: " << (upground+downground)*tall/2.0 <<endl;      
     }
     else
     {
       cout << "輸入錯誤\n";  
     }

     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-4.cpp */
/* 程式目的:使用者輸入通話分鐘,程式即輸出其費用*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int usertime;
     cout << "請輸入通話分鐘\n" ;
     cin >> usertime;
     if (usertime > 1500)
     {
       cout << "電話費: " << usertime*0.9*0.8 << endl;               
     }
     else if(usertime >= 800 && usertime <= 1500)
     {
       cout << "電話費: " << usertime*0.9*0.9 << endl; 
     }
     else if(usertime < 800)
     {
       cout << "電話費: " << usertime*0.9 << endl;       
     }
     else
     {
       cout << "輸入錯誤\n";  
     }

     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-5.cpp */
/* 程式目的:使用者輸入性別及身高,即輸出其標準體重*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     char user;
     float tall;

     cout << "請輸入性別(男生.M 女生.F)\n" ;
     cin >> user;
     if (user == 'M' || user == 'm')
     {
       cout << "請輸入身高\n" ;
       cin >> tall;
       cout << "標準體重: " << (tall-80)*0.7 << endl;               
     }
     else if(user == 'F' || user == 'f')
     {
       cout << "請輸入身高\n" ;
       cin >> tall; 
       cout << "標準體重: " << (tall-70)*0.6 << endl; 
     }
     else
     {
       cout << "輸入錯誤\n";  
     }

     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-6.cpp */
/* 程式目的:計算1到指定數值可被3整除的數值之總和。並加上可讓使用者決定是否在算一次的功能*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     char again;
     int number,i,sum;
     cout << "計算1到指定數值間可被3整除的數值之總和\n" ;
     do
     {
         sum=0; 

         cout << "請輸入一個數字: " ; 
         cin >> number;
         for(i=1;i<=number;i++)
         {
          if(i%3==0)
          {
           sum=sum+i;          
          }                 
         }
         cout << "可被3整除的總和為:" << sum << endl;
         cout << "是否在輸入計算一次( Y 繼續/ N 結束)\n" ;
         cin >> again;
     }while(again!='N' && again!='n');

     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-7.cpp */
/* 程式目的:使用者輸入一整數,即以 * 會出指定高度的等腰三角形*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int number;
     int i,j,k;

     cout << "請輸入一個數字: " ; 
     cin >> number;
     if(number==0)
     {
         cout << "輸入錯誤\n" ;              
     }
     else
     {
         number=number*2-1;
         for(i=0;i<=number/2;i++)
         {
          for(j=number/2;j>i;j--)
          {
            cout << " " ;                      
          }  
          for(k=0;k<=2*i;k++)
          {
            cout << "*" ;                      
          }
          cout << "\n" ;               
         }   
     }
     

     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-8.cpp */
/* 程式目的:使用者輸入一整數,即以 * 會出指定高度的菱形*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int number;
     int i,j,k;
     do
     {

         cout << "請輸入一個奇數: " ; 
         cin >> number;
     }while(number%2==0);
     if(number==0)
     {
         cout << "輸入錯誤\n" ;              
     }
     else
     {
         for(i=0;i<=number/2;i++)
         {
          for(j=number/2;j>i;j--)
          {
            cout << " " ;                      
          }  
          for(k=0;k<=2*i;k++)
          {
            cout << "*" ;                      
          }
          cout << "\n" ;               
         }
         for(i=1;i<=number-1/2;i++)
         {
          for(j=0;j<i;j++)
          {
            cout << " ";                      
          }  
          for(k=number;k>2*i;k--)
          {
            cout << "*" ;                      
          }
          cout << "\n" ;               
         }
         
           
     }
     

     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-9.cpp */
/* 程式目的:驗證使用者輸入兩次密碼是否吻合(四位整數)*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int password1,password2;
     while(password1!=password2)
     {

         cout << "請輸入第一次密碼: " ; 
         cin >> password1;
         cout << "請輸入第二次密碼: " ; 
         cin >> password2;
         if(password1==password2)
         {
          cout << "密碼正確\n" ;                       
         }
         else
         {
          cout << "兩次密碼錯誤重新輸入\n" ;
         }
     }
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C5-55-10.cpp */
/* 程式目的:輸入四個數字(1~9),並檢查是否與程式中預設的四個數字全部符合*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141104 */
   
#include<iostream>
using namespace std;   
int main()
{
     int number=1234;
     int user;
     while(user!=number)
     {
         cin.clear();
         cout << "請輸入四個數字: " ; 
         cin >> user;
         if(user==number)
         {
          cout << "您中獎了\n" ;                       
         }
         else
         {
          cout << "謝謝光臨\n" ;
         }
     }
     system("PAUSE");
     return 0;    

}

==============================================