Bài giảng kỹ thuật lập trình c chương 6 ths trần quang hải bằng

20 305 0
Bài giảng kỹ thuật lập trình c  chương 6   ths  trần quang hải bằng

Đ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

KỸ THUẬT LẬP TRÌNH C Chương 6: Các kiểu liệu nâng cao bangtqh@hotmail.com 04/2010 Các kiểu liệu nâng cao • • • • Kiểu trỏ Kiểu mảng Kiểu Cấu trúc (struct) hợp (union) Kiểu File – Và truy xuất file bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu trỏ (pointer) • Địa (address) – Với biến có khái niệm: • Tên biến, kiểu biến, giá trị biến – Ví dụ: • int i = 1; • Biến i kiểu số nguyên có giá trị • Máy tính cấp phát vùng nhớ byte liên tục để lưu trữ giá trị biến i – Địa biến số thứ tự byte dãy byte liên tục máy dành để lưu trữ giá trị biến – Để lấy địa biến, sử dụng toán tử “&” • Ví dụ: &i – Lưu ý, máy tính phân biệt kiểu địa chỉ: địa kiểu int, địa kiểu float, địa kiểu long, … bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu trỏ (pointer) • Con trỏ (pointer) – Là biến dùng để chứa địa – Có nhiều loại trỏ tương ứng với kiểu địa khác • Chẳng hạn, trỏ kiểu int tương ứng địa kiểu int, … – Cú pháp khai báo trỏ kiểu_dữ_liệu *tên_con_trỏ; – Ví dụ int i, j, *pi, *pj; pi = &i; /* pi trỏ chứa ñịa biến i */ pj = &j; /* pj trỏ chứa ñịa biến j */ bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu trỏ (pointer) • Giả sử có – px trỏ ñến biến x, cánh viết x *px tương đương • Ví dụ int x, y, *px, *py; px = &x; py = &y; x = 3; /* tương đương với *px = */ y = 5; /* tương đương với *py = */ /* Các câu lệnh tương ñương: */ x = 10*y; *px = 10*y; x = 10*(*py); *px = 10*(*py); Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao bangtqh@hotmail.com 04/2010 Kiểu mảng • Mảng chiều (xem lại slide chương 4) • Mảng nhiều chiều – Ví dụ, khai báo mảng chiều int a[4][10]; //là mảng có hàng, 10 cột – Truy cập phần tử mảng nhiều chiều a[0][0], a[0][1], a[i][j]… – Ví dụ khác float arr[3][4][5]; char arrc[4][4]; bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu mảng bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu mảng – Bài tập Viết chương trình kiểm tra xem ma trận Anxn có phải ma trận tam giác không ? Viết chương trình tìm trung bình cộng phần tử âm thuộc ma trận Amxn Cho số nguyên N (lẻ ≥ 3) Hãy điền vào ma n2 cho trận thỏa trận Anxn giá trị từ mãn điều kiện Tổng hàng = Tổng cột = Tổng đường chéo Viết chương trình tính định thức ma trận vuông Anxn bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu cấu trúc (struct) • Kiểu cấu trúc cho phép tạo kiểu liệu gồm phần tử liệu có kiểu khác liên kết với • Kiểu cấu trúc (structure) gọi kiểu ghi (record) • Kiểu cấu trúc gồm nhiều thành phần liệu khác • Các thành phần liệu gọi trường (field) • Dùng từ khóa struct ñể ñịnh nghĩa kiểu cấu trúc bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu cấu trúc (struct) • Ví dụ: dùng kiểu cấu trúc mô tả liệu ñịa – Địa gồm thông tin: số nhà, tên đường, tên thành phố struct dia_chi{ int so_nha; char duong[40]; char thanh_pho[30]; } ong_A, ba_B; • Hoặc khai báo biến cấu trúc trực tiếp không cần khai báo tên cấu trúc struct { int so_nha; char duong[40]; char thanh_pho[30]; }ong_A, ba_B; bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 10 04/2010 Kiểu cấu trúc (struct) • Hoặc khai báo kiểu cấu trúc struct dia_chi{ int so_nha; char duong[40]; char thanh_pho[30]; }; • Sau khai báo biến struct dia_chi ong_A, ba_B; Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao bangtqh@hotmail.com 11 04/2010 Kiểu cấu trúc (struct) • Khai báo kiểu cấu trúc lồng typedef struct { char ho_ten[40]; struct dia_chi noi_o; char gioi_tinh; } nhan_su; • Khai báo biến nhan_su p; bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 12 04/2010 Kiểu cấu trúc (struct) • Truy cập phần tử cấu trúc tên_biến_cấu_trúc.tên_trường • Ví dụ p.ho_ten p.o_tai.so_nha p.o_tai.duong p.o_tai.thanh_pho p.gioi_tinh puts(p.ho_ten); bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 13 04/2010 Kiểu cấu trúc (struct) • Gán cấu trúc: có cách – Gán hai biến cấu trúc cho – Gán thành phần (trường) tương ứng hai cấu trúc • Ví dụ struct dia_chi d1, d2; d1 = d2; Hoặc d1.so_nha = d2.so_nha; d1.duong = d2.duong; d1.thanh_pho = d2.thanh_pho; bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 14 04/2010 Kiểu cấu trúc (struct) • Mảng cấu trúc – Khai báo mảng gồm phần tử có kiểu cấu trúc – Ví dụ nhan_su mang_nhan_su[100]; – Sử dụng for (i = 0; i < 100; i++) puts(mang_nhan_su[i].ho_ten); bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 15 04/2010 Kiểu cấu trúc (struct) • Hàm có tham số kiểu cấu trúc bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 16 04/2010 Kiểu hợp (union) • Kiểu hợp (union) cho phép chia vùng nhớ cho biến khác • Nhằm tiết kiệm nhớ • Sử dụng từ khóa union ñể ñịnh nghĩa kiểu hợp • Ví dụ union union_type{ int i; char ch; }; bangtqh@hotmail.com Máy dành byte ñể lưu trữ khai báo Cả hai phần tử i ch dùng chung vùng nhớ byte Tại thời ñiểm hai thành phần i ch ñược sử dụng Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 17 04/2010 Kiểu hợp (union) • Khai báo biến kiểu hợp union union_type x; • Truy cập phần tử kiểu hợp kiểu cấu trúc x.i x.ch bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 18 04/2010 Kiểu File (tệp) • Các thao tác file – Mở file, Đóng file, ðọc liệu file, Ghi liệu, … • Ngôn ngữ C ñịnh nghĩa (trong stdio.h) – Cấu trúc kiểu tệp FILE – Mã kết thúc tệp EOF (-1) – Các hàm thao tác file • Khai báo trỏ file FILE *pf; bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 19 04/2010 Kiểu File (tệp) • Cấu trúc chung file đĩa – Một file gồm byte có giá trị từ đến 255 – Số byte kích thước (size) file – Khi đọc cuối file ta nhận mã kết thúc file EOF • Tệp tin chia làm hai loại – Tệp tin văn (text) – Tệp tin nhị phân (binary) bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 20 04/2010 Dòng chảy (stream) • Trước file đọc hay ghi, cấu trúc liệu gọi dòng chảy phải liên kết với • Một dòng chảy trỏ trỏ ñến cấu trúc • Có dòng chảy ñược mở cho chương trình C – stdin (standard input): ñược nối với bàn phím để ñọc – stdout (standard output), stderr (standard error): ñược nối với hình để ghi • Chức dòng chảy: – Tạo vùng đệm (buffer) chương trình chạy tệp tin đĩa – Làm giảm việc chương trình truy cập trực tiếp thiết bị phần cứng bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 21 04/2010 Kiểu File (tệp) – Mở file • Muốn thao tác tệp trước hết phải mở tệp • Mở tệp với hàm fopen FILE *fopen(const char *name, const char *mode) – Hàm trả trỏ ñến cấu trúc file dòng chảy tương ứng, không thành công trả NULL • name: tên file cần mở • mode: Chế ñộ mở “w”: mở ñể ghi “r”: mở ñể ñọc “a”: mở ñể ghi vào cuối tệp bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 22 04/2010 Kiểu File (tệp) – ðóng file • Phải đóng file không làm việc với • Dùng hàm fclose int fclose(FILE *fp) – fp dòng chảy hay trỏ tệp cần đóng – Hàm trả thành công, ngược lại trả EOF • Ví dụ fclose(file_dang_mo); bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 23 04/2010 Kiểu File (tệp) • Ví dụ mở/đóng file bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 24 04/2010 Kiểu File (tệp) • Báo lỗi hệ thống – Dùng hàm perror void perror(const char *str) – Ví dụ: bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 25 04/2010 Kiểu File (tệp) • Đọc ký tự file – C cung cấp hai hàm getc fgetc int getc(FILE *fp) int fgetc(FILE *fp) – Hai hàm có chức nhau, đọc ký tự từ file ứng với dòng chảy fp, trả mã ASCII ký tự ñọc thành công, ngược lại trả EOF • Ghi ký tự vào file – C cung cấp hai hàm putc fputc int putc(int ch, FILE *fp) int fputc(int ch, FILE *fp) – Hai hàm có chức nhau, ghi ký tự có mã ASCII ch % 256 lên file ứng với dòng chảy fp, trả mã ASCII ký tự ñược ghi thành công, ngược lại trả EOF bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 26 04/2010 Ví dụ copy file (1) bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 27 04/2010 Kiểu File (tệp) • Đọc/Ghi chuỗi ký tự file – Đọc chuỗi ký tự fgets char* fgets(char *s, int n, FILE *fp) – Hàm đọc chuỗi ký tự có ñộ dài lớn n file trỏ fp vào chuỗi s – Hàm trả trỏ ñến vùng nhớ chứa chuỗi ký tự ñược đọc thành công, ngược lại trả NULL – Ghi chuỗi ký tự fputs int fputs(const char *s, FILE *fp) – Ghi chuỗi ky tự s lên file ñược trỏ fp – Nếu thành công trả mã ký tự cuối ghi, ngược lại trả EOF bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 28 04/2010 Ví dụ copy file (2) bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 29 04/2010 Kiểu File (tệp) • Đọc liệu file theo ñịnh dạng – Đọc liệu theo định dạng fscanf int fscanf(FILE *fp, const char *chuỗi_điều_khiển, [danh_sách_đối]) – Đọc liệu từ file trỏ fp theo ñịnh dạng chuỗi điều khiển vào danh cách đối, sử dụng tương tự hàm scanf bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 30 04/2010 Kiểu File (tệp) • Ghi liệu theo ñịnh dạng fprintf int fprintf(FILE *fp, const char *chuỗi_điều_khiển, [danh_sách_đối]) – Ghi liệu vào tệp trỏ fp theo ñịnh dạng chuỗi điều khiển từ danh cách đối, sử dụng tương tự hàm printf bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 31 04/2010 Kiểu File (tệp) • Ngoài hàm trình bày trên, C cung cấp nhiều hàm khác – Tự tìm hiểu hàm: • • • • • • • fcloseall, ferror, feof, unlink, remove, fseek, … bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 32 04/2010 Kiểu File (tệp) • C cho phép thao tác file nhị phân – Truy cập file cách ngẫu nhiên dễ dàng – Dữ liệu ñọc ghi khối (blocks) – File nhị phân file văn có khác xử lý mã chuyển dòng (newline) mã kết thúc file (end of file) – Hầu hết hàm dùng cho file văn sử dụng cho file nhị phân, ngoại trừ hàm fgets, fputs – Khi sử dụng hàm fopen sử dụng thêm tùy chọn “b” ñể mở file dạng nhị phân – Ngoài ra, C cung cấp thêm số hàm đọc ghi riêng cho tệp nhị phân bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 33 04/2010 bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 34 04/2010 Kiểu File (tệp) • Vấn đề với mã kết thúc file – Mã kết thúc file kiểu văn 26 (Ctrl+Z) – Khi đọc ký tự file kiểu văn bản, gặp file tự giá trị EOF ñược trả kết thúc việc đọc – Kiểu file nhị phân không không coi mã kết thúc file 26 – Để ñọc tất file tự tệp, nên đọc kiểu nhị phân bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 35 04/2010 Kiểu File (tệp) • Vấn đề với mã chuyển dòng (newline) – Đối với kiểu văn • Khi ghi vào file mã chuyển dòng ‘\n’, hai ký tự ghi vào file ‘\r’ ‘\n’ (ký tự ‘\r’ chuyển cột ‘\n’ chuyển sang dòng mới) • Khi đọc hai ký tự ‘\r’ ‘\n’ ñược nhận biết ký tự ‘\n’ – Đối với kiểu nhị phân • Khi ghi vào file ‘\n’, ký tự ‘\n’ ñược ghi vào file bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 36 04/2010 Kiểu File (tệp) • Ví dụ Vấn đề với mã chuyển dòng (newline) … FILE *bf, *tf; … tf = fopen(“txtfile”, “w”); fprintf(“hi\n”); ký tự ñược ghi vào file: ‘h’, ‘i’, ‘\r’, ‘\n’ … bf = fopen(“binfile”, “wb”); fprintf(“hi\n”); ký tự ñược ghi vào file: ‘h’, ‘i’, ‘\n’ … bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 37 04/2010 Kiểu File (tệp) • Các hàm đọc/ghi theo kiểu nhị phân Hàm Ý nghĩa int putw(int n, FILE *fp) Ghi số nguyên (2 bytes) lên file int getw(FILE *fp) Đọc số nguyên (2 bytes) từ file int fwrite(void *ptr, int size, int n, FILE *fp) Ghi n mẫu tin kích thước size từ vùng nhớ trỏ ptr lên file fp, hàm trả số mẫu tin thực ghi int fread(void *ptr, int size, int n, FILE *fp) Đọc n mẫu tin kích thước size từ file fp lên vùng nhớ trỏ ptr, hàm trả số mẫu tin thực ñược đọc fread fwrite bangtqh@hotmail.com Thường dùng để đọc/ghi mẫu tin cấu trúc, số thực, … Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 38 04/2010 Kiểu File (tệp) Giả sử file input.dat có cấu trúc sau: – – Dòng dòng 2: Mỗi dòng ghi 01 số nguyên (lần lượt M N) Từ dòng đến cuối file: Mỗi dòng ghi N số nguyên (các số ghi cách dấu cách) Anh/Chị viết chương trình cho phép: – – Đọc giá trị có file input.dat vào ma trận số nguyên AMxN Tính in hình giá trị lớn (max) cột ma trận bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 39 04/2010 bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 40 [...]... file – C cung c p hai hàm getc và fgetc int getc(FILE *fp) int fgetc(FILE *fp) – Hai hàm c ch c năng như nhau, đ c ký tự từ file ứng với dòng chảy fp, trả về mã ASCII c a ký tự ñ c đư c nếu thành c ng, ngư c lại trả về EOF • Ghi ký tự vào file – C cung c p hai hàm putc và fputc int putc(int ch, FILE *fp) int fputc(int ch, FILE *fp) – Hai hàm c ch c năng như nhau, ghi ký tự c mã ASCII là ch % 2 56 lên... (buffer) giữa chương trình đang chạy và tệp tin trên đĩa – Làm giảm vi c chương trình truy c p tr c tiếp thiết bị phần c ng bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 21 04/2010 Kiểu File (tệp) – Mở file • Muốn thao t c trên tệp trư c hết phải mở tệp • Mở tệp với hàm fopen FILE *fopen(const char *name, const char *mode) – Hàm trả về con trỏ ñến c u tr c file ho c dòng chảy tương... với dòng chảy fp, trả về mã ASCII ký tự ñư c ghi nếu thành c ng, ngư c lại trả về EOF bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 26 04/2010 Ví dụ copy file (1) bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 27 04/2010 Kiểu File (tệp) • Đ c/ Ghi chuỗi ký tự trên file – Đ c chuỗi ký tự fgets char* fgets(char *s, int n, FILE *fp) – Hàm đ c từng chuỗi ký tự c ñộ dài... Dòng chảy (stream) • Trư c khi một file đư c đ c hay ghi, một c u tr c dữ liệu đư c gọi là dòng chảy phải đư c liên kết với nó • Một dòng chảy là một con trỏ trỏ ñến một c u tr c • C 3 dòng chảy ñư c mở ra cho bất kỳ một chương trình C nào – stdin (standard input): ñư c nối với bàn phím để ñ c – stdout (standard output), stderr (standard error): ñư c nối với màn hình để ghi • Ch c năng c a dòng chảy:... chuỗi s – Hàm trả về con trỏ ñến vùng nhớ chứa chuỗi ký tự ñư c đ c nếu thành c ng, ngư c lại trả về NULL – Ghi chuỗi ký tự fputs int fputs(const char *s, FILE *fp) – Ghi chuỗi ky tự s lên file ñư c trỏ bởi fp – Nếu thành c ng trả về mã ký tự cuối c ng đư c ghi, ngư c lại trả về EOF bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 28 04/2010 Ví dụ copy file (2) bangtqh@hotmail.com Kỹ. .. fprintf(FILE *fp, const char *chuỗi_điều_khiển, [danh_sách_đối]) – Ghi dữ liệu vào tệp trỏ bởi fp theo ñịnh dạng chuỗi điều khiển và từ danh c ch c c đối, sử dụng tương tự hàm printf bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 31 04/2010 Kiểu File (tệp) • Ngoài c c hàm đư c trình bày ở trên, C còn cung c p nhiều hàm kh c – Tự tìm hiểu c c hàm: • • • • • • • fcloseall, ferror, feof,... bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 32 04/2010 Kiểu File (tệp) • C còn cho phép thao t c trên c c file nhị phân – Truy c p file một c ch ngẫu nhiên dễ dàng – Dữ liệu c thể ñ c ghi từng khối (blocks) – File nhị phân và file văn bản c sự kh c nhau khi xử lý mã chuyển dòng (newline) và mã kết th c file (end of file) – Hầu hết c c hàm dùng cho file văn bản đều đư c sử dụng cho file... bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 29 04/2010 Kiểu File (tệp) • Đ c dữ liệu trên file theo ñịnh dạng – Đ c dữ liệu theo định dạng fscanf int fscanf(FILE *fp, const char *chuỗi_điều_khiển, [danh_sách_đối]) – Đ c dữ liệu từ file trỏ bởi fp theo ñịnh dạng chuỗi điều khiển vào danh c ch c c đối, sử dụng tương tự hàm scanf bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 30... với kiểu văn bản là 26 (Ctrl+Z) – Khi đ c c c ký tự c a file trong kiểu văn bản, nếu gặp file tự này thì giá trị EOF ñư c trả về và kết th c vi c đ c – Kiểu file nhị phân không không coi mã kết th c file là 26 – Để ñ c tất c c c file tự c a tệp, nên đ c trong kiểu nhị phân bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 35 04/2010 Kiểu File (tệp) • Vấn đề với mã chuyển dòng (newline)... input.dat c c u tr c như sau: – – Dòng 1 và dòng 2: Mỗi dòng ghi 01 số nguyên (lần lượt là M và N) Từ dòng 3 đến cuối file: Mỗi dòng ghi N số nguyên (c c số ghi c ch nhau một dấu c ch) Anh/Chị hãy viết chương trình cho phép: – – Đ c c c giá trị c trong file input.dat vào ma trận số nguyên AMxN Tính và in ra màn hình giá trị lớn nhất (max) c a mỗi c t trong ma trận trên bangtqh@hotmail.com Kỹ thuật lập trình ... bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 15 04/2010 Kiểu c u tr c (struct) • Hàm c tham số kiểu c u tr c bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 16 04/2010... Tổng c t = Tổng đường chéo Viết chương trình tính định th c ma trận vuông Anxn bangtqh@hotmail.com Kỹ thuật lập trình C - Kiểu Dữ liệu nâng cao 04/2010 Kiểu c u tr c (struct) • Kiểu c u tr c cho... ñư c nối với hình để ghi • Ch c dòng chảy: – Tạo vùng đệm (buffer) chương trình chạy tệp tin đĩa – Làm giảm vi c chương trình truy c p tr c tiếp thiết bị phần c ng bangtqh@hotmail.com Kỹ thuật lập

Ngày đăng: 03/12/2015, 14:36

Từ khóa liên quan

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

Tài liệu liên quan