昨天還在想著膽識和承擔 , 放了幾天假的我今天回來上班就看到有人上位了
呵呵!有個桌椅來辦公是很好 , 但可要有肩膀喔
就一定要坐到我看到才離開 , 宣告的意義比較大些 , 畢竟你不是坐在這邊工作的
呵!我都退休這麼久了 , 才沒閒功夫管你年輕人坐在哪
昨天還在想著膽識和承擔 , 放了幾天假的我今天回來上班就看到有人上位了
呵呵!有個桌椅來辦公是很好 , 但可要有肩膀喔
就一定要坐到我看到才離開 , 宣告的意義比較大些 , 畢竟你不是坐在這邊工作的
呵!我都退休這麼久了 , 才沒閒功夫管你年輕人坐在哪
有在操作股票的朋友小心一下 , 外資在近20天裡買超大概500億 , 而賣超大概1600億
換句話說就是20天大概賣超了1100億
以上統計的數據僅供參考 , 不是提供買賣依據 , 所有的買賣依自己的規劃進行
【不是惡夢的開始,而是再度的精進。 C++ 回傳指標】
在呼叫函數時,引數有傳值、傳址、傳參考等方式。而函數回傳時也有回傳值、回傳指標等方式,回傳值得方式我們就不多說了(程式入口 int main()就是回傳整數值給作業系統),我們直接來看看回傳指標。
#include <iostream>
using namespace std;
【不是惡夢的開始,而是再度的精進。陣列名稱可以視為一個位址】
陣列名稱可以視為一個位址,因此當我們要將陣列傳給函數的時候,或許會選擇使用指標的方式傳給函數,以避免陣列的內容必須一個一個複製,尤其複製大陣列是非常沒有效率的。
例:
【不是惡夢的開始,而是再度的精進。 傳值、傳址、傳參考】
在傳遞引數給函數時,有著很繞口的傳值、傳址、傳參考,也因為繞口,就變得很容易混淆觀念,因此就用同一個例子來看看傳值、傳址、傳參考到底有多少差別。
就先來看看傳值的方式:
【不是惡夢的開始,而是再度的精進。 自訂函數】
我們在程式中需要重複執行某一組指令功能時,迴圈就是最好的選擇。那麼將這一組能完成特定工作的指令,模組化成一個完整的函數,便可以隨時呼叫引用,這就是自訂函數了。
在這之前,其實我們不知不覺中已經使用過無數次的函數了,那就是主程式的入口
【不是惡夢的開始,而是再度的精進。】
對於字串的處理除了使用字元陣列,還有另一種較好的方法,就是使用 string 物件。
標頭檔string定義了string型態,string型態是由類別(class)定義。基本上類別只是引入一種新型態而已,實際上使用類別定義的型態和基本資料型態的使用並無差異。類別型態的實體通常稱為物件(object)而不是變數,雖然string不是基本的資料型態,但它是ANSI標準的一部份,所以你可以將它視為你可用的另一種資料型態,而且string物件的處理方式和基本資料型態變數的處理方式完全相同。
【不是惡夢的開始,而是再度的精進。】
我們已經學會了如何宣告並初值化基本型態的變數,每個變數可以儲存特定型態的單一資料項,
就是我們可以儲存整數、浮點數的變數,或是儲存字元的變數,而陣列則可以儲存相同型態的數個資料項,可以是整數陣列、浮點數陣列或是字元陣列。
【不是惡夢的開始,而是再度的精進。 while迴圈 do-while迴圈】
程式中需要重複執行某一組指令功能時,迴圈就是最好的選擇。
我們可以根據程式的需求與習慣,選擇 for、while 及 do-while 迴圈,一般來說,while 迴圈和 do-while 迴圈則是對於無法事先知道迴圈要執行多少次才夠時。
【不是惡夢的開始,而是再度的精進。 for迴圈】
程式中需要重複執行某一組指令功能時,迴圈就是最好的選擇。
我們可以根據程式的需求與習慣,選擇 for、while 及 do-while 迴圈,一般來說,for 迴圈用在已知要重複執行幾次時。
【不是惡夢的開始,而是再度的精進。】
當面臨多重選擇時,我們不必再巢狀的 if else-if else-if 不斷的判斷,避免掉 if 和 else-if 配對混淆造成的閱讀困難及執行上的錯誤,改而使用 switch-case 敘述則簡約明暸,其格式如下:
switch(運算式)
{
case 選擇值1:
【不是惡夢的開始,而是再度的精進。】
在程式設計中,作決策是很基本的,就像是十字路口般,根據不同的選擇,程式的執行會有不同的方向與結果。當我們想要根據判斷條件的結果來執行不同的敘述時,if判斷式會是一個很實用的選擇,它會忠實的測試判斷條件的值,再決定是否執行後面的敘述,if判斷式的格式如下:
if(判斷條件)
【不是惡夢的開始,而是再度的精進。】
在程式中總免不了需要做各種的判斷,因此關係運算與條件運算是很重要的支柱之一,在進入主題之前先看一下一些有用的測試字元的函數集。
在程式中引入標頭檔 cctype,就可以使用測試字元很有用的函數集,對於每個函數,都要傳給函數 int 型態的變數或文字,若你傳遞 char 型態,則它會自動轉成 int。
因ASCII碼只能用以表示大小寫英文字母、阿拉伯數字及特殊符號,無法表示繁體中文字,因此,國人針對繁體中文設計了許多不同的編碼系統,如BIG-5(又稱大五碼)。
不巧的是,BIG-5碼卻把C語言的控制碼也編入到繁體中文來,就這樣,亂碼就產生了。
還好Dev_C++的編譯整合環境提供了一個簡易的解決方案。
C++是強制型態的語言,就是程式中的每個項目都需要用型態來定義它是甚麼,C++編譯器會做廣泛的檢查,然而我是早期學過BASIC,而且還是直譯式那種的BASIC,所有的變數根本就不需要先定義變數的資料型態,想要甚麼變數就直接命名使用,丟數字給他..OK,丟文字給他...也OK,電腦真的好聰明,好不快活。
一開始學C++的時候真是痛苦極了,這個也編譯錯誤,那個也編譯不過,所以下課回家時都又重回BASIC的懷抱,唉....都已經不是學生了,還這樣。(當時是晚上自行到電腦補習班的課啊)。
還記得在 Graph 繪製圖形 這一篇裡,為了畫一個圓而第一次接觸到了畫圓弧的函式,
Arc(HDC hdc, int nLeftRect, int nTopRect, int RightRect, int nBottomRect,
int nXStartArc, int nYStartArc, int nXEndArc, nYEndArc),
雖然只要把nXEndArc﹦nXStartArc,nYEndArc﹦nYStartArc就可以得到我想要的圓,但要怎樣使用nXEndArc、nXStartArc、nYEndArc、﹦nYStartArc來控制圓弧的位置,卻一直摸索不出來。
我們都知道在 console 版的 c++ 中,我們要將文字顯示在螢幕上
可以使用 cout << 將文字顯示在螢幕上,而進到視窗版的 c++ 又要如何處理呢?
今天就來聊聊兩個函式 DrawText() 和 TextOut()
int DrawText(
談到畫線,還有一個相關的函數
CreatePen( int iStyle, int cWidth, COLORREF color),今天就來瞧瞧這個函數。
第一個參數 int iStyle,他有幾種選項
可能狀況一:
如果編譯一個 C/C++原始檔,沒有主函數要執行,[即沒有int WINAPI WinMain ()的時候]。
意思就是,或許你將一些某功能的函數編寫在另一個原始檔上,但在主檔上還沒呼叫到你寫的某些功能函數時,就會產生這個錯誤代碼。
在踏出不知天高地厚的第一步之前的動作,我該怎麼稱呼他呢?
嗯....就叫做「無頭蒼蠅的原地踏步吧」。
一開始我也是無意中在網路上看到介紹視窗程式,想想我也好久好久
沒在寫程式了,反正硬碟內現有的Dev C++放著也是放著,就再拿出來
把玩把玩吧。
既然稱作自習筆記,這就代表著並沒有走上正統的學習管道,
所以「服用者」請自行衡量甚麼是該接受的觀念,又什甚麼
是不該接受的錯誤觀念。當然啦,如果有路過的高手看到我有錯誤
的觀念,也請出手點化一下(如果能留下完整的程式碼與解說就更美妙了),
親愛的可愛的小吉他,想想也大概快十年了吧,我仍記得答應過你
要買張CD來聽聽,今天我做到了。
以你現在的成績,還會不會有當年的壓力?
或許在你們那個高張力的生態圈裡,壓力永遠都存在吧!