intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Sáng kiến kinh nghiệm THPT: Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:27

40
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục đích nghiên cứu sáng kiến nhằm giúp các em yêu thích môn học và có thành tích cao hơn với môn học, là tiền đề giúp các em yêu thích lập trình và tham dự các kỳ thi học sinh giỏi Tin học các cấp. Giúp các đồng nghiệp có thêm những phương pháp để vận dụng vào giảng dạy khi cần.

Chủ đề:
Lưu

Nội dung Text: Sáng kiến kinh nghiệm THPT: Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10

  1. ĐỀ TÀI: HƯỚNG DẪN CÁC PHƯƠNG PHÁP GIẢI BÀI TẬP PYTHON TRONG TIN HỌC 10 Lĩnh vực: Tin học
  2. SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN TRƯỜNG THPT 1-5 ĐỀ TÀI: HƯỚNG DẪN CÁC PHƯƠNG PHÁP GIẢI BÀI TẬP PYTHON TRONG TIN HỌC 10 Lĩnh vực: Tin học Tên tác giả 1: Nguyễn Trí Quyền Số điện thoại: 0989922226 Tác giả 2: Nguyễn Thị Thu Huyền Số điện thoại: 0986155995 Tổ chuyên môn: Toán – Tin Năm thực hiện: 2022 – 2023 Nghĩa Đàn, tháng 04 năm 2023
  3. DANH MỤC CÁC TỪ VIẾT TẮT VÀ Ý NGHĨA Từ, cụm từ viết tắt Ý nghĩa PPDH Phương pháp dạy học GV Giáo viên HS Học sinh THPT Trung học phổ thông
  4. MỤC LỤC NỘI DUNG TTrang PHẦN I. ĐẶT VẤN ĐỀ 1 1. Lý do chọn đề tài ........................................................................................ 1 2. Tính mới của đề tài...................................................................................... 1 PHẦN II. NỘI DUNG NGHIÊN CỨU 2 1. Cơ sở khoa học............................................................................................ 2 1.1. Cơ sở lý luận ............................................................................................ 2 1.2. Cơ sở thực tiễn........................... .............................................................. 3 2. Nội dung giải pháp ..................................................................................... 8 2.1. Giải pháp chung........................................................................................ 9 2.2. Giải pháp cụ thể........................................................................................ 3 2.2.1. Một số phương pháp hướng dẫn bài tập sử dụng “Câu lệnh lặp For” trong Python.................................................................................................... 3 2.2.2. Một số phương pháp hướng dẫn bài tập sử dụng “Dữ liệu kiểu xâu” trong Python..................................................................................................... 7 2.2.3. Một số phương pháp hướng dẫn bài tập sử dụng Hàm trong 13 Python............................................................................................................... 3 3. Kết quả thực hiện.......................................................................................... 19 PHẦN III. KẾT LUẬN VÀ KIẾN NGHỊ 20 1. Quá trình nghiên cứu .................................................................................. 20 2. Ý nghĩa của đề tài........................................................................................ 20 3. Đề xuất và kiến nghị.................................................................................... 20
  5. TÀI LIỆU THAM KHẢO [1]- Sách Giáo khoa Tin học10 (Kết nối tri thức với cuộc sống). NXB Giáo dục Việt Nam. [2]- Sách bài tập Tin học10 (Kết nối tri thức với cuộc sống). NXB Giáo dục Việt Nam. [3]- Sách giáo viên Tin học10 (Kết nối tri thức với cuộc sống). NXB Giáo dục Việt Nam. [4]- Các nguồn tài liệu khác từ mạng Internet.
  6. PHẦN I. ĐẶT VẤN ĐỀ 1. LÝ DO CHỌN ĐỀ TÀI Năm học 2022-2023 chương trình giáo dục phổ thông 2018 chính thức áp dụng cho khối 10. Với định hướng ngay từ chương trình lớp 10 học sinh đã được học về ngôn ngữ lập trình, cụ thể là định hướng sử dụng ngôn ngữ lập trình Python. Nhưng hầu hết chúng ta đã quá quen với việc sử dụng ngôn ngữ lập trình Pascal và gần đây đã bắt đầu tiếp cận với ngôn ngữ lập trình C/C++. Tuy nhiên, sách giáo khoa mới thì ngôn ngữ lập trình Python lại được đưa vào chương trình giáo dục môn Tin học ngay từ lớp 10. Điều này làm cho đội ngũ giáo viên Tin học phải tự tìm hiểu và nghiên cứu thêm ngôn ngữ mới, nhằm phục vụ cho công các giảng dạy của bản thân. Xuất phát từ thực tiễn giảng dạy tại trường THPT 1-5 tôi thấy rằng, để đạt hiệu quả cao trong mỗi phần học, tiết học cần có cách thiết kế bài giảng cho phù hợp với nội dung kiến thức; phương pháp, phương tiện dạy học phải phù hợp với từng bài dạy, từng đối tượng học sinh. Để qua mỗi phần học, tiết học học sinh thích thú với kiến thức mới, qua đó hiểu được kiến thức đã học trên lớp, đồng thời học sinh thấy được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết để đáp ứng những yêu cầu của môn học, sau đó là việc ứng dụng của nó vào các công việc thực tiễn trong đời sống xã hội. Tuy nhiên làm cách nào để giúp học sinh tiếp thu kiến thức mới tốt nhất cũng là vấn đề mà tôi nhận thấy bản thân cũng như các đồng nghiệp của mình trăn trở. Trong chương trình Tin học 10 “chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính”. Kiến thức học sinh được giới thiệu về ngôn ngữ lập trình bậc cao nói chung và cụ thể ngôn ngữ lập trình Python. Python là ngôn ngữ lập trình bậc cao có thế mạnh là rất gần gũi với ngôn ngữ tự nhiên, hiện nay là ngôn ngữ lập trình phổ biến rộng rãi ở Châu Âu, châu Mỹ và được coi như ngôn ngữ lập trình trường học. Dù là ngôn ngữ có cấu trúc rõ ràng, dễ đọc, dễ học nhưng đối với học sinh lớp 10 các em còn nhiều khó khăn khi bắt đầu học. Python là ngôn ngữ được dùng để phát triển các ứng dụng web, game, khoa học dữ liệu (tính toán, phân tích, khai thác dữ liệu), trí tuệ nhân tạo… Nên việc tìm ra những phương pháp dạy giúp các em học tốt phần kiến thức này tôi thấy là vấn đề cần thiết. Sau khi nghiên cứu phần kiến thức của chủ đề 5 tôi đưa ra sáng kiến với đề tài: “Hướng dẫn các phương pháp giải bài tập Python trong Tin học 10”. 2. TÍNH MỚI CỦA ĐỀ TÀI Python là ngôn ngữ lập trình lần đầu tiên được đưa vào giảng dạy tại trường THPT 1-5, nên học sinh còn nhiều bỡ ngỡ khi mới được làm quen với ngôn ngữ lập trình Python. Những phương pháp mà tôi đưa ra giúp học sinh giải bài tập là mới. Nó góp phần giúp các em yêu thích môn học và có thành tích cao hơn với môn học, là tiền đề giúp các em yêu thích lập trình và tham dự các kỳ thi học sinh giỏi Tin học các cấp. Giúp các đồng nghiệp có thêm những phương pháp để vận dụng vào giảng dạy khi cần. 1
  7. PHẦN II. NỘI DUNG NGHIÊN CỨU 1. CƠ SỞ KHOA HỌC 1.1. Cơ sở lý luận Phương pháp dạy học chính là cách thức hoạt động giữa thầy và trò để nhằm đạt được mục tiêu dạy học xác định đồng thời phù hợp với nội dung và các điều kiện dạy học cụ thể. Một số phương pháp dạy học cụ thể: a. Phương pháp dạy học gợi mở - vấn đáp Là quá trình tương tác giữa giáo viên và học sinh được thực hiện thông qua hệ thống câu hỏi và câu trả lời tương ứng về một chủ đề nhất định được giáo viên đặt ra. Qua việc trả lời hệ thống câu hỏi dẫn dắt của giáo viên, học sinh thể hiện được suy nghĩ, ý tưởng của mình, từ đó khám phá và lĩnh hội đối tượng học tập. b. Phương pháp dạy học phát hiện và giải quyết vấn đề Là giáo viên tạo ra những tình huống có vấn đề, điều khiển học sinh phát hiện vấn đề, hoạt động tự giác, tích cực, chủ động, sáng tạo để giải quyết vấn đề và thông qua đó chiếm lĩnh tri thức, rèn luyện kĩ năng và đạt được những mục đích học tập khác. c. Phương pháp dạy học hợp tác trong nhóm nhỏ Là “Học sinh được phân chia thành từng nhóm nhỏ riêng biệt, chịu trách nhiệm về một mục tiêu duy nhất, được thực hiện thông qua nhiệm vụ riêng biệt của từng người. Các hoạt động cá nhân riêng biệt được tổ chức lại, liên kết hữu cơ với nhau nhằm thực hiện một mục tiêu chung”. Phương pháp hợp tác nhóm nhỏ được sử dụng nhằm giúp cho mọi người có thể tham gia chủ động vào quá trình học tập, tạo cơ hội cho các em có thể chia sẻ kiến thức, kinh nghiệm, ý kiến giải quyết các vấn đề liên quan đến nội dung bài hoc, tạo cơ hội cho học sinh được giao lưu học hỏi, cùng hợp tác giải quyết những nhiệm vụ chung. d. Phương pháp dạy học trực quan Là “phương pháp sử dụng những phương tiện trực quan, phương tiện kỹ thuật dạy học trước, trong và sau khi nắm tài liệu mới, khi ôn tập, củng cố, hệ thống hóa và kiểm tra tri thức, kĩ năng, kĩ xảo”. Phương pháp trực quan được thể hiện dưới hai hình thức là minh họa và trình bày. Minh họa thường trình bày những đồ dùng trực quan (bản mẫu, bản đồ, bức tranh,…). Trình bày thường gắn với việc trình bày thí nghiệm, thiết bị kĩ thuật, chiếu phim đèn chiếu, phim điện ảnh, vi deo,… e. Phương pháp dạy học luyện tập, thực hành 2
  8. Luyện tập là việc lặp lại với mục đích học thuộc những đoạn thông tin, đoạn văn, thơ, bài hát, kí hiệu, quy tắc, công thức, định lí, khái niệm,…đã học làm cho việc sử dụng kĩ năng được thực hiện một cách tự động, thành thục. Luyện tập và thực hành nhằm củng cố, bổ sung vừa làm vững chắc thêm các kiến thức lí thuyết vừa phát triển được kĩ năng cho học sinh. 1.2. Cơ sở thực tiễn: Năm học 2022-2023 là năm đầu tiên thay đổi chương trình dạy học. Đối với môn Tin học, trong quá trình giảng dạy tôi thấy chủ đề 5 “Giải quyết vấn đề với sự trợ giúp của máy tính” là phần nội dung kiến thức mới với cả giáo viên và học sinh. Trên thực tế việc học ngôn ngữ lập trình là môn học mới với các em, để tiếp cận nắm vững kiến thức và vận dụng giải quyết tốt các bài toán là nhiệm vụ sẽ gặp khó khăn với giáo viên và học sinh. Nhằm nâng cao chất lượng giảng dạy môn Tin học, giúp các em yêu thích môn học, tạo hứng thú học tập cho các em. Tôi đã sử dụng kết hợp các phương pháp dạy học để hướng dẫn hệ thống bài tập theo từng phần giúp các em học tốt hơn. Nâng cao chất lượng bộ môn. 2. NỘI DUNG GIẢI PHÁP 2.1. Giải pháp chung - Sử dụng linh hoạt và kết hợp các phương pháp dạy học tích cực; - Xây dựng hệ thống bài tập từ dễ đến khó, luyện tập được hết các mục tiêu của từng bài học. 2.2. Giải pháp cụ thể Trong quá trình giảng dạy tôi thấy với cấu trúc lặp for, cách sử dụng hàm trong Python là học sinh khó hiểu bài và vận dụng để làm tốt các bài tập. Tôi đã đưa các phương pháp dạy học đa dạng vào từng nội dung kiến thức để giúp các em dễ dàng tiếp thu kiến thức, đạt được mục tiêu bài học. 2.2.1 Một số ví dụ phương pháp hướng dẫn bài tập sử dụng “Câu lệnh lặp for” trong Python. Hoạt động 1: lệnh for, lệnh range - Mục Tiêu: Biết viết và sử dụng câu lệnh for - Nội dung: Lệnh range (n) trả lại vùng giá trị gồm n số từ 0 đến n-1 Cú pháp của lệnh lặp với số lần biết trước For trong Python như sau: For in range (n): - Sản phẩm: HS hoàn thành tìm hiểu kiến thức 3
  9. - Tổ chức thực hiện: Phương pháp: Hợp tác nhóm nhỏ, trò chơi (Trò chơi ô số may mắn) + GV: Giới thiệu trò chơi: Trò chơi gồm có nhiều ô số; trong các ô số có thể chứa câu hỏi hoặc những phần quà hấp dẫn. Lần lượt các nhóm sẽ được chọn một ô số bất kỳ. + HS: Tham gia trò chơi theo sự hướng dẫn của giáo viên. Các ô số may mắn (Mỗi ô số có thể là câu hỏi hoặc phần quà) Phần quà GV có thể chuẩn bị là đồ dùng học tập như bút, sách…; Tràng pháo tay giúp không khí lớp học sôi nổi hơn. Ví dụ về câu hỏi trong các ô số 4
  10. Phương pháp hoạt động nhóm và trò chơi giúp học sinh hứng thú trong tiết học, dễ ghi nhớ kiến thức và yêu thích môn học hơn. Để hoàn thành được mục tiêu bài học giáo viên cần chuẩn bị chu đáo về nội dung, cách thực hiện, quản lý và dẫn dắt các em. Hoạt động 2: Luyện tập lệnh lặp for và lệnh range () a) Mục tiêu: rèn luyện kĩ năng lập trình b) Nội dung: Hướng dẫn học sinh làm các bài tập sau: Bài 1: Viết chương trình tính tổng các số từ 1 đến 100 Bài 2: Viết chương trình tính tổng các số chẵn từ 1 đến 100 Bài 3: Viết chương trình nhập từ bàn phím số tự nhiên n và in ra kết quả là tổng sau: S = 13 + 23 +... + 𝑛3 Bài 4: Viết đoạn chương trình tính tích 1× 2 × 3 ×...× n với n được nhập vào từ bàn phím. Bài 5: Nhập số tự nhiên n từ bàn phím và đếm số các ước số thực sự của n. Ước số thực sự của n là số tự nhiên k < n và là ước của n. c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức, làm thực hành được các bài tập d) Tổ chức thực hiện: Phương pháp: Dạy học trực quan, luyện tập thực hành Bài 1: Viết chương trình tính tổng các số từ 1 đến 100 Qua bài toán này giúp học sinh hiểu rõ hơn về cấu trúc lặp với số lần biết trước. Nắm vững cú pháp câu lệnh for. Bài 2: Viết chương trình tính tổng các số chẵn từ 1 đến 100 Cách 1: 5
  11. Qua bài toán này giúp học sinh hiểu rõ hơn về cấu trúc lặp với số lần biết trước. Nắm vững cú pháp câu lệnh for kết hợp lệnh if Cách 2: Cách này giới thiệu thêm cho các em về câu lệnh range(start,end,step). Trong đó star=khởi đầu dãy, end=kết thúc dãy, step= bước nhảy (nếu bỏ trống thì mặc định bước nhảy bằng 1) Bài 3: Viết chương trình nhập từ bàn phím số tự nhiên n và in ra kết quả là tổng sau: S = 13 + 23 +... + 𝑛3 Qua bài toán này giúp học sinh hiểu rõ hơn về cấu trúc lặp với số lần biết trước. Nắm vững cú pháp câu lệnh for. Bài 4: Viết đoạn chương trình tính tích 1× 2 × 3 ×...× n với n được nhập vào từ bàn phím. Bài 5: Nhập số tự nhiên n từ bàn phím và đếm số các ước số thực sự của n. Ước số thực sự của n là số tự nhiên k < n và là ước của n. Cách 1: (SGK) Hướng dẫn. Tương tự như chương trình ở nhiệm vụ 1, điểm khác là cần đếm số các ước số này và không tính n. Tạo một biển có tên count để đếm số các ước số thực sự của n. 6
  12. Cách 2: Thuật toán tối ưu hơn. Đếm các ước chỉ cần kiểm tra từ 1 đến phần nguyên căn bậc 2 của số đó. 2.2.2 Một số ví dụ phương pháp hướng dẫn bài tập sử dụng “dữ liệu kiểu xâu” trong Python. Trong quá trình dạy Tôi thấy các em dễ mắc sai lầm khi lập trình giải quyết các bài toán trong đó có kiểu dữ liệu xâu. Nguyên nhân dẫn đến những khó khăn mà học sinh thường gặp là: + Gặp khó khăn khi xác định bài toán đặc biệt là xác định dạng bài toán về kiểu dữ liệu xâu + Khó liên hệ phương pháp giải một bài toán trong toán học với thuật toán trong tin học. Với mong muốn phần nào giúp học sinh trong việc tìm ra lời giải cho một số bài toán liên quan tới kiểu dữ liệu xâu dễ dàng hơn. Về bài tập kiểu xâu Tôi chủ yếu dùng hệ thống bài tập để giúp các em luyện tập và nắm được kiến thức. Hoạt động 1: Tìm hiểu kiến thức cơ bản về xâu - Mục Tiêu: Biết và hiểu các kiến thức cơ bản về xâu - Nội dung: - Python là một ngôn ngữ lập trình bậc cao được dùng phổ biết trong nghiên cứu và giáo dục. - Tên kiểu dữ liệu: str - Các ký tự của xâu được đặt trong cặp nháy đơn hoặc kép. Xâu trên nhiều dòng được đặt trong cặp 3 nháy đơn hoặc 3 nháy kép. 7
  13. - Các ký tự trong xâu được đánh chỉ số từ trước ra sau bắt đầu từ 0 và đảo chiều âm từ sau về trước bắt đầu từ -1. - Khai báo: Trong Python không cần khai báo, để tạo biến xâu ta chỉ cần gán xâu cho biến đó. - Trong Python, xâu là bất biến, không thể thực hiện các thao tác làm thay đổi giá trị của xâu - Python không có kiểu dữ liệu ký tự, một ký tự cũng thuộc kiểu xâu. - Không thể thực hiện xóa, chèn ký tự theo chỉ số nhưng vẫn cho phép truy xuất ký thự theo chỉ số - Cho phép thực hiện phép nhân xâu với một số nguyên. * Một số thao tác cơ bản với xâu trong Python - Phép ghép nối xâu: + - Phép so sánh: >, >=,
  14. * Một số thao tác mở rộng với xâu trong Python: - Hàm tìm kiếm: s.find sub, [start], [end]), với ý nghĩa tìm xâu con sub trong xâu s, vị trí bắt đầu tìm kiếm là start và vị trí kết thúc tìm kiếm là end, nếu vắng start thì mặc định bắt đầu tìm là vị trí 0 (cận trái) và nếu vắng end thì mặc định vị trí kết thúc tìm kiếm là cuối xâu. Nếu không tìm thấy thì kết quả = -1 - s.rfind(x, [start], [end]): Tìm kiếm vị trí cuối cùng xuất hiện xâu x trong xâu s bắt đầu từ vị trí end-1, trở về vị trí start. - Hàm thay thế: s.replace(s1, s2) để thay thế phần xâu con s1 bằng một xâu s2, trả về một xâu mới. - Hàm capitalize() viết hoa ký tự đầu tiên trong xâu, các chữ còn lại viết thường - Hàm s.strip(ch): trả về xâu mới có giá trị bằng xâu s đã xóa ký tự ch bên trái, bên phải hoặc xóa ký tự bên trái, bên phải. - Hàm s.startswith(x) Dùng để kiểm tra chuỗi s có bắt đầu bằng chuỗi con x hay không - Hàm s.endswith(x) Dùng để kiểm tra chuỗi s có kết thúc bằng chuỗi con x hay không - Hàm s.count(x) sẽ trả về số lần xuất hiện của chuỗi con x trong chuỗi mẹ s. - Hàm ds = s.split(x): cắt xâu s thành nhiều chuỗi con, dựa vào tiêu chí ngăn cách để cắt là xâu x lưu vào list có tên ds. Nếu vắng mặt xâu x thì việc cắt dựa vào xâu con các dấu cách. - Hàm s=x.join(ds): nối các xâu trong list ds thành xâu s bởi xâu gắn kết x. - Sản phẩm: Hs hoàn thành tìm hiều kiến thức - Tổ chức thực hiện: Phương pháp: Gợi mở vấn đáp, phát hiện giải quyết vấn đề Hoạt động 2: Luyện tập với bài tập dữ liệu kiểu xâu cơ bản - Mục Tiêu: Làm được các bài tập đơn giản với dữ liệu kiểu xâu - Nội dung: Hướng dẫn học sinh làm các bài tập Bài 1: Viết chương trình nhập vào một xâu ký tự S, đưa ra xâu đó nhưng được viết theo chiều ngược lại. Bài 2: Viết chương trình nhập vào một xâu ký tự S, đưa ra xâu đó nhưng loại bỏ các dấu cách trống. Bài 3: Viết chương trình nhập vào từ bàn phím xâu ký tự s, tìm và thay thế tất cả các cụm ký tự s1 thành s2. 9
  15. Bài 4: Đếm số lần xuất hiện mỗi loại ký tự. - Sản phẩm: HS hoàn thành tìm hiểu kiến thức - Tổ chức thực hiện: Phương pháp: Dạy học trực quan, thực hành luyện tập Bài 1: Viết chương trình nhập vào một xâu ký tự S, đưa ra xâu đó nhưng được viết theo chiều ngược lại. Ý tưởng giải thuật: Cách 1: Sử dụng phép toán ghép nối (+): Khởi tạo biến kq= “” Duyệt lần lượt các chỉ số của xâu ghép nối vào xâu kq (việc duyệt và ghép nối có thể có rất nhiều cách diễn đạt) Cách 2: Sử dụng phép toán ghép nối (+): Khởi tạo biến kq= “” Duyệt lần lượt các ký tự của xâu ghép nối vào xâu kq Cách 3: Sử dụng hàm đảo Xâu: dùng thao tác cắt trích s[start : end : step] Chương trình tham khảo viết bằng Python: * Ý tưởng: Thông qua các chương trình nhấn mạnh cho học sinh các thao tác đã được vận dụng trong bài toán này và ý nghĩa, kỹ thuật sử dụng các thao tác trong Python. - Hàm len (): lấy độ dài xâu s. - Phép cộng (+): Ghép nối xâu. - Thao tác Cắt trích: s[start : end : step] Ý nghĩa là, lần lượt duyệt và trích các phần tử thuộc phạm vi từ vị trí start đến vị trí end-1 sau mỗi lần lấy một phần tử trong phạm vi thì di chuyển con trỏ với bước nhảy có độ rộng step. Các tham số trên có thể vắng mặt: nếu thiếu start thì mặc định là bắt đầu từ đầu xâu, nếu thiếu end thì mặc định đến hết xâu, nếu thiếu step thì mặc định là 1. 10
  16. Bài 2: Viết chương trình nhập vào một xâu ký tự S, đưa ra xâu đó nhưng loại bỏ các dấu cách trống. Ý tưởng giải thuật: Cách 1: Sử dụng thêm biến kq để lưu kết quả và nối các kí tự khác cách: Duyệt các phần tử, nếu gặp phần tử khác cách ‘ ’ thì nối sang xâu kết quả. Cách 2: Dùng phương pháp thay thế, duyệt tìm các dấu cách trống rồi xóa khỏi xâu. * Trong Python: (không thể xóa phần tử theo chỉ số) + Dùng hàm replace để thực hiện Cách 3: Sử dụng phương pháp cắt trích kết hợp phép toán ghép nối. * Trong Python: (không thể xóa phần tử theo chỉ số) + Dùng hàm replace để thực hiện + Dùng phép toán cắt trích kết hợp ghép nối.Chương trình tham khảo viết bằng Python: Ý tưởng: Thông qua bài tập này nhấn mạnh, khắc sâu ý nghĩa, kỹ thuật sử dụng các thao tác xử lý xâu như phép ghép nối xâu, cắt trích xâu và hàm tìm kiếm, thay thế: - Hàm tìm kiếm: + s.find(x, [start], [end]): Tìm kiếm vị trí đầu tiên xuất hiện xâu x trong xâu s. bắt đầu từ vị trí start, kết thúc ở vị trí end-1, nếu vắng start thì mặc định bắt đầu tìm là vị trí 0 và nếu vắng end thì mặc định vị trí kết thúc tìm kiếm là cuối xâu. Nếu việc tìm kiếm không có kết quả thì hàm trả về giá trị -1 + s.rfind(x, [start], [end]): Tìm kiếm vị trí cuối cùng xuất hiện xâu x trong xâu s bắt đầu từ vị trí end-1, trở về vị trí start. - Hàm thay thế: + s.replace(s1, s2) để thay thế phần xâu con s1 bằng một xâu mới s2. 11
  17. Bài 3: Viết chương trình nhập vào từ bàn phím xâu ký tự s, tìm và thay thế tất cả các cụm ký tự s1 thành s2. Ví dụ: Xâu nhập vào: s = “anh oi, anh dang o đau” s1= “anh”; s2= “em”; Xâu kết quả: S = “em oi, em dang o đau” Ý tưởng giải thuật: Cách 1: Sử dụng thao tác cắt trích, so sánh và ghép nối để thực hiện ý tưởng trên. Cách 2: Dùng hàm replace để thực hiện. Chương trình tham khảo bằng Python: Ý tưởng: Thông qua bài tập này nhấn mạnh, khắc sâu kỹ thuật sử dụng các thao tác cắt trích, thay thế. Bài 4: Đếm số lần xuất hiện mỗi loại ký tự. Cho xâu s (có độ dài không vượt quá 103) chỉ gồm các ký tự từ 'A' đến 'Z'. Cho biết có bao nhiêu loại ký tự xuất hiện trong s và đưa ra một ký tự xuất hiện nhiều nhất trong s cùng với số lần xuất hiện của ký tự đó * Ý tưởng giải thuật: Các ký tự từ 'A' đến 'Z' có mã ASCII tương ứng từ 65 đến 90. Nên ta sử dụng mảng T gồm 91 phần tử với kiểu chỉ số từ 0 đến 90, kiểu giá trị int để lưu số lần xuất hiện: T[65] …T[90] tương ứng số lần xuất hiện ký tự ‘A’… ‘Z’. Lần theo các giá trị của mảng T trên đoạn từ 65 đến 90 ta được số lượng các ký tự khác nhau (tức số lượng phần tử có giá trị khác 0 trong mảng T) và tìm giá trị lớn nhất của mảng T ta sẽ tìm được ký tự xuất hiện nhiều lần nhất. Về nguyên tắc, ta chỉ cần sử dụng mảng với 26 phần tử kiểu int với chỉ số từ 0 đến 25, khi đó với mỗi ký tự ta chuyển sang mã ASCII rồi dịch chuyển chỉ số 65 đơn vị. Chương trình tham khảo trong Python (cách 1) sau được viết với ý tưởng này. 12
  18. Ngoài ra, trong Python ta có thể sử dụng lệnh count để đếm số lần xuất hiện không chồng lấn của một ký tự hay xâu con bên tròn xâu lớn. Chương trình tham khảo trong Python (cách 2) sau được viết với ý tưởng này. Chương trình tham khảo: Chương trình viết bằng Python (cách 1) Chương trình viết bằng Python (cách 2) Ý tưởng: Thông qua bài tập này nhấn mạnh cách thức sử dụng bảng mã ASCII, cách chuyển đổi qua lại giữa mã thập phân và ký tự, kỹ thuật đếm phân phối trên mảng với kiểu chỉ số tương ứng các ký tự. Ngoài ra, cần nhấn mạnh lệnh khởi tạo toàn bộ phần tử của mảng = 0. Lưu ý thêm lệnh ý nghĩa và cách sử dụng lệnh count trong Python. 2.2.3 Một số ví dụ phương pháp hướng dẫn bài tập sử dụng “Hàm trong Python” trong Python. Để các em biết được chương trình con dạng hàm; biết cách tạo hàm; biết viết chương trình có sử dụng chương trình con tôi chú trọng các hoạt động chính và phương pháp như sau: Hoạt động 1: Tìm hiểu kiến thức cơ bản về hàm: - Mục Tiêu: Biết cú pháp chương trình con dạng hàm trong Python - Nội dung: Đa phần các ngôn ngữ lập trình có hai loại chương trình con là hàm và thủ tục. Nhưng trong Python chỉ sử dụng chương trình con hàm. Hàm trong Python được định nghĩa bằng từ khoá def, theo sau là tên hàm (tên hàm sẽ theo quy tắc đặt tên định danh). Hàm có thể có hoặc không có tham số. Khối lệnh mô tả hàm được viết sau dấu “:” và viết lùi vào, thẳng hàng. Hàm có thể có hoặc không có giá trị trả lại sau tử khoá return. Cú pháp: Cú pháp thiết lập hàm có trả lại giá trị: 13
  19. Def (): Return Cú pháp thiết lập hàm không trả lại giá trị: Def (): Return - Sản phẩm: Hs hoàn thành tìm hiều kiến thức - Tổ chức thực hiện: Phương pháp: Trò chơi ( Tên gọi: trò chơi mảnh ghép) Sử dụng các mảnh ghép bằng giấy cứng, nội dung mỗi mảnh ghép là thành phần để ghép thành cú pháp hàm và các vị dụ về hàm trong Python. Phía sau mỗi mảnh ghép được dán nam châm lá để có thể dán lên trên bảng. Cách thực hiện: Giáo viên yêu cầu học sinh đọc sách và tham gia thực hiện nhiệm vụ. Ghép các mảnh ghép vào đúng yêu cầu giáo viên đã ghi bảng. (Hình ảnh thực tế dạy trên lớp là sản phẩm các em đã hoàn thành) 14
  20. Hoạt động 2: Biết cách tạo hàm: - Mục Tiêu: Biết viết hàm trong Python - Nội dung: Hướng dẫn các bài tập: Bài 1: Viết hàm yêu cầu người dùng nhập họ tên rồi đưa ra lời chào? Bài 2: Viết hàm tính luỹ thừa của 2 số ab (0
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2