Tải bản đầy đủ (.ppt) (69 trang)

Chuong 2 giới thiệu ngôn ngữ lập trình c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (339.84 KB, 69 trang )

BÀI GIẢNG HỌC PHẦN

KỸ THUẬT LẬP TRÌNH

CHƯƠNG 2: GIỚI THIỆU NGƠN NGỮ
LẬP TRÌNH C


Nội dung
2.1. Lịch sử phát triển ngơn ngữ lập trình C
2.2. Mơi trường lập trình
2.3. Các phần tử cơ bản của ngơn ngữ lập trình C
2.4. Cấu trúc của chương trình

2


2.1. Lịch sử phát triển ngơn ngữ lập trình C
• Lịch sử phát triển ngơn ngữ lập trình C
• Đặc điểm của ngơn ngữ lập trình C

3


Lịch sử phát triển ngơn ngữ lập trình C (1)
• Được phát triển bởi
Dennis MacAlistair
Ritchie và các cộng
sự tại phòng thí
nghiệm Bell của
tập đồn AT&T


(Mỹ)
• Giai đoạn phát triển
khởi đầu: 19691973, trong đó giai
đoạn sáng tạo nhất
là trong năm 1972

Dennis M. Ritchie (1941-2011). Là một
nhà khoa học máy tính, cơng tác tại Bell
Labs (Mỹ); được xem là cha đẻ của ngơn
ngữ lập trình C và có ảnh hưởng lớn đến
các hệ điều hành Multics, Unix. Các giải
thưởng lớn: Giải thưởng Turing (1983),
Huy chương Hamming (1990), Giải
thưởng Nhà nước về Công nghệ (1999)
4


Lịch sử phát triển ngơn ngữ lập trình C (2)
• C được phát triển dựa trên nền ngôn ngữ B và
BCPL. Tên ngôn ngữ C được xem là sự tiếp nối của
ngơn ngữ B
• Năm 1973, Ritchie & Thompson đã viết lại hệ điều
hành UNIX bằng ngôn ngữ C - phiên bản phổ biến
và là cơ sở quan trọng nhất để phát triển các hệ điều
hành phổ biến hiện nay, điển hình là Linux và Mac
OS của Apple
• Năm 1978, Ritchie và Brian Kernighan xuất bản
cuốn “The C programming language”

5



Lịch sử phát triển ngơn ngữ lập trình C (3)
• Sau 1978, C được bổ sung thêm những tính năng
mới trong nhiều phiên bản khác nhau nhưng khơng
tương thích với nhau
• Năm 1989, Viện tiêu chuẩn quốc gia Hoa Kỳ (ANSI
- American National Standards Institue) đã công bố
phiên bản chuẩn hóa của ngơn ngữ C:
“Programming Language C” ANSI X3.159-1989,
phiên bản này thường được nhắc đến với tên gọi
ANSI C, còn gọi là C “chuẩn” hay C89. ANSI C
được hỗ trợ bởi hầu hết các chương trình dịch

6


Lịch sử phát triển ngơn ngữ lập trình C (4)
• Năm 1990, tiêu chuẩn ANSI C đã được tiêu chuẩn
hóa bởi Tổ chức Quốc tế về Tiêu chuẩn
hóa (ISO): phiên bản ISO/IEC 9899:1990, cịn gọi
là ISO C hay C99. Phiên bản này được hỗ trợ bởi
GCC và nhiều chương trình dịch khác, tuy nhiên
khơng được hỗ trợ bởi các chương trình dịch của
Microsoft và Borland
• C hiện là một trong những ngơn ngữ lập trình thông
dụng và là nguồn gốc xây dựng các ngôn ngữ lập
trình “mạnh” và phổ biến khác như C++, Java

7



Đặc điểm của ngơn ngữ lập trình C
• Là một ngơn ngữ lập trình có cấu trúc:
- Cho phép tập hợp mã lệnh và cấu trúc
- Cho phép ẩn lệnh, thơng tin khỏi phần cịn lại của
chương trình để dùng cho tác vụ riêng
- Chương trình có thể chia nhỏ thành các hàm
(functions) hoặc các khối lệnh (code blocks)
• Có tính khả chuyển, linh hoạt cao
• Có thế mạnh trong việc xử lý dữ liệu số, văn bản, cơ
sở dữ liệu, …
• Được xem như ngơn ngữ lập trình hệ thống, sử dụng
để xây dựng các chương trình hệ thống, trình điều
khiển thiết bị, xử lý ảnh, …
8


2.2. Mơi trường lập trình (1)
• Xây dựng chương trình:

9


2.2. Mơi trường lập trình (2)
• Mơi trường phát triển tích hợp (IDE – Integrated
Development Evironment):
- Soạn thảo (biên tập chương trình nguồn – edit)
- Biên dịch (compile)
- Thực thi (runtime)

- Sửa lỗi (gỡ rối - debug)
• Các mơi trường điển hình:
- Turbo C++ và Borland C++ của Borland, Inc
- MSC và VC của Microsoft Corp
- GCC của GNU project
- …
10


2.2. Mơi trường lập trình (3)
• Lưu ý:
- Lập trình viên khơng bắt buộc phải lập trình
trong mơi trường IDE
- Có thể sử dụng một phần mềm soạn thảo chuyên
dụng để tạo file nguồn (ví dụ: Notepad++), sau
đó sử dụng trình biên dịch thích hợp (ví dụ: BCC
5.5) để biên dịch và tạo file thực thi

11


2.3. Các phần tử cơ bản của ngôn ngữ lập trình C












Tập ký tự
Từ khóa
Tên
Hằng
Biến
Hàm
Biểu thức
Tốn tử
Câu lệnh
Các kiểu dữ liệu cơ sở

12


Tập ký tự (1)
• Là phần tử cơ bản, bắt buộc phải có để 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

13


Tập ký tự (2)
• Tập ký tự của ngơn ngữ C gồm:
- 26 chữ cái in hoa: A, B, …, Z

- 26 chữ cái in thường: a, b, ..., z
- 10 chữ số: 0, 1, …, 9
- Các ký hiệu toán học: + - * / = < > …
- Ký tự gạch nối _
- Dấu cách
- Các ký hiệu đặc biệt: . , ; : ? ! \ & | % # $ () [] {}


14


Từ khóa
• Là các từ dành riêng của ngơn ngữ lập trình, được
sử dụng với mục đích xác định
• Người lập trình khơng được phép sử dụng các từ
khóa vào các mục đích khác như đặt tên cho các đối
tượng mới: biến, hàm, hằng, …
• Các từ khóa trong C được viết bằng chữ thường
• Một số từ khóa thơng dụng:
- typedef, const, signed, unsigned, struct, enum,
void, sizeof, static
- char, int, short, long, float, double
- default, if, else, case, switch, for, while, do
- break, continue, goto, return, interrupt
- …
15


Tên
• Tên (định danh): là dãy các ký tự dùng để xác định

các đối tượng trong chương trình như: biến, hằng,
hàm, kiểu dữ liệu, …
• Quy tắc đặt tên:
- Khơng được trùng với các từ khóa
- Tên được đặt có tính gợi nhớ
- Gồm các ký tự chữ, số và dấu gạch nối, ký tự đầu
tiên phải là ký tự chữ hoặc dấu gạch nối
Ví dụ đặt tên đúng: a, b, x, y, PI, …
Ví dụ đặt tên sai: int, char, tinh giai thua
• Lưu ý: ngơn ngữ C phân biệt chữ hoa và chữ thường
16


Hằng (1)
• Là đại lượng khơng đổi trong suốt q trình thực thi
chương trình
• Cú pháp khai báo 1:
#define tên_hằng giá_trị
Ví dụ:
#define MAX 100
#define PI 3.14
• Cú pháp khai báo 2:
const kiểu_dữ_liệu tên_hằng = giá_trị;
Ví dụ:
const int MAX=100;
const float PI=3.14;
17


Hằng (2)

• Lưu ý:
- Khơng thể thay đổi giá trị của hằng trong quá
trình thực hiện chương trình
- Giá trị của hằng phải được xác định ngay khi
khai báo
- #define là chỉ thị tiền xử lý (preprocessing
directive). Ưu điểm của cú pháp khai báo này:
+ Dễ đọc, dễ thay đổi
+ Dễ chuyển đổi giữa các nền tảng phần cứng
+ Tốc độ nhanh

18


Biến (1)
• Là đại lượng do người lập trình định nghĩa, được
đặt tên thơng qua việc khai báo biến
• Dùng để chứa dữ liệu, giá trị của biến có thể bị thay
đổi trong q trình thực thi chương trình
• Cú pháp khai báo:
kiểu_dữ_liệu tên_biến;
hoặc
kiểu_dữ_liệu tên_biến1, …, tên_biếnn;
Ví dụ:
int a,b;
float x,y,z;
char c;
19



Biến (2)
• Lưu ý:
- Cần khai báo tất cả các biến trước khi sử dụng
- Có thể kết hợp khai báo biến với việc khởi tạo giá
trị cho biến theo cú pháp:
kiểu_dữ_liệu tên_biến=giá_trị;
Ví dụ:
int a=4,b=5;
float x,y,z=10.9;
- Tùy mục đích sử dụng, biến có thể được khai báo ở
ngồi hàm, đầu hàm (ngay sau ký hiệu { để bắt đầu
thân hàm) hoặc đầu khối lệnh (ngay sau ký hiệu
{ bắt đầu khối lệnh)
20


Hàm
• Là một đơn vị độc lập của chương trình, cho phép
nhận dữ liệu vào, xử lý dữ liệu và trả về kết quả
Ví dụ: pow(x,y), sin(x), cos(x), …
• Một chương trình có thể có nhiều hàm
• Hàm main() là bắt buộc phải có, chương trình bắt
đầu thực hiện từ câu lệnh đầu tiên của hàm main()
• Ngơn ngữ C không cho phép xây dựng hàm bên
trong một hàm khác; tuy nhiên có thể truyền dữ
liệu/kết quả từ hàm này sang hàm khác qua các
tham số/biến ngoài

21



Biểu thức (1)
• Được tạo thành từ sự kết hợp các toán tử (operater)
và các toán hạng (operand) để thể hiện một cơng
thức tính tốn
- Tốn tử: tác động lên các toán hạng và trả về giá
trị thuộc một kiểu nhất định. Các toán tử : +, -,
*, /, …
- Tốn hạng: hằng, biến, phần tử mảng, lời gọi
hàm, …
• Mỗi biểu thức có một giá trị thuộc kiểu xác định
- Ví dụ:
4+5*2, (a+b)*2, x-y/9, …
22


Biểu thức (2)
• Có 3 dạng biểu thức cơ bản:
- Biểu thức số học
Ví dụ: 9/3-1, 2*a+5, …
- Biểu thức logic
Ví dụ: !1, a && b || c, …
- Biểu thức quan hệ (một trường hợp riêng của
biểu thức logic)
Ví dụ: 9!=5, a>b, …

23


Biểu thức (3)

• Sử dụng biểu thức:
- Dùng làm vế phải trong các lệnh gán giá trị
- Dùng làm toán hạng trong các biểu thức khác
- Dùng làm tham số thực sự trong các lời gọi hàm
- Dùng làm chỉ số trong các cấu trúc lặp for, while,
do while
- Dùng làm biểu thức kiểm tra trong các cấu trúc
rẽ nhánh if, switch
- …

24


Tốn tử







Các tốn tử số học
Các phép thao tác trên bit
Các toán tử quan hệ
Các toán tử logic
Các toán tử đặc biệt
Thứ tự ưu tiên của các toán tử

25



×