公告版位

目前分類:程式語言相關教學 (14)

瀏覽方式: 標題列表 簡短摘要
C 語言教學 - 13 - 使用變數 - 整數的基本運算

對於一個變數的應用來說,如果我們只會對他設定一個數值的話,實用性也沒有多高, 如果我們能夠使用變數來進行一些計算的話就更好了! 因此這次我們將來解說有關整數變數的一些基本運算。

賦值

我們可以使用一個等號「=」來設定一個變數的內容,我們之前在解說變數宣告的時候已經偷偷用過了! 例如:

夜行者 發表在 痞客邦 留言(0) 人氣()

印出變數的內容

對於任何一個變數,當我說它現在的值是3,你要如何確認呢? 或者當你好不容易算完一個數學運算,又要如何知道計算的結果? 於是,我們需要學會如何把整數變數的內容印出來。

這裡我們要用到printf的特別格式字元功能了, printf除了可以印出一段固定的文字外,還可以在中間加入「%d」這個特殊的標記來插入一個數字, 多說無益,我們用一段範例來解釋:

文章標籤

夜行者 發表在 痞客邦 留言(1) 人氣()

宣告變數

在使用變數前,我們必須要先建立一個變數(不然哪來變數可以用),也就是「宣告」一個變數的存在。 對於宣告一個變數的存在,我們只要寫下這樣的敘述就可以了:

int a;
    

這樣就會建立一個名稱叫作「a」的變數,然後請注意這個敘述也是以分號做為結尾。 在上面的宣告敘述中,右邊的「a」就是我們所要給予這個變數的識別名稱, 基本上是可以隨意的命名,除了需要遵守一些變數命名的限制以外(稍候解釋); 而左邊的「int」則告訴編譯器這個變數是一個普通的整數(integer)。 int即為integer的簡寫,C語言很喜歡簡寫,寫C程式要習慣常常看到簡寫的東西!

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

我們已經學會在終端機上印出文字。 但我們寫的程式如果就只有這麼點印出固定字串的能力的話,是不是覺得太虛弱了呢? 我這次就要來介紹「變數」這個非常有用的東西。

相比於之前我們直接在程式碼裡面寫上的不能變更的固定字串(除非我們修改程式碼,然後重新編譯), 變數的意思就是「在程式的執行過程中可能會不斷變化的東西」; 至於那些不可變動的東西我們就稱為「常數」。 使用變數,我們就可以在程式的執行過程中對資料進行動態的變更、計算、甚至取得使用者的資料輸入, 這可以讓我們的程式真正活動起來,而不是只能死死的印出固定的東西。 而變數的種類也有很多種,對於變動的字元串學問比較高深,我們暫時都不會去觸碰這個議題。 這次我們要介紹的是最基礎的數字型態變數,也就是「整數」變數。

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

一直以來,我們對於GCC的使用就是gcc main.c而已,現在我們終於要來補充更多一點的使用細節了。 GCC,或任何一款編譯器的詳細完整使用方式一定有很多很多東西; 不過請放心,我這裡只會告訴大家一些常用的功能。 這麼做的原因在於,同我先前提過的一樣,編譯器是個工具,我假設讀者們未來可能會去使用各種不同的編譯器。 所以與其專精熟練於GCC的各種細節設定,我認為更重要的是告訴大家那些各種編譯器都大同小異的操作結構。

編譯器設定選項

首先,你可以在終端機執行gcc附帶--help參數,如同下面這樣:

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

因為見過太多人搞不清楚程式語言和編譯器之間的關係與區別,導致很多令人啼笑皆非的對話, 所以我打算在這篇解釋有關C語言標準、以及其發展歷史。

我想看過我前面文章的人大概都已經知道,程式語言是為了讓人能夠用比較容易閱讀理解的方法寫出電腦程式而被發明出來的, 然後使用編譯器將我們看得懂的程式碼(就是用程式語言寫出來的文章)翻議程電腦看得懂的機器碼,至此才能執行程式。 比方說,C語言只規定當你寫出printf("message");的時候,要把那個「message」顯示出來而已; 至於要如何顯示他才不管,讓編譯器去搞定就好。 又比方說,C語言規定程式碼要使用分號來標示一個敘述的結束,編譯器就必須要照這個規則序解析你寫的程式碼; 編譯器不能擅自使用換行、或其他的符號來當作敘述的結束,因為這樣就不符合C語言的標準,這個編譯器就不是個C語言編譯器了!

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

陳述句

在上一篇我們學會使用一個printf來印出文字,但若一個程式只能做這麼簡單的一件事,那不是太沒用了嗎? 別的晚點再談,就先說如果我們有好幾件事想要電腦做的話該怎麼辦? 因為其他的東西我們還沒教到,所以就先用我們教過的printf來說明好了! 假如我們想要做三件事,比如說用印出三行字代表作了三件事,我們只要像這樣寫就可以了:

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("First thing.\n");
    printf("Second thing.\n");
    printf("Third thing.\n");

    return 0;
}
    

這樣,程式就會依次印出"First thing."、"Second thing."、與"Third thing."三個字串, 且由於我們加上了「\n」的緣故,這三個字串會分成三行印在終端機上。

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

在上一篇文章中,我們學會了如何建立程式碼檔案、以及從程式碼變成執行檔的方法; 而這一篇要教大家如何在終端機上輸出文字。

對於輸出文字,我們需要用到printf的功能,細心的人應該會注意到我們在上一篇已經偷用過一次了! 我想對於新人來說,printf完整的用法可能太複雜,所以我並不打算在這裡把它全部教完,而是用到某個功能的時候才交代某個功能的用法。 如果你迫不及待想要知道printf完整的用法,可以去C++ Reference (http://www.cplusplus.com/reference/cstdio/printf/)網站參考。

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

建立工作目錄

為了程式寫作以及檔案管理的方便,我們通常會為每一次的練習建立一個空的目錄,這點先前有解釋過了。 因此,現在我們先利用之前所學過的東西建立這次練習所需的工作目錄:

  1. 請在你認為適當的地方建立一個資料匣,用來安放所有我們之後將要練習的程式碼。
  2. 在這個目錄下建立一個資料匣,這是要用來放我們這次要練習的程式,基本上我會建議為每一次的練習建立一個目錄。 不過,這裡的檔案目錄建立與管理方式只是個建議,你不一定要照我的邏輯來管理你的檔案,如果你有自己的檔案管理邏輯的話。
  3. 請檢查並確認前面所建立的目錄,其整個檔案路徑中不要含有中文、空白等符號。
  4. 請開啟終端機程式,並且移動工作目錄到你為本次練習所預備的資料匣下。

建立程式碼檔案

接下來,我們要建立一個用來寫程式的程式碼檔案:

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

安裝編譯器

如同之前所說,我們要寫程式碼,並且把程式碼變成一個可以在電腦上執行的程式,就會需要一個編譯器。 這個世界上存在很多不同的C編譯器,但在這裡我推薦使用GCC,並且整個教學也將使用GCC編譯器做為主要使用的編譯器。 當然,你也可以使用你愛用的編譯器來學習C語言,如果你是個不需要我告訴你編譯器怎麼使用的進階新手的話。

如果你使用的作業系統是Linux的話,通常絕大部分的發行版已經將GCC預裝在電腦上了,你並不需要多做什麼; 不過若你使用的是Windows的話,請到這個網站下載並安裝TDM-GCC: http://tdm-gcc.tdragon.net

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

C語言有什麼特色?

既然說程式語言有很多種,那都有哪些比較有名的? 我發現O'Reilly的這個網頁對程式語言的種類介紹的蠻詳細的。

如果你想做的東西是偏網頁那邊,想要做出很酷炫的網頁讓別人瀏覽使用的話,那就不要浪費時間在我的文章上了。 你需要的是網頁程式語言,趕快去搜尋其他教你怎麼做網頁的教學吧!

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

接下來,我要向大家介紹C語言的特性,以及它一般的應用領域。

這麼做的原因很簡單,因為已經有太多的人(通常都不是我的學生)問我們說: 老師老師,我在學校學了一年的C/C++語言,但感覺上這些東西除了做乘法表、印聖誕樹以外還有別的功用嗎? 或者問:老師老師,學了老半天,C/C++只能做出在黑黑的文字模式下執行的程式嗎?沒有辦法做出有圖案、有按鈕,可以用滑鼠操作的程式嗎? 老師老師,我可以用C/C++寫出遊戲嗎?

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

興趣

首先要有的就是真正的興趣。 程式語言也講天份、講性格的,若您是因為別人叫你來學這個,自己卻沒有任何興趣與想法的話, 建議你趕快停下來,把時間用來做其他更有意義的事情!

你可以先問問自己,你喜歡電腦嗎?知道寫程式可以用來做什麼嗎?你真的喜歡做這些事情嗎?你的個性適合寫程式嗎? 或是,你心裡已經有想要做出的東西存在了嗎?(我想許多的小朋友應該都是想做某個遊戲,包括我) 如果以上的答案都是否定的,就不用再繼續往下看了; 而若你是因為不知道寫程式可以做什麼以至於無法回答,或是因為不知道寫程式應該具備什麼個性以至於不知自己是不適合, 那我會試著在幾篇文章的範圍內儘量提供你可做參考的背景知識,讓你可以及早判斷使否應該繼續閱讀。

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()

前言

我喜歡當老師,我很久以前就想要寫程式語言相關的教學文章,卻一直苦於時間與經驗的問題,直到現在終於能夠開始實行久遠前的夢想。

閱讀對象

本系列文章是以我先前接的國小程式語言家教的經驗做為藍本,將嘗試著由淺入深的教受電腦語言當中赫赫有名的C語言。 雖然這系列文章設計上希望連只有小學高年級程度的人都能閱讀學習,但仍然要求讀者需要一些電腦上的基本知識, 若連電腦都未曾使用過,或是連英文字母 A 到 Z 都背不全的話,基本上我也是沒輒的。 對於我覺得閱讀者應該具備的基礎能力會在後面更詳細的說明。

文章標籤

夜行者 發表在 痞客邦 留言(0) 人氣()