Cùng tìm hiểu Bài giảng Tin học đại cương Phần 2: Bài 1 - Tổng quan về ngôn ngữ C để nắm bắt một số vấn đề về lịch sử phát triển ngôn ngữ C; các phần tử cơ bản của ngôn ngữ C; cấu trúc cơ bản của một chương trình C; biên dịch chương trình viết bằng ngôn ngữ C.
Trang 1TIN HỌC ĐẠI CƯƠNG Bài 1 Tổng quan về ngôn ngữ C.
Nguyễn Thành Kiên
Bộ môn Kỹ thuật máy tính Khoa Công nghệ thông tin – ĐHBK
HN
Trang 2Bài 1 Tổng quan về ngôn ngữ C.
Trang 3Bài 1 Tổng quan về ngôn ngữ C.
Trang 41.1 Lịch sử phát triển.
phòng thí nghiệm BELL của tập đoàn AT&T(US)
Ritchie
(Basic Combined Programming
Language) và ngôn ngữ B
Trang 61.1 Lịch sử phát triển.
Hiện nay có nhiều phiên bản của ngôn ngữ C khác nhau và mỗi phiên bản này gắn liền với một bộ chương trình dịch cụ thể của ngôn ngữ C
Các bộ chương trình dịch phổ biến của ngôn ngữ C có thể kể tên như:
Turbo C++ và Borland C++ của Borland Inc.
MSC và VC của Microsoft Corp.
GCC của GNU project.
…
Trang 7Bài 1 Tổng quan về ngôn ngữ C.
Trang 91.2.1 Tập kí tự
Chương trình nguồn của mọi ngôn ngữ lập trình đều được tạo nên từ các phần
tử cơ bản là tập kí tự của ngôn ngữ đó
Các kí tự tổ hợp với nhau tạo thành các từ.
Các từ liên kết với nhau theo một quy tắc xác định (quy tắc đó gọi là cú pháp của
ngôn ngữ) để tạo thành các câu lệnh.
Từ các câu lệnh người ta sẽ tổ chức nên
chương trình
Trang 111.2.2 Từ khóa (keyword)
Từ khóa (Keyword) là những từ có
sẵn của ngôn ngữ và được sử dụng dành riêng cho những mục đích
xác định break case char const continue default
do double else enum float for
goto if int interrupt long return
short signed sizeof static struct switch
typedef union unsigned void while
Trang 121.2.3 Định danh
(identifier)
Định danh (Identifier – hoặc còn gọi là
Tên) là một dãy các kí tự dùng để gọi
tên các đối tượng trong chương trình
Các đối tượng trong chương trình gồm
có biến, hằng, hàm, kiểu dữ liệu…
Định danh có thể được đặt tên sẵn bởi ngôn ngữ lập trình (đó chính là các từ khóa) hoặc do người lập trình đặt
Trang 13 Bắt đầu của định danh phải là chữ cái hoặc dấu
gạch dưới, không được bằng chữ số.
Định danh do người lập trình đặt không được trùng
với từ khóa.
Turbo C++ không giới hạn độ dài của định danh,
nhưng chỉ 32 kí tự đầu của định danh được chương trình biên dịch sử dụng (khi định danh có độ dài lớn hơn 32 kí tự thì Turbo C++ sẽ tự động cắt bỏ,
Trang 14so luong, ti-le có kí tự không hợp lệ trong tên
trùng với từ khóa của ngôn ngữ C
Trang 15 danh_sach_sinh_vien
danhsachsinhvien
Chú ý: Ngôn ngữ C phân biệt chữ cái
hoa/thường các định danh, tức là
Trang 171.2.4 Các kiểu dữ liệu
(type)
Ví dụ: Kiểu dữ liệu int
Một dữ liệu thuộc kiểu
Trang 181.2.5 Hằng (constant)
Hằng (constant) là đại lượng có giá
trị không đổi trong chương trình
Biểu diễn hằng số nguyên
Biểu diễn hằng số thực
Biểu diễn hằng kí tự
Biểu diễn hằng xâu kí tự
Trang 191.2.5 Hằng (constant)
Biểu diễn hằng số nguyên
Dạng thập phân: đó chính là cách viết giá trị
số đó dưới hệ đếm cơ số 10 thông thường.
Dạng thập lục phân: ta viết giá trị số đó
dưới dạng hệ đếm cơ số 16 và thêm tiền tố
0x ở đầu.
Dạng bát phân: ta viết giá trị số đó dưới
dạng hệ đếm cơ số 8 và thêm tiền tố 0 ở
đầu.
Giá trị thập phân Giá trị hệ bát phân Giá trị hệ thập lục phân
Trang 21Chữ cái A ‘A’ 65 hoặc 0101 hoặc 0x41
Dấu nháy đơn ‘ ‘\’’ 39 hoặc 047 hoặc 0x27
Dấu nháy kép “ ‘\”’ 34 hoặc 042 hoặc 0x22
Dấu gạch chéo ngược \
‘\\’ 92 hoặc 0134 hoặc 0x5c
Kí tự xuống dòng ‘\n’
Kí tự NUL ‘\0’ 0 hoặc 00 hoặc 0x0
Trang 221.2.5 Hằng (constant)
Biểu diễn hằng xâu kí tự
Hằng xâu kí tự được biểu diễn bởi dãy các kí tự thành phần có trong xâu đó
và được đặt trong cặp dấu nháy kép
Ví dụ:
“ngon ngu lap trinh C”
“tin hoc dai cuong”
…
Trang 231.2.6 Biến (variable)
Biến (variable) là đối tượng để lưu
trữ dữ liệu trong chương trình mà giá trị có thể thay đổi
Dữ liệu lưu trữ trong biến phải
thuộc một kiểu dữ liệu xác định
Biến và hằng được đặt tên theo
quy tắc đặt tên cho định danh
Trang 261.2.8 Biểu thức
(expression)
(operand) theo một quy tắc xác định.
Các toán hạng: là biến, hằng, hàm hoặc một biểu thức khác
Các toán tử: + - * / <> ==…
Trang 271.2.9 Câu lệnh (statement)
Câu lệnh diễn tả một hoặc một nhóm
các thao tác trong giải thuật Chương
trình được tạo thành từ dãy các câu
lệnh
Cuối mỗi câu lệnh đều có dấu chấm
phẩy ‘;’ để đánh dấu kết thúc câu lệnh cũng như để phân tách các câu lệnh với nhau
Trang 28 Nhóm các câu lệnh phức: là những
câu lệnh chứa câu lệnh khác trong nó
Ví dụ: lệnh khối, các cấu trúc lệnh rẽ nhánh, cấu trúc lệnh lặp…
Trang 291.2.9 Câu lệnh (statement)
nhóm lại với nhau và đặt trong cặp dấu ngoặc nhọn { }
Một lệnh khối coi tương đương một lệnh đơn
Chú ý: lập trình có quy cách:
Căn lề giữa các khối lệnh cùng mức
Dịch đầu dòng giữa các khối lệnh khác mức
Trang 301.2.10 Chú thích
(comment)
Lời chú thích là lời mô tả, giải thích vắn tắt cho một câu lệnh, một đoạn chương trình hoặc cả chương trình
Trình biên dịch tự động bỏ qua không
dịch phần nội dung nằm trong phạm vi của vùng chú thích
Dấu // chú thích trên một dòng
Cặp dấu /* chú thích bao nhiêu dòng tùy ý người lập trình */
Trang 31c = sqrt(a*a + b*b);
printf(“Canh huyen cua tam giac can la:%f”,c);
Trang 32Bài 1 Tổng quan về ngôn ngữ C.
Trang 331.3 Cấu trúc cơ bản của
Trang 34a = 4.0; b = 3.0; // khoi tao gia tri cho hai canh vuong
clrscr(); // Xoa man hinh
/* doan chuong trinh sau tinh do dai cua canh huyen trong
tam giac vuong co a,b la canh goc vuong */
c = sqrt(a*a + b*b);
Trang 35Bài 1 Tổng quan về ngôn ngữ C.
Trang 361.4 Biên dịch chương trình viết bằng ngôn ngữ C
Trình biên dịch Turbo C++
Biên dịch mã nguồn chương trình
thành mã máy để thực thi
Turbo C++ có khả năng biên dịch
chương trình viết bằng cả ngôn ngữ C
và C++
Sử dụng: Turbo C++ 3.0
Trang 38Bài tập
Việt và tiếng Anh.