C 語言簡介 - 1.

Slides:



Advertisements
Similar presentations
拼圖遊戲程式解說. Absolute Layout 介面說明 所謂絕對版面配置,是指螢幕中所有控制項的擺 放由開發人員透過控制項的座標來指定,控制項容器 不再負責管理子控制項的位置。由於子控制項的位置 和版面配置都藉由座標來設定,因此 Absolute Layout 元 件並沒有提供特有的屬性和方法。
Advertisements

第一單元 建立java 程式.
計算機程式語言實習課.
輸出與輸入(I/O).
基本輸入與輸出 王振生.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
資料結構使用Java 第1章 資料結構與Java程式複習.
C語言中可變参數的用法——va_list、va_start、va_arg、va_end参數定義
Instructor:Po-Yu Kuo 教師:郭柏佑
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
第十一章 結構.
Chapter 3 輸出入及宣告.
第3章 變數與運算子 3-1 電腦記憶體的基礎 3-2 變數的命名與宣告 3-3 VB.NET的資料型別
第5章 基本輸入與輸出 5-1 程式的輸入與輸出 5-2 字元與字串的輸入 5-3 字元與字串的輸出 5-4 格式化資料的輸入
Visual C++ introduction
簡易C++除錯技巧 長庚大學機械系
Chen Yi Fen The C Language Chen Yi Fen
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
列舉(enum).
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Java程式概觀.
C語言簡介 日期 : 2018/12/2.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
第3章 變數、常數與資料型態 3-1 C語言的識別字 3-2 變數的宣告與初值 3-3 指定敘述 3-4 C語言的資料型態
安裝JDK 安裝Eclipse Eclipse 中文化
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
Java 程式設計 講師:FrankLin.
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
第2章 建立C應用程式 2-1 如何設計C應用程式 2-2 第一個C程式 2-3 Dev-C++整合開發環境的使用 2-4 C程式的寫作風格
第 19 章 XML記憶體執行模式.
第5章 變數、常數與資料型態 [我的主控台程式]
|07 函數.
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
第十章 指標.
Introduction to C Programming
撰寫MATLAB基礎財務程式 柯婷瑱.
第7章 指標 7-1 指標的基礎 7-2 指標變數的使用 7-3 指標運算 7-4 指標與陣列 7-5 指向函數的指標.
挑戰C++程式語言 ──第8章 進一步談字元與字串
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
如何使用Gene Ontology 網址:
C qsort.
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
計算機程式設計 老師:蘇炳煌 助教:楊斯竣.
函數應用(二)與自定函數.
陣列與結構.
第 4 章 認識 SQL 語言與資料型別.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
簡單Java介紹.
變數與資料型態  綠園.
博碩書號:PG20266 變數 第3章 博碩文化出版發行.
資料表示方法 資料儲存單位.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
作業系統實習課(二) -Scheduler-Related System Calls-
Programming & Language Telling the computer what to do
第三章 Arduino互動程式設計入門 Arduino程式基礎 認識變數 認識數字系統 認識常數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Unix指令4-文字編輯與程式撰寫.
方法(Method) 函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C 語言簡介 - 1

認識 C 語言 C 的由來 1972年貝爾實驗室以 B 語言為基礎,並持續改善。加入了資料型態的觀念及其它功能,並且將它發表為「C語言」。

認識 C 語言 C的特色 C 語言具有高階特性,另外,C 語言的程式碼中允許開發者加入低階的組合語言程式,因而被稱之為中階語言。 可以直接處理低階的記憶體。 是一種編譯式語言。

C 程式結構 標頭檔 全域變數宣告 函數的原型(prototype)宣告 int main(參數列) { 程式敘述; } 傳回型態 函數名稱1(參數列) { ………

C 程式結構範例

C 程式結構範例

C 程式寫作風格 程式敘述 (statement) 程式區塊 (block) 程式註解 (comment) 太長的程式碼 程式碼縮排

程式敘述 C程式是由程式敘述(Statements)組成,一列程式敘述如同英文的一個句子,內含多個運算式、運算子或關鍵字,如下所示: int balance = 1000; interest = balance * rate; printf("第一個C應用程式\n"); ; 上述第1列程式碼是變數宣告,第2列是指定敘述的運算式,第3列是呼叫標準函式庫的printf()函數,最後是空程式敘述(Null Statement)。

程式敘述-結束符號 「;」程式敘述結束符號 C語言的「;」符號代表程式敘述的結束,告訴編譯程式已經到達程式敘述的最後,換句話說,使用「;」符號可以在同一列程式碼撰寫多個程式敘述,如下所示: balance = 10000; rate = 0.04; interest = balance * rate;

Question 編譯程式?

程式區塊 程式區塊(Blocks)是由多個程式敘述組成,使用「{」和「}」符號包圍,如下所示: int main(void) { printf("第一個C程式\n"); getchar(); return 0; } 上述main()主程式的程式碼部分是程式區塊,在C語言的流程控制敘述和函數都擁有程式區塊。

程式註解 - ANSI-C 程式註解是程式中十分重要的部分,因為良好註解文字不但能夠了解程式目的,並且在程式維護上,也可以提供更多的資訊。 /* 程式範例: Example.c */ 上述註解文字是位在「/*」和「*/」符號中的文字內容。C語言的註解可以跨很多列,如下所示: /* --------------------------- 程式範例: Example.c ------------------------------ */

程式註解 C99 可以使用C++語言的註解方式,即在程式中以「//」符號開始的列,或是程式列位在「//」符號後的文字內容都是註解文字,如下所示: // 顯示訊息 printf("第一個C應用程式\n"); // 顯示訊息

太長的程式碼 C語言的程式碼列太長並不容易閱讀,我們可以將它分成兩列來編排,如果程式碼需要分成兩列,直接分割即可,如下所示: result = compare((void *)ptr, (void *)ptr1, (int (*) (void *, void *))numcmp); 如果程式碼需要連續列,可以在程式碼列的最後加上「\」符號(Line Splicing),將程式碼分成數列,如下所示: sum = scores[0] + scores[1] + \ scores[2] + scores[3] + \ scores[4];

程式碼縮排 在撰寫程式時記得使用縮排編排程式碼,適當的縮排程式碼,可以讓程式更加容易閱讀,因為可以反應出程式碼的邏輯和迴圈架構,例如:迴圈區塊的程式碼縮幾格編排,如下所示: for ( i = 0; i <= 10; i++ ) { printf(“%d\n”, i); total = total + i; }

變數、常數與資料型態 C 語言的識別字 變數的宣告與初值 指定敘述 C 語言的資料型態 定義符號常數

C 語言的識別字-說明 識別字名稱(Identifier Names)是指 C語言的變數、函數、標籤和各種使用者自訂資料型態的名稱。 程式設計者在撰寫程式時,需要替這些識別字命名。

C 語言的識別字-命名語法 「識別字」(Identifiers),使用英文字母開頭,不限長度,包含字母、數字和底線「_」字元組成的名稱。 C語言的識別字至少前31個字元是有效字元。名稱區分英文字母的大小寫,例如:count、Count和COUNT屬於不同的識別字。 名稱不能使用 C 語法的「關鍵字」(Keywords)或稱為「保留字」(Reserved Words)。 名稱擁有其有效「範圍」(Scope),在有效範圍的程式碼中名稱必需是唯一的。

Question scope?

C 語言識別字-命名範例與關鍵字 C語言的關鍵字

C 語言的識別字-慣用的命名原則 C 語言名稱的命名可以使用一些慣用的命名原則。例如:CamelCasing命名法是第一個英文字小寫之後為大寫,變數、函數的命名也可以使用不同英文字母大小寫的組合,如下

變數的宣告 在C語言提供四種基本資料型態:char、int、float和double,可以指定變數儲存的資料是字元、整數、單精度浮點數 & 雙精度浮點數值,如下: int balance; 上述程式碼宣告整數變數,資料型態為整數 int(型態屬性),名稱為 balance(名稱屬性),儲存的變數值是整數沒有小數點。 C語言可以在一列程式碼同時宣告多個相同資料型態的變數,此時各變數名稱請使用「,」逗號分隔,如下所示: int i, j, balance;

Question 字元、整數、單精度浮點數 & 雙精度浮點數值,有 fu 嗎?

變數的初始值 C 語言變數初始值範例,如下所示: int balance = 1000; int i = 20; double a, b = 123.23; 上述程式碼宣告變數 a 和 b,但是只指定變數 b 的初值。

C 語言的指定敘述 C語言指定敘述的範例,如下所示: int size, size1, size2; size = 35; 上述程式碼宣告 3 個整數型態的變數後,使用指定敘述指定變數值。

C 語言的指定敘述 在指定敘述「=」等號左邊的變數稱為「左值」(Lvalue),表示變數的位址(Address)屬性,如果變數在等號的右邊稱為「右值」(Rvalue),這是變數值(Value)屬性。

Question 位址?

C 語言的指定敘述 size2 = size1; 如果指定敘述的右邊是變數,如下所示: 右邊變數 size1 是右值,取出的是變數值,所以指定敘述是將變數size1的「值」存入變數size2的記憶體「位址」,即1008。

C 語言的指定敘述 變數 size2 的值更改成為變數size1的值,即57,如下圖示:

C語言的多重指定敘述 可以在同一個指定敘述同時指定多個變數的值,如下所示: size = size1 = size2 = 50; 上述指定敘述可以同時將3個變數值指定為50。

C 語言的資料型態 C 語言的資料型態分為「基本」(Basic Types)和「延伸」(Derived Types)兩種資料型態,如下所示: 基本資料型態:C 語言的變數一共有char、int、float、double和void基本資料型態。 延伸資料型態:Later。

C語言的基本資料型態-範圍

字元資料型態-Escape逸出字元

void 資料型態 void資料型態在 C 語言是一種特殊資料型態,代表一個並不存在的值

定義符號常數-#define指令 #define指令 C程式可以使用 #define 指令定義符號常數,如下所示: #define PI 3.1415926 上述程式碼並不是指定敘述,所以沒有等號,在最後也不用分號。 簡單的說,當在 C 程式中出現 PI 名稱時,就將它使用3.1415926取代,PI則是一個識別字。

定義符號常數-const常數修飾子 在C程式也可以使用 const 常數修飾子來建立常數,我們只需在宣告變數前使用const 常數修飾子,就可以建立常數,如下: const double e = 2.71828182845; 上述程式碼表示變數 e 的值不能更改。

C語言的控制台輸入與輸出-基礎 電腦執行的應用程式通常都會與使用者進行互動,程式從使用者取得電腦周邊裝置輸入的資料,然後將執行結果在電腦輸出裝置上顯示。 在 C 語言的控制台應用程式(Console Application)最常使用的標準輸入裝置是鍵盤,標準輸出裝置是電腦螢幕,即所謂的控制台輸入與輸出(Console Input and Output,簡稱Console I/O),如下圖所示:

C 語言的標準輸入與輸出 C語言的輸入與輸出功能並非C語言本身的功能,這些函數都是 C 語言標準函式庫提供的函數,定義在<stdio.h>或<conio.h>標頭檔的函數,屬於ANSI標準的 C 語言函式庫。 ???

取得單一字元 getchar() 在 C 程式可以使用 getchar() 函數從標準輸入裝置,通常是指鍵盤讀取使用者輸入的字元,如下所示: 上述程式碼傳回值是整數 int,如果有錯誤傳回EOF。 在讀入字元後,我們可以使用 putchar() 函數將字元輸出到標準輸出裝置,通常是輸出到螢幕顯示,如下所示: putchar(c);

使用 scanf() 函數讀取數值資料 在 scanf() 函數的格式字串是使用格式字元判斷輸入哪一種資料型態,函數的傳回值是整數 int,如果資料讀取成功,傳回輸入的資料數,如果失敗傳回 0。例如:使用格式字元 %d 和 %f 讀取整數和浮點數值,如下所示: scanf("%d", &age); scanf("%f", &score); 第1列程式碼的格式字串內含 %d 表示輸入整數,第2個參數使用「&」取址運算子取得變數的記憶體位址,第2列的程式碼是使用 %f 格式字元讀取浮點數。

格式字元 在 scanf() 函數的格式字串一定需要格式字元,一個格式字元可以對應一種資料型態,scanf()函數的格式字元,如下表所示:

讀取多種不同型態的資料 在同一個 scanf() 函數可以讀取多筆不同資料型態的資料,如下所示: scanf("%f,%d,%f", &x, &y, &z); 上述程式碼的格式字串擁有%f、%d和%f一共3個格式字元,之後也擁有對應的3個變數&x、&y和&z讀取3筆資料,分別是浮點數、整數和浮點數資料,如下圖所示:

printf() 輸出函數的格式字元 printf()函數也是使用格式字串輸出指定資料型態的變數資料,內含「%」符號開始的格式字元,如下所示: printf("a(d) = %d\n", a); printf("b(d) = %d c(d) = %d\n", b, c); 上述程式碼使用格式字元%d輸出整數變數a、b和c,如下圖所示:

printf()函數的格式字元-種類

printf()函數的最小欄寬-範例

printf()函數的精確度-範例

Dev C++安裝與使用 http://www.bloodshed.net/dev/devcpp.html

Dev C++安裝與使用 第一個C練習程式碼 : helloWorld.c #include <stdio.h> int main(void) { printf(“Hello World"); }

Dev C++安裝與使用 第二個 C 練習程式碼 #include <stdio.h> #include <stdlib.h> int main(void) { int no; no=3; printf("There are %d pandas in Taipei.\n",no); /*輸出臺北有三隻熊貓*/ system("PAUSE"); return 0; }

Homework 下一次上課時抽驗 3~5 位同學,並於上課現場寫一個簡單之 C 程式,包括:表頭、變數宣告、由鍵盤讀入數個值後做簡單的加與減運算 (或找出最大/小值),然後由螢幕輸出結果 同學必須能說明每個程式敘述的意義 所有同學都正確,全班加學期分數 1 分 任一同學未能完成,扣該同學學期分數 2 分