顯示廣告
隱藏 ✕
看板 Programming
作者 abc1231qa(替咖~拉拉拉~)
標題 [轉錄][轉錄][閒聊] 大一程設期中重點整理
時間 2010年11月12日 Fri. AM 02:38:10


※ 本文轉錄自看板 Test

看板 abc1231qa
作者 abc1231qa (替咖~拉拉拉~)
標題 [閒聊] 大一程設期中重點整理
時間 2010年11月12日 Fri. AM 01:31:28


首先

進考場第一件事 在dev輸入以下程式碼:

#include<iostream>
using namespace std;
int main()
{
    system("pause");
    return 0 ;
}

因為每題都會用到 所以先打好方便複製貼上~


接著是看題目 把題目都看清楚

會的先寫 不一定要照題號寫~~~


以下是一些重點整理


目錄:

1.亂數

2.for迴圈的用法

3.畫圖形

4.基礎function的用法

5.費式數列(recursive)

6.switch-case & enum

7.call by value & call by reference


















1.亂數
	
	
	
	
[↑回目錄]




#include<iostream>
#include<ctime>
using namespace std;
int main()
{
    srand(time(0));//記得include<ctime>
    int x = rand()%5;//x等於除以五的餘數 也就是01234
    cout<<"x = "<<x<<endl;
    system("pause");
    return 0 ;
}




2.for迴圈的用法
	
	
	
[↑回目錄]




#include<iostream>
using namespace std;
int main()
{
    int x = 0;
    int sum = 0;//養成初始化的好習慣,將宣告的變數設為0,避免有奇怪的錯誤
    cout<<"請輸入for迴圈想要跑幾次?";
    cin>> x;
    for(int i =0 ; i<x ;i++) //x輸入幾次迴圈就執行幾次
    {
            sum = sum+i;//例:x=5 0+1+2+3+4 總共5次
    }
    cout<<"sum = "<<sum<<endl;
    //遞減其實也可以用"無敵for迴圈"來完成
    //[註]:無敵for迴圈就是我將 for(int i =0 ; i<x ;i++)用法亂取的名字
   
    for(int i = 0 ; i < sum ; i++)//改變x的地方來改變迴圈跑的次數 寫sum 就是跑"sum的值"次
    {   
        x = x-1;
        cout<<x<<" ";//如果x是5 sum是10 那就是4 3 2 1 0 -1 -2 -3 -4 -5
    }
    cout<<endl; 
    system("pause");
    return 0 ;
}




3.畫圖形
	
	
	
[↑回目錄]




#include<iostream>
#include<ctime>
using namespace std;
int main()
{
    int n = 0;
    cout<<"請輸入邊長 : ";
    cin>>n;
    for(int i =0 ; i<n ;i++)
    {
        for(int j = 0 ; j < n ;j++)
        {
            cout<<"*";
        }
        cout<<"\n";
    }
    cout<<"\n=========================================\n";
    //畫中空:想法是if某些範圍我畫* 剩下我畫空白
    for(int i =0 ; i<n ;i++)
    {
        for(int j = 0 ; j < n ;j++)
        {
            if(i<2||j<2||i>=n-2||j>=n-2)//這裡的2是邊框的厚度
            {
                cout<<"*";
            }
            else
            {
                cout<<" ";
            }
        }
        cout<<"\n";
    }
    cout<<"\n=========================================\n";
    //畫金字塔(底是n顆星星)
    //每行分成三部分 1.空白2.*的左半部3.*的右半部
    for(int i = 0 ; i <(n/2)+1 ; i++) 
    {
        for(int j = 0 ; j<n/2-i;j++)
        {
            cout<<" ";
        }
        for(int j = 0 ; j<i+1;j++)
        {
            cout<<"*";
        }
        for(int j = 0 ; j<i;j++)
        {
            cout<<"*";
        }
        cout<<"\n" ;
    }
    cout<<"\n=========================================\n";
    //畫金字塔(n層)
    //每行分成三部分 1.空白2.*的左半部3.*的右半部
    for(int i = 0 ; i <n; i++) 
    {
        for(int j = 0 ; j<n-i-1;j++)
        {
            cout<<" ";
        }
        for(int j = 0 ; j<i+1;j++)
        {
            cout<<"*";
        }
        for(int j = 0 ; j<i;j++)
        {
            cout<<"*";
        }
        cout<<"\n" ;
    }
    cout<<"\n=========================================\n";
    //畫菱形(直徑是n顆星星=n層)
    //每行分成三部分 1.空白2.*的左半部3.*的右半部
    for(int i = 0 ; i < n ; i++) 
    {
        if(i<=n/2)
        {
            for(int j = 0 ; j<n/2-i;j++)
            {
                cout<<" ";
            }
            for(int j = 0 ; j<i+1;j++)
            {
                cout<<"*";
            }
            for(int j = 0 ; j<i;j++)
            {
                cout<<"*";
            }
        }
        else
        {
            for(int j = 0 ; j<i-n/2;j++)
            {
                cout<<" ";
            }
            for(int j = 0 ; j<n-i;j++)
            {
                cout<<"*";
            }
            for(int j = 0 ; j<n-i-1;j++)
            {
                cout<<"*";
            }
        }
        cout<<"\n" ;
    }
    cout<<"\n=========================================\n";
    //畫空心菱形(直徑是n顆星星=n層)
    //另外一種畫菱形的方法一行分成四部分1.空格2.*3.空格 4.*
    for(int i = 0 ; i < n ; i++) 
    {
        if(i<=n/2)
        {
            for(int j = 0 ; j<n/2-i;j++)
            {
                cout<<" ";
            }
            cout<<"*";
            for(int j = 0 ; j<i*2-1;j++)
            {
                cout<<" ";
            }
            if(i!=0)
            {
                cout<<"*";
            }
        }
        else
        {
            for(int j = 0 ; j<i-n/2;j++)
            {
                cout<<" ";
            }
            cout<<"*";
            for(int j = 0 ; j<(n-i-1)*2-1;j++)
            {
                cout<<" ";
            }
            if(i!=n-1)
            {
                cout<<"*";
            }
        } 
        cout<<"\n" ;
    }


   
    system("pause");
    return 0 ;
}




4.基礎function的用法
	
	
[↑回目錄]




#include<iostream>
#include<ctime>
using namespace std;

void func1()
{
     cout<<"第1種function:什麼都沒有\n";
}

int func2()
{
     cout<<"第2種function:回傳變數型\n";
     int x = 55;
     return x;//其實func1是回傳void void是"無"的意思
}

void func3(int x)//這裡的x跟func2沒關係
{
     cout<<"第3種function:接收變數型\n";
     cout<<"x = "<<x<<endl;
}

int func4(int x)//這裡的x跟func2,func3沒關係
{
     cout<<"第4種function:綜合型\n";
     return ( (x*1100) + (x+1)*11);
}

int main()
{
    func1();
   
    int number = 0;   
    number = func2();//func2用法1 : 將值回傳到變數中
    cout<<"number = "<<number<<endl;
    cout<<"func2() = "<<func2()<<endl;//func2用法2 : 寫在cout裡面
   
    func3(66);
   
    cout<<"func4() = "<<func4(5)<<endl;
   
    system("pause");
    return 0 ;
}




5.費式數列(recursive)
	
	
[↑回目錄]




#include<iostream>
#include<ctime>
using namespace std;

int fib(int n)
{
    if(n==0)
    {
        return 0;//n=0的值看題目而定
    }
    else if(n==1)
    {
         return 1;//n=1也是
    }
    else
    {
        return fib(n-1)+fib(n-2);//recursive : 函數自己呼叫自己 , 不理解就用背的吧
    }
}


int main()
{
    int i =0;
    cout<<"請輸入要找第幾個費式數列 : ";
    cin>>i;
    cout<<"result = "<<fib(i)<<endl;
    system("pause");
    return 0 ;
}




6.switch-case & enum
	
	
[↑回目錄]




#include<iostream>
#include<ctime>
using namespace std;
int main()
{
    int x = -1; 
    enum EType { T1=1,T2,T3};
    /*
    以上這行等同於
    int T1 = 1;
    int T2 = 2;
    int T3 = 3;
    */
    while(x!=0)
    {
        cout<<"請輸入數字(0結束) : \n" ;
        cin >> x;
        switch (x)
        {
          case 0:
          {
            cout << "程式即將結束." << endl;
            break;
          }     
          case T1:
          {
            cout << "A" << endl;
            break;
          }
          case T2:
          {
            cout << "B" << endl;
            break;
          }
          case T3:
          {
            cout << "C" << endl;
            break;
          }
          default:
          {
            cout << "輸入錯誤." << endl;
            break;
          }
        }
    }
    system("pause");
    return 0 ;
}




7.call by value & call by reference[↑回目錄]




請看下面這三篇~

[C++] Call by Value

Call by Address (Call by Pointer)

Call by Reference























--
免責聲明第五條:
  本人在此留言(包括但不限於漢字、注音、拉丁字母、斯拉夫字母,日語假名,
阿拉伯字母,單字、句子、圖片、影像、錄音,以及前述之各種任意組合等等)均為
隨意敲擊鍵盤所出,用於檢驗本人電腦鍵盤輸入、螢幕顯示的性能、光電性能,並不
代表本人局部或全部同意、支持或者反對原po觀點。如需要詳查請直接與鍵盤發明者
及生產外商法人代表連繫。
※ 編輯: abc1231qa  時間: 2010-11-12 02:10:38  來自: 114-44-202-60.dynamic.hinet.net

--
※ 來源: Disp BBS 看板: Programming 文章位址: http://disp.cc/b/33-KhA
※ 作者: abc1231qa  時間: 2010-11-12 02:38:10  來自: 114-44-202-60.dynamic.hinet.net
※ 看板: Programming 文章推薦值: 2 目前人氣: 0 累積人氣: 1673 
分享網址: 複製 已複製
( ̄︶ ̄)b s90153peter 說讚! ( ̄︿ ̄)p abc1231qa 說瞎!
1樓 時間: 2010-11-12 02:38:45 (台灣)
  11-12 02:38 TW
這種東西不知道是不適合這個板 只是都沒水只好灌一下......
2樓 時間: 2010-11-12 02:39:02 (台灣)
  11-12 02:39 TW
3樓 時間: 2011-01-28 11:28:15 (台灣)
  01-28 11:28 TW
請問我用的是Dev-C++4.9.9.2 想借用樓主的成是一用發現錯在namespace..
4樓 時間: 2011-01-28 11:28:58 (台灣)
  01-28 11:28 TW
雖然問了白吃的問題但是也希望能學得到東西..懇請勞煩幫忙..
5樓 時間: 2011-01-28 12:07:52 (台灣)
  01-28 12:07 TW
請問一下錯誤訊是什麼?
6樓 時間: 2011-01-28 18:48:51 (台灣)
  01-28 18:48 TW
我用亂數 第一個 出現說iostream:No such file or directory.
7樓 時間: 2011-01-28 18:52:27 (台灣)
  01-28 18:52 TW
2,ctime: No such file or directory. 3,syntax error before "namespace"
8樓 時間: 2011-01-28 18:53:32 (台灣)
  01-28 18:53 TW
存檔名的方式是 檔名後面".c" 來存檔案
9樓 時間: 2011-01-29 07:08:29 (台灣)
  01-29 07:08 TW
你有意識到這是C++ code 而不是C code嗎...............
10樓 時間: 2011-01-29 07:09:26 (台灣)
  01-29 07:09 TW
要是你沒說你用 .c 來存 我可能要想半天吧.............
11樓 時間: 2011-01-29 07:09:48 (台灣)
  01-29 07:09 TW
請存成.cpp檔
12樓 時間: 2011-01-29 18:01:31 (台灣)
  01-29 18:01 TW
感謝解答,我會去在跑一次
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇