Tin học đại cương Bài 6: Tổng quan về ngôn ngữ C
• Khởi động chương trình: tìm đến thư mục
BIN trong thư mục c{i đặt v{ chạy file
TC.EXE
• Tạo cửa sổ soạn thảo mới: chọn menu File
(hoặc ấn Alt-F), sau đó chọn mục New để
mở cửa sổ soạn thảo mới.
– Gõ chương trình nguồn v{o cửa số soạn thảo
– Lưu chương trình với tên file,ví dụ:
HelloWorld.cpp
• Biên dịch chương trình: bấm F9
• Chạy chương trình: Ctrl + F9
13 trang |
Chia sẻ: phanlang | Lượt xem: 1945 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Tin học đại cương Bài 6: Tổng quan về ngôn ngữ C, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1
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
Phần 3. Lập trình C
Bài 6: Tổng quan về ngôn ngữ C
Nội dung
6.1. Lịch sử ph|t triển
6.2. C|c phần tử cơ bản của ngôn ngữ C
6.3. Cấu trúc cơ bản của chương trình C
6.4. Biên dịch chương trình C
6.5. Trình biên dịch Turbo C++
2
Nội dung
6.1. Lịch sử ph|t triển
6.2. C|c phần tử cơ bản của ngôn ngữ C
6.3. Cấu trúc cơ bản của chương trình C
6.4. Biên dịch chương trình C
6.5. Trình biên dịch Turbo C++
3 4
6.1. Lịch sử ph|t triển
• Ngôn ngữ 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 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.
2
6.1. 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 6
6.1. 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.1. 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
Nội dung
6.1. Lịch sử ph|t triển
6.2. C|c phần tử cơ bản của ngôn ngữ C
6.3. Cấu trúc cơ bản của chương trình C
6.4. Biên dịch chương trình C
6.5. Trình biên dịch Turbo C++
8
3
Ví dụ chương trình C đơn giản
#include
#include
void main(){
printf(“Hello World\n”);
getch();
}
9
6.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
6.2.1. 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
6.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: int, float, double…
• Mô tả c|c lệnh, c|c cấu trúc lập trình: if,
while, case…
• Chú ý:
– C là ngôn ngữ phân biệt chữ hoa, chữ thường
– Tất cả từ khóa trong C đều viết bằng chữ cái
thường
12
4
6.2.2. Từ khóa
• Một số từ khóa hay dùng trong Turbo C
13
6.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
6.2.3. Đị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)
– 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
15
6.2.3. Đị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
5
6.2.3. Định danh
• Một số quy ước (code convention)
– Nên sử dụng dấu gạch dưới để ph}n t|ch c|c định danh
gồm nhiều từ
– Định danh nên có tính gợi nhớ
– Quy ước thường được sử dụng:
• Hằng số dùng chữ c|i hoa
• C|c biến, h{m, cấu trúc dùng chữ c|i thường
• Ví dụ
Định danh Loại đối tượng
HANG_SO_1, _CONSTANT_2 Hằng số
a, b, i, j, count Biến
nhap_du_lieu, tim_kiem, xu_li Hàm
sinh_vien, mat_hang Cấu trúc
17
6.2.4. C|c kiểu dữ liệu
• Định nghĩa:
– Một 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ụ:
– 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
• Nhận gi| trị từ từ - 32,768 (- 215) đến 32,767 (215 - 1)
18
6.2.4. 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 Ký hiệu
Đảo dấu -
Cộng +
Trừ -
Nhân *
Chia lấy phần nguyên /
Chia lấy phần dư %
So sánh >, =, <=, ==, !=
19
6.2.5. Hằng số
• Định nghĩa:
–Hằng số (constant) l{ đại lượng có gi| trị
không đổi trong chương trình.
• Biểu diễn hằng số trong ngôn ngữ C:
– Hằng số nguyên
– Hằng số thực
– Hằng ký tự
– Hằng chuỗi ký tự
20
6
6.2.5. Hằng số
• 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 0x7D7 03727
396 0x18C 0614
21
6.2.5. 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 Số thực dấu phẩy động
3.14159 31.4159 E-1
123.456 12.3456 E+1 hoặc 1.23456 E+2
22
6.2.5. 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 Cách 1 Cách 2
Chữ c|i A ‘A’ 65, 0x41, 0101
Số 1 ‘1’ 49, 0x31, 061
Dấu nh|y đơn ‘\’’ 39, 0x27, 047
Ký tự tab ‘\t’ 9, 0x09, 011
23
6.2.5. Hằng số
• Biểu diễn hằng x}u (chuỗi) 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
7
6.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.
• Biến phải thuộc một kiểu dữ liệu n{o đó.
• Biến được sử dụng để lưu trữ dữ liệu, phục
vụ cho xử lý tính to|n trong chương trình.
• Biến phải được đặt tên theo qui tắc đặt tên.
• Chú ý:
– Biến được cấp ph|t vùng nhớ trong bộ nhớ
chính, còn hằng thì không.
25
Ví dụ 1. Minh họa sử dụng biến
#include
#include
#define PI 3.14
void main(){
float r, s;//Hai biến r, s thuộc kiểu số thực
printf(“Nhap ban kinh hinh tron:“);
scanf(“%f”,&r);
s = PI * r * r;
printf(“Dien tich hinh tron %f\n”,s);
getch();
}
26
Ví dụ 2
#include
#include
void main(){
float a, b, x;
printf(“Nhap he so a khac 0“);scanf(“%f”,&a);
printf(“Nhap he so b, b=“);scanf(“%f”,&b);
x = -b/a;
printf(“Nghiem cua phuong trinh %f”,x);
getch();
}
27
6.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ả.
• 2 loại h{m:
– H{m có sẵn trong thư viện
– H{m do người lập trình định nghĩa (viết ra)
28
8
6.2.7. Hàm
• Ví dụ h{m có sẵn trong thư viện:
– Thư viện stdio.h h{m: scanf, printf, ….
– Thư viện math.h h{m: pow, sin, cos, sqrt, …
Hàm Ý nghĩa Ký hiệu to|n học Ví dụ
pow(x,y) x mũ y xy pow(2,3)=8
sin(x) Sin của x Sin(x) sin(0)=0
cos(x) Cos của x Cos(x) cos(0)=1
29
6.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 biệt thức delta
b*b – 4*a*c
- a, b, c, 4 l{ c|c to|n hạng
- C|c to|n tử (phép to|n): *, -
30
6.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
31
6.2.9. C}u lệnh
• Có 2 loại nhóm câu lệnh
– 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ụ:
• Lệnh gán: delta = 100;
• Lệnh xuất ra màn hình: printf(« Hello World »);
– 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 { }
32
9
6.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à « */ »
33
Nội dung
6.1. Lịch sử ph|t triển
6.2. C|c phần tử cơ bản của ngôn ngữ C
6.3. Cấu trúc cơ bản của chương trình C
6.4. Biên dịch chương trình C
6.5. Trình biên dịch Turbo C++
34
Ví dụ
#include
void main(){
// Khai bao cac bien
int a, b;
int tong, hieu, tich;
// Nhap vao tu ban phim 2 so nguyen
printf(“\n Nhap vao so nguyen thu
nhat: ”);
scanf(“%d”,&a);
printf(“\n Nhap vao so nguyen thu
hai: “);
scanf(“%d”,&b);
35
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);
// Doi nguoi dung an phim bat ki
getch();
}
36
10
37
• Gồm 6 phần có thứ tự như sau:
Phần 1: 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
6.3. Cấu trúc cơ bản của chương trình C
38
• 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 // 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.
6.3. Cấu trúc cơ bản của chương trình C
39
• 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;
6.3. Cấu trúc cơ bản của chương trình C
40
• 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.
6.3. Cấu trúc cơ bản của chương trình C
11
Nội dung
6.1. Lịch sử ph|t triển
6.2. C|c phần tử cơ bản của ngôn ngữ C
6.3. Cấu trúc cơ bản của chương trình C
6.4. Biên dịch chương trình C
6.5. Trình biên dịch Turbo C++
41 42
• Preprocessor
– Loại bỏ c|c chú thích
– Dịch c|c chị thị tiền xử lý bắt đầu l{ #
• C Compiler
– Biên dịch m~ nguồn th{nh m~ assembly.
• Assembler
– Tạo ra m~ object.
• Trên UNIX file .o
• Trên MS-DOS file.OBJ
• Link Editor
– Nếu tệp nguồn tham chiếu đến c|c h{m thư
viện/h{m được định nghĩa thì Link editor kết
hợp c|c h{m n{y với h{m main() để tạo ra
tệp có thể thực thi được
• Trong MS-DOS là file .exe
6.4. Biên dịch chương trình C
Nội dung
6.1. Lịch sử ph|t triển
6.2. C|c phần tử cơ bản của ngôn ngữ C
6.3. Cấu trúc cơ bản của chương trình C
6.4. Biên dịch chương trình C
6.5. Trình biên dịch Turbo C++
43
6.5.1. Giới thiệu
• Trình biên dịch (compiler): dịch m~ nguồn
(source code) th{nh file thực thi
• C|c trình biên dịch C phổ biến
– Turbo C++ của hãng Borland
– MSC của Microsoft
– GCC của GNU
– Dev C++ của Bloodshed Software
• Turbo C++ có nhiều phiên bản
– Phiên bản lựa chọn: Turbo C++ 3.0
44
12
6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0
Cài đặt
• B1: Chuẩn bị bộ c{i của Turbo C++ 3.0 (~4 MB) Copy bộ
c{i n{y v{o m|y của bạn, giả sử v{o thư mục C:\TC_Setup.
• B2: Đến thư mục chứa bộ c{i Turbo C++ 3.0 (như giả sử ở
trên là C:\TC_Setup) v{ kích hoạt file INSTALL.EXE để chạy
chương trình c{i đặt. Chương trình c{i đặt sẽ yêu cầu bạn
chỉ ra ổ đĩa trên đó chứa bộ c{i Turbo C++ 3.0
– Enter the SOURCE drive to use:
– H~y nhập v{o tên ổ đĩa, chẳng hạn C (ta để bộ c{i Turbo
C++ 3.0 ở thư mục C:\TC_Setup).
45
6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0
• B3: Chương trình yêu cầu bạn nhập v{o đường dẫn tới thư
mục chứa c|c file của Turbo C++ 3.0
– Enter the SOURCE Path:
– Thông thường chương trình sẽ tự tìm cho bạn, v{ bạn
chỉ cần ấn Enter để chuyển sang bước tiếp theo.
• B4: X|c định thư mục c{i đặt. Thư mục n{y sẽ chứa c|c file
của Turbo C++ 3.0 để bạn sử dụng sau n{y.
– Directories… [C:\TC]
– Option…[IDE CMD LIB CLASS BGI HELP EXMPL]
46
6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0
• Start Installation
• Thư mục c{i đặt mặc định sẽ l{ \TC nằm trên thư mục gốc
của ổ đĩa chứa bộ c{i. Nếu bạn muốn thay đổi thư mục c{i
đặt thì h~y dùng c|c phím và để di chuyển hộp s|ng đến
phần Directories, gõ Enter v{ nhập v{o đường dẫn mới, sau
đó ấn phím Esc để trở về.
• Dùng các phím và để di chuyển hộp s|ng đến phần
Start Installation v{ ấn Enter. Chương trình sẽ tự động thực
hiện v{ ho{n tất qu| trình c{i đặt cho bạn.
• Lưu ý: Bạn có thể copy to{n bộ thư mục đ~ c{i đặt của
Turbo C++ 3.0 về m|y v{ sử dụng, nhưng bạn phải chỉ cho
Turbo C++ biết đường dẫn tới c|c tệp tiêu đề v{ c|c tệp thư
viện bằng c|ch v{o menu Option, chọn Directories.
47
6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0
• Giao diện sử dụng của chương trình
48
13
6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0
49
Video: Setup TurboC
6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0
• Khởi động chương trình: tìm đến thư mục
BIN trong thư mục c{i đặt v{ chạy file
TC.EXE
• Tạo cửa sổ soạn thảo mới: chọn menu File
(hoặc ấn Alt-F), sau đó chọn mục New để
mở cửa sổ soạn thảo mới.
– Gõ chương trình nguồn v{o cửa số soạn thảo
– Lưu chương trình với tên file,ví dụ:
HelloWorld.cpp
• Biên dịch chương trình: bấm F9
• Chạy chương trình: Ctrl + F9 50
6.5.2. C{i đặt v{ sử dụng Turbo C++ 3.0
51
Video: Sử dụng TurboC
Các file đính kèm theo tài liệu này:
- 06_tong_quan_ve_ngon_ngu_c_5732.pdf