Đị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... – Định danh do người lập trình đặt không được trùng với
Trang 1TIN HỌC ĐẠI CƯƠNG
Phần 3 Lập trình C
Bài 6: Tổng quan về ngôn ngữ C
Trang 26.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
Trang 36.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
Trang 4• 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
Trang 56.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
Trang 66
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
Trang 7– Turbo C++ và Borland C++ của Borland Inc
– MSC v{ VC của Microsoft Corp
– GCC của GNU project…
7
Trang 8Nộ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
Trang 12• Đặ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
Trang 136.2.2 Từ khóa
• Một số từ khóa hay dùng trong Turbo C
13
Trang 146.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
Trang 156.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
Trang 176.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:
nhap_du_lieu, tim_kiem, xu_li Hàm
sinh_vien, mat_hang Cấu trúc
17
Trang 186.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 (- 2 15 ) đến 32,767 (2 15 - 1)
18
Trang 19Chia lấy phần nguyên /
Chia lấy phần dư %
So sánh >, <, >=, <=, ==, !=
19
Trang 206.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:
Trang 216.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
Trang 236.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
Trang 246.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
Trang 256.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
Trang 26float r, s;//Hai biến r, s thuộc kiểu số thực
printf("Nhap ban kinh hinh tron:");
Trang 28• 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
Ham Tham so vao Tham so ra
Trang 296.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 x y 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
Trang 30– 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
Trang 316.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
Trang 32• 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
Trang 33• 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
Trang 34Nộ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
Trang 35int tong, hieu, tich;
printf(“\n Nhap vao so nguyen thu
Trang 36Ví 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
Trang 37Phầ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
Trang 3838
• 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> // thao tác vào ra
#include <conio.h> // 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
Trang 3939
• 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
Trang 4040
• 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
Trang 41Nộ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
Trang 42• 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
Trang 43Nộ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
Trang 446.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
– 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
Trang 456.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
Trang 466.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
Trang 476.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
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
Trang 486.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
Trang 496.5.2 C{i đặt v{ sử dụng Turbo C++ 3.0
49 Video: Setup TurboC
Trang 506.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
Trang 51Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn