LẬP TRÌNH CĂN BẢN - CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ C potx

13 450 1
LẬP TRÌNH CĂN BẢN - CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ C potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 LẬP TRÌNH CĂN BẢN CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ C 2 Nộidung l Bộ chữ viếttrongC lCáctừkhóa l Cặpdấuchúthích l Cáckiểudữliệusơcấpchuẩn l Tênvàhằng l Biếnvàbiểuthức l CấutrúccủamộtchươngtrìnhC 3 Bộ chữ viếttrongC lBộchữ viếttrongCbaogồmcáckýtựsau: l 26 chữ cáilatinhlớnA,B,C Z l 26 chữ cáilatinhnhỏ a,b,c z. l 10 chữ số thậpphân0,1,2 9. l Cáckýhiệutoán học: +, -, *, /, =, <, >, ( ,) l Cáckýhiệu đặcbiệt: ., : ;" ' _ @ # $ ! ^ [ ] { } l Dấucáchhay khoảngtrống. l Phânbiệtchữ HOA HOA vàchữ thư thư ờ ờ ng ng 4 CáctừkhóatrongC lTừkhóalàcáctừdànhriêngcủaC: hàm, lệnh, thư viện,… l Không được dùngtừkhóa đểđặttêntrong chương trình. 5 Cặpdấuchúthích (comment) l Khibiêndịchcácphầnchúthíchbịbỏqua l Dùng/* và*/: chúthíchdàinhiềudòng l Dùng//: chúthíchchỉ 1 dòng #include <stdio.h> #include<conio.h> int main (){ char ten[50]; /* khaibaobien ten kieuchar 50 kytu */ printf(“Xinchobietten cuaban !”); scanf(“%s”,ten); /*Doc vao1 chuoila ten ban*/ printf(“Xinchaoban %s\n ”,ten); //Dung chuongtrinh, chogo phim getch(); return 0; } 6 Cáckiểudữliệusơcấpchuẩn l Kiểusốnguyên (integer) l 1 byte, 2 byte và4 byte l Códấu hay không dấu l Kiểusốthực (real) l Dấu chấm động l 4 byte, 8 byte và10 byte l Kiểu rỗng: void 7 Kiểusốnguyên l Được dùng để lưucác giátrị nguyên hay còngọilà kiểu đếm được. 8 Kiểusốthực l Đượcdùng để lưucác số thực hay cácsốcódấu chấmthậpphân l Kiểu void l Cóý nghĩalàkiểu rỗng khôngchứagiátrị gì l Vídụ: void main(){ ….} 9 Hàm sizeof() l Xác định kích thước 1 kiểu dữ liệu khi chạy chương trình (runtime) l Cúpháp: sizeof(tên kiểu dữ liệu) l Kết quả trả về: số byte kích thước l Vídụ: sizeof(int) sizeof(long double) 10 Kiểu enum (1) l enum gần giống với tiền xử lý #define. l Cho phép định nghĩa 1 danh sách các bídanh (aliase) để trình bày các số nguyên. l Vídụ: #define MON 1 #define TUE 2 #define WED 3 cóthể dùng enum: enum week{ Mon=1, Tue, Wed, Thu, Fri Sat, Sun} days; l Ưu điểm của enum so với #define lànó cóphạm vi, nghĩa là1 biến chỉ cótác dụng trong khối nó được khai báo. 11 Kiểu enum (2) 12 Kiểu enum (3) 13 TênvàhằngtrongC lTên (identifier) l Được dùng đểđặtcho chươngtrình, hằng, kiểu, biến, chươngtrìnhcon, l Có2 loại: l Tênchuẩn (từ khóa): làtêndo C đặtsẵnnhư tênkiểu: int, char, float,…; tênhàm: sin, cos l Têndo ngườilậptrìnhtựđặt. 14 Chúý khi đặt tên l Phân biệt HOA và thường 15 Têndo ngườilậptrìnhtựđặt l Vídụ: l Tên đặt hợp lệ: Chieu_dai, Chieu_Rong, Chu_Vi l Tên không hợp lệ: Do Dai, 12A2 l Phảituânthủ quytắc: l Sử dụng bộ chữ cái, chữ số vàdấu gạch dưới (_) l Bắt đầubằngmộtchữ cáihoặcdấugạchdưới. l Khôngcókhoảngtrống ở giữatên. l Không đượctrùngvớitừkhóa. l Độ dàitốiđacủatênlà32 kýtự, tuynhiêncầnđặtsao chorõràng, dễ nhậnbiếtvàdễnhớ. l Khôngcấmviệc đặttêntrùngvớitênchuẩnnhưngkhi đóý nghĩacủatênchuẩnkhôngcòngiátrị nữa. 16 Hằng(Constant) l Là đạilượng không đổi trongsuốtquátrìnhthực thichương trình => không thể gán lạI giátrị cho hằng l Hằng cóthể là: l 1 con số, 1kýtự l1 chuỗikýtự 17 Hằngsốthực l Giátrị kiểu: float, double, long double l 2 cáchthể hiện l Cách1:123.34 -223.333 3.00 -56.0 l Cách2:viếttheosốmũhay số khoahọc 1234.56e-3 = 1.23456 (làsố1234.56*10 -3 ) -123.45E4 = -1234500 ( là-123.45*10 4 ) 18 Hằngsốnguyên(1) l Hằngsốnguyên2 byte (int) hệ thậpphân l Sử dụng 10 ký số 0 9 l Hằngsốnguyên2 byte (int) hệ bátphân l Sử dụng 8kýsố0 7 l Cáchbiểudiễn: 0<cáckýsốtừ0 đến7> 19 Hằngsốnguyên(2) l Hằngsốnguyên2 byte (int) hệ thậplục phân l Làkiểusốnguyêndùng: l 10 kýsố0 9 và l 6 kýtựA, B, C, D, E ,F l Cáchbiểudiễn: 0x<cáckýsốtừ0 đến9 và6 kýtựtừA đến F> l Số thậplụcphân: 0xd n d n-1 d n-2 …d 1 d 0 20 Hằng số nguyên (3) l Vídụ: Kết quả của chương trình sau làgi? 21 Hằngsốnguyên(4) l Hằngsốnguyên4 byte (long) l Đượcbiểudiễnnhư số inttronghệthập phânnhưngkèmtheokýtựlhoặc L. l Vídụ: 45345L hay 45345l hay 45345 22 Hằngkýtự(char) l Vídụ: ‘a’, ‘A’, ‘0’, ‘9’ l Là1 kýtựđượcviếttrong cặpdấunháy đơn(‘). l Mỗimộtkýtựtương ứngvới 1 giátrị trongbảngmã ASCII. l Hằngkýtựcũng đượcxem như trị số nguyên. l Chúngtacóthể thựchiện cácphéptoán số họctrên2 kýtự(dùnggiátrị ASCII của chúng) ASCII = American Standard Code for Information Interchange 23 Hằngchuỗikýtự lVídụ: “Ngon ngu lap trinh C” l Là1chuỗihay 1 xâukýtựđược đặttrongcặpdấu nháykép (“). Chúý: l “”: chuỗirỗng -không cónội dung l Khilưutrữ trongbộnhớ, mộtchuỗi đượckếtthúcbằngký tự NULL (‘\0’: mãAsciilà0). l Để biểudiễnkýtựđặcbiệtbêntrongchuỗitaphảithêm dấu\phíatrước. l Vídụ: Viết “I\’m a student” cho “I’m a student” Viết “Day la kytu\“dacbiet\”” cho “Day la kytu“dacbiet”” 24 BiếnvàBiểuthức (variable and expression) l Biếndùng để chứadữliệutrongquátrìnhthựchiện chươngtrình. l Giátrị củabiếncóthể bị thay đổi. l Cúphápkhaibáobiến: <Kiểudữliệu> Danh sáchcáctênbiếncáchnhau bởidấu phẩy; 25 Khởi tạo giátrị cho biến lúc khai báo l Vídụ: l Cách viết giátrị cho biết luôn kiểu của nó: l Chúý:8864L cókiểu long, còn 8864 cókiểu int 26 Vị tríkhaibáobiến (1) l Biếnngoài l Được đặt bên ngoài tất cả các hàm l Ảnh hưởng đến toàn bộ chương trình (biếntoàn cục) 27 Vị tríkhai báo biến(2) l Biến trong l Được đặtbên trong hàm, chương trình chính hay một khối lệnh l Ảnh hưởng đến hàm, chương trình hay khối lệnh chứa nó (biến cục bộ). 28 Biểu thức (1) l Vídụ: (-b +sqrt(Delta))/(2*a) l Biểu thức làmột sự kết hợp giữa l Các toán tử (operator) và l Các toán hạng (operand) l Các loại toán tử trong C l Toán tử số học l Toán tử quan hệ vàlogic l Toán tử Bitwise l Toán tử ? l Toán tử contrỏ &và* l Toán tử dấu phẩy 29 Các toán tử số học (1) 30 Các toán tử số học (2) • Tăng vàgiảm(++ & ) ++x hay x++ giống x = x + 1 x hay x giống x = x –1 •Tuy nhiên: x = 10; y = ++x; //y = 11, x=11 • Còn: x = 10; y = x++; //y = 10, x=11 31 Các toán tử số học (3) l Đâu làsựkhác nhau? x++ trả về giátrị hiện hành của x và sau đó tăng x ++x tăng x trước và sau đótrả về giátrị mới của x 32 Biểu thức Boolean (boolean expression) l Chúý! Không cókiểu Boolean rõ ràng trong C. Thay vào đóC dùng các giátrị nguyên để tượng trưng cho giátrị Boolean, với qui ước: l Chúý! C dùng “=” cho phép gán, vàdùng “==“ cho phép so sánh. Nótrả về 1 nếu bằng và 0 nếu ngược lại false Giátrị 0 true Bất kỳ giátrị nào ngoại trừ 0 33 Các toán tử quan hệ vàcác toán tử Logic (1) l Các phép so sánh sau tạo ra các biểu thức logic cógiátrị kiểu Boolean 34 Các toán tử quan hệ vàcác toán tử Logic (2) l Vídụ: lCácbiểu thức logic trả về 0 nếu false(sai) 1 nếu true(đúng) 35 Các toán tử quan hệ vàcác toán tử Logic (3) l Bảng chân trị cho các toán tử Logic l Thứ tự ưu tiên l Vídụ:10>5&&!(10<9)||3<=4 => đúng (1) 36 Các toán tử Bitwise l Toán tử Bitwise giúp kiểm tra,gán hay thay đổi các bitthật sự trong1 bytecủaword. l Chỉ dùng cho kiểu char và int. 37 Toán tử ? l Toán tử ? thực hiện như lệnhif-else. l Cúpháp: E1? E2 : E3 l Vídụ: X = (10 > 9) ? 100 : 200; =>X=100 X = (10 >15 )? 100 : 200; =>X=200 38 Toán tử contrỏ &và* lVídụ: int *p; //con tro so nguyen int count=5, x; p= &count; =>Đặt vào biếnm địa chỉ bộ nhớ của biếncount l Toán tử * trả về nộidung củaô nhớ màmột con trỏ đang chỉ vào l Vídụ: x= *p;// x=5 39 Toán tử dấu phẩy l Vídụ: l x = (y=3,y+1); l Trước hết gán 3 cho y rồi gán 4 cho x. l Đượcsửdụng để kết hợp các biểu thức lại với nhau. l Bên trái của dấu(,) luôn được xem làkiểu void. l Biểu thức bên phải trở thành giátrị của tổng các biểu thức được phân cách bởi dấu phẩy. 40 Tổng kết về độ ưu tiên [...]... ngoài C i đặt c c hàm 44 Chia chương trình ra c c module (1) Tiền xử lý và biên dịch (preprocess and compile) l l C c chỉ thị định hướng (directive): l l l 1 chương trình ph c tạp c thể đư c chia ra vài module #include…, #define… C thể chứa c c lệnh ph c tạp như if-else Bộ tiền xử lý (preprocessor) sẽ thông dịch c c directive và xóa bỏ nó trư c khi cung c p cho trình biên dịch C 45 Chia chương trình. .. gán đư c viết gọn lại C u tr c c a 1 chương trình C (1) l C u tr c một chương trình C l Tiền xử lý và biên dịch l Prototype l C c tập tin thư viện thông dụng x= x y; c thể đư c viết gọn lại (short form): 41 C c tập tin thư viện thông dụng l l l l l l 43 C u tr c c a 1 chương trình C (2) stdio.h: Định nghĩa c c hàm vào/ra chuẩn (standard input/output):printf(), scanf(), getc(), putc(), gets(),... calloc(), realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(), … io.h: Định nghĩa c c hàm vào ra c p thấp: open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(),… graphics.h: Định nghĩa c c hàm liên quan đến đồ họa: initgraph(), line(), circle(), putpixel(), getpixel(), setcolor(), … 42 C c chỉ thị tiền xử lý Chương trình chính Định... c c module (2) #define l l 47 l #define khai báo một tên macro (macro symbol) Sau đó, mỗi lần tên macro này xuất hiện, nó sẽ đư c thay thế bởi giá trị c a nó l Vấn đề: testmodule .c phải biết c c prototype c a foor và bar Giải pháp 1 (tệ): l l l Giải pháp 2 (tốt): l 46 Chèn tay c c prototype vào c c file c có dùng nó Bất lợi: Mỗi khi prototype bị thay đổi => phải chỉnh lại prototype trong tất c c c. .. /usr/include (linux) #include C: \\TC\\file.h”: tìm file.h trong đường dẫn 49 Header file l C c header file c thể chứa: Prototype cho c c hàm (function) l Định nghĩa kiểu (structs, unions, enums, typedefs) l (Định nghĩa c c class trong C+ +) l #define macro l #pragma cho compiler l C c biến toàn c c l C i đặt tr c tiếp c c hàm l 50 51 ... fopen(), fclose(), fread(), fwrite(), getchar(), putchar(), getw(), putw()… conio.h: Định nghĩa c c hàm vào ra trong chế độ DOS: clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(), clreol(),… math.h: Định nghĩa c c hàm tính toán: abs(), sqrt(), log() log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(),… alloc.h: Định nghĩa c c hàm liên quan đến vi c quản lý bộ nhớ: calloc(),... tất c c c file c dùng nó Lưu c c prototype vào 1 file riêng biệt mymodule.h (h: header) 48 #include l Với #include, bộ tiền xử lý sẽ thêm và thay thế token #include filename bằng nội dung c a filename Hết chương l C c header file sẽ đư c tìm ở đâu? l l #include : tìm file.h trong thư m c đã đư c x c định trong INCLUDE DIRECTORIES Ho c trong /usr/include (linux) #include C: \\TC\\file.h”: tìm . 1 LẬP TRÌNH C N BẢN C C THÀNH PHẦN C BẢN C A NGÔN NGỮ C 2 Nộidung l Bộ chữ viếttrongC lCáctừkhóa l C pdấuchúthích l C ckiểudữliệus c pchuẩn l Tênvàhằng l Biếnvàbiểuth c l C utrúccủamộtchươngtrìnhC 3 Bộ. th c logic c giátrị kiểu Boolean 34 C c toán tử quan hệ v c c toán tử Logic (2) l Vídụ: lCácbiểu th c logic trả về 0 nếu false(sai) 1 nếu true(đúng) 35 C c toán tử quan hệ v c c toán tử Logic. compile) l C c chỉ thị định hướng (directive): l #include…, #define… l C thể chứa c c lệnh ph c tạp như if-else. l Bộ tiềnxửlý (preprocessor) sẽ thông dịch c c directive vàxóa bỏ nó trư c khi cung c p

Ngày đăng: 26/07/2014, 07:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan