Tóm tắt C P2

Chia sẻ: Nhan Nguyen | Ngày: | Loại File: PDF | Số trang:10

0
57
lượt xem
19
download

Tóm tắt C P2

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Định nghĩa kiểu và khai báo biến tach biệt

Chủ đề:
Lưu

Nội dung Text: Tóm tắt C P2

  1. Bách khoa Online: hutonline.net G. CÊU TRóC (STRUCTURE): §Þnh nghÜa kiÓu vμ khai b¸o biÕn t¸ch biÖt: + §Þnh nghÜa kiÓu: struct tªn_cÊu_tróc { kiÓu tªn_thμnh_phÇn 1; kiÓu tªn_thμnh_phÇn 2;... kiÓu tªn_thμnh_phÇn n; }; + Khai b¸o biÕn: struct tªn_cÊu_tróc biÕn_1, biÕn_2,...,biÕn_n; + M¶ng cÊu tróc: struct tªn_cÊu_tróc tªnm¶ng[spt]; chóng ta còng cã thÓ sö dông typedef tr−íc tõ kho¸ struct ®Ó ®Þnh nghÜa kiÓu cÊu tróc, khi ®ã muèn khai b¸o biÕn ta kh«ng cÇn ®Æt struct tr−íc tªn_cÊu_tróc. §Þnh nghÜa kiÓu vμ khai b¸o biÕn kÕt hîp: struct tªn_cÊu_tróc { c¸c thμnh phÇn cÊu tróc gièng nh− trªn; } biÕn_1,biÕn_2,...,biÕn_n; Truy xuÊt ®Õn c¸c thμnh phÇn cÊu tróc: + §¬n gi¶n: biÕn_cÊu_tróc.biÕn_thμnh_phÇn; + Phøc t¹p: biÕn_cÊu_tróc.biÕn_cÊu_tróc_2.biÕn_thμnh_phÇn; ®−îc sö dông khi biÕn cÊu tróc 2 lμ thμnh phÇn trùc tiÕp cña mét biÕn c©u tróc lín h¬n (CÊu tróc lång nhau). Mét sè phÐp to¸n c¬ b¶n trªn kiÓu cÊu tróc: c¸c thao t¸c trªn biÕn cÊu tróc ph¶i ®−îc thùc hiÖn th«ng qua c¸c thμnh phÇn cña nã (ngo¹i trõ phÐp g¸n). Thao t¸c trªn c¸c thμnh phÇn cña cÊu tróc còng nh− thao t¸c trªn c¸c biÕn cã kiÓu t−¬ng øng. Vd: + NhËp: scanf(“%s”,&nhanvien.ten); + XuÊt: printf(“\n Ten nhan vien la: %s.”,nhanvien.ten); + Céng: luong=nhanvien1.luong + nhanvien2.luong; HTD (TH0003) C Programming (Se) Page: 10
  2. Bách khoa Online: hutonline.net + G¸n: ta cã thÓ g¸n hai biÕn cÊu tróc cho nhau; g¸n biÕn cho phÇn tö m¶ng; g¸n phÇn tö m¶ng cho biÕn; g¸n hai phÇn tö m¶ng cho nhau. §iÒu cÇn l−u ý lμ c¸c biÕn vμ c¸c phÇn tö m¶ng ph¶i cïng kiÓu. + Khëi t¹o gi¸ trÞ ®Çu cho cÊu tróc: ta khëi t¹o gi¸ trÞ b»ng c¸ch viÕt vμo sau khai b¸o cña chóng c¸c gi¸ trÞ cña c¸c thμnh phÇn. Vd: struct nhanvien2{“Nguyen Van A”, 1990, 500000}; Con trá kiÓu cÊu tróc: + Khai b¸o: kiÓu_cÊu_tróc *tªn_biÕn_con_trá; + Truy xuÊt: cã 2 c¸ch truy xuÊt ®Õn thμnh phÇn cña biÕn con trá: - Tªn_biÕn_con_trá -> tªn_thμnh_phÇn - (*Tªn_biÕn_con_trá).tªn_thμnh_phÇn 8. KIÓU TËp TIN (FILE): Khai b¸o: FILE *fp; // Khai b¸o biÕn con trá kiÓu File víi tªn fp M· chuyÓn dßng vμ kÕt thóc File: • M· chuyÓn dßng: §èi víi File më theo kiÓu nhÞ ph©n m· chuyÓn dßng lμ m· 10 (LF), cßn víi kiÓu v¨n b¶n sÏ lμ m· 13 vμ 10. • M· kÕt thóc: khi gÆp m· kÕt thóc hμm feof(fp) cho gi¸ trÞ 0. Trong khi ®äc nÕu gÆp ký tù cã m· 26 hoÆc ký tù cuèi cïng trong File, ta sÏ nhËn ®−îc mμ kÕt thóc File EOF (sè -1). §ãng më File vμ ®äc ghi d÷ liÖu: • Më File: FILE *fopen(const char *tªnfile, const char*kiÓu); Hμm dïng ®Ó më mét File, nÕu thμnh c«ng tr¶ vÒ con trá kiÓu File øng víi File võa më, ng−îc l¹i tr¶ vÒ NULL. Trong ®ã ®èi sè kiÓu mang c¸c gi¸ trÞ sau: + KiÓu v¨n b¶n: “r”(read), “w”(write), “a”(append), “r+”, “w+” . “a+”. + KiÓu nhÞ ph©n: “rb”, “wb”, “ab”, “r+b”, “w+b”, “a+b”. (Ctrl+F1->detail). • §ãng File: int fclose(FILE *fp); Víi fp lμ con trá t−¬ng øng víi File cÇn ®ãng. §Ó ®ãng tÊt c¶ c¸c File ®ang më ta dïng hμm: int fcloseall(void); NÕu thμnh c«ng 2 hμm nμy cho gi¸ trÞ 0, ng−îc l¹i tr¶ vÒ EOF. • Ghi ký tù: int putc(int ch, FILE *fp); int fputc(int ch, FILE *fp); Víi ch lμ gi¸ trÞ nguyªn, fp lμ con trá File. Hμm nμy sÏ ghi vμo file mét ký tù cã m· = HTD (TH0003) C Programming (Se) Page: 11
  3. Bách khoa Online: hutonline.net ch%256. NÕu thμnh c«ng tr· vÒ m· ký tù ®−îc ghi, ng−îc l¹i tr¶ vÒ EOF. Lμm viÖc víi Text&Binary. • §äc ký tù tõ File: int getc(FILE *fp); int fgetc(FILE *fp); Hμm ®äc mét ký tù tõ File fp, nÕu thμnh c«ng hμm cho m· ®äc ®−îc (0 ... 255), ng−îc l¹i tr¶ vÒ EOF. • Ghi d÷ liÖu theo khu«n d¹ng: int fprintf(FILE *fp, const char *control, ...); Víi fp lμ con trá File, control chøa ®Þa chØ cña chuæi ®iÒu khiÓn (gièng nh− trong hμm printf), ... lμ danh s¸ch c¸c ®èi mμ gi¸ trÞ cña chóng cÇn ghi vμo File. VD: fprintf(fp,”\n this year: %d”,iYear); • §äc d÷ liÖu theo khu«n d¹ng: int scanf(FILE *fp, const char *control,...); Víi fp lμ con trá File, control chøa ®Þa chØ cña chuæi ®iÒu khiÓn (gièng nh− trong hμm printf), ... lμ danh s¸ch c¸c ®èi chøa kÕt qu¶ ®äc ®−îc tõ File. VD: fscanf(fp,“%d%f”,&ia,&fa); • Ghi chuæi ký tù: int fputs(const char *s, FILE *fp); Víi s lμ con trá chØ tíi ®Þa chØ ®Çu cña mét chuæi ký tù kÕt thóc b»ng ‘\0’. Hμm sÏ ghi chuæi s lªn File fp, nÕu thμnh c«ng tr¶ vÒ ký tù cuèi cïng ®−îc ghi vμo File, ng−îc l¹i tr¶ vÒ EOF. • §äc chuæi (d·y) ký tù tõ File: char *fgets(char *s, int n, FILE *fp); Víi s lμ con trá kiÓu char trá tíi vïng nhí ®Ó chøa chuæi ®äc tõ File, n lμ sè nguyªn x¸c ®Þnh ®é dμi cùc ®¹i cña d·y cÇn ®äc, fp lμ con trá File. Hμm sÏ ®äc mét d·y ký tù tõ File fp vμo vïng nhí s, nÕu thμnh c«ng hμm tr¶ vÒ ®Þa chØ vïng nhËn kÕt qu¶, ng−îc l¹i trμ vÒ NULL. VD: while(!eof(fp)) fgets(s,256,fp); • Ghi mét sè nguyªn theo kiÓu nhÞ ph©n: int putw(int n, FILE *fp); Víi n lμ gi¸ trÞ nguyªn, fp lμ con trá File. NÕu thμnh c«ng hμm tr¶ vÒ sè nguyªn ®−îc ghi, ng−îc l¹i tr¶ vÒ EOF. • §äc mét sè nguyªn theo kiÓu nhÞ ph©n: int getw(FILE *fp); Víi fp lμ con trá File. Hμm ®äc mét sè nguyªn(2 byte), nÕu thμnh c«ng tr¶ vÒ sè nguyªn ®äc ®−îc, khi cã lçi hoÆc cuèi File hμm tr¶ vÒ EOF. • Ghi c¸c mÉu tin lªn File: int fwrite( void *pt, int size, int n, File *fp); Víi pt lμ con trá trá tíi vïng nhí chøa d÷ liÖu cÇn ghi, size lμ kÝch th−íc cña mÉu tin (byte), n lμ sè mÉu tin, fp lμ con trá File. Hμm sÏ ghi n mÉu tin kÝch th−íc size HTD (TH0003) C Programming (Se) Page: 12
  4. Bách khoa Online: hutonline.net byte tõ vïng nhí pt lªn File fp. Hμm tr¶ vÒ mét gi¸ trÞ = sè mÉu tin thùc sù ®−îc ghi. • §äc c¸c mÉu tin tõ File: int fread( void *pt, int size, int n, File *fp); Víi pt lμ con trá trá tíi vïng nhí chøa d÷ liÖu ®äc ®−îc, size lμ kÝch th−íc cña mÉu tin (byte), n lμ sè mÉu tin cÇn ®äc, fp lμ con trá File. Hμm sÏ ®äc n mÉu tin kÝch th−íc size byte tõ File fp vμo vïng nhí pt. Hμm tr¶ vÒ mét gi¸ trÞ = sè mÉu tin thùc sù ®äc ®−îc. C¸c hμm fread, fwrite th−êng dïng ®Ó ®äc ghi c¸c ®èi t−îng cã cïng ®é lín nh− cÊu tróc, sè thùc,... Mét sè hμm kh¸c thao t¸c trªn FILE: (cÊp II) • int fflush(FILE *fp); lμm s¹ch vïng ®Öm File fp, thμnh c«ng ->0, ng−îc l¹i - >EOF. • int fflushall(void); lμm s¹ch vïng ®Öm cña c¸c File ®ang më, nÕu thμnh c«ng hμm tr¶ vÒ gi¸ trÞ sè tÖp ®ang më, ng−îc l¹i tr¶ vÌ EOF. • int ferror(FILE *fp); dïng kiÓm tra lçi thao t¸c trªn File fp. Hμm tr¶ vÒ gi¸ trÞ 0 nÕu cã lçi, ng−îc l¹i tr¶ vÒ 0. • void perror(const char *s); in chuæi s vμ th«ng bμo lçi hÖ thèng. • int unlink(const char *filename); xo¸ mét File trªn ®Üa, nÕu thμnh c«ng hμm cho gi¸ trÞ 0, ng−îc l¹i tr¶ vÒ EOF. • void rewind(FILE *fp); chuyÓn con trá chØ vÞ cña File fp vÒ ®Çu File. • int fseek(FILE *fp, long sb, int xp); di chuyÓn con trá chi vÞ cña File fp tõ vÞ trÝ x¸c ®Þnh xp qua |sb| byte. ChiÒu di chuyÓn lμ vÒ cuèi tÖp nÕu sb>0 vμ cuèi tÖp nÕu sb
  5. Bách khoa Online: hutonline.net • void textmode(int mode); chän mode mμn h×nh v¨n b¶n, mode bao gåm LASTMODE, BW40, C40, BW80, C80, MONO. (conio.h). C¸c gi¸ trÞ cña mode ®−îc m« t¶ trong help online víi index lμ text_modes. • void textbackground( int color); ®Æt mμu cho nÒn (cöa sæ). • void textcolor(int color); ®Æt mμu ch÷. Víi color mang gi¸ trÞ tõ 0-15 hay c¸c h»ng sè ®Þnh nghÜa s½n nh−: BLACK, WHILE, BLUE, RED, CYAN, YELLOW, BROWN,.. C¸c gi¸ trÞ cña color ®−îc tr×nh bμy trong help online víi index lμ COLORS. • void window(int xtr, int ytr,int xd,int yd); thiÕt lËp mét cöa sæ víi gãc trªn tr¸i (xt, yt) vμ d−íi ph¶i (xd, yd). Chó ý r»ng nªn dïng hμm cprintf vμ scanf thay cho printf vμ scanf sÏ cho mét mμn h×nh ®Ñp h¬n. • void clrscr(void); xo¸ cöa sæ hiÖn t¹i, ®−a con trá vÒ gãc trªn tr¸i cña cöa sæ. • void clreol(void); xo¸ ®Õn cuèi dßng trong cö sç. • void gotoxy(int x, int y); chuuÓn con trá ®Õn vÞ trÝ x,y trong cöa sæ • int wherex(void), wherey(void); cho biÕt vÞ trÝ ngang, däc cña con trá trong cöa sæ. ¢m thanh: • sound(n): Dïng loa CPU ph¸t ra mét ©m thanh víi tÇn sè n. • delay( m): KÐo dμi mét nèt nh¹c trong thêi gian lμ m mili gi©y. • nosound(): T¾t ©m thanh ®· ph¸t. Dïng c¸c hμm trªn chóng ta sÏ ph¸t ra c¸c ©m thanh lμ c¸c note nh¹c víi cao ®é lμ n vμ tr−êng ®é m. Sau ®©y lμ 7 tÇn sè t−¬ng øng víi 7 note nh¹c c¬ b¶n ê qu·ng t¸m thø I: ♦ §«: 132 ♦ MI: 164 ♦ SOL: 192 ♦ SI: 244 ♦ Rª: 146 ♦ FA: 172 ♦ LA: 216 §Ò ®−îc note th¨ng ta lÊy (note th−êng t−¬ng øng céng víi note cao h¬n kÕ tiÕp)/2, vμ note gi¸ng th× còng lÊy (note th−êng t−¬ng øng céng víi note thÊp h¬n kÕ tiÕp)/2.§èi víi c¸c note ë c¸c qu¶ng t¸m cao h¬n hay thÊp h¬n th× ta chØ viÖc nh©n hay chia ®«i c¸c note t−¬ng øng. C¸c note lÆng ta sÏ ph¸t mét note víi tÇn sè kho¶ng 30.000Hz (Siªu ©m). HTD (TH0003) C Programming (Se) Page: 14
  6. Bách khoa Online: hutonline.net VD: Rª#=(Rª+Mi)/2; Rªb(Rª gi¸ng)=(Rª+§«)/2; §è=§«*2;... VÒ tr−êng ®é ta lÊy note §en lμm chuÈn, vμ qui ®Þnh tr−êng ®é cña c¸c note kh¸c (note mãc, nèt trßn, ®en chÊm, trßn chÊm,...) theo qui t¾c nh¹c lý vμ lÊy theo chuÈn cña note §en. Th«ng th−êng víi tiÕt tÊu trung b×nh th× note §en ®−îc qui ®Þnh kho¶ng tõ 300-400, tuú theo tiÕt tÊu nhanh hay chËm cña mçi bμi h¸t cô thÓ mμ ta qui ®Þnh cho hîp lý. 10. ®å ho¹: Khëi ®éng chÕ ®é §å ho¹: void initgraph(int *graphdriver, int *graphmode, char *driverpath); Víi driverpath lμ ®−êng dÉn chøa c¸c file ®iÒu khiÓn ®å ho¹ (thõ¬ng lμ “C:\\BorlandC\\Bgi”), graphdriver vμ graphmode dïng x¸c ®Þnh mμn h×nh vμ kiÓu ®å ho¹ sÏ sö dông. NÕu kh«ng biÕt kiÓu mμn h×nh ®ang sö ta sö dông DETECT cho graphdriver ®Ó ch−¬ng tr×nh tù nhËn d¹ng, C¸c gi¸ trÞ cña graphriver ®−îc tr×nh bμy trong help online víi index lμ graphics_rivers vμ graphics_modes. VD: #include ; #include ; #include ; main() { int gr_drive = DETECT, gr_mode; initgraph(&gr_drive, &gr_mode, "c:\\tc\\bgi"); outtext("Graphic example"); getch(); } C¸c hμm th−êng dïng: • Lçi ®å ho¹: ph¸t sinh khi khëi ®éng chÕ ®é då ho¹ vμ khi dïng c¸c hμm. Hμm int graphresult( void) tr¶ vÒ lçi khi ph¸t hiÖn, hμm char grapherrormsg(int errorcode) tr¶ vÒ th«ng bμo lçi do graphresult ph¸t hiÖn. C¸c m· lçi cña graphresult ®−îc tr×nh bμy trong help online víi index lμ graphics_errors. • Chän mμu nÒn: void setbkcolor(int color); • Chän mμu nÐt: void setcolor( int color); HTD (TH0003) C Programming (Se) Page: 15
  7. Bách khoa Online: hutonline.net • Chän mÉu vμ mμu t«: void setfillstyle( int pattern, int color); C¸c gi¸ trÞ cña pattern(mÉu t«) ®−îc tr×nh bμy trong help online víi index lμ fill_parttens. • Chän mÉu cho nÐt: void setlinestyle(int linestyle, int pattern, int thickness); cho phÐp ta qui ®Þnh 3 yÕu tè lμ kiÓu linestyle(0[nÐt liÒn],1[nÐt chÊm], 2[nÐt chÊm g¹ch], 3[nÐt g¹ch], 4[mÉu tù t¹o]) bÒ dμy thickness(1[b×nh th−êng[, 3 [dμy gÊp ba] vμ mÉu tù t¹o patern (nÕu qui ®Þnh linestyle lμ 4). §Ó nhËn gi¸ trÞ hiÖn hμnh cua 3 yÕu tè trªn ta dïng hμm void getlinesettingstyle(struct linesettingtype, * linenifo); , C¸ch ®Þnh nghÜa mÉu tù t¹o vμ cÊu tróc cña linesettingtype ®−îc tr×nh bμy trong help online víi index lμ setlinestyle vμ linesettingstyle. • Thay ®æi gi¶i mμu mÆc ®Þnh: void setpalette(int colornum, incolor); • X¸c nhËn gi¶i mμu hiÖn hμnh: void palette(struct palettetype *palette); CÊu tróc cña palettetype ®−îc tr×nh bμy trong help online víi index lμ palettetype. • C¸c hμm getcolor(), getbkcolor() vμ getmaxcolor() tr¶ vÒ mμu ®· x¸c ®Þnh víi setcolor, setbkcolor, vμ sè l−îng mμu cùc ®¹i thô«c d·y mμu hiÖn hμnh. • VÏ cung trßn: void arc(int x, int y, int gocdau, int goccuoi, int bankinh); Gãc: ®é. • VÏ ®−êng trßn: void circle(int x, int y,int bankinh); • VÏ cung ellipse: void ellipse(intx, int y, int gocdau, int goccuoi, int xr, int yr); Víi xr lμ b¸n trôc ngang vμ yr lμ b¸n trôc ®øng. • VÏ vμ t« h×nh qu¹t: void pieslice(int x, int y, int gocdau, int goccuoi, int bankinh); • VÏ ®−êng gÊp khóc vμ ®a gi¸c: drawpoly(n,a); Víi n lμ sè ®iÓm, a lμ m¶ng kiÓu int chøa to¹ ®é cña c¸c ®iÓm( a[0]=x1, a[1]=y1, a[2]=x2, a[3]=y2,...). NÕu nÕu ®iÓm cuèi xn, yn trïng víi ®iÓm ®Çu x1, y1 ta sÏ ®−îc mét ®a gi¸c. • T« mμu ®a gi¸c: fillpoly(n,a); hμm nμy sÏ t« mμu 1 ®a gi¸c cã c¸c n ®Ønh. • VÏ ®−êng th¼ng: void line(int x1, int y1, int x2, int y2); VÏ ®−êng th¼ng nèi hai ®iÓm (x1,y1) vμ (x2,y2) nh−ng kh«ng lμm thay ®æi vÞ trÝ con trá. Hμm void lineto(int x, int y); VÏ ®−êng th¼ng tõ ®iÓm hiÖn t¹i tíi (x,y) vμ chuyÓn con trá ®Õn ®iÓm (x,y). Hμm void linerel(int dx, int dy); sÏ vÏ mét ®−êng th¼ng tõ vÞ trÝ hiÖn HTD (TH0003) C Programming (Se) Page: 16
  8. Bách khoa Online: hutonline.net hμnh (x,y) cña con trá ®Õn ®iÓm (x+dx, y+dy), con trá ®−îc di chuyÓn ®Õn vÞ trÝ míi. • Di chuyÓn con trá tíi to¹ ®é (x,y): void moveto(intx, inty); • VÏ h×nh ch÷ nhËt. Hμm void rectangle(int x1, int y1, int x2, int y20; sÏ vÏ mét ®−êng ch÷ nhËt cã c¸c // c¸c c¹nh cña mμn h×nh, (x1,y1) lμ to¹ ®é ®Ønh trªn, (x2,y2) lμ to¹ ®é ®Ønh d−íi. Hμm void bar(intx1, int y1, int x2, int y2); sÏ vÏ vμ t« mμu mét h×nh CN. Hμm void bar3d(int x1, int y1, int x2, int y2, int depth, int top); vÏ vμ t« mét khèi hép ch÷ nhËt, depth qui ®Þnh sè ®iÓm ¶nh trªn chiÒu s©u cña khèi 3D, top cã thÓ nhËn c¸c gi¸ trÞ lμ 1(cã n¾p), 0(kh«ng n¾p). • ThiÕt lËp cöa sæ viewport: void setviewport(int x1, int y1, int x2, int y2, int clip); Víi 2 ®iÓm lμ 2 gãc trªn tr¸i vμ d−íi ph¶i cña cöa sæ, clip=1 kh«ng cho phÐp vÏ ra ngoμi viewport vμ clip=0 th× cho phÐp. §Ó nhËn viewport hiÖn hμnh ta dïng hμm void getviewsettings(struct viewporttype *vp). (Help online víi index lμ viewporttype). • Xo¸ viewport: void clearviewport(void); • Xo¸ mμn h×nh vμ ®−a con trá vÒ (0,0): void cleardevice(void); • T« vμ lÊy mμu t« §iÓm. T«: void putpixel(int x, inty, int color); Hμm getpixel(int x, int y); sÏ tr· vÒ gi¸ trÞ mμu t¹i ®iÓm (x,y), nÕu ®iÓm ch−a ®−îc t« hμm sÏ tr¶ vÒ 0. • T« miÒn: void floodfill(int x, int y, int border); border chøa gi¸ trÞ cña mét mμu. • HiÓn thÞ v¨n b¶n. Hμm void outtext (char *s); sÏ hiÖn thÞ chuæi do s trá tíi t¹i vÞ trÝ hiÖn t¹i cña con trá. Hμm outtextxy(int x, inty, char *s); sÏ hiÓn thÞ VB ë to¹ ®é (x,y). • Chän Font (.CHR): void settextstyle(int font, int direction, int charsize); Víi direction =0(ngang), =1(däc). Charsize cã gi¸ trÞ tõ 1(8*8pixel)->10(80*80pixel). font nhËn c¸c gi¸ trÞ 0(default), 1(triplex), 2(small), 3(sanserif), 4(gothic). • VÞ trÝ hiÓn thÞ Text: void settextjustify(int horiz, int vert); Víi horiz = 0(VB ë bªn ph¶i con trá), 1(t©m VB theo vÞ trÝ con trá), 2(bªn tr¸i con trá). Vert = 0(VB ë bªn ph¶i con trá), 1(t©m VB theo vtr cña con trá), 2(phÝa d−íi con trá). • LÊy chiÒu cao vμ réng cña Text: int textheight(char*s); int textwidth(char *s); HTD (TH0003) C Programming (Se) Page: 17
  9. Bách khoa Online: hutonline.net • Hμm imagesize(int x1, int y1, int x2, int y2);tr¶ vÒ sè byte dïng l−u ¶nh trong 1 ph¹m vi. • Hμm void getimage( int x1, int y1, int x2, int y2, void *bitmap); dïng l−u c¸c ®iÓm ¶nh trong ph¹m vi HCN vμo vïng nhí do bitmap trá tíi. Vïng nhí vμ biÕn bitmap cho bëi hμm void *malloc(unsigned n); • Hμm putimage(int x, int y, void *bitmap, int copymode); dïng sao chÐp ¶nh trong vïng nhí bitmap ra mμn h×nh t¹i vÞ trÝ (x,y). Tham sè copymode =0(chÐp nguyªn xi), =1(c¸c ®iÓm ¶nh trong bitmap kÕt hîp víi c¸c ®iÓm trªn mμn h×nh = phÐp XOR), =2( ...”.... =phÐp or), =3(......”......”and), =4(....’’.....NOT). 11. kü thuËt söa lçi vμ rë rèi ch−¬ng tr×nh: + Ng−êi ta nghiªn cøu vμ cho r»ng kho¶ng 80% thêi gian cña c¸c lËp tr×nh viªn lμ dïng ®Ó kiÓm tra vμ söa ch÷a nh÷ng ch−¬ng tr×nh ®· cã. Th«ng th−êng cã 3 lo¹i lçi sau: lçi có ph¸p (syntax), lçi run-time (chia cho zero, g¸n sai kiÓu, sö dông biÕn kh«ng khai b¸o, ...), vμ lçi logic. Lçi logic lμ lçi khã söa nhÊt, v× ®©y lμ lçi sai trong thuËt gi¶i ch−¬ng tr×nh. + Ph−¬ng ph¸p duy nhÊt ®Ó s÷a c¸c lçi có ph¸p lμ b¹n ph¶i biÕt ch−¬ng tr×nh cña m×nh m¾c ph¶i lçi g×, ®iÒu nμy ®−îc Borland C++ th«ng b¸o trong cöa sæ Message, vμ tõ ®©y b¹n cã thÓ tra cøu c¸c ph−¬ng ph¸p s÷a ch÷a trong c¸c s¸ch tra cøu, ®Æt biÖt lμ trong help online cña Borland C++. + Khi gÆp c¸c lçi Logic lμm cho ch−¬ng tr×nh ch¹y kh«ng ®óng hay cho kÕt qu¶ sai ta cã thÓ sö dông c¸c chøc n¨ng Debug cña Borland C ®Ó tiÕn hμnh rë rèi: -Ch¹y tõng b−íc: dïng phÝm F7, víi mçi lÇn nhÊn F7 lμ dßng ®−îc lμm s¸ng sÏ ®−îc thùc hiÖn. Nhê ch¹y tõng b−íc nh− vËy ta sÏ dÔ dμng xö lý ®−îc c¸c lçi Logic trong ch−¬ng tr×nh. Cã thÓ thay phÝm F7 b»ng F8. Sù kh¸c nhau duy nhÊt gi÷a hai phÝm nμy lμ lμ F7 sÏ thùc hiÖn tõng dßng bªn trong hμm ®−îc gäi, cßn F8 th× sÏ thùc hiÖn hμm nμy vμ b−íc qua nã. -KÕt hîp víi ch¹y tõng dßng lμ ta sö dông cöa sæ EVALUATION (nhÊn Ctrl+F4), víi cöa sæ nμy ta HTD (TH0003) C Programming (Se) Page: 18
  10. Bách khoa Online: hutonline.net cã thÓ quan s¸t gi¸ trÞ cña c¸c biÕn, m¶ng,... qua mçi dßng thùc ch−¬ng tr×nh (gâ vμo tªn biÕn, m¶ng,.. cÇn xem trong khung Evaluate vμ xem gi¸ trÞ trong khung result), hay lμm thay ®æi gi¸ trÞ c¸c biÕn, tÝnh to¸n c¸c biÓu thøc, c¸c hμm... -Dïng cöa sæ Watch (Window\Watch) ®Ó theo dâi sù thay ®æi gi¸ trÞ cña c¸c biÕn, m¶ng. §Ó xem c¸c biÕn trong cöa sæ Watch, ta chän Debug\Watch\Add Watch vμ gâ tªn biÕn cÇn xem vμo, nhÊn F7 hay F8 ®Ó ch¹y tõng b−íc ch−¬ng tr×nh vμ xem gÝa trÞ cña biÕn. Cã thÓ nhËp vμo nhiÒu biÕn, mçi lÇn chØ ®−îc nhËp mét biÕn. §Ó xo¸ mét biÕn ta chØ di chuyÓn ®Õn biÕn muèn xo¸ trong cöa sæ Watch vμ nhÊn Delete. NÕu kh«ng thÊy cöa sæ Watch khi ch¹y tõng b−íc ch−¬ng tr×nh, ta nhÊn F5. -Dïng cöa sæ User Screen ®Ó quan s¸t kÕt qu¶ thùc hiÖn cña ch−¬ng tr×nh: Window\ User Screen hay Alt+F5. Ngoμi ra cßn nhiÒu kü thuËt kh¸c nh− sö dông ®iÓm g·y, inspect, call stack,... ®Ó gë rèi c¸c hμm, ch−¬ng tr×nh. C¸c b¹n cã thÓ xem chi tiÕt trong c¸c s¸ch tham kh¶o vÒ LËp tr×nh C. L−u ý: HTD - TH0003 (5.2001). Se (9.2001). HTD (TH0003) C Programming (Se) Page: 19
Đồng bộ tài khoản