SKKN Một số phương pháp tạo hứng thú cho học sinh (Ban khoa học tự nhiên) học ngôn ngữ lập trình C++
Trong dạy học nói chung, trong dạy học Tin học nói riêng, vấn đề đặt ra là cần phải đổi mới chiến lược đào tạo con người. Đặc biệt cần đổi mới phương pháp dạy học theo hướng phát triển thế hệ mới năng động, sáng tạo nhằm tạo ra nguồn lực nội sinh cho mỗi con người đồng thời tạo nên động lực cho sự phát triển kinh tế - xã hội.
Luật giáo dục điều 24.2 đã ghi rõ: “Phương pháp dạy học phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với từng đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn; tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh”.
Mục đích, nội dung và phương pháp luôn có mối quan hệ biện chứng với nhau. Song song với việc nâng cao chất lượng nội dung sách giáo khoa thì việc đổi mới phương pháp dạy học là điều bức thiết.
Môn Tin học cũng giống như nhiều môn học khác ở trường THPT, nó có một vị trí đặc biệt không thể thiếu được trong thời đại hiện nay. Tin học 11 là cơ sở để hình thành kiến thức, kỹ năng lập trình của bộ môn Tin học ở cấp THPT. Ngôn ngữ lập trình pascal được dạy trong chương trình Tin học 11 là một trong những ngôn ngữ quen thuộc đối với nhiều thế hệ học sinh, sinh viên và các nhà lập trình viên. Đó là ngôn ngữ có tính sư phạm khá cao, chính vì vậy ngôn ngữ này được lựa chọn để đưa vào giảng dạy cho học sinh và sinh viên.
Tuy nhiên, ngôn ngữ lập trình Pascal có nhiều hạn chế như: Tính ứng dụng thực tiễn để tạo ra các sản phẩm thương mại thấp, hơn nữa đã nhiều năm qua các nhà phát triển phần mềm đã không nâng cấp và phát triển ngôn ngữ pascal. Ngày nay, có rất nhiều ngôn ngữ lập trình mới hơn pascal ra đời như ngôn ngữ C, C++, Java,. các ngôn ngữ này cung cấp các công cụ cho phép người lập trình tạo ra các sản phẩm có tính ứng dụng
1. Mở Đầu 1.1. Lý do chọn đề tài: Trong dạy học nói chung, trong dạy học Tin học nói riêng, vấn đề đặt ra là cần phải đổi mới chiến lược đào tạo con người. Đặc biệt cần đổi mới phương pháp dạy học theo hướng phát triển thế hệ mới năng động, sáng tạo nhằm tạo ra nguồn lực nội sinh cho mỗi con người đồng thời tạo nên động lực cho sự phát triển kinh tế - xã hội. Luật giáo dục điều 24.2 đã ghi rõ: “Phương pháp dạy học phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với từng đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn; tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh”. Mục đích, nội dung và phương pháp luôn có mối quan hệ biện chứng với nhau. Song song với việc nâng cao chất lượng nội dung sách giáo khoa thì việc đổi mới phương pháp dạy học là điều bức thiết. Môn Tin học cũng giống như nhiều môn học khác ở trường THPT, nó có một vị trí đặc biệt không thể thiếu được trong thời đại hiện nay. Tin học 11 là cơ sở để hình thành kiến thức, kỹ năng lập trình của bộ môn Tin học ở cấp THPT. Ngôn ngữ lập trình pascal được dạy trong chương trình Tin học 11 là một trong những ngôn ngữ quen thuộc đối với nhiều thế hệ học sinh, sinh viên và các nhà lập trình viên. Đó là ngôn ngữ có tính sư phạm khá cao, chính vì vậy ngôn ngữ này được lựa chọn để đưa vào giảng dạy cho học sinh và sinh viên. Tuy nhiên, ngôn ngữ lập trình Pascal có nhiều hạn chế như: Tính ứng dụng thực tiễn để tạo ra các sản phẩm thương mại thấp, hơn nữa đã nhiều năm qua các nhà phát triển phần mềm đã không nâng cấp và phát triển ngôn ngữ pascal. Ngày nay, có rất nhiều ngôn ngữ lập trình mới hơn pascal ra đời như ngôn ngữ C, C++, Java,... các ngôn ngữ này cung cấp các công cụ cho phép người lập trình tạo ra các sản phẩm có tính ứng dụng thực tiễn rất lớn. Trong đó nổi lên là ngôn ngữ lập trình C++ Ngôn ngữ lập trình C++ ra đời vào giai đoạn đầu những năm 80 của thế kỷ 20, và không ngừng được phát triển cho đến tận ngày nay. Đó là ngôn ngữ lập trình được dùng nhiều nhất hiện nay, đa số phần mềm thương mại được viết bằng C++, nó đã giải quyết được vô số những thách thức trong các ngành công nghiệp. C++ là ngôn ngữ chính quyết định trải nghiệm trên các thiết bị di động hiện nay. Ngày nay trên thế giới có hàng chục triệu lập trình viên chuyên nghiệp biết và sử dụng C++ thường xuyên, họ đã tạo ra vô số sản phẩm ứng dụng giúp người dùng khai thác thông tin, điều khiển các thiết bị máy móc một các hiệu quả. Đối với nước ta hiện nay, theo tinh thần chỉ đạo của Đảng và Bộ giáo dục đào tạo, chúng ta cần đào tạo ra những thế hệ học sinh, sinh viên sau khi học xong có thể áp dụng tri thức học được để làm ra các sản phẩm có ích cho xã hội. Đặc biệt đội ngũ công nghệ thông tin cần phải có năng lực tốt để tạo ra các sản phẩm công nghệ hỗ trợ các ngành kinh tế khác cùng phát triển. Do vậy, cần định hướng và tạo điều kiện cho học sinh học những ngôn ngữ lập trình có thế mạnh như C++, và đó cũng là một xu hướng tất yếu của thời đại. Qua quá trình tìm hiểu, Tôi thấy hiện tại chưa có tài liệu nào nghiên cứu sâu vào vấn đề này. Chính vì vậy tôi đã chọn đề tài: "Một số phương pháp tạo hứng thú cho học sinh (Ban khoa học tự nhiên) học ngôn ngữ lập trình C++" làm sáng kiến kinh nghiệm trong năm học 2018-2019 với mục đích được trao đổi cùng các bạn đồng nghiệp các phương pháp mà tôi đã và đang áp dụng rất có hiệu quả tại ngôi trường tôi đang công tác và cũng hy vọng cách làm này sẽ được bổ sung, hoàn thiện và nhân rộng trong Trường THPT Triệu Sơn 3 nói riêng và các trường trên địa bàn của tỉnh Thanh Hóa nói chung. 1.2. Mục đích nghiên cứu: Xác định cơ sở thực tiễn của một số biện pháp nâng cao chất lượng giáo dục đổi mới phương pháp dạy học – lấy người học làm trung tâm. Tìm ra những phương pháp mới dựa trên cơ sở khoa học để truyền thụ kiến thức cho học sinh thêm sinh động và thực tế hơn, đặc biệt đối với chương trình Tin học là phần kiến thức mới và trừu tượng đòi hỏi học sinh phải có sự tư duy, sáng tạo và kỹ năng thực hành trong giải quyết vấn đề cho học sinh trường THPT Triệu Sơn 3. Để nâng cao chất lượng giáo dục của nhà trường, thì phải nâng cao được chất lượng từ các bộ môn, trong đó có môn tin học. Làm thế nào để học sinh lĩnh hội được kiến thức từ nhiều hướng, nhiều khía cạnh khác nhau từ lý thuyết và từ thực tế thực hành học sinh hiểu được kiến thức, có những tư duy, sáng tạo dẫn tới ham học hỏi, yêu thích môn học mà học sinh trường THPT Triệu Sơn 3 đang cần. 1.3. Đối tượng nghiên cứu: Nghiên cứu các giải pháp để tạo hứng thú cho học sinh (Ban khoa học tự nhiên) khi học lập trình C++ tại trường THPT Triệu Sơn 3, nhằm mục đích nâng cao chất lượng giáo dục môn Tin học tại trường. 1.4. Phương pháp nghiên cứu - Phương pháp nghiên cứu xây dựng cơ sở lý thuyết: Tìm đọc, nghiên cứu, phân tích các tài liệu liên quan. Rút kinh nghiệm trong thực tiễn giảng dạy. Từ đó xây dựng cơ sở lý luận của đề tài. - Phương pháp điều tra khảo sát thực tế, thu thập thông tin: Sử dụng phiếu điều tra về hứng thú học tập môn Tin học của học sinh trước và sau khi tác động. Từ đó đề ra những giải pháp phù hợp để nâng cao hứng thú học môn Tin học cho học sinh. - Phương pháp thống kê, xử lý số liệu: Sử dụng phương pháp thống kê để xử lý số liệu, so sánh kết quả thu thập được ở lớp thực nghiệm và lớp đối chứng. 2. Nội dung sáng kiến kinh nghiệm. 2.1. Cơ sở lí luận của sáng kiến kinh nghiệm. Phương pháp dạy học Tin học là nghiên cứu những mối liên hệ có tính quy luật giữa các thành phần của quá trình dạy học môn Tin học, chủ yếu là giữa mục tiêu, nội dung và phương pháp dạy học nhằm nâng cao hiệu quả của việc dạy học môn này theo các mục đích đặt ra. (“Trích Phương pháp dạy học đại cương môn tin học - Nhà xuất bản ĐHSP”). Trên cơ sở nghiên cứu Nghị quyết 29-NQ/TW ngày 04 /11/ 2013 về đổi mới căn bản toàn diện giáo dục và đào tạo đáp ứng yêu cầu công nghiệp hóa, hiện đại hóa trong điều kiện kinh tế thị trường định hướng xã hội chủ nghĩa và hội nhập quốc tế. Căn cứ vào chỉ thị 2919/CT- BGDĐT ngày 10 tháng 08 năm 2018 của Bộ giáo dục và Đào tạo về việc hướng dẫn thực hiện nhiệm vụ năm học 2018 - 2019. Căn cứ vào công văn Số 2077/ QĐ- SGDĐT ngày 30 tháng 08 năm 2018 của Giám đốc Sở giáo dục và Đào tạo Thanh hóa về việc Hướng dẫn thực hiện nhiệm vụ Giáo dục trung học năm học 2018 - 2019. Căn cứ vào chỉ thị năm học 2018 - 2019: Tiếp tục triển khai đồng bộ các giải pháp giáo dục THPT theo mục tiêu phát triển năng lực, phẩm chất học sinh, nâng cao kỹ năng ngoại ngữ, tin học; rèn luyện năng lực vận dụng kiến thức vào thực tiễn; phát triển năng lực sáng tạo và tự học. 2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến. Trường THPT Triệu Sơn 3 có 24 lớp trong đó có 8 lớp khối 11(hơn 300 học sinh). Có 2 lớp học sinh học Ban khoa học tự nhiên, các em có tư duy tốt đối với các môn khoa học tự nhiên, và đa số các em đều có xu hướng học các ngành nghề liên quan đến công nghệ thông tin trong tương lai. Chính vì vậy, việc học sinh tiếp cận ngôn ngữ lập trình cũ như pascal sẽ làm cho các em cảm thấy nhàm chán thiếu hứng thú bởi thực tế hiện này ngôn ngữ lập trình pascal rất ít được sử dụng như các báo điện tử đã đề cập: https://thanhnien.vn/giao-duc/viet-nam-van-dang-day-cai-the-gioi-khong-con-day. PGS-TS Phạm Thế Bảo, giảng viên khoa Công nghệ thông tin Trường ĐH Sài Gòn, chia sẻ nhiều tâm tư về việc dạy học tin học trong trường phổ thông hiện nay. Ông Bảo nói: "Môt số giáo viên dạy tin học trường phổ thông cho tôi biết họ đang dạy môn ngôn ngữ lập trình Pascal, trong khi trên thế giới không còn nơi nào dạy chương trình này” https://techtalk.vn/pascal-cho-chuong-trinh-hoc-cap-3-hieu-qua-hay-loi-thoi.html https://thanhnien.vn/giao-duc/hoc-nhung-dieu-khong-ai-su-dung-510144.html Theo điều tra đầu năm lớp 11, thì 90% học sinh ban khoa học tự nhiên trong 2 lớp 11E4 và 11E5 đã tiếp cận với ngôn ngữ pascal ở cấp 2 trong chương trình Tin học 8. Do vậy, khi đọc chương trình tin học 11 nói về lập trình pascal rất nhiều em đã hỏi tôi: “Thưa cô học lập trình pascal để làm gì nữa ạ?....”. Bên cạnh đó các em coi môn Tin học là môn phụ, nội dung kiến thức lại khá mới mẻ, khó tiếp thu dẫn đến các em thấy nhàm chán và lơ là với môn học. Vì vậy việc tạo hứng thú trong các giờ học môn Tin học để các em thấy yêu thích môn học và thấy được vai trò của môn học trong ứng dụng thực tiễn là việc làm rất cần thiết. Theo kết quả học năm học 2017 -2018, điểm tổng kết môn Tin học ở một số lớp mũi nhọn của trường như sau: Lớp Sĩ số Giỏi Khá Trung bình Yếu – Kém SL % SL % SL % SL % 11D3 45 2 4.4 14 31.2 27 60 2 4.4 11D4 45 0 0 12 26.7 29 64.4 4 8.9 Tổng 90 2 2.2 26 28.8 56 62.2 6 6.8 Theo kết quả khảo sát đầu năm 2018 -2019, khi mới học môn Tin học 11 về tư duy thuật toán của một số lớp mũi nhọn của trường như sau: Lớp Sĩ số Giỏi Khá Trung bình Yếu - Kém SL % SL % SL % SL % 11E4 42 1 1.97 16 31.4 30 58.8 4 7.83 11E5 40 0 0 4 8.7 37 80.4 5 10.9 Tổng 82 1 1.21 20 23.4 67 81.7 9 6.31 Qua số liệu thống kê trên cho thấy rằng tỉ lệ học lực khá - giỏi ở các lớp là tương đối thấp (lớp 11D3 và 11D4 năm 2017-2018 là 28.2%, cả 2 lớp mũi nhọn năm 2018-2019 là 24,61%). Bên cạnh đó tỉ lệ học lực yếu – kém còn tương đối cao (Lớp 11D3 và 11D4 năm học 2017 - 2018 là 6,8 %, cả 2 lớp mũi năm 2018- 2019 là 6.31%). Do đó đối với môn Tin học nói chung và môn Tin học 11 nói riêng, đặc biệt các lớp chọn Ban khoa học tự nhiên này các em đều có định hướng họ đại học và học các ngành liên quan đến công nghệ thông tin trong tương lai. Để các em có niềm đam mê, hứng thú và học tốt môn học là một nhiệm vụ tương đối khó khăn và thách thức đối với các thầy cô giáo được trực tiếp phân công giảng dạy ở các lớp đó. Vì vậy, yêu cầu được đặt ra là bên cạnh việc đổi mới phương pháp dạy học, trong mỗi bài dạy, mỗi tiết học, mỗi phần học giáo viên cần tìm ra các giải pháp tạo hứng thú cho học sinh, để học sinh dễ hiểu và yêu thích môn học, say mê môn học tránh học đối phó, học vẹt, từ đó các em sẽ học hiệu quả hơn. 2.3. Các giải pháp đã áp dụng để giải quyết vấn đề. 2.3.1. Giải pháp thứ nhất: Tạo hứng thú bằng các tác động tâm lý thông qua các câu chuyện về lập trình và các diễn đàn dạy và học lập trình C++ Để học sinh học tốt môn học, thì ngay từ ban đầu giáo viên cần lôi cuốn học sinh, tạo hứng thú cho học sinh qua các bài giảng, thông qua các câu chuyện và tình huống có vấn đề kích thích khả năng tìm tòi sáng tạo của học sinh. Ngay ban đầu khi giảng dạy về lập trình, để các em hứng thú hơn trong học tập thì ngoài những kiến thức và bài giảng sinh động, tôi thường lồng trong các tiết dạy những câu chuyện liên quan đến lập trình. Thông qua các câu chuyện về các tấm gương tin học trẻ nhen nhóm hứng thú và tình yêu dành cho công nghệ thông tin, đam mê lập trình và góp phần định hướng nghề nghiệp tương lai cho các em. Ví dụ 1: Tấm gương cậu bé lớp 6 tự học ngôn ngữ lập trình và giành nhiều giải thưởng ( Từ năm lớp 2, Võ Nguyễn Minh Triết (Trường THCS Trần Hưng Đạo, TP. Quảng Ngãi) bắt đầu làm quen với các ngôn ngữ lập trình và mày mò làm chương trình "Đường lên đỉnh Olympia". Bước sang năm lớp 6, Triết vượt qua nhiều đàn anh để giành giải Nhì trong Hội thi Tin học trẻ tỉnh Quảng Ngãi. Ví dụ 2: Không có bằng cấp 3 lẫn đại học, tôi đã trở thành kỹ sư phần mềm ở Facebook như thế nào? (HTTPS://EHKOO.COM/BAI-VIET/EVAN-PRIESTLEY-FACEBOOK) Đây là câu chuyện của Evan Priestley, một lập trình viên thậm chí không có cả bằng tốt nghiệp phổ thông lẫn đại học, đã đảm nhiệm vị trí kĩ sư phần mềm tại Facebook từ 2007 đến 2011 Ví dụ 3: Đến từ vùng quê Quảng Ngãi đầy nắng gió, chàng trai sinh năm 96 - Lê Minh Hoàng hiện đang là sinh viên tại Học viện Kỹ thuật mật mã, đồng thời cũng là nhà đồng sáng lập hai doanh nghiệp về Truyền thông – Digital Marketing uy tín hàng đầu hiện nay là công ty DigiPublic và Brand4U.(https://tuoitre.vn/le-minh-hoang-chang-sinh-vien-tre-lam-chu-hai-doanh nghiep.htm ) Thời đại CNTT bùng nổ, các em tiếp cận mạng máy tính rất sớm, giáo viên nên lôi cuốn các em vào các diễn đàn tin học, tham gia là thành viên của các diễn đàn, trao đổi giao lưu, học hỏi giúp các em yêu thích môn học và học tập hiệu quả hơn. Ví dụ 4: Lồng ghép trong các bài học các diễn đàn tin học hay như: Diễn đàn về lập trình hay được nhiều học sinh, sinh viên học lập trình tham gia. Trên diễn đàn có nhiều tài liệu về C++ hay và cơ bản có thể giúp các em tự học Diễn đàn học lập trình C++ cơ bản được đông đảo các bạn tham gia với các bài tập lập trình C++ từ cơ bản đến nâng cao. Trên diễn đàn các em có thể cùng trao đổi các kiến thức bổ ích. 2.3.2. Giải pháp thứ 2. Tạo hứng thú cho học sinh thông qua việc sử dụng phần mềm Crocodile ICT để mô tả thuật toán giúp học sinh hiểu rõ bản chất của thuật toán trước khi áp dụng ngôn ngữ C++ để lập trình. Bởi rõ ràng chúng ta đã biết, khi lập trình cho một bài toán thì việc các em tiếp cận đầu tiên đó là thuật toán của bài toán đó. Và tôi chọn phần mềm Crocodile ICT để minh họa lại các bước thực hiện thuật toán giúp các em hiểu rõ về hoạt động của thuật toán. Khi đã hiểu rõ thuật toán của bài toán rồi thì việc thể hiện lại thuật toán bằng ngôn ngữ lập trình trở nên dễ dàng hơn. Trong quá trình dạy Tin học 11 đặc biệt cho các lớp ban khoa học tự nhiên, tôi chú trọng rất nhiều trong việc hình thành tư duy giải thuật cho học sinh, giúp các em tự tin hơn khi gặp những bài toán tương tự và tìm ra giải thuật phù hợp. Đây chính là nền tảng giúp các em tự tin khi tiếp cận những chương trình lập trình khó hơn trong tương lai. Ví dụ 1: Khi dạy phần cấu trúc rẽ nhánh và lặp. Tôi lựa chọn các bài tập để mô phỏng thuật toán trên phần mềm giúp các em hiểu rõ bản chất của rẽ nhánh và lặp trong thuật toán. Một số bài tập đơn giản như sau: Bài tập 1: Giải phương trình bậc nhất ax + b = 0 Sơ đồ thuật toán trên phần mềm Crocodile ICT: Bài tập 2: Giải phương trình bậc 2 Sơ đồ thuật toán trên phần mềm Crocodile ICT: Để kiểm chứng tính đúng đắn của thuật toán giải phương trình bậc hai ax2 + bx + c = 0, ta có thể sử dụng các bộ Input như sau: Với a = 1, b = -5, c = 6 có biệt số Delta > 0, Phương trình có hai nghiệm phân biệt là x1 = 3, x2 =2. Với a = 1, b = -4, c = 4 có biệt số Delta = 0, Phương trình có nghiệm kép Với a = 1, b = 4, c = 8 có biệt số Delta < 0, Phương trình vô nghiệm Bài tập 3: Với a là số nguyên và a>2, viết thuật toán tính tổng sau: S= 1/a+1/(a+1) +..+1/(a+100). a. Xác định bài toán - Input: Nhập vào số nguyên a với a>2 - Output: Tổng S b. Ý tưởng - Khởi tạo giá trị ban đầu cho s=1/a. - Tiếp theo cộng vào tổng S một giá trị 1/(a+N) (với N nhận giá trị từ 1,2.,100). c. Thuật toán - Bước 1: S←1/a; N←0; - Bước 2: N←N+1; - Bước 3: Nếu N>100 thì chuyển sang bước 5 - Bước 4: S←S+1/(a+N) rồi chuyển sang bước 2 - Bước 5: Đưa tổng S ra màn hình, kết thúc. Mô phỏng thuật toán bằng phần mềm Crocodile ICT: Bài tập 4 : Với a là số nguyên và a>2, viết thuật toán tính tổng sau: S= 1/a+1/(a+1) +..+1/(a+N)+..cho đến khi 1/(a+N) < 0.0001 a. Xác định bài toán - Input: Nhập vào số nguyên a với a >2 - Output: Tổng S b. Ý tưởng Khởi tạo giá trị ban đầu cho s = 1/a. Tiếp theo cộng vào tổng S một giá trị 1/(a+N) (với N nhận giá trị từ 1,2.) đến khi thỏa mãn điều kiện 1/(a+N) < 0.0001 c. Thuật toán Bước 1: S←1/a; N←0; Bước 2: Nếu 1/(a+N) < 0.0001 thì chuyển sang bước 5 Bước 3: N←N+1; Bước 4: S←S+1/(a+N) rồi chuyển sang bước 2 Bước 5: Đưa tổng S ra màn hình, kết thúc. Mô phỏng thuật toán bằng phần mềm Crocodile ICT: Khi sử dụng phần mềm này để thiết kế thuật toán, Tôi nhận thấy học sinh hiểu rõ hơn bản chất của các thuật toán và quá trình giải các bài toán trên máy tính. Từ đó phát triển tư duy lập trình của học sinh và các em có thể viết được các chương trình thực hiện trên máy tính mà ít bị lỗi về thuật toán. 2.3.3. Giải pháp 3: Tạo hứng thú cho học sinh học lập trình C++ qua sự liên hệ so sánh với học lập trình pascal. Với những học sinh học ban khoa học tự nhiên, các em đều có xu hướng chọn ngành nghề liên quan đến công nghệ thông tin trong tương lai, do vậy các em rất mong muốn tiếp cận được những ngôn ngữ lập trình mà các em sẽ gặp trong những năm tháng học chuyên nghiệp. Chính vì vậy, trong quá trình dạy chương trình tin học 11, tôi đã liên hệ so sánh ngôn ngữ lập trình pascal với ngôn ngữ lập trình C++ để giúp các em hình thành kiến thức một cách dễ dàng hơn. Qua các bài học và các ví dụ, tôi nhận thấy các em khá hứng thú khám phá cái mới và tiếp cận khá nhanh với ngôn ngữ lập trình mới này. Sau khi thực hiện giải pháp 2, tôi kết hợp hướng dẫn học sinh thể hiện thuật toán qua ngôn ngữ lập trình C++ trên phần mềm Dev-C++. Đã hiểu rõ bản chất của thuật toán, do vậy khi cài đặt bằng ngôn ngữ các em tỏ ra khá hứng thú và hăng say thực hiện. Sau đây là một số ví dụ: Ví dụ 1: Khi dạy phần Câu lệnh rẽ nhánh dạng thiếu tôi lập bảng so sánh để học sinh dễ liên hệ giữa ngôn ngữ pascal mà các em đã làm quen và ngôn ngữ lập trình C++ như sau: Trong Pascal Trong C++ If then ; Ví dụ: If a > b then max := a; If { ;} Ví dụ: If (a > b) {max := a;} Bài tập 1: Cho số nguyên N. Hãy tính giá trị tuyệt đối của N. Trong Pascal Trong C++ Program GT_tuyetdoi; Uses Crt; Var n : integer; Begin Write('Nhap gia tri n:'); readln(n); if n < 0 then n := n*(-1); writeln('Gia tri tuyet doi cua n la:',n); readln end. #include using namespace std; int main() { int n; cout<<"Nhap gia tri n:"<<endl; cin>>n; if (n<0) {n = (-1)*n;} cout<<"Gia tri tuyet doi cua n la:"<<n; } Ví dụ 2. Câu lệnh rẽ nhánh dạng đủ: Trong Pascal Trong C++ If then Else ; Ví dụ 1: If a > b then max := a else max := b; - Trong đó: + Biểu thức điều kiện là biểu thức logic + Nếu biểu thức điều kiện đúng thì câu lệnh 1 sẽ được thực hiện ngược lại câu lệnh 2 sẽ được thực hiện + Câu lệnh 1, câu lệnh 2 nêu ở trên là một câu lệnh của pascal; Nếu là một khối lệnh thì phải đặt trong cặp từ khóa Begin và end để tạo thành câu lệnh ghép. - Hoạt động: Điều kiện được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện. If { ;} Else {;} Ví dụ 1: If (a > b) {max := a;} Else {max := b;} - Trong đó: + Biểu thức điều kiện là biểu thức logic + Nếu biểu thức điều kiện đúng thì câu lệnh 1 sẽ được thực hiện ngược lại câu lệnh 2 sẽ được thực hiện + Câu lệnh 1, câu lệnh 2 nêu ở trên có thể là 1 lệnh hoặc một khối lệnh. - Hoạt động: Điều kiện được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện. Lưu ý: Như vậy, với cặp dấu {} trong câu lệnh rẽ nhánh ở ngôn ngữ C++ tương đương với cặp Begin - end; (câu lệnh ghép) trong pascal. Bài tập 2: Giải phương trình bậc nhất ax + b = 0 Chương trình viết bằng ngôn ngữ Pascal Chương trình viết bằng ngôn ngữ C++ Program PT_bacnhat; Var a,b : integer; x : real; Begin clrscr; write('Nhap cac he so a va b: '); readln(a,b); if a = 0 then if b = 0 then writeln('PT vo so nghiem') else writeln('PT vo nghiem') else begin x := -b/a; writeln('PT co nghiem: ', x:8:1); end; readln end. #include using namespace std; int main() { float a,b,x; cout<<"Nhap he so a,b: "<<endl; cin>>a>>b; if (a==0) if (b==0) {cout<<"PT vo so nghiem";} else {cout<<"PT vo nghiem";} else { x = -b/a; cout<<"PT co nghiem "<<x; } } Hình ảnh minh họa khi viết và chạy chương trình trên Dev-C++ Bài tập 3: Chương trình tìm nghiệm thực của phương trình bậc 2: ax2 +bx+c=0 Chương trình viết bằng ngôn ngữ Pascal Chương trình viết bằng ngôn ngữ C++ Program GPT_bachai; Uses crt; var a,b,c,x1,x2,D,x: real; Begin write('Nhap he so a,b,c: '); readln(a,b,c); D := b*b - 4*a*c; if D < 0 then writeln('PT VN') else if D = 0 then begin x := -b/
Tài liệu đính kèm:
- skkn_mot_so_phuong_phap_tao_hung_thu_cho_hoc_sinh_ban_khoa_h.doc