1 / 23

Phương pháp giảng dạy ngôn ngữ lập trình C⁺⁺ cho đội tuyển HSG tin học THPT

Trong nhu1eefng nu0103m gu1ea7n u0111u00e2y Bu1ed9 giu00e1o du1ee5c vu00e0 u0111u00e0o tu1ea1o u0111ang cu00f3 nhu1eefng quyu1ebft su00e1ch thay u0111u1ed5i mu1ea1nh mu1ebd vu1ec1 chu01b0u01a1ng tru00ecnh giu00e1o du1ee5c, tu1eeb giu00e1o du1ee5c tiu1ebfp cu1eadn nu1ed9i dung nay chu00fa tru1ecdng tiu1ebfp cu1eadn nu0103ng lu1ef1c ngu01b0u1eddi hu1ecdc, nghu0129a lu00e0 tu1eeb chu1ed7 quan tu00e2m u0111u1ebfn viu1ec7c HS hu1ecdc u0111u01b0u1ee3c cu00e1i gu00ec u0111u1ebfn chu1ed7 quan tu00e2m HS vu1eadn du1ee5ng u0111u01b0u1ee3c cu00e1i gu00ec qua viu1ec7c hu1ecdc. u0110iu1ec1u nu00e0y u0111u00f2i hu1ecfi phu01b0u01a1ng phu00e1p du1ea1y hu1ecdc cu1ee7a GV cu0169ng phu1ea3i thay u0111u1ed5i theo, ngu01b0u1eddi giu00e1o viu00ean phu1ea3i u00e1p du1ee5ng u0111u01b0u1ee3c cu00e1c phu01b0u01a1ng phu00e1p, ku0129 thuu1eadt tu00edch cu1ef1c u0111u1ec3 xu00e2y du1ef1ng nu00ean cu00e1c chuyu00ean u0111u1ec1 nhu1eb1m giu00fap HS tru1edf thu00e0nh chu1ee7 thu1ec3 cu1ee7a quu00e1 tru00ecnh nhu1eadn thu1ee9c, u0111u1ea3m bu1ea3o ku1ebft quu1ea3 u0111u1ea7u ra theo yu00eau cu1ea7u.

Download Presentation

Phương pháp giảng dạy ngôn ngữ lập trình C⁺⁺ cho đội tuyển HSG tin học THPT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MỤC LỤC PHẦN MỞ ĐẦU ....................................................................................................................... 1 1. Lý do chọn đề tài ............................................................................................................... 1 2. Mục tiêu nghiêu cứu .......................................................................................................... 1 3. Đối tượng nghiêncứu ........................................................................................................ 2 4. Phương pháp nghiên cứu ................................................................................................... 2 5. Phạm vi nghiên cứu ........................................................................................................... 2 6. Cấu trúc của sáng kiến kinh nghiệm .................................................................................. 2 PHẦN NỘI DUNG ................................................................................................................... 3 Chương I. CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN ............................................................... 3 1.1. Ngôn ngữ lập trình C++ ......................................................................................... 3 1.2. Các phương pháp giảng dạy ngôn ngữ lập trình ................................................... 3 1.2.1. Phương pháp kết hợp giữa lý thuyết và thực hành. ............................................. 3 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 .. 3 1.2.3. Phương pháp bàn tay nặn bột ............................................................................. 4 1.2.4. Phương pháp hoạt động nhóm và dạy học theo dự án ........................................ 4 1.3. Dạy lập trình cho đội tuyển học sinh giỏi ở trường THPT hiện nay .......................... 4 1.4. Tiểu kết chương 1 ....................................................................................................... 5 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 ......................................................................................................... 6 2.1. Sự tương quan giữa ngôn ngữ Pascal và ngôn ngữ C++. ............................................ 6 2.2. Hướng dẫn giảng dạy một số phần cụ thể ................................................................ 15 Chương 3. KẾT QUẢ ÁP DỤNG ..................................................................................... 19 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 GV HSG CNTT-TT NNLT SKKN GDPT Học sinh Giáo viên Học sinh giỏi Công nghệ thông tin và truyền thông Ngôn ngữ lập trình Sáng kiến kinh nghiệm Giáo dục phổ thông 0 SangKienKinhNghiemHay.net

  2. 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. 1 SangKienKinhNghiemHay.net

  3. - 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. 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 2 SangKienKinhNghiemHay.net

  4. PHẦN NỘI DUNG Chương I. CƠ SỞ LÝ LUẬNVÀ THỰC TIỄN 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ợpgiữ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ạyngô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. 1.1. 3 SangKienKinhNghiemHay.net

  5. 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. 4 SangKienKinhNghiemHay.net

  6. 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. 5 SangKienKinhNghiemHay.net

  7. 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] Begin ... End, Ví dụ: Begin Writeln(‘Xin chao:’); End. + ) Uses Type Var Procedure..... Function.... BEGIN .... END. C++ [1],[3] { ... }. Ý nghĩa Phần thân chương trình Ví du: { count<< “ xin chao”; }. + ) # define # include typedefs function... main ( ) { ... } 1 Cấu trúc một chương trình. 2 + ) Writeln + ) Write Ví dụ: Write(‘ chao than ai:’); + ) Read + ) Readln. Ví dụ: Write(‘Nhap soduong M:’); Readln(M); + ) cout Ví dụ: cout<<” chao than ai”; Thủ Tục xuất dữ liệu Xuất dữ liệu ra màn hình. 3 +)cin. Ví dụ: cout<<”nhap so duong M” cin>>M; Nhập dữ liệu từ bàn phím hoặc file. Thủ tục vào dữ liệu 4 Thư viện chương trình Hàm chuẩn + ) #include<stdio.h> #include<conio.h> Khai báo thư viện. 5 + ) Uses crt Xóa màn hình. 6 + ) Clrscr; + ) clrscr(); 6 SangKienKinhNghiemHay.net

  8. Hàm xóa các ký tự nằm bên phải con trỏ. 7 + ) Clreol; + ) clreol(); Lời ghi chú thích Các phép tính số học đối với số nguyên + ) { phần ghi chú thích } + ) (* phần ghi chú thích * ) +) / * phần ghi chú thích */ +) // phần chú thích. Đặt đoạn chú thích. 8 + ) Div Ví dụ: 5 div 2= 2 + ) / Ví dụ: 5/ 2 = 2 Phép toán chia lấy phần nguyên. 9 + ) Mod Ví dụ: 5 Mod 2 = 1 + ) % Ví dụ: 5 % 2= 1 Phép chia lấy dư. 10 + ) = Ví dụ: 5 = 5 +) <> Ví dụ: 4 <> 3 + ) = = Ví dụ: 5 = = 5 + ) != Ví dụ: 4 !=3 So sánh bằng nhau. 11 So sánh khác nhau. 12 + ) > ví dụ: 5 > 4 + ) < Ví dụ: 3 < 4 + ) >= Ví dụ: 3 >= 3 + ) > ví dụ: 5 > 4 + ) < Ví dụ: 3 < 4 + ) >= Ví dụ: 3 >= 3 So sánh lớn hơn. So sánh nhỏ hơn. So sánh lớn hơn hoặc bằng. So sánh nhỏ hơn hoặc bằng. Các phép toán quan hệ. 13 14 15 + ) <= Ví dụ: 4 <= 4 + ) <= Ví dụ: 4 <= 4 16 + ) OR Ví dụ: +) Ví dụ: A B A B A B A OR B Phép “hoặc” logic. false false false true true true false true true true F LSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE 17 Toán tử logic TRUE false true TRUE 7 SangKienKinhNghiemHay.net

  9. + ) AND Ví dụ: A + ) && Ví dụ: A B A AND B B A && B false false false FALSE FALSE FALSE Phép “ và “ logic. 18 false true false FALSE TRUE FALSE true false false TRUE FALSE FALSE true true true TRUE TRUE TRUE + ) NOT Ví dụ: NOT FLASE= TRUE + ) ! Ví dụ: ! false = true Phép “phủ định” hay phép"đảo” logic. 19 + ) Toán tử XOR Ví dụ: A FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE + ) ^ Ví dụ: B A XOR B A B A ^ B false Phép “hoặc triệt tiêu “ TRUE 20 false false false true true true true false true FALSE true false + ) SHR ( shift right) Ví dụ: 5 SHR 4 = 5 DIV 16 = 0 + ) SHL ( shift Left) Ví dụ: 5 SHL 4 = 80 + ) : = Ví dụ: a: = 5 + ) >> Ví dụ: 5 >> 4 = 0 + ) << Ví dụ: 5 << 4 = 80 + ) = Ví dụ: a = 5 Phép dịch số sang phải. 21 Phép toán dịch bit Phép dịch số sang trái. Gán tên một biến= biểu thức. 22 Phép gán giá trị 23 + ) CONST tenhang=giatrihang Ví dụ: CONST MAXN = 1000; + ) const kiêudulieu tenhang=giatrihang. Ví dụ: const intmaxn = 1000; Khai báo một hằng Khai báo hằng. 24 Hằng Boolean True. 25 + ) CONST B=True + ) const bool B =True 8 SangKienKinhNghiemHay.net

  10. Hằng số nguyên B có giá trị = 5 26 + ) CONST B = 5 + ) const int B = 5 27 + ) CONST PI = 3.14; + ) const float PI = 3.14; Hằng số thực Hằng số ký tự. 28 + ) CONST CCC= ‘ Z‘ + ) const char CCC= ‘Z’ + ) ‘chuỗi ký tự‘ Ví dụ: ‘ chao than ai ! ‘ + ) “ chuỗi ký tự“ Ví dụ: “ chao than ai ! “ Khai báo một hằng xâu. Hằng xâu 29 + ) Real Ví dụ: x: real; + ) float Ví dụ: float x; 30 Kiểu số thực. Kiểu dữ liệu + ) Integer. Ví dụ: i: integer; + ) int Ví dụ: int i; Kiểu số nguyên. 31 32 + ) Char + ) char Kiểu ký tự 33 + ) double + ) double Kiểu số thực. Kiểu số nguyên 34 + ) longint + ) long Chuyển chữ thường thành chữ hoa. 35 + ) Ch:= Upcase(ch); + ) ch= toupper(ch); Các hàm xữ lý ký tự Chuyển chữ hoa thành chữ thường. 36 + ) Ch:= Chr(ord(ch)+32); + ) ch=tolower(ch) Các hàm số học chuẩn. Trả lại giá trị hàm log(x) cơ sở tự nhiên ln(x). + ) LN(x) Hàm loge (x)= ln (x) 37 + ) log x). 9 SangKienKinhNghiemHay.net

  11. Cho giá trị tuyệt đối của một số nguyên x. 38 + ) ABS(x) + ) abs (x) Hàm khai căn bậc hai. 39 + ) SQRT(x) + ) sqrt (x) Trả lại giá trị hàm SIN 40 + ) SIN (X) + ) sin (X). Trả lại giá trị hàm COS. 41 + ) COS(X) +) cos (X) Hàm tính giá trịe mũ x. 42 + ) EXP(X) + ) exp (X) + ) ROUND(X) Ví dụ: ROUND(56.57) = 57; + ) ceil (X) Ví dụ: ceil (56.57) = 57; Hàm làm tròn số. 43 + ) TRUNC(X) Ví dụ: TRUNC(3.146)= 3; + ) floor (X) Ví dụ: floor (3.146) = 3; Hàm cắt tròn số. 44 Khởi tạo bộ số ngẫu nhiên. 45 + ) Random (X) + ) random (X) Biến chuỗi st thành số nguyên. 46 + ) VAL( ST,VAR,CODE) + ) atoi (st) + ) STR(value,st) Ví dụ: STR(123.4,st) Cho giá trị là 123.4 + ) CONCAT(S1,s2); Ví dụ: CONCAT(‘abc’,’de’) Kết quảcho ra ‘ abcde’ Biến số thành chuỗi. Các thủ tục và hàm trên xâu ký tự. 47 + ) strstr (st) + ) char * strcat(char*S1;char *s2) Ví dụ: s1=’abc’; s2=’ de’ Kết quả cho rằng ‘ abcde’ Bổ sung nội dung chuỗi s2 vào chuỗi s1. Hàm trả lại trả về độ dài của chuỗi s. 48 + ) LENGTH (S) Ví dụ: s:= ‘ abcd’ Length(s)= 4; + ) int strlen (const char *s) Ví dụ: s:=’abcd’ int strlen(const char*s) cho kết quả là 4 49 10 SangKienKinhNghiemHay.net

  12. + ) INC (i,n) Hay i = i + n; Ví dụ: INC (i,2) Kết quảlà tăng biến i giá trị là 2 + ) i += n; Ví dụ: i += 2; Tăng i lên giá trị là 2 Tăng biến i giá trị n. 50 Các phép tăng giảm. + ) DEC (i,n) Hay i=i-n; Ví dụ: DEC(i,2) Kết quả là giảm biến i giá trị là 2 + ) i -= n; Ví dụ: i -= 2; Giảm biến i giá trị là 2 Giảm biến i giá trị n. 51 Var a,b:integer; Function tinhtong:integer; Begin Tinhtong:= a+b; End; BEGIN a = 5; b = 7; Writeln(‘tinh tong:’); END. Var a,b: integer; Procedure hoandoi ( a,b:integer); Var tg:integer; Begin tg:= a; a:= b; b:= tg; End; BEGIN a:= 5; b:= 7; hoandoi(a,b); writeln(‘ a,b: ‘); END. int a,b; int tinhtong; { return a+b; } void main() { a = 5; b = 7; cout<<tinhtong(); } int a,b; hoandoi(int a;int b); { tg = a; a = b; b = tg; }; void main() { a = 5; b = 7; hoandoi(a,b); cout<<a<<b; }. Biến tổng thể và biến cục bộ Việc dùng biến cục bộ và biến tổng thể trong chương trình. 52 Truyền tham số kiểu tham trị. Cách truyền tham số giá trị trong chương trình. 53 11 SangKienKinhNghiemHay.net

  13. Procedure hoandoi(Var a,b:integer); Var tg:integer; Begin tg:= a; a:= b; b:= tg; End; BEGIN a:= 5; b:= 7; hoandoi(a,b); writeln(‘ a,b: ‘); END. Procedure try(n:integer); Begin If (n>0) then try(n-1) else write(‘n:’); End. Ten array[KCS ] of kiểu phần tử. Ví dụ: A= array[1..10] of integer; hoandoi(int &a,int &b); { tg = a; a = b; b = tg; }; void main() { a = 5; b = 7; hoandoi(a,b); cout<<a<<b; }. void try(int n); { if (n>0 ) try(n-1); else cout<<n; }; Kiểu phần tử tên[số phần tử của mảng] Ví dụ: int A[10]; Truyền tham số kiểu tham biến. Cách truyền tham số kiểu tham biến trong chương trình. 54 55 Đệ qui Cho biết cách khai báo kiểu dữ liệu mảng. 56 Kiểu dữ liệu mảng. + ) Tên [chỉ số] Ví dụ: A[1]:= 1; + ) Tên[chỉ số] Ví dụ: A[1]= 1; Truy xuất phần tử mảng. 57 + ) RECORD Ví dụ: Type date=record ngay: 1..31; thang: 1..12; nam: integer; End; + ) struct Ví dụ: struct date { unsigned char ngay; unsigned char thang; unsigned char nam; } date 1,date 2; Kiểu dữ liệu kiểu bản ghi. Cho biết cách khai báo kiểu dữ liệu bản ghi. 58 12 SangKienKinhNghiemHay.net

  14. + ) Tênbiến.têntrường Ví dụ: Type diachi=record sonha: integer; pho: string[20]; Tpho: string[15]; End; Giả sử truy xuất: Nguoi.sonha=18 + ) Tên biến ^.Tên trường Ví dụ: Type nhansu=record ten:string[30]; tuoi: integer; End; point= ^nhansu; Var p:point; BEGIN p^.ten:= ‘ Lan Anh ‘; P^.tuoi:=’ 22 ‘; END. + ) Tênbiến.têntrường Ví dụ: struct diachi { int sonha char pho[20]; char Tpho[15]; } ong A,ba B; Giả sử truy xuất: ong A.sonha=18 + ) Tên biến têntrường. Ví dụ: typedef struct Nut { int info; nut *link; } nut; void taods { nut *p; p link= NULL; p info= 2; }. Truy xuất phần tử có bản ghi. 59 Cách khai báo con trỏ kiểu cấu trúc. 60 Con trỏ kiểu cấu trúc/ bản ghi Cấp phát động cho biến con trỏ P. 61 + ) New(p); + ) p= New float; Thu hồi lại vùng nhớ. 62 + ) Dispose (p) + ) delete (p) Địa chỉ biến P. 63 + ) P:=@<biến> + ) P=&biến. Truy xuất một ô nhớ của con trỏ trỏ bởi P. 64 + ) P^ + ) &P +)For biendk:=bt1 to bt2 do CL Ví dụ: For i:= 1 to 25 do write(‘i:=’); + ) for (bt1; dsbt2; dsbt3)CL Ví dụ: for(i=1; i <= 24; i++) cout<<i<<; Vòng lặp xác định FOR Lặp biết trước số lần. 65 13 SangKienKinhNghiemHay.net

  15. + ) REPEAT CL1; .... CLn; UNTIL (BTLG) Ví dụ: Var n:integer; Begin Repeat Writeln(‘day la so duong:’); Until (n<=0); End. + ) do CL; while (btdk) Ví dụ: { int n; do { cout<<”hay cho mot so >0”; cin>>n; }; while (n<=0); }. Vòng lặp không xác định Kiểm tra cuối vòng lặp. 66 Sẽ dừng và chuyển sang câu lệnh tiếp khi gặp BREAK. 67 + ) BREAK + ) break Sẽ tiếp tục chuyển sang vòng lặp tiếp theo mà không cần thực hiện phần còn lại. 68 + ) CONTINUE + ) continue Các câu lệnh rẽ nhánh vô điều kiện Lệnh nhảy vô điều kiện tới một vị trí chương trình thông qua tên nhãn. 69 +) GOTO + ) goto 14 SangKienKinhNghiemHay.net

  16. +) Case bt of th1: CL1; th2: CL2; ... thn: CLn; End; Ví dụ: Var i:integer; Case i+1 of 1: writeln(‘ so 1’); 2: writeln(‘ so 2’); 3: writeln(‘ so 3’); End; +) switch(bt) case bt1: CL1; case bt2: CL2; .... case bt n: CLn; Ví dụ: { int n; cout<<”Hay cho mot so nguyen”; cin>>n; switch(n) { case 0: cout<<”so khong”; case 1: cout<<”so một”; case 2:cout<<”so hai”; }; }. Câu lệnh lựa chọn. 70 Các câu lệnh điều kiện. +) IF ( BTLG) THEN CL Ví dụ: If ( a mod 3 = 0 ) then Writeln( ‘ a chia het cho 3’); +) if (BTDK) CL; Ví dụ: if ( a mod 3 = 0 ) cout<<”a chia het cho 3”; Cấu trúc điều khiển dạng đầy đủ. 71 +) IF ( BTLG) THEN CL1 ELSE CL2 Ví dụ: If (a > b ) then max:= a Else Max:= b; +) if (BTDK) CL1; else CL2; Ví dụ: if (a > b) max = a; else max = b; Cấu trúc điều khiển dạng rẽ nhánh. 72 2.2. Hướng dẫn giảng dạy một số phần cụ thể Dựa vào bảng so sánh sựtương đồng tương ứng với các nội dung cụ thể ta thực hiện theo các bước sau: - 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 này có thể không cần giải tường minh mà sử dụng ngôn ngữ tựa Pascal) 15 SangKienKinhNghiemHay.net

  17. - 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 Sử dụng ngôn ngữ C++ 1. Câu trúc if... else a ) Dạng thiếu if < đk> <câu lệnh>; b) Dạng đủ if<đk> <câu lệnh 1>; else <câu lệnh 2> Trong đó: Đk: là biểu thức logic Câu lệnh 1, câu lệnh 1, câu lệnh 2 là một câu lệnh của C++ Ví dụ 1: if D < 0 cout<< “phuong trinh vo nghiem”; Ví dụ 2: if ( a mod 3 = 0 ) cout<<” a chia het cho 3”; else cout<<”a khongchia het cho 3”; Sử dụng ngôn ngữ Pascal 1. Câu lệnh if - then a ) Dạng thiếu If < đk> then <câu lệnh>; b) Dạng đủ If<đk> then <câu lệnh 1> Else <câu lệnh 2> Trong đó: Đk: là biểu thức logic Câu lệnh 1, câu lệnh 1, câu lệnh 2 là một câu lệnh của Pascal. Ở dạng thiếu: đk sẽđược tính và kiểm tra.Nếu đk đúng (có giá trị True) thì câu lệnh sẽđược thực hiện, ngược lại thì câu lệnh sẽ bị bỏ qua. Ở dạng đủ: đk cũng được tính và kiểm tra.Nếu đk đú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. Ví dụ 1: If D < 0 then writeln (‘ phuong trình vo nghiem’); Ví dụ 2: If (a mod 3 = 0 )then Write(‘ a chia het cho 3’) Else write(‘a khong chia het cho 3;); Ví dụ 3: Để tìm số lớn nhất max trong hai số a và b, có thể thực hiện hai cách sau: - Dùng câu lệnh gán max:= a và lệnh if- then dạng thiếu: If b > a then max:=b; - Dùng một lệnh if- then dạng đủ: If b > a then max:=b Else max:= a; 2. Câu lệnh ghép - 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 Ví dụ 3: Để tìm số lớn nhất max trong hai số a và b, có thể thực hiện hai cách sau: - Dùng câu lệnh gán max:= a và cấu trúc if...else dạng thiếu: if b > a max:=b; - Dùng một cấu trúc if...else dạng đủ: if b > a max:=b; else max:= a; 16 SangKienKinhNghiemHay.net

  18. thành) chẳng hạn Begin < câu lệnh >; End; Ví dụ: If D < 0 then writeln (‘ phuong trình vo nghiem’) else Begin X1:= (-b – sqrt(b*b – 4*a*c))/ (2*a); X2:= -b/a- x1; End; 3. Một số ví dụ. Ví dụ 1: Tìm nghiệm thực của phương trình bậc hai. Input: các hệ số a,b,c nhập từ bàn phím Output: Đưa ra màn hình các nghiệm thực hoặc thông báo ” phuong trinh vo nghiem”. Program giai; Uses crt; Var a, b, c: real; D, x1, x2: real; Begin Clrscr; Write(‘a, b, c:’);Readln(a, b, c); D:= b*b- 4*a*c; If D < 0 then writeln (‘ phuong trình vo nghiem’) else Begin X1:= (-b – sqrt(b*b – 4*a*c))/ (2*a); X2:= -b/a- x1; Writeln(‘ x1= ‘,x1,’ x2 =’,x2); End; Readln End. Ví dụ 2: Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100. Ví dụ, các năm 2000, 2004 là năm nhuận và có số ngày là 366, các năm 1900, 1945 không phải là năm nhuận và có số ngày là 365. Input: N nhập từ bàn phím Output: Đưa số ngày của năm N ra màn hình. program Nam_nhuan; { < câu lệnh >; }; Ví dụ: if D < 0 cout<< “phuong trình vo; else { X1:= (-b – sqrt(b*b – 4*a*c)) / (2*a); X2:= -b/a- x1; }; #include<iostream.h> #include<conio.h> #include<math.h> main() { float a, b, c; float x1, x2, D; clrscr(); cout<<” giai phuong trinh”; cout<<” a=”;cin>> a; cout<<” b=”;cin>> b; cout<<” c=”;cin>> c; D:= b*b- 4*a*c; if D < 0 cout<< “phuong trình vo; else { X1:= (-b – sqrt(b*b –4*a*c)) / (2*a); X2:= -b/a- x1; }; }. 17 SangKienKinhNghiemHay.net

  19. #include<iostream.h> #include<conio.h> #include<math.h> main() { int N, SN; clrscr(); cout<<” nam nhuan”; cout<<” nam”;cin>> N; if ( N mod 400 = 0 ) or ( N mod 4 =0 ) and ( N mod 100 <> 0 ) SN:= 366; else SN:= 365; cout<<sn; }. Uses crt; Var N, SN: integer; Begin Clrscr; Write(‘ nam:’); readln( N); if ( N mod 400 = 0 ) or ( N mod 4 =0 ) And ( N mod 100 <> 0 ) then SN:= 366 Else SN:= 365; Writeln(‘ so ngay cua nam’, N, ‘ la’, SN); Readln End. *Nội dung 2: Cấu trúc lặp Sử dụng ngôn ngữ Pascal 1. Lặp với số lần biết trước và câu lệnh For – do - Với a là số nguyên và a > 2, xét bài toán sau đây: Bài toán 1: Tính và đưa kết quả ra màn hình tổng S = 1/a + 1/( a+1) + 1/( a+2) +... + 1/( a+100) * Dạng lặp tiến: For< bien dem>:= < gt dau> to < gt cuoi> do <cau lenh> 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; uses crt; var s: real; a, N: integer; Begin Clrscr; Write( ‘ hay nhap gia tri a vao’); Readln ( a); S:= 1/a; For N:= 1 to 100 do S:= S + 1/( a+ N); Writeln(‘ tong S la:’, S); Sử dụng ngôn ngữ C++ 1. Lặp với số lần biết trước và câu lệnh for Bài toán 1: Tính và đưa kết quả ra màn hình tổng S = 1/a + 1/( a+1) + 1/( a+2) +... + 1/( a+100) * Lặp biết trước số lần for( bt1; dsbt2; dsbt 3) câulệnh #include<iostream.h> #include<conio.h> #include<math.h> main() { float S; int a, N; clrscr (); cout<< ” hay nhap gia tri a”; cin>> a; S= 1/a; for ( N=1; N<= 100; N++) 18 SangKienKinhNghiemHay.net

  20. Readln End. S = S + 1/( a+ N); }. Ví dụ 1: Nhập hai sốnguyên dương M và N ( M < N ), tính và đưa ra màn hinh tổng các số chia hết cho 3 hoặc 5 trong phạm vi từM đến N. #include<iostream.h> #include<conio.h> #include<math.h> main() { int M, N, I; long T; clrscr(); cout<<” nhap so M nho hon N”; cout<<” M= “;cin>> M; cout<<” N= “;cin>> N; T= 0; for ( I= M; M<= N; I++ ) if ( I mod 3 = 0 ) or( I mod 5 = 0) T= T + I; Cout<<T; }. Ví dụ 1: Nhập hai sốnguyên dương M và N ( M < N ), tính và đưa ra màn hinh tổng các số chia hết cho 3 hoặc 5 trong phạm vi từM đến N. Program vd1; Uses crt; Var M, N, I: integer; T: longint; Begin Clrscr; Write(‘ nhap so M nho hon N’); Write (‘ M= ‘); readln ( M ); Write (‘ N= ‘); readln ( N); T:= 0; For I:= M to N do If ( I mod 3 = 0 ) or ( I mod 5 = 0 ) then T:= T + I; Writeln (‘ ket qua:’, T); Readln End. 2.2.4. Tiểu kết chương II 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ể. 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 SangKienKinhNghiemHay.net

  21. 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 nắm được NNLT C++ ở mức độ TB 2 Học sinh không NNLT C++thức quay về sử dụng Pascal 4 Số lượng HS tham gia bồi dưỡng Học sinh sử dụng thành thạo NNLT C++ Năm học 2017-2018 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: 7 1 Tiêu chí (Số lượng) Học sinh nắm được NNLT C++ ở mức độ TB 3 Học sinh không NNLT C++thức quay về sử dụng Pascal 0 Số lượng HS tham gia bồi dưỡng Học sinh sử dụng thành thạo NNLT C++ Năm học 2018-2019 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++. 8 5 20 SangKienKinhNghiemHay.net

  22. PHẦN KẾT LUẬN 1. Kết quả đạt được - Tạo được một tài liệu tham khảo trong quá trình bồi dưỡng HSG. Có thể nói đây là một đề tài khá mới mẻ và hữu ích bởi không chỉ dừng lại ở công tác bồi dưỡng HSG, đề tài còn có thể áp dụng dạy đại trà NNLT C++ nếu chương trình tin học THPT mới yêu cầu. - Sử dụng bảng tương đồng trên để vận dụng vào trong giảng dạy các nội dung cụ thể, đưa ra được những ví dụ minh họa làm rõ hơn tính tương đồng giữa hai ngôn ngữ nói trên 2. Hạn chế của đề tài - Tuy nhiên do thời gian hạn chế nên trong phần vận dụng và sử dụng bảng tương đồng vào trong bài giảng cụ thể, tôi đã chưa đi được hết tất cả các nội dung, các cấu trúc dữ liệu. 3. Hướng phát triển và kiến nghị * Hướng phát triển: Xây dựng bổ sung thêm một số nội dung giảng dạy cụ thể, đặc biệt là các chuyên đề nâng cao sử dụng NNLT C++. * Kiến nghị: – Với Sở Giáo dục và Đào tạo: Cần tổ chức các lớp tập huấn vềđổi mới phương pháp dạy học nhất là việc dạy học và kiểm tra, đánh giá theo các phương pháp đánh giá mới nhất hiện nay; tăng cường các lớp bồi dưỡng nghiệp vụ giáo viên trong công tác bồi dưỡng HSG. – Với lãnh đạo nhà trường: Tạo điều kiện cho tổ chuyên môn tổ chức những hội thảo về việc dạy học và kiểm tra, đánh giá, tổ chức các chuyên đề bồi dưỡng HSG để có dịp trao đổi kinh nghiệm giữa các thành viên trong và ngoài tổ chuyên môn. XÁC NHẬN CỦA BAN GIÁM HIỆU NHÀ TRƯỜNG Vĩnh Linh, ngày 15 tháng 5 năm 2019. Tôi xin cam đoan SKKN này do mình tự viết, không sao chép của người khác. NGƯỜI VIẾT Trần Cảnh Tuấn 21 SangKienKinhNghiemHay.net

  23. DANH MỤC TÀI LIỆU THAM KHẢO [1]. Quách Tuấn Ngọc (2003), Ngôn ngữ lập trình C++, Nhà xuất bản thống kê. [2]. Quách Tuấn Ngọc (1993), Ngôn ngữ lập trình Pascal, Nhà xuất bản giáo dục [3] .GS.Phạm Văn Ất (2000), C++ và lập trình hướng đối tượng, Nhà xuất bản khoa học và kỹ thuật. [4].Nguyễn Đình Tê (2000), Giáo trình lý thuyết và bài tập Pascal, Nhà xuất bản giáo dục. [5]. Nguyễn Tô Thành (2001), Lập trình nâng cao trên ngôn ngữ Pascal, Nhà xuất bản Quốc Gia Hà Nội. [6]. HồSĩ Đàm (chủ biên)- Hồ Cẩm Hà- Trần Đỗ Hùng- Nguyễn Đức Nghĩa- Nguyễn Thanh Tùng- Ngô Ánh Tuyết (2007), Sách giáo khoa tin học lớp 11, Nhà xuất bản giáo dục. [7]. Nguyễn Thanh Tiên - Nguyễn Hải Lộc (2002), Bài giảng ngôn ngữ lập trình Pascal, Đại học SP Huế. [8]. Trương Ngọc Thành (2016), Một sốphương pháp và kĩ thuật dạy học lập trình, kỉ yếu Hội thảo giáo dục, ĐHQG Hà Nội. 22 SangKienKinhNghiemHay.net

More Related