2023年11月5日 星期日

Chapter 01:C語言入門課

目標:

  1. 知道、認識、挑選編譯器
  2. 理解程式設計的四大原則
  3. 解題思路
  4. 寫第一個程式

一、編譯器

在寫程式時,通常需要有軟體可以輸入、編輯程式,和軟體把程式轉換成電腦看的懂的指令。而編譯器便是把上述二者的功能結合起來的軟體,而這個概念就是「整合開發環境(IDE)」。

但是,需要注意的是,不同編譯器把源碼匯出(如.cpp),會導致用不同的編譯器打開程式產生亂碼,這是因為不同編譯器採用的語言編碼所導致的(可能還有其他原因),因此選好編譯器之後建議不要中途更改。當然,最好是全程用英文,是最省心的方式。

電腦編譯器推薦(windows為主):

Dev-C++:

優點:軟體小、基本功能大致俱全。

缺點:已停止開發(由其他團隊維護。已開源)、介面陽春、標準老舊因此部分新語法不支援。

網站:https://www.bloodshed.net/

Code::Blocks:

優點:同Dev-C++、開源

缺點:不支援中文輸入。

注意一下,這套是APCS中,C/C++的指定編譯器,考試現場用C/C++就是只能用這套,因此有要考APCS的人,建議可以開始熟悉這套編譯器-Code::Blocks 

網站:https://www.codeblocks.org/

Microsoft visual studio:

優點:強大,且有很多模組可用

缺點:軟體龐大、部分功能需對windows的cmd有一些認識。

網站:https://visualstudio.microsoft.com/zh-hant/downloads/

手機編譯器推薦:

Cxxdroid:

優點:穩定、功能相對完全

缺點:不支持中文輸入

到Google Play商店下載

coding C:

優點:穩定、功能相對齊全、支援中文輸入

缺點:暫時沒有

到Google Play下載

以上編譯器的安裝與使用,建議自行上網查教學,因為這類知識有時效性,在此僅作為給一個入門管道而已。


二、程式設計的四大原則

(一)輸入:讓使用者與程式產生互動,好比輸入數字等。

(二)輸出:程式在接受使用者的要求後,要能夠產生並告知使用者結果。

(三)侷限:寫出來的程式要有一定的執行範圍,或是效力。舉一個例子,在寫迴圈是,要考量到條件的終結。當然,目的是產生無限迴圈的例外。

(四)有效:寫出來的程式要是可行的,畢竟寫程式是用來處理一些問題的。

上面四大原則,是偵錯時思考的進入點,所以有一定的重要性。

三、解題思路

以下是常見的解題思路選項,然而每人的思維不同,沒有好壞,可依個人思維進行。

 

了解問題:直到問題的核心。

確認需求:了解輸入/出的要求之類的。

思考需要用到哪些工具:例如需要重複執行可以考慮到迴圈。

拆解問題:把問題細分,同時可以把不必要的問題給忽略,通常是拆得越小越好,越好解決。

解決問題,並思考有何漏洞。解法可能有多種解法,通常是以複雜度來決定最佳解,顧名思義,複雜度就是這個解法的複雜程度,若有多個解法,且都可以完全的解決問題,我們一般而言會選擇最簡單的解法,一來好判讀程式,二來降低未來維護的難易度,三來減少不必要的步驟提升運行效率。

偵錯。若有錯則修正。而修正有兩大地方,一是語法(較簡單處理),而是邏輯(建議找人)。

四、第一個程式

通常第一個程式時輸出“Hello, World”。至於為何是輸出“Hello, World”呢?一是簡單。二是有一個軼事,這是在叫一隻叫“World”的小狗。

範例:

#include<stdio.h>//呼叫標頭檔,讓編譯器知道從哪裡叫出函數(如在此的printf函數)
/*int main為程式的進入點,告知電腦從這裡開始執行。而void是指“不回傳任何數值”之意"。int是回傳給電腦整數的意思,和下方return 0;配合,即為“程式順利執行完成後,回傳0給電腦”。*/
int main(void){
    printf("Hello,World");//把字串印出來,用printf。並且,括號中的引號("")是用來夾住欲輸出的字串。但夾住的內容有一定格式
    return 0;//回傳0表完成
}

這裡有一重點要注意的是,在打完原始碼後,要在整合開發環境(IDE)中(例如Dev-C++),尋找“編譯並執行”之類的選項,才能使程式在電腦中運行喔!

至於跟詳細的說明,之後會再講。

五、關於編譯器_for 想當/已是老手的

其實很多人都推薦使用Dev C++,筆者也不例外是使用Dev C++,但Dev C++支援的C函式庫太老舊,因此有些新功能無法使用(Code::Blocks也不例外,只是相對較新罷了)。那為什麼還要推薦Dev C++?因為輕量、易用,且初學者不大會用到太多新特性(new features)。 

基本上選Microsoft visual studio是最佳解,倘若你仍想用Dev C++,或是有一套用許久的IDE捨不得換,可以參考下方的連結,自己試一試,或許有新天地喔。

  1. 下載新的函式庫,網址:https://jmeubank.github.io/tdm-gcc/。 選擇「MinGW-w64 based」下方的.exe程序,若是32位元就選第二個。
  2. 操作教學,網址: https://ordimaryman.blogspot.com/2023/12/devc.html?m=1

回目錄

沒有留言:

張貼留言