Sáng kiến kinh nghiệm THPT: Phương pháp giảng dạy ngôn ngữ lập trình C++ cho đội tuyển học sinh giỏi Tin học THPT
lượt xem 14
download
Sáng kiến kinh nghiệm THPT "Phương pháp giảng dạy ngôn ngữ lập trình C++ cho đội tuyển học sinh giỏi Tin học THPT" với mục tiêu xây dựng phương pháp giảng dạy ngôn ngữ lập trình C++ dựa vào một ngôn ngữ đã biết đó là ngôn ngữ lập trình Pascal. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Sáng kiến kinh nghiệm THPT: Phương pháp giảng dạy ngôn ngữ lập trình C++ cho đội tuyển học sinh giỏi Tin học THPT
- MỤC LỤC MỤC LỤC................................................................................................. 1 PHẦN MỞ ĐẦU........................................................................................ 2 1. Lý do chọn đề tài................................................................................................................2 2. Mục tiêu nghiêu cứu...........................................................................................................2 3. Đối tượng nghiêncứu..........................................................................................................3 4. Phương pháp nghiên cứu....................................................................................................3 5. Phạm vi nghiên cứu............................................................................................................3 PHẦN NỘI DUNG..................................................................................... 4 Chương I. CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN................................................................... 4 1.1.Ngôn ngữ lập trình C++............................................................... 4 1.2.Các phương pháp giảng dạy ngôn ngữ lập trình.........................4 1.2.1.Phương pháp kết hợp giữa lý thuyết và thực hành. .................4 1.2.2.Phương pháp dạy ngôn ngữ lập trình dựa trên sự tương quan và tính kế thừa................................................................................... 4 1.2.3.Phương pháp bàn tay nặn bột.................................................. 5 1.2.4.Phương pháp hoạt động nhóm và dạy học theo dự án ............5 1.3. Dạy lập trình cho đội tuyển học sinh giỏi ở trường THPT hiện nay..................................................................................................... 5 1.4. Tiểu kết chương 1...................................................................... 6 Chương 2. GIẢNG DẠY NGÔN NGỮ LẬP TRÌNH C++ DỰA TRÊN SỰ TƯƠNG QUAN VÀ KẾ THỪA...........................................................................................................7 2.1. Sự tương quan giữa ngôn ngữ Pascal và ngôn ngữ C++. .........7 2.2. Hướng dẫn giảng dạy một số phần cụ thể...............................16 Trong chương này tác giả đã cố gắng trình bày những điểm tương đồng của 2 NNLT từ đó tìm cách chuyển đổi dựa trên bản mô tả sự tương đồng thông qua các nội dung cụ thể. ....19 Trong quá trình giảng dạy bên cạnh phương pháp dựa trên sự tương quan còn áp dụng linh hoạt các phương pháp khác khi giảng dạy NNLT sao cho có hiệu quả. ............................. 19 Chương 3. KẾT QUẢ ÁP DỤNG........................................................................................20 PHẦN KẾT LUẬN................................................................................... 21 1. Kết quả đạt được.............................................................................................................. 21 2. Hạn chế của đề tài ........................................................................................................... 21 3. Hướng phát triển và kiến nghị..........................................................................................21 DANH MỤC CÁC CHỮ VIẾT TẮT HS Học sinh GV Giáo viên HSG Học sinh giỏi CNTT-TT Công nghệ thông tin và truyền thông NNLT Ngôn ngữ lập trình SKKN Sáng kiến kinh nghiệm GDPT Giáo dục phổ thông 1
- PHẦN MỞ ĐẦU 1. Lý do chọn đề tài Ứng dụng của tin học trong giai đoạn hiện nay đã trở thành một phần tất yếu của đời sống xã hội hiện đại. Vì có vai trò quan trọng như vậy nên tất cả các nước trên thế giới cũng như nước ta đều có những chính sách đầu tư cho tin học để không bị lạc hậu về công nghệ. Ngày nay tin học không dừng lại ở mục tiêu ứng dụng các sản phẩm phần mềm vào các lĩnh vực mà tin học phải trở thành một thứ hàng hóa, không chỉ sản xuất trong nước mà có thể xuất khẩu đi các nước. Bởi vậy, bộ môn tin học trong nhà trường THPT, đặc biệt là các kiến thức lập trình đang chiếm một vị trí rất quan trọng. Bên cạnh đó, với nhiệm vụ bồi dưỡng nhân tài mà Đảng, nhà nước ta đã giao phó cho giáo dục thì công tác bồi dưỡng học sinh giỏi đã trở thành một nhiệm vụ quan trọng trong các nhà trường. Có thể nói chất lượng học sinh giỏi thể hiện chất lượng chiều sâu của mỗi nhà trường trong quá trình dạy học. Trong những năm gần đây Bộ giáo dục và đào tạo đang có những quyết sách thay đổi mạnh mẽ về chương trình giáo dục, từ giáo dục tiếp cận nội dung nay chú trọng tiếp cận năng lực người học, nghĩa là từ chỗ quan tâm đến việc HS học được cái gì đến chỗ quan tâm HS vận dụng được cái gì qua việc học. Điều này đòi hỏi phương pháp dạy học của GV cũng phải thay đổi theo, người giáo viên phải áp dụng được các phương pháp, kĩ thuật tích cực để xây dựng nên các chuyên đề nhằm giúp HS trở thành chủ thể của quá trình nhận thức, đảm bảo kết quả đầu ra theo yêu cầu. Nhận thức được từ những quan điểm trên nên trong quá quá trình dạy học của mình, trong những năm qua tôi luôn coi nhiệm vụ bồi dưỡng HSG là một nhiệm vụ trọng tâm. Mặt khác, qua tìm hiểu thực tế tại các trường THPT cho thấy, ngoại trừ các trường chuyên ở các trường THPT NNLT đang được sử dụng chủ yếu để dạy cho đội tuyển HSG tin học là ngôn ngữ Pascal. Tuy nhiên trong các kỳ thi học sinh giỏi Tỉnh, Quốc gia thì ngôn ngữ C++ là ngôn ngữ đang được sử dụng thay thế dần ngôn ngữ lập trình Pascal. Vì vậy để các em học sinh trong đội tuyển HSG Tin học của nhà trường tiếp cận NNLT C++ là một vấn đề rất cấp thiết. Đây là một tiền đề cho các em nếu được chọn vào đội tuyển HSG quốc gia thì không phải bỡ ngỡ để học 1 NNLT mới và đây cũng là 1 thuận lợi cho các em học ngành CNTT ở bậc đại học vì vậy sẽ dễ tạo hứng thú học tập cho các em hơn. Mặt khác, ngôn ngữ lập trình C++ là một ngôn ngữ mạnh, là một ngôn ngữ được các nhà tin học chuyên nghiệp chính thống cũng như các nhà lập trình nghiệp dư sử dụng để lập trình hệ thống, lập trình ứng dụng...Vì vậy việc học C ++ là 1 nhu cầu tất yếu, nhất là các kỹ sư, sinh viên chuyên ngành khoa học và kỹ thuật khác và các học sinh phổ thông. Đặc biệt có rất nhiều trang web thi trực tuyến để luyện tập, các chương trình tham khảo viết bằng C++ trên internet cũng có rất nhiều. Từ việc thấy được tầm quan trọng của ngôn ngữ lập trình C ++ để giúp giáo viên và cả học sinh nghiên cứu, học ngôn ngữ lập trình này, tôi chọn đề tài: “Phương pháp giảng dạy ngôn ngữ lập trình C++ cho đội tuyển học sinh giỏi tin học THPT” 2. Mục tiêu nghiêu cứu Mục tiêu chính của đề tài này là: - Xây dựng phương pháp giảng dạy ngôn ngữ lập trình C ++ dựa vào một ngôn ngữ đã biết đó là NNLT Pascal. - Nghiên cứu sự tương đồng của hai ngôn ngữ này giúp cho việc học tập NNLT ++ C được thuận lợi hơn. 2
- 3. Đối tượng nghiêncứu - Các tài liệu về các phương pháp dạy lập trình. - Các tài liệu về NNLT Pascal và NNLT C++. - Đối tượng khảo sát thực nghiệm là các học sinh thuộc đội tuyển HSG tin học của trường. 4. Phương pháp nghiên cứu - Phương pháp nghiên cứu lý luận. - Phương pháp phân tích, hệ thống hóa tài liệu, tổng kết kinh nghiệm. 5. Phạm vi nghiên cứu - Đề tài chỉ tập tập trung chủ yếu vào việc tìm ra sự tương đồng giữa hai NNLT là NNLT Pascal và NNLT C++ từ đó triển khai vào việc giảng dạy một số nội dung liên quan. Mỗi nội dung sẽ có các ví dụ được viết theo các 2 NNLT này. - Đề tài còn chỉ ra một số phương pháp giảng dạy NNLT sao cho có hiệu quả. - Kế hoạch nghiên cứu: từ tháng 5/2017 đến 5/2019. + Lên kế hoạch, nghiên cứu cơ sở lý luận và thực tiễn của đề tài, soạn hệ thống câu hỏi và bài tập cho chuyên đề liên quan: 5/2017 đến 10/2017 + Tiến hành dạy cho HS giỏi: Năm học 2017-2018: Triển khai từ tháng 10/2017 đến tháng 9/2018 Năm học 2018-2019: Triển khai từ tháng 10/2018 đến tháng 4/2019. + Tiến hành thực nghiệm và đánh giá kết quả: được tiến hành vào 2 đợt cuối các tháng 9/2018 và cuối tháng 4/2019. - Hoàn thành SKKN: 05/2019. 6. Cấu trúc của sáng kiến kinh nghiệm Gồm 3 phần - Phần mở đầu. - Phần nội dung gồm ba chương: + Chương I: Cơ sở lý luận và thực tiễn + Chương II: Giảng dạy NNLT C++ dựa trên sự tương quan và kế thừa + Chương IIII: Kết quả áp dụng. - Phần kết luận 3
- PHẦN NỘI DUNG Chương I. CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN 1.1. Ngôn ngữ lập trình C++ C++ là một ngôn ngữ lập trình đa dụng dùng để lập trình cho các hệ thống lớn, lập trình hệ điều hành cho đến các ứng dụng, game hay thậm chí ta có thể dùng C ++ để lập trình web. Với C++ ta có thể thấy được sự mềm dẻo qua việc nó hỗ trợ cho ta các tính năng cao cấp như lập trình hướng đối tượng, cung cấp cho ta khả năng can thiệp sâu vào bên trong bộ nhớ máy tính thông qua con trỏ. C++ là ngôn ngữ biên dịch – tùy thuộc vào các hệ thống khác nhau mà ta có thể có các trình biên dịch tương ứng Ngôn ngữ lập trình C++ này là một trong 5 ngôn ngữ lập trình phổ biến nhất hiện nay, nó được sử dụng bởi hàng triệu lập trình viên trên khắp thế giới. Những điểm mạnh của C++ có thể kể đến như: - Ngôn ngữ C++ là ngôn ngữ cấp trung. Nó có sự kết hợp các tính năng của cả 2 ngôn ngữ cấp cao và thấp. C++ có thể sử dụng cho lập trình để giúp người dùng có thể thâm nhập được vào phần cứng. Hỗ trợ các chức năng của ngôn ngữ lập trình bậc cao. - C++ là ngôn ngữ lập trình có cấu trúc. Nó cho phép một chương trình phức tạp được chia thành các chương trình đơn giản nhỏ hơn nó. Đó được gọi là các hàm. Nó còn cho phép di chuyển dữ liệu dễ dàng giữa các hàm. Mà bạn vẫn thường xuyên thấy ở các ngôn ngữ lập trình hiện đại ngày nay. - C++ là NNLT thực hiện với nhiều tính năng khác nhau. Nó cho phép người dùng truy cập trực tiếp vào các API phần cứng của máy, sự xuất hiện của phiên dịch. Đặc biệt là sử dụng tài nguyên của máy và cấp phát bộ nhớ. Đó là sự tối ưu của các ứng dụng và trình điều khiển các hệ thống nhúng. - C++ là NNLT vô cùng hiệu quả và tiện dụng. Nó được sử dụng cho các hệ thống. Nó nằm trong hệ thống lớn của hệ điều hành Windows, Unix,… - C++ là ngôn ngữ lập trình đa mục đích. Có thể ứng dụng được trực tiếp vào các ứng dụng của doanh nghiệp, game, đồ họa,… 1.2. Các phương pháp giảng dạy ngôn ngữ lập trình 1.2.1. Phương pháp kết hợp giữa lý thuyết và thực hành. Đây là phương pháp truyền thống khi dạy NNLT, nó là sự kết hợp giữa nhiều phương pháp [8]. - Phương pháp thuyết trình kết hợp nêu vấn đề. - Phương pháp đặt và giải quyết các tình huống có vấn đề - Phương pháp động não. Quy trình thực hiện mỗi môđun thường theo các bước sau: - Bước 1: Nêu và trình bày lý thuyết về vấn đề cần nghiên cứu - Bước 2: Nêu và giải các ví dụ liên quan đến lý thuyết - Bước 3: Làm các bài tập khái quát - Bước 4: GV Giao bài tập về nhà - Bước 5: HS thực hành lại ví dụ để hiểu lý thuyết, hoàn thành bài tập về nhà, hiểu cách thức thực hiện chuyển sang modun mới 1.2.2. Phương pháp dạy ngôn ngữ lập trình dựa trên sự tương quan và tính kế thừa Đây là phương pháp dựa trên lý thuyết của việc học ngoại ngữ, nếu như ta học được một ngoại ngữ rồi thì các ngoại ngữ tiếp theo cách học sẽ hoàn toàn tương tự và việc học sẽ dễ dàng hơn. 4
- Vấn đề cốt yếu của lập trình cũng chính là công thức Cấu trúc dữ liệu + Giải thuật = Chương trình Vì vậy chỉ cần biết cách tổ chức dữ liệu và có giải thuật thì chương trình viết bằng NNLT nào cũng sẽ thực hiện dễ dàng. Các NNLT chỉ khác nhau về từ khóa cũng như cú pháp còn các cấu trúc như rẽ nhánh, lặp, cách thức thực hiện về ý nghĩa thì hoàn toàn giống nhau [8]. Lợi dụng tính chất này, ta sẽ đi so sánh sự tương đồng của các NNLT (ví dụ Pascal và C++) để có thể phát triển ngôn ngữ mới từ một ngôn ngữ đã biết. Công việc này cũng sẽ tiến hành theo các bước: - Bước 1: Xác định vấn đề lý thuyết liên quan và câu hỏi cần giải quyết. - Bước 2: Xây dựng thuật giải. - Bước 3: Giải bằng ngôn ngữ đã biết. - Bước 4: Chuyển đổi sang ngôn ngữ mới dựa vào sự tương đồng Quy trình này sẽ thực hiện theo cấp độ tăng dần, có thể các chương trình đầu sẽ viết ngôn ngữ cũ sau đó sẽ viết theo kiểu tựa ngôn ngữ cũ và phát triển lên thành ngôn ngữ mới. Sau khi đã thành thục ngôn ngữ mới thì lúc đó tính tương đồng đã hoàn thành được “sứ mạng” ban đầu mà nó đề ra đó là học NNLT mới từ sự kế thừa NNLT cũ đã biết trước đây. 1.2.3. Phương pháp bàn tay nặn bột Trong dạy học các bộ môn cũng như dạy học NNLT. Các kiến nội dung kiến thức sẽ được tìm hiểu thông qua kết quả ở Output. Học sinh tìm tòi về thuật toán, viết chương trình, chỉnh sửa lỗi để cho ra kết quả đúng như kết quả được mô tả. Từ đó lĩnh hội tri thức mới [8]. Quá trình này thường thực hiện theo các bước: - Bước 1: Tình huống xuất phát và câu hỏi nêu vấn đề. - Bước 2: Bộc lộ quan niệm ban đầu của học sinh. - Bước 3: Đề xuất câu hỏi hay giả thuyết và thiết kế phương án thực nghiệm. 3.1 Đề xuất câu hỏi. 3.2 Đề xuất phương án thực nghiệm nghiên cứu. - Bước 4: Tiến hành thực nghiệm tìm tòi – nghiên cứu. - Bước 5: Kết luận kiến thức mới 1.2.4. Phương pháp hoạt động nhóm và dạy học theo dự án Giải quyết các vấn đề phát sinh từ thực tiễn. Ở nội dung này, giáo viên yêu cầu HS thực hiện một dự án học tập mà trong đó bài toán đưa ra bắt buộc HS phải vận dụng thuật toán, NNLT theo yêu cầu mới có thể giải quyết được [8]. Thông thường phương pháp này đòi hỏi công việc hoạt động nhóm rất nhiều và sau khi học sinh đã nắm khá chắc về lý thuyết cũng như thực hành trên một NNLT cụ thể. Quá trình này thực hiện theo 3 bước: - Bước 1: GV giao dự án - Bước 2: Triển khai thực hiện dự án - Bước 3: Đánh giá dự án. 1.3. Dạy lập trình cho đội tuyển học sinh giỏi ở trường THPT hiện nay Qua thực tế giảng dạy đội tuyển cũng như tìm hiểu về việc dạy NNLT của các trường THPT trên địa bàn tỉnh cho thấy có rất ít trường thực hiện dạy NNLT C ++. Các trường có tổ chức dạy đều áp dụng theo phương pháp kết hợp giữa lý thuyết và thực hành, chưa chú trọng đến tính kế thừa các NNLT đã được học. 5
- Về ý thức chuyển đổi từ NNLT Pascal sang NNLT C ++ trong đội ngũ giáo viên tin học cũng đã được rất nhiều thầy cô quan tâm tuy nhiên do môi trường áp dụng còn ít và một phần cũng do kiến thức về ngôn ngữ lập trình C ++ có nhiều điểm mới hơn so với NNLT Pascal (ngôn ngữ truyền thống lâu nay) nên việc chuyển đổi vẫn chưa áp dụng ở nhiều trường. 1.4. Tiểu kết chương 1 Có rất nhiều phương pháp để giảng dạy ngôn ngữ lập trình C ++ hiện nay. Việc sử dụng các phương pháp tùy theo đối tượng giảng dạy cũng như cách thức truyền thụ kiến thức của người giáo viên. Trong đề tài này, tôi tập trung làm rõ phương pháp giảng dạy ngôn ngữ lập trình ++ C dựa trên sự tương quan và kế thừa, đó chính là việc nghiên cứu sự tương đồng giữa hai NNLT là C++ và Pascal làm cơ sở giảng dạy ngôn ngữ C++ cho đội tuyển HSG tin học của nhà trường THPT hiện nay. 6
- Chương 2. GIẢNG DẠY NGÔN NGỮ LẬP TRÌNH C++ DỰA TRÊN SỰ TƯƠNG QUAN VÀ KẾ THỪA 2.1. Sự tương quan giữa ngôn ngữ Pascal và ngôn ngữ C++. - Về đặc điểm ngôn ngữ + NNLT Pascal: ngữ pháp, ngữ nghĩa đơn giản và có tính logic; cấu trúc chương trình rõ ràng, dễ hiểu; dễ sửa chữa, cải tiến. + NNLT C++: Bộ lệnh phù hợp với phương pháp lập trình cấu trúc, Kiểu dữ liệu phong phú, một chương trình C bao giờ cũng gồm một hoặc nhiều hàm và các hàm rời nhau. Là ngôn ngữ linh động về cú pháp, chấp nhận nhiều cách thể hiện chương trình. Có thế mạnh trong xử lý dữ liệu số, văn bản, cơ sở dữ liệu Để tìm hiểu sự tương đồng giữa NNLT Pascal và C++ ta lập bảng so sánh sau: Tên TT Pascal [2],[4],[5],[7] C++ [1],[3] Ý nghĩa Begin { ... ... Phần End, }. thân 1 Ví dụ: Ví du: chương Begin { trình Writeln(‘Xin chao:’); count
- Hàm xóa các ký tự 7 + ) Clreol; + ) clreol(); nằm bên phải con trỏ. Lời ghi + ) { phần ghi chú thích } +) / * phần ghi chú thích */ Đặt đoạn chú chú 8 + ) (* phần ghi chú thích * ) +) // phần chú thích. thích. thích Các + ) Div +) / Phép toán phép 9 Ví dụ: 5 div 2= 2 Ví dụ: 5/ 2 = 2 chia lấy phần tính số nguyên. học đối + ) Mod +) % Phép chia lấy với số 10 Ví dụ: 5 Mod 2 = 1 Ví dụ: 5 % 2= 1 dư. nguyên +) = +) == So sánh bằng 11 Ví dụ: 5 = 5 Ví dụ: 5 = = 5 nhau. +) + ) != So sánh khác 12 Ví dụ: 4 3 Ví dụ: 4 !=3 nhau. Các +) > +) > So sánh lớn 13 phép ví dụ: 5 > 4 ví dụ: 5 > 4 hơn. toán +) < +) < So sánh nhỏ 14 quan Ví dụ: 3 < 4 Ví dụ: 3 < 4 hơn. hệ. + ) >= + ) >= So sánh lớn 15 Ví dụ: 3 >= 3 Ví dụ: 3 >= 3 hơn hoặc bằng. + )
- + ) AND + ) && Ví dụ: Ví dụ: A B A AND B A B A && B FALSE FALSE FALSE false false false Phép “ và “ 18 false true false FALSE TRUE FALSE logic. true false false TRUE FALSE FALSE true true true TRUE TRUE TRUE + ) NOT +) ! Phép “phủ Ví dụ: NOT FLASE= TRUE Ví dụ: ! false = true định” hay 19 phép"đảo” logic. + ) Toán tử XOR +) ^ Ví dụ: Ví dụ: A B A XOR B FALSE FALSE FALSE A B A^ B FALSE TRUE TRUE Phép “hoặc 20 false false false TRUE FALSE TRUE triệt tiêu “ TRUE TRUE FALSE false true true true false true true true false + ) SHR ( shift right) +) >> Ví dụ: Ví dụ: Phép dịch số 21 Phép 5 SHR 4 = 5 DIV 16 = 0 5 >> 4 = 0 sang phải. toán + ) SHL ( shift Left) + )
- Hằng số 26 + ) CONST B = 5 + ) const int B = 5 nguyên B có giá trị = 5 27 + ) CONST PI = 3.14; + ) const float PI = 3.14; Hằng số thực Hằng số ký 28 + ) CONST CCC= ‘ Z‘ + ) const char CCC= ‘Z’ tự. + ) ‘chuỗi ký tự ‘ + ) “ chuỗi ký tự “ Hằng Ví dụ: Ví dụ: Khai báo một 29 xâu ‘ chao than ai ! ‘ “ chao than ai ! “ hằng xâu. + ) Real + ) float 30 Ví dụ: x: real; Ví dụ: float x; Kiểu số thực. Kiểu dữ liệu + ) Integer. + ) int Kiểu số 31 Ví dụ: i: integer; Ví dụ: int i; nguyên. 32 + ) Char + ) char Kiểu ký tự 33 + ) double + ) double Kiểu số thực. Kiểu số 34 + ) longint + ) long nguyên Chuyển chữ thường 35 + ) Ch:= Upcase(ch); + ) ch= toupper(ch); thành chữ Các hoa. hàm xữ lý ký tự Chuyển chữ hoa 36 + ) Ch:= Chr(ord(ch)+32); + ) ch=tolower(ch) thành chữ thường. Các hàm số Trả lại giá trị học + ) LN(x) hàm log(x) 37 + ) log x). chuẩn. Hàm loge (x)= ln (x) cơ sở tự nhiên ln(x). 38 + ) ABS(x) + ) abs (x) Cho giá trị tuyệt đối của một số nguyên x. 10
- Hàm khai 39 + ) SQRT(x) + ) sqrt (x) căn bậc hai. Trả lại giá trị 40 + ) SIN (X) + ) sin (X). hàm SIN Trả lại giá trị 41 + ) COS(X) +) cos (X) hàm COS. Hàm tính giá 42 + ) EXP(X) + ) exp (X) trị e mũ x. + ) ROUND(X) + ) ceil (X) Hàm làm 43 Ví dụ: ROUND(56.57) = 57; Ví dụ: ceil (56.57) = 57; tròn số. + ) TRUNC(X) + ) floor (X) Hàm cắt 44 Ví dụ: TRUNC(3.146)= 3; Ví dụ: floor (3.146) = 3; tròn số. Khởi tạo bộ 45 + ) Random (X) + ) random (X) số ngẫu nhiên. Biến chuỗi st 46 + ) VAL( ST,VAR,CODE) + ) atoi (st) thành số nguyên. + ) STR(value,st) Các thủ Ví dụ: STR(123.4,st) Biến số 47 + ) strstr (st) tục và Cho giá trị là 123.4 thành chuỗi. hàm + ) CONCAT(S1,s2); + ) char * strcat(char*S1;char trên Bổ sung nội Ví dụ: *s2) dung chuỗi xâu ký 48 CONCAT(‘abc’,’de’) Ví dụ: s1=’abc’; s2=’ de’ tự. s2 vào chuỗi Kết quả cho ra ‘ abcde’ Kết quả cho rằng ‘ abcde’ s1. + ) LENGTH (S) + ) int strlen (const char *s) Hàm trả lại Ví dụ: s:= ‘ abcd’ Ví dụ: s:=’abcd’ trả về 49 Length(s)= 4; int strlen(const char*s) cho kết độ dài của quả là 4 chuỗi s. Các 50 + ) INC (i,n) + ) i += n; Tăng biến i phép Hay i = i + n; giá trị n. tăng Ví dụ: INC (i,2) Ví dụ: i += 2; giảm. Kết quả là tăng biến i giá trị là Tăng i lên giá trị là 2 2 11
- + ) DEC (i,n) + ) i -= n; Hay i=i-n; Ví dụ: DEC(i,2) Ví dụ: i -= 2; Giảm biến i 51 Kết quả là giảm biến i giá trị là Giảm biến i giá trị là 2 giá trị n. 2 Var a,b:integer; int a,b; Function tinhtong:integer; int tinhtong; Begin { Biến Tinhtong:= a+b; return a+b; Việc dùng tổng End; } biến cục bộ thể và 52 BEGIN void main() và biến tổng biến a = 5; { a = 5; thể trong cục bộ b = 7; b = 7; chương trình. Writeln(‘tinh tong:’); cout
- Procedure try(n:integer); void try(int n); Begin { If (n>0) then if (n>0 ) Đệ qui 55 try(n-1) try(n-1); else else write(‘n:’); cout
- + ) Tên biến ^.Tên trường + ) Tên biến têntrường. Ví dụ: Ví dụ: Type typedef nhansu=record struct Nut ten:string[30]; { Cách khai tuoi: integer; int info; báo con trỏ 60 End; nut *link; kiểu cấu point= ^nhansu; } nut; trúc. Var p:point; void taods BEGIN { nut *p; p^.ten:= ‘ Lan Anh ‘; p link= NULL; P^.tuoi:=’ 22 ‘; p info= 2; END. }. Con trỏ kiểu Cấp phát cấu động cho 61 + ) New(p); + ) p= New float; trúc/ biến con trỏ bản ghi P. Thu hồi lại 62 + ) Dispose (p) + ) delete (p) vùng nhớ. Địa chỉ biến 63 + ) P:=@ + ) P=&biến. P. Truy xuất một ô nhớ 64 + ) P^ + ) &P của con trỏ trỏ bởi P. Vòng +)For biendk:=bt1 to bt2 do CL + ) for (bt1; dsbt2; dsbt3)CL lặp xác Ví dụ: Ví dụ: Lặp biết 65 định For i:= 1 to 25 do for(i=1; i
- + ) REPEAT + ) do CL1; CL; .... while (btdk) CLn; UNTIL (BTLG) Ví dụ: Ví dụ: Var n:integer; { Begin int n; Vòng Repeat do lặp Writeln(‘day la so duong:’); { Kiểm tra không 66 Until (nn; lặp. định }; while (n
- +) Case bt of +) switch(bt) th1: CL1; case bt1: CL1; th2: CL2; case bt2: CL2; ... .... thn: CLn; case bt n: CLn; End; Ví dụ: Ví dụ: Var i:integer; { int n; Case i+1 of coutn; 3: writeln(‘ so 3’); switch(n) Câu lệnh lựa 70 End; { chọn. case 0: cout
- - Bước 4: Cung cấp kiến thức về cách viết trong NNLT C ++chuyển đổi sang ngôn ngữ mới dựa vào sự tương đồng * Nội dung 1: Cấu trúc rẽ nhánh Ví dụ 3: Để tìm số lớn nhất max trong Ví dụ 3: Để tìm số lớn nhất hai số a và b, có thể thực hiện hai cách sau: max trong hai số a và b, có thể - Dùng câu lệnh gán max:= a và lệnh if- then thực hiện hai cách sau: dạng thiếu: - Dùng câu lệnh gán If b > a then max:=b; max:= a và cấu trúc if...else dạng - Dùng một lệnh if- then dạng đủ: thiếu: If b > a then max:=b if b > a max:=b; Else max:= a; - Dùng một cấu trúc if...else dạng đủ: if b > a max:=b; 2. Câu lệnh ghép else max:= a; - Theo cú pháp, sau một số từ khóa (như then hoặc else ) phải là một câu lệnh. Nhưng trong nhiều trường hợp thì sau các thao tác sẽ có nhiều câu lệnh để mô tả.Trong trường hợp như vậy, ngôn ngữ lập trình cho phép gộp nhiều một dãy câu lệnh thành một câu lệnh ghép (hay câu hợp thành) chẳng hạn { Begin < câu lệnh >; < câu lệnh >; }; End; Ví dụ: Ví dụ: If D < 0 then if D < 0 writeln (‘ phuong trình vo nghiem’) cout
- If D < 0 then D:= b*b- 4*a*c; writeln (‘ phuong trình vo nghiem’) if D < 0 else cout
- for( bt1; dsbt2; dsbt 3) câulệnh Trong đó: - Biến đếm là biến đơn, thường có kiểu nguyên - Gt đầu, gt cuối là các biểu thức cùng kiểu với biến đếm và gt đầu phải nhỏ hơn hoặc bằng gt cuối. Nếu gt đầu lớn hơn gt cuối thì vòng lặp không thực hiện. Chương trình cài đặt bài toán 1 program bt1; #include uses crt; #include var s: real; #include a, N: integer; main() Begin Clrscr; { float S; Write( ‘ hay nhap gia tri a vao’); int a, N; Readln ( a); clrscr (); S:= 1/a; cout> a; S:= S + 1/( a+ N); S= 1/a; Writeln(‘ tong S la:’, S); for ( N=1; N
- Chương 3. KẾT QUẢ ÁP DỤNG Đề tài được thực hiện trên hai năm học 2017-2018 và 2018-2019. Năm học 2017-2018: Chưa áp dụng sang kiến kinh nghiệm Triển khai dạy ngôn ngữ lập trình C ++ theo phương pháp kết hợp lý thuyết và thực hành. Giảng dạy NNLT C++ như một nội dung mới hoàn toàn, không liên hệ nhiều đến NNLT Pascal kết quả thu được như sau: Tiêu chí (Số lượng) Học sinh Học sinh Số lượng HS Học sinh sử nắm được không NNLT Năm học tham gia bồi dụng thành NNLT C++ C++ thức quay dưỡng thạo NNLT ở mức độ về sử dụng C++ TB Pascal 2017-2018 7 1 2 4 Do vậy trong kì thi HSG Tin học 12 (tháng 10/2018) chỉ có 1 HS trong đội tuyển viết code bằng NNLT C++ trên phần mềm Code Blocks trình biên dịch GCC. Năm học 2018-2019: Áp dụng sáng kiến kinh nghiệm Triển khai dạy ngôn ngữ lập trình C++ theo phương pháp nghiên cứu sự tương quan và kế thừa. Giảng dạy NNLT C ++ trên cơ sở kế thừa NNLT Pascal đã biết kết quả thu được như sau: Tiêu chí (Số lượng) Học sinh Học sinh Số lượng HS Học sinh sử nắm được không NNLT Năm học tham gia bồi dụng thành NNLT C++ C++ thức quay dưỡng thạo NNLT ở mức độ về sử dụng C++ TB Pascal 2018-2019 8 5 3 0 So với năm học trước khi chưa triển khai dạy chuyên đề như SKKN đã trình bày học sinh năm học này dù chưa dạy các chuyên đề nâng cao (dự kiến dạy trong hè) đã : - Hưởng ứng một cách chủ động, hào hứng, nắm bắt khá nhanh và say mê môn học. - Các em có thể cài đặt được các bài toán cùng dạng ở mức TB và khá bằng NNLT C++. 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Sáng kiến kinh nghiệm giải phương trình vô tỷ
61 p | 603 | 150
-
Sáng kiến kinh nghiệm THPT: Một số phương pháp giải bài toán tím số phức có môđun lớn nhất, nhỏ nhất
17 p | 261 | 35
-
Sáng kiến kinh nghiệm THPT: Phương pháp rèn luyện kĩ năng sử dụng Atlat và thực hành biểu đồ Địa lí lớp 12
26 p | 157 | 15
-
Sáng kiến kinh nghiệm THPT: Tăng cường sử dụng phương pháp dạy học trực quan vào giảng dạy môn Toán THPT
37 p | 41 | 13
-
Sáng kiến kinh nghiệm THPT: Khai thác và sáng tạo các bài toán mới từ khái niệm và bài tập cơ bản
20 p | 121 | 7
-
Sáng kiến kinh nghiệm THPT: Phương pháp thử và đặc biệt hóa trong giải toán trắc nghiệm
32 p | 17 | 7
-
Sáng kiến kinh nghiệm THPT: Phương pháp giải một số dạng bài tập về di truyền liên kết với giới tính
27 p | 24 | 7
-
Sáng kiến kinh nghiệm THPT: Phương pháp giảng dạy chương Este và Lipit thuộc chương trình Hóa học 12 cơ bản
20 p | 36 | 7
-
Sáng kiến kinh nghiệm THPT: Phương pháp giải một số dạng bài tập di truyền phần quy luật hoán vị gen - Sinh học 12 cơ bản
24 p | 14 | 6
-
Sáng kiến kinh nghiệm THPT: Các biện pháp nâng cao hiệu quả làm bài phần Đọc - hiểu trong đề thi tốt nghiệp môn Ngữ văn THPT
36 p | 26 | 6
-
Sáng kiến kinh nghiệm THPT: Phương pháp giải bài tập di truyền phả hệ
27 p | 11 | 5
-
Sáng kiến kinh nghiệm THPT: Phân loại và cách giải bài toán tìm giới hạn hàm số trong chương trình Toán lớp 11 THPT
27 p | 53 | 5
-
Sáng kiến kinh nghiệm THPT: Hướng dẫn học sinh lớp 12 ôn tập môn Lịch Sử theo định hướng 5 bước 1 vấn đề, đáp ứng yêu cầu mới của kỳ thi THPT Quốc gia
29 p | 35 | 5
-
Sáng kiến kinh nghiệm THPT: Phương pháp giải bài toán về số phức
24 p | 39 | 4
-
Sáng kiến kinh nghiệm THPT: Phương pháp dạy giúp học sinh nhớ kiến thức ngữ pháp để làm tốt bài tập
24 p | 29 | 3
-
Sáng kiến kinh nghiệm THPT: Phương pháp dạy câu so sánh trong tiếng Hán hiện đại
29 p | 5 | 3
-
Sáng kiến kinh nghiệm THPT: Giúp học sinh giải tốt các bài toán phương trình, bất phương trình mũ và lôgarit có chứa tham số
37 p | 43 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn