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

docx 24 trang Đinh Thương 16/01/2025 110
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 bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docxsang_kien_kinh_nghiem_ren_luyen_ki_nang_lap_trinh_voi_tep_tu.docx
  • pdfSKKN_bao_cao_thang_5_nam_2017_fcf083462d.pdf

Nội dung tóm tắt: 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

  1. 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 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 10.30 12 16 20.00 56 68 88.09 23 29 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 CO 24 KHONG 20 KHONG 169 CO 25 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 Giáo viên: Phạm Thị Khánh 17 Trường THPT Trần Hưng Đạo
  2. 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 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 2 4 3 12 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 Giáo viên: Phạm Thị Khánh 18 Trường THPT Trần Hưng Đạo
  3. 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 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; Giáo viên: Phạm Thị Khánh 19 Trường THPT Trần Hưng Đạo
  4. 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 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] ='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). Giáo viên: Phạm Thị Khánh 20 Trường THPT Trần Hưng Đạo
  5. 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 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 4029300 Tran Manh Ha 3.33 Nguyen Thu Hien 2.34 2831400 Nguyen Thu Hien 2.34 Pham Van Nam 4.32 5227200 Pham Van Nam 4.32 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; Giáo viên: Phạm Thị Khánh 21 Trường THPT Trần Hưng Đạo
  6. 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 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 dcbA abcba abcba Tin hoc 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 abcd ab cd Tinhoc Tin hoc 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ự). Giáo viên: Phạm Thị Khánh 22 Trường THPT Trần Hưng Đạo
  7. 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 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 DX abbA K abcacba 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 6 bvhf mslakds kfjs 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 Giáo viên: Phạm Thị Khánh 23 Trường THPT Trần Hưng Đạo
  8. 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 shd jcdcjd dvjv jffkbl 4 dhfj 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 Tran Ngoc Minh Le Phuong Linh Le Phuong Linh III. 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ả. Nam Định, ngày 25 tháng 5 năm 2017 Xác nhận của BGH Xác nhận của Tổ CM Người viết Phạm Thị Khánh Giáo viên: Phạm Thị Khánh 24 Trường THPT Trần Hưng Đạo