發表文章

C++ 入門教學 : 目錄

圖片
C++ 入門教學  : 目錄 (回 CPP Road ) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 歡迎使用本頻道學習 C++ 。本頻道沒有教程式基礎概論之類的基礎理論(因為這部份學校的老師可以教得比較詳細)。只有教你寫程式必須了解的 觀念 、 語法 及 邏輯 。尤其是書上沒有寫,學校老師因為課堂時間的限制而沒有辦法詳細講解的各種 邏輯變化及 邏輯 演進的過程 ,可以幫你打下成為程式設計師的深厚基礎。課程的進度經過精心設計,每個影片(範例)都有初學者務必學會的觀念。就算不是初學者,相信也可以學到一些以前不知道的東西。 Java 語法的寫法與 C++ 在入門部份的差異性並不大,若已經看過 Java Road 頻道 Java 入門篇 的同學可以直接進入 C++ 進階篇,安裝 Eclips 及學會基本專案管理,再回來看輸入輸出後,即可回進階篇專研進階的內容。若你的電腦不適合安裝 Eclips, 可以在這邊安裝完 Dev C++ 學會專案管理及輸入輸出後,進入 C++ 進階篇,用 Dev C++ 做進階篇的範例。 許老師的回答: 什麼是APCS ? 想用申請入學進入大學資訊相關科系是不是一定要考 APCS ? 第一次學程式設計,學什麼語言比較好? 用APCS成績申請大學的技巧 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 下載及安裝開發環境 開發新專案 管理專案並開發 HelloWorld 專案 Value 1 - Literal Value (字面值) Value 2 - Variable (變數) 輸入與輸出 Value 3 - 運算式 - 1 (算術運算符號) Value 3 - 運算式 - 2 (遞增與遞減運算符號) Value 3 - 運算式 - 3 (指派運算符號) Value 3 - 運算式 - 4 (關係運算符號) Value 3 - 運算式 - 5 (條件運算符號) Value 4 - 函式呼叫 自動轉型(Implicit conversions)與指定轉型(Casting) Statement 1 Expression(運算式), Declaration(宣告) Statement 2 if Sta

程式初學者 - 你是要學程式語言還是程式設計

圖片
    許老師給程式設計初學者的建議   常常有同學問我:「老師,我想要學程式,你建議先學什麼語言?」。其實,大部份想跨足程式設計領域的初學者,都不清楚 學程式設計 與 學程式語言 是兩回事。     學程式就像學開車一樣。假設你的教練車是一台超級跑車,你是要 利用這一台車學會開任何車都有用到的基本技術 還是要學 如何開這一台跑車 。目標是學開車基本技術的人,學習的重點就是如何轉彎、停車等 各種開車的基本技術 。目標是學開這一台跑車的人,學習重點是換檔時機、加速方式、高速過彎等各種讓這一台車的 性能發揮到極致的理論 。   所以,你要先確認自己現在是要學任何語言都要用到的 程式設計的基本觀念與技巧 ,或是要學某一種 程式語言的細節 。如果你現在是要學程式設計的基本觀念與技巧,那麼用什麼語言就不是重點。就像上一段講的學開車,如果只是要學基本開車技術,用什麼車當教練車,其實都可以。    但是,我還是必須建議同學,不要用  Python 或 Java Script 等容易上手的語言學程式設計的基本觀念與技巧。因為那就像用自駕車學開車一樣,有很多基本的觀念及技巧學不到,這輩子就只能開自駕車,要開其它車,還是得從頭學起。Java Script 是語法格式上比較寬鬆的語言,也就是說你不按照語法寫也會對,容易養成不好的撰寫習慣。Python 是比較高階的語言,把一些語言中常用的基本動作省略掉,相對的那些基本觀念就學不到。   基本上建議用 Java 或 C/C++ 這種比較傳統的語言入門,能夠學到比較完整的基本觀念。不過一定要記得, 不是去專研語言的細節 ,只是 借用這語言來學程式設計的基本觀念與技巧 。等你程式設計的基本觀念與技巧學完了、練熟了,再回頭去研究語言的細節。例如 C / C++  的 指標、參考、物件導向 或是 Java 的 物件導向與 API 的應用 。若是你 Java 或 C / C++ 會了,再去學Python 或 Java Script 或是 C# 等其他語言,基本上就像己經會開車的人上了自駕車一樣,很快就會了。    講了半天,那到底什麼是程式設計的基本觀念與技巧呢?   程式的開發是針對要解決的問題,用程式語言依照正確的邏輯撰寫程式碼。真正重要的是 程式設計的能力 ,也就是 思考問題的解決方案,並把思考邏輯轉換為程式邏輯的能力 。最後才是 用程式語言把

申請入學—大學資訊相關科系

圖片
 許老師給想進入大學資訊相關科系高中生的建議   APCS 為 Advanced Placement Computer Science 的英文縮寫,是指「大學程式設計先修檢測」,檢驗具備程式設計能力之高中職學生的學習成果,提供大學作為選才的參考依據。並藉由本檢測之推動,除了讓高中職重視資訊科學課程的學習外,亦讓大學酌訂抵免程式設計學分的相關措施。   透過參與 APCS 測驗,替有程式設計能力的人才,提供了另一個申請大學資訊相關科系的選項。從 111 學年度開始,大學入學管道有三個: 個人申請入學 、繁星推薦與分發入學(分科測驗)。在個人申請的部份,每位同學可以依照自己的學測成績與興趣選擇多個大學校系申請入學。而各大學的申請入學分成 一般校系 與  APCS 校系 兩種。APCS 校系除了有一般科目的標準,也會有 APCS 測驗成績的標準。 以 110學年度成功大學 (目前對APCS要求最高)為例 APCS 校系的資訊工程學系的科目要求是: 英文->均標;數學->前標;APCS 觀念題 5 級分;APCS 實作題 4 級分。 招生名額 2 人。 一般校系的資訊工程學系的科目要求是: 國文->均標;英文->均標;數學->前標;自然->前標;招生名額 56 人。   很多同學誤以為 APCS 測驗成績只能用在申請 APCS 校系,其實不儘然。若 APCS 測驗成績符合要申請學校的 APCS 校系標準,申請 APCS 校系當然是合理的。但若你一般科目的成績有符合要申請學校的一般校系,無論你 APCS 的成績是否符合該校系的 APCS 標準,你都可以申請一般校系(名額較多)並把  APCS 的成績作為申請一般校系 的 "課程學習成果"與 "多元表現"的採參資料 。相對於其他沒有參加 APCS 測驗的同學,你的上榜機會自然大大提升。   同理,若你 報名的科系與程式設計有搭上邊 的如電機、電子等,你有 APCS 的成績與其他沒有 APCS 成績的同學比較起來,自然也是大佔上風。   決定要考 APCS 了嗎?相信你有注意到,一般科目並不能放掉。大部份大學的招生標準除了 APCS 成績要達標之外,也會有其他科目的要求。   也就是說,身為高中生,在本身的課業就己經很繁重的狀況下,你還要另外擠時間出來練習程式設計。所

C++ 教學 入門 : Statement 10 break and continue

圖片
C++ 教學 入門 : Statement 10 break and continue 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 基本及進階用法 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 基本用法: break 離開switch 離開迴圈  continue 離開迴圈 這一輪 的執行,進入迴圈的 下一輪 。 進階用法: 利用旗標離開巢狀迴圈。 作者 : 許裕永

C++ 教學 入門 : Statement 9 do while

圖片
C++ 教學 入門 : Statement 9 do while 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 基本語法與使用時機 影片2 do while 與 while 的使用區別與注意事項 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 do while 單一敍述: do  statement; while(boolValue); 區塊敍述: do{  statements }while(boolValue); 說明: 之前的 while 與 for 是先檢查條件,條件成立後才執行。do while 是先執行 statement(s) ,執行完才檢查條件,若條件成立,再執行一次 statement(s),持續到條件不成立為止。也就是說, do while 的條件檢查的是下一次是否執行 , 而不是這一次是否執行 ,因為這一次己經執行完了。 在正常情況下,三種迴圈的執行次數是一樣的。 只有在條件一開始就不成立的情況下,do while 才會多執行一次 。 do while 可以說是 至少執行一次 的迴圈 使用時機: 迴圈中的敍述或敍述群至少要執行一次時。 作者 : 許裕永

C++ 教學 入門 : Statement 8 for

圖片
C++ 教學 入門 : Statement 8 for 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 基本語法說明 影片2 從 1 列印到 100 與 計算從 1 到 100 的總和 影片3 接受輸入起始值與結束值總和計算 影片4 雙迴圈之九九乘法表 影片5 雙迴圈之三角形數字排列 影片6 列印2到100間的所有質數 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 for Single statement    for (A; B; C)     statement;  Block statement    for (A; B; C) {     statements   }  說明: 小括號中用兩個 分號 隔成三個區段,區段中可以不寫程式碼,但是 分號不可以省略 。 區段 A 只在迴圈啟動時執行一次 Declaration statement with initialize 宣告變數並初始化。 Assignment expression 指派值給己經宣告過的變數 無論宣告或指派,都可以用‘,’隔開寫一個以上。但必須都是宣告或都是指派,不可以宣告和指派混用。  區段B 一個會產 bool value 的運算式,運算式的值為 true 時執行敍述區,運算式的值為 false 時迴圈中止。不能用‘,’隔開寫一個以上的運算。 若沒有寫運算式,預設為 true 。 區段C 只要是非宣告敍述都可以放置在這個區段。但一般會放置 計數器的增減運算 ,可以用‘,’隔開寫一個以上。  執行順序 A -> B -> statement -> C -> B -> statement -> C -> B -> End。其中, A 只在啟動時執行一次,接下來就是 B -> statement -> C 在重複執行,直到條件不成立時結束。  使用時機: 若要 重複執行的敍述中需要一個(或多個)持續遞增或遞減的數字 時,便可以用該數值做為控制 for 執行的計數器。一般用來存取集合物件(陣列,串列…)。 作者 : 許裕永

C++ 教學 入門 : Statement 7 while

圖片
C++ 入門 教學 :Statement 7 while 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 輸入指定值結束程式1 影片2 輸入指定值結束程式2 影片3 輸入指定值結束或繼續程式與計數器使用 影片4 輸入選單值指定程式功能與建立旗標 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 while Single statement while(boolValue)    statement;  Block statement while(boolValue) {   statements } 說明: 條件成立時執行,條件不成立時停止。 敍述群中可以有計數器,但 不應該用計數器的值做為是否執行的條件 。 作者 : 許裕永

C++ 教學 入門 : Statement 5 if 邏輯轉換的陷阱

圖片
C++ 教學 入門 : statement 5 if 邏輯轉換的陷阱 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 if中的if 影片2 else中的if 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 if 中的 if 是不是 and 的關係 ? else 中的 if 是不是 else if ? 作者:許裕永

C++ 教學 入門 : Statement 6 switch

圖片
C++ 教學 入門 : Statement 6 switch 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 基本語法說明1 影片2 基本語法說明2 影片3 使用時機說明 影片4 列印指定月份的天數 影片5 分數等級評定 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 Syntax: switch(variable) {   case constantValue:     statement;     break;   case constantValue:     statement;     break;   .   .   .   default: statement;  } 說明: variable variable 的型別可以是 short, int, long, char。 constantValue  只可以放編譯時期就確定的值。   值的大小不可以超過 variable 型別的範圍。   值不可以重複。  值的位置不必依大小排列。  break 用來離開 switch 。case 成立後會執行該 case 中的敍述群,若該 case 的敍述群中沒有 break 敍述,就會逕行執行下一個 case 的敍述群 (不檢查),直到 break 敍述出現。若 break 敍述一直沒有出現,會一路執行到 switch 的結尾。 default 所有 case 都不成立時執行。若不寫 default ,就表示若所有 case 都不成立時,不執行任何動作。 不可以宣告重複的變數 case中不可以宣告switch中己宣告過的變數,除非是宣告在區塊敍述內。 作者 : 許裕永

C++ 教學 入門 : Statement 4 if else if

圖片
C++ 教學 入門 : Statement 4 if else if 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 奇數偶數零 影片2 分數等級評定 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 Syntax: if(boolValue)   statement; else if(boolValue)   statement; else   statement;   或 if(boolValue){   statements }else if(boolValue){   statements }else{   statements } 作者 : 許裕永

C++ 教學 入門 : Statement 3 if else

圖片
C++ 教學 入門 : Statement 3 if else 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 基本語法介紹 影片2 邏輯變化 影片3 取得最大值 影片4 奇數偶數零 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 Syntax: if(boolValue)   statement; else   statement;   或 if(boolValue){   statements }else{   statements } 作者 : 許裕永

C++ 教學 入門 : Statement 1 Expression(運算式), Declaration(宣告)

圖片
C++ 教學 入門 : Statement 1 Expression(運算式), Declaration(宣告) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 Expression statements Assignment expressions a = 10; Any use of ++ or -- a++; --b; Method invocations exit(0); Declaration statement int a = 10; int b; 作者 : 許裕永

C++ 教學 入門 : Statement 2 if

圖片
C++ 教學 入門 : Statement 2 if 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 基本語法樣式 影片2 顯示較大值 影片3 取得最大值 影片4 運算那一個值最大 影片5 奇數,偶數,零 影片6 帳號密碼1 影片7 帳號密碼2 影片8 閏年檢測 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 Syntax: if(boolValue)   statement;   或 if(boolValue){   statements } 作者 : 許裕永

: Value 5 自動轉型(Implicit conversions)與指定轉型(Casting)

圖片
C++ 教學 入門 : Value 5 自動轉型(Implicit conversions)與指定轉型(Casting) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 自動轉型(Implicit conversions) 指派 右值轉換為左值 其他二元運算式 小轉大 指定轉型(Casting) (type)variable (type)(expression) 作者 : 許裕永

C++ 教學 入門 : Value 4 - 函式呼叫

圖片
C++ 教學 入門 : Value 4 - 函式呼叫 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 include 標頭檔 呼叫函式 作者 : 許裕永

C++ 教學 入門 : Value 3 - 運算式 - 5 (條件運算符號)

圖片
C++ 教學 入門 : Value 3 - 運算式 - 5 (條件運算符號) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 短程與長程的 and (且) 影片2 短程與長程的 or(或) , not (!),三元條件運算符號 ternary (?:) 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 運算的對象為布林值, 運算的結果也是布林值 && (And short circuit / 且 短程 ) 左值不成立,右值不運算 || (Or short circuit / 或 短程) 左值成立,右值不運算 ! (Not) 不是用在字面值或運算式的前面, 是用在變數或函式呼叫前面 ?:(Ternary 三元條件運算符號) 作者 : 許裕永

C++ 教學 入門 : Value 3 - 運算式 - 4 (關係運算符號)

圖片
C++ 教學 入門 : Value 3 - 運算式 - 4 (關係運算符號) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 運算的對象是數值,運算的結果是布林值(bool)。 > >= < <= == != 作者 : 許裕永

C++ 教學 入門 : Value 3 - 運算式 - 3 (指派運算符號)

圖片
C++ 教學 入門 : Value 3 - 運算式 - 3 (指派運算符號) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 指派 = 將右值指派給左值 運算後指派 += -= *= /= %= 將左值與右值運算後的結果指派給左值 作者 : 許裕永

C++ 教學 入門 : Value 3 - 運算式 - 2 (遞增與遞減運算符號)

圖片
C++ 教學 入門 : Value 3 - 運算式 - 2 (遞增與遞減運算符號) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 ++ 單一敍述 變數值增量。 複合敍述 ++在前面增量先運算,++在後面增量後運算。 -- 單一敍述 變數值減量。 複合敍述 --在前面減量先運算,--在後面減量後運算。 作者 : 許裕永

C++ 教學 入門 : Value 3 - 運算式 - 1 (算數運算符號)

圖片
C++ 教學 入門 : Value 3 - 運算式 - 1 (算數運算符號) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片1 四則運算與用%協助判斷左值是否為右值的倍數 影片2 用 % 做星期幾的運算與用 % 取得連續範圍的整數以及用 % 做位置的參照 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 + - * / % 檢測左值是否為右值的倍數 非10進位之週期運算 取得連續範圍的整數 位置參照 作者 : 許裕永

C++ 教學 入門 : 輸入與輸出

圖片
C++ 教學 入門 : 輸入與輸出 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 include 宣告要使用的標頭檔 using namespace 指定要使用的標頭檔中的名稱空間 cout 運算符號: "<<" 每個運算符號後面可以串連一個值 以 ";" 結束敍述 cin 運算符號: ">>" 每個運算符號後面可以放一個變數 以 ";" 結束敍述 作者 : 許裕永

C++ 教學 入門 : Value 2 - 變數 ( Variable)

圖片
C++ 教學 入門 : Value 2 - 變數 ( Variable) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 宣告 要求配置記憶體空間 註冊新名稱 語法一: type name; 語法二: type name = value; 語法三: type nameA = valueA, nameB = valueB; 指派 將右值指派給左值: name = value; 取值 只要變數名稱不是出現在'='左側, 便是取得變數所代表的記憶體中的值 作者 : 許裕永

C++ 教學 入門 : Value 1 - 字面值 ( Literal Value)

圖片
C++ 教學 入門 : Value 1 - 字面值 ( Literal Value) 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 影片 範例 好的頻道需要你的支持 ,謝謝你使用Youtube影片的 超級感謝 功能給我們鼓勵。 種類 int : 8 double : 3.14159  char : 'a' bool : true, false string : "Hello World!" escape character : \", \\, \n, \t 值在那裏 特性 重要的 優先配置的 內容不變 位置不變 只要是值就一定有型別 作者 : 許裕永