Lập trình cơ bản: Ngôn ngữlập trình...

44
Lp trình bn: Ngôn nglp trình C Đỗ ThMai Hường Bmôn Hthng thông tin Khoa Công nghthông tin

Transcript of Lập trình cơ bản: Ngôn ngữlập trình...

Page 1: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Lập trình cơ bản:Ngôn ngữ lập trình C

Đỗ Thị Mai HườngBộ môn Hệ thống thông tinKhoa Công nghệ thông tin

Page 2: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 2

Nội dung

• Giới thiệu chung• Lệnh nhập/xuất• Lệnh điều kiện• Lệnh vòng lặp• Kiểu mảng• Xâu kí tự• Con trỏ• Hàm• Kiểu cấu trúc (struct) • Làm việc với tệp

Page 3: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

TTàài lii liệệu hu họọc tc tậậpp

• Bài giảng Lập trình C – Đỗ Thị Mai Hường.

• Tài liệu ôn tập C

Chương 1: Giới thiệu chung về lập trình C 3

Page 4: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Tài liệu tham khảo

• Lập trình C – PGS Phạm Văn Ất.

Page 5: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 5

Nội dung

• Giới thiệu chung• Lệnh nhập/xuất• Lệnh điều kiện• Lệnh vòng lặp• Kiểu mảng• Xâu kí tự• Con trỏ• Hàm• Kiểu cấu trúc (struct) và kiểu hợp (union)• Làm việc với tệp

Page 6: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 6

Giới thiệu chung• Ngôn ngữ C ra đời năm 1972• Phát triển thành C++ vào năm 1983• Ngôn ngữ được sử dụng rất phổ biến• Có nhiều trình biên dịch C khác nhau

– Turbo C, Borland C– GCC

• Thực hành trên Turbo C– Cung cấp môi trường tích hợp cho phép soạn thảo và

biên dịch

Page 7: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 7

Giới thiệu chung• Một số phím soạn thảo

Phím Chức năng

Di chuyển con trỏ sang trái, lên, xuống, sang phải

Home Đưa con trỏ về đầu dòng

End Đưa con trỏ về cuối dòng

PgUp Đưa con trỏ về đầu một trang màn hình

PgDw Đưa con trỏ về cuối một trang màn hình

Ctrl + Dịch con trỏ sang phải một chữ

Ctrl + Dịch con trỏ sang trái một chữ

Page 8: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 8

Giới thiệu chung• Một số phím soạn thảo

Phím Chức năng

Enter Xuống dòng

Insert Chuyển đổi chế độ chèn/đè

Delete Xóa kí tự ngay sau vị trí con trỏ

Back space Xóa kí tự ngay trước vị trí con trỏ

Ctrl + Y Xóa dòng kí tự chứa con trỏ

Ctrl + Q + Y Xóa các kí tự từ vị trí con trỏ đến cuối dòng

Page 9: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 9

Giới thiệu chung• Một số phím soạn thảo

Phím Chức năngCtrl + K + C Chép khối tới vị trí mới của con trỏ

Ctrl + K + V Chuyển khối tới vị trí mới của con trỏ

Ctrl + K + Y Xóa cả khối

Ctrl + K + W Ghi một khối vào một tệp trên đĩa

Ctrl + K + R Đọc một khối từ một tệp trên đĩa

Ctrl + Q + B Dịch chuyển con trỏ về đầu khốiCtrl + Q + K Dịch chuyển con trỏ về cuối khối

Ctrl + Q + F Tìm kiếm một cụm từ

Ctrl + Q + A Tìm kiếm một cụm từ và sau đó thay thế bằng một cụm từ khác

Ctrl + Q + L Lặp lại công việc Ctrl + Q + F hoặc Ctrl + Q + A cuối cùng

Page 10: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 10

Giới thiệu chung• Từ khóa

– các từ dành riêng của ngôn ngữ C – từ khóa phải được sử dụng đúng cú pháp– một số từ khóa thông dụng

auto break case char continue defaultdo double else extern float forgoto if int long register returnshort sizeof static struct switch typedefunion unsigned void volatile while

Page 11: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 11

Giới thiệu chung• Tên (identifier)

– Dùng để định danh các thành phần của chương trình– Tên biến, tên hàm, tên hằng, …– Tên là một dãy các kí tự gồm các chữ cái [a-z, A-Z, 0-9] và gạch

nối “_”– Lưu ý:

• tên không đuợc chứa kí tự trống, • tên không được bắt đầu bằng một chữ số,• tên không được trùng với từ khóa

– Nên đặt các tên gợi nhớ, có ý nghĩa– Tên chuẩn: một số tên có sẵn của trình biên dịch

Page 12: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 12

Giới thiệu chung• Hằng

– là đại lượng có giá trị không thay đổi được trong chương trình– ví dụ

• 111 hằng là một số• ‘b’ hằng là một kí tự• “lap trinh” hằng là một chuỗi kí tự

• Biến– là đại lượng có thể thay đổi được giá trị trong chương trình

• Biểu thức– là một công thức tính toán để có một giá trị theo một qui tắc toán

học– ví dụ: x + y * z

Page 13: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 13

Giới thiệu chung• Mỗi một câu lệnh C đều phải kết thúc bởi một dấu “;”• Lời chú thích được đặt giữa hai dấu “/*” và “*/”

– Ví dụ/* Đây là một chú thích */

• Khi viết chương trình nên sử dụng các lời chú thích • Trình biên dịch C phân biệt chữ in hoa và chữ in thường

Page 14: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 14

Giới thiệu chung• Các kiểu dữ liệu chuẩn

– Kiểu kí tự– Kiểu số nguyên– Kiểu số thực

Page 15: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 15

Giới thiệu chung• Kiểu kí tự

– Kiểu char– Chiếm một byte– Biểu diễn các kí tự trong bảng mã ASCII– Ví dụ

• ‘a’ có giá trị mã ASCII là 97• ‘0’ có giá trị mã ASCII là 48

– Kiểu kí tự đồng thời cũng là kiểu số nguyên– Có hai kiểu char: : signed char và unsinged char

Kiểu kí tự Kích thước Miền giá trị

signed char 1 byte -128 -> 127

unsigned char 1 byte 0 -> 255

Page 16: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 16

Giới thiệu chung• Kiểu số nguyên

– Có nhiều kiểu số nguyên

Kiểu số nguyên Kích thước Miền giá trị

int, short 2 byte -32768 -> 32767

unsigned int, unsigned short

2 byte 0 -> 65535

long 4 byte -2147483648 -> 2147483647

unsigned long 4 byte 0 -> 4294967295

Page 17: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 17

Giới thiệu chung• Kiểu số thực

– Có nhiều kiểu số thực

Kiểu số thực Kích thước Miền giá trị

float 4 byte 3.4E-38 -> 3.4E+38

double 8 byte 1.7E-308 -> 1.7E+308

long double 10 byte 3.4E-4932 -> 1.1E+4932

Page 18: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 18

Giới thiệu chung• Kiểu số thực

– Có hai cách biểu diễn số thực• Dạng thập phân: dùng dấu chấm để ngăn cách phần nguyên và

phần thập phân– Ví dụ: -12.345672, 1203.8375

• Dạng khoa học: gồm phần định trị và phần mũ của cơ số 10, hai phần cách nhau bởi chữ E hoặc e

– Ví dụ: 6.123E+02

Page 19: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 19

Giới thiệu chung• Các phép toán

– Các phép toán trên số nguyên• Cộng: +• Trừ: -• Nhân: *• Chia lấy phần nguyên: /• Chia lấy phần dư: %

– Các phép toán trên số thực• Cộng: +• Trừ: -• Nhân: *• Chia: /

Page 20: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 20

Giới thiệu chung• Các phép toán

– Các phép toán quan hệ (so sánh)• So sánh bằng nhau: ==• So sánh khác nhau: !=• So sánh lớn hơn: >• So sánh nhỏ hơn: <• So sánh lớn hơn hoặc bằng: >=• So sánh nhỏ hơn hoặc bằng : <=

– Biểu thức chứa các phép toán quan hệ được gọi là biểu thứcquan hệ

– Biểu thức quan hệ có giá trị đúng hoặc sai

Page 21: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 21

Giới thiệu chung• Các phép toán

– Các phép toán logic• Kiểu logic trong C không được định nghĩa một cách tường minh• Một giá trị khác 0 là đúng, một giá trị bằng 0 là sai

Phép toán Kí hiệu Ví dụ

Và (AND) && 2 && 0 = sai

Hoặc (OR) || 10 || 5 = đúng

Phủ định (NOT)

! !0 = đúng

Page 22: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 22

Giới thiệu chung• Các phép toán

– Các phép toán trên bit• Phép OR từng bit: |• Phép AND từng bit: & • Phép XOR từng bit: ^• Phép đảo bit: • Phép dịch trái (nhân 2): <<• Phép dịch phải (chia 2): >>

– Ví dụ• 3 & 5 = 1• a << n /* a*(2n) */• a >> n /* a/(2n) */

Page 23: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

ToToáánn ttửử logic logic nhnhịị phânphân

Dữ liệu chỉ được xử lý sau khi đã chuyển đổi giátrị SỐ thành giá trị NHỊ PHÂN

Mỗi vị trí của bit chỉ trả về kết quả là 1 nếu bit của một trong hai toán hạng là 1 mà khôngkhông phải cả hai toán hạng cùng là 1.

Bitwise XOR ( x ^ y)

Ðảo ngược giá trị của toán hạng (1 thành 0 vàngược lại).

Bitwise NOT( ~ x)

Mỗi vị trí của bit trả về kết quả là 1 nếu bit củamột trong hai toán hạng là 1.

Bitwise OR( x | y)

Mỗi vị trí của bit trả về kết quả là 1 nếu bit củahai toán hạng là 1.

Bitwise AND ( x & y)

Mô tảToán tử

Page 24: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

ToToáánn ttửử logic logic nhnhịị phânphân ((tttt.).)

Ví dụ

• 10 & 15 1010 & 11111010 10

• 10 | 15 1010 | 11111111 15

• 10 ^ 15 1010 ^ 11110101 5

• ~ 10 ~10101…11110101 -11

Page 25: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

ChuyChuyểểnn đđổổii kikiểểuuQui tắc chuyển đổi kiểu tự động trình bày dưới đây nhằm xác định giá trị biểu

thức:a. char và short được chuyển thành int và float được chuyển thành double.b. Nếu có một toán hạng là double, toán hạng còn lại sẽ được chuyển thành

double, và kết quả là double.c. Nếu có một toán hạng là long, toán hạng còn lại sẽ được chuyển thành long, và

kết quả là long. d. Nếu có một toán hạng là unsigned, toán hạng còn lại sẽ được chuyển thành

unsigned và kết quả cũng là unsigned.e. Nếu tất cả toán hạng kiểu int, kết quả là int.

Ví dụ

Page 26: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Operators and Expression 26

ÉÉpp kikiểểuu

Một biểu thức được ép thành một kiểu nhất định bằngcách dùng kỹ thuật ép kiểu (cast). Cú pháp :

(kiểu dữ liệu) castKiểu Bất cứ kiểu dữ liệu hợp lệ trong C

Ví dụ:

float x,f;

f = 3.14159;

x = (int) f;

Giá trị của x sẽ là 3 (số nguyên)

Giá trị số nguyên trả về bởi (int) f được chuyển thành số thực khi nóđược toán tử GÁN xử lý. Song, giá trịcủa f vẫn không đổi.

Page 27: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Operators and Expression 27

ĐĐộộ ưuưu tiêntiên ccủủaa totoáánn ttửử Độ ưu tiên tạo nên cấu trúc phân cấp của loại toán tử nàyso với loại toán tử khác khi tính giá trị một biểu thức số học Nó đề cập đến thứ tự thực thi các toán tử trong C Độ ưu tiên của các toán tử này được thay đổi bởi các dấungoặc đơn trong biểu thức

Phải đến trái=Hai ngôiTrái đến phải+ -Hai ngôiTrái đến phải* / %Hai ngôiTrái đến phải^Hai ngôiPhải đến trái- ++ --Một ngôiTính kết hợpToán tửLoại toán tử

Page 28: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Operators and Expression 28

ĐĐộộ ưuưu tiêntiên ccủủaa totoáánn ttửử ((tttt.).)

Page 29: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Operators and Expression 29

ĐĐộộ ưuưu tiêntiên ccủủaa totoáánn ttửử so so ssáánhnh

Độ ưu tiên của toán tử so sánh (quan hệ) luônđược tính từ trái sang phải

Page 30: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Operators and Expression 30

ĐĐộộ ưuưu tiêntiên ccủủaa totoáánn ttửử logiclogic

OR3AND2NOT1

Toán tửThứ tự ưu tiên

Khi có nhiều toán tử logic trong một điều kiện, ta ápdụng quy tắc tính từ phải sang trái

Page 31: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Operators and Expression 31

Xét biểu thức sau:False OR True AND NOT False AND True

Ðiều kiện này được tính như sau:False OR True AND [NOT False] AND True

NOT có độ ưu tiên cao nhất.False OR True AND [True AND True]

Ở đây, AND có độ ưu tiên cao nhất, những toán tửcó cùng ưu tiên được tính từ phải sang trái.

False OR [True AND True][False OR True]

ĐĐộộ ưuưu tiêntiên ccủủaa totoáánn ttửử luluậậnn lýlý ((tttt.).)

True

Page 32: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Logic (Logical)3So sánh (Comparison)2Số học (Arithmetic)1

Kiểu toán tửThứ tự ưu tiên

Khi một biểu thức có nhiều loại toán tử thì độ ưutiên giữa chúng phải được thiết lập.

ĐĐộộ ưuưu tiêntiên gigiữữaa ccáácc totoáánn ttửử

Page 33: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

ĐĐộộ ưuưu tiêntiên gigiữữaa ccáácc totoáánn ttửử ((tttt.).)

Ví dụ :2*3+4/2 > 3 AND 3<5 OR 10<9

Việc tính toán như sau :[2*3+4/2] > 3 AND 3<5 OR 10<9

Toán tử số học sẽ được tính trước[[2*3]+[4/2]] > 3 AND 3<5 OR 10<9

[6+2] >3 AND 3<5 OR 10<9[8 >3] AND [3<5] OR [10<9]

Page 34: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Kế đến là toán tử so sánh có cùng độ ưu tiên. Ta ápdụng quy tắc tính từ trái sang phải.

True AND True OR FalseCuối cùng là toán tử kiểu logic. AND sẽ có độ ưu tiêncao hơn OR

[True AND True] OR FalseTrue OR False

True

ĐĐộộ ưuưu tiêntiên gigiữữaa ccáácc totoáánn ttửử ((tttt.).)

Page 35: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Thay đổi độ ưu tiên

• Dấu ngoặc đơn ( ) có độ ưu tiên cao nhất• Độ ưu tiên của các toán tử có thể được thay đổi bởidấu ngoặc đơn• Toán tử có độ ưu tiên thấp hơn nếu đặt trong dấungoặc đơn sẽ được thực thi trước• Khi các cặp ngoặc đơn lồng nhau ( ( ( ) ) ), cặp ngoặcđơn trong cùng nhất sẽ được thực thi trước• Nếu trong biểu thức có nhiều cặp ngoặc đơn thì việcthực thi sẽ theo thứ tự từ trái sang phải

Page 36: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

Ví dụ :

5+9*3^2-4 > 10 AND (2+2^4-8/4 > 6 OR (2<6 AND 10>11))

Cách tính :1) 5+9*3^2-4 > 10 AND (2+2^4-8/4 > 6 OR (True AND False))

Dấu ngoặc đơn bên trong sẽ được tính trước2) 5+9*3^2-4 > 10 AND (2+2^4-8/4 > 6 OR False)

Thay đổi độ ưu tiên (tt.)

Page 37: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

3) 5+9*3^2-4 >10 AND (2+16-8/4 > 6 OR False)

Kế đến dấu ngoặc đơn ở ngoài được tính đến4) 5+9*3^2-4 > 10 AND (2+16-2 > 6 OR False)

5) 5+9*3^2-4 > 10 AND (18-2 > 6 OR False)

6) 5+9*3^2-4 > 10 AND (16 > 6 OR False)

7) 5+9*3^2-4 > 10 AND (True OR False)

8) 5+9*3^2-4 > 10 AND True

Thay đổi độ ưu tiên (tt.)

Page 38: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

9) 5+9*9-4>10 AND True

Biểu thức bên trái được tính trước10) 5+81-4>10 AND True

11) 86-4>10 AND True

12) 82>10 AND True

13) True AND True

14) True

Thay đổi độ ưu tiên (tt.)

Page 39: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 39

Giới thiệu chung• Khái niệm hàm

– Là đoạn chương trình viết ra một lần, được sử dụng nhiều lần– Mỗi lần sử dụng chỉ cần gọi tên hàm và cung cấp các tham số

• Cấu trúc chương trình

#include <...> /* Gọi các tệp tiêu đề trong chương trình */#define ... /* Khai báo hằng số */typedef /* Định nghĩa kiểu dữ liệu *//* Nguyên mẫu các hàm: khai báo tên hằm và các tham số *//* Khai báo các biến toàn cục */

main(){

/* Khai báo biến *//* Các câu lệnh */

}

/* Định nghĩa các hàm */

Page 40: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 40

Giới thiệu chung• Các khai báo

– #include: dùng để gọi tệp tiêu đề– Khai báo biến: muốn sử dụng biến thì phải khai báo

trước• Cú pháp: kiểu_dữ liệu danh_sách_các_biến;• Ví dụ

– int x, y;– float a = 10.5, b; /* khai báo và khởi gán */– int a, b, c = 1;

Page 41: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 41

Giới thiệu chung• Các khai báo

– Khai báo hằng• Có hai cách để khai báo hằng, hoặc sử dụng #define hoặc sử dụng

từ khóa const– #define tên_hằng giá_trị_hằng– const kiểu_dữ_liệu tên_hằng = giá_trị_hằng;

• Ví dụ– #define PI 3.14

const float PI = 3.14;

Page 42: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 42

Giới thiệu chung• Phép gán

– Gán giá trị cho một biến– Cú pháp: tên_biến = biểu_thức;– Ví dụ

• x = 0;• y = z + 1;

– Phép gán kép• x = y = z = 1;• x = y + (z = 2);

Page 43: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 43

Giới thiệu chung• Phép tăng 1 (++), giảm 1 (--)

– Ngôn ngữ C cung cấp hai phép toán tăng 1 và giảm 1– Ví dụ

• x = x + 1; sẽ được viết thành: ++x; hoặc x++;• y = y – 1; sẽ được viết thành: --y; hoặc y--;

– Sự khác nhau giữa khi toán tử ++ hoặc -- đứng trước hoặc sau biến làthể hiện trong phép gán: biến = biểu_thức

• Nếu toán tử ++x (--x) xuất hiện trong biểu_thức thì x sẽ được tăng (giảm) 1 trước khi thực hiện phép gán

• Nếu toán tử x++ (x--) xuất hiện trong biểu_thức thì thực hiện phép gántrước khi x được tăng (giảm) 1

– Ví dụ• a = 5; b = ++a; kết quả ?• a = 5; b = a++; kết quả ?

Page 44: Lập trình cơ bản: Ngôn ngữlập trình Cfit.mta.edu.vn/files/DanhSach/Bai1_Cackhainiemcoban.pdf · • “lap trinh” hằng là một chuỗi kí tự • Biến – là

2-Dec-13 44

Giới thiệu chung• Tóm lại

– Các từ khóa, tên– Các kiểu dữ liệu chuẩn– Các phép toán– Cấu trúc chung một chương trình C– Các khai báo– Phép gán– Phép tăng 1, giảm 1