1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình ngôn ngữ lập trình c (tái bản lần thứ ba) phần 2

78 5 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

Chuong HAM VA TO CHUC CHUONG TRINH VE MAT CAU TRUC MỤC TIÊU CUA CHUONG NAY > > % > Biết Nắm Biết dựng cách phân chia chương trình thành mô dun vững cách truyền thông tin hàm cách kết hợp nhuân nhuyễn kiểu cấu trúc liệu để xây ứng dụng thực tế: 4.1 PHƯƠNG PHÁP TỔ CHỨC CHƯƠNG TRÌNH THEO MƠ ĐUN Ngun lí chủ đạo kĩ thuật lập trình có cấu trúc sử dụng khái niệm trừu tượng hóa chức để phân rã tốn thành nhiều toán nhỏ hơn, toán lại trở thành đơn vị chương trình tương đối độc lập (có cấu trúc riêng, có biến riêng ) Trong trình làm việc ta quan tâm liệu hàm làm cơng việc cụ thể (yêu cầu đầu vào kết đầu ra) mà khơng cần quan tâm hàm phải làm để đạt kết Việc thiết kế chương trình cho phép chương trình tổ chức cách sáng sủa hơn, dễ bảo dưỡng dễ mang Có nhiều cách khác để phân mảnh chương trình thành mơ đun nhỏ hơn, cách thường sử dụng viết chương trình ứng dụng phương pháp thiết kế Trên xuống (Top-Down) Tư tưởng phương pháp sau: Tiến hành phân tích tốn cách dần từ mô tả đại thể đến mô tả tiết thông qua nhiều mức Sự chuyển dịch từ mức tới mức thực chất phân rã chức mức thành số chức mức mà kết ta thu phân cấp toán ban đầu Vi du 4-1: Hay viết chương trình quản lí bảo trì hồ sơ học bổng sinh viên diện tài trợ, đồng thời phải thường kì lập báo cáo lên cấp có thẩm quyền "Trước hết ta phải xác định toán sau: - Đầu vào: Tập hồ sơ sinh viên bao gồm ghỉ thông tin liên quan đến học bổng sinh viên - Đầu ra: Phải giải yêu cầu sau đây; a) Tìm lại hiển thị ghỉ sinh viên có yêu câu b) Có thể cập nhật ghỉ sinh viên cho trước c) In bdo cáo 123 Để làm điều chương trình cần có ba nhiệm vụ sau: a) Đọc tệp để láy thơng tin b) Xử lí tép c) Ghi tép Các nhiệm vụ lại chia làm nhiệm vụ nhỏ hơn, ví dụ nhiệm vụ Xử lí tệp lại bao gồm ba nhiệm vụ nhỏ cần giải sau: b.] Tìm lại ghỉ sinh viên cho trước b.1.1 Tìm kiếm b.1.2 Hiển thị ghi b.2 Cập nhật thông tin ghỉ sinh viên b.2.] Tìm kiếm b.2.2 Sửa đổi b.3 In tổng kết thông tin sinh viên học bổng Cứ ta cấu trúc phân cấp dạng hình cho tốn ban đầu với nút (út khơng có nút nào) hàm Sự kết hợp hàm chương trình lời giải cho toán cho Trong phần sau ta nghiên cứu nguyên tắc xây dựng sử dụng hàm cách trao đổi thông tin (truyền tham số) hàm chương trình C 4.2, CẤU TRÚC TONG QUAT CUA MỘT CHƯƠNG TRÌNH C Một chương trình viết theo ngơn ngữ lập trình C dãy hàm (mdi hàm thực phần việc đó) để giải cơng việc trọn vẹn, phải có hàm gọi hàm main Thứ tự ham chương trình tùy ý (uy nhiên Chúng phải khai báo trước sử đụng), chương trình thực bắt đâu từ hàm main Có nghĩa chương trình thực câu lệnh sau dấu ‘f? cla than ham main cho dén gặp dau ‘}? danh dau su két thtic cha ham main Céc ham khác thực qua /ởi gọi hàm nằm: bên than cla ham main ma thoi Cấu trúc tổng quát chương trình C có dạng sau: + Các thị tiền xử lí: #include #define + Các định nghĩa, khai báo kiểu liệu biến + Khai báo nguyên mẫu hàm + Hàm main + Định nghĩa hàm Chú ý: - Các thị tiền xử lí nằm đâu chương trình có hiệu lực từ xuất - Các định nghĩa khai báo kiểu liệu biến ngồi nằm xen kẽ hàm sử dụng hàm định nghĩa trước định nghĩa biến hay kiểu liệu - VỊ trí hàm main ciing nằm xen kẽ hàm khác - Các hàm khai báo lồng nhau, nghĩa khai báo ham nam mot ham khác „ - Mot ham không thiết phải khai báo ngun mẫu nên có cho phép chương trình biên dịch phát lỗi gol ham (do đối số không đúng) tự động chuyển đổi kiểu cho phù hợp với lời gọi hàm 4.3 QUY TÁC XÂY DỰNG VÀ SỬ DỤNG MỘT HAM 4.3.1 Quy tắc xây dựng hàm - Mỗi hàm phải có tên theo quy tắc đặt tên trình bày chương I Trong chương trình khơng phép có hai hàm trùng tên - Mỗi hàm thường có giá trị Đầu vào giá trị Đầu Các giá trị đầu vào truyền thông qua đan] sách tham số hàm thông qua biến tồn cục, cịn giá trị dau gửi trả nơi gọi thơng qua câu lệnh return (Biểu thức) hàm kết thúc, qua địa biến qua biến toàn cục Khi hàm khơng có đối số (hoặc khơng có giá trị trả về) khai báo đối số (hoặc giá trị trả về) dạng không kiểu vøid Trong trường hợp hàm có tác dụng giống thủ tục (procedure) Pascal - Cac ham có vai trị ngang chương trình - Mỗi hàm ngơn ngữ lập trình C, nguyên tác bao gồm hai phần, phần gọi Nguyên mdu cha ham (Prototype) khai báo trước hàm sử dung va phan lại gọi Phần định nghĩa hàm Phần nguyên mẫu hàm mô tả đầy đủ thơng tin cần thiết liên quan đến hàm, tên hàm, đầu vào (danh sách tham số) đầu (giá trị trả về) hàm theo mẫu sau: KiéuGidTriTrdVé TênHàm(DanhSáchThamSð); Trong đó, danh sách tham số phân tách dấu phẩy *,’ liệt kê kiểu tương ứng với tham số mà thơi (khơng cẩn tén biển) Ví đụ 4-2 Hàm dùng để tìm số lớn ba số có danh sách tham số tương ứng (giá 0rị đâu vào) ba biến thực giá tri tra vé (ddu ra) số lớn ba số cho mô tả nguyên mẫu sau: float t—y— TimMax (float, float, float); `—y— ——_— ye Giá trị trả vẻ Tên hàm _ Danh sách tham số 125 Phan dinh nghia cia ham lai bao g6m hai bd phan dé 1a Dong tiéu dé va Thân hàm Dòng tiêu đề thực chất nguyên mẫu hàm viết lại phải có tên tham số tương ứng với kiểu liệu (phân tách dấu phẩy) Các tham số gọi tham số hình thức Phần thân hàm thực chất Khối lệnh nhằm thực nhiệm vụ hàm với nguyên liệu ban đầu giá trị tham số kết thúc lệnh return(BiéuT hitc); để trả kết tìm cho nơi gọi Câu lệnh vắng mặt hàm khơng có giá trị trả vé (trd kiểu void) Trong thân hàm có nhiều cau lénh return chỗ khác nhau, gặp câu lệnh máy tính giá trị BiểuThức (nếu có) đặt sau nó, xóa biến cục bộ, xóa tham số, gấn giá trị biểu thức tính cho hàm khôi hàm, trả quyền điều khiển cho hàm gọi để thực lệnh sau lời gọi hàm Sau định nghĩa, để sử dụng hàm ta phải thực lời gọi ham theo mau sau thân hàm zin hàm khác gọi ham main: TênHàm (Danh sách tham số thực); Với điều kiện số tham số thực phải số tham số hình thức kiểu tham số thực phải phù hợp với kiểu tham số hình thức tương ứng Ví dụ 4-3 Ta viết cụ thể ví dụ 4-2 sau: JE t4xxx xkxxk xe#Xw tk * #include “stdio.h” #include “conio.h” _ float TimMax(float,float,float); /* Nguyên mẫu ham */ (+ ## RE KEYKKKKKKOEEEEKKKEKXEKEXỂEKEKKX XE *YX KĐT KKKKKICK int main() , Í, - float x, y, z; /*Cac tham số thực hàm*/ clrscr(); printf(“nHay nhap ba so can tim Max X,y,Z=”); scanf(“%f%f%f”, &x, &y, &Z); printf(“\nGia tri lon nhat ba so x= %10.2f , y= %10.2f, z= %10.2f\ la Max= %10.2f", x, y, z, TimMax(x, y, z) 9); getch0; return 0; } /* Kết thúc hàm main */ yee * ferences = —- Jenene xxxkkkkxkxkk / /* Định nghĩa hàm TimMax */ float TimMax(float i, float j, float k) (25) /*Dong tiéu dé*/ { /* Bat dau phần thân hàm TimMax */ float Max; /* Biến cục hàm */ Max= ¡ >j?¡:j; }/ /* Tìm số lớn hai số i va j */ return (Max > k ? Max : k); /*So sanh với số lại*/ Kết thúc hàm TimMax*/ ?‡ Lời gọi hàm TimMax bên hàm main ? Các tham số hình thức tên khác tên với tham số thực lời gọi hàm Chúng ta hiểu rõ mục 4.3.2 126 4.3.2 Hoạt động ham Trong hàm main, gặp lời gọi hàm (nh câu lệnh printf() cua vi dụ trên), máy chuyển đến thực hàm gọi với giá trị ban đầu (đầu vào hàm) giá trị truyền cho tham số theo trình tự sau đây: ~ Máy cấp phát nhớ cho tham số hình thức biến cục - Gán giá trị rham số thực lời gọi hàm cho tham số hình thức tương ứng vừa cấp phát nhớ (làm việc Copy tham số thực) ~ Thực câu lệnh thân hàm (chỉ thao tác thực biến cục biến tồn cục, cịn thân tham số thực khơng hệ bị ảnh hưởng øì) Ta hiểu rõ điều qua ví dụ sau: Ví dụ 4-4 Viết hàm thực việc hoán đổi giá trị hai biến [RRR RECO ECDSA RD EE OAR ED RRS RII #include “stdio.h” #include “conio.h” void [IORI HY _ HoanVi(float, float); /* Nguyén mau cia ham */ SSSI IODC IIIT IOI CT ITAA OIE TIIETITA TA TIT ITO IT TT TIT I IIIT IT I I IIR III IA */ int main() float x, y; /*Cac tham số thực hàm*/ clrscr(); printf(AnHay nhap hai so can hoan vi x, y= "); scanf(“%f%f", &x, &y); printf(‘\nCac gia tri truoc hoan vi la x= %10.2f va y=10.2f", x, y); HoanVi(x, y); /*Goi hàm hoán vị với tham số thực x y */ printf(‘\nCac gia tri sau hoan vi la x= %10.2f va y=10.2f" , x, y); getch(); return 0; ⁄“ Kết thúc hàm main */ [ROCHE EA IS RII II OID SII ISIS I IIIT III III IO TI II TI I ASIII IA A / /* Định nghĩa hàm HoanVi */ void HoanVi(float i, float j) /*Dịng tiêu đề với tham số hình thức */ { Bắt đầu phần thân hàm HoanVi */ float Tam; /*Biến cục hàm”/ Tam i=j; =i; j= Tam; return; }/ Kết thúc hàm HoanVi */ JS *99911111114114444442 .kkkk KHE XÍ Khi thực chương trình với giá trị x =0, y =35 kết sau goi ham HoanVi van 1a x =/0, y =35 Diéu dường hàm HoanVi khơng thực Trong thực tế hàm HoanVi da lam viéc, nhién viéc tráo đổi diễn Copy tham số thực mà thôi, thân biến không bị ảnh hưởng lời gọi hàm Ra khỏi hàm, giá trị hoán đổi Copy theo ta có cảm giác chương trình khơng làm Việc truyền tham số cho hàm theo kiểu người ta gọi /ruyền theo tham trị 127 Để xử lí tình này, thay làm việc Copy tham số thực ta yêu cầu hàm làm việc trực tiếp biến cách gửi địa tham số thực cho danh sách tham số hình thức tương ứng Cách truyền tham số cho hàm theo cách gọi /ruyền theo địa Trong ngơn ngữ lập trình C, để truyền tham số theo địa ¿ham số hình thức định nghĩa ham phải trỏ, danh sách /hzm số thực lời gọi hàm phải danh sách địa biến Ta viết lại ví dụ sau: Ví dụ 4-5 Viết hàm thực việc hoán đổi giá trị hai biến (bản hàm thực truyền tham số theo địa chi) Ƒ **9tttSeekrrxxxkke — xx* xe x/ #include “stdio.h” #include “conio.h" void lạ HoanVi(float *, float INNguyên, mẫu hàm an ky seek */ FOIE: xe x/ int main() { float x, y; /*Cac tham số thực ham*/ elrscr(); printf(nHay nhap hải scanf(“%f%f", &x, &y); printf(nCac gia tri truoc HoanVi(&x, &y); /*Goi printf(\nCac gia tri sau getch(); so can hoan vi x, y= ”); hoan vi la x= %10.2f va y=10.2f" , x, y); ham hoán vị với tham số thực địa */ hoan vi la x= %10.2f va y=10.2f", x, y); return 0; M* Kết thúc hàm main */ eee * ky sake xxx* *[ /* Dinh nghĩa ham HoanVi */ void HoanVi(float* i, float* j) /*Dong tiéu dé*/ {/*Bat dau phan than ham HoanVi */ float Tam; /*Biến cục ham*/ Tam= t=: *j = Tam; return; }/ Kết thúc hàm HoanVi */ BORO S RRR III IA III CITI I IIIT III IT II III IIIA TIT IIIT I TIER IIIT TITS III AI AIA */ - Khi gặp câu lệnh return hoac dau ‘}’ cudi thân hàm may xóa tham số, biến cục (do giá trị biến đi) thoát khỏi hàm Nếu sau refurn có Biểu thức giá trị biểu thức tính, chuyển kiểu cho phù hợp với giá trị trả gán cho hàm Giá trị sử dụng hàm khác giá trị đầu vào chúng (day la cách truyền thông tin ham với nhau) gid tri (biến thường biến cấu trúc) địa (của biến thường biến cấu trúc) - Như để hàm trao đổi thơng tin với nhau, ta ehỶ thực theo ba cách sau: + Sử dụng giá trị trả hàm (xem ví dụ 4-9, 4-10) 128 + Sử dụng cách truyền tham số theo địa (xem ví dụ 4-5) Tuy nhiên việc truyền tham số theo địa nhiều dẫn đến kết logic khác với suy luận thông thường Sự khác gọi hiệu ứng lề Sau ví dụ điển hình hiệu ứng lẻ sử dụng truyền tham số theo địa chỉ: Ví dụ 4-6 Hiệu ứng lẻ sử dụng truyền tham số theo địa he xkftrrrkkkrxEiExkxAERASEEEIAEEESESSEEKESXE x/ #include “stdio.h #include “conio.h : ay ye Đ 4¬ int Tang(int *); /* Nguyên mẫu hàm */ XE KTEXXRRRRYEYYXXEXXEEREE-TEO.1415111111/1111111144112222PkXK 1/ int main() int x = 10; printf(“Tong la %d", Tang(x) + Tang(x)); getch() ; return ; [RRR REREAD E IISA IA IOI TOTTI TAT AIT IITA II IIT TIT AT IIIT ATI ITI IIIA AISI AY int Tang (int * a) { ++a; return (a); + # XtYXtXkk ri VV KV KT KKY KT KKKXKXKKKKKKX KKKK KKK KP KKKK* K Y K KK XE K XI K Ki KKẾC Khi thực chương trình ta nhận được: Tong la 23 Rõ ràng suy luận thơng thường kết phải 22 (vì x=10 Tang(x) cho giá trị I1) Tuy nhiên, xảy hiệu ứng lễ truyền tham số cho hàm theo địa Ta giải thích sau: lần gọi thứ hàm Tang(x) thực làm giá trị x tăng lên I (ức 77), lần gọi thứ hai giá trị x thực su sé 1a /2 tổng 23 + Sử dụng biến tồn cục: Vì hàm truy nhập thay đổi giá trị biến toàn cục, kết hàm truyền sang hàm khác Đặc điểm: Không cần truyền tham số cho hàm thông qua tham số hình thức (vì hàm xử lí trực tiếp biến tồn cục) đơn giản Tuy nhiên viết chương trình ta nên hạn chế sử dụng biến tồn cục khơng cần thiết (vì để gây hiệu ứng lề khơng mong muốn, cấu trúc chương trình khơng sáng sủa tính riêng tư hàm) Ví dụ 4-7 Trao đổi thơng tin hàm thơng qua biến tồn cục Chương trình thực tính tổng bình phương hai số [ses saan naa OOO IIT IIIS TIT IIIT IIIT TTI TREE #include “stdio.h" #include “conio.h" /* Cac biến toàn cục dùng làm tham số cho hàm”/ # X#Y*Y*YYttKVKkKtkkKkKkkKEEttOOOtOYXYYEEEEEkEEEkEEEEETOOOOOOXXXOOTCTCCEEKTEETCCEEE 09-GTNNLTC Hy - void_BinhPhuong(void); /* Nguyên mẫu hàm */ void Tong(void); int a, b, c, Dem=0; ERT X 129 int main() { TongQ); /* Kết tổng lưu vào biến c */ printf("\n Tong binh phuong cua hai so %d va %d la %d”, a, b, c): return ; JF YV KEEYEKkEFKEXEEkEkKKEKKKK KT ĐC CC Kế ki TTR A III IIA SI STII IOI SI IIIS AIA S IISA Ký void BinhPhuong() { printf(‘\nHay nhap gia tri cho so thu %d = " , +t+Dem); scanf("%d", &a); b=a*a; /* Hàm lưu giá trị bình phương tính vào biển b */ return; ROPES SII III III III III III I III IRI TIT IIT STI IIASA STATIS SII SAS AAAI SAAS AOA A IIIA H | void Tong(void) int Tam ; BinhPhuong() ; /* Tinh binh phuong số thứ */ Tam=b ; /* Lấy kết ra, không giá trị gọi lần ghi đè lên */ BinhPhuong() ; /* Kết lần tính hai lưu biến b */ c=Tam+b ; /* Đưa kết tổng vào biến c */ đ£ YYKEYXYKEKKKKKKKEKXXKXXKKXXKKKKKKXKKK* Soe *#x** x®# x/ 4.3.3 Các cách truyền tham số cho hàm Trong phần trước ta làm quen với cách xây dựng hoạt động hàm cách truyền tham số cho hàm theo tham trị theo địa Tuy nhiên tham số thực xét biến đơn giản có sẵn ngơn ngữ ¿”, float Trong phan ta sé tiép tục nghiên cứu cách truyền tham số phức tạp cho hàm mảng, ma trận, cấu trúc Tham số thực tên mưng chiều Khi tham số thực tên mảng @r chiều) tham số hình thức tương ứng cần phải cøz frồ có kiểu phù hợp với kiểu phần tử mảng Ví dụ 4-8 Nếu tham số thực mảng kiểu số thực float MangThuc[50] tham số hình thức ÄfangFƑ tương ứng hàm sẽ«lược khai báo theo cách sau đây: float *MangF; Hoặc khai báo mảng hình thức: float MangF[]; Hai cách khai báo tương đương Khi hàm bắt đầu làm việc gid tri hang dia chi MangThue cha tham số thực truyền cho tham số hình thức trỏ MangF, noi cach khac tro MangF sé chita dia chi cia phần tử mảng tham số thực Do thân hàm ta dùng cách sau để truy nhập phần tử mảng MangThuc[i]: *(MangF+i) MangF[i] Vi du 4-9: Viết chương trình thực việc nhập cộng hai đa thức Pạ(x) va Q,,(x) Kết lưu mảng C„„„(X) Đưa kết hình 130 Để giải toán ta chọn cấu trúc đữ liệu kiểu mảng, phần tử thit i (0= 62 ? 63 P 80 Q R 81 S D 56 64 J K M N 73 74 75 16 T1 78 79 decimal U M W 82 83 84 85 86 87 x Y 88 §9 90 [ 91 \ 92 93 A 94 _ 95 96 a 97 b 98 © 99 d e f g h j 100 101 102 103 104 105 k m n ö 106 107 108 109 110 II P 112 q 113 r 114 Ss 115 t 116 u 117 Wx 118 Ww x 119 120 y Zz { | } ~ 121 122 123 124 125 126 127 Chú ý: Ta đọc bảng mã theo cách sau: - Chữ số nhỏ góc phải thể mã kí tự hệ số 10 (hệ thập phân) - Muốn biết mã kí tự hệ Hexa ta ghép thứ tự cột thứ tự hàng kí tự Ví dụ : Với kí tự *A' có mã hệ thập phân 65 mã tương ứng hệ Hexa 0x41 195 TAI LIEU THAM KHAO Pham Van At: Ki thuat lap Nguyễn Văn Ba: Phân tích cấu trúc Nhà xuất Đại Lê Văn Doanh, Trân Khắc khoa học kĩ thuật, 1995 trinh C, Co sé va nang cao NXB KH&KT 1996 thiết kế hệ thống thong tin Các phương pháp có học Quốc gia Hà Nội, 2003 Tuấn: 101 thuật toán chương trình Nhà xuất Huỳnh Tấn Dũng, Hồng Đức Hải: Bài tập ngôn ngữ C (từ A đến Z) NXB Lao động — Xã hội, 2003 Nguyễn Xuân Mỹ, Bùi Thế Tâm: Bài tập lập trình Pascal Nhà xuất thống ké,1997 Scott Robert Ladd: C++ ki thuat ứng dụng Công ty cổ phần tư vấn dịch vu KHKT - SCITEC, 1992 Đỗ Xuân Lôi: Cấu trúc liệu va giải thuat NXB KH&KT, 1995 Peter Norton: Advanced C Programming Brady Publishing, 1992 Đỗ Phúc người khác (biên dịch): Kĩ thuật lập trình Turbo C Cơng ty máy tính Việt Nam, trung tâm đào tạo tin học CMT, 10 Tống Đình Quỳ: Thống Kê, 2000 Ngơn 1992, ngữ lập trình C'* dành cho sinh viên (2 tập) NXB 11 Nguyễn Thanh Thuỷ người khác: Ngơn ngữ lập trình C thật đơn giản, NXB Giáo dục, 1996 Ids Nguyễn Tô Thành, Dương Viết Thắng, Nguyễn Thanh Tùng: Bài tập Pascal Trường đại họo Bách khoa Hà Nội Tài liệu lưu hành nội bộ, 1995, 196 ‘ MUC LUC Lời giới thiệu Mỏ đầu Chuong TONG QUAN VE NGON NGỮ LẬP TRÌNH C 1.1 Lịch sử phát triển đặc điểm ngôn ngữ lập trình C 1.2 Các khái niệm ¿-cccscccvcsccsscree 1.2.1 Tập kí tự dùng ngơn ngữ lập trình C 1.2.2 Từ khố 5c 5c tt -.¿-c x1 ¿yey 1.2.3 Cách đặt tên ngơn ngữ lập trình C 1.2.4 Kiểu đữ liệu -. -c¿ccccccsccsec 1.2.5 Khối lệnh - 1.2.6 Biến đặc trưng biến 1.2.7 Hằng 1.2.8 1.2.9 1.3 Cấu 1.4 Môi 1.4.1 1.4.2 — Câu lệnh sai Vào /Ta cv cv trúc chương trình C đơn giản trường lập trình Turbo C Mơi trường kết hợp Cac tép tin thường sử dụng ngôn ngữ lập trình C 1.4.3 Cách viết chạy chương trình mơi trường kết hợp 1.4.4 Sửa lỗi cú pháp gỡ rối chương trình 1.5 Một số ví dụ minh hoạ vào 1.6 Câu hỏi tập Chương BIEU THỨC 2.1 Khái niệm 2.2 Các tốn tử ngơn ngữ lập trình C 2.2.1 Các phép tốn (các phép xử lí) 2.2.2 Các toán tử điều khiển 2.3 Câu hỏi tập Chương TỔ CHỨC CHƯƠNG TRÌNH VỀ MẶT DỮ LIỆU 3.1 Cấu trúc liệu, giải thuật vấn đề liên quan 3.1.1 3.1.2 3.2 Các 3.2.1 Thuật toán giải thuật Cấu trúc liệu vấn cấu trúc liệu Con trỏ 197 3.2.2 Mang 3.2.3 Cau tric (Struct) va hop (Union) 3.2.4 Danh sách (LIst) 3.2.5 Ngăn xếp (Srack) 3.2.6 Hang doi (Queue) 3.3 Câu hỏi tập «LIS Chương HÀM VÀ TỔ CHỨC CHƯƠNG TRÌNH VỀ MẶT CẤU TRÚC 4.1 Phương pháp tổ chức chương trình theo Mô đun 4.2 Cấu trúc tổng quát chương trình C „123 l24 Quy tắc xây dựng hàm Hoạt động hàm Các cách truyền tham số cho hàm trỏ tới hàm (con trỏ hàm) „125, a 130 e135 4.3 Quy tắc xây dựng sử dụng hàm 4.3.1 4.3.2 4.3.3 4.4 Con 4.4.1 Khái niệm cách sử dụng 4.4.2 Đối trỏ hàm 4.5 Đệ quy viết chương trình kiểu đệ quy 4.5.1 Khái niệm đệ quy 4.5.2 Thiết kế giải thuật đệ quy, viết hàm kiểu dé quy 4.6 Câu hỏi tập 125 135 135, + 139 ays LOS 140 „141 Chương TỆP VÀ CÁC THAO TÁC VÀO RA 5.1 Cac khái niệm đặc trưng lưu trữ thông tin tỆp 5.2 Các chế độ thao tác tệp tin 5.3 Các thao tác tệp tin 5.3.1 Mở đóng tệp, xóa vùng đệm kiểm tra lỗi 5:3.2, XuAt(nhập KÝ TỨcgiscsssssasassesittdiiigenaavease 5.3.3 Xuất/nhập văn „143 144 „145 145 148 151 5.3.4 Xuất/nhập nhị phân 5.3.5 Xuất/nhập ngẫu nhiên 5.4 Cau hoi va bai tap 154 157 „ 158 Chương ĐỒ HOA 6.1 Màn hình đồ hoạ đặc trưng 6.2 Khởi động chế độ đồ hoạ 6.3 Các thao tác chế độ đồ hoạ 6.3.1 Thiết lập màu màu nét vẽ 6.3.2 Thiết lập kiểu, mẫu tơ cho nét vẽ hình vẽ 6.3.3: Vẽ đường trịn hình trịn 6.3.4 Vẽ đường thẳng 6.3.5 VE hink CHEN 198 ee Ab a cncisccossesticenerorsnonooenorcocemnomnenenenneteoneansnsconesenenneant 165 ~- „7 nu "ÖỄằ.ằẶẸ ww W” = Sar 6.3.6 Vẽ đường gấp khúc đa giác 6.3.7 Các hàm xử lí điểm ảnh 6.3.8 Xử lí toạ độ để hình đồ hoạ 6.3.9 Xử lí văn hình đồ hoạ 6.4 Kĩ thuật tạo hình chuyển dong 6.5 Câu hỏi tập Chương CÁC BÀI TẬP TỔNG HỢP 7.1 Bài toán mơ 1.2 Bài tốn Thống kê 22 7.3 Bài toán vẽ đồ thị hàm s 7.4 Bài toán Đệ quy tren ne, 174 PHỤ LỤC Phụ lục I Những kĩ thuật viết chương trình lớn -52 52 SE 186 Phu luc If Các thị tiền xử lí ngơn ngữ lập trình C phương pháp tổ chức tệp thư viện chương trình .ss nhi Phụ lục II Phụ lục IV Một số hàm thông dụng ngơn ngữ lập trình C Bảng mã ASCII l 189 ¿ 191 195 Chịu trách nhiệm xuất : Chủ tịch HĐQT kiêm Tổng Giám đốc NGÔ TRẤN ÁI Phó Tổng Giám đốc kiêm Tổng biên tập NGUYÊN QUÝ THAO Biên tập tát bản: DƯƠNG TRỌNG BẰNG Trình bày bìa: TÀO THANH HUYỀN Sửa in: DƯƠNG TRỌNG BẰNG Chế bản: TIÊU KIM CƯƠNG GIÁO TRÌNH NGƠN NGỮ LẬP TRÌNH C Ma số: 6H159y8 - DAI In 1.500 (QÐ 02) khổ 16 x 24 cm In Công ty CP In Phúc Yên Địa chỉ: Đường Trân Phú, thị xã Phúc Yên So DKKH xuat ban: 04 — 2008/CXB/67 — 1999/GD In xong nộp lưu chiểu tháng I năm 2008

Ngày đăng: 15/11/2023, 13:30

Xem thêm: