Bài giảng Ngôn ngữ lập trình C/C++ - Trần Đăng Hưng - Chương 1: Giới thiệu

Chương trình C chỉ bao gồm các modules được gọi là hàm (Function)

Có thể tự viết các hàm

Sử dụng các hàm trong thư viện chuẩn

Tránh phát minh lại bánh xe (avoid re-inventing the whell)

Tránh việc tự viết các hàm đã có trong thư viện

Các hàm trong thư viện chuẩn thường được viết cẩn thận và hiệu quả

pdf26 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 2244 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Ngôn ngữ lập trình C/C++ - Trần Đăng Hưng - Chương 1: Giới thiệu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
BÀI GIẢNG
NGÔN NGỮ LẬP TRÌNH C/C++
TS. Trần Đăng Hưng
Khoa Công Nghệ Thông Tin
Email: hungtd@hnue.edu.vn
Nội Dung 
„ Chương 1: Giới thiệu
„ Chương 2: Các cấu trúc điều khiển
„ Chương 3: Hàm (functions)
„ Chương 4: Mảng (arrays)
„ Chương 5: Con trỏ (pointers)
„ Chương 6: Kí tự và xâu (characters and strings)
Chương 7: Cấu trúc và file (structures and files)„
„ Chương 8: Tiền xử lý (preprocessors)
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Hình thức đánh giá
„ Dự lớp 30 %
„ Bài thi cuối khóa 70%
„ Trắc nghiệm 40%
„ Thực hành trên máy 60%
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Tài liệu tham khảo và trình biên dịch
„ Sách
„ Ngôn ngữ lập trình C – Quách Tuấn Ngọc
Ấ„ Kỹ thuật lập trình C – Phạm Văn t
„ 
„ Trình biên dịch
„ TC 3.0 (giao diện giống Pascal)
„ Visual C++ (windows) 
 (li )„ gcc nux
„ Dev-C++ (windows)
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Chương 1: Giới thiệu
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Lịch sử ngôn ngữ lập trình C
„ Ra đời vào khoảng năm 1970, viết bởi Dennis Ritchie 
tại phòng thí nghiệm Bell.
„ Ra đời dưới sự ảnh hưởng của các ngôn ngữ trước 
đó: BCPL (1967) và B (1970).
„ Được dùng để viết hệ điều hành Unix
„ Độc lập với phần cứng (khả chuyển)
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Chuẩn C (standard C)
„ Có rất nhiều phiên bản C
„ ANSI C (American National Standards Institute): 1989
„ Các phiên bản update vào năm 1995 (C95), 1999 (C99)
„ C và C++
C là bả ở ộ ủ C để hỗ lậ ì h h ớ đối „ ++ n m r ng c a trợ p tr n ư ng
tượng và thiết kế các phần mềm lớn.
„ C không hẳn là một phần của C++, nhưng có thể sử dụng cả C 
à C hằ hiế kế h ì h li h hv ++ n m t t c ương tr n n ọat.
„ Nên thành thạo C trước khi học C++.
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Thư viện chuẩn C
„ Chương trình C chỉ bao gồm các modules được gọi là 
hàm (function)
ể ế„ Có th tự vi t các hàm 
„ Sử dụng các hàm trong thư viện chuẩn
Tránh phát minh lại bánh xe (avoid re inventing the wheel) ☺„ -
„ Tránh việc tự viết các hàm đã có trong thư viện
„ Các hàm trong thư viện chuẩn thường được viết cẩn thận và 
hiệu quả
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Các pha của 
chương trình C
„ Soạn thảo chương trình (edit)
„ Đặt tên file có đuôi là .c (vidu.c, 
b i1 )a .c,…
„ Tiền xử lý (preprocess)
„ Biên dịch (compile)
„ Link
„ Load
„ Excute
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Một chương trình C đơn giản
-Ví dụ 1: In một dòng chữ ra màn hình-
„ Lời giải thích
„ Đặt trong cặp dấu /* …. */
Trình biên dịch sẽ bỏ qua„
„ Được dùng để chú thích cho các dòng lệnh
„ Chỉ dẫn tiền biên dịch
„ #include - sử dụng các hàm vào/ra
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
. .
„ Cần biết hàm nào nằm trong thư viện chuẩn nào
Một chương trình C đơn giản
-Ví dụ 1: In một dòng chữ ra màn hình-
„ Một chương trình C có thể có 1 hoặc nhiều hàm, nhưng 
buộc phải có hàm main()
ấ ể ố„ Cặp d u {} th hiện các kh i (block) chương trình, 
thân các hàm luôn được đặt trong cặp {}
„ Lệnh printf() đưa nội dung ra màn hình
„ Kí tự \n đưa con trỏ xuống 1 dòng mới
„ Hàm int main(), nên phải có lệnh return trả về một số
nguyên, return 0; - hàm kết thúc bình thường.
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Hàm printf() và các kí tự điều khiển
„ Hàm printf(s): đưa nội dung của s ra màn hình, s có 
thể là hằng xâu kí tự, biến, hoặc biểu thức. 
ố ằ„ Một s h ng kí tự đặc biệt:
„ \n – đưa con trỏ xuống dòng
„ \r – đưa con trỏ về đầu dòng
„ \t – đưa con trỏ đến vị trí tab tiếp theo
„ \a – bật 1 tiếng chuông
\\ đ kí t \„ - ưa ra ự
„ \” – đưa ra kí tự “
„ Ví dụ: thay đổi hàm printf() trong ví dụ 1.
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Ví dụ 2: Cộng hai số
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Nhập dữ liệu – scanf()
„ scanf(“%d”, &integer1) 
„ Đợi người dùng nhập giá trị, rồi gõ phím Enter
ế„ Lưu giá trị vào bi n ở bên phải toán tử
„ Đổi giá trị được nhập sang kiểu dữ liệu của biến
„ = (toán tử gán)
„ Gán giá trị cho biến
T á tử h i ôi Bi t„ o n a ng - nary opera or
„ Ví dụ:
„ sum = variable1 + variable2;
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Biến và cách đặt tên biến
„ Biến (variables)
„ Tương ứng với các vùng trong bộ nhớ máy tính
ỗ ế ể„ M i bi n có tên, ki u, kích thước, và giá trị
„ Khi biến được gán một giá trị mới, giá trị cũ bị ghi đè
„ Đọc giá trị của các biến trong bộ nhớ không làm thay đổi các 
biến trong bộ nhớ
„ Quy tắc đặt tên biến
„ Chuỗi ký tự (chữ cái a z A Z .. , .. ,
chữ số 0..9, dấu gạch dưới _ )
„ Không được bắt đầu bằng chữ số
Phâ biệt hữ h hữ th ờ
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
„ n c oa c ư ng.
Khai báo biến
„ Trước khi sử dụng các biến thì phải khai báo nó.
„ Cách khai báo: 
„ Kiểu_dữ_liệu tên_biến;
hoặc
„ Kiểu dữ liệu tên biến = giá trị đầu;_ _ _ _
„ Khai báo nhiều biến cùng kiểu thì các biến cách nhau 
bởi dấu phẩy
„ Ví dụ: 
int a;
double n = 10;
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
float m = 10, p = 20;
Các kiểu dữ liệu chuẩn
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Các phép toán 
„ Các phép toán số học
„ Cộng/trừ: + -
Phép nhân: * 
Ví dụ
x = x + 2;
„
„ Phép chia: /
„ Phép chia lấy dư: %
Q tắ tiê
y = x / 4;
x = x % 10;
„ uy c ưu n
„ Các phép toán trong ngoặc được tính trước
„ Các ngoặc lồng nhau, các phép toán ở bên trong nhất được tính 
t ớ hấtrư c n
„ Tiếp theo là các phép nhân, chia, và phép lấy số dư
„ Các phép toán được tính từ trái sang phải
à í ố ù
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
„ Cộng v trừ được t nh cu i c ng
„ Các phép toán được tính từ trái sang phải
Ví dụ: thứ tự
ưu tiên các 
phép toán
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Các phép toán logic
„ Toán tử “và”: &&
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
„ Toán tử “hoặc”: ||
Các phép toán trên bit
„ Toán tử: & - phép toán AND
„ Toán tử: | - phép toán OR
„ Toán tử: ~ - phép đảo ngược bit
„ Toán tử: << - dịch bit sang trái
ᄠTo n tử: >> - dịch bit sang phải
„ Ví dụ: 
x = 10; y = x y = 24
x = 14; y = x >> 2; => y = 3
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
x = 9; y = 7; z = x % y; => z = 2
Các phép toán rút gọn
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Các phép toán rút gọn
„ Ví dụ
x = 10; y = 20; x += y; => x = 30
x = 4; x *= 2; => x = 8
„ Sự khác nhau giữa ++x và x++
„ ++x: giá trị của x sẽ tăng lên 1 đơn vị TRƯỚC khi thực hiện 
b ể h ó ủ i u t ức c mặt c a x.
„ x++: giá trị của x sẽ tăng lên 1 đơn vị SAU khi thực hiện biểu 
thức có mặt của x.
„ Ví dụ: 
x = 10; y = ++x + 2; => x = 11; y = 13
x = 10; y = x++ + 2; => x = 11; y = 12
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
x = 10; y = 20; z = 2 * (++x – y++); => x = 11; y = 21; z = -18
Các đặc tả của hàm printf()
„ Để đưa nội dung của các biến (hoặc biểu thức) ra màn 
hình phải có các chỉ dẫn cụ thể cho từng loại dữ liệu.
„ Ví dụ: 
„ int x = 20; printf(“x = %d”, x);
„ float x = 15.5; printf(“x = %f”, x);
„ float x = 10; printf(“x = %6.2f”, x);
„ int x = 10; y = 15.5; printf(“x = %6d, y = %6.2f”,x,y);
Cá kí đặ ả„ c tự c t
%d (hoặc %i) int %c char
%f float %lf double
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
%s string %x hexadecimal 
Các đặc tả của hàm scanf()
„ Để nhập các giá trị vào cho các biến cần phải có chỉ dẫn kiểu dữ
liệu cho từng biến.
„ Ví dụ: 
ố ê à í„ Nhập hai s nguy n int từ b n ph m
printf(“Cho hai so nguyen a,b: “); scanf(“%d%d”,&a,&b);
„ Nhập một số int và một số float từ bàn phím
printf(“Cho so nguyen a va so thuc b: ”); scanf(“%d%f”,&a,&b);
„ Chú ý: Khi nhập xâu kí tự thì không có dấu & trước biến, vì bản thân 
tên xâu đã là con trỏ.
printf(“Cho mot xau ki tu: “); scanf(“%s”,st);
„ Các kí tự đặc tả cho từng kiểu dữ liệu giống trong hàm printf()
„ Chú ý: Hàm printf() và scanf() đều nằm trong thư viện , 
nên đầu chương trình phải khai báo thư viện bằng lệnh:
#include 
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Bài tập tại lớp
„ Bài 1.1: Viết chương trình in ra màn hình các câu chào 
khác nhau, mỗi câu trên một dòng.
ế ố„ Bài 1.2: Vi t chương trình nhập vào 2 s nguyên dương 
rồi đưa ra: tổng, tích, hiệu của 2 số đó.
„ Bài 1 3: Giả sử ta có x = 10; y = 20; z = 30; Hãy cho .
biết giá trị các biểu thức sau
„ Bt1 = 2*(x – y++) + z*(++z – x*y);
„ Bt2 = (--x + --y + z--) * 2 + ++y*2;
„ Bt3 = (x << 2) + (y | 3 + z | 8) + 2;
„ Bt4 = ((x == y) && (x != z))
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN

File đính kèm:

  • pdfBài giảng Ngôn ngữ lập trình CC++ - Trần Đăng Hưng - Chương 1 Giới thiệu.pdf
Tài liệu liên quan