+ Các em học sinh trung bình, yếu nắm vững một số thuật ngữ, cấu trúc chung của một chương trình trong ngôn ngữ lập trình Pascal và viết được các chương trình sử dụng các thủ tục đơn giả[r]
(1)A MỞ ĐẦU I Đặt vấn đề: Lập trình đơn giản đưa vào chương trình dạy học môn Tin học cấp Trung học sở năm gần đây Tuy nhiên, việc dạy và học giáo viên và học sinh trường còn gặp nhiều khó khăn Vì học sinh cung cấp khối lượng lớn các kiến thức Mặt khác, học sinh bước đầu làm quen với số thuật ngữ, các hàm, thủ tục để viết chương trình ngôn ngữ lập trình Qua quá trình giảng dạy, thân nhận thấy học sinh thiếu kĩ việc viết các chương trình, sử dụng các quy tắc viết chương trình cách tùy tiện, vận dụng rập khuôn các chương trình mẫu, thiếu kĩ phân tích, hình thành ý tưởng và xây dựng thuật toán giải bài toán để viết nên chương trình hoàn chỉnh Dẫn đến tình trạng học sinh ít có hứng thú môn học và kết học tập không đạt chất lượng cao Vì vậy, đòi hỏi cần phải có giải pháp Rèn kỹ viết chương trình Turbo Pascal mang lại kiến thức tổng hợp các hàm, thủ tục chương trình; kĩ viết chương trình đơn giản ngôn ngữ lập trình Pascal dựa trên cấu trúc chung chương trình, qua việc phân tích đề bài tập và hình thành ý tưởng giải bài tập Giúp học sinh có thể tổng hợp nhanh các kiến thức và tự rèn luyện kĩ viết số chương trình tương tự ngôn ngữ lập trình Pascal thông qua số chương trình mẫu Giúp học sinh yêu thích môn học Đề tài nghiên cứu chủ đề Lập trình đơn giản môn Tin học và trên đối tượng học sinh khối II Phương pháp tiến hành: Cơ sở lí luận và thực tiễn: a Cơ sở lí luận: Dựa trên các kiến thức lý thuyết qua đơn vị bài học chủ đề Lập trình đơn giản môn Tin học để xây dựng đề tài và cụ thể là các nội dung kiến thức liên quan đến ngôn ngữ lập trình Pascal bao gồm: a.1- Một số thuật ngữ: - Từ khóa (key word): Từ vựng TURBO PASCAL trước hết gồm số từ riêng TURBO PASCAL gọi là từ khóa Người lập trình phải dùng từ khóa theo đúng quy tắc đề Một số từ khóa thường dùng TURBO PASCAL: and, array, begin, const, div, do, downto, else, end, for, if, mod, not, of, or, program, string, then, to, type, uses, var, while, with, … - Tên (identifier): Dùng để xác định các đại lượng khác chương trình Chúng ta có tên hằng, tên biến, tên mảng, tên hàm, tên chương trình, … Tên đặt theo qui tắc sau: + Tên là dãy các kí tự bao gồm chữ cái, chữ số và dấu gạch nối + Tên không bắt đầu chữ số, không chứa kí tự trống + Tên không trùng với từ khóa + Tên có thể có chiều dài tùy ý có 63 kí tự đầu tiên là có ý nghĩa + Trong chương trình, hai đại lượng khác phải có tên khác - Tên chuẩn (predefined identifier): Là tên đã định nghĩa sẵn Một số tên chuẩn TURBO PASCAL: Boolean, Char, Integer, Real, Byte, False, True, Abs, Sqr, Sqrt, Read, Readln, Write, Writeln, … - Câu lệnh: Một chương trình gồm nhiều câu lệnh Mỗi câu lệnh thực công việc nào đó Câu lệnh có thể viết trên hay nhiều dòng phải kết thúc dấu chấm phẩy (;) (2) - Lời giải thích: Có thể đưa vào các lời bình luận, giải thích, ghi chú để làm cho chương trình dễ đọc, dễ hiểu mà không làm ảnh hưởng đến làm việc chương trình Các lời giải thích cần đặt hai dấu { } hai cụm dấu (* *) a.2- Các thủ tục vào ra: - Thủ tục in màn hình: + Write (…); Đưa trên dòng màn hình các giá trị nguyên, thực, ký tự và trỏ không chuyển xuống dòng + Writeln (…); Đưa trên dòng màn hình các giá trị nguyên, thực, ký tự và trỏ chuyển xuống dòng + Writeln; Đưa trỏ xuống dòng + Write (lst); Writeln (lst); Đưa kết máy in Lưu ý: + Để in giá trị nguyên I có thể dùng hai cách: Writeln (I); Writeln (I:m); {m là số vị trí để in I} + Để in giá trị thực R, thường dùng câu lệnh: Writeln (R:m:n); {m là số vị trí dùng để in R, n là số chữ số thập phân} + Để in chuỗi kí tự, ta đặt nó cặp dấu nháy đơn: Writeln (‘Tay Vinh’); - Nhập số liệu từ bàn phím: + Readln (x); {Nhập giá trị vào từ bàn phím và gán giá trị đó cho biến x} + Readln; {Tạm dừng chương trình nhấn phím Enter} a.3- Kiểu liệu, hằng, biến, mảng: - Kiểu liệu đơn giản: + Kiểu nguyên: Kiểu Shortint Byte Integer Word Longint Phạm vi biểu diễn -128 127 255 -32768 32767 65535 -2147483648 2147483647 Số Byte 1 2 + Kiểu thực: Số chữ số có Số Byte nghĩa Single 1.5*10-45 3.4*1038 7–8 Real 2.9*10-39 7*1038 11 – 12 -324 308 Double 5*10 1.7*10 15 – 16 -4932 4932 Extended 3.4*10 1.1*10 19 – 20 10 18 18 Comp -9.2*10 9.2*10 19 – 20 + Kiểu Boolean: Có hai giá trị là False và True Giá trị False xem là nhỏ True Mỗi giá trị kiểu Boolean chiếm byte nhớ + Kiểu Char (kí tự): Một giá trị kiểu Char chiếm byte và biểu diễn kí tự thông qua bảng mã ASCII + Kiểu String (chuỗi kí tự): Kiểu xâu kí tự biểu diễn dãy kí tự bất kì đặt cặp dấu nháy đơn Số kí tự dãy không quá 255 Xâu không có kí tự nào gọi là xâu rỗng Kiểu Phạm vi biểu diễn (3) - Khai báo biến: Var <Tên biến>: <kiểu liệu>; - Khai báo mảng: Var <Tên mảng>: array[<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>; {Trong đó: + array, of: là các từ khóa + <chỉ số đầu>, <chỉ số cuối> xác định số phần tử đầu tiên và số phần tử cuối cùng mảng + Chỉ số đầu, số cuối là các số có giá trị nguyên; số đầu bé số cuối + Kiểu liệu có thể là Integer Real.} - Khai báo hằng: Const <Tên hằng> = <giá trị biểu thức hằng>; Lưu ý: Có thể khai báo theo cú pháp: Const <Tên hằng>: <kiểu liệu> = <giá trị biểu thức hằng>; a.4- Các phép tính và hàm thường dùng: - Các phép tính thường dùng: Kí hiệu Phép toán Kiểu liệu + Cộng Số nguyên, số thực Trừ Số nguyên, số thực * Nhân Số nguyên, số thực / Chia Số nguyên, số thực Div Chia lấy phần nguyên Số nguyên Mod Chia lấy phần dư Số nguyên - Các hàm thường dùng: + Abs(x): Cho giá trị tuyệt đối x + Sqr(x): Cho bình phương x + Sqrt(x): Cho bậc hai x a.5- Một số toán tử điều khiển: - Truy cập đến phần tử mảng: Cú pháp: Tên biến mảng [chỉ số phần tử] - Câu lệnh gán: Cú pháp: Tên biến:= <biểu thức cần gán giá trị>; - Câu lệnh điều kiện: Cú pháp: + Dạng thiếu: If <điều kiện> then <câu lệnh>; {Cách thực hiện: Kiểm tra <điều kiện> Nếu điều kiện thõa mãn thì thực <câu lệnh>, ngược lại bỏ qua <câu lệnh>} + Dạng đầy đủ: If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>; {Cách thực hiện: Kiểm tra <điều kiện> Nếu điều kiện thõa mãn thì thực <câu lệnh 1>, ngược lại thực <câu lệnh 2>} * Lưu ý: + If, then, else: Là các từ khóa; + Điều kiện thường là các phép so sánh - Câu lệnh lặp: Cú pháp: (4) + Lặp với số lần xác định: For <biến đếm>:= <giá trị đầu> to <giá trị cuối> <câu lệnh>; {- Trong đó: + For, to, do: là các từ khóa + Biến đếm là biến kiểu nguyên + Giá trị đầu, giá trị cuối là các giá trị nguyên + Câu lệnh có thể là câu lệnh đơn câu lệnh ghép + Số lần lặp câu lệnh = giá trị cuối – giá trị đầu + - Cách thực hiện: ban đầu biến đếm nhận giá trị là giá trị đầu, sau vòng lặp biến đếm tự động tăng thêm đơn vị giá trị cuối} + Lặp với số lần chưa biết trước: While <điều kiện> <câu lệnh>; {- Trong đó: + While, do: là các từ khóa + Điều kiện thường là phép so sánh + Câu lệnh có thể là câu lệnh đơn câu lệnh ghép - Cách thực hiện: Kiểm tra điều kiện; Nếu điều kiện đúng thì thực câu lệnh và quay lại bước Nếu điều kiện sai thì bỏ qua câu lệnh và kết thúc vòng lặp} a.6- Cấu trúc chương trình Turbo Pascal: (*Phần khai báo*) Program <tên chương trình>; Uses <tên thư viện>; Const <khai báo hằng>; Type <khai báo kiểu liệu>; Var <khai báo biến>; (*Phần thân chương trình*) Begin [Các câu lệnh chương trình] End b Cơ sở thực tiễn: Học sinh cung cấp nội dung kiến thức và số chương trình mẫu phù hợp qua đơn vị bài học Viết và kiểm tra số chương trình mẫu thông qua các tiết thực hành Các biện pháp tiến hành, thời gian tạo giải pháp: - Các biện pháp tiến hành: + Hệ thống lại kiến thức lí thuyết qua tiết bài tập + Chắc lọc số bài tập từ đơn giản đến khó dần, hướng dẫn học sinh phân tích, hình thành ý tưởng và xây dựng thuật toán để giải bài toán bài toán quen thuộc tương ứng với nội dung Từ thuật toán hướng dẫn học sinh vận dụng các thủ tục, hàm, câu lệnh phù hợp để viết thành chương trình ngôn ngữ lập trình Pascal Sau đó, cho học sinh áp dụng tương tự - Thời gian tạo giải pháp: Giải pháp nghiên cứu các năm học 2011– 2012, 2013 – 2014 Và giải pháp tạo năm học 2013 – 2014 (5) B NỘI DUNG I Mục tiêu: - Hệ thống lại cách ngắn gọn các kiến thức lí thuyết đã học cách lôgic - Chuyển tải hệ thống bài tập đã tích lũy đến tất học sinh lớp mà thân giảng dạy cách tỉ mỉ, rõ ràng Có học sinh giải các dạng bài tập tương tự chương trình cách nhẹ nhàng Đồng thời qua đó học sinh yêu thích và học tích cực môn Tin học II Mô tả giải pháp đề tài: Thuyết minh tính mới: a- Dạng 1: Sử dụng thủ tục in màn hình {Thủ tục này sử dụng chương trình} Bài tập 1: Viết chương trình Pascal in dòng chữ “ Chaocacban!” (6) Để giải bài tập này: - Nắm các quy tắc viết chương trình ngôn ngữ lập trình Yêu cầu - Cấu trúc chương trình ngôn ngữ lập trình Pascal Giáo viên Học sinh ? Thủ tục in màn hình là gì? - Write(…); Writeln(…); ? Nội dung in là gì? - Chaocacban! Phân tích ? Em có nhận xét gì nội dung - Là dãy kí tự in màn hình? ? Dãy đó có bao nhiêu kí tự? - Có 11 kí tự ? Để in dãy kí tự, ta phải làm - Đặt dãy kí tự đó cặp dấu nào? nháy ‘ ‘ Ý tưởng Dùng thủ tục in màn hình Writeln(‘Chaocacban!’); Program Inchu; Phần khai báo Uses crt; Chương trình Begin Phần thân Writeln(‘Chaocacban!’); End Để dễ phân biệt, ta viết các từ khóa bắt đầu và kết thúc phần thân chương Lưu ý học sinh trình thẳng theo cột dọc Các câu lệnh phần thân thụt vào khoảng cách Từ bài tập trên, ta tăng thêm số lượng dãy các kí tự in màn hình Bài tập Viết chương trình Pascal in hình chữ nhật theo mẫu: ***** ***** ***** Chương trình: Program Inhinh; Uses crt; Begin Writeln(‘*****’); Writeln(‘*****’); Writeln(‘*****’); End Bài tập Viết chương trình in màn hình theo mẫu: * *** ***** Nếu học sinh không phân tích để hình thành ý tưởng mà áp dụng theo các chương trình mẫu trên thì chương trình viết sau: Program Inhinhnon; Uses crt; Begin Writeln(‘*’) ; Writeln(‘* * *’) ; Writeln(‘* * * * *’) ; End Và thực hện chương trình in màn hình mẫu: * (7) *** ***** Không đúng theo mẫu đã cho ⇒ Cần phân tích kĩ đề bài để hình thành ý tưởng đúng cho bài toán Yêu cầu Phân tích - Nắm các quy tắc viết chương trình ngôn ngữ lập trình - Cấu trúc chương trình ngôn ngữ lập trình Pascal Giáo viên Học sinh ? Thủ tục in màn hình là gì? - Write(…); Writeln(…); ? Nội dung in trên bao nhiêu - Trên dòng dòng? ? Số kí tự * trên dòng? - Học sinh: Dòng 1: có 1, dòng 2: có 3, dòng có - Giáo viên: Lưu ý học sinh dòng và khoảng cách hai dấu * là kí tự trống - Giáo viên gợi ý: ? Em có nhận xét gì kí tự * - Học sinh : * dòng thứ thẳng dòng thứ so với dòng thứ 2, 3? cột với * thứ dòng thứ và * thứ dòng thứ (từ trái sang) ? Tương tự, em có nhận xét gì các - Học sinh: * thứ dòng * còn lại dòng thứ hai so với thẳng cột so với * thứ hai dòng dòng thứ 3? 3, và * thứ dòng thẳng cột với * thứ dòng ? Mỗi dòng có bao nhiêu kí tự? - Mỗi dòng có kí tự ? Kí tự trống thể qua phím - Phím cách nào? Dùng các thủ tục in màn hình cho dòng: Writeln(‘ * ’) ; Ý tưởng Writeln(‘ * * * ’) ; Writeln(‘* * * * *’) ; Program Inhinhnon; Uses crt; Begin Chương trình Writeln(‘ * ’) ; Writeln(‘ * * * ’) ; Writeln(‘* * * * *’) ; End Cho đến chương trình này, rèn cho học sinh ngoài kĩ vận dụng tương tự các chương trình đã có, còn giúp học sinh rèn kĩ phân tích lôgic tìm điểm khác biệt, và phát điểm cần lưu ý sử dụng thủ tục in màn hình ⇒ Như qua các bài tập trên, giúp học sinh rèn các kĩ phân tích đề bài, phát điểm mới, điểm khác biệt bài tập và giải pháp giải cho điểm khác biệt đó Cụ thể qua bài tập * Một số bài tập tương tự: Bài Viết chương trình Pascal in màn hình theo mẫu sau: ***** **** (8) *** ** * Bài Viết chương trình Pascal in màn hình theo mẫu sau: * *** ***** ******* *** *** *** Bài Viết chương trình Pascal in màn hình theo mẫu sau: *** *** * **** * ** ** ** *** *** *** *** b) Dạng 2: Chương trình nhập giá trị cho biến Hầu hết các chương trình Pascal sử dụng hai thủ tục in màn hình và thủ tục nhập vào giá trị cho biến Trong chương trình sách giáo khoa có nhiều chương trình mẫu thể hai thủ tục trên Tuy nhiên chưa có chương trình cụ thể nào viết riêng cho hai thủ tục trên Để giúp học sinh đặc biệt là đối tượng học sinh yếu, trung bình nắm vững hai thủ tục này, sau đây tôi trình bày số bài tập: Bài tập Viết chương trình Pascal nhập giá trị từ bàn phím cho biến kiểu nguyên Yêu cầu Phân tích Ý tưởng Chương trình - Nắm các quy tắc viết chương trình ngôn ngữ lập trình - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Các thủ tục in màn hình và thủ tục nhập số liệu từ bàn phím Giáo viên Học sinh ? Để biến sử dụng - Khai báo biến chương trình, trước hết ta phải làm gì? ? Cú pháp khai báo biến? - Var <tên biến>: <kiểu liệu>; ? Theo đề bài, biến chương - Kiểu nguyên trình này có kiểu gì? ? Để in thông báo nhập giá trị cho - Write(…); Writeln(…); biến nào đó ta dùng thủ tục nào? ? Để nhập giá trị cho biến ta dùng - Read(…); Readln(…); thủ tục nào? - Sử dụng biến x có kiểu nguyên - Nhập giá trị cho biến x các thủ tục: Write(‘Nhap gia tri cho bien x =’); Readln(x); Program Nhapgiatrichobien; Uses crt; Var x: integer; Begin Write(‘Nhap gia tri cho bien x=’); Readln(x); (9) End + x thủ tục readln không đặt cặp dấu nháy + Trong chương trình dùng thủ tục: Write(‘Nhap gia tri cho bien x=’); Readln(x); → Giá trị nhập vào nằm trên cùng dòng với nội dung thông Lưu ý học sinh báo Không dùng thủ tục: Writeln (‘Nhap gia tri cho bien x=’); Readln(x); → Giá trị nhập vào nằm khác dòng với nội dung thông báo * Giáo viên có thể các bài tập tương tự yêu cầu cao hơn: Bài tập 5: Viết chương trình Pascal tính chu vi và diện tích hình tròn Bán kính r nhập vào từ bàn phím Cách 1: - Nắm các quy tắc viết chương trình ngôn ngữ lập trình - Cấu trúc chương trình ngôn ngữ lập trình Pascal Yêu cầu - Các thủ tục in màn hình và nhập số liệu từ bàn phím - Các công thức tính chu vi và diện tích hình tròn theo bán kính r Giáo viên Học sinh ? Công thức tính chu vi và diện tích - Học sinh: Chu vi: 2* 3.14 * r; hình tròn theo r? Diện tích: 3.14 * r * r ? Theo đề bài đại lượng nào có giá - Học sinh: r trị thay đổi? ? Đại lượng có giá trị thay đổi - Biến chương trình gọi là gì? Phân tích ? Trong chương trình sử dụng bao - Một biến nhiêu biến? ? Cú pháp khai báo biến? - Var tên biến: kiểu liệu; ? Theo đề bài, biến chương - Kiểu thực trình này có kiểu gì? ? Để in thông báo nhập giá trị cho - Write(…); Writeln(…); biến nào đó ta dùng thủ tục nào? ? Để nhập giá trị cho biến ta dùng - Read(…); Readln(…); thủ tục nào? - Dùng biến r để lưu giá trị bán kính - Dùng thủ tục Readln(r) để nhập giá trị cho bán kính - Sử dụng các công thức tính: Chu vi: 2* 3.14 * r; Diện tích: 3.14 * r*r Ý tưởng - Dùng thủ tục in màn hình Writeln(2* 3.14* r); Writeln(3.14* r*r) để in các kết tính diện tích và chu vi hình tròn Chương trình Program Chuvivadientichhinhtron; Uses crt; Var r: real; Begin Clrscr; Write(‘Nhap ban kinh r=’); Readln(r); {Nhập bán kính r =} Writeln(‘Ban kinh =’, r: 5: 2); {In giá trị bán kính} Writeln(‘Chu vi =’, 6.28 *r: 5: 2); (10) {Tính và in giá trị chu vi} Writeln(‘Dien tich =’, 3.14* r* r: 5: 2); {Tính và in giá trị diện tích} Readln; {Tạm ngưng chương trình nhấn phím Enter} Lưu ý End - Clrscr: lệnh xóa màn hình và đưa trỏ phía trên bên trái màn hình Lệnh Clrscr dùng sau đã khai báo thư viện crt - Khi sử dụng thủ tục in màn hình cho các số thực cần phải chọn số vị trí in và số chữ số thập phân Cách 2: Yêu cầu Phân tích Ý tưởng Thuật toán Chương trình - Nắm các quy tắc viết chương trình ngôn ngữ lập trình - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Các thủ tục in màn hình và nhập số liệu từ bàn phím - Các công thức tính chu vi và diện tích hình tròn theo bán kính r Giáo viên Học sinh ? Công thức tính chu vi và diện tích - Học sinh: Chu vi: CV = 2*3.14* r; hình tròn theo r? Diện tích: DT = 3.14*r* r ? Theo đề bài đại lượng nào có giá - Học sinh: r trị thay đổi? ? Đại lượng có giá trị thay đổi - Biến chương trình gọi là gì? ? Trong chương trình sử dụng bao - Ba biến nhiêu biến? ? Cú pháp khai báo biến? - Var tên biến: kiểu liệu; ? Theo đề bài, biến chương - Kiểu thực trình này có kiểu gì? ? Để in thông báo nhập giá trị cho - Write(…); Writeln(…); biến nào đó ta dùng thủ tục nào? ? Để nhập giá trị cho biến ta dùng - Read(…); Readln(…); thủ tục nào? - Dùng biến r để lưu giá trị bán kính, biến CV lưu kết tính chu vi, biến DT để lưu kết tính diện tích hình tròn Và các biến này có kiểu số thực - Dùng thủ tục Readln(r) để nhập giá trị cho bán kính - Sử dụng các công thức tính: Chu vi: 2* 3.14 * r; Diện tích: 3.14 *r *r - Dùng thủ tục in màn hình Writeln(CV); Writeln(DT) để in các kết tính diện tích và chu hình tròn Bước Nhập bán kính r; Bước CV ← 2* 3.14* r; DT ← 3.14* r* r; Bước Thông báo kết và kết thúc thuật toán Program Chuvivadientichhinhtron; Uses crt; Var r, CV, DT: real; Begin Clrscr; Write(‘Nhap ban kinh r=’); Readln(r); (11) {Nhập bán kính r =} CV: = 2* 3.14* r; DT: = 3.14* r* r; Writeln(‘Ban kinh =’, r: 5: 2); Writeln(‘Chu vi =’, CV: 5: 2); Writeln(‘Dien tich =’, DT: 5: 2); Readln; End * Cho học sinh làm bài tập tương tự: Bài tập 6: Viết chương trình Pascal nhập vào từ bàn phím họ tên, điểm toán, điểm lí, điểm hóa học sinh Sau đó in màn hình tổng điểm thí sinh đó Chương trình: Program Tinhtongdiem; {Tên chương trình là Tinhtongdiem} Uses crt; Var ht: String; {ht là biến thuộc kiểu xâu kí tự, thể tên học sinh} Toan, Li, Hoa, Tong: real; {Toan, Li, Hoa, Tong là các biến thuộc kiểu số thực, chúng thể các điểm toán, điểm lí, điểm hóa và tổng điểm} Begin Clrscr; Write(‘Nhap ho ten:’); Readln(ht); {Nhập họ tên học sinh} Write(‘Nhap diem toan:’); Readln(Toan); {Nhập điểm Toán} Write(‘Nhap diem li:’); Readln(Li); {Nhập điểm Lí} Write(‘Nhap diem hoa:’); Readln(Hoa); {Nhập điểm Hóa} Tong:= Toan + Li + Hoa; {Tính tổng điểm ba môn} Writeln(‘Tong diem:’, Tong: 5: 2); {In tổng điểm} Readln; End * Bài tập tương tự: Bài Viết chương trình Pascal tính chu vi và diện tích hình chữ nhật với độ dài các cạnh nhập vào từ bàn phím (Học sinh sử dụng các công thức: Chu vi = (chiều dài + chiều rộng) x 2; Diện tích = (chiều dài x chiều rộng)) Bài Viết chương trình Pascal tính chu vi và diện tích hình vuông với độ dài cạnh nhập vào từ bàn phím (Học sinh sử dụng các công thức: Chu vi = cạnh x 4; Diện tích = cạnh x cạnh) Bài Viết chương trình Pascal tính chu vi và diện tích hình thang với độ dài hai cạnh đáy, hai cạnh bên và đường cao nhập vào từ bàn phím (Học sinh sử dụng các công thức: (12) Chu vi = (Đáy lớn + đáy bé + cạnh bên thứ + cạnh bên thứ 2); Diện tích = ((đáy lớn + đáy bé)x đường cao): 2) c- Dạng 3: Chương trình có sử dụng câu lệnh điều kiện, câu lệnh lặp: Việc phân tích hình thành ý tưởng giải bài toán học sinh vừa làm quen với ngôn ngữ lập trình là vấn đề khó khăn Sau đây là số bài tập câu lệnh điều kiện, câu lệnh lặp giúp học sinh nâng cao kĩ phân tích thông qua số câu hỏi → hình thành ý tưởng → xây dựng thuật toán → viết chương trình gặp bài tập tương tự Bài tập Viết chương trình Pascasl nhập từ bàn phím hai số thực x, y và in số lớn hai số thực x, y - Nắm các quy tắc viết chương trình ngôn ngữ lập trình Yêu cầu - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Cú pháp và cách thực câu lệnh điều kiện dạng thiếu và dạng đầy đủ Giáo viên Học sinh ? Chương trình viết cho bao - Ba yêu cầu: nhập số thực x, y từ nhiêu yêu cầu? Đó là yêu cầu bàn phím, in màn hình số lớn nào? Phân tích Ý tưởng Thuật toán Chương trình Lưu ý ? Yêu cầu quan trọng cần giải - In màn hình số lớn là gì? ? Để biết số lớn hai số ta - Thực phép so sánh > < làm nào? ? Sử dụng câu lệnh gì để thể - Câu lệnh điều kiện hai cách kiểm tra trên? - Hai biến x, y lưu hai giá trị thực nhập vào từ bàn phím Và biến max để lưu giá trị lớn - Thực phép so sánh x > y Bước Nhập các số thực x, y Bước Nếu x > y thì thực max ← x; ngược lại max ← y; Bước Thông báo và kết thúc thuật toán Program Giatrilonhon; Uses crt; Var x, y, max: real; Begin Clrscr; Write(‘Nhap so thuc x, y: ’); Readln(x, y); If x > y then max: = x else max: = y; Writeln(‘Gia tri lon hon hai so la: ‘, max:3:1); Readln; End - Phát triển bài toán tìm giá trị lớn ba số thực x, y, z Bài tập Hãy viết chương trình kiểm tra xem năm n nhập vào từ bàn phím có phải là năm nhuận hay không Biết năm nhuận là năm chia hết cho 4, đó là năm chẵn trăm thì năm đó phải chia hết cho 400 - Nắm các quy tắc viết chương trình ngôn ngữ lập trình Yêu cầu - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Cú pháp và cách thực câu lệnh điều kiện dạng thiếu và dạng đầy đủ Phân tích Giáo viên Học sinh (13) ? Chương trình viết cho bao - Hai yêu cầu: nhập năm n từ bàn nhiêu yêu cầu? Đó là yêu cầu phím, kiểm tra xem n có phải là năm nào? nhuận hay không Ý tưởng Thuật toán Chương trình ? Yêu cầu quan trọng cần giải - Kiểm tra xem n có phải là năm là gì? nhuận hay không ? n là năm nhuận nào? - Khi n chia hết cho (nếu n không là năm chẵn trăm) n chia hết cho 400 (nếu n là năm chẵn trăm) ? Phép chia hết không chia hết - Phép chia lấy phần dư Pascal thể thông qua phép toán nào? ? Nếu là phép chia hết thì kết - Là giá trị phép chia lấy phần dư là gì? ? Nội dung n chia hết cho (nếu n - Học sinh: (n mod = 0) và (n mod không là năm chẵn trăm) thể 100) phép chia lấy phần dư nào? ? Nội dung n chia hết cho 400 (nếu n - Học sinh: n mod 400 = là năm chẵn trăm) thể phép chia lấy phần dư nào? - Biến n lưu năm nhập vào từ bàn phím - Sử dụng câu lệnh điều kiện dạng đủ - Điều kiện (n mod = 0) và (n mod 100) n mod 400 = Bước Nhập năm n Bước Nếu (n mod = 0) và (n mod 100) (n mod 400 = 0) thì in thông báo “ n la nam nhuan”; ngược lại in thông báo “n khong la nam nhuan”; Bước Kết thúc thuật toán Program Kiemtranamnhuan; Uses crt; Var n: Integer; Begin Clrscr; Write(‘Nhap nam n =’); Readln(n); If (n mod = 0) and (n mod 100) < > or (n mod 400 = 0) writeln (‘nam’, n, ‘la nam nhuan’) Else writeln(‘nam’, n, ‘khong la nam nhuan’); Readln; End Bài tập Viết chương nhập ba số dương a, b, c từ bàn phím, kiểm tra và in màn hình kết kiểm tra ba số đó có phải là độ dài ba cạnh tam giác hay không - Nắm các quy tắc viết chương trình ngôn ngữ lập trình Yêu cầu - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Cú pháp và cách thực câu lệnh điều kiện dạng thiếu và dạng đầy đủ Phân tích Giáo viên Học sinh (14) Ý tưởng Thuật toán Chương trình Lưu ý ? Chương trình viết cho bao - Ba yêu cầu: nhập ba số dương a, b, nhiêu yêu cầu? Đó là yêu cầu c từ bàn phím, kiểm tra xem chúng nào? có phải là độ dài ba cạnh tam giác hay không, in màn hình thông báo ? Yêu cầu quan trọng cần giải - Kiểm tra xem chúng có phải là độ là gì? dài ba cạnh tam giác hay không? ? Một ba độ dài a, b, c là độ dài - Khi chúng thõa mãn điều kiện: ba cạnh tam giác nào? TH1: a + b > c, a + c > b, b + c >a TH2: |a − b| < c < a+b ? Sử dụng câu lệnh gì để thể - Câu lệnh điều kiện hai cách kiểm tra trên? - Dùng ba biến a, b, c thể ba độ dài bất kì nhập từ bàn phím - Dùng câu lệnh điều kiện dạng đủ if then else - Điều kiện câu lệnh có thể là TH1: a + b > c, a + c > b, b + c >a Hoặc TH2: |a − b| < c < a+b TH2: Bước Nhập các số dương a, b, c Bước Nếu |a − b| < c < a+b thì thông báo “a, b, c la dai ba canh cua mot tam giac”, ngược lại thông báo “a, b, c khong la dai ba canh cua tam giac” Bước Kết thúc thuật toán Program Kiemtra; Uses crt; Var a, b, c: real; Begin Clrscr; Writeln(‘Nhap ba so duong:’); Readln(a, b, c); If (abs(a – b) < c) and (c < a + b) then writeln(a:3:1, b:3:1, c:3:1, ‘la dai ba canh cua mot tam giac’) Else writeln(a:3:1, b:3:1, c:3:1, ‘ khong la dai ba canh cua mot tam giac’); Readln; End - Sau If có nhiều điều kiện, để phân biệt rõ ràng các điều kiện ta đặt điều kiện cặp dấu ngoặc riêng Và lưu ý Pascal sử dụng cặp dấu ngoặc ( ) để nhóm - Các kí hiệu Pascal các phép so sánh và các hàm tính toán - Yêu cầu học sinh viết thuật toán và chương trình cho trường hợp Bài tập 10 Viết chương trình tính tổng n số tự nhiên liên tiếp Cách 1: - Nắm các quy tắc viết chương trình ngôn ngữ lập trình Yêu cầu - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Cú pháp và cách thực câu lệnh lặp dạng for … và dạng while …do Phân tích Giáo viên Học sinh ? Để tính tổng n số tự nhiên liên - Tính tổng số đầu tiên kết thứ tự thực thông bao nhiêu đem cộng với số thứ (15) thường ta làm nào? 3, kết bao nhiêu cộng với số thứ 4, … số thứ n ? Công việc nào thực hiện? - Tính tổng ? Em có nhận xét gì cách thực - Các bước thực tương tự nhau, trên? khác là lấy kết trước cộng với số dãy, và số dãy câu lệnh sau câu lệnh trước đơn vị ? Việc tính tổng thực bao - Thực n lần nhiêu lần? - Thay vì sử dụng nhiều lệnh tính - Thông qua câu lệnh lặp tổng, ta cần sử dụng lệnh thông câu lệnh nào? Ý tưởng Thuật toán Chương trình Lưu ý - Dùng biến S để lưu kết tính tổng, biến n để lưu độ dài dãy số cần tính tổng - Câu lệnh tính tổng thực cộng đến số cuối cùng dãy Vì cần sử dụng biến đếm i vòng lặp for Bước Nhập số tự nhiên n từ bàn phím Bước S ← 0; i ← 0; {Giá trị ban đầu biến tổng S, và biến đếm i 0} Bước i ← i+ 1; {Tăng biến lên đơn vị} Bước Nếu i n thì S ← S + i và quay lại Bước Bước Thông báo kết và kết thúc thuật toán Program Tinhtong; Uses crt; Var N, i: Integer; S: longint; Begin Clrscr; Writeln(‘Nhap so N=’); Readln(N); S: = 0; For i: = to N S:= S + i; Writeln(‘ Tong cua ‘,N, ‘so tu nhien dau tien S = ‘,S); Readln; End Vì vòng lặp For thực vòng lặp thứ biến đếm nhận giá trị đầu và tự động tăng thêm đơn vị qua vòng lặp nên ban đầu không cần thực câu lệnh gán giá trị ban đầu cho biến đếm chương trình Và câu lệnh sau “do” là S:= S + i; Cách 2: Cũng với cách phân tích trên Sử dụng biến S để lưu giá trị tổng; Biến i là biến chạy đến giá trị dãy n số tự nhiên đầu tiên, biến n để lưu độ dài dãy số tự nhiên đầu tiên cần Ý tưởng tính Câu lệnh tính tổng thực i n, vì đây ta có thể sử dụng vòng lặp While Thuật toán Bước Nhập số tự nhiên n từ bàn phím Bước S ← 0; i ← 0; Bước i ← i+ 1; (16) Chương trình Lưu ý Bước Nếu i n thì S ← S + i và quay lại Bước Bước Thông báo kết và kết thúc thuật toán Program Tinhtong; Uses crt; Var N, i: Integer; S: longint; Begin Clrscr; Writeln(‘Nhap so N=’); Readln(N); S: = 0; i: = 0; While i <= N begin S:= S + i; i:= i + 1end; Writeln(‘ Tong cua ‘,N, ‘so tu nhien dau tien S = ‘,S); Readln; End - Câu lệnh câu lệnh lặp for while … là câu lệnh ghép phải đặt cặp từ khóa begin và end; - Khi thực vòng lặp While kiểm tra điều kiện, điều kiện không thỏa mãn thì bỏ qua câu lệnh và kết thúc vòng lặp Ngược lại thực câu lệnh sau “do” và quay lại bước kiểm tra điều kiện Vì trường hợp này điều kiện vòng lặp là i <= N nên đầu tiên phải gán giá trị cho biến đếm, và câu lệnh sau “do” phải có thêm câu lệnh tăng biến đếm lên đơn vị i:= i + 1; ⇒ Nhờ vào việc phân tích, học sinh có thể hình thành ý tưởng để giải bài toán ttheo cách trên Giúp cho học sinh hiểu có thể giải bài toán các cách khác với các câu lệnh có thể khác * Bài tập tương tự: Bài Viết chương trình Pascal xác định giá trị lớn ba số thực nhập từ bàn phím Bài Viết chương trình Pascal kiểm tra số n nhập vào từ bàn phím có phải là số dương hay không? Bài Viết chương trình Pascal tìm nghiệm cho phương trình ax+ b =0 Với a, b nhập vào từ bàn phím Bài Viết chương trình Pascal nhập vào điểm kiểm tra môn Toán, Văn, Tiếng Anh cho học sinh và in màn hình thông báo “Trung Tuyen” tổng điểm ba môn Toán, Văn, Tiếng Anh từ 15 điểm trở lên Ngược lại in thông báo “Khong trung tuyen” Bài Viết chương trình Pascal tính tổng B = + + + … + 2n 1 + + + 2 n 1 1 + + + + 2 3 n( n+1) Bài Viết chương trình Pascal tính tổng S = + Bài Viết chương trình Pascal tính tổng A = e- Dạng 4: Chương trình sử dụng mảng: - Trong quá trình giảng dạy bài “Làm việc với dãy số” (Tin học dành cho trung học sở 3), phần trang 78, ví dụ 3: “Viết chương trình nhập N số nguyên từ bàn phím và in màn hình số nhỏ nhất, số lớn N nhập từ bàn phím” Là chương trình hoàn chỉnh đầu tiên có sử dụng biến mảng chương trình - Thay vì sử dụng vì dạy ví dụ trên, ta dùng bài tập 11 sau: (17) Đặt vấn đề: Tính tổng dãy n số tự nhiên đầu tiên (số liền sau số liền trước đơn vị) giải theo các cách bài tập 10 → Tính tổng dãy các số tự nhiên bất kì nhập vào từ bàn phím, ta làm nào? Bài tập 11 Viết chương trình Pascal để nhập từ bàn phím các phần tử dãy số Độ dài dãy nhập vào từ bàn phím Tính tổng các phần tử dãy Cách Yêu cầu Phân tích Ý tưởng Thuật toán Chương trình - Nắm các quy tắc viết chương trình ngôn ngữ lập trình - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Cú pháp và cách thực câu lệnh lặp dạng for … và dạng while …do - Cú pháp khai báo biến mảng Giáo viên Học sinh ? Viết chương trình cho bao nhiêu - Ba yêu cầu: nhập độ dài dãy, yêu cầu? nhập các phần tử cho dãy Và tính tổng các phần tử dãy ? Để làm việc với dãy số ta sử dụng - Biến mảng biến gì? ? Cú pháp khai báo? - Var <Tên mảng>: array [<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>; ? Nêu khác việc tính - Khác: tổng các phần tử dãy mảng với Tính tổng thông qua số các phần tính tổng các số tự nhiên đầu tiên tử mảng - Sử dụng biến S để lưu giá trị tổng; Biến i là biến chạy đến giá trị dãy số, biến n để lưu độ dài dãy số và biến mảng A - Sử dụng vòng lặp for để nhập giá trị cho các phần tử mảng và tính tổng các giá trị các phần tử mảng Bước Nhập dộ dài dãy số n Bước i ← 0; Bước i ← i+ Bước Nhập các giá trị cho các phần tử: Nếu i n thì in phần tử thứ i, nhập giá trị cho phần tử thứ i và quay lại Bước Bước S ← 0; i ← 0; {Giá trị ban đầu biến tổng S 0} Bước i ← i+ Bước Nếu i n thì S ← S + a[i] và quay lại Bước Bước Thông báo kết và kết thúc thuật toán Program Tinhtongbatki; Uses crt; Var N, i: Integer; S: Real; A: array [1 100] of Real; Begin Clrscr; Writeln(‘Nhap dai cua day so N=’); Readln(N); Writeln(‘Nhap cac phan tu cua day so:’); For i:= to n Nhập vào các Begin phần tử dãy (18) Writeln(‘[a ‘,i, ‘]= ‘); Readln(a[i]); End; S: = 0; For i:= to n S:= S + a[i]; Writeln(‘ Tong cua ‘,N, ‘ la: ‘,S); Readln; Tính tổng các phần tử End Cách Ý tưởng Thuật toán Chương trình - Sử dụng biến S để lưu giá trị tổng; Biến i là biến chạy đến giá trị dãy số, biến n để lưu độ dài dãy số và biến mảng A - Sử dụng vòng lặp For để nhập các giá trị cho các phần tử mảng, vòng lặp while để tính tổng giá trị các phần tử Bước Nhập dộ dài dãy số n Bước i ← 0; Bước i ← i+ Bước Nhập các giá trị cho các phần tử: Nếu i n thì in phần tử thứ i, nhập giá trị cho phần tử thứ i và quay lại Bước Bước S ← 0; i ← 0; {Giá trị ban đầu biến tổng S 0} Bước i ← i+ Bước Nếu i n thì S ← S + a[i] và quay lại Bước Bước Thông báo kết và kết thúc thuật toán Program Tinhtongbatki; Uses crt; Var N, i: Integer; S: Real; A: array [1 100] of real; Begin Clrscr; Writeln(‘Nhap dai cua day so N=’); Readln(N); Writeln(‘Nhap cac phan tu cua day so:’); For i:= to n Begin Writeln(‘[a ‘,i, ‘]= ‘); Readln(a[i]); End; S: = 0; i:=0; While i <= n Begin i:= i+1; S:= S + a[i] end; Writeln(‘ Tong cua ‘,N, ‘ số S = ‘,S); Readln; End Bài tập 12 Viết chương trình Pascal để nhập từ bàn phím dãy n các số nguyên Sau đó lọc các số dương in trên dòng, các số âm in trên dòng Yêu cầu - Nắm các quy tắc viết chương trình ngôn ngữ lập trình - Cấu trúc chương trình ngôn ngữ lập trình Pascal - Cú pháp và cách thực câu lệnh lặp dạng for … và dạng while …do (19) Phân tích Ý tưởng Thuật toán - Cú pháp khai báo biến mảng Giáo viên Học sinh ? Viết chương trình cho bao nhiêu - Ba yêu cầu: nhập dãy n các số yêu cầu? nguyên từ bàn phím, lọc các số dương in trên dòng, lọc các số âm in trên dòng ? Dãy số chương trình này - Gồm n số gồm bao nhiêu số? ? Các số dãy có xếp theo thứ - Bất kì tự nào không? ? Vậy ta dùng biến gì để thể - Biến mảng các phần tử dãy? ? Để tìm các số dương dãy - Truy cập đến các phần tử dãy ta phải làm nào? và so sánh với điều kiện ? Việc truy cập so sánh với điều kiện - Đối với n phần tử thực bao nhiêu phần tử dãy (bao nhiêu lần)? ? Số dương là số phải thõa mãn điều - Số dương là số lớn kiện gì? ? Để truy cập và tìm các số dương - Câu lệnh lặp for do, và câu lệnh dãy thì ta sử dụng điều kiện if then câu lệnh nào? ? Để in các số dương trên cùng - Thủ tục Write(…); dòng ta sử dụng thủ tục nào? ? Sau in các số dương trên - Thủ tục Writeln; dòng xong, muốn xuống dòng ta dùng thủ tục nào? - Yêu cầu học sinh thực phân tích tương tự việc lọc các số âm dãy - Sử dụng biến S để lưu giá trị tổng; Biến i là biến đếm, biến n để lưu độ dài dãy số và biến mảng A - Sử dụng vòng lặp for để nhập giá trị cho các phần tử mảng và truy cập đến các phần tử mảng quá trình lọc các số dương và số âm - Sử dụng câu lệnh điều kiện if then để tìm các số dương, các số âm dãy - Sử dụng thủ tục Write(…); để in các số trên cùng dòng - Sử dụng thủ tục Writeln; để xuống dòng Bước Nhập độ dài dãy số n Bước i → 0; Bước i → i+1; Bước Nhập các giá trị cho các phần tử: Nếu i n thì in phần tử thứ i, nhập giá trị cho phần tử thứ i và quay lại Bước Bước i → 0; Bước i → i+1; Bước Nếu i n thì thực câu lệnh: Nếu a[i]>0 thì in giá trị a[i] màn hình và quay lại Bước Bước i → 0; (20) Chương trình Bước i → i+1; Bước 10 Nếu i n thì thực câu lệnh: Nếu a[i]< thì in giá trị a[i] màn hình và quay lại Bước Bước 11 Kết thúc thuật toán Program Insoduongvasoam; Uses crt; Var N, i: Integer; S: longint; A: array [1 100] of integer; Begin Clrscr; Writeln(‘Nhap dai cua day so N=’); Readln(N); Writeln(‘Nhap cac phan tu cua day so:’); For i:= to n Begin Writeln(‘[a ‘,i, ‘]= ‘); Readln(a[i]); End; For i:= to n If a[i] >0 then Write(a[i],’ ’); Writeln; For i:= to n If a[i] <0 then Write(a[i],’ ’); Readln; End Bài tập 13 Viết chương trình Pascal đảo ngược dãy số nguyên cho trước (3,5,2,4,6,7,9,8,0,1) - Nắm các quy tắc viết chương trình ngôn ngữ lập trình - Cấu trúc chương trình ngôn ngữ lập trình Pascal Yêu cầu - Cú pháp và cách thực câu lệnh lặp dạng for … và dạng while …do - Cú pháp khai báo biến mảng Giáo viên Học sinh ? Viết chương trình cho bao nhiêu - Một yêu cầu: Đảo ngược dãy số yêu cầu? nguyên cho trước ? Dãy trên gồm bao nhiêu phần tử? - Gồm 10 phần tử ? Dãy số trên, khi thực xong - Kết quả: (1,0,8,9,7,6,4,2,5,3) việc đảo ngược có kết nào? Phân tích ? Em có nhận xét gì vị trí các số - Hoán đổi vị trí cho và 3, và 5, và 2, và 4, và 6? ? Để thực đảo ngược dãy số - Hoán đổi vị trí cặp số trên, cần hoán đổi vị trí bao nhiêu cặp số? ? Thứ tự các phần tử dãy - Thông qua số tương ứng phân biệt thông qua yếu tố nào? Ý tưởng - Sử dụng biến i là biến đếm, biến n để làm biến trung gian việc hoán đổi giá trị hai phần tử mảng - Sử dụng mảng A là dãy gồm các số (3,5,2,4,6,7,9,8,0,1) (21) Thuật toán Chương trình - Sử dụng vòng lặp for để thực việc hoán đổi vị trí các cặp số Và in dãy đảo ngược - Sử dụng thủ tục Write(…); để in các số trên cùng dòng - Sử dụng thủ tục Writeln; để xuống dòng Bước i → Bước i → i+1 Bước Nếu i thì thực hoán đổi: n ← a[i]; a[i] ← a[11-i]; a[11-i] ← n; Và quay lại Bước Bước i → Bước i → i+1 Bước Nếu i 10 thì thực câu lệnh in giá trị a[i] màn hình và quay lại Bước Bước Kết thúc thuật toán Program Daonguocdayso; Uses crt; Var n, i: Integer; Const A: array [1 10] of integer = (3,5,2,4,6,7,9,8,0,1); Begin Clrscr; For i:= to n Begin n:= a[i]; a[i]:= a[11-i]; a[11-i]:= n; End; For i:= to n Write(a[i],’ ’); Readln; End * Bài tập tương tự: Bài Viết chương trình nhập N số nguyên từ bàn phím và in màn hình số lớn nhất, số nhỏ N nhập từ bàn phím Bài Viết chương trình nhập vào điểm trung bình lớp học có N học sinh, in ra: a) Điểm trung bình học sinh lớp b) Tỉ lệ học sinh giỏi, khá, trung bình và yếu theo tiêu chuẩn điểm trung bình từ 8.0 trở lên xếp loại giỏi, từ 6.5 đến 7.9 xếp loại khá, từ 5.0 đến 6.4 xếp loại trung bình, 5.0 xếp loại yếu Bài Lập chương trình tính trung bình cộng các số dương, trung bình cộng các số âm dãy n số nhập vào từ bàn phím Khả áp dụng: - Giải pháp áp dụng năm học 2013 – 2014 lớp 8A và đạt số kết khả quan: (22) + Các em học sinh trung bình, yếu nắm vững số thuật ngữ, cấu trúc chung chương trình ngôn ngữ lập trình Pascal và viết các chương trình sử dụng các thủ tục đơn giản + Các em học sinh khá, giỏi có thể phân tích nhanh các bài toán giáo viên nêu (Từ đơn giản đến phức tạp), hình thành nhanh ý tưởng, xây dựng thuật toán và viết thành chương trình hợp lí - Thay vì cho học sinh nhập và chạy các chương trình có sẵn các bài thực hành chương trình dạy học, giải pháp áp dụng có hiệu các tiết thực hành - Có thể áp dụng nội dung cho đơn vị bài học tương ứng chương trình Tin học Áp dụng trên tất đối tượng học sinh khối lớp trường Lợi ích kinh tế - xã hội: - Đề tài này mang lại lợi ích kinh tế: + Giúp học sinh hứng thú việc tự mình viết các chương trình đơn giản, khơi dậy học sinh ý tưởng viết các chương trình tính toán phụ giúp công việc kinh doanh cho gia đình Tiết kiệm chi phí mua các phần mềm tính toán đơn giản cho gia đình, tiết kiệm thời gian, công sức + Học sinh có thể kết hợp hai môn Toán, Tin học để giải các bài tập từ đơn giản đến phức tạp, từ lí thuyết đến thực tiễn - Lợi ích xã hội: + Giúp học sinh yêu thích môn học + Phát huy khả tìm tòi, sáng tạo học sinh + Tạo tiền đề để học sinh có thể viết chương trình phức tạp và nâng cao kĩ lập trình tương lai + Giúp học sinh tránh xa các tệ nạn nghiện Games, bỏ học, lêu lỏng + Tạo môi trường học tập lành mạnh, nâng cao chất lượng giáo dục (23) C KẾT LUẬN - Xuất phát từ việc đổi phương pháp giảng dạy theo hướng phát huy tính tích cực học tập học sinh: lấy học sinh làm trung tâm, nhằm phát triển tư duy, khả sáng tạo và vận dụng kiến thức có hiệu học sinh Vì đòi hỏi người dạy không dừng lại yêu cầu tái kiến thức và phải biết linh hoạt quá trình giảng dạy Có học sinh hiểu sâu sắc chất vấn đề Từ đó học sinh yêu thích môn học và có kết khả quan - Học sinh nắm các kĩ việc viết các chương trình Pascal đơn giản giúp học sinh dễ dàng và có hứng thú việc viết các chương trình phức tạp Phát huy khả sáng tạo, tạo tiền đề để học sinh phấn đấu học tốt tương lai - Đề xuất, kiến nghị: “Rèn kĩ viết các chương trình đơn giản Turbo Pascal” chưa thông qua tổ, nhóm, hội đồng môn nên đề tài chưa áp dụng rộng rãi quá trình giảng dạy Bản thân mong quí thầy, cô, đồng nghiệp đóng góp để đề tài hoàn thiện Tây Vinh, tháng 02 năm 2014 Người thực Huỳnh Thị Diệu (24) PHỤ LỤC A MỞ ĐẦU B NỘI DUNG C KẾT LUẬN 25 (25)