LỜI NĨI ĐẦU
Giáo trình Lập trình cơ bản với C trang bị cho sinh viên ngành
kỹ thuật nói chung và sinh viên ngành cơng nghệ thơng tin
nói riêng những kiến thức và kỹ năng lập trình cơ bản. Kiến thức
và kỹ năng lập trình cơ bản với C là nền tảng để sinh viên tiếp
cận với kỹ thuật lập trình hƣớng đối tƣợng, lập trình trực quan,
lập trình web, lập trình di động trên các cơng cụ và mơi trƣờng
phát triển phần mềm thông dụng; làm cơ sở cho học phần có
minh họa bằng ngơn ngữ lập trình C nhƣ: Kỹ thuật đồ họa,
Cấu trúc dữ liệu và Giải thuật, Lập trình hợp ngữ, …
Xuất phát từ nhu cầu tài liệu học tập và nghiên cứu cho
sinh viên ngành kỹ thuật nói chung và sinh viên ngành Cơng nghệ
thơng tin nói riêng tại trƣờng Đại học Sƣ phạm Kỹ thuật, Đại học
Đà Nẵng, chúng tôi đã tổ chức biên soạn cuốn giáo trình với tên
“Giáo trình Lập trình cơ bản với C” dựa trên kinh nghiệm
giảng dạy và hƣớng dẫn thực hành trong nhiều năm qua của
nhóm tác giả trong lĩnh vực này.
Nội dung của giáo trình bao gồm 9 chƣơng:
Chƣơng 1: Trình bày các vấn đề về phƣơng pháp lập trình
Chƣơng 2: Trình bày các thành phần cơ bản trong lập trình C
Chƣơng 3: Trình bày các câu lệnh trong ngơn ngữ lập trình C
Chƣơng 4: Trình bày cách xây dựng hàm tự tạo
Chƣơng 5: Giới thiệu dữ liệu kiểu con trỏ
Chƣơng 6: Giới thiệu dữ liệu kiểu mảng
Chƣơng 7: Giới thiệu dữ liệu kiểu chuỗi
Chƣơng 8: Giới thiệu dữ liệu kiểu cấu trúc
Chƣơng 9: Giới thiệu dữ liệu kiểu file
Trong mỗi chƣơng đều có các ví dụ minh họa cụ thể. Cuối mỗi
chƣơng có phần bài tập giúp sinh viên củng cố lại nội dung
kiến thức.
Đề hồn thành giáo trình này, chúng tơi xin cảm ơn sự
quan tâm và góp ý của các đồng nghiệp tại trƣờng Đại học
Sƣ phạm kỹ thuật-Đại học Đà Nẵng, trƣờng Đại học Bách khoaĐại học Đà Nẵng. Mặc dù đã có nhiều cố gắng trong q trình
biên soạn nhƣng cũng khơng thể tránh khỏi những thiếu sót.
Chúng tơi mong nhận đƣợc những ý kiến góp ý chân thành của
bạn đọc về nội dung, chất lƣợng và hình thức trình bày để
giáo trình đƣợc hồn thiện hơn trong lần tái bản.
Chúng tôi cũng chân thành cảm ơn các tác giả về những
bài giảng, những cuốn sách mà chúng tôi có sử dụng làm tài liệu
tham khảo.
Mọi ý kiến đóng góp xin gửi về theo địa chỉ: Khoa ĐiệnĐiện tử, trƣờng Đại học Sƣ phạm Kỹ Thuật-Đại học Đà Nẵng,
48 Cao Thắng, Tp. Đà Nẵng. Email:
Đà Nẵng, tháng 03 năm 2019
Chương 1: PHƯƠNG PHÁP LẬP TRÌNH
I. Khái niệm lập trình
1. Lập trình
Lập trình là lập ra chƣơng trình làm việc cho máy tính
thực hiện để giải quyết một cơng việc cụ thể nào đó. Q trình
lập trình đƣợc thực hiện trình tự theo sơ đồ sau:
Con ngƣời
(Lập trình viên)
Ngơn ngữ
tự nhiên
Chƣơng trình dịch
Ngơn ngữ
lập trình
Con ngƣời
(biết thuật tốn)
Bài tốn/
vấn đề
Ngơn ngữ
máy
Con ngƣời
(khi chương trình
gặp lỗi cú pháp)
Máy thực hiện
Con ngƣời
(khi chương trình gặp
lệnh nhập dữ liệu)
Con ngƣời
(kiểm tra thuật tốn)
Kết quả
2. Chương trình
a) Chƣơng trình: là sự mơ tả thuật tốn dƣới dạng ngơn ngữ
lập trình, nhằm đƣa cho máy tính giải quyết một cơng việc
cụ thể nào đó.
b) Cấu trúc chƣơng trình
- Cấu trúc tuần tự: xét tồn cục chƣơng trình có bắt đầu và
có kết thúc.
- Cấu trúc rẽ nhánh: tùy thuộc vào dữ liệu đƣa vào.
- Cấu trúc lặp: có 1 đoạn chƣơng trình nào đó đƣợc lặp đi lặp
lại nhiều lần.
+ Lặp với số lần lặp biết trƣớc
+ Lặp với số lần lặp không biết trƣớc
o Kiểm tra điều kiện trƣớc khi lặp
o Kiểm tra điều kiện sau khi lặp
- Cấu trúc chƣơng trình con: một đoạn chƣơng trình viết một
lần và đƣợc sử dụng nhiều lần trong chƣơng trình.
3. Ngơn ngữ lập trình
Ngơn ngữ lập trình là một ngơn ngữ dùng để viết chƣơng trình
cho máy tính. Các loại ngơn ngữ lập trình.
a) Ngơn ngữ máy: là tập hợp các lệnh máy, lệnh máy phải làm
một số công việc nhƣ:
Lệnh máy tổng quát:
OP OP1
OP OP1 OP2
OP OP1 OP2 OP3
OP là mã phép toán
OP1, OP2, OP3: là các toán hạng
- Mã phép toán: là mã chỉ ra phép toán máy cần thực hiện.
- Các toán hạng: chỉ ra nơi chứa số liệu tham gia phép
toán hoặc nơi chứa kết quả của phép toán.
* Yêu cầu của lệnh máy:
- Phải chỉ ra phép tốn thực hiện cái gì?
- Các dữ liệu tham gia phép toán đặt ở đâu.
- Kết quả thực hiện đặt vào đâu.
- Lệnh tiếp theo là lệnh nào.
* Tại sao khơng dùng lệnh máy để giải bài tốn:
- Các lệnh khó học và khó nhớ.
- Tổ chức chƣơng trình khó khăn vì tính cấu trúc thấp.
* Ƣu điểm: Tính tối ƣu cao.
b) Ngơn ngữ kí hiệu: kí hiệu mã số thành tên lệnh.
Đặc điểm: mỗi 1 kí hiệu tƣơng đƣơng ngơn ngữ máy, nên
cấu trúc của nó vẫn khó.
c) Ngơn ngữ lập trình bậc cao: gần với ngơn ngữ tự nhiên và
chính xác nhƣ ngơn ngữ tốn học.
- Mỗi một lệnh trong ngôn ngữ tƣơng đƣơng với một
hoặc nhiều lệnh máy.
- Cách tổ chức chƣơng trình thuận tiện bởi trong
ngơn ngữ lập trình bậc cao hầu hết có các cơng cụ hỗ
trợ giúp cho chƣơng trình.
- Việc mơ tả chƣơng trình gần với thuật tốn trong
ngơn ngữ tự nhiên.
d) Chƣơng trình dịch
Máy tính có ngơn ngữ riêng gọi là ngôn ngữ máy và đƣợc viết
dƣới dạng nhị phân (0, 1). Các ngơn ngữ lập trình khơng sử dụng
ngơn ngữ máy. Vì vậy, trong mỗi ngơn ngữ lập trình phải có một
chƣơng trình để dịch từ ngơn ngữ lập trình này sang ngơn
ngữ máy, đó là chƣơng trình dịch.
4. Cơng cụ lập trình
Cơng cụ lập trình đƣợc phân loại:
- Theo ngơn ngữ lập trình: với C có Visual C++, C++
Builder, …; với Pascal có Borland Pascal, Delphi,…
- Theo phạm vi sử dụng: với lập trình hệ thống có
Microsoft Assembly, Borland C, … ; với lập trình trực
quan có Visual Basic, Jbuilder,…; với lập trình mạng có
Java, ASP, PHP…
- Theo phong cách lập trình: với cổ điển có Pascal,
Fortran, …; với hƣớng đối tƣợng có C++, SmallTalk,
Java, …
Cơng cụ lập trình Dev-C đƣợc dùng để minh họa các ví dụ
trong giáo trình Lập trình cơ bản với C. Dev-C là cơng cụ
lập trình trên hệ điều hành Windows với giao diện tích hợp cho
phép lập trình bằng C/C++.
II. Thuật tốn
Thuật tốn là trình tự các bƣớc (các qui tắc) của một hay
nhiều đối tƣợng tác động lên một hay nhiều đối tƣợng để nhận
đƣợc kết quả.
Ví dụ: thuật tốn nấu cơm, giải phƣơng trình bậc hai, ...
1. Trình bày thuật tốn
Bốn động từ thƣờng đƣợc dùng trong trình bày thuật tốn:
1. Nhập ? (nhập cái gì)
2. Hiển thị/Xuất/Kết luận ? (xác định lời nói hay giá trị)
3. Tính tốn
vế trái = vế phải
ví dụ: S = a+b
Khơng dùng a+b = S
4. Kiểm tra
nếu (điều kiện)
→ thực hiện công việc 1
ngƣợc lại
→ thực hiện công việc 2
Chú ý:
- 1 điều kiện: (vế trái so sánh vế phải)
Ví dụ: a>0
Phép toán so sánh:
> , >= , < , <= , == (bằng) != (khác)
- Để kết hợp nhiều điều kiện ta dùng phép tốn và "&&"
hay phép tốn hoặc "||"
Ví dụ:
a>0
→ 1 điều kiện
a>0 && b<0
→ kết hợp 2 điều kiện
a) Biểu diễn thuật toán theo phƣơng pháp liệt kê từng bƣớc:
dùng các bƣớc để nêu lên trình tự thực hiện trong
thuật tốn.
Ví dụ 1: Biểu diễn thuật tốn của bài tốn tính tổng hai số.
Vào: a, b
Ra: Tg
B1: nhập a, b
B2: tính Tg = a+b
B3: hiển thị giá trị Tg
B4: kết thúc
Ví dụ 2: Biểu diễn thuật toán của bài toán nhập một số cho
biết số đó là số dƣơng, số âm hay số không.
Vào: x
Ra:
Số dƣơng
Số âm
Số không
B1: nhập x
B2: Kiểm tra
nếu (x>0)
→ hiển thị Số dương → B4
ngƣợc lại
→ B3
B3: Kiểm tra
nếu (x<0)
→ hiển thị Số âm → B4
ngƣợc lại
→ hiển thị Số không → B4
B4: kết thúc
b) Biểu diễn thuật toán theo phƣơng pháp sơ đồ khối: dùng
các hình để biểu diễn thuật tốn
Hình
Cơng việc
Bắt đầu thuật tốn
Kết thúc thuật tốn
Tính tốn
- Nhập
- Xuất/Hiển thị/Kết luận
Điều kiện
S
Kiểm tra
Đ
Đƣờng đi
Ví dụ 1: Trình bày thuật tốn bài tốn nhập một số cho biết số
đó là số dƣơng, số âm hay số không.
Vào: x
Ra:
Số dƣơng; Số âm;
Số khơng
Begin
x
S
x>0
S
x<0
Đ
Đ
Số dƣơng
Số âm
Số khơng
End
Ví dụ 2: Trình bày thuật tốn của bài tốn giải phƣơng trình
bậc nhất ax + b = 0
Vào: a, b
Ra: x; Vô nghiệm; Vô số nghiệm
Begin
a, b
a!=0
Đ
x= -b/a
x
End
S
b == 0
S
Vô nghiệm
Đ
Vô số nghiệm
2. Một số tính chất của thuật tốn
- Tính dừng: sau một số hữu hạn các bƣớc phải nhận kết quả.
- Tính khả thi: trong thực tế có điều kiện để thực hiện đƣợc.
- Tính phổ dụng: khi xây dựng một thuật tốn nó giải quyết
đƣợc các bài tốn và cho kết quả đúng.
- Tính duy nhất: cùng một dữ liệu giống nhau cho kết quả
giống nhau trên nhiều máy.
3. Một số chú ý về thuật tốn
- Tìm cách giải: có sẵn.
- Xác định bài tốn khơng lời giải: đó là trƣờng hợp các
điều kiện của bài toán mâu thuẫn nhau.
- Tối ƣu hóa thuật tốn
- Xác định độ phức tạp của thuật tốn:
+ Thời gian tính tốn
+ Số ơ nhớ đƣợc sử dụng
III. Các phương pháp lập trình
Có ba phƣơng pháp lập trình cơ bản:
- Lập trình tuyến tính: các phần việc diễn đạt tuần tự từ trên
xuống dƣới. Nhƣợc điểm là chƣơng trình dài, khó kiểm sốt,
khó phân cơng.
- Lập trình có cấu trúc: chƣơng trình phân thành các hàm và
các thủ tục. Trong lập trình có cấu trúc ngƣời ta xây dựng
nhiều cấu trúc dữ liệu khác nhau.
Chƣơng trình = Cấu trúc dữ liệu + Giải thuật
Lập trình có cấu trúc u cầu ngƣời lập trình phải có
kiến thức rất vững về cấu trúc dữ liệu. Cấu trúc dữ liệu là
một cách tổ chức lƣu trữ và truy cập dữ liệu trong máy tính
để có thể đƣợc sử dụng một cách hiệu quả. Cấu trúc dữ liệu
phụ thuộc vào cơng cụ lập trình. Ví dụ trong C có dữ liệu
kiểu Mảng, kiểu Con trỏ, kiểu Chuỗi, kiểu Cấu trúc, …
Các cấu trúc dữ liệu đƣợc triển khai bằng cách sử dụng
các kiểu dữ liệu, các tham chiếu và các phép tốn trên đó
đƣợc cung cấp bởi một ngơn ngữ lập trình.
Giải thuật phụ thuộc chặt chẽ vào dữ liệu, do vậy chỉ cần
thay đổi nhỏ ở cấu trúc dữ liệu cũng có thể làm thay đổi
giải thuật và nhƣ vậy phải viết lại chƣơng trình.
- Lập trình hƣớng đối tƣợng:
Đối tƣợng = Dữ liệu + Phƣơng thức
Thiết kế chƣơng trình xoay quanh dữ liệu của hệ thống,
nghĩa là lúc này các thao tác xử lý của hệ thống đƣợc
gắn liền với dữ liệu và nhƣ vậy nếu có sự thay đổi một ít
của dữ liệu cũng chỉ ảnh hƣởng một ít đến các hàm xử lý
liên quan. Sự gắn kết giữa dữ liệu và các hàm xử lý tạo nên
đối tƣợng.
IV. Bài tập chương 1
1) Trình bày thuật toán theo phƣơng pháp liệt kê từng bƣớc
của bài tốn giải phƣơng trình bậc nhất.
2) Trình bày thuật tốn theo phƣơng pháp liệt kê từng bƣớc
của bài tốn giải phƣơng trình bậc hai ax2 + bx + c = 0
(giả sử a ≠ 0).
3) Trình bày thuật tốn theo phƣơng pháp liệt kê từng bƣớc
của bài tốn tìm ƣớc số chung lớn nhất của hai số
ngun dƣơng.
4) Trình bày thuật tốn theo phƣơng pháp liệt kê từng bƣớc
của bài tốn tính diện tích hình chữ nhật với chiều dài và
chiều rộng nhập vào phải là các số dƣơng. Nếu nhập sai thì
cho nhập lại.
5) Trình bày thuật tốn theo phƣơng pháp vẽ sơ đồ khối của
bài tốn giải phƣơng trình bậc hai ax2 + bx + c = 0 (có xét
trƣờng hợp a= 0).
6) Trình bày thuật tốn theo phƣơng pháp vẽ sơ đồ khối của
bài tốn tìm ƣớc số chung lớn nhất của hai số
ngun dƣơng.
7) Trình bày thuật tốn theo phƣơng pháp vẽ sơ đồ khối của
bài toán rút gọn phân số.
8) Trình bày thuật tốn theo phƣơng pháp vẽ sơ đồ khối của
bài tốn cộng hai phân số
9) Trình bày thuật toán theo phƣơng pháp vẽ sơ đồ khối của
bài toán tính diện tích hình chữ nhật với chiều dài và chiều
rộng nhập vào phải là các số dƣơng, nếu nhập sai thì cho
nhập lại.
10) Trình bày thuật tốn theo phƣơng pháp vẽ sơ đồ khối của
bài toán nhập vào một tháng và một năm, cho biết tháng đó
có bao nhiêu ngày.
Chương 2: CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH C
I. Tập các kí tự
Tập các kí tự đƣợc dùng trong ngơn ngữ lập trình C gồm:
- Chữ cái: A .. Z, a.. z
- Chữ số: 0 .. 9
- Các phép toán: + - * / %
- Dấu gạch nối _
- Dấu cách (kí tự trắng)
- Các kí tự khác: ! $ & ... (các kí tự cịn lại trên bàn phím)
II. Tên và cách đặt tên
Tên trong lập trình có hai loại là tên chuẩn và tên do ngƣời
lập trình đặt.
Tên chuẩn là tên do C đặt sẵn nhƣ: int, char, float, sqrt, abs,…
Tên do ngƣời lập trình đặt là dùng để đặt cho các đối tƣợng
khác nhau của chƣơng trình nhƣ: tên biến, tên hằng, tên mảng,
tên hàm, tên tập tin, …
Quy định cách đặt tên:
- Gồm các chữ cái, chữ số, dấu gạch dƣới;
- Bắt đầu bằng chữ cái hoặc dấu gạch dƣới;
- Không giới hạn độ dài tối đa của tên, nhƣng nếu đặt dài thì
chỉ có 31 ký tự đầu tiên là có ý nghĩa;
- Khơng có dấu cách;
- Khơng trùng với từ khố;
- Có sự phân biệt giữa chữ hoa và chữ thƣờng;
- Có thể đặt tên trùng với tên chuẩn nhƣng khi đó ý nghĩa của
tên chuẩn khơng cịn tác dụng nữa.
III. Cấu trúc chương trình
1. Cách viết chương trình
Chƣơng trình là dãy các câu lệnh. Để viết chƣơng trình ta phải
biết cú pháp của các câu lệnh.
Câu lệnh gồm: Tênlệnh(Các tham số nếu có);
Kết thúc câu lệnh bằng dấu chấm phẩy ";"
Các câu lệnh trong chƣơng trình nên viết trên từng hàng và
nên nhóm thẳng hàng với các câu lệnh ngang cấp.
Để chƣơng trình sáng sủa rõ ràng và tốt lên đƣợc tính cấu trúc.
Nên viết thêm các dịng chú thích ngay từ đầu
Dịng chú thích:
Đƣợc đặt trong cặp dấu /* .............................. */
Lời chú thích trên một dịng đƣợc đặt sau dấu //…..
Sau đây là một ví dụ trình bày việc nhóm thẳng hàng các
câu lệnh ngang cấp của bài giải phƣơng trình bậc hai.
Khai báo a, b, c, delta, x1, x2
Nhập a, b, c
Tính delta = b*b – 4*a*c
Nếu (delta>0)
Tính x1 = (-b + sqrt(delta))/(2*a)
Tính x1 = (-b - sqrt(delta))/(2*a)
Hiển thị giá trị x1 và x2
Ngƣợc lại
Nếu (delta==0)
Tính x = -b/(2*a)
Hiển thị giá trị x
Ngƣợc lại
Hiển thị Vô nghiệm
2. Cấu trúc của một chương trình
# include <stdio.h>
Gọi các tập tin tiền xử lý
……………
………………..
Khai báo các hàm tự tạo;
void main ()
// Là hàm chính, bắt buộc phải có.
{
Khai báo dữ liệu;
Các câu lệnh;
}
Ví dụ: Chƣơng trình tính diện tích, chu vi hình tròn
# include <stdio.h>
main()
{
float bk, dt, cv;
printf ("nhap ban kinh: ");
scanf("%f",&bk);
dt = 3.14 * bk * bk;
cv = 2 * 3.14 * bk ; //tính chu vi
printf("Dien tich la: %0.2f \nChu vi la %0.2f", dt, cv);
}
- Một chƣơng trình trong C gồm một dãy các hàm viết
liên tiếp nhau, bao giờ cũng có hàm main(), ngồi ra cịn có
những hàm khác.
- Thứ tự các hàm trong C là bất kỳ: hàm main() có thể đứng
trƣớc, sau, hoặc xen kẽ với các hàm khác.
IV. Các công việc và các bước cơ bản trong lập trình
1. Các cơng việc trong lập trình
- Mở tập tin mới:
+ Turbo C: nhấn tổ hợp phím ALT F /gõ N, lúc này tập
tin chƣa có tên (NONAME.CPP)
+ Dev-C: nhấn tổ hợp phím Ctrl N, lúc này tập tin chƣa có
tên (Untitled)
- Mở tập tin đã có trên đĩa:
+ Turbo C: F3 xuất hiện hộp hội thoại ta gõ tên trong
hộp Name. Nếu tên tập tin có trên đĩa thì máy thực hiện
mở tập tin đó. Nếu tên tập tin khơng có trên đĩa máy
thực hiện mở tập tin mới với tên ta gõ vào.
+ Dev-C: nhấn tổ hợp phím Ctrl O và chọn tập tin trong
hội thoại.
- Lƣu tập tin: nếu tập tin chƣa có tên thì máy u cầu đặt tên,
nếu đã có tên thì máy tự lƣu và khơng thơng báo gì cả.
+ Turbo C: nhấn phím F2
+ Dev-C: nhấn tổ hợp phím Ctrl S
- Thao tác về khối:
+ Turbo C:
Chọn khối: di chuyển con trỏ đến đầu khối,
giữ phím Shift và di chuyển con trỏ đến cuối khối.
Ctrl K C: sao chép khối
Ctrl K V: di chuyển khối
Ctrl K Y: xóa khối
Ctrl K H: thôi đánh dấu khối.
+ Dev-C: thao tác nhƣ các ứng dụng trong Windows.
2. Các bước cơ bản khi xây dựng một chương trình
B1: Mở tập tin mới
B2: Soạn thảo chƣơng trình (lập trình)
B3: Lƣu tập tin: phần mở rộng của tập tin mặc định là .CPP
(C++). Với C phần mở rộng .C
B4: Dịch chƣơng trình: nhấn phím F9. Khi dịch
chƣơng trình nếu gặp lỗi máy thông báo vào ta phải sửa
lại tất cả các lỗi. Sau khi sửa xong ta lƣu lại. Với Dev-C
khi dịch chƣơng trình nếu tập tin chƣa lƣu thì Dev-C
yêu cầu lƣu tập tin.
B5: Chạy chƣơng trình: khi chạy chƣơng trình máy
thực hiện tuần tự các câu lệnh theo thứ tự từ trên xuống.
Nếu gặp lệnh nhập dữ liệu máy dừng lại chờ ngƣời
sử dụng nhập đủ các giá trị vào rồi mới thực hiện các
lệnh tiếp theo.
+ Turbo C: nhấn tổ hợp phím Ctrl F9
+ Dev-C: nhấn F11
B6: Kiểm tra kết quả trên màn hình.
V. Một số tập tin tiền xử lý cơ bản
ctype.h
quản lí kí tự
math.h
các hàm toán học
stdio.h
các hàm vào ra
string.h
quản lí bộ nhớ và xâu kí tự
VI. Kiểu dữ liệu chuẩn trong C
Một kiểu dữ liệu đƣợc định nghĩa với hai điểm chính là:
- Một tập hợp các giá trị mà một biến thuộc kiểu đó có thể
nhận đƣợc. Trên đó xác định một số phép tốn.
- Dữ liệu đƣợc chứa trong bộ nhớ máy tính với số lƣợng
ơ nhớ nhất định tính theo đơn vị byte.
1. Kiểu số nguyên
Kiểu
Phạm vi biểu diễn
Kích thƣớc
2 byte
int
-32768 32767
long int
-2147483648
2147483648
4 byte
0 65536
2 byte
0 4294967295
4 byte
unsigned int
unsigned long int
2. Kiểu số thực: gồm phần nguyên và phần thập phân đƣợc
ngăn cách nhau bằng dấu chấm "."
Phạm vi biểu diễn
Chữ số
có ý nghĩa
float
1.5E-45 3.4E +38
78
Kích
thƣớc
4 byte
double
5E -324 1.7E+308
15 16
8 byte
Kiểu
3. Kiểu kí tự: kí tự đƣợc biểu diễn bởi 1 byte, có 256 giá trị
khác nhau đƣợc đánh số từ 0 255, theo giá trị trong
bảng mã ASCII.
Kiểu
char
Phạm vi biểu diễn
0 255
Kích thƣớc
1 byte
Chú ý: trong C xem kí tự nhƣ là một số ngun. Ta có thể trừ hai
kí tự cho nhau.
Ví dụ:
'A' - 'B' = -1
'A' - 1 = 64
'A' - '1' = 16
Giá trị trong bảng mã ASCII của một số kí tự thƣờng gặp:
Kí tự
A
B
C
….
Giá trị
65
66
67
…
Kí tự
a
b
c
…
Giá trị
97
98
99
…
Kí tự
0
1
2
…
Giá trị
48
49
50
…
VII. Kiểu dữ liệu tự định nghĩa
Dùng để định nghĩa kiểu dữ liệu theo ngƣời lập trình.
Cú pháp:
typedef kiểudữliệu tênkiểu;
Kiểu dữ liệu: là kiểu dữ liệu trong C.
Tên kiểu: là tên kiểu dữ liệu tự định nghĩa.
Trong cấu trúc chƣơng trình, phần định nghĩa kiểu dữ liệu
đƣợc đặt sau các #include.
Ví dụ:
Nếu ta khai báo
songuyen x;
Khai báo nhƣ trên máy báo lỗi vì trong C khơng có kiểu
songuyen. Để trong C có kiểu songuyen nhƣ trên ta phải định kiểu
dữ liệu kiểu songuyen.
typedef
int songuyen;
VIII. Các đại lượng dùng trong lập trình
Trong lập trình có 4 đại lƣợng thƣờng dùng:
- Hằng
- Biến
- Hàm
- Biểu thức
1. Hằng
Hằng là đại lƣợng có giá trị khơng thay đổi.
a) Hằng số thực_ dấu phẩy động: có hai cách biểu diễn số
dấu phẩy động.
Cách 1: Dùng dấu chấm để ngăn cách phần nguyên và
phần thập phân.
Ví dụ:
3.4
5.0
Cách 2: dạng mũ, kí pháp khoa học. Số đƣợc tách phần
định trị và bậc. Phần định trị có thể là nguyên hay thực.
Phần bậc ln là số ngun.
Ví dụ:
1E2 = 1x102 = 100.0
0.00001 = 1E-5
b) Hằng int: là số nguyên trong từ -32768 32767
Ví dụ:
-47
368
c) Hằng long: là số ngun vƣợt ngồi phạm vi của hằng int
Ví dụ:
50000
d) Hằng int hệ 8:
(023)8 = 19
e) Hằng nguyên hệ 16:
Biểu diễn:
0x h1 h2 ....
chữ số hệ 16
Ví dụ: 0xAB = 10*16 + 11*160 = 171
f) Hằng kí tự:
Cách 1: đặt trong cặp dấu nháy đơn " ' "
Ví dụ:
'A'
Cách 2: dùng ln số thứ tự của nó trong bảng mã ASCII
Ví dụ: 65 hiểu là chữ A
printf("%d",65);
65
printf("%d",'A');
65
printf("%c", 65); A
printf("%c",'A');
A
C1: '\t1 t2 t3'
t1 t2 t3: là số hệ 8 biểu diễn mã kí tự
Ví dụ:
printf("%d",'\101');
65
printf("%c",'\101');
A
g) Hằng chuỗi kí tự: (hằng xâu kí tự)
Chuỗi kí tự là dãy kí tự bất kỳ đặt trong cặp dấu nháy kép " " ".
Ví dụ: "Ha Noi"
để lƣu trữ n kí tự dùng n+1 byte
H
Chứa mã của chữ H
a
32
N
o
i
Mã của kí tự trắng
\0
byte đặt dấu
hiệu kết thúc
Khai báo hằng
const kiểudữliệu tênhằng = giátrị;
Ví dụ: const float pi = 3.14; →khai báo hằng có giá trị 3,14
Trong cấu trúc chƣơng trình phần khai báo hằng nằm trƣớc
hàm main() và sau các khai báo include.
2. Biến
Biến là đại lƣợng mà giá trị của nó có thể thay đổi trong suốt
thời gian thực hiện chƣơng trình. Mục đích của khai báo biến là
để cấp phát một vùng nhớ trong bộ nhớ và vùng nhớ này
tuỳ thuộc vào kiểu dữ liệu của biến. Vùng nhớ là một số byte
liên tiếp nhau. Số thứ tự byte đầu của vùng nhớ là địa chỉ.