Bài giảng Tin học đại cương - Bài 4: Tổng quan về ngôn ngữ C - Bùi Trọng Tùng

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI  
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG  
TIN HỌC ĐẠI CƯƠNG  
Bài 4. Tổng quan về  
ngôn ngữ C  
Bùi Trọng Tùng, SoICT, HUST  
Nội dung  
1. Lịch sử phát triển  
2. Các phần tử cơ bản của ngôn ngữ C  
3. Cấu trúc cơ bản của chương trình C  
4. Biên dịch chương trình C  
2
1
Nội dung  
2. Các phần tử cơ bản của ngôn ngữ C  
3. Cấu trúc cơ bản của chương trình C  
4. Biên dịch chương trình C  
3
1. Lịch sử phát triển  
• Ra đời tại phòng thí nghiệm BELL của tập đoàn  
AT&T (Hoa Kỳ)  
• Do Brian W. Kernighan và Dennis M. Ritchie phát  
triển vào đầu 1970, hoàn thành 1972  
• C dựa trên nền các ngôn ngữ BCPL (Basic  
Combined Programming Language) và ngôn ngữ B.  
• Tên là ngôn ngữ C như là sự tiếp nối ngôn ngữ B.  
4
2
Lịch sử phát triển  
• Đặc điểm của ngôn ngữ lập trình C  
• Ngôn ngữ lập trình hệ thống  
• Tính khả chuyển, linh hoạt cao  
• Có thế mạnh trong xử lý dữ liệu số, văn bản, cơ sở  
dữ liệu  
• C thường được sử dụng để viết các chương  
trình hệ thống  
• Hệ điều hành Unix có 90% mã C, 10% hợp ngữ  
• Các trình điều khiển thiết bị (device driver)  
• Xử lý ảnh…  
5
5
Lịch sử phát triển  
• 1978: C được giới thiệu trong phiên bản đầu  
của cuốn sách "The C programming language"  
• Sau đó, C được bổ sung thêm những tính  
năng và khả năng mới Đồng thời tồn tại  
nhiều phiên bản nhưng không tương thích  
nhau.  
• Năm 1989, Viện tiêu chuẩn quốc gia của Hoa  
Kỳ (American National Standards Institute -  
ANSI) đã công bố phiên bản chuẩn hóa của  
ngôn ngữ C: ANSI C hay C chuẩn hay C89  
6
3
Lịch sử phát triển  
• Các phiên bản ngôn ngữ C  
• ANSI C: C chuẩn (1989)  
• Các phiên bản khác thường bổ sung thêm thư viện  
của ANSI C  
• Hiện nay cũng có nhiều phiên bản của ngôn ngữ  
C khác nhau, gắn liền với một bộ chương trình  
dịch cụ thể của ngôn ngữ C  
• Turbo C++ và Borland C++ của Borland Inc.  
• MSC và VC của Microsoft Corp.  
• GCC của GNU project…  
7
7
Nội dung  
1. Lịch sử phát triển  
3. Cấu trúc cơ bản của chương trình C  
4. Biên dịch chương trình C  
8
4
Một chương trình đơn giản  
#include <stdio.h>  
#include <conio.h>  
int main(){  
printf(“Hello World\n”);  
getch();  
return 0;  
}
9
2.1. Tập ký tự  
• Tập ký tự là tập các phần tử cơ bản tạo nên  
chương trình  
• Tổ hợp các ký tự → từ  
• Liên kết các từ theo cú pháp → câu lệnh  
• Tổ chức các câu lệnh → chương trình  
• Ví dụ:  
• include, void, main…  
• printf(“…”), getch();  
10  
5
Tập ký tự  
• Tập ký tự trong C  
• 26 chữ cái hoa: A B C ... X Y Z  
• 26 chữ cái thường: a b c … x y z.  
• 10 chữ số: 0 1 2 3 4 5 6 7 8 9.  
• Các kí hiệu toán học:+ - * / = < >  
• Các dấu ngăn cách: . ; , : space tab  
• Các dấu ngoặc:( ) [ ] { }  
• Các kí hiệu đặc biệt:_ ? $ & # ^ \ ! ‘ “ ~ .v.v.  
11  
2.2. Từ khóa  
• Từ khóa (keyword)  
• Có sẵn trong mỗi ngôn ngữ lập trình  
• Dành riêng cho các mục đích xác định  
• Đặt tên cho kiểu dữ liệu: char, int, float,  
double…  
• Mô tả các lệnh, các cấu trúc lập trình: if,  
else, switch, case, while, do…  
• Chú ý:  
• Tất cả từ khóa trong C đều viết bằng chữ cái  
thường  
12  
6
Từ khóa  
• Từ khóa hay dùng trong C  
13  
2.3. Định danh  
• Đị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  
• Biến  
• Hằng số  
• Hàm  
• Kiểu dữ liệu… (sẽ làm quen ở các mục sau)  
• Định danh có thể được đặt bởi  
• Ngôn ngữ lập trình → các từ khóa  
• Người lập trình  
14  
7
Định danh  
• Quy tắc đặt tên định danh trong C  
•
•
•
Các kí tự được sử dụng: chữ cái, chữ số và dấu  
gạch dưới “_” (underscore)  
•
Không dùng dấu cách (space)  
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ắt đầu định danh  
bằng chữ số.  
Định danh do người lập trình đặt không được  
trùng với các từ khóa của C  
• Chú ý: C là ngôn ngữ có phân biệt chữ hoa  
và chữ thường  
15  
Định danh  
• Ví dụ  
• Định danh hợp lệ:  
i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1  
• Định danh không hợp lệ  
• 1_a, 3d, 55x (bắt đầu bằng chữ số)  
• so luong, ti le (có dấu cách - kí tự không hợp  
lệ)  
• int, char (trùng với từ khóa của ngôn ngữ C)  
16  
8
Định danh  
• Quy tắc con lạc đà:  
• Định danh có tính gợi nhớ  
• Tên hằng số: viết hoa toàn bộ, sử dụng dấu gạch dưới để  
phân cách các từ  
• Tên biến, tên hàm: viết thường từ đầu tiên, viết hoa chữ  
cái đầu các từ tiếp theo  
• Tên kiểu dữ liệu mới: viết hoa chữ cái đầu tiên tất cả các  
từ  
Định danh  
Loại đối tượng  
HANG_SO_1, CONSTANT_2  
Hằng số  
a, b, i, j, boDem, danhSach  
nhapDuLieu, hienThi  
Biến  
Hàm  
SinhVien, MatHang  
Kiểu dữ liệu mới  
17  
Các kiểu dữ liệu  
• Định nghĩa:  
• Kiểu dữ liệu cho biết cách lưu trữ dữ liệu trong bộ nhớ,  
dải giá trị và các phép toán có thể thực hiện trên dữ  
liệu.  
• Ví dụ:  
• Kiểu dữ liệu int (số nguyên) trong C  
• Một dữ liệu thuộc kiểu dữ liệu int  
• Là một số nguyên có dấu  
• 2 byte  
• Nhận giá trị từ từ - 32,768 (- 215) đến 32,767 (215 - 1)  
18  
9
Các kiểu dữ liệu  
• Ví dụ (tiếp)  
• Một số phép toán được định nghĩa trên kiểu dữ liệu int  
của C  
Tên phép toán  
Đảo dấu  
Ký hiệu  
-
Cộng  
+
-
Trừ  
Nhân  
*
Chia lấy phần nguyên  
Chia lấy phần dư  
So sánh  
/
%
>, <, >=, <=, ==, !=  
19  
Ví dụ  
#include <stdio.h>  
#include <conio.h>  
#define PI 3.14  
int main(){  
float r, s;  
printf(“Nhap ban kinh hinh tron:“);  
scanf(“%f”,&r);  
s = PI * r * r;  
printf(“Dien tich hinh tron %f\n”,s);  
getch();  
return 0;  
}
20  
10  
2.5. Hằng số  
• Định nghĩa:  
• 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: trong C, một hằng số  
nguyên có thể biểu diễn dưới 3 dạng  
• Dạng thập phân  
• Dạng thập lục phân  
• Dạng bát phân  
Giá trị thập phân  
Giá trị thập lục phân Giá trị bát phân  
2007  
396  
0x7D7  
0x18C  
03727  
0614  
21  
Hằng số  
• Biểu diễn hằng số thực: trong C, một hằng số  
thực có thể biểu diễn dưới 2 dạng  
• Dạng số thực dấu phẩy tĩnh  
• Dạng số thực dấu phẩy động  
• Ví dụ  
Số thực dấu phẩy tĩnh  
3.14159  
Số thực dấu phẩy động  
31.4159 E-1  
123.456  
12.3456 E+1 hoặc 1.23456 E+2  
22  
11  
Hằng số  
• Biểu diễn hằng ký tự: trong C, một hằng ký tự có  
thể biểu diễn theo hai cách  
• Bằng ký hiệu của ký tự đặt giữa hai dấu nháy đơn  
• Bằng số thứ tự của ký tự đó trong bảng mã ASCII (số  
nguyên -> tuân thủ quy tắc biểu diễn hằng số nguyên)  
• Ví dụ  
Ký tự cần biểu diễn  
Chữ cái A  
Cách 1  
Cách 2  
65, 0x41, 0101  
39, 0x27, 047  
0, 0x09, 011  
23  
‘A’  
‘\’’  
‘\t’  
Dấu nháy đơn  
Ký tự tab  
Hằng số  
• 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”  
• “Dai hoc Bach Khoa Ha Noi”  
24  
12  
Ví dụ  
#include<stdio.h>  
#include<conio.h>  
int main(){  
float a, b, x;  
printf(“Nhap he so a=“);scanf(“%f”,&a);  
printf(“Nhap he so b khac 0, b=“);  
scanf(“%f”,&b);  
x = -b/a;  
printf(“Nghiem don cua phuong trinh %f”,x);  
getch();  
return 0;  
}
25  
2.6. Biến  
• Định nghĩa:  
• Biến (variable) là đại lượng mà giá trị có thể thay đổi  
trong chương trình.  
• Chú ý:  
• Hằng số và biến được sử dụng để lưu trữ dữ liệu trong  
chương trình  
• Hằng số và biến phải thuộc một kiểu dữ liệu nào đó  
• Hằng số và biến đều phải đặt tên theo quy tắc  
26  
13  
2.7. Hàm  
• Mô tả:  
• Hàm (function) là một chương trình con có chức năng  
nhận dữ liệu đầu vào (các tham số đầu vào), thực hiện  
một chức năng nào đó và đưa ra các kết quả  
Hàm  
pow(x,y)  
sin(x)  
Ý nghĩa  
x mũ y  
Ký hiệu toán học  
xy  
Ví dụ  
pow(2,3)=8  
sin(0)=0  
sin của x  
cos của x  
sinx  
cos(x)  
cosx  
cos(0)=1  
27  
2.8. Biểu thức  
• Định nghĩa:  
• Biểu thức là sự ghép nối các toán tử (operator) và các  
toán hạng (operand) theo một quy tắc xác định.  
• Các toán hạng có thể là biến, hằng  
• Các toán tử rất đa dạng: cộng, trừ, nhân, chia..  
• Ví dụ: biểu thức tính thể tích hình hộp chữ nhật  
chieuDai * chieuRong * chieuCao  
- chieuDai, chieuRong, chieuCao là các hằng hoặc biến  
số đóng vai trò toán hạng  
- Phép * đóng vai trò toán tử  
28  
14  
2.9. Câu lệnh  
• Câu lệnh (statement) 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 bắt buộc có dấu chấm phẩy ‘;’  
để đánh dấu kết thúc câu lệnh  
29  
Câu lệnh  
• Phân nhóm:  
• Nhóm các câu lệnh đơn: những câu lệnh không  
chứa câu lệnh khác. Ví dụ: phép gán, phép cộng,  
phép trừ…  
• Nhóm các câu lệnh phức: những câu lệnh chứa  
câu lệnh khác.  
• Ví dụ: lệnh khối đặt trong cặp ngoặc nhọn { }  
30  
15  
2.10. Chú thích  
• Chú thích (comment):  
• 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  
• Giúp việc đọc và hiểu chương trình dễ dàng hơn  
• Chú thích không phải là câu lệnh -> không ảnh hưởng  
tới chương trình  
• Cách viết chú thích: trong C có hai cách  
• Chú thích một dòng: sử dụng //  
• Chú thích nhiều dòng: sử dụng /* và */  
31  
Nội dung  
1. Lịch sử phát triển  
2. Các phần tử cơ bản của ngôn ngữ C  
4. Biên dịch chương trình C  
32  
16  
Ví dụ  
#include <stdio.h> //Khai bao tep tieu de  
int main(){  
// Khai bao cac bien  
int a, b;  
int tong, hieu, tich;  
// Nhap vao tu ban phim 2 so nguyen  
printf(“\nNhap vao so nguyen thu nhat: ”);  
scanf(“%d”,&a);  
printf(“\n Nhap vao so nguyen thu hai: “);  
scanf(“%d”,&b);  
33  
Ví dụ  
// Tinh tong, hieu, tich cua 2 so do  
tong = a+b; hieu = a – b;tich = a*b;  
// Hien thi cac gia tri ra man hinh  
printf(“\n Tong cua 2 so vua nhap la %d”, tong);  
printf(“\n Hieu cua 2 so vua nhap la %d”, hieu);  
printf(“\n Tich cua 2 so vua nhap la %d”, tich);  
// Yeu cau nguoi dung an phim bat ki  
getch();  
return 0;  
}
34  
17  
3. Cấu trúc cơ bản của chương trình C  
• Gồm 6 phần có thứ tự như sau:  
Phần1: Khai báo tệp tiêu đề: #include  
Phần 2: Định nghĩa kiểu dữ liệu mới: typedef ...  
Phần 3: Khai báo các hàm nguyên mẫu  
Phần 4: Khai báo các biến toàn cục  
Phần 5: Hàm main()  
Phần 6: Nội dung các hàm đã khai báo  
35  
Cấu trúc cơ bản của chương trình C  
• Phần 1: Khai báo tệp tiêu đề:  
• Thông báo cho chương trình dịch biết là chương trình  
có sử dụng những thư viện nào.  
• VD: #include <stdio.h>  
#include <conio.h>  
Thư viện  
stdio.h  
Chức năng  
Các hàm vào/ra cơ bản  
conio.h  
Các hàm giao tiếp người dùng sử dụng  
MS-DOS API  
math.h  
ctype.h  
string.h  
stdlib.h  
time.h  
Các hàm toán học cơ bản  
Các hàm xử lý ký tự  
Các hàm xử lý xâu  
Các hàm tiện ích  
Các hàm điều khiển thời gian  
6  
18  
Cấu trúc cơ bản của chương trình C  
• Phần 2: Định nghĩa các kiểu dữ liệu mới  
• Định nghĩa các kiểu dữ liệu mới (nếu cần) dùng cho  
cả chương trình.  
• Phần 3: Khai báo các hàm nguyên mẫu:  
• Giúp cho chương trình dịch biết được những thông tin  
cơ bản của các hàm sử dụng trong chương trình.  
• Phần 4: Khai báo các biến toàn cục  
• Ví dụ:  
int a, b;  
int tong, hieu, tich;  
37  
Cấu trúc cơ bản của chương trình C  
• Phần 5: Hàm main( )  
• Khi thực hiện, chương trình sẽ bắt đầu bằng việc  
thực hiện các lệnh trong hàm main( ).  
• Trong hàm main( ) có thể có lệnh gọi tới các hàm  
khác.  
• Phần 6: Nội dung của các hàm đã khai báo  
• Cài đặt (viết mã) cho các hàm đã khai báo nguyên  
mẫu ở phần 3.  
38  
19  
Viết một chương trình “dễ đọc”  
• Chú thích mô tả hàm/chương trình:  
• Chức năng  
• Đầu vào  
• Đầu ra  
• Chú thích các biến quan trọng  
• Chú thích các bước xử lý dữ liệu theo thuật  
toán  
• Lùi dòng cho các lệnh lồng nhau  
• Định danh đối tượng rõ ràng  
39  
Nội dung  
1. Lịch sử phát triển  
2. Các phần tử cơ bản của ngôn ngữ C  
3. Cấu trúc cơ bản của chương trình C  
40  
20  
Tải về để xem bản đầy đủ
pdf 21 trang baolam 18720 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Bài 4: Tổng quan về ngôn ngữ C - Bùi Trọng Tùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_bai_4_tong_quan_ve_ngon_ngu_c_bu.pdf