Sáng kiến kinh nghiệm Nâng cao kỹ năng lập trình Pascal
- Lập trình Pascal "khó" đối với học sinh THCS vì môi trường lập trình Pascal có giao diện và các từ khóa đều bằng tiếng Anh, các dòng thông báo hay trợ giúp cũng vậy. Nhìn chung học sinh THCS vốn tiếng Anh không nhiều, nhiều em còn yếu về tiếng Anh..
- Một vấn đề nữa cũng là rào cản đối với việc các học sinh THCS tiếp cận với lập trình Pascal đó là: tư duy Toán học của các em còn hạn chế phụ thuộc vào Sách Giáo Khoa do đó kỹ năng phân tích, tổng hợp, xây dựng thuật toán cho mỗi bài toán hay vấn đề cần lập trình chưa tốt. Các em vẫn thụ động trong việc tiếp cận bài toán, sắp xếp tư duy, xây dựng thuật giải.
- Từ thực tế trên, trong quá trình dạy học tôi luôn băn khoăn, trăn trở làm thế nào nâng cao chất lượng kỹ năng lập trình cho học sinh lớp 8. Việc tiếp cận với môn học rất khó khăn, phải làm rất nhiều lần và thực hành rất nhiều tiết các em mới hiểu việc nhập và xuất dữ liệu. Do đó sẽ rất khó khăn để các em hình thành kỹ năng viết chương trình. Nhất là những năm gần đây Ngành giáo dục luôn thành lập đội tuyển tham dự thi học sinh giỏi môn Tin học ,…. Điều đó đã thúc đẩy tôi trong quá trình giảng dạy phải nghiên cứu tìm tòi biện pháp, kinh nghiệm để giúp cho các em có sự đam mê học tập về lập trình, giúp các em biết được quy trình lập trình như thế nào và định hướng cho học sinh cách để trở thành một nhà lập trình thì cần phải nâng cao kỹ năng lập trình pascal. Giúp các em hiểu, yêu thích lập trình và học lập trình trong sự hứng thú, phấn khởi.
Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Nâng cao kỹ năng lập trình Pascal

h riêng, không được dùng các từ khóa này cho bất kỳ mục đích nào khác ngoài mục đích sử dụng do ngôn ngữ lập trình quy định. - Từ khóa chung: program, begin, end - Từ khóa để khai báo: var, const, array - Từ khóa của lệnh lựa chọn: if..then..else - Từ khóa của lệnh lặp: for ..to..do, while.. do - Từ khóa toán tử: and, div, mod a.3. Danh hiệu tự đặt - Định nghĩa: Định hiệu tự đặt là một dãy ký tự dùng để đặt tên cho các hằng, biến, kiểu,... Khi đặt tên, ta phải chú ý một số điểm sau: + Không được đặt trùng tên với từ khoá + Ký tự đầu tiên của tên không được bắt đầu bởi các ký tự đặc biệt hoặc chữ số. + Không được đặt tên với ký tự space, các phép toán. Ví dụ: Các tên viết như sau là sai #PHUONGNHUNG Sai vì bắt đầu bằng ký tự đặc biệt. SO 1 Sai vì có khoảng trắng . ELSE Sai vì trùng với từ khoá. LAP-TRINH- TIN Sai vì dấu trừ (-) là phép toán. 1ABC Sai vì bắt đầu bằng chữ số. b. Cấu trúc chung của một chương trình Pascal . b1. Phần khai báo : - Phần khai baó bắt đầu bằng từ khóa Program. - Phần khai báo gồm: + Khai báo tên chương trình. + Khai báo thư viện. + Một số khai báo khác( khai báo biến, khai báo hằng) - Khai báo tên chương trình chấm dứt bằng dấu chấm phẩy(;). Tên chương trình phải được đặt theo đúng quy cách của danh hiệu tự đặt. Phần này có hay không cũng được. - Ví dụ: Program Giai _Phuong_trinh_bac_nhat; Program timsolonnhat ; - Khai báo các thư viện bằng từ khóa Uses.Ví dụ thư viện crt, - Ví dụ: Uses crt ; {khai báo thư viện crt } Thư viện crt trong Pascal cung cấp các chương trình có sẵn để làm việc với màn hình và bàn phím. - Ví dụ: Muốn xóa những gì đang có trên màn hình kết quả ta dùng lệnh Clrscr. - Khai báo Hằng: Hằng là đại lượng không đổi trong suốt quá trình thực hiện chương trình( Hằng được sử dụng cho các giá trị xuất hiện nhiều lần trong chương trình). Ta dùng tên hằng để chương trình rõ ràng và dễ sửa đổi. + Hằng được khai báo với từ khóa Const + Cú pháp Const = ; - Ví dụ : Const chiphi = 1000 ; - Khai báo Biến: Là đại lượng mà giá trị của nó có thể thay đổi trong quá trình thực hiện chương trình. + Biến được khai báo với từ khóa Var + Biến là tên của một vùng bộ nhớ lưu trữ dữ liệu. + Biến được xuất trong chương trình thông qua tên biến. + Biến là cấu trúc ghi nhớ dữ liệu, vì vậy phải quy định theo 1 kiểu dữ liệu nào đó. Ví dụ: Real, Integer, byte, + Cú pháp Var : ; Trong đó : Danh sách biến là một hay nhiều tên biến, các tên biến được viết cách nhau bởi dấu phẩy (,). Kiểu dữ liệu thường là một trong các kiểu dữ liệu chuẩn hay kiểu dữ liệu do người lập trình định nghĩa. Ví dụ : Var x , y : integer ; A: Array[1..50] of real; b2. Phần thân chương trình: - Phần thân chương trình là phần đặc biệt quan trọng và bắt buộc phải có, phần này luôn nằm giữa 2 từ khoá là begin và end. Ở giữa là lệnh mà các chương trình chính cần thực hiện. Đề bài yêu cầu viết chương trình thực hiện công việc gì thì ở phần thân phải có các câu lệnh dùng để thực hiện công việc đó. Sau từ khóa end là dấu chấm (.) để báo kết thúc chương trình. Các lệnh sau dấu chấm đều không có ý nghĩa. - Câu lệnh Câu lệnh đơn giản Câu lệnh có cấu trúc Vào dữ liệu Ra dữ liệu Lệnh gán (:=) Lệnh ghép(begin..end) Lệnh chọn (if..then..else) Lệnh lặp (for..to..do,. - Các thủ tục nhập, xuất thường dùng TT Thủ tục Cú pháp lệnh Ý nghĩa lệnh 1 Nhập Read(x1, x2,..., xn); Nhập các biến x1, x2,, xn theo hàng ngang từ bàn phím (con trỏ không xuống hàng). Readln(x1, x2, ..., xn); Nhập các biến x1, x2,, xn theo hàng dọc từ bàn phím (mỗi lần nhập con trỏ xuống hàng). Readln; Dừng chương trình, đợi Enter mới tiếp tục. 2 Xuất Write(x1, x2, ..., xn); Viết giá trị trong các biến x1, x2,..,xn ra màn hình theo hàng ngang( con trỏ không xuống hàng). Writeln(x1, x2, ..., xn); Viết giá trị trong các biến x1, x2,..., xn theo hàng dọc( mỗi lần viết giá trị x có xuống hàng). Writeln; Xuống hàng. Writeln(R : n : m); Viết ra giá trị của biến thực R vào n chỗ, chỉ lấp m số thập phân. - Lưu ý : + Dấu chấm phẩy (;): dùng để ngăn cách các câu lệnh của Pascal và không thể thiếu được trong quá trình viết các câu lệnh. + Lời chú thích: Lời chú thích dùng để chú giải cho người sử dụng chương trình nhớ nhằm trao đổi thông tin giữa người với người. Lời chú thích nằm giữa ký hiệu:{ }, hoặc (* *) Ví dụ : PROGRAM Tinh_tien; {Dòng tiêu đề, khai báo tên chương trình } USES Crt; { Khai báo sử dụng thư viện Crt } VAR soluong : integer ; { Khai báo biến } Dongia,thanhtien:real; Thongbao:string; CONST phi =5000; {Khai báo hằng} BEGIN { Thân chương trình chính } Clrscr ; { Xóa màn hình } Thongbao:=’tong so tien phai thanh toan:’; Write(’don gia=’); readln(dongia); Write(’so luong =’); readln(soluong); Thanhtien:=soluong*dongia+phi; Witeln(’thongbao,thanhtien:3:2’); readln END. { Kết thúc chương trình} 2.5. Chạy thử, thay đổi, kiểm tra chương trình - Một số phím chức năng thường dùng STT Phím Chức năng 1 F2 Lưu chương trình đang soạn thảo vào đĩa. 2 F3 Mở file mới hoặc file đã tồn tại trên đĩa để soạn thảo. 3 Alt +F3 Đóng file đang soạn thảo. 4 Alt + F5 Xem kết quả chạy chương trình. 5 F8 Chạy từng câu lệnh một trong chương trình. 6 Alt + X Thoát khỏi Turbo Pascal. 7 Alt + F9 Biên dịch chương trình 8 Ctrl + F9 Chạy chương trình 9 Alt + Dịch chuyển qua lại giữa các file đang mở. 10 F10 Vào hệ thống Menu của Pascal. a. Chạy thử Chạy thử và tìm lỗi và công việc học sinh cần phải làm khi viết xong chương trình để kiểm tra chương trình của mình. Chương trình là do con người viết ra, cho nên khó có thể tránh khỏi sự nhầm lẫn. Một chương trình viết xong chưa chắc đã chạy được ngay trên máy tính để cho ra kết quả mong muốn. Kỹ năng tìm lỗi, sửa lỗi, điều chỉnh lại chương trình cũng là một kỹ năng quan trọng của người lập trình. Kỹ năng này có được bằng kinh nghiệm tìm và sửa lỗi của chính mình. - Các loại lỗi cơ bản thường gặp khi lập trình: + Lỗi cú pháp: Lỗi này hay gặp nhất nhưng lại dễ sửa nhất, chỉ cần nắm vững ngôn ngữ lập trình là đủ. + Lỗi cài đặt: Việc cài đặt thể hiện không đúng thuật toán đã định, đối với lỗi này thì phải xem lại tổng thể chương trình, kết hợp với các chức năng gỡ rối để sửa lại cho đúng. + Lỗi thuật toán: Lỗi này ít gặp nhất nhưng nguy hiểm nhất, nếu nhẹ thì phải điều chỉnh lại thuật toán, nếu nặng thì có khi phải loại bỏ hoàn toàn thuật toán sai và làm lại từ đầu. b. Kiểm tra - Khi chạy thử chương trình học sinh cần chạy với bộ dữ liệu nhỏ mà ta có thể kiểm tra được chương trình đó chạy đúng hay sai. - Có nhiều chương trình rất khó để kiểm tra chạy chương trình ra kết quả đúng hay sai, vì chưa có kết quả nào chính xác cả. c. Thay đổi chương trình - Một chương trình đã viết xong, đã chạy thử tốt, giải quyết đúng bài toán mà ta mong muốn nhưng chưa có nghĩa là quá trình lập trình đã hoàn tất. Mà các em có thể sáng tạo, sửa đổi nó theo một hướng khác mà nó có thể đáp ứng được một yêu cầu mới. - Các tiêu chuẩn của một chương trình, để từ đó giúp học sinh viết chương trình tốt hơn như: + Tính tin cậy: Chương trình phải chạy đúng như dự định, mô tả đúng một giải thuật đúng. Thông thường khi viết chương trình, ta luôn có thói quen kiểm tra tính đúng đắn của các bước mỗi khi có thể. + Tính uyển chuyển: Chương trình phải dễ sửa đổi. Bởi ít có chương trình nào viết ra đã hoàn hảo ngay được mà vẫn cần phải sửa đổi lại. Chương trình viết dễ sửa đổi sẽ làm giảm bớt công sức của người lập trình khi phát triển chương trình. + Tính trong sáng: Chương trình viết ra phải dễ đọc dễ hiểu, để sau một thời gian dài, khi đọc lại còn hiểu mình làm cái gì? Để nếu có điều kiện thì còn có thể sửa sai cải tiến hay biến đổi để được chương trình giải quyết bài toán khác. Tính trong sáng của chương trình phụ thuộc rất nhiều vào công cụ lập trình và phong cách lập trình. + Tính hữu hiệu: Chương trình phải chạy nhanh và ít tốn bộ nhớ, tức là tiết kiệm được cả về không gian và thời gian. Để có một chương trình hữu hiệu, cần phải có giải thuật tốt và những tiểu xảo khi lập trình. Tuy nhiên, việc áp dụng quá nhiều tiểu xảo có thể khiến chương trình trở nên rối rắm, khó hiểu khi sửa đổi. Tiêu chuẩn hữu hiệu nên dừng lại ở mức chấp nhận được, không quan trọng bằng ba tiêu chuẩn trên. Bởi phần cứng phát triển rất nhanh, yêu cầu hữu hiệu không cần phải đặt ra quá nặng. - Ví du 1: Viết chương trình cho phép nhập n số và cho biết số nhỏ nhất trong các số vừa nhập là số thứ mấy. Chạy chương trình: lần 1 Chạy chương trình:lần 2 - Ví dụ 2. Giải bài toán cổ về việc sinh sản của thỏ.(Dãy số Fibonacci ). Bài toán đặt ra như sau: - Các con thỏ không bao giờ chết - Hai tháng sau khi ra đời, mỗi cặp thỏ mới sẽ sinh ra một cặp thỏ con (một đực, một cái) - Khi đã sinh con rồi thì cứ mỗi tháng tiếp theo chúng lại sinh được một cặp con mới Giả sử từ đầu tháng 1 có một cặp mới ra đời thì đến giữa tháng thứ n sẽ có bao nhiêu cặp. Ví dụ, n = 5, ta thấy: Giữa tháng thứ 1: 1 cặp (ab) (cặp ban đầu) Giữa tháng thứ 2: 1 cặp (ab) (cặp ban đầu vẫn chưa đẻ) Giữa tháng thứ 3: 2 cặp (AB)(cd) (cặp ban đầu đẻ ra thêm 1 cặp con) Giữa tháng thứ 4: 3 cặp (AB)(cd)(ef) (cặp ban đầu tiếp tục đẻ) Giữa tháng thứ 5: 5 cặp (AB)(CD)(ef)(gh)(ik) (cả cặp (AB) và (CD) cùng đẻ) Bây giờ, ta xét tới việc tính số cặp thỏ ở tháng thứ n: F(n) Nếu mỗi cặp thỏ ở tháng thứ n – 1 đều sinh ra một cặp thỏ con thì số cặp thỏ ở tháng thứ n sẽ là: F(n) = 2 * F(n – 1) Nhưng vấn đề không phải như vậy, trong các cặp thỏ ở tháng thứ n – 1, chỉ có những cặp thỏ đã có ở tháng thứ n – 2 mới sinh con ở tháng thứ n được thôi. Do đó F(n) = F(n – 1) + F(n – 2) (= số cũ + số sinh ra). Vậy có thể tính được F(n) theo công thức sau: • F(n) = 1 nếu n ≤ 2 • F(n) = F(n – 1) + F(n – 2) nếu n > 2. Việc giải bài toán này giúp các em vừa rèn luyện khả năng toán hoặc cũng như tìm hiểu về môn sinh học. Chạy chương trình: Ví dụ 3 Giải phương trình bậc nhất 1 ẩn ax + b = 0 Chạy chương trình III. Hiệu quả do sáng kiến đem lại. 3.1.Hiệu quả về mặt kinh tế - Giúp học sinh hiểu bài, thao tác nhanh hơn với chương trình pascal, áp dụng được kiến thức đã học vào một số công việc thực tế giúp đỡ gia đình, người thân như tính toán...tạo ra của cải vật chất cho gia đình nhằm nâng cao chất lượng cuộc sống. - Tạo niềm đam mê, tìm tòi viết lên những chương trình trò chơi đơn giản nhưng bổ ích, phù hợp với lứa tuổi tạo nên niềm vui, giải trí vào những lúc rảnh rỗi, tránh khỏi những trò chơi tệ nạn. Tiết kiệm tiền mua đồ chơi không thiết thực, dành tiền phục vụ cho vụ học tập và giải trí lành mạnh. 3.2. Hiệu quả về mặt xã hội (Giá trị làm lợi không tính thành tiền- Nâng cao chất lượng GD .v.v..): - Tỉ lệ học sinh đạt kết quả khá giỏi tăng lên rõ rệt, đặc biệt là tỉ lệ học sinh trung bình, yếu, kém giảm xuống đáng kể. + Bảng thống kê chất lượng môn tin học khối 8 trước khi áp dụng sáng kiến: TT LỚP SĨ SỐ CHẤT LƯỢNG GIỎI KHÁ TB YẾU KÉM SL % SL % SL % SL % SL % 1 8A 30 4 13,3 10 33,3 14 42,4 2 6,7 0 0 2 8B 29 3 7,7 8 27,6 16 55,2 2 6,9 0 0 + Bảng thống kê chất lượng môn tin học khối 8 sau khi áp dụng sáng kiến: TT LỚP SĨ SỐ CHẤT LƯỢNG GIỎI KHÁ TB YẾU KÉM SL % SL % SL % SL % SL % 1 8A 30 8 26,7 16 53,3 5 16,7 0 0 0 0 2 8B 31 9 29 17 54,8 4 12,9 1 3,2 0 0 - Học Pascal giúp cho các em hiểu được cách làm việc của máy tính, cách giao tiếp để ra lệnh cho máy tính làm việc theo sự điều khiển của con người thông qua ngôn ngữ lập trình. Các em có thể tạo ra các chương trình thú vị bằng cách sử dụng các câu lệnh Pascal. Cũng giống như những môn học khác như Toán học, Vật lý, Hóa học khi các em đã thực sự hiểu và yêu thích bộ môn Tin học các em sẽ tìm thấy nhiều niềm vui, sự đam mê khi tìm hiểu và khám phá những điều mới mẻ nhưng đầy hấp dẫn trong bộ môn tưởng chừng như khô khan này. - Tạo cho học sinh những kĩ năng cần thiết, nền tảng vững chắc trong quá trình lập trình. Giúp cho các em có được sự năng động, nắm bắt khoa học kĩ thuật tiên tiến của thời đại đồng thời tạo cho thế hệ trẻ trong tương lại ngày càng nhạy bén và chuyên nghiệp trong công việc. Xây dựng một đội ngũ thế hệ trẻ trong tương lai về kỹ năng lập trình vững vàng và sáng tạo nhằm tạo sự phát triển nguồn nhân lực trí thức về công nghệ phần mềm góp phần đưa kinh tế xã nhà phát triển khi sản xuất được cơ khí hóa, điện khí hóa, tự động hóa, tin học hóa với những công nghệ hiện đại, xây dựng huyện Mỹ Lộc ngay một giàu mạnh, góp một phần đưa nước Việt Nam trở thành một nước công nghiệp hóa – hiện đại hóa. - Học lập trình sẽ làm tăng khả năng của học sinh và là công cụ giúp các em thể hiện bản thân. Việc biết sử dụng một chiếc máy tính thông thạo sẽ giúp các em có thể giải quyết những vấn đề phức tạp một cách nhanh nhất, biến những sáng tạo của các em trở thành nội dung thiết thực với thực tế hơn là chỉ học qua sách vở. Những quan trọng hơn là những gì mà các em được tiếp nhận là kỹ năng “ giao tiếp” một cách thành thạo với máy móc. - Các em học tốt lập trình, cũng là cách rèn luyện, tự học tự rèn luyện ngoại ngữ( Tiếng Anh) một môn học rất hữu ích là hành trang để các em vững bước vào tương lai. - Học lập trình sẽ giúp các em gia tăng sự làm việc của trí óc, khiến các em suy nghĩ tốt hơn và tạo ra một hướng suy nghĩ hữu ích trong tất cả các lĩnh vực trong cuộc sống. - Giúp học sinh làm chủ thiết bị công nghê cao, bắt đầu từ giai đoạn sử dụng, tương tác với các thiết bị công nghệ đơn giản, các sản phẩm công nghệ đỉnh cao của thế giới nhàm chán với các công nghệ đã có, cùng với sự tư duy sáng tạo, chuyển sang giai đoạn tạo ra công nghệ và thể hiện bản thân theo những cách mới. -Theo thống kê, trong số 10 nghành nghề có thu nhập cao nhất năm 2015 thì có đến 4 công việc cần đến những lập trình viên kinh nghiệm. Vì vậy việc học tốt lập trình là một định hướng đúng đắn cho tương lai sau này của con em chúng ta. IV.Cam kết không sao chép hoặc vi phạm bản quyền. Tôi xin cam đoan không sao chép hoặc vi phạm bản quyền của tác giả khác, nếu vi phạm tôi xin chịu hoàn toàn trách nhiệm trước pháp luật. CƠ QUAN ĐƠN VỊ ÁP DỤNG SÁNG KIẾN (xác nhận, đánh giá, xếp loại) TÁC GIẢ SÁNG KIẾN (Ký ghi rõ họ tên) Trần Thị Phương Nhung PHÒNG GIÁO DỤC ĐÀO TẠO MỸ LỘC (xác nhận, đánh giá, xếp loại) PHỤ LỤC Nội dung Trang I. Điều kiện hoàn cảnh tạo ra sáng kiến 1 II. Mô tả giải pháp 3 1. Tình hình thực tế trước khi tạo sáng kiến 3 1.1. Thuận lợi 3 1.2 Khó khăn 4 2. Mô tả giải pháp sau khi có sáng kiến 5 2.1. Xác định bài toán 6 2.2. Tìm dữ liệu biểu diễn thuật toán 12 2.3. Xây dựng thuật toán 13 2.4. Viết chương trình 20 2.5. Chạy thử, thay đổi, kiểm tra chương trình 26 III. Hiệu quả do sáng kiến đem lại 34 3.1. Hiệu quả về mặt kinh tế 34 3.2. Hiệu quả về mặt xã hội 34 IV. Cam kết không sao chép hoặc vi phạm bản quyền 36
File đính kèm:
sang_kien_kinh_nghiem_nang_cao_ky_nang_lap_trinh_pascal.doc