C khác nhau , , gắn liền với một bộ chương trình gắn liền với một bộ chương trình dịch cụ thể của ngôn ngữ C.. dịch cụ thể của ngôn ngữ C : :[r]
(1)TIN HỌC ĐẠI CƯƠNG
TIN HỌC ĐẠI CƯƠNG
PHẦN 2: LẬP TRÌNH BẰNG NGƠN NGỮ C
PHẦN 2: LẬP TRÌNH BẰNG NGƠN NGỮ C BÀI 1: TỔNG QUAN VỀ NGÔN NGỮ C
BÀI 1: TỔNG QUAN VỀ NGÔN NGỮ C
VI N Ệ
VI N Ệ
CÔNG NGH Ệ
CÔNG NGH Ệ
THÔNG TIN
THÔNG TIN
SCHOOL OF
SCHOOL OF
INFORMATION COMMUNICATION TECHNOLOGY
(2)Bài 1:Tổng quan C
Bài 1:Tổng quan C 1.1
1.1 Lịch sử phát triển ngơn ngữ lập trình C Lịch sử phát triển ngơn ngữ lập trình C 1.2 Các phần tử ngôn ngữ C
1.2 Các phần tử ngôn ngữ C
1.3 Cấu trúc chương trình C
1.3 Cấu trúc chương trình C
1.4 Biên dịch chương trình viết C
1.4 Biên dịch chương trình viết C
1.5 Bài tập
(3)Bài 1:Tổng quan C
Bài 1:Tổng quan C 1.1
1.1 Lịch sử phát triển ngơn ngữ lập trình C Lịch sử phát triển ngơn ngữ lập trình C 1.2 Các phần tử ngôn ngữ C
1.2 Các phần tử ngôn ngữ C
1.3 Cấu trúc chương trình C
1.3 Cấu trúc chương trình C
1.4 Biên dịch chương trình viết C
1.4 Biên dịch chương trình viết C
1.5 Bài tập
(4)1.1 Lịch sử phát triển NNLT C
1.1 Lịch sử phát triển NNLT C
Ra
Ra đời phịng thí nghiệm BELL tập đời phịng thí nghiệm BELL tập đoàn AT&T (Hoa Kỳ)
đoàn AT&T (Hoa Kỳ)
D
Do Brian W Kernighan Dennis Ritchie o Brian W Kernighan Dennis Ritchie phát triển
phát triển vào đvào đầu 1970ầu 1970, hoàn thành, hoàn thành 1972 1972 C dựa ngôn ngữ BCPL
C dựa ngôn ngữ BCPL
(
(Basic Combined Programming Basic Combined Programming Language
Language) ngôn ngữ B) ngôn ngữ B T
Tên ngôn ngữ C tiếp nối ên ngôn ngữ C tiếp nối
(5)1.1 Lịch sử NNLT C
1.1 Lịch sử NNLT C (tiếp)(tiếp) Đặc điểm NNLT C:
Đặc điểm NNLT C:
LLà ngơn ngữ lập trình ngơn ngữ lập trình hhệ thống mạnh, ệ thống mạnh,
khả chuyển, có tính linh hoạt cao
khả chuyển, có tính linh hoạt cao
CCó mạnh xử lí dạng liệu số, ó mạnh xử lí dạng liệu số,
văn bản, sở liệu
văn bản, sở liệu
Thường sử dụng để viết:Thường sử dụng để viết:
Các chương trình hệ thống hệ điều hành (VD
Các chương trình hệ thống hệ điều hành (VD
Unix: 90% viết C, 10% viết hợp ngữ)
Unix: 90% viết C, 10% viết hợp ngữ)
C
Các chương trình ứng dụng chuyên nghiệp có can ác chương trình ứng dụng chun nghiệp có can thiệp tới liệu mức thấp xử lí văn bản, xử
thiệp tới liệu mức thấp xử lí văn bản, xử
lí ảnh…
(6)1.1 Lịch sử NNLT C
1.1 Lịch sử NNLT C (tiếp)(tiếp)
1978: C giới thiệu phiên
1978: C giới thiệu phiên đầu đầu sách "
cuốn sách "The C programming languageThe C programming language" " Sau đó, C bổ
Sau đó, C bổ sung thêm sung thêm tính năngtính khả
và khả Đồng thời tồn nhiều Đồng thời tồn nhiều
phiên không tương thích
phiên khơng tương thích
Năm 1989, Viện tiêu chuẩn quốc gia Hoa Kỳ
Năm 1989, Viện tiêu chuẩn quốc gia Hoa Kỳ
(
(American National Standards InstituteAmerican National Standards Institute - ANSI) - ANSI) công bố phiên chuẩn hóa ngơn ngữ
đã cơng bố phiên chuẩn hóa ngơn ngữ
C
(7)1.1 Lịch sử NNLT C
1.1 Lịch sử NNLT C (tiếp)(tiếp)
Tất phiên ngôn ngữ C
Tất phiên ngôn ngữ C naynay tuân theo mô tả nêu
đều tuân theo mô tả nêu
ANSI C, khác biệt có chủ yếu
ANSI C, khác biệt có chủ yếu ở thư viện bổ sung
thư viện bổ sung
Hiện có nhiều phiên ngơn ngữ
Hiện có nhiều phiên ngơn ngữ
C khác
C khác nhau, , gắn liền với chương trình gắn liền với chương trình dịch cụ thể ngơn ngữ C
dịch cụ thể ngôn ngữ C: :
Turbo C++Turbo C++ Borland C++ Borland Inc. Borland C++ Borland Inc.
(8)Bài 1:Tổng quan C
Bài 1:Tổng quan C 1.1
1.1 Lịch sử phát triển ngôn ngữ lập trình C Lịch sử phát triển ngơn ngữ lập trình C 1.2 Các phần tử ngơn ngữ C
1.2 Các phần tử ngôn ngữ C
1.3 Cấu trúc chương trình C
1.3 Cấu trúc chương trình C
1.4 Biên dịch chương trình viết C
1.4 Biên dịch chương trình viết C
1.5 Bài tập
(9)1.2.1 Tập ký tự
1.2.1 Tập ký tự
Chương trình C tạo từ phần
Chương trình C tạo từ phần
tử tập kí tự
tử tập kí tự
Các kí tự tổ hợp với tạo thành từ
Các kí tự tổ hợp với tạo thành từ
Các từ liên kết với theo quy tắc
Các từ liên kết với theo quy tắc
xác định để tạo thành câu lệnh
xác định để tạo thành câu lệnh
T
Từ câu lệnh câu lệnh tổ chức tổ chức thànhthành chương chương trình
(10)1.2.1 Tập ký tự (tiếp)
(11)1.2.2 Từ khóa (keyword)
1.2.2 Từ khóa (keyword)
L
Là từ có sẵn ngơn ngữ từ có sẵn ngôn ngữ
được sử dụng dành riêng cho mục
được sử dụng dành riêng cho mục
đích xác định
đích xác định
Các từ khóa C sử dụng để
Các từ khóa C sử dụng để
Đ
Đặt tên cho kiểu liệuặt tên cho kiểu liệu: : intint, , floatfloat, ,
double
double, , charchar, , structstruct, , union…union…
Mô tả lệnh, cấu trúc điều khiển:
Mô tả lệnh, cấu trúc điều khiển: forfor,,
do
do,, while while,, switch switch,, case case,, if if,, else else,, break break,,
continue
(12)1.2.2 Từ khóa (tiếp)
1.2.2 Từ khóa (tiếp)
Một số từ khóa hay dùng
(13)1.2.3
1.2.3 Định danhĐịnh danh/tên (/tên (Identifier Identifier ))
L
Là dãy kí tự dùng để gọi tên dãy kí tự dùng để gọi tên đối tượng chương trình
đối tượng chương trình
Các đối tượng chương trình gồm có Các đối tượng chương trình gồm có
biến, hằng, hàm, kiểu liệu… ta làm
biến, hằng, hàm, kiểu liệu… ta làm
quen mục
quen mục
C
Có thể đặt tênó thể đặt tên::
BBởi ngơn ngữ lập trình (đó ởi ngơn ngữ lập trình (đó
từ khóa)
từ khóa)
(14)1.2.3
1.2.3 Định danhĐịnh danh/tên /tên (tiếp)(tiếp)
Qui tắc đặt định danh:
Qui tắc đặt định danh:
CChỉ gồm có: hỉ gồm có: chữ cáichữ cái, , chữ sốchữ số và
dấu gạch
dấu gạch ““ ”” ( (underscoreunderscore).)
Bắt đầu định danh phải chữ Bắt đầu định danh phải chữ
hoặc dấu gạch dưới, không bắt
hoặc dấu gạch dưới, không bắt
đầu định danh chữ số
đầu định danh chữ số
Định danh người lập trình đặt Định danh người lập trình đặt
khơng trùng với từ khóa
(15)1.2.3
1.2.3 Định danhĐịnh danh/tên /tên (tiếp)(tiếp)
Ví dụ định danh/tên hợp lệ:
Ví dụ định danh/tên hợp lệ:
i, x, y, a, b, _function, _MY_CONSTANT,
i, x, y, a, b, _function, _MY_CONSTANT,
PI, gia_tri_1
PI, gia_tri_1
Ví dụ định danh/tên khơng hợp lệ:
(16)1.2.3
1.2.3 Định danhĐịnh danh/tên /tên (tiếp)(tiếp)
Cách thức đặt định danh/tên:
Cách thức đặt định danh/tên:
Hằng số: chữ hoaHằng số: chữ hoa
Các biến, hàm hay cấu trúc: Bằng chữ Các biến, hàm hay cấu trúc: Bằng chữ
thường
thường
Nếu tên gồm nhiều từ ta nên phân cách Nếu tên gồm nhiều từ ta nên phân cách
các từ dấu gạch
các từ dấu gạch
(17)1.2.4
1.2.4 Các kiểu liệu (data type)Các kiểu liệu (data type)
Là tập hợp giá trị mà liệu
Là tập hợp giá trị mà liệu
thuộc kiểu liệu nhận
thuộc kiểu liệu nhận
Trên kiểu liệu ta xác định số
Trên kiểu liệu ta xác định số
phép toán liệu thuộc kiểu
phép toán liệu thuộc kiểu
liệu
liệu
Ví dụ
Ví dụ: Trong ngơn ngữ C có kiểu liệu : Trong ngơn ngữ C có kiểu liệu intint Một liệu thuộc kiểu liệu
Một liệu thuộc kiểu liệu intint thì: thì:
Là số nguyên (
Là số nguyên (integerinteger) )
Có thể nhận giá trị từ - 32768 (-
Có thể nhận giá trị từ - 32768 (- 21515) đến 32767 ) đến 32767
(2
(18)1.2.4
1.2.4 Các kiểu liệu Các kiểu liệu (tiếp)(tiếp)
Trên kiểu liệu
Trên kiểu liệu intint ngôn ngữ C định nghĩa ngôn ngữ C định nghĩa phép toán số học số nguyên sau:
phép toán số học số nguyên sau:
Đảo dấu:
Đảo dấu: --
Cộng: Cộng: ++
Trừ: Trừ:
Nhân: Nhân: **
(19)1.2.5
1.2.5 HằngHằng số (constant) số (constant)
Là đại lượng có giá trị khơng đổi
Là đại lượng có giá trị khơng đổi
chương trình
chương trình
Để giúp chương trình dịch nhận biết
Để giúp chương trình dịch nhận biết
ta cần nắm cách biểu diễn
ta cần nắm cách biểu diễn
trong chương trình C
(20)1.2.5
1.2.5 HằngHằng số (tiếp) số (tiếp)
a Biểu diễn số nguyên: a Biểu diễn số nguyên:
Dạng thập phân:Dạng thập phân:
Giá trị số hệ đếm số 10 thông thường Giá trị số hệ đếm số 10 thơng thường Ví dụ:
Ví dụ: 2007, 396 2007, 396
Dạng thập lục phân:Dạng thập lục phân:
Giá trị số dạng hệ đếm số 16 thêm tiền tố Giá trị số dạng hệ đếm số 16 thêm tiền tố 0x0x
Ví dụ: 0x7D7, 0x18C Ví dụ: 0x7D7, 0x18C
Dạng bát phân:Dạng bát phân: