1. Trang chủ
  2. » Giáo án - Bài giảng

Bai giang ngon ngu lap trinh CPPT

70 200 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 171,5 KB

Nội dung

Trườngưđạiưhọcưbáchưkhoaưhàưnội Ngôn ngữ lập trình C Ngời soạn: Nguyễn Quang Huy 12/2000 Bai giang ngon ngu lap trinh C - Chơng Cơ ngôn ngữ 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 Tỉng quan vỊ ng«n ngữ 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ấu trúc chung chơng trình C #includeư #includeư /*ư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ư Bai giang ngon ngu lap trinh C - Các thành phần ngôn ngữ 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ác kiểu liệu Kiểu Kích thớc char int long unsigned float double Ph¹m vi 255 -32768 32767 -2147483648 2147484647 65535 3.4e-38 3.4e+38 1.7e-308 1.7e+308 Bai giang ngon ngu lap trinh C - byte bytes bytes bytes bytes bytes Khai báo biến [ = ]; 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 - Khai báo Hằngưtượngưtrưng: #define Víưdụ: #define MAX 100; #define ECHO "DHBK Hanoi" Hằngưbiến: const =; Víưdụ: const long MAX = 100L; const char ECHO[30] = "DHBK Hanoi"; Bai giang ngon ngu lap trinh C - BiÓu thøc (1/5) Cácưphépưtoánưsốưhọc:ư+,ư-,ư*,ư/,ư%,ưCácưphépưtoánưquanưhệ:ư>,ư=,ư­­­ i­+=­exp; Bai giang ngon ngu lap trinh C - 10 Kiểu cấu trúc (2/5) Khaiưbáoưbiếnưcấuưtrúc: struct Tên_kiểu tên_biến; Víưdụ: struct Address addr1, addr2; Khaiưbáoưcấuưtrúcưvớiưtypedef: #typedef struct Tªn_kiĨu Tªn_kiĨu_míi VÝ­dơ: #typedef struct Address TAddress; TAddress addr1, addr2; Bai giang ngon ngu 56 KiĨu cÊu tróc (3/5) • Truyưnhậpưtớiưcácưtrườngưtrongưcấuưtrúc: tên_biến.tên_trờng Víưdụ: strcpy(addr.name,"Nguyen Van A"); addr.number = 100; Tr­êng­hỵp­con­trá­cÊu­tróc: VÝ­dơ: TAddress *pAddr; (*pAddr).number = 100; pAddr->number = 100; Bai giang ngon ngu 57 KiĨu cÊu tróc (4/5) Cấuưtrúcưthườngưđượcưdùngưđểưxâyưdựngưmộtư bảngưcácưcấuưtrúc: Víưdụ: TAddress addrs[50]; Cấuưtrúcưđượcưsửưdụngưtrongưcácưdanhưsáchưmócư nối: struct Simple { TAddress addr; struct Simple *next; }; Bai giang ngon ngu 58 KiĨu cÊu tróc (5/5) • CÊu­tróc­bit: struct Tên_kiểu { /* khai báo trờng */ tên_trờng : độ_dài; }; Víưdụ: struct Person { char name[50]; unsigned short age:6; // 64 int sex:1; // }; Bai giang ngon ngu 59 Kiểu hợp (1/2) Khaiưbáoưkiểuưhợp : union Tên_kiểu { type_1 trờng_1 : độ_rộng_1; type_2 trờng_2 : độ_rộng_2; } tên_biến; Cácưtrườngưđềuưcóưcùngưđịaưchỉư Kíchưthướcưcủaưhợpưlàưkíchưthướcưcủaưtrườngưdàiưnhất Cácưthaoưtácưtrênưhợpưcũngưgiốngưnhưưtrênưcấuưtrúc Bai giang ngon ngu 60 KiĨu hỵp (2/2) VÝ­dơ: union Registers { struct WORDREGS { unsigned int ax,bx,cx,dx,si,di,cflag,flags; } x; struct BYTEREGS { unsigned char al,ah,bl,bh,cl,ch,dl,dh; } h; }; union Registers reg; reg.h.ah = 1; reg.x.cx = 15; Bai giang ngon ngu 61 Kiểu tệp TrongưCưcóưhaiưloạiưtệp:ưtệpưnhịưphânưvàưtệpư vănưbản Khaiưbáoưtệp:ưconưtrỏưtệp FILE *fp; Cácưthaoưtácưtrênưtệp:ư Hệưthốngưvàoưraưmứcư2ư(mứcưcao)ư:ưlàmưviệcư quaưcácưkênhưvào/ra Hệưthốngưvàoưraưmứcư1ư(mứcưthấp)ư:ưlàmư việcưquaưcácưthẻưtệp Bai giang ngon ngu 62 KiĨu tƯp : HƯ thèng vµo møc fopen():ưmởưmộtưtệpưtinư: FILE *fopen(char *filename,char *mode); Cácưchếưđộưmởưtệp: r rb ”rt” ”r+b”­­”r+t” “w” ”wb” ”wt” ”w+b”­­”w+t” “a” ”ab” ”at” ”a+b” ưưa+t Víưdụ: fp=fopen(exercise,w); fclose():ưđóngưtệpưtinưđãưđượcưmởưtrướcưđóưbởiư fopen(): int fclose(FILE *fp); Bai giang ngon ngu 63 KiĨu tƯp : HƯ thèng vµo mức Mộtưsốưhàmưcơưbảnư:ư • • • • putc() getc() fseek() fprintf() fscanf() fflush() feof() ferror() rewind() Bai giang ngon ngu 64 HÖ thèng vào mức 2: Example Ví dụ:ưTạoưtệpưbackupưcủaưautoexec.bat:ư #include int main(void) { FILE *in, *out; if ((in = fopen("\\AUTOEXEC.BAT", "rt")) == NULL) { fprintf(stderr, "Cannot open input file.\n"); return 1; } Bai giang ngon ngu 65 HƯ thèng vµo møc 2: Example (t.) if ((out = fopen("\\AUTOEXEC.BAK", "wt")) == NULL) { fprintf(stderr, "Cannot open output file.\n"); return 1; } while (!feof(in)) fputc(fgetc(in), out); fclose(in); fclose(out); return 0; } Bai giang ngon ngu 66 KiĨu tƯp : HƯ thèng vào mức Mộtưsốưhàmưcơưbảnư:ư • read() write() open() close() lseek() Bai giang ngon ngu 67 Hệ thống vào mức 1: Example Víưdụ:ưTạoưmộtưtệpưvănưbảnưbằngưhàmưopen #include #include #include #include int main(void) { int handle; char msg[] = "Hello world"; Bai giang ngon ngu 68 HƯ thèng vµo møc 1: Example (t.) if ((handle = open("TEST.$$$", O_CREAT | O_TEXT)) == -1) { perror("Error:"); return 1; } write(handle, msg, strlen(msg)); close(handle); return 0; } Bai giang ngon ngu 69 END Thank you! Bai giang ngon ngu 70 ... Tráiưsangư phải Bai giang ngon ngu lap trinh C 13 Các cấu trúc lệnh 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 -... } Bai giang ngon ngu lap trinh C - 16 CÊu tróc lặp (1/3) CâuưlệnhưFOR: for ( Bt1; Bt2; Bt3 ) Lenh; VÝ­dô:­tÝnh­N! long Gt,i,N; Gt = 1; for (i=1; i

Ngày đăng: 15/08/2018, 08:40

TỪ KHÓA LIÊN QUAN

w