上一章 (這是第一章)
我們口中的「寫程式」,到底是甚麼意思呢?
就是把程式碼寫出來
程式碼就像文章一樣 (這裡的例子是英文文章),都是由許多的英文字母、空白和標點符號組成的
每篇文章都有各自想表達的意義,每份程式碼也都有各自想表達的邏輯
作家利用文章來向大眾表達內心的想法,程式設計師則利用程式碼來向電腦表達邏輯
電腦要怎麼知道你想說甚麼?
我們必須學會「英文」這個語言,才能讀懂文章的意思
電腦當然也不例外
電腦必須學會「C++」這個語言,才能讀懂程式碼的意思
要怎麼讓電腦學會「C++」?
我們在學校接受教育,學會閱讀英文文章
電腦則是藉由安裝新功能,學會閱讀C++程式碼
簡單來說就是
開始寫程式之前,你的電腦最好先安裝好特定的軟體
不然你的電腦會看不懂你寫出來的程式碼
這類讓電腦看懂程式碼的軟體稱作「編譯器」
C++的編譯器就是GCC
作家在撰寫文章時需要好寫的筆、好用的橡皮擦、好寫的紙
程式設計師在撰寫程式碼時需要好用的編輯器
甚麼是編輯器?
其實你的電腦裡已經有內建的編輯器了
打開「開始→所有程式→附屬應用程式」,裡面的「記事本」就是一種編輯器 (如下圖)
這是「記事本」,是一種編輯器 |
你也可以用「記事本」來寫程式,不過在寫程式這方面,記事本並不是最方便的編輯器
這裡我推薦用來寫程式的編輯器是Dev-C++
可能很多人會推薦另一款編輯器Code::Blocks
用這個也可以,功能更強大
不過小莫覺得Code::Blocks就是因為功能太多、太複雜
甚至連小莫自己也不是全部的功能都會設定
因此不建議新手使用
而且自動完成太多東西,有時候會讓新手們缺乏練習並養成一些不太好的習慣
所以,用Dev-C++啦~
重要!Dev-C++的已知問題!
2017/3/20更新:經好心同學回報,Dev-C++會有許功蓋問題,因此程式碼中最好不要使用中文字(本教學的程式碼出現中文字是錯誤的示範,都沒有發生問題純粹僥倖),若真要使用中文字,建議先參考維基百科中對於此問題的介紹與解決方法(不過解法好像還滿簡單的XD)
這是「Dev-C++」,是寫程式專用的編輯器之一 |
更棒的是,安裝「Dev-C++」的過程中會順便自動幫你安裝好編譯器 (GCC)!
「Dev-C++」的下載連結在這裡
安裝過程很簡單,一直點「同意」、「下一步」、「安裝」之類的按鈕即可,如果你沒有按到「上一步」,應該就可以安裝成功
安裝程式沒有綑綁軟體,很乾淨,不用擔心安裝到不必要的東西
打開Dev-C++,同時按下鍵盤上的「Ctrl鍵」和「N鍵」,你會在Dev-C++裡面打開一個新的空白頁面
以下給你一張圖片,請你照著打出圖片中的文字:
你可能會發現有些字變成綠色,有些變成粗體,有些變成紅色,有些變成藍色,有些變成紫色
先不用管它
以後在寫程式時,你會發現這些顏色都有其特殊的意義
照著打完了嗎?
按下鍵盤上的「F11鍵」,它會叫你存檔
隨便存在一個你喜歡的地方就好
點選「存檔」
你發現了甚麼呢?
剛剛叫你照著打的文字就是程式碼
現在讓我來解釋這個程式碼的用途吧~
#include<cstdio> int main() { printf("Hello world!\n"); return 0; }
#include<cstdio> :先照抄不用管
int main() :先照抄不用管
{ :先照抄不用管
printf("Hello world!\n"); :「Hello world!」那部分就是在螢幕上顯示「Hello world!」,「\n」是合在一起看的,稱作「換行符號」,類似平常打字會用到的「Enter」(註11),其他的就先照抄不用管
return 0; :先照抄不用管
} :先照抄不用管
好多「先照抄不用管」喔
不是我偷懶啦,是因為就算現在告訴你在幹嘛,現階段也完全不需要去修改這些部分,我們一樣可以玩很多事情
沒錯,我們需要關心的就只有兩個「"」框起來的部分,也就是"Hello world!\n"
現在嘗試亂改這個部分 (但是那兩個「"」一定要留著),然後按下鍵盤上的「F11鍵」查看程式執行結果吧
甚麼情況下電腦會說你寫錯呢?「\」這個符號又有甚麼特殊的功用呢?
在兩個「"」框起來的部分加入「\a」、「\b」、「\c」、「\d」、......,試試看會顯示甚麼東西吧 (有些是沒有作用的)
偷偷告訴你,「\」的後面也可以接特殊符號喔,例如「\"」、「\\」(?)
下一章
感謝:奕均的留言、蘇多門、葛家聿
(版權所有 All copyright reserved)
嗨嗨我是奕均
回覆刪除資奧加油啊~
我才剛把這篇"嘗試亂改"的部分試過一遍而已
不曉得對結果的理解正不正確,先把編譯器有Warning的訊息排除,那從A到Z的話
只有a, b, e, f, r, t, u, x 沒有警告
a 聲音
b 看不出來?
e ←
f ♀
r 看不出來?
t 看不出來?
u 編譯器說錯誤(但不知道是?)
v 這個箭頭繞了一圈耶
x 編譯器說錯誤(但不知道是?)
以上希望你稍微解釋一下(?)
然後上次的bool 我有去試了成功囉~
上次的for (int i = 0; i < n; i++)這樣的寫法我也學會了
更能掌握宣告變數的時機
Debug 也成功啦
謝謝你
然後,我有預感這篇會變垃圾郵件耶~(?)(?)(?)
c = (是垃圾郵件) ? 1:0;
嗨~的確被Google自動標記成垃圾留言了XD 我也不知道為甚麼
刪除感謝你的發問,讓我在測試中發現更多C++的秘密了,甚至還發現我的觀念也有些錯誤XD
正在修改教學內容中,請稍後
會嘗試解答你所有疑問的
最後恭喜你學會bool並debug成功! ^_^
修改完成!
刪除請參考「註11」哦
感謝~~
請問我按了F11
刪除為什麼會出現source file not complied ?
您好,我沒有遇過您說的狀況耶,不好意思><
刪除上網研究了一下,似乎是因為您的Dev-C++不是最新版本
可以考慮先把您的舊版Dev-C++解除安裝,再從這裡下載並安裝最新版的Dev-C++哦~
有任何問題歡迎隨時再發問~~~
請問我按了F11
回覆刪除為什麼會出現source file not complied ?
您好,我沒有遇過您說的狀況耶,不好意思><
刪除上網研究了一下,似乎是因為您的Dev-C++不是最新版本
可以考慮先把您的舊版Dev-C++解除安裝,再從這裡下載並安裝最新版的Dev-C++哦~
有任何問題歡迎隨時再發問~~~
以解決
刪除感激
不客氣~ ^_^
刪除想問一下
回覆刪除用dev開啟一個新專案和開啟新分頁(ctrl+N)有什麼差別呢?
而為什麼code block好像只能開啟專案呢?
只要寫出來的code可以動,應該都沒差吧哈哈
刪除簡單來說,包含很多檔案的大程式用專案比較適合,如果只有一份code,那新分頁就好啦~
另外,code blocks可以開啟新分頁哦~找找看(?)
就是找不太到QQ
刪除每次用code blocks寫,要寫很多個程式時,就要開很多個專案覺得很麻煩而且檔案也多很多
另外再請問一下
code blocks一開始會建立一個資料夾,裡面會有兩個檔案,一個是.cbp一個是.cpp,請問下次再編輯時要開哪一個編輯呢
不知道能否簡單介紹一下如何使用code blocks呢
如果只要寫簡單的程式,何不考慮使用Dev-C++呢?:P
刪除我是資財系的
刪除之後考慮轉資工系
但沒有使用過code blocks
所以想要更了解一些XD
那您可能就要另尋高手囉~
刪除小莫是Dev-C++打遍天下的XDD
喔喔是喔!!
刪除因為聽資工系的朋友都說用code blocks比較好用XD
不好說哦XD
刪除應該說兩者有各自的優缺點,至於是甚麼可能要自己體會才準,每個人的習慣、需求都不同www
另外,Dev-C++建議由本教學提供的連結下載較新版本,直接使用Google搜尋通常會找到超舊超爛的舊版Dev-C++ XDD
想問一下
回覆刪除為什麼常看到有些程式會寫void main
但是實際執行若寫void main卻無法執行呢
先來陳述一下背景XD
刪除「C++」和「Visual C++」是兩種不同的程式語言
原生C++並不支援任何UI的實作,因此微軟自行研發出「Visual C++」這個程式語言,目的是讓開發者可以很方便地使用幾乎和C++一樣的語法來開發Windows的應用程式
回歸正題
「Visual C++」應該用「void main()」
「C++」應該用「int main()」
了解了嗎?^_^
所以意思是如果不是用visual c++打程式的話
刪除都要寫int main()對吧?
是的沒錯!^_^
刪除不好意思想問一下
回覆刪除以前用DEV寫時
下方都會有bug的錯誤顯示
但是不知道為甚麼現在都不見了
不知道是不是我按到還是設定到了甚麼呢?QQ
??
刪除小莫看不太懂您的問題耶
刪除能否將截圖+完整描述傳給我呢?
小莫的email: fsps60312@yahoo.com.tw
已寄信了喔~~
刪除為什麼我無法編譯並執行阿(沒有打錯)
回覆刪除能否將無法編譯並執行的截圖寄到fsps60312@yahoo.com.tw呢?(快速鍵Windows+PrtScn可截圖並存檔在我的圖片/螢幕截圖)
刪除謝謝你們拉
回覆刪除不客氣~ ^_^
刪除不過code風景區只有小莫一個人在管理哦XD
哈囉,之前一直用很破爛的方法解題,偶然發現你的網站決定從頭學起XD
回覆刪除我用的是windiows 10,f11的功能是切換視窗耶!
這樣是不是沒辦法用快捷鍵,只能乖乖去點build and run呢?
想請問能附上F11變成切換視窗的截圖嗎><
刪除小莫剛剛用最新版windows 10測試過了,F11編譯執行應該是沒問題的哦!
只是它會叫你先存檔,隨便存在一個地方就好,因為要先存檔成.cpp,有了那個檔案Dev-C++才能編譯並執行XD
從web開發跑過來學C++,最驚喜的po主還有看留言+更新,讚
回覆刪除會的會的!早晚問題而已,謝謝您的支持!^_^
刪除這裡要印出Hello world是用printf("Hello world\n");
回覆刪除但是我看到有些地方寫的時cout << "Hello world" << endl;
請問這兩個有什麼差別?
兩種寫法都可以!這裡用的是printf,至於cout就暫時不在本教學範圍內啦~
刪除為什麼我按F11會出現〔Error〕expected";"before"F"?
回覆刪除