Sáng kiến kinh nghiệm Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học lớp 11
I. Điều kiện hoàn cảnh tạo ra sáng kiến
- Phân phối chương trình Tin học THPT có sự thay đổi giảm tải đối với việc học môn Tin học. Để đảm bảo đủ số tiết học nên có những tiết được bổ sung như tiết bài tập hoặc bài tập thực hành, nhằm đảm bảo cho học sinh nắm rõ hơn, vững hơn những phần lý thuyết đã được học.
- Các tiết bài tập hoặc bài tập thực hành trong sách giáo khoa, hướng dẫn cụ thể để đạt được một cái chuẩn chung như những bài lý thuyết. Do đó giáo viên sẽ linh hoạt dựa vào điều kiện cơ sở vật chất của nhà trường, đặc biệt là tuỳ vào đối tượng học sinh của mình để cung cấp cho học sinh những bài tập nhằm củng cố cho học sinh những kiến thức ở phần lý thuyết đã học.
- Theo phân phối chương trình, ở chương 5: Tệp và thao tác với tệp của Tin học 11 có 2 tiết lý thuyết và 2 tiết bài tập thực hành. Phần lý thuyết, sách giáo khoa cung cấp đã khá đầy đủ và dễ hiểu đối với học sinh. Tuy nhiên, phần bài tập thì chưa có; phần ví dụ chưa đủ để học sinh nắm vững và áp dụng được hết các thao tác với tệp
II. Mô tả giải pháp
- Thực trạng (trước khi có sáng kiến)
Một số khó khăn trong dạy học nội dung Tệp và thao tác với tệp:
- Học sinh không nhớ về khái niệm và tác dụng của việc sử dụng tệp (đã học ở lớp 10).
- Học sinh không nắm vững trình tự các bước để viết chương trình với tệp.
- Học sinh không có kĩ năng đọc dữ liệu với các dạng dữ liệu và cách lưu trữ dữ liệu trong tệp văn bản.
- Trong các tiết thực hành học sinh rất lúng túng khi đang lập trình với việc nhập dữ liệu từ bàn phím chuyển sang đọc dữ liệu từ tệp văn bản.
- Giáo viên thường rất mất thời gian trong việc hướng dẫn học sinh viết chương trình có sử dụng tệp.
2. Giải pháp
…
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học lớp 11", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học lớp 11

ụ: Tongday.Inp Tongday.Out 7 4 6 7 8 9 2 6 42 Ở bài toán này giáo viên hướng dẫn học sinh xác định được dãy số này gồm N số và cách giải tương tự VD1, thêm phần đọc giá trị N. Program Tinh; Uses crt; Var f1, f2: Text; N, a, i, S: Integer; Begin Assign(f1, ‘DS1.Inp’); Reset(f1); Assign(f2, ‘DS1.Out’); Rewrite(f2); Read(f1, N); S:=0; For i:=1 to N do Begin Read(f1, a); S:=S+a; end; Write(f2, S); Close(f1); Close(f2); End. VD3: Input: Đọc từ tệp UCLN.Inp chứa: Dòng 1:1 số nguyên N (1 < N < 50) N dòng tiếp theo: mỗi dòng gồm 2 số nguyên a và b; mỗi số cách nhau 1 dấu cách. Yêu cầu: Tìm ước chung lớn nhất của mỗi cặp số (a, b). Output: Ghi vào tệp UCLN.Out gồm N dòng, mỗi dòng là kết quả tìm được ứng với từng cặp số (a, b). Ví dụ: UCLN.Inp UCLN.Out 3 5 25 7 11 18 27 5 1 9 Đối với bài toán này học sinh có thể nhận biết được việc tìm UCLN của các cặp (a, b) là N lần do đó ta cần đọc dữ liệu theo từng dòng, tìm UCLN và ghi kết quả vào tệp. Hai bài toán trên chỉ có một kết quả nên có thể dùng thủ tục Write hoặc Writeln để ghi vào tệp OUT. Bài toán có nhiều kết quả UCLN, mỗi kết quả trên 1 dòng thì sử dụng cấu trúc nào? Chương trình: Program UCLN; Uses crt; Var f1, f2: Text; N, a, b, i: Integer; Begin Assign(f1, ‘UCLN.Inp’); Reset(f1); Assign(f2, ‘UCLN.Out’); Rewrite(f2); Read(f1, N); For i:=1 to N do begin Read(f1, a, b); While a b do If a > b then a := a – b else b := b – a; Writeln(f2, a); end; Close(f1); Close(f2); End. Bài tập áp dụng BT1: Cho một dãy gồm 10 số nguyên. Yêu cầu: Đếm số lượng số chẵn, số lượng số lẻ trong dãy đó. Input: Đọc từ tệp ChanLe.Inp chứa 1 dãy gồm 10 số nguyên, mỗi số cách nhau 1 dấu cách. Output: Ghi vào tệp ChanLe.Out kết quả tìm được. Ví dụ: ChanLe.Inp ChanLe.Out 3 6 7 8 9 2 6 5 1 5 So luong so chan la: 4 So luong so le la: 6 BT2: Cho một dãy gồm N số nguyên dương. Yêu cầu: Kiểm tra xem trong dãy có bao nhiêu số nguyên tố. Input: Đọc từ tệp NguyenTo.Inp chứa Dòng 1:1 số nguyên N (1 < N < 10000) Dòng 2: gồm N số nguyên dương, mỗi số cách nhau 1 dấu cách. Ouput: Ghi vào tệp NguyenTo.Out các số nguyên tố tìm được, mỗi số cách nhau 1 dấu cách Ví dụ: NguyenTo.Inp NguyenTo.Out 15 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 3 5 7 11 13 Kết quả ghi vào tệp OUT là các số nguyên tố, mỗi số cách nhau 1 dấu cách nên giáo viên hướng dẫn học sinh thêm kí tự dấu cách vào sau kết quả cần ghi. Ví dụ: Write(f2, a, ‘ ‘); BT3: Số hoàn hảo được định nghĩa là số có tổng các ước số của nó (trừ nó) bằng chính nó. Ví dụ: Số 6, 28 là các số hoàn hảo Vì 6 có các ước số là 1, 2, 3, 6 mà 1 + 2 + 3 = 6 28 có các ước số là 1, 2, 4, 7, 14, 28 mà 1 + 2 + 4 + 7 + 14 = 28 Cho dãy gồm N số nguyên dương. Yêu cầu: Tính tổng các số lẻ và kiểm tra xem có bao nhiêu số hoàn hảo trong dãy. Input: Đọc từ tệp Hoanhao.Inp chứa Dòng 1:1 số nguyên N (1 < N < 10000) Dòng 2: gồm N số nguyên dương, mỗi số cách nhau 1 dấu cách. Output: Ghi vào tệp Hoanhao.Out gồm 2 dòng: Dòng 1: Tổng các số lẻ của dãy. Dòng 2: Các số hoàn hảo tìm được, mỗi số cách nhau 1 dấu cách Ví dụ: HoanHao.Inp Hoanhao.Out 10 6 35 4 12 28 7 496 9 11 120 53 6 28 496 Học sinh có thể áp dụng cách đọc dãy số vào mảng, giáo viên hướng dẫn học sinh dựa vào giới hạn của N để khai báo số lượng phần tử của mảng chứa dãy. BT4: Cho dãy gồm N số nguyên. Yêu cầu: Tìm GTLN trong dãy và sắp xếp dãy theo thứ tự tăng dần. Input: Đọc từ tệp Sapxep.Inp chứa Dòng 1: số nguyên N (1 < N < 10000) Dòng 2: gồm N số nguyên, mỗi số cách nhau 1 dấu cách. Output: Ghi vào tệp Sapxep.Out gồm 2 dòng: Dòng 1: GTLN của dãy Dòng 2: Dãy đã sắp xếp, mỗi số cách nhau 1 dấu cách Ví dụ: Sapxep.Inp Sapxep.Out 10 6 35 4 12 28 745 8 9 11 120 745 4 6 8 9 11 12 28 35 120 745 BT5: (Dành cho học sinh Khá – Giỏi) Cho dãy gồm N số nguyên dương a1, a2, ..., aN. Yêu cầu: Tính tổng các chữ số của từng số. Input: Đọc vào từ tệp Tongchuso.Inp gồm: Dòng 1: 1 số nguyên dương N (N ≥ 1). N dòng tiếp theo: mỗi dòng 1 số nguyên dương (0 < ai ≤ 106). Output: Ghi vào tệp Tongchuso.Out gồm N dòng, mỗi dòng là một kết quả tính được. Ví dụ: Tongchuso.Inp Tongchuso.Out 3 25 711 12345 7 9 15 BT6: (Dành cho học sinh Khá – Giỏi) Máy tính điện tử xử lí thông tin bằng cách chuyển đổi tất cả dữ liệu sang dạng nhị phân (hệ đếm cơ số 2). Hệ nhị phân là một hệ đếm sử dụng 2 kí tự để biểu diễn một giá trị số, bằng tổng số các lũy thừa của 2. Hai ký tự đó thường là 0 và 1. Ví dụ: Số A = 5 ð A = 22 + 20. Do đó 5 = 1012 B = 10 ð B = 23 + 21. Do đó 10 = 10102 Cho dãy gồm N số nguyên dương a1, a2, ..., aN. Yêu cầu: Hãy biễu diễn từng số trong dãy sang hệ nhị phân. Input: Đọc vào từ tệp Nhiphan.Inp gồm: Dòng 1: 1 số nguyên dương N (N ≥ 1). N dòng tiếp theo: mỗi dòng 1 số nguyên dương (0 < ai ≤ 100). Output: Ghi vào tệp Nhiphan.Out gồm N dòng, mỗi dòng là một kết quả biểu diễn được. Ví dụ: Nhiphan.Inp Nhiphan.Out Dạng 2: Dữ liệu dạng số trong tệp INPUT không được xác định trước Với dạng dữ liệu này, giáo viên hướng dẫn học sinh sử dụng hàm kiểm tra kết thúc tệp: Hàm EoLn() : Trả về giá trị True nếu con trỏ tệp đang chỉ tới cuối dòng. Hàm Eof() : Trả về giá trị True nếu con trỏ tệp đang chỉ tới cuối tệp. Ví dụ mô tả cấu trúc 1 tệp văn bản (chữ in đậm trong file sẽ không được thể 3 6 Eoln 74 3 Eoln 45 69 Eoln Eof VD.INP hiện) 5 7 3 8 6 9 4 5 6 7 9 Eoln Eof VD.INP VD1: Cho tệp Tongday.Inp chứa 1 dãy gồm nhiều số nguyên, mỗi số cách nhau 1 dấu cách. Đọc và tính tổng của dãy số nguyên đó. Kết quả ghi vào tệp Tongday.Out. Ví dụ: Tongday.Inp Tongday.Out 4 6 7 8 9 2 6 5 1 5 53 Ta có thể sử dụng 2 cách đọc giá trị của VD1 trong dạng 1. Program Tinh; Uses crt; Var f1, f2: Text; a, S: Integer; Begin Assign(f1, ‘DS1.Inp’); Reset(f1); Assign(f2, ‘DS1.Out’); Rewrite(f2); S:=0; While not Eof(f1) do { Trong khi chưa kết thúc tệp thì đọc lần lượt từng giá trị vào biến a} begin Read(f1, a); S:=S+a; end; Write(f2, S); Close(f1); Close(f2); End. Như vậy, với dạng 1 sử dụng vòng FOR để đọc N giá trị hoặc xác định N lần đọc giá trị từ tệp INP. Với dạng 2 sử dụng vòng WHILE để đọc lần lượt các giá trị theo yêu cầu cho đến cuối tệp. VD2: Một trường THPT tổ chức cho giáo viên và học sinh đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương. Để lê lịch đến thăm khu trại của các lớp, thầy hiệu trưởng cần biết khoảng cách từ trại của mình, ở vị trí có tọa độ (0, 0) đến trại của các giáo viên chủ nhiệm. Mỗi lớp có một khu trại, vị trí trại của giáo viên chủ nhiệm đều có tọa độ nguyên (x, y). Yêu cầu: Tính khoảng cách giữa trại của mỗi giáo viên chủ nhiệm và trại của thầy hiệu trưởng (lấy 2 chữ số phần thập phân). Input: Đọc từ tệp TRAI.Inp gồm nhiều dòng, mỗi dòng là cặp số nguyên (x, y) cách nhau 1 dấu cách. Output: Ghi vào tệp TRAI.Out gồm nhiều dòng, mỗi dòng là một khoảng cách tìm được tương ứng với từng cặp số (x, y) Ví dụ: TRAI.Inp TRAI.Out 5 9 12 16 56 68 23 29 10.30 20.00 88.09 37.01 Bài tập áp dụng BT1: Số chính phương (hay còn gọi là số hình vuông) là số tự nhiên có căn bậc 2 là một số tự nhiên, hay nói cách khác, số chính phương là bình phương (lũy thừa bậc 2) của một số tự nhiên. Cho dãy số nguyên. Yêu cầu: Kiểm tra các số trong dãy có phải là số chính phương hay không? Input: Đọc từ tệp Cphuong.Inp gồm nhiều dòng, mỗi dòng là một số nguyên dương Output: Ghi vào tệp Cphuong.Out gồm nhiều dòng, mỗi dòng là chữ CO hoặc KHONG Ví dụ: Cphuong.Inp Cphuong.Out 9 24 20 169 25 CO KHONG KHONG CO CO BT2: Cho dãy số nguyên dương. Yêu cầu: Tính tổng các chữ số của từng số trong dãy. Input: Đọc từ tệp Tongchuso.Inp chứa 1 dãy số nguyên dương, mỗi số cách nhau 1 dấu cách. Output: Ghi vào tệp Tongchuso.Out gồm nhiều dòng, mỗi dòng là 1 kết quả tính được Ví dụ: Tongchuso.Inp Tongchuso.Out 5 67 567 1956 5 13 18 21 BT4: Cho dãy số nguyên dương. Yêu cầu: Với mỗi số đã cho hãy xác định số lượng ước số của nó. Ví dụ với n = 2, a1 = 4, a2 = 12, số lượng ước số của 4 là 3 (1, 2, 4), số lượng ước số của 12 là 6 (1, 2, 3, 4, 6, 12). Input: Đọc từ tệp DEMUOC.INP gồm nhiều dòng, mỗi dòng 1 số nguyên dương. Output: Ghi vào tệp DEMUOC.OUT gồm nhiều dòng, mỗi dòng là số lượng ước số của từng số. Ví dụ: DEMUOC.INP DEMUOC.OUT 17 4 12 2 3 6 Dạng 3: Dữ liệu trong tệp INPUT có chứa xâu kí tự (chữ cái) Với dạng dữ liệu này sẽ giúp học sinh gợi nhớ lại các thao tác xử lý đối với kiểu dữ liệu xâu STRING. VD1: Cho 2 xâu là họ tên của 2 học sinh. Yêu cầu: Hãy đưa ra họ tên dài hơn, nếu bằng nhau đưa ra họ tên của học sinh thứ 2. Input: Đọc vào từ tệp HT.Inp gồm 2 dòng, mỗi dòng là họ tên của một người. Output: Ghi vào tệp HT.Out chỉ 1 dòng duy nhất là kết quả tìm được. Ví dụ: HT.INP HT.OUT HT.INP HT.OUT Pham Thanh Lan Pham Thanh Lan Nguyen Thi Mai Mai Minh Hoang Tran Ngoc Bao Mai Minh Hoang Với bài toán này giáo viên cần hướng dẫn học sinh sử dụng cấu trúc Readln để đọc từng dòng dữ liệu (họ tên của từng người). Chương trình: Program VD; Var f1, f2 : text; ht1, ht2 : string; Begin Assign(f1, 'ht.inp'); Reset(f1); Assign(f2, 'ht.out'); Rewrite(f2); Readln(f1, ht1); Readln(f1, ht2); If length(ht1) > length(ht2) then write(f2,ht1) else write(f2,ht2); Close(f1); Close(f2); End. VD2: Cho xâu kí tự s1 chứa cả chữ cái và chữ số. Yêu cầu: Tạo xâu s2 chỉ gồm các chữ số có trong s1 (giữ nguyên thứ tự xuất hiện của chúng). Input: Đọc từ tệp Tachso.Inp chứa xâu s1 (không quá 255 kí tự). Output: Ghi vào tệp Tachso.Out xâu s2. Ví dụ: Tachso.Inp Tachso.Out hfht85an8dj9w02 858902 Với bài toán này giáo viên có thể hướng dẫn học sinh đọc dữ liệu theo một trong hai cách Cách 1: Đọc dữ liệu vào xâu s1 sau đó kiểm tra từng kí tự trong s1 có phải là chữ số hay không? (dùng thủ tục Readln). Chương trình: Program Tachso; Var f1, f2 : text; S: string; Begin Assign(f1,'tachso.inp'); reset(f1); Assign(f2,'tachso.out'); rewrite(f2); Read(f1,s); For i:=1 to length(s) do if (s[i]>='0') and (s[i]<='9') then write(f2,s[i]); Close(f1);close(f2); End. Cách 2: Đọc lần lượt từng kí tự trong tệp Tachso.Inp và kiểm tra luôn (dùng thủ tục Read). Vì độ dài của xâu s1 là không xác định trước nên phải sử dụng cấu trúc kiểm tra kết thúc tệp hoặc kết thúc dòng. Chương trình: Program Tachso; Var f1, f2 : text; ch : char; Begin Assign(f1,'tachso.inp'); reset(f1); Assign(f2,'tachso.out'); rewrite(f2); While not eof(f1) do {có thể thay eof thành eoln) begin read(f1,ch); if (ch>='0') and (ch<='9') then write(f2,ch); end; Close(f1);close(f2); End. VD3: Để xây dựng một chương trình đơn giản để quản lý lương nhân viên của xí nghiệp may người ta tạo một bảng thông tin. Dữ liệu nhập bao gồm: Họ tên (tối đa 20 kí tự), Hệ số lương (là số thập phân). Yêu cầu: Tạo bảng lương gồm họ tên, hệ số lương và lương. Trong đó lương được tính theo công thức: hệ số lương * 1210000. Input: Đọc từ tệp Luong.Inp gồm (theo cấu trúc ví dụ) Dòng 1: 1 số nguyên dương N (1 < N ≥ 100 – số lượng nhân viên) N dòng tiếp theo, mỗi dòng gồm 2 thông tin: họ tên và hệ số lương, cách nhau 3 dấu cách Output: Ghi vào tệp Luong.Out gồm N dòng, mỗi dòng gồm 3 thông tin: họ tên, hệ số lương, lương. Mỗi thông tin cách nhau 3 dấu cách. Ví dụ: Luong.Inp Luong.Out 3 Tran Manh Ha 3.33 Nguyen Thu Hien 2.34 Pham Van Nam 4.32 Tran Manh Ha 3.33 4029300 Nguyen Thu Hien 2.34 2831400 Pham Van Nam 4.32 5227200 Vì mỗi dòng dữ liệu cần xử lí gồm cả chữ và số nên giáo viên hướng dẫn học sinh đọc thông tin họ tên vào biến xâu có độ dài 30, hệ số lương vào biến số thực. Chương trình: Program qlluong; Var f1, f2 : text; ht : string[20]; hs, luong : real; n, i : byte; Begin Assign(f1, 'luong.inp'); Reset(f1); Assign(f2, 'luong.out'); Rewrite(f2); Readln(f1,n); For i := 1 to N do begin Readln(f1, ht, hs); luong := 1210000 * hs; Writeln(f2, ht, ' ', hs:4:2, ' ', luong:0:0); { lương là số thực nhưng khi in ra phải là số nguyên nên phần thập phân để là 0 } end; Close(f1);Close(f2); End. Bài tập áp dụng BT1: Cho tệp DNXau.Inp gồm nhiều dòng, mỗi dòng là một xâu kí tự (không quá 255 kí tự). Hãy viết các xâu theo thứ tự ngược lại, kết quả ghi vào tệp DNXau.Out mỗi xâu trên một dòng. Ví dụ: DNXau.Inp DNXau.Out Abcd abcba Tin hoc dcbA abcba coh niT BT2: Cho tệp Xoadaucach.Inp gồm Dòng 1: l số nguyên dương N (1 ≤ N ≤ 100) N dòng tiếp theo: mỗi dòng là một xâu kí tự (không quá 255 kí tự). Yêu cầu: Hãy xóa các dấu cách trong từng xâu và ghi kết quả vào tệp Xoadaucach.Out, mỗi xâu trên một dòng. Ví dụ: Xoadaucach.Inp Xoadaucach.Out 2 ab cd Tin hoc abcd Tinhoc BT3: Xâu đối xứng có tính chất: đọc nó từ phải sang trái cũng thu được kết quả giống như đọc từ trái sang phải (còn được gọi là xâu Palindrome). Yêu cầu: Kiểm tra xem một xâu có phải là xâu đối xứng hay không? Input: Đọc từ tệp Dxung.Inp chứa nhiều dòng, mỗi dòng là 1 xâu (không quá 255 kí tự). Output: Ghi vào tệp Dxung.Out gồm nhiều dòng mỗi dòng là câu trả lời “DX” hoặc “K”. Ví dụ: Dxung.Inp Dxung.Out Abba abbA abcacba DX K DX BT4: Cho tệp Thaytu.Inp chứa một xâu kí tự (không quá 255 kí tự). Hãy thay thế tất cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’, kết quả ghi vào tệp Thaytu.Out là xâu đã thay thế. Ví dụ: Thaytu.Inp Thaytu.Out Toi co anh trai, anh ay ten la Nam Toi co em trai, em ay ten la Nam BT5: Cho tệp Demso.Inp chứa nhiều dòng một xâu kí tự (không quá 100 kí tự). Hãy cho biết có bao nhiêu chữ số xuất hiện trong xâu, kết quả ghi vào tệp Demso.Out. Ví dụ: Demso.Inp Demso.Out Hf ht85a n8dj 9w02 bvhf mslakds kfjs 6 0 BT6: (Dành cho học sinh Khá – Giỏi) Từ trong xâu được hiểu là dãy các kí tự liên tiếp. Cho một xâu S có độ dài không quá 200 kí tự. Yêu cầu: Đếm số lượng từ có trong xâu S. Input: Đọc từ tệp Demtu.Inp gồm nhiều dòng, mỗi dòng là một xâu S. Output: Ghi vào tệp Demtu.Out gồm nhiều dòng, mỗi dòng là số lượng từ của từng xâu. Ví dụ: Demtu.Inp Demtu.Out Cong hoa xa hoi chu nghia Viet Nam 8 shd jcdcjd dvjv jffkbl dhfj 4 1 BT7: (Dành cho học sinh Khá – Giỏi) Chuẩn hóa xâu là việc loại bỏ các dấu cách thừa ở đầu, giữa, cuối xâu và giữa các từ để lại một dấu cách. Cho một xâu S có độ dài không quá 200 kí tự. Yêu cầu: Thực hiện chuẩn hóa xâu S. Input: Đọc từ tệp Chuanhoa.Inp gồm nhiều dòng, mỗi dòng là một xâu S. Output: Ghi vào tệp Chuanhoa.Out gồm nhiều dòng, mỗi dòng là kết quả chuẩn hóa của từng xâu. Ví dụ: Chuanhoa.Inp Chuanhoa.Out Tran Ngoc Minh Le Phuong Linh Tran Ngoc Minh Le Phuong Linh Hiệu quả do sáng kiến đem lại Mỗi giáo viên Tin học đều có các phương pháp rèn luyện kĩ năng lập trình khác nhau cho học sinh để gây hứng thú học tập. Nhiều học sinh đã biết vận dụng các thuật toán của các bài toán cơ bản đã biết để giải quyết các bài toán mở rộng, một số em có thể tự tìm được lời giải được một số bài toán khác khó hơn. Với cách làm đơn giản này các em học sinh sẽ có hứng thú để tiếp tục tìm hiểu và giải quyết các bài toán khác, các thầy, cô có thể áp dụng cách làm này với nhiều dạng bài tập khác nhau để thấy được hiệu quả. Xác nhận của BGH Xác nhận của Tổ CM Nam Định, ngày 25 tháng 5 năm 2017 Người viết Phạm Thị Khánh
File đính kèm:
sang_kien_kinh_nghiem_ren_luyen_ki_nang_lap_trinh_voi_tep_tu.docx
Sáng kiến kinh nghiệm Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học l.pdf