1 / 29

Class 1 踏出 C 語言的第一步

Class 1 踏出 C 語言的第一步. 編譯器 (Compiler). Dev-C++ ( * 請各位回家下載並安裝* ) 下載 : http://bloodshed.net/devcpp.html 免費 , 中文界面 其他常見的編譯器 Visual Studio 2005 Visual Studio 2003 Visual C++ 6.0. 1. 英文轉中文 Tool -> Environment Options ->Interface-> Language. 2. 插入預設的程式碼

vinaya
Download Presentation

Class 1 踏出 C 語言的第一步

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Class 1踏出C語言的第一步

  2. 編譯器 (Compiler) • Dev-C++ (*請各位回家下載並安裝*) • 下載: http://bloodshed.net/devcpp.html • 免費, 中文界面 • 其他常見的編譯器 • Visual Studio 2005 • Visual Studio 2003 • Visual C++ 6.0

  3. 1.英文轉中文 Tool -> Environment Options ->Interface-> Language

  4. 2. 插入預設的程式碼 工具-> 編輯器選項-> 程式碼 -> (打入程式) -> 勾選下面的勾勾->按確定

  5. 3.開啟一個新的程式 檔案 -> 開新檔案 -> 原始碼 4. 如果編輯區域的右邊沒有顯示行號 工具-> 編輯器選項-> 顯示 -> 勾選顯 示行號

  6. 第一個程式 - Hello World • #include<stdio.h> • 引入一個叫做stdio的標頭檔,沒有它,第4行的printf() 就不能用了 • #include<stdlib.h> • 引入一個叫做stdlib的標頭檔,沒有它,第5行的system() 就不能用了 • main() • 主函式,程式會從這裡開始執行 • printf() • 函式, 功能是印出字串到銀幕上

  7. 第一個程式 - Hello World • system(“Pause”) • 函式, 功能是讓程式不要馬上結束 • return 0 • 主函式結束 • 儲存後,按下Ctrl + F9 編譯 • 按下Ctrl + F10執行

  8. 什麼是前端處理程式? 在C語言中,只要前端有『#』符號者,皆可稱為前端處理程式 在C程式編譯前,這些前端處理程式會先被前置處理器轉換成C的程式碼

  9. #include • 對於程式外的標頭檔的引含指令 • 輸出入相關的函式(printf()、scanf()…)都被定義在stdio.h標頭檔內 • 必須在程式最前面加上#include <stdio.h>

  10. #include:常用到的標頭檔

  11. 更多有關函式的資訊 • 可參考的網站1 • http://www.cplusplus.com/reference/clibrary/ • Google • 輸入函式名稱 + C • Ex. “scanf c++”

  12. #define • 使用者定義常數、數學運算式、字元或字串 • 語法 • #define 名稱 常數 • #define 名稱 數學運算式 • #define 名稱 字元或字串 • 如: #define PI 3.1415 • 如: #define PAUSE system(“Pause”)

  13. 資料型態與變數宣告 a • 變數 • 程式中用來儲存資料空間的名字 • 要使用變數之前,要先加以宣告 • 語法:資料型態 變數名稱 • 如: int a; • 資料型態會影響該變數的儲存方式、儲存空間、數值範圍與運算方式

  14. 變數的宣告 • 變數初始值設定的語法為 • 資料型態 變數名稱= 初始值; • int a=2; • 宣告變數a的資料型態為整數,初始值為2。 • char c =’A’; • 宣告變數c的資料型別為字元,初始值為’A’。 • int a, b=3, c; • 多個變數定義只須以逗號(,)隔開每一個變數。 • 變數名稱命名規則 • 必須以英文字開頭 • 可以包含英文字、數字和底線(_) • 英文字母的大小寫將視為不同。

  15. 基本數值運算子 3 6 +3 x x 3 6 • +,-,*,/ 運算子 • 如: var1+var2; • %運算子 • 取餘數運算子,只有整數可以用 • 如:7%4的結果為3 • = 運算子 • 指定運算子,將右邊的運算式結果指定給左邊的變數 • 如:a=3*b-c+11;x=x+3;

  16. 基本輸出輸入函式 • 輸出函式printf() • 輸入函式scanf() • 都定義在stdio.h標頭檔內,因此使用前先用include • #include <stdio.h>

  17. 輸出函式printf() • 語法 • printf(格式字串,變數1,變數2,...,變數n); • “變數1,變數2,...,變數n” 是在需要將變數之值印出時才須給定 • 格式字串 • 一個以兩個雙括號包起來的字串 • 告訴printf()它負責印出的資料 • printf(“Hello World!\n”); //將會印出Hello World!

  18. 格式字串中常用的符號 int year=2008; printf(“Hello World %d \n\n”, year);

  19. 輸出函式printf() • 印出宣告好的變數或常數內容 • 在格式字串上以%符號跟隨資料型態的對應字元,後面並用逗號將所有變數內容傳給printf()函式 • int num=123; printf(“變數num的值為%d”,num); printf(“變數num的值為%d, num+3的值為%d”,num,num+3); //印出:變數num的值為123 //印出:變數num的值為123, num+3的值為126 • 課堂練習:參考上面範例,練習印出變數num的值,及num+3、num+5的值。 • (num的初始值請自行於宣告變數時給定)

  20. 再談printf() • % 後接數字再接輸出的型別 • %3d、%4d表示將數字填入 3 格和 4格大小的格子裡 ( 向右對齊 )不過不會限制總長度 ( 可以超過 ) • printf(“a%3d”, 12); 輸出 • printf(“a%4d”, 12); 輸出 • %6f 表示將小數填入 6 格中 ( 包含小數點 ) • printf(“a%6f\n”, 2.345) ); 輸出 • %.2f 表示小數後只印出 2 位 ( 會四捨五入 ) • printf(“a%.2f\n”, 2.345) ); 輸出 • %6.2f 表示小數後印 2 位,並且全部填入 6 格中 • printf(“a%6.2f\n”, 2.345) ); 輸出

  21. 特殊控制碼

  22. 範例練習 自行宣告一個變數存放全班人數,並以換行(\n)的方式列印出班上同學名字。(避免複雜,請虛構5個同學即可)

  23. 中文顯示的問題 • 如果有下面的情況 執行視窗上案右鍵-> 預設值->預設字碼選950

  24. 輸入函式scanf() • 傳遞變數的位址 • 使用取址運算子(&)取得變數的位址 • 如: • int num; printf(“請輸入一個數字: ”); scanf(“%d”,&num); • 以scanf()函式來取得資料時 • 在鍵入資料項之後,要以Enter作為結束 • 每一個資料項之間要以空白、enter或tab隔開 • 如:scanf(“num=%d”,&num); //使用者在輸入時,必須輸入:num=10 //10才會被存入num變數中

  25. 範例練習 請撰寫程式讓使用者輸入出生年月日並輸出。

  26. 作業一 • 請撰寫一個程式,使用者可以輸入身高與體重,程式會輸出該使用者的BMI資訊 • 提示:BMI = 體重(公斤) / 身高2(公尺2)。(BMI_○○.cpp)

  27. 補充 • 清除輸入緩衝區,讓scanf()正確執行 • fflush(stdin); • 如果單純只想印出%d • 用%%來代替% • 含有中文變數名稱Dev C++不允許 • 常數的另一種宣告方法 • const double pi = 3.14159265897932384;

  28. 補充─型別轉換 • 用在運算元素型別不同時 • 通常是將定義較”狹小”的轉成較”寛大”的 • 例:整數和實數相加的話,相加的整數先轉成實數 • 沒意義的運算式是不准許的 • 例:將浮點實數當作陣列索引 • 轉換後會失去一些訊息 • 編譯器可能會出現警告,不過仍然可以作 • 例1:將較長型的整數指派給較小型的整數 • 例2:將浮點實數指派給整數變數

  29. 型別轉換2 • 執行指定敘述時轉換也會發生 • 此時不分高低,等號右邊的值會被轉成等號左邊變數相同的型別 • 指定敘述可能將 long 轉成較短的 int 或 short 甚至 char,此時只是將較高階的位元捨棄 • 下例中的結果 c 的值不會變 • int i;char c;i = c;c = i; • 如果改寫成下面這樣,i 的值就有可能改變 • c = i;i = c;

More Related