Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 1 Trêng®¹ihäcb¸chkhoahµnéi Trêng®¹ihäcb¸chkhoahµnéi Ng«n ng÷ lËp tr×nh C Ngêiso¹n:NguyÔnQuangHuy 12/2000 Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 2 Ch¬ng1 Ch¬ng1 C¬b¶nvÒng«nng÷c C¬b¶nvÒng«nng÷c Tæng quan vÒ ng«n ng÷ C CÊu tróc chung cña mét ch ¬ng tr×nh C C¸c thµnh phÇn c¬ b¶n cña ng«n ng÷ C¸c kiÓu d÷ liÖu c¬ b¶n C¸c cÊu tróc lÖnh c¬ b¶n trong C Vµo ra trong C Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 3 TængquanvÒng«nng÷c TængquanvÒng«nng÷c Do B.W.Kerninghan & D.M.Ritchie (1970) ph¸t triÓn t¹i Bell lab. T¹i sao l¹i sö dông C? • NNLT v¹n n¨ng. • TÝnh kh¶ chuyÓn (portability). • §é thÝch nghi cao, tÝnh mÒm dÎo, NNLT chuyªn nghiÖp. • TÝnh hiÖu qu¶. Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 4 CÊutrócchungcñamétch¬ngtr×nhC CÊutrócchungcñamétch¬ngtr×nhC #include <stdio.h> #include <conio.h> /* Ch ¬ng tr×nh chÝnh */ void main() { printf(“Hello, world!\n”); /* §îi Ên mét phÝm */ getch(); } PhÇn dÉn h íng biªn dÞch PhÇn khai b¸o PhÇn ch ¬ng tr×nh chÝnh Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 5 Cácthànhphầncơbảncủangônngữ Cácthànhphầncơbảncủangônngữ Bộ chữ viết: phân biệt chữ hoa và chữ th ờng Tên: quy tắc đặt tên Từ khoá: asm, break, case, char, const, continue, if, Các kiểu dữ liệu cơ bản Các biến Các hằng Biểu thức Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 6 C¸ckiÓud÷liÖuc¬b¶n C¸ckiÓud÷liÖuc¬b¶n KiÓu Ph¹m vi KÝch th íc char 0 255 1 byte int -32768 32767 2 bytes long -2147483648 2147484647 4 bytes unsigned 0 65535 2 bytes float 3.4e-38 3.4e+38 4 bytes double 1.7e-308 1.7e+308 8 bytes Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 7 Khaib¸obiÕn Khaib¸obiÕn <KiÓu_d÷_liÖu><TªnbiÕn>[=<Gi¸trÞ>]; • Gi¸ trÞ cña biÕn cã thÓ ® îc khëi g¸n khi khai b¸o. VÝ dô: int i, j; float f; char ch, ch1 = ‘A’, ch2 = ‘\n’; double eps = 1E-6; Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 8 Khaib¸oh»ng Khaib¸oh»ng • H»ng t îng tr ng: #define<tªn_h»ng><gi¸_trÞ> VÝ dô: #define MAX 100; #define ECHO "DHBK Hanoi" • H»ng biÕn: const<tªn_kiÓu><tªn_h»ng>=<gi¸_trÞ>; VÝ dô: const long MAX = 100L; const char ECHO[30] = "DHBK Hanoi"; Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 9 Biểuthức(1/5) Biểuthức(1/5) Các phép toán số học: +, -, *, /, %, - Các phép toán quan hệ: >, <, >=, <=, ==, != Các phép toán logic: &&, ||, ! Các phép toán thao tác bit: &, |, ^, <<, >>, ~ Thao tác số học Thao tác logic Phép toán tăng giảm: ++, Phân biệt ++n; và n++; Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 10 BiÓuthøc(2/5) BiÓuthøc(2/5) • To¸n tö g¸n: <BiÕn>=<BiÓu_thøc>; • BiÓu thøc g¸n: <BiÕn>=<BiÓu_thøc> VÝ dô: int a = b = 5; • BiÓu thøc g¸n rót gän: <BiÕn>=<BiÕn><op><BiÓu_thøc> <BiÕn><op>=<BiÓu_thøc> VÝ dô: i = i + exp; > i += exp; [...]... phải Phải sang trái Bai giang ngon ngu lap trinh C - 13 CácưcấuưtrúcưlệnhưcơưbảnưtrongưCư Câu lệnh đơn: ; Câu lệnh ghép: { } Cấu trúc tuần tự Cấu trúc điều kiện Cấu trúc lặp Bai giang ngon ngu lap trinh C - 14 Cấuưtrúcưđiềuưkiệnư(1/2)ư Câu lệnh if : if (Biểu thức) ; hoặc: if (Biểu thức) ; else ; Ví dụ: if (aưfloatư->ưdoubleư->ưlongưdouble Phép toán chuyển đổi kiểu: ()ư Ví dụ: int n = (int) 10.24; Thứ tự u tiên của các toán tử: Bai giang ngon ngu lap trinh C - 12 Biểuưthứcư(5/5)ư Toán tử Thứ tự kết hợp (), [], -> ~, ++,... X[chiso]*Y[chiso]; } while (++chiso < MAXL); Bai giang ngon ngu lap trinh C - 19 VàoưraưtrongưCư(1/5)ư Vào ra qua các kênh xuất/nhập (I/O streams): Giá trị > Kênh xuất > Khuôn dạng > Thiết bị ra Thiết bị vào > Kênh vào > Khuôn dạng > Biến Th viện các hàm vào ra: stdio.h và conio.h #include #include Hàm printf() và scanf() Bai giang ngon ngu lap trinh C - 20 VàoưraưtrongưCư(2/5)ư Hàm... số nguyên từ bàn phím int day[20]; int chiso = 0; while (chiso . Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 1 Trêng®¹ihäcb¸chkhoahµnéi Trêng®¹ihäcb¸chkhoahµnéi Ng«n ng÷ lËp tr×nh C Ngêiso¹n:NguyÔnQuangHuy 12/2000 Bai. max=b; else max=a; Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 16 CÊutróc®iÒukiÖn(2/2) CÊutróc®iÒukiÖn(2/2) • C©u lÖnh SWITCH : switch (BiÓu_thøc_nguyªn){ case N1. i++) Gt *= i; Bai giang ngon ngu lap trinh C - (c) Nguyen Quang Huy 12/2000 18 Cấutrúclặp(2/3) Cấutrúclặp(2/3) Câu lệnh WHILE: while (<Biểu thức đk>) Lenh; Ví dụ: đọc một dãy 20 số nguyên từ