N i dung ội dung Tổng quan Bộ chữ viết Từ khóa Định danh Thư viện chuẩn C Các hàm toán học cơ bản trong C Cấu trúc một chương trình C... T ng quan ổng quan C là ngôn ngữ lập trìn
Trang 1Ch ương 4 ng 4 CÁC THÀNH PH N C B N ẦN CƠ BẢN Ơ BẢN ẢN
C A NGÔN NG L P TRÌNH C ỦA NGÔN NGỮ LẬP TRÌNH C Ữ LẬP TRÌNH C ẬP TRÌNH C
http://slide-giaotrinh.tk
Lý thuy t ngôn ng l p trình ết ngôn ngữ lập trình ữ lập trình ập trình
Trang 2N i dung ội dung
Tổng quan
Bộ chữ viết
Từ khóa
Định danh
Thư viện chuẩn C
Các hàm toán học cơ bản trong C Cấu trúc một chương trình C
Trang 3T ng quan ổng quan
C là ngôn ngữ lập trình cấp cao, được sử dụng
phổ biến để lập trình hệ thống và phát triển các
ứng dụng
Vào những năm cuối thập kỷ 60 đầu thập kỷ 70
của thế kỷ 20, Dennish Ritchie phát triển ngôn ngữ lập trình C dựa trên ngôn ngữ BCPL và ngôn ngữ B
Ban đầu, C được thiết kế nhằm lập trình trong môi trường của hệ điều hành Unix nhằm hỗ trợ cho
các công việc lập trình phức tạp
Nhưng về sau, với những nhu cầu phát triển ngày một tăng của công việc lập trình, C đã vượt qua khuôn khổ của phòng thí nghiệm Bell và nhanh
chóng hội nhập vào thế giới lập trình
Trang 4C hỗ trợ rất nhiều phép toán nên phù hợp cho việc giải quyết các bài toán kỹ thuật có nhiều công
thức phức tạp
C cũng cho phép người lập trình tự định nghĩa
thêm các kiểu dữ liệu trừu tượng khác
C được phổ biến khá rộng rãi và đã trở thành một công cụ lập trình khá mạnh, được trong việc xây dựng những phần mềm hiện nay.
Trang 5T ng quan ổng quan
Ngôn ngữ C có những đặc điểm cơ bản sau:
Tính cô đọng (compact): C chỉ có 32 từ khóa chuẩn và 40 toán tử chuẩn, nhưng hầu hết đều được biểu diễn bằng những chuỗi ký tự ngắn gọn
Tính cấu trúc (structured): C có một tập hợp những chỉ thị của lập trình như cấu trúc lựa chọn, lặp…
Tính tương thích (compatible): dễ dàng chuyển từ máy
tính này sang máy tính khác
Tính linh động (flexible): C là một ngôn ngữ rất uyển
chuyển v ề cú pháp, chấp nhận nhiều cách thể hiện, có thể thu gọn kích thước của các mã lệnh làm chương trình
chạy nhanh hơn
Biên dịch (compile): C cho phép biên dịch nhiều tập tin
chương trình riêng rẽ thành các tập tin đối tượng (object)
và liên kết (link) các đối tượng đó lại với nhau thành một chương trình có thể thực thi được (executable) thống nhất
Trang 6B ch vi t ộ chữ viết ữ lập trình ết ngôn ngữ lập trình
Bộ chữ viết trong ngôn ngữ C bao gồm những
ký tự, ký hiệu sau (phân biệt chữ hoa và chữ thường):
26 chữ cái in hoa A,B,C Z
26 chữ cái in thường a,b,c z
Trang 7T khóa ừ khóa
Từ khóa là từ dành riêng cho ngôn ngữ
C cung cấp một thư viện các từ khóa để hỗ trợ cho công việc lập trình
Ví dụ: break, char, continue, case, do, double, default, else, float, for, goto, int,if, long, return, struct, switch, unsigned, while, typedef, union voi, volatile,
Lưu ý:
Không được dùng từ khóa đặt tên cho các
định danh do người lập trình khai báo (biến,
hằng, mảng,… )
Từ khóa phải được viết bằng chữ thường
Trang 8printf(“Xin chao ban %s\n ”,ten);
printf(“Chao mung ban den voi Ngon ngu lap trinh C”); getch();
return 0;
}
Trang 9Đ nh danh ịnh danh
Định danh (tên) được dùng để đặt cho
chương trình, hằng, kiểu, biến, chương trình con
Tên 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ư:
tên kiểu: int, char, float,…
tên hàm: sin, cos
Trang 10Đ nh danh ịnh danh
Tên do người lập trình tự đặt sử dụng bộ chữ cái, chữ
số và dấu gạch dưới (_) để đặt tên
Quy tắc đặt tên:
Bắt đầu bằng một chữ cái hoặc dấu gạch dưới
Không có khoảng trống ở giữa tên
Không được trùng với từ khóa
Độ dài tối đa của tên là không giới hạn, tuy nhiên chỉ có
31 ký tự đầu tiên là có ý nghĩa
Ví dụ:
Tên hợp lệ: a, i, ho_ten, do_dai
Tên không hợp lệ: do dai, 01A
Trang 11Mọi chương trình C khi hoạt động gần như phải phụ thuộc vào thư viện chuẩn
Lưu ý: Không được viết hoa tên thư viện
chuẩn khi lập trình
Trang 12Th vi n chu n C ư ện chuẩn C ẩn C
Thư viện chuẩn C bao gồm:
<assert.h>: hỗ trợ phát hiện các lỗi lô-gíc và các kiểu lỗi khác trong các phiên bản dùng để tìm lỗi của một chương trình
<complex.h>: tập hợp các hàm dùng để điều chỉnh các số phức
<ctype.h>: phân lớp các kí tự bởi các kiểu hay dùng để chuyển đổi giữa chữ viết hoa và viết thường
<errno.h>: thử (hay hiển thị) các lỗi được báo cáo từ các hàm thư viện
Trang 13Th vi n chu n C ư ện chuẩn C ẩn C
<fenv.h>: kiểm soát môi trường chấm động
<float.h>: gồm định nghĩa các hằng nêu ra các đặc tính xây dựng của thư viện chấm động
<inttypes.h>: dùng cho việc chuỷen đổi kiểu chính xác giữa các kiểu nguyên
<iso646.h>: để lập trình trong ISO 646 cho cho các bộ kí tự khác nhau
<limits.h>: chứa định nghĩa các hằng có đặc tính đặc biệt của các kiểu nguyên
<locale.h>: dùng cho setlocale() và các hằng
có liên quan
Trang 14Th vi n chu n C ư ện chuẩn C ẩn C
<math.h>: tính các hàm số thông dụng
<setjmp.h>: dùng trong việc thoát ra nơi không
có tính địa phương
<signal.h>: kiểm soát các điều kiện ngoại lệ
<stdarg.h>: truy cập số lượng khác nhau của các đối số được chuyển vào hàm
<stdbool.h>: dùng cho kiểu dữ liệu Bool
<stdint.h> : dùng trong việc định nghĩa các kiểu nguyên khác nhau
<stddef.h>: cung cấp nhiều kiểu và macro hữu dụng
Trang 15Th vi n chu n C ư ện chuẩn C ẩn C
<stdio.h>: cung cấp khả năng nhập trong C
<stdlib.h>: dùng để xúc tiến nhiều phép toán, bao
gồm sự chuyển đổi, các số giả ngẫu nhiên, cấp phát vùng nhớ, kiểm soát quá trình, môi trường, tín hiệu, tìm kiếm, và xếp thứ tự
<string.h>: Để điều chỉnh nhiều loại dãy kí tự
<tgmath.h>: Dùng cho các hàm toán kiểu thông dụng
<time.h>: Để chuyển đổi giữa các định dạng khác
nhau về thì giờ và ngày tháng
<wchar.h>: Để điều chỉnh độ rộng của các dòng và nhiều loại dãy kí tự sử dụng nhiều kí tự có độ lớn
<wctype.h>: Để phân lớp các kí tự có độ lớn.
Trang 16Th vi n chu n C ư ện chuẩn C ẩn C
Các tập tin thư viện thông dụng:
stdio.h: Tập tin định nghĩa các hàm vào/ra chuẩn: printf(), scanf(), gets(), …
conio.h: Tập tin định nghĩa các hàm vào ra trong chế
độ DOS (DOS console): clrscr(), getch()…
math.h: T p tin đ nh nghĩa các hàm tính toán: sqrt(), log(), ập trình ịnh danh
sin(), cos(), tan()…
alloc.h: tin đ nh nghĩa các hàm liên quan đ n vi c qu n lý b ịnh danh ết ngôn ngữ lập trình ện chuẩn C ản lý bộ ộ chữ viết
Trang 17Các hàm toán h c c b n trong C ọa: ơng 4 ản lý bộ
abs(int x): tính trị tuyệt đối của số nguyên x fabs(double x): tính trị tuyệt đối của số thực x random(int n): lấy số ngẫu nhiên từ 0 đến n-1 randomize(): khởi đầu bộ tạo số ngẫu nhiên, nên chạy hàm này trước khi dùng hàm
Trang 18Các hàm toán h c c b n trong C ọa: ơng 4 ản lý bộ
log(double x): tính logarit tự nhiên của x (ln(x))
pow(double y,double x): tính y mũ x
Chú ý: y mũ x có thể tính theo công thức:
y mũ x = exp(y*log(x))
sqrt(double x): tính căn bậc 2 của x
Chú ý: căn bậc n của x có thể tính theo công thức: pow(x, 1/n)
floor(double x): cho số nguyên lớn nhất dưới x
Ví dụ: floor(8.6) là 8
ceil(double x): cho số nguyên bé nhất trên x
Ví dụ: ceil(8.6) là 9
Trang 19C u trúc m t ch ấp thấp: open(), read(), ộ chữ viết ương 4 ng trình C
Một chương trình C có thể bao gồm các phần:
Các chỉ thị tiền xử lý
Khai báo biến ngoài
Các hàm tự tạo
Chương trình chính (hàm main)
Trang 20Các ch th ti n x lý ỉ thị tiền xử lý ịnh danh ền xử lý ử lý
Sử dụng chỉ thị #include để khai báo tập tin thư viện sẽ dùng:
Cú pháp:
#include <Tên tập tin thư viện>
Hoặc #include “Tên đường dẫn”
Trang 21Đ nh nghĩa ki u d li u ịnh danh ểu dữ liệu ữ lập trình ện chuẩn C
Là phần không bắt buộc
Dùng để đặt tên lại cho một kiểu dữ liệu nào
đó hay đặt 1 kiểu dữ liệu riêng dựa trên các kiểu dữ liệu đã có
Trang 22Khai báo các prototype
Khai báo tên hàm, các tham số, kiểu kết quả trả về,… của các hàm sẽ cài đặt trong phần sau
Trang 23Khai báo các bi n ngoài ết ngôn ngữ lập trình
Khai báo các biến toàn cục được sử dụng trong cả chương trình
Là phần không bắt buộc
char ten[50];
Trang 24là khai báo biến hay khai báo kiểu
Các câu lệnh dùng để định nghĩa hàm main
return <kết quả trả về>; // Hàm phải trả về kết quả
}
Trang 25Cài đ t các hàm t t o ặt các hàm tự tạo ự tạo ạo
Trang 28C u trúc m t ch ấp thấp: open(), read(), ộ chữ viết ương 4 ng trình C
Ngoài ra, khi viết chương trình đôi lúc cần
phải có vài lời ghi chú về 1 đoạn chương trình nào đó để dễ nhớ và dễ điều chỉnh sau này
Phần nội dung ghi chú không thuộc về
chương trình (khi biên dịch phần này bị bỏ
Trang 29Viết chương trình nhập vào bán kính r và in ra chu vi, diện tích của 1 đường tròn
Viết chương trình nhập vào chiều dài và chiều rộng của hình chữ nhật và in ra chu vi, diện tích của hình chữ nhật
Trang 30CÂU H I ÔN T P CH ỎI ÔN TẬP CHƯƠNG 4 ẬP TRÌNH C ƯƠ BẢN NG 4
1 Tìm hi u và li t kê (mô t và cho ví d ) các hàm ểu dữ liệu ện chuẩn C ản lý bộ ụ:
th ường sử dụng trong ngôn ngữ C ng s d ng trong ngôn ng C ử lý ụ: ữ lập trình
2 Hãy vi t m t ch ết ngôn ngữ lập trình ộ chữ viết ương 4 ng trình C c b n đ hi n th ơng 4 ản lý bộ ểu dữ liệu ểu dữ liệu ịnh danh
ra màn hình câu thông báo: Đây là môn h c v ọc về ề
l p trình C c b n ập trình C cơ bản ơ bản ản
3 Hãy vi t m t ch ết ngôn ngữ lập trình ộ chữ viết ương 4 ng trình C c b n đ nh p và ơng 4 ản lý bộ ểu dữ liệu ập trình
xu t ra màn hình h và tên, ngày tháng năm sinh ấp thấp: open(), read(), ọa:
c a m t sinh viên b t kỳ ủa một sinh viên bất kỳ ộ chữ viết ấp thấp: open(), read(),
4 Tìm hi u các hàm (l nh) nh p/xu t c b n trong ểu dữ liệu ện chuẩn C ập trình ấp thấp: open(), read(), ơng 4 ản lý bộ
C Li t kê và cho ví d ện chuẩn C ụ: