TAI LIEU THAM KHẢO [1] Kenneth A.Barclay, 1999, C Problem Solving and Programming, Prentice Hall, trang 48, 55, 68, 226, 286, 316 [2] Eric Huss, The C Library Reference Guide, 1997, http://www.edu/webmonkeys/book/c_guide/ Giáo trình môn Kỹ thuật lập trình 120 log10Q Tính logarit thập phân log() Tính logarit tự nhiên S Lib Sao i So sánh chuỗi Tính độ dài của Tìm địa chỉ của N : 1 j chit hoa i chudi chit Dao i Charater T Libra Kiém tra ky tự có là 1 ký chữ th i chữ hoa Giáo trình môn Kỹ thuật lập trình 119 PHỤ LỤC B Một số hàm thường dùng trong các thư viện <stdio.h> Standard Input and Output Library rintf() Xuất dữ liệu theo định dạng ra màn hình scanf() Nhập dữ liệu theo định dạng từ bàn phím ets() Nhập chuỗi ký tự từ bàn phím uts() Xuất chuỗi ký tự ra màn hình getchar() Nhập ký tự từ bàn phím putchar() Xuất ký tự ra màn hình filushQ Xóa bộ đệm bàn phím fopen() Mở file fclose() Dong file feof() Kiểm tra kết thúc file fseek() Dịch chuyên con trỏ file ftell() Lay vi tri hién thời của con trỏ file freadQ Đọc khôi dữ liệu từ file fwrite() Ghi khối dữ liệu ra file fprintf() Xuất dữ liệu theo định dang ra file fscanf() Ghi đữ liệu theo định dạng từ file fgets() Đọc chuỗi ký tự từ file fputs() Ghi chuỗi ký tự ra file fgetc() Doc ký tự từ file fputc() Ghi ký tự ra file <conio.h> Console Input and Output Library getche() Nhập ký tự, hiển thị ký tự nhập getch() Nhập ký tự, không hiên thị ký tự nhập <stdlib.h> Standard General Utilities Library abs() Tính giá trị tuyệt đôi atoi() Đổi từ chuỗi sang sỐ nguyên itoa() Đôi từ số nguyên sang ¢chuỗi srand() Khởi tạo bộ sinh số ngẫu nghiên rand() Sinh sô ngau nhién calloc() Cấp phát nhiều vùng nhớ malloc() Câp phát vùng nhớ freeO Giải phóng vùng nhớ exit() Thoát khỏi chương trình <math.h> Mathematics Library sqrt() Tính căn bậc 2 powQO Tính lũy thừa exp() Tính lũy thừa cơ số e Giáo trình môn Kỹ thuật lập trình 118 Bang ma ASCII mé r6ng (ASCII Extended Character Set) 128 144 160 176 193 209 225 241 Fh &- cC oF H cl r ye 129 |. 145 161 177 194 210 226 242 ote, Lo ch & ÍV rrFa 130 146 162 fra O: fy 178 195 ail 227 243 œ% oo FE QAamMa LA 141 14/ 163 1/9 196 212 428 244 wt ey a 132 14g 184 197 213 229 245 BỊ Bae p De —m + Cc O ¬n 133 149 165 196 214 230 246 ĐH: he FE sy 134 150 166 199 215 231 247 PO M a 2! =< 135 151 167 200 216 232 348 ö ow —- —|- Ơi 1A 152 TAR 2m 217 1 249 D> O: | 137 153 169 202 218 234 250 op: 138 154 170 203 219 235 251 ¬ C1 mee 139 1 56 171 % 204 220 236 252 rh ™ 5 140 157 172 % 205 221 237 253 # Re 14 158 173 206 222 238 254 ber 142 159 174 « 207 223 239 255 pee ye 148 192 175 » 208 224 240 rc Giáo trình môn Kỹ thuật lập trình 117a PHỤ LỤC A Bang mã ASCII chuẩn (ASCII Standard Character Set) Char Ctrl Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex NUL *@ 0 00 {space 32 20 |@ 64 40 96 60 SOH ^A 1 01 ! 3 21 A 65 = 41 a 97 61 STX ^B 2 02 " 34 22 |B 6 42 |b 98 62 ETX *C 3 03 # 35 23 C 67 43 c 99 63 EOT ^D 4 04 $ 346 24 |D 68 44 ld 100 64 ENQ *E 5 05 % 347 25 |E 69 45 le 101 65 ACK *F 6 06 |& 38 26 |F 70 46 |f 102 66 BEL “G 7 07 =| ' 39 27 1G 71 47 lg 103 67 BS ^H 8 08 ( 40 28 !H 72 48 th 104 68 HT “ 9 09 1) 41 29 II 73 49 fi 105 69 LF ‘J 10 0A ‡* 42 2A l 74 4A l|j 106 6A VT ”** 11 05 j+ 43 2B {|K 75 4B ik 107 6B FF ^L 12 0c †, 44 2C IL 76 4C lI 108 6C CR ^M 13 oD |- 45 2D iM 77 4D |m 109 6D sO ^N 14 OE †. 46 2E |N 78 4E In 110 6E SI ‘sO 15 OF |/ 47 2F |O 79 4F lo 111 6F DLE ^P 16 10 0 48 30 |P 80 50 Ip 112 70 DCI ^Q 17 11 l 49 31 Q 81 51 q 113 71 DC2 ^R l8 12 2 50 32 IR 82 32 |r 114 272 DC3 ^S 19 13 3 51 33 S 83 53 s 115 73 DC4 ^T 20 l4 14 32 34 IT 84 354 |1 H6 74 NAK ^U 21 15 5 33 35 U 85 55 u 117 75 SYN ^V 22 16 6 354 36 V 86 36 |V 118 76 ETB ^W 23 17 7 55 37 W 87 57 Iw 119 77 CAN ^X 24 18 8 36 38 X 88 58 Ix 120 78 EM ^V 25 19 9 37 39 Y 89 59 ly 121 79 SUB *% 26 1A of: $8 3A {Z 90 SA |z 122 7A ESC “J 27 IB |; 59 §863B if 91 SB lí 123 7B FS ^\ 28 Ic |< 60 3C |\À 92 5C | 124 7C GS ^] 29 ID |= 61 34D ] 93 3D |} 125 7D R§ ^^ 30 LE 62 3E Ị^ 94 5E j~ 126 7E US * 31 IF [? 63 3F 95 5F {delete 127 7F Giáo trình môn Kỹ thuật lập trình 116a CHƯƠNG 4: KIỄU DỮ LIỆU DO NGƯỜI DÙNG ĐỊNH NGHĨA » - Dòng thứ ¡ trong N dòng tiếp theo mỗi dòng có 2 số nguyên Bi và Ci (0 < Bi < Ci) mô tả thông tin thùng thứ i, với Bi là nước còn trong thùng và Ci là sức chứa của thùng, các số cách nhau ít nhất một khoảng trắng. Kết quả: ghi ra file văn bản WATER.OUT chứa một số là số lượng ít nhất các thùng nước tìm được.OUT 01 45 02 12 Giáo trình môn Kỹ thuật lập trình 117 CHƯƠNG 4: KIÊU DỮ LIỆU DO NGƯỜI DÙNG ĐỊNH NGHĨA Viết chương trình thực hiện các chức năng sau, mỗi chức năng viết một hàm riêng a.
Nhập danh sách các sinh viên và lưu vào file. Đọc dữ liệu từ file và lưu vào mảng. Xuất danh sách các sinh viên (từ máng) theo dạng bảng. Tìm một sinh viên theo mã sinh viên.
Xuất danh sách các sinh viên có điểm <5. Đếm xem có bao nhiêu sinh viên có điểm <5. Tính điểm trung bình của các sinh viên có năm sinh 1992. Xuất các sinh viên có điểm lớn nhất.
Xóa các sinh viên có điểm = 0.3 Viết chương trình thực hiện các công việc sau: a. Nhập và ghi vào file 20 số nguyên bắt kỳ b. Đọc đấy số từ file và tách thành 2 day: day gồm các số lẻ và dãy thành số thực. Sau đó ghi trở lại 2 dãy đã tách vào cùng file đó (ghép vào cuôi file băng kiêu mở file "a") c.
Tính tổng dãy và ghi trở lại vào file 4. (Trích đề thi Olympic Tin học Sinh viên Toàn quốc 2005, khối thi: Cá nhân Cao đăng) Ở miền Trung thường năm nào cũng có những đợt hạn hán nên ông Nam có những thùng dự trữ nước. Do mua làm nhiều đợt nên N (1 <N < 1000) thùng chứa nước của ông Nam có kích thước khác nhau, mỗi thùng có sức chứa Ci (1 < Ci < 10000, 1 <i<N). Dự đoán rằng năm nay sẽ có đợt hạn hán lớn nên ông Nam muốn đồ đầy nước hết các thùng để dự trữ.
Sau khi kiểm tra ông Nam thấy rằng có một số thùng vẫn còn đầy, một số khác thì vơi đi một phần, còn một số thì đã hết. Ông quyết định các thùng nào chưa đây thi sẽ chớ đi để đỗ đầy nước. Nhưng do nơi lấy nước rất xa, và mỗi lần chỉ chở đi được 1 thùng nên ông quyết định sẽ san nước giữa các thùng với nhau đề số thùng phải chở đi là ít nhất. Yêu cầu: Cho dung lượng nước hiện có của thùng thứ ¡ là Bi (0 < Bi < C¡, 1 <¡ <N), hãy giúp ông Nam xác định số lượng thùng ít nhất phải mang đi.
Dữ liệu: vào từ file văn bản WA TER.INP có dạng sau: + Dòng thứ nhất ghi một số tự nhiên N là số lượng các thùng nước. Giáo trình môn Kỹ thuật lập trình 116 CHƯƠNG 4: KIỂU DỮ LIỆU DO NGƯỜI DÙNG ĐỊNH NGHĨA BÀI TẬP CHƯƠNG 4 4.1 Cho danh sách lưu thông tin của các mặt hàng, thông tin gồm: Mã mặt hàng (chuỗi 10 ký tự) Tên mặt hàng (chuỗi 50 ký tự) Số lượng mặt hàng (số nguyên) Đơn giá mặt hàng (số thực, đơn vị 1000 VNĐ) Viết chương trình thực hiện các chức năng sau, mỗi chức năng viết một hàm riêng a. Nhập danh sách các mặt hàng, lưu ý khi nhập cần kiểm tra trùng mã mặt hàng. Xuất danh sách các mặt hàng theo dạng bảng, và tính thành tiền của từng mặt hàng.
STT Mãhàn Ténhang Sốlượng Đơngiá Thành tiền 1 TV Tivi 100 2000 200000 2. TL Tu lanh 200 3000 600000 c. Tìm một mặt hàng theo mã mặt hang. Xuất danh sách các mặt hàng có số lượng lớn hơn hay bằng 100.
Đếm xem có bao nhiêu mặt hàng có số lượng lớn hơn hay bằng 100. Tính giá trung bình của các mặt có giá >1. Xuất các mặt hàng có giá lớn nhất. Xuất các mặt hàng có số lượng nhỏ nhất.
Cập nhật giảm giá các mặt hàng 10%. Xóa các mặt hàng có số lượng = 0.2 Cho danh sách lưu thông tin của các sinh viên, thông tin gồm: - Mã sinh viên (chuỗi 10 ký tự) -_ Tên sinh viên (chuỗi 50 ký tự) - Năm sinh (số nguyên) - Điểm (số thực) Giáo trình môn Kỹ thuật lập trình 115 CHƯƠNG 4: KIÊU DỮ LIỆU DO NGƯỜI DÙNG ĐỊNH NGHĨA 12 fscanf(f1,"%s",a); 13 fscanf (f1,"%d", &k); 14 int n=strlen(a); 15 for(int i=k-1;1i>=0;i--) 16 { 17 b[3J]=a[i]: 18 3++; 19 } 20 for(int i=n-1;i>=k;i--) 21 { 22 b[3]=a[il; 23 1++; 24 } 25 bín]='\0'; 26 fprintf (f2,"%s",b); 27 fclose(f1); 28 Eclose (£2); 29 return 0; 30 Giáo trình môn Kỹ thuật lập trình 114 CHƯƠNG 4: KIỂU DỮ LIỆU DO NGƯỜI DÙNG ĐỊNH NGHĨA Ví dụ 9.14: (Trích đề thi Olympic Tìn học Sinh viên toàn quốc 2008, khối thi: Cá nhân Cao đăng) Vị Giám đốc công ty XYZ cần gửi một văn bản quan trọng tới một đối tác của mình. Đề bảo mật văn bản, Giám đốc quyết định mã hóa văn bản trước khi gửi. Văn bản là một xâu các chữ cái la tỉnh in thường.
Giám đốc chia văn bản thành 2 xâu liên tiếp. Sb va Se. Lan lượt viết 2 xâu Sb và Se nhưng điều theo thứ tự ngược lại ¡ông ô nhận được xâu mã hóa Q. Bức thư thứ nhất gửi cho đối tác có nội đung là Q.