Bài giảng Tin học đại cương - Phần III - Chương 1: Tổng quan về ngôn ngữ C

Nội dung chương này

 1.1. Lịch sử phát triển ngôn ngữ lập trình C

 1.2. Các phần tử cơ bản của ngôn ngữ C

 1.3. Cấu trúc cơ bản của một chương trình C

 1.4. Biên dịch chương trình viết bằng C

 1.5. Bài tập

pdf 11 trang yennguyen 1640
Bạn đang xem tài liệu "Bài giảng Tin học đại cương - Phần III - Chương 1: Tổng quan về ngôn ngữ C", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Phần III - Chương 1: Tổng quan về ngôn ngữ C

Bài giảng Tin học đại cương - Phần III - Chương 1: Tổng quan về ngôn ngữ C
1Chương 1: 
Tổng quan về ngôn ngữ C
2
Nội dung chương này
 1.1. Lịch sử phát triển ngôn ngữ lập trình C
 1.2. Các phần tử cơ bản của ngôn ngữ C
 1.3. Cấu trúc cơ bản của một chương trình C
 1.4. Biên dịch chương trình viết bằng C
 1.5. Bài tập
3
1.1. Lịch sử phát triển ngôn ngữ lập trình C
 Ngôn ngữ lập trình C (NNLT C) 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 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
1.1. Lịch sử phát triển ngôn ngữ lập trình C
 Đặc điểm của NNLT C:
 Là một ngôn ngữ lập trình hệ thống mạnh, khả chuyển, 
có tính linh hoạt cao.
 Có thế mạnh trong xử lý các dạng dữ liệu số, văn bản, cơ 
sở dữ liệu.
 Thường được sử dụng để viết:
 Các chương trình hệ thống như hệ điều hành (VD 
Unix: 90% viết bằng C, 10% viết bằng hợp ngữ).
 Các chương trình ứng dụng chuyên nghiệp có can 
thiệp tới dữ liệu ở mức thấp như xử lý văn bản, xử lí 
ảnh
51.1. Lịch sử phát triển ngôn ngữ lập trình C
 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 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
1.1. Lịch sử phát triển ngôn ngữ lập trình C
 Tất cả các phiên bản của ngôn ngữ C hiện nay đều 
tuân theo các mô tả đã được nêu ra trong ANSI C, 
sự khác biệt nếu có thì chủ yếu ở các thư viện bổ 
sung.
 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
1.2. Các phần tử cơ bản của ngôn ngữ C
8
1.2.1. Tập ký tự
 Chương trình C được tạo ra từ các phần tử 
cơ bản là tập kí tự .
 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 để tạo thành các câu lệnh 
 Từ các câu lệnh tổ chức thành chương 
trình.
91.2.1. Tập ký tự (tiếp)
10
1.2.2. 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.
 Các từ khóa trong C được sử dụng để
 Đặt tên cho các kiểu dữ liệu: int, float, double, 
char, struct, union
 Mô tả các lệnh, các cấu trúc điều khiển: for, do, 
while, switch, case, if, else, break, 
continue
11
1.2.2. Từ khóa (keyword) (tiếp)
12
1.2.3. Định danh / tên (identifier)
 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 ta sẽ làm quen ở 
những mục tiếp theo.
 Có thể được đặt tê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.
13
1.2.3. Định danh / tên (identifier) (tiếp)
 Qui tắc đặt tên:
 Chỉ được gồm có: chữ cái, chữ số và dấu 
gạch dưới “_” (underscore).
 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 từ khóa.
14
1.2.3. Định danh / tên (identifier) (tiếp)
 Ví dụ định danh/tên hợp lệ:
i, x, y, a, b, _function, _MY_CONSTANT, PI, 
gia_tri_1
 Ví dụ về định danh/tên không hợp lệ:
15
1.2.3. Định danh / tên (identifier) (tiếp)
 Cách thức đặt định danh/tên:
 Hằng số: chữ hoa
 Các biến, hàm hay cấu trúc: Bằng chữ thường. 
 Nếu tên gồm nhiều từ thì ta nên phân cách các 
từ bằng dấu gạch dưới.
 Ví dụ:
16
1.2.4. Các kiểu dữ liệu
 Là một tập hợp các giá trị mà một dữ liệu thuộc 
kiểu dữ liệu đó có thể nhận được.
 Trên một kiểu dữ liệu ta xác định một số phép 
toán đối với các dữ liệu thuộc kiểu dữ liệu đó.
 Ví dụ: Trong ngôn ngữ C có kiểu dữ liệu int. 
Một dữ liệu thuộc kiểu dữ liệu int thì:
 Là một số nguyên (integer) 
 Có thể nhận giá trị từ - 32768 (- 215) đến 32767 (215 
- 1).
17
1.2.4. Các kiểu dữ liệu (tiếp)
 Trên kiểu dữ liệu int ngôn ngữ C định nghĩa các 
phép toán số học đối với số nguyên như sau: 
 Đảo dấu: - 
 Cộng: +
 Trừ: - 
 Nhân: *
 Chia lấy phần nguyên: /
 Chia lấy phần dư: %
 So sánh bằng: = =
 So sánh lớn hơn: >
 So sánh nhỏ hơn: <
18
1.2.5. Hằng số (constant)
 Là đại lượng có giá trị không đổi trong 
chương trình. 
 Để giúp chương trình dịch nhận biết hằng ta 
cần nắm được cách biểu diễn hằng trong một 
chương trình C.
19
Biểu diễn hằng số nguyên
 Dạng thập phân:
 Giá trị số dưới hệ đếm cơ số 10 thông thường
 Ví dụ: 2007, 396 
 Dạng thập lục phân:
 Giá trị số dưới dạng hệ đếm cơ số 16 và thêm tiền tố 
0x
 Ví dụ: 0x7D7, 0x18C.
 Dạng bát phân:
 Giá trị số dưới dạng hệ đếm cơ số 8 và thêm tiền tố 
0
 Ví dụ: 03727, 0614.
20
Biểu diễn hằng số thực
 Dưới dạng số thực dấu phẩy tĩnh:
Ví dụ: 3.14159 , 123.456 
 Dưới dạng số thực dấu phẩy động:
Ví dụ: 31.4159 E -1
 12.3456 E +1 
 1.23456 E +2
21
Biểu diễn hằng ký tự
 Bằng ký hiệu của ký tự đó đặt giữa 2 dấu 
nháy đơn ('').
 Bằng số thứ tự của ký tự đó trong bảng mã 
ASCII (và lưu ý số thứ tự của một ký tự 
trong bảng mã ASCII là một số nguyên nên 
có một số cách biểu diễn).
22
Biểu diễn hằng ký tự - Ví dụ:
23
Biểu diễn hằng xâu ký tự
 Một hằng là 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ụ: "Đại học Bách Khoa", "Tin học đại 
cương", "Nguyễn Hồng Phương",...
24
1.2.6. Biến (variable)
 Là đại lượng mà giá trị có thể thay đổi trong 
chương trình.
 Hằng và biến được sử dụng để lưu trữ dữ 
liệu, và phải thuộc một kiểu dữ liệu nào đó.
 Tên biến và hằng được đặt theo quy tắc đặt 
tên cho định danh.
25
1.2.7. Hàm (function)
 Còn được gọi là chương trình con
 Những đoạn chương trình lặp đi lặp lại nhiều 
lần ở những chỗ khác nhau Viết thành 
hàm để khi cần chỉ cần gọi ra chứ không phải 
viết lại toàn bộ.
 Giải quyết một bài toán lớn thì chương trình 
của ta có thể rất lớn và dài Chia thành các 
công việc nhỏ hơn được viết thành các hàm.
26
Một số hàm toán học hay dùng trong C
27
Một số hàm toán học hay dùng trong C (tiếp)
28
1.2.8. 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 đều có dấu chấm phẩy (;) 
để đánh dấu kết thúc câu lệnh.
29
1.2.8. Câu lệnh (tiếp)
 Câu lệnh được chia thành 2 nhóm chính:
 Nhóm các câu lệnh đơn: 
 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:
 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
 Lệnh khối là một số các lệnh đơn được nhóm lại với 
nhau và đặt trong cặp dấu ngoặc nhọn { }
30
1.2.9. 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
 Chỉ có tác dụng giúp chương trình viết ra dễ đọc và 
dễ hiểu hơn
 Trình biên dịch sẽ 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 đó.
 2 cách chú thích
 Trên 1 dòng: //
 Trên nhiều dòng: /* */
31
1.2.9. Chú thích (tiếp)
 Cách 1:
 Vùng bắt đầu từ // đến cuối dòng là vùng chú thích. 
 Ví dụ:
a = 5; b = 3; // Khoi tao gia tri cho cac bien nay
 Cách 2:
 Toàn bộ vùng bắt đầu nằm trong cặp kí hiệu /* */ là vùng chú 
thích.
 Ví dụ:
/* Doan chuong trinh sau khai bao 2 bien nguyen va khoi tao 
gia tri cho 2 bien nguyen nay */
int a, b;
a = 5; b = 3;
32
1.3. Cấu trúc cơ bản của một 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
33
1.3. Cấu trúc cơ bản... (tiếp)
 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.
 Ví dụ: 
 #include // thao tác vào ra
 #include // hàm của DOS
 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.
34
1.3. Cấu trúc cơ bản... (tiếp)
 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;
35
1.3. Cấu trúc cơ bản... (tiếp)
 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.
36
Ví dụ một chương trình C đơn giản
/* Chuong trinh sau se nhap vao tu ban phim 
2 so nguyen va hien thi ra man hinh tong, 
hieu tich cua 2 so nguyen vua nhap vao */
#include 
#include 
void main()
{
// Khai bao cac bien trong chuong trinh
int a, b; 
int tong, hieu, tich;
37
Ví dụ một chương trình C đơn giản (tiếp)
// 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);
// Tinh tong, hieu, tich cua 2 so vua nhap
tong = a + b;
hieu = a – b;
tich = a*b;
38
Ví dụ một chương trình C đơn giản (tiếp)
// 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);
// Doi nguoi dung an phim bat ki de ket thuc
getch();
}
39
1.4. Biên dịch chương trình viết bằng 
ngôn ngữ C
 Biên dịch chương trình viết bằng ngôn ngữ C
 Dùng trình biên dịch Turbo C++ 3.0
 Cài đặt Turbo C++ 3.0 
 Viết chương trình
 Sửa đường dẫn tới các thư viện (nếu cần)
 Biên dịch
 Chạy chương trình
40
1.5. Bài tập
 Bài tập 1:
Trong các định danh sau, định danh nào là 
không hợp lệ:
 MAX_SINH_VIEN
 CHIEU_CAO
 ho va ten
 1_bien_nao_do
 so_thuc_1
41
1.5. Bài tập (tiếp)
 Bài tập 2:
Hãy cho biết giá trị của các hằng nguyên sau 
trong chương trình:
0345, 0x168, 06356, 0xAF04
42
1.5. Bài tập (tiếp)
 Bài tập 3:
Cho biết biểu diễn dưới dạng số thực dấu 
phẩy tĩnh của các hằng số thực sau:
 535.235 E+3
 256.89 E-1
 10.103 E-5
43
1.5. Bài tập (tiếp)
 Bài tập 4: Chạy thử hai chương trình sau xem 
có chương trình nào có lỗi không? Nếu có lỗi 
thì hãy xem trình biên dịch báo là lỗi gì?
 Chương trình 1:
 void main() { } 
 Chương trình 2:
#include 
#include 
void fct() { }
44
Discussion

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_phan_iii_chuong_1_tong_quan_ve_n.pdf