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

Slides:



Advertisements
Similar presentations
◎ 標準函數 標準函數庫中,提供了許多不同功能的函數,而這些函數 的原型宣告以及使用函數相關的定義,依照相關函數的分 類,分別定義在不同的標頭檔之中。 標準函數庫中,提供了許多不同功能的函數,而這些函數 的原型宣告以及使用函數相關的定義,依照相關函數的分 類,分別定義在不同的標頭檔之中。 本來呼叫使用標準函數庫裡的函數,也就是使用模組裡的.
Advertisements

第一單元 建立java 程式.
計算機程式語言實習課.
輸出與輸入(I/O).
Chapter 5 迴圈.
第8章 字元與字串處理 8-1 C語言的字元檢查函數 8-2 C語言的字串 8-3 字串的輸入與輸出 8-4 指標與字串
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
Visual C++ introduction
簡易C++除錯技巧 長庚大學機械系
Chen Yi Fen The C Language Chen Yi Fen
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
列舉(enum).
String C語言-字串.
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Java程式概觀.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
1. 檔案File  開新New  檔案Empty File (再另存新檔D:\hello.c)
C語言簡介 日期 : 2018/12/2.
SQL Stored Procedure SQL 預存程序.
安裝JDK 安裝Eclipse Eclipse 中文化
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
計數式重複敘述 for 迴圈 P
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
程式設計實習課(四) ----C 函數運用----
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归
第一單元 建立java 程式.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
C程式的架構 基本的資料型態 變數的宣告 常見的語法錯誤 基本的運算 優先順序與結合律 資料型態的轉換
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
Instructor:Po-Yu Kuo 教師:郭柏佑
JAVA 程式設計 資訊管理系 - 網路組.
第3章 變數、算術運算、 數學函數及輸入輸出.
輸入&輸出 函數 P20~P21.
CH1 我的第一個App與變數宣告.
Introduction to the C Programming Language
挑戰C++程式語言 ──第8章 進一步談字元與字串
C语言程序设计 教案 崔武子制作
函式庫補充資料.
|第 2 章 變數與資料型態.
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
輸出與輸入(I/O).
本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Introduction to the C Programming Language
挑戰C++程式語言 ──第7章 輸入與輸出.
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
計算機程式設計 老師:蘇炳煌 助教:楊斯竣.
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
簡單Java介紹.
Introduction to the C Programming Language
變數與資料型態  綠園.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
C/C++基礎程式設計班 字元與字串 講師:林業峻 CSIE, NTU 3/14, 2015.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
Programming & Language Telling the computer what to do
變數、常數與資料型態 大綱 變數與常數 變數 資料型別 資料的輸出.
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Introduction to the C Programming Language
Unix指令4-文字編輯與程式撰寫.
InputStreamReader Console Scanner
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

Class 1 踏出C語言的第一步

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

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

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

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

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

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

什麼是前端處理程式? 在C語言中,只要前端有『#』符號者,皆可稱為前端處理程式 在C程式編譯前,這些前端處理程式會先被前置處理器轉換成C的程式碼 前端處理程式 意 義 #include 引入標頭檔 #define 定義巨集

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

#include:常用到的標頭檔 標頭檔名稱 功能說明 stdio.h 輸出入庫存函式: getc, putchar, gets, puts, fclose, feof, fgets, fputs, fread, fopen, fwrite, scanf, printf, getchar stdlib.h 轉換庫存函式: atof, atoi, atoll, rand, srand, system ctype.h 字元庫存函式: isalnum, isalpha, isdigit, ispunct, isspace string.h 字串庫存函式: strcat, strcmp, strcpy, strlen, strtok math.h 數學庫存函式: acos, asin, atan, exp, cos, sin, sqrt io.h eof, open, close, write, read conio.h 本文視窗顯示庫存函式: clrscr, getch, getche time.h 時間日期庫存函式: time, gettime, getdate, setdate, settime

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

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

資料型態與變數宣告 變數 要使用變數之前,要先加以宣告 資料型態會影響該變數的儲存方式、儲存空間、數值範圍與運算方式 程式中用來儲存資料空間的名字 要使用變數之前,要先加以宣告 語法:資料型態 變數名稱 如: int a; 資料型態會影響該變數的儲存方式、儲存空間、數值範圍與運算方式 a 資料型態 英文名稱 儲存空間 數值範圍 數值 短整數 short 2 Bytes -32768~32767 (-215~215-1) 整數 int 4 Bytes -231~231-1 長整數 long 浮點數 float 1.175494351e-38~ 3.402823466e+38 倍精度浮點數 double 8 Bytes 2.2250738585072014e-308~ 1.7976931348623158e+308 字元 char 1 Bytes -128~127 布林 bool true(真)或false(假)

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

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

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

輸出函式printf() 語法 格式字串 printf(格式字串,變數1,變數2,...,變數n); 一個以兩個雙括號包起來的字串 告訴printf()它負責印出的資料 printf(“Hello World!\n”); //將會印出Hello World!

格式字串中常用的符號 int year=2008; printf(“Hello World %d \n\n”, year); 轉換字元的種類 種 類 表 示 法 功 能 敘 述 整數(integer) %d 以十進位方式印出 %o 以八進位方式印出 %x 以十六進位方式印出 %u 以不帶符號的十進位方式印出 %l 以長整數(long)方式印出 浮點數(float) %f 以 xxx.xxxxxxx 方式印出 %e 以指數的方式印出 字元(char) %c 以字元方式印出 %s 以字串方式印出 其他(other) - 向左邊靠齊印出 *.* 指定浮點數之精確度

輸出函式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的初始值請自行於宣告變數時給定)

再談printf() % 後接數字再接輸出的型別 printf(“a%3d”, 12); 輸出 printf(“a%4d”, 12); 輸出 %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) ); 輸出

特殊控制碼 特殊控制碼 種 類 功 能 敘 述 \n newline 新行 \r carriage return 回歸鍵 \t tab 跳格 backspace 退位 \f form feed 跳頁 \\ backslash 反斜線 \' single quote 單引號 \" double quote 雙引號

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

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

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

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

作業一 請撰寫一個程式,使用者可以輸入身高與體重,程式會輸出該使用者的BMI資訊 提示:BMI = 體重(公斤) / 身高2(公尺2)。(BMI_○○.cpp) http://food.doh.gov.tw/1824/a2-0.html

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

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

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