Các ký t nhóm này nói chung không hi n th ra màn hình.[r]
(1)Gi i thi uớ ệ
Tin h c m t ngành khoa h c mũi nh n phát tri n h t s c nhanh chóng trongọ ộ ọ ọ ể ế ứ vài ch c năm l i ngày m r ng lĩnh v c nghiên c u, ng d ng m iụ ạ ở ộ ự ứ ứ ụ ọ m t c a đ i s ng xã h i.ặ ủ ờ ố ộ
Ngôn ng l p trình m t lo i cơng c giúp ngữ ậ ộ ạ ụ ười th hi n v n đ c aể ệ ấ ề ủ th c t lên máy tính m t cách h u hi u V i s phát tri n c a tin h c, ngôn ng l pự ế ộ ữ ệ ớ ự ể ủ ọ ữ ậ trình d n ti n hố đ đáp ng thách th c m i c a th c t ầ ế ể ứ ứ ớ ủ ự ế
Kho ng cu i nh ng năm 1960 đ u 1970 xu t hi n nhu c u c n có ngơn ngả ố ữ ầ ấ ệ ầ ầ ữ b c cao đ h tr cho nh ng nhà tin h c vi c xây d ng ph n m m h th ng,ậ ể ỗ ợ ữ ọ ệ ự ầ ề ệ ố h u hành Ngôn ng C đ i t đó, đệ ề ữ ờ ừ ược phát tri n t i phịng thí nghi m Bell.ể ạ ệ Đ n năm 1978, giáo trình " Ngơn ng l p trình C " tác gi c a ngôn ng làế ữ ậ ả ủ ữ Dennish Ritchie B.W Kernighan vi t, đế ược xu t b n ph bi n r ng rãi.ấ ả ổ ế ộ
C ngơn ng l p trình v n Ngồi vi c C đữ ậ ạ ệ ược dùng đ vi t h u hànhể ế ệ ề UNIX, người ta nhanh chóng nh n s c m nh c a C vi c x lý cho v n đậ ứ ạ ủ ệ ử ấ ề hi n đ i c a tin h c C không g n v i b t kỳ m t h u hành hay máy nào, m cệ ạ ủ ọ ắ ớ ấ ộ ệ ề ặ d u đầ ược g i " ngơn ng l p trình h th ng" đọ ữ ậ ệ ố ược dùng cho vi c vi t hệ ế ệ đi u hành, ti n l i cho c vi c vi t chề ệ ợ ả ệ ế ương trình x lý s , x lý văn b n vàử ố ử ả c s d li u.ơ ữ ệ
Và bây gi tìm hi u th gi i c a ngôn ng C t nh ng khái ni m banờ ể ế ủ ữ ừ ữ ệ đ u c b n nh t.ầ ơ ả ấ
(2)Chương 1 khái ni m c b nệ ả 1.1 T p ký t dùng ngôn ng C :ậ ự ữ
M i ngơn ng l p trình đ u đọ ữ ậ ề ược xây d ng t m t b ký t Các ký t đự ộ ộ ự ự ược nhóm l i theo nhi u cách khác đ t o nên t Các t l i đạ ề ể ừ ược liên k t v i theoế m t qui t c đ t o nên câu l nh M t chộ ắ ể ệ ộ ương trình bao g m nhi u câu l nh thồ ề ệ ể hi n m t thu t toán đ gi i m t tốn Ngơn ng C đệ ộ ậ ể ả ộ ữ ược xây d ng b ký t sauự ộ ự :
26 ch hoa : A B C Zữ 26 ch thữ ường : a b c z 10 ch s : 9ữ ố
Các ký hi u toán h c : + - * / = ( ) ệ ọ Ký t g ch n i : _ự ố
Các ký t khác : , : ; [ ] {} ! \ & % # $ ự
D u cách (space) dùng đ tách t Ví d ch VIET NAM có ký t , cịnấ ể ụ ữ ự VIETNAM ch có ký t ỉ ự
Chú ý :
Khi vi t chế ương trình, ta khơng đượ ục s d ng b t kỳ ký t khác ký tấ ự ự
Ví d nh l p chụ ậ ương trình gi i phả ương trình b c hai axậ +bx+c=0 , ta c n tínhầ bi t th c Delta ệ ứ ∆= b2 - 4ac, ngôn ng C không cho phép dùng ký t ữ ự ∆, v y ta ph iậ ả dùng ký hi u khác đ thay th ệ ể ế
1.2 T khoá :ừ
T khoá nh ng t đừ ữ ượ ục s d ng đ khai báo ki u d li u, đ vi t toán tể ể ữ ệ ể ế câu l nh B ng dệ ả ưới li t kê t khoá c a TURBO C :ệ ủ
asm break case cdecl
char const continue default
do double else enum
extern far float for
goto huge if int
interrupt long near pascal
register return short signed
sizeof static struct switch
(3)volatile while
ý nghĩa cách s d ng c a m i t khoá s đử ụ ủ ỗ ẽ ược đ c p sau này, ta c n ý :ề ậ ầ - Không dùng t khoá đ đ t tên cho h ng, bi n, m ng, hàm ể ặ ằ ế ả
- T khoá ph i đừ ả ược vi t b ng ch ằ ữ ường, ví d : vi t t khoá khai báo ki u nguyênụ ế ể int ch không ph i INT.ứ ả
1.3 Tên :
Tên m t khái ni m r t quan tr ng, dùng đ xác đ nh đ i lộ ệ ấ ọ ể ị ượng khác m t chộ ương trình Chúng ta có tên h ng, tên bi n, tên m ng, tên hàm, tên tr , tênằ ế ả ỏ t p, tên c u trúc, tên nhãn, ệ ấ
Tên đ t theo qui t c sau :ặ ắ
Tên m t dãy ký t bao g m ch cái, s g ch n i Ký t đ u tiên c a tênộ ự ữ ố ố ự ầ ủ ph i ch ho c g ch n i Tên không đả ữ ặ ố ược trùng v i khoá Đ dài c c đ i c a tên theo m cớ ộ ự ủ ặ đ nh 32 có th đị ể ược đ t l i m t giá tr t t i 32 nh ch c : Option-ặ ộ ị ứ Compiler-Source-Identifier length dùng TURBO C
Ví d :ụ
Các tên :
a_1 delta x1 _step GAMA Các tên sai :
3MN Ký t đ u tiên ầ ố m#2 S d ng ký t #ử ụ ự f(x) S d ng d u ( )ử ụ ấ Trùng v i t khoáớ te ta S d ng d u tr ngử ụ ấ ắ Y-3 S d ng d u -ử ụ ấ Chú ý :
Trong TURBO C, tên b ng ch thằ ữ ường ch hoa khác ví d tên AB khác v iữ ụ ab C, ta thường dùng ch hoa đ đ t tên cho h ng dùng ch thữ ể ặ ằ ữ ường đ đ t tênể ặ cho h u h t cho đ i lầ ế ượng khác nh bi n, bi n m ng, hàm, c u trúc Tuy nhiên khôngư ế ế ả ấ ph i u b t bu c.ả ề ắ ộ
1.4 Ki u d li u :ể ữ ệ
(4)M t giá tr ki u char chi m byte ( bit ) bi u di n độ ị ể ế ể ễ ược m t ký t thông quaộ ự b ng mã ASCII Ví d :ả ụ
Ký tự Mã ASCII
0 048
1 049
2 050
A 065
B 066
a 097
b 098
Có hai ki u d li u char : ki u signed char unsigned char ể ữ ệ ể
Ki uể Ph m vi bi u di nạ ể ễ S ký tố ự Kích thước
Char ( Signed char ) -128 đ n 127ế 256 byte
Unsigned char đ n 255ế 256 byte
Ví d sau minh ho s khác gi a hai ki u d li u : Xét đo n chụ ự ữ ể ữ ệ ương trình sau : char ch1;
unsigned char ch2;
ch1=200; ch2=200; Khi th c ch t :ự ấ
ch1=-56; ch2=200;
Nh ng c ch1 ch2 đ u bi u di n m t ký t có mã 200.ư ả ề ể ễ ộ ự Phân lo i ký t : ạ ự
Có th chia 256 ký t làm ba nhóm :ể ự
Nhóm 1: Nhóm ký t u n có mã t đ n 31 Ch ng h n ký t mã 13 dùngự ề ể ế ẳ ự đ chuy n tr v đ u dòng, ký t 10 chuy n tr xu ng dòng dể ể ỏ ề ầ ự ể ỏ ố ưới ( m t c tộ ộ ) Các ký t nhóm nói chung khơng hi n th hình.ự ể ị
Nhóm : Nhóm ký t văn b n có mã t 32 đ n 126 Các ký t có th đự ả ế ự ể ược đ a hình ho c máy in.ư ặ
Nhóm : Nhóm ký t đ ho có mã s t 127 đ n 255 Các ký t có th đ aự ố ế ự ể hình nh ng khơng in đư ược ( b ng l nh DOS ).ằ ệ
(5)Trong C cho phép s d ng s nguyên ki u int, s nguyên dài ki u long s nguyênử ụ ố ể ố ể ố khơng d u ki u unsigned Kích c ph m vi bi u di n c a chúng đấ ể ỡ ể ễ ủ ược ch b ngỉ ả :
Ki uể Ph m vi bi u di nạ ể ễ Kích thước
int -32768 đ n 32767ế byte
unsigned int đ n 65535ế byte
long -2147483648 đ n 2147483647ế byte unsigned long đ n 4294967295ế byte Chú ý :
Ki u ký tể ự có th xem m t d ng c a ki u nguyên.ể ộ ủ ể 1.4.3 Ki u d u ph y đ ng :ể ấ ả ộ
Trong C cho phép s d ng ba lo i d li u d u ph y đ ng, float, double longử ụ ữ ệ ấ ả ộ double Kích c ph m vi bi u di n c a chúng đỡ ể ễ ủ ược ch b ng dỉ ả ưới :
Ki uể Ph m vi bi u di nạ ể ễ S ch số ữ ố có nghĩa
Kích thước Float 3.4E-38 đ n 3.4E+38ế đ n 8ế byte Double 1.7E-308 đ n 1.7E+308ế 15 đ n 16ế byte long double 3.4E-4932 đ n 1.1E4932ế 17 đ n 18ế 10 byte Gi i thích : ả
Máy tính có th l u tr để ữ ược s ki u float có giá tr t đ i t 3.4E-38 đ nố ể ị ệ ố ế 3.4E+38 Các s có giá tr t đ i nh h n3.4E-38 đố ị ệ ố ỏ ược xem b ng Ph m vi bi u di nằ ể ễ c a s double đủ ố ược hi u theo nghĩa tể ương t ự
1.5 Đ nh nghĩa ki u b ng TYPEDEF :ị ể ằ 1.5.1 Công d ng :ụ
T khoá typedef dùng đ đ t tên cho m t ki u d li u Tên ki u s đừ ể ặ ộ ể ữ ệ ể ẽ ược dùng để khai báo d li u sau Nên ch n tên ki u ng n g n đ d nh Ch c n thêm t khoáữ ệ ọ ể ắ ọ ể ễ ỉ ầ typedef vào trước m t khai báo ta s nh n độ ẽ ậ ược m t tên ki u d li u có th dùng tên nàyộ ể ữ ệ ể đ khai báo bi n, m ng, c u trúc, vv ể ế ả ấ
1.5.2 Cách vi t :ế
Vi t t khố typedef, sau ki u d li u ( m t ki u ), r i đ n tên c aế ể ữ ệ ộ ể ế ủ ki u.ể
(6)Vi t chế ương trình nh p ba s th c Ki m tra xem ba s có th chi u dài c a baậ ố ự ể ố ể ề ủ
c nh c a m t tam giác đạ ủ ộ ược không? N u đế ược tính chu vi di n tích tam giácệ
đó.
BàI t p :ậ
Vi t chế ương trình tính hàm s :ố
f(x) = K0 x
K1+ -x K2 +
x
K3 + x
K4 + ………
x Kn-1 + -
Kn Bài t p :ậ
Vi t chế ương trình tính tích hai ma tr n C ậ mxn = A mxn * B nxk Bài t p :ậ
Vi t chế ương trình nh p vào m t dãy s sau tách dãy thành hai dãy ch ch aậ ộ ố ỉ ứ
các s dố ương ch ch a s âm Tính t ng s ph n t c a m i dãy sau s pỉ ứ ố ổ ố ầ ủ ỗ ắ
x p đ hai dãy có giá tr gi m d n.ế ể ị ả ầ
Bài t p :ậ
Vi t chế ương trình nh p vào m t ma tr n A nxm Tìm giá tr c c đ i c c ti u c aậ ộ ậ ị ự ạ ự ể ủ
các ph n t c a m ng ầ ủ ả
Bài t p :ậ
Trăm trâu,trăm cỏ
Trâu đ ng ăn nămứ
Trâu n m ăn baằ
L kh trâu giàụ ụ
Ba m t bó.ộ
Tính s trâu m i lo i ố ỗ ạ
Bài t p :ậ
V a gà v a chóừ ừ
(7)Đúng ba sáu con M t trăm chân ch n ộ ẵ
Tính s gà, s chó ố ố