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

Chương 4: Các thành phần cơ bản của ngôn ngữ lập trình C potx

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 (191.37 KB, 30 trang )

Ch ng 4ươ
CÁC THÀNH PH N C B NẦ Ơ Ả
C A NGÔN NG L P TRÌNH CỦ Ữ Ậ

Lý thuy t ngôn ng l p trình ế ữ ậ
N i dungộ
Tổng quan
Bộ chữ viết
Từ khóa
Định danh
Thư viện chuẩn C
Các hàm toán học cơ bản trong C
Cấu trúc một chương trình C
T ng quan ổ
C là ngôn ngữ lập trình cấp cao, được sử dụng
phổ biến để lập trình hệ thống và phát triển các
ứng dụng
Vào những năm cuối thập kỷ 60 đầu thập kỷ 70 của
thế kỷ 20, Dennish Ritchie phát triển ngôn ngữ lập
trình C dựa trên ngôn ngữ BCPL và ngôn ngữ B
Ban đầu, C được thiết kế nhằm lập trình trong môi
trường của hệ điều hành Unix nhằm hỗ trợ cho
các công việc lập trình phức tạp.
Nhưng về sau, với những nhu cầu phát triển ngày
một tăng của công việc lập trình, C đã vượt qua
khuôn khổ của phòng thí nghiệm Bell và nhanh
chóng hội nhập vào thế giới lập trình
T ng quan ổ
C là ngôn ngữ lập trình hệ thống rất mạnh và
“mềm dẻo”
C có một thư viện gồm rất nhiều các hàm đã được


tạo sẵn, người lập trình có thể tận dụng các hàm
này để giải quyết các bài toán mà không cần phải
tạo mới.
C hỗ trợ rất nhiều phép toán nên phù hợp cho việc
giải quyết các bài toán kỹ thuật có nhiều công
thức phức tạp.
C cũng cho phép người lập trình tự định nghĩa
thêm các kiểu dữ liệu trừu tượng khác.
C được phổ biến khá rộng rãi và đã trở thành một
công cụ lập trình khá mạnh, được trong việc xây
dựng những phần mềm hiện nay.
T ng quan ổ
Ngôn ngữ C có những đặc điểm cơ bản sau:

Tính cô đọng (compact): C chỉ có 32 từ khóa chuẩn và 40
toán tử chuẩn, nhưng hầu hết đều được biểu diễn bằng
những chuỗi ký tự ngắn gọn

Tính cấu trúc (structured): C có một tập hợp những chỉ thị
của lập trình như cấu trúc lựa chọn, lặp…

Tính tương thích (compatible): dễ dàng chuyển từ máy
tính này sang máy tính khác

Tính linh động (flexible): C là một ngôn ngữ rất uyển
chuyển về cú pháp, chấp nhận nhiều cách thể hiện, có thể
thu gọn kích thước của các mã lệnh làm chương trình
chạy nhanh hơn.

Biên dịch (compile): C cho phép biên dịch nhiều tập tin

chương trình riêng rẽ thành các tập tin đối tượng (object)
và liên kết (link) các đối tượng đó lại với nhau thành một
chương trình có thể thực thi được (executable) thống nhất
B ch vi t ộ ữ ế
Bộ chữ viết trong ngôn ngữ C bao gồm những
ký tự, ký hiệu sau (phân biệt chữ hoa và chữ
thường):

26 chữ cái in hoa A,B,C Z

26 chữ cái in thường a,b,c z.

10 chữ số thập phân 0,1,2 9.

Các ký hiệu toán học: +, -, *, /, =, <, >, (, )

Các ký hiệu đặc biệt: :. , ; " ' _ @ # $ ! ^ [ ]
{ }

Dấu cách hay khoảng trống
T khóa ừ
Từ khóa là từ dành riêng cho ngôn ngữ
C cung cấp một thư viện các từ khóa để hỗ trợ
cho công việc lập trình
Ví dụ: break, char, continue, case, do, double,
default, else, float, for, goto, int,if, long, return,
struct, switch, unsigned, while, typedef, union
voi, volatile,
Lưu ý:


Không được dùng từ khóa đặt tên cho các
định danh do người lập trình khai báo (biến,
hằng, mảng,… ).

Từ khóa phải được viết bằng chữ thường
T khóa ừ
Ví d : ụ
#include <stdio.h>
#include<conio.h>
int main ()
{
char ten[50];
printf(“Xin cho biet ten cua ban !”);
scanf(“%s”,ten);
printf(“Xin chao ban %s\n ”,ten);
printf(“Chao mung ban den voi Ngon ngu lap trinh C”);
getch();
return 0;
}
Đ nh danh ị
Định danh (tên) được dùng để đặt cho chương
trình, hằng, kiểu, biến, chương trình con
Tên có hai loại là tên chuẩn và tên do người
lập trình đặt.
Tên chuẩn là tên do C đặt sẵn như:

tên kiểu: int, char, float,…

tên hàm: sin, cos
Đ nh danh ị

Tên do người lập trình tự đặt sử dụng bộ chữ cái, chữ
số và dấu gạch dưới (_) để đặt tên
Quy tắc đặt tên:

Bắt đầu bằng một chữ cái hoặc dấu gạch dưới.

Không có khoảng trống ở giữa tên.

Không được trùng với từ khóa.

Độ dài tối đa của tên là không giới hạn, tuy nhiên chỉ có
31 ký tự đầu tiên là có ý nghĩa.
Ví dụ:

Tên hợp lệ: a, i, ho_ten, do_dai

Tên không hợp lệ: do dai, 01A
Th vi n chu n C ư ệ ẩ
Thư viện chuẩn C là một tập hợp các tập tin
tiêu đề và thư viện các thủ tục được tiêu
chuẩn hóa
Thư viện chuẩn cung cấp tập hợp cơ bản các
hàm toán, điều chỉnh dãy kí tự, chuyển đổi
kiểu, và các vào/ra cơ sở
Mọi chương trình C khi hoạt động gần như
phải phụ thuộc vào thư viện chuẩn
Lưu ý: Không được viết hoa tên thư viện
chuẩn khi lập trình
Th vi n chu n C ư ệ ẩ
Thư viện chuẩn C bao gồm:


<assert.h>: hỗ trợ phát hiện các lỗi lô-gíc và
các kiểu lỗi khác trong các phiên bản dùng để
tìm lỗi của một chương trình.

<complex.h>: tập hợp các hàm dùng để điều
chỉnh các số phức.

<ctype.h>: phân lớp các kí tự bởi các kiểu hay
dùng để chuyển đổi giữa chữ viết hoa và viết
thường.

<errno.h>: thử (hay hiển thị) các lỗi được báo
cáo từ các hàm thư viện.
Th vi n chu n C ư ệ ẩ

<fenv.h>: kiểm soát môi trường chấm động.

<float.h>: gồm định nghĩa các hằng nêu ra các
đặc tính xây dựng của thư viện chấm động.

<inttypes.h>: dùng cho việc chuỷen đổi kiểu
chính xác giữa các kiểu nguyên.

<iso646.h>: để lập trình trong ISO 646 cho cho
các bộ kí tự khác nhau.

<limits.h>: chứa định nghĩa các hằng có đặc
tính đặc biệt của các kiểu nguyên


<locale.h>: dùng cho setlocale() và các hằng
có liên quan
Th vi n chu n C ư ệ ẩ

<math.h>: tính các hàm số thông dụng.

<setjmp.h>: dùng trong việc thoát ra nơi không
có tính địa phương.

<signal.h>: kiểm soát các điều kiện ngoại lệ.

<stdarg.h>: truy cập số lượng khác nhau của
các đối số được chuyển vào hàm.

<stdbool.h>: dùng cho kiểu dữ liệu Bool.

<stdint.h> : dùng trong việc định nghĩa các kiểu
nguyên khác nhau.

<stddef.h>: cung cấp nhiều kiểu và macro hữu
dụng.
Th vi n chu n C ư ệ ẩ

<stdio.h>: cung cấp khả năng nhập trong C.

<stdlib.h>: dùng để xúc tiến nhiều phép toán, bao
gồm sự chuyển đổi, các số giả ngẫu nhiên, cấp phát
vùng nhớ, kiểm soát quá trình, môi trường, tín hiệu,
tìm kiếm, và xếp thứ tự.


<string.h>: Để điều chỉnh nhiều loại dãy kí tự.

<tgmath.h>: Dùng cho các hàm toán kiểu thông dụng.

<time.h>: Để chuyển đổi giữa các định dạng khác
nhau về thì giờ và ngày tháng.

<wchar.h>: Để điều chỉnh độ rộng của các dòng và
nhiều loại dãy kí tự sử dụng nhiều kí tự có độ lớn

<wctype.h>: Để phân lớp các kí tự có độ lớn.
Th vi n chu n C ư ệ ẩ
Các tập tin thư viện thông dụng:

stdio.h: Tập tin định nghĩa các hàm vào/ra chuẩn:
printf(), scanf(), gets(), …

conio.h: Tập tin định nghĩa các hàm vào ra trong chế
độ DOS (DOS console): clrscr(), getch()…

math.h: T p tin đ nh nghĩa các hàm tính toán: sqrt(), log(), ậ ị
sin(), cos(), tan()…

alloc.h: tin đ nh nghĩa các hàm liên quan đ n vi c qu n lý b ị ế ệ ả ộ
nhớ

io.h: T p tin đ nh nghĩa các hàm vào ra c p th p: open(), ậ ị ấ ấ
read(), close(), creat(), eof(), filelength()…

graphics.h: T p tin đ nh nghĩa các hàm liên quan đ n đ ậ ị ế ồ

h a: initgraph(), line(), circle(), getpixel(), setcolor()…ọ
Các hàm toán h c c b n trong Cọ ơ ả
abs(int x): tính trị tuyệt đối của số nguyên x
fabs(double x): tính trị tuyệt đối của số thực x
random(int n): lấy số ngẫu nhiên từ 0 đến n-1
randomize(): khởi đầu bộ tạo số ngẫu nhiên,
nên chạy hàm này trước khi dùng hàm
random
cos(double x), sin(double x), tan(double x):
tính cos, sin và tang của x (đơn vị của x là
radian chứ không phải là độ, 1 radian bằng
khoảng 57 độ, cụ thể là bằng 180/3.14 )
exp(double x): tính e mũ x
Các hàm toán h c c b n trong Cọ ơ ả
log(double x): tính logarit tự nhiên của x (ln(x))
pow(double y,double x): tính y mũ x
Chú ý: y mũ x có thể tính theo công thức:
y mũ x = exp(y*log(x))
sqrt(double x): tính căn bậc 2 của x
Chú ý: căn bậc n của x có thể tính theo công thức:
pow(x, 1/n)
floor(double x): cho số nguyên lớn nhất dưới x
Ví dụ: floor(8.6) là 8
ceil(double x): cho số nguyên bé nhất trên x
Ví dụ: ceil(8.6) là 9
C u trúc m t ch ng trình C ấ ộ ươ
Một chương trình C có thể bao gồm các
phần:

Các chỉ thị tiền xử lý


Khai báo biến ngoài

Các hàm tự tạo

Chương trình chính (hàm main)
Các ch th ti n x lý ỉ ị ề ử
Sử dụng chỉ thị #include để khai báo tập tin thư viện sẽ
dùng:

Cú pháp:
#include <Tên tập tin thư viện>
Hoặc #include “Tên đường dẫn”

Ví dụ:
#include <stdio.h>
Hoặc #include”C:\\TC\\math.h”
Sử dụng chỉ thị #define để định nghĩa hằng số:

Cú pháp: #define <Tên hằng> <Giá trị>

Ví dụ: #define MAXINT 32767
Đ nh nghĩa ki u d li u ị ể ữ ệ
Là phần không bắt buộc
Dùng để đặt tên lại cho một kiểu dữ liệu nào
đó hay đặt 1 kiểu dữ liệu riêng dựa trên các
kiểu dữ liệu đã có
Cú pháp:
typedef <Tên kiểu cũ> <Tên kiểu mới>
Ví dụ:

typedef int SoNguyen; // Kiểu SoNguyen là
kiểu int
Khai báo các prototype
Khai báo tên hàm, các tham số, kiểu kết quả trả về,…
của các hàm sẽ cài đặt trong phần sau
Là phần không bắt buộc
Chỉ là các khai báo đầu hàm, không phải là phần định
nghĩa hàm
Cú pháp:
<Kiểu kết quả trả về> Tên hàm (danh sách đối số)
Ví dụ:
long giaithua (int n); // tính giai thừa của số nguyên n
double x_mu_y(float x, float y); /*Hàm tính x mũ y*/
Khai báo các bi n ngoàiế
Khai báo các biến toàn cục được sử dụng
trong cả chương trình
Là phần không bắt buộc
Ví dụ: int i;
char ten[50];
Ch ng trình chínhươ
Là phần bắt buộc phải có
Cú pháp:
<Kiểu dữ liệu trả về> main()
{
Các khai báo cục bộ trong hàm main: Các khai
báo này chỉ tồn tại trong hàm mà thôi, có thể
là khai báo biến hay khai báo kiểu.
Các câu lệnh dùng để định nghĩa hàm main
return <kết quả trả về>; // Hàm phải trả về kết
quả

}
Cài đ t các hàm t t oặ ự ạ
Cú pháp:
<Kiểu dữ liệu trả về> function1( các tham số)
{
Các khai báo cục bộ trong hàm.
Các câu lệnh dùng để định nghĩa hàm
return <kết quả trả về>;
}

×