Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Tin học Skkn gợi động cơ hoạt động trong việc giảng dạy chương trình con môn tin học lớp...

Tài liệu Skkn gợi động cơ hoạt động trong việc giảng dạy chương trình con môn tin học lớp 11 ở trường thpt

.DOC
25
237
54

Mô tả:

GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ SÁNG KIẾN KINH NGHIỆM Đề tài: GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON MÔN TIN HỌC LỚP 11 Ở TRƯỜNG THPT TRẦN PHÚ A. ĐẶT VẤN ĐỀ I. LÝ DO CHỌN ĐỀ TÀI - Công nghệ thông tin là một ngành khoa học đang phát triển rất mạnh mẽ. Sự bùng nổ thông tin trong thời đại ngày nay, tốc độ phát triển của công nghệ thông tin khiến cho người thầy không thể truyền tải hết mọi điều cho học trò, mà dù có kéo dài thời gian để dạy hết mọi điều thì rồi các kiến thức đó cũng nhanh chóng trở nên lạc hậu. - Do đó người thầy cần phải tìm ra phương pháp dạy học tích cực hơn, gợi động cơ học tập trong quá trình giảng dạy để tăng hiệu quả dạy và học. Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội những kiến thức cơ bản. Thầy giáo còn phải biết kích thích tính tích cực, sự sáng tạo say mê học hỏi của học sinh trong việc học tập của các em. Bởi vì, việc học tập tự giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải có ý thức về những mục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản thân họ hoạt động để đạt các mục tiêu đó. Điều này được thực hiện trong dạy học không chỉ đơn giản bằng việc nêu rõ mục tiêu mà quan trọng hơn còn do gợi động cơ. - Turbo Pascal là ngôn ngữ lập trình có cấu trúc, nó được dùng phổ biến ở nước ta hiện nay trong công tác giảng dạy, lập trình tính toán, đồ họa. Turbo Pascal được dùng trong chương trình giảng dạy Tin học ở hầu hết các trường đại học, cao đẳng, trung học phổ thông. Bởi vì, ngôn ngữ Pascal có tính cấu trúc mạnh, có cơ sở và nó đòi hỏi chương trình phải chặt chẽ, logic. Đặc biệt, khi học về chương trình con, học sinh có thể hiểu một cách sâu sắc hơn về ngôn ngữ lập trình, nhìn nhận vấn đề một cách sâu sắc hơn, chặt chẽ hơn và nhất là chương trình con có thể giúp cho các em hoàn thành những chương trình lớn hơn vượt ra những bài toán bình thường mà nội bộ môn học đòi hỏi. Bên cạnh đó sức học của học sinh trong nhà trường còn hạn chế, đại đa số học sinh đầu vào lớp 10 còn yếu nên việc tự học chưa có. Chính vì vậy, để giúp cho học sinh hứng thú khi học lập trình nói chung và thích thú với Chương trình con trong Chương VI ““Chương trình con và lập trình có cấu trúc” việc gợi động cơ cho học sinh trong việc dạy học là một công việc quan trọng, đòi hỏi mỗi giáo viên cần phải nỗ lực tìm tòi, sáng tạo giúp cho Người viết: Thái Huy Tâm 1 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ học sinh nhìn nhận vấn đề một cách tích cực hơn, sáng tạo hơn, tự xây dựng được một chương trình con đơn giản và hiểu được cái cốt lõi trong chương này và nhất là giúp cho các em có thể yêu thích nhiều hơn nữa ngôn ngữ lập trình Pascal. - Với tất cả những lý do nêu trên, tôi quyết định chọn đề tài này. II. ĐỊNH HƯỚNG NGHIÊN CỨU 1. Mục đích nghiên cứu: - Tạo động cơ cho học sinh ý thức về ý nghĩa của các hoạt động khi sử dụng chương trình con trong công việc lập trình. Từ đó, học sinh có thể liên hệ, vận dụng sáng tạo vào giải quyết các bài toán lập trình và các tình huống thực tế. 2. Nhiệm vụ nghiên cứu: - Qua việc nghiên cứu các vấn đề về chương trình con của ngôn ngữ lập trình Pascal, các tài liệu về phương pháp giảng dạy. Từ đó, đưa ra các biện pháp có thể gợi động cơ hoạt động cho học sinh thông qua các ví dụ cụ thể về chương trình con. 3. Phạm vi nghiên cứu: - Nội dung nghiên cứu này có nhiều phần, trong phạm vi nghiên cứu của đề tài này tôi tập trung hướng học sinh đến vấn đề gợi động cơ học tập trong chương VI “Chương trình con và lập trình có cấu trúc” và ở chương này ta cần làm rõ các vấn đề trọng tâm cho học sinh nắm bắt được sau đó việc gợi động cơ trong quá trình thực hiện viết chương trình sẽ trở nên dễ dàng với các em hơn. - Chương trình con được viết dưới hai dạng: thủ tục (procedure) và hàm (function). - So sánh cấu trúc của 2 kiểu chương trình con này thì tương tự với nhau, mặc dù cách truy xuất của chúng có khác nhau và cách trao đổi thông tin trong mỗi kiểu cũng có điểm khác nhau. Hàm (function) trả lại một giá trị kết quả vô hướng thông qua tên hàm và hàm được sử dụng trong biểu thức còn Thủ tục (procedure) thì không trả về một kết quả nào qua tên của nó. - Liên hệ một số hàm và thủ tục chuẩn đã học: + Hàm chuẩn, như hàm sin(x) mà chúng ta đã biết trong chương trước có thể được xem như một chương trình con kiểu function với tên là sin và tham số là x. + Thủ tục (procedure) không trả lại kết quả thông qua tên của nó, do vậy, ta không thể viết các thủ tục trong biểu thức. Các lệnh Writeln, Readln trong chương trước được xem như các thủ tục chuẩn. Người viết: Thái Huy Tâm 2 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ - Một chương trình có chứa chương trình con có 3 Phần : + Phần khai báo + Phần chương trình con + Phần chương trình chính Để thực hiện những mục tiêu trên, yêu cầu học sinh cần nắm vững một số kiến thức cơ bản sau: + Một số khái niệm biến:  Biến toàn cục.  Biến cục bộ.  Tham số thực.  Tham số hình thức. + Lời gọi chương trình con. Về kỹ năng: - Vận dụng để viết được một số chương trình con đơn giản để minh họa. Trong các chương trình đó chỉ rõ đâu là biến toàn cục, biến cục bộ, tham số thực, tham số hình thức, lời gọi chương trình con…. - Cách gọi hàm trong các phép toán và biểu thức. 4. Đối tượng nghiên cứu: Học sinh lớp 11 (được phân lớp theo năng lực học sinh từ lớp 11A1  11A7) Trường THPT Trần Phú Người viết: Thái Huy Tâm 3 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ B. NỘI DUNG I. ĐẶC ĐIỂM TÌNH HÌNH: - Thực tế qua những năm trực tiếp giảng dạy bộ môn cũng như trao đổi với đồng nghiệp tôi nhận thấy: hầu như học sinh đều rất yêu thích và hứng thú với môn Tin học. Tuy nhiên, chất lượng bộ môn qua các năm học chưa cao, đặc biệt là kĩ năng lập trình của học sinh lớp 11 còn yếu, thậm chí một số học sinh còn rất ngại viết lập trình trong chương trình lớp 11 do lập trình đòi hỏi rất nhiều về mặt kiến thức Toán học, tư duy thuật toán thậm chí còn liên quan đến tiếng Anh trong ngôn ngữ lập trình Pascal. 1. Thuận lợi: + Được sự quan tâm của Chi Bộ và của BGH nhà trường trong công cuộc đổi mới phương pháp dạy học. + Giáo viên giảng dạy được đào tạo theo đúng chuyên ngành và được bồi dưỡng chuyên đề hàng năm. + Phần lớn các em học sinh có ý thức tự học cao, luôn tìm tòi học hỏi những kiến thức mới trong học tâ pâ và rất hứng thú với môn Tin học. + Được nhà trường tạo mọi điều kiện thuận lợi về CSVC trang thiết bị dạy học. 2. Khó khăn: + Vẫn còn mô ât số em học sinh tiếp thu kiến thức còn châ âm, trong những năm học gần đây nhà trường đã phân hóa kiến thức học sinh sắp xếp lớp học theo năng lực của học sinh, do đó những lớp đầu nguồn các em rất đam mê thích thú với môn học này, đặc biệt lập trình một môn học mới mẻ. Bên cạnh đó còn những em học sinh ở các lớp cuối kiến thức của các em bị lũng nhiều nên trong môn học này các em gặp rất nhiều khó khăn vì môn lập trình đòi hỏi các em rất nhiều thứ phải vững Toán, biết cách xây dựng Thuật toán cho các bài toán, mặt khác ngôn ngữ lập trình Pascal đòi hỏi các em phải hiểu được ý nghĩa, câu lệnh của thuật toán thông qua những câu lệnh tiếng Anh, dẫn đến làm cho việc tiếp cận, làm quen với lập trình cũng tương đối khó. + Số lượng học sinh trong một lớp học còn quá đông trên 40 học sinh một lớp, diện tích phòng máy nhỏ hẹp, phòng máy có 25 máy, thiết bị máy móc thường xuyên bị lỗi chương trình, lỗi hệ điều hành, và một số máy đang hoạt động tự động tắt (do lỗi main, lỗi ram, nguồn tuột áp, ...), làm cho tiết học thực hành lập trình của các em không đạt hiệu quả cao nhất. Người viết: Thái Huy Tâm 4 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ + Học sinh chủ yếu là con em các gia đình làm công nhân, làm nông, sự quan tâm của phụ huynh đến việc học tập của con em còn nhiều hạn chế, nói đến học lập trình để các em hiểu và viết được các chương trình đầu tiên cơ bản thì các em phải thường xuyên làm bài tập và viết chương trình lên trên máy, xem kết quả đúng sai từ đó hiểu chỉnh lại đoạn chương trình cho hoàn chỉnh, nhưng điều kiện để các em có máy vi tính ở nhà là rất khó, hầu hết các em chỉ được tiếp xúc, làm quen với máy tính trong giờ học dẫn đến việc viết chương trình của học sinh còn lúng túng, chất lượng môn học chưa cao. Một bộ phận học sinh chưa coi trọng môn học, xem đây là một môn phụ nên chưa có sự đầu tư thời gian cho việc học. II. GIẢI PHÁP Nhìn được những khó khăn trong quá trình giảng dạy, bản thân tôi suy nghĩ đến vấn đề từng chương trong chương trình học, mình phải làm sao hệ thống hóa được các nội dung một cách nhẹ nhàng để làm sao ngay cả học sinh yếu, trung bình cũng có thể hội tụ được kiến thức của từng phần trong bộ môn. Như vậy việc chuẩn bị kĩ lượng nội dung cần truyền tải đến các em. Ngoài ra để các em lĩnh hội được nội dung bài học một cách tốt nhất mà bản thân tôi nghĩ nó cũng rất quan trọng đó là gợi động cơ học tập cho các em, làm cho các em đam mê, thích thú với những bài tập, những đoạn chương trình, tìm tòi xem khi viết đoạn chương trình chạy trên máy thành quả của mình đạt được là kết quả gì. Trong chương VI “Chương trình con và lập trình có cấu trúc”, để làm tốt việc này thì bản thân người thầy phải làm rõ cho học sinh một số nội dung trọng tâm để các em có cái nhìn tổng quan đến chi tiết của Chương này. 1. Một số khái niệm và biến a. Thủ tục (Procedure): - Thủ tục là chương trình con thực hiện các thao tác nhất định nhưng không trả về giá trị nào qua tên của nó. - Có 2 loại thủ tục: + Thủ tục không tham số + Thủ tục có tham số. * Cấu trúc của thủ tục không tham số PROCEDURE < Tên thủ tục > ; { Các khai báo hằng, biến, kiểu cục bộ... } BEGIN { ... các lệnh trong nội bộ thủ tục ... } END ; Ví dụ : Tìm số lớn nhất trong 3 trị số nguyên Người viết: Thái Huy Tâm 5 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ Program so_lon_nhat; var a, b, c : integer; Procedure GTLN; var max : integer; begin if a > b then max := a else max := b; if c > max then max := c; Writeln (' So lon nhat la: ', max:5); end ; begin Writeln ('Nhap 3 so nguyen : ' ); Readln (a, b, c ); GTLN; readln; end. Trong chương trình trên, thủ tục GTLN được khai báo trước khi nó được truy xuất, các biến a, b, c được gọi nhập vào ở chương trình chính và biến max được định nghĩa bên trong thủ tục. Điều này cho ta thấy, không phải lúc nào cũng cần thiết khai báo biến ngay đầu chương trình chính. Cấu trúc của thủ tục có tham số - Khi viết một thủ tục, nếu có các tham số cần thiết, ta phải khai báo nó (kiểu, số lượng, tính chất, ...). Các tham số này gọi là tham số hình thức (formal parameters). - Một thủ tục có thể có 1 hoặc nhiều tham số hình thức. Khi các tham số hình thức có cùng một kiểu thì ta viết chúng cách nhau bởi dấu phẩy (,). Trường hợp các kiểu của chúng khác nhau hoặc giữa khai báo tham số truyền bằng tham biến và truyền bằng tham trị (phần giới thiệu về tham số hình thức sẽ nói rõ cho học sinh nắm bắt ở phần này) thì ta phải viết cách nhau bằng dấu chấm phẩy (;). PROCEDURE(); { Các khai báo hằng, biến, kiểu cục bộ ... } BEGIN { ... các lệnh trong nội bộ thủ tục ... } END ; Ví dụ: Hoán đổi 2 số nguyên a và b. program vidu_hoandoi; uses crt; var a,b:integer; Người viết: Thái Huy Tâm 6 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ procedure hoan_doi(var x,y:integer); var TG: integer; begin TG:=x; x:=y; y:=TG; end; begin clrscr; a:=5; b:=10; writeln(a:5, b:5); hoan_doi(a,b); writeln('gia tri sau hoan doi: ', a:5,b:5); readln; end. Chương trình trên x, y được gọi là tham số hình thức của thủ tục hoan_doi. b. Hàm (Function) : - Hàm là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó. - Cấu trúc một hàm tự đặt gồm: FUNCTION () : ; { các khai báo hằng, biến, kiểu cụcbbộ... } BEGIN { ... các khai báo trong nội bộ hàm ... } END ; Trong đó: + Tên hàm là tên tự đặt cần tuân thủ theo nguyên tắc đặt tên trong Pascal. + Kiểu kết quả là một kiểu vô hướng, biểu diễn kết quả giá trị của hàm. + Một hàm có thể có 1 hay nhiều tham số hình thức, khi có nhiều tham số hình thức cùng một kiểu giá trị thì ta có thể viết chúng cách nhau bằng dấu phẩy (,). Trường hợp các tham số hình thức khác kiểu thì ta viết chúng cách nhau bằng dấu chấm phẩy (;). + Trong hàm có thể sử dụng các hằng, kiểu, biến đã được khai báo trong chương trình chính nhưng ta có thể khai báo thêm các hằng, kiểu, biến dùng riêng trong nội bộ hàm. Chú ý là phải có một biến trung gian có cùng kiểu kết quả của hàm để lưu kết quả của hàm trong quá trình tính toán để cuối cùng ta có 1 lệnh gán giá trị của biến trung gian cho tên hàm. Người viết: Thái Huy Tâm 7 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ Ví dụ: Tìm giá trị nhỏ nhất của 3 số thực a,b và c. program minbaso; var a,b,c:real; function Min(a,b:real):real; begin if a100) hình chữ nhật thì vấn đề quả thực rất dài và khi kiểm tra đoạn chương trình rất khó và đây mới chỉ là một bài toán nhỏ đơn giản. Vấn đề đặt ra là: làm thế nào có thể xóa bỏ được sự hạn chế này? Ở đây, chúng ta có thể hướng dẫn cho học sinh sử dụng chương trình con để khắc phục sự hạn chế đó. Thay vì phải viết nhiều lần các câu lệnh giống cho từng hình chữ nhật như vậy mà bản chất của nó là một vì nó lập đi lập lại: - Ta sử dụng Thủ tục vẽ hình chữ nhật. program ve_hcn; procedure hcn; begin writeln('* * * * * * '); writeln('* * '); writeln('* * * * * * '); end; begin hcn; hcn; hcn;hcn; hcn; readln; end. Người viết: Thái Huy Tâm 14 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ - Nếu đề bài cho vẽ với n hình chữ nhật thì ta vẫn sử dụng đoạn chương trình con như trên và trong đoạn chương trình chính ta cho chạy một vòng lặp For. Ví dụ cho n = 20. program ve_hcn; var i: integer; procedure hcn; begin writeln('* * * * * * '); writeln('* * '); writeln('* * * * * * '); end; begin for i:=1 to 20 do hcn; readln; end. Từ chương trình trên chúng ta có thể giúp cho học sinh thấy được việc sử dụng chương trình con có thể hợp lý hóa, tiết kiệm công sức lập trình. Đồng thời, chương trình con giúp cho người lập trình dễ sửa chữa, dễ kiểm tra. 4.2. Chính xác hóa một khái niệm - Có những khái niệm mà học sinh đã biết ở từng bài riêng lẻ chưa thể đưa ra ngay những nhận xét, những kết luận chính xác liên quan tới khái niệm đó; tới một thời điểm nào đó có đủ điều kiện thì chúng ta có thể gợi lại vấn đề và giúp học sinh chính xác hóa khái niệm đó. Chẳng hạn, ta cần chính xác hóa khái niệm sử dụng tham biến, tham trị của chương trình con. Sau khi học cách sử dụng tham trị, tham biến, chúng ta có thể yêu cầu học sinh làm bài tập sau: Xét bài toán: “Viết một thủ tục nhập vào số đo bán kính của 3 đường tròn. Sau đó tính chu vi và diện tích của mỗi đường tròn đó”. Var r1, r2, r3: Real; Procedure Nhap( r: Real; k:Byte); {r là tham trị} Begin Repeat Write('Nhap ban kinh cua duong tron thu ',k,': '); Readln(r); If r <= 0 Then Writeln('Nhap lai!'); Until r > 0; End; Begin Nhap(r1, 1); Người viết: Thái Huy Tâm 15 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ Nhap(r2, 2); Nhap(r3, 3); Writeln('DTron 1 Cv =',2 * pi * r1:4:1,' Dtich = ',pi * sqr(r1):4:1); Writeln('DTron 2 Cv =',2 * pi * r2:4:1,' Dtich = ',pi * sqr(r2):4:1); Writeln('Dtron 3 Cv =',2 * pi * r3:4:1,' Dtich =:',pi * sqr(r3):4:1); Readln End. Cho học sinh thực thi chương trình trên và chạy thử. Học sinh sẽ phát hiện ra là kết quả chu vi và diện tích của cả ba đường tròn đều bằng 0. Vấn đề đặt ra là: Chương trình sai ở chỗ nào? Lúc này giáo viên có thể khẳng định sự khác biệt giữa tham biến và tham trị, các giá trị của tham biến được lưu giữ khi ra ngoài chương trình con, còn giá trị của tham trị chỉ lưu giữ khi thực hiện chương trình con, nếu ra khỏi chương trình con nó sẽ không còn lưu giữ giá trị đó. Điều này sẽ giúp cho chúng ta chính xác hóa khái niệm tham biến và tham trị mà ở nội dung trên ta đã giới thiệu nhấn mạnh vai trò tham biến và tham trị cho học sinh. - Chương trình trên cần sửa lại như sau: Var r1, r2, r3: Real; Procedure Nhap(var r: Real; k:Byte); {r là tham biến} Begin Repeat Write('Nhap ban kinh cua duong tron thu ',k,': '); Readln(r); If r <= 0 Then Writeln('Nhap lai!'); Until r > 0; End; Begin Nhap(r1, 1); Nhap(r2, 2); Nhap(r3, 3); Writeln('DTron 1 Cv =',2 * pi * r1:4:1,' Dtich = ',pi * sqr(r1):4:1); Writeln('DTron 2 Cv =',2 * pi * r2:4:1,' Dtich = ',pi * sqr(r2):4:1); Writeln('Dtron 3 Cv =',2 * pi * r3:4:1,' Dtich =:',pi * sqr(r3):4:1); Readln End. - Ta tiếp tục cho học sinh làm một ví dụ để thấy rõ được vai trò của Tham biến và tham trị Người viết: Thái Huy Tâm 16 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ Xét bài toán: “Hoán đổi 2 số nguyên a và b” program vidu_hoandoi; uses crt; var a,b:integer; procedure hoan_doi(x, y: integer); {x,y là tham trị} var TG: integer; begin TG:=x; x:=y; y:=TG; end; begin clrscr; a:=5; b:=10; writeln(a:5, b:5); hoan_doi(a,b); writeln('gia tri sau hoan doi: ', a:5,b:5); readln; end. Học sinh thực thi chương trình trên và chạy thử. Học sinh sẽ phát hiện ra là kết quả của việc hoán đổi a=5 và b=10 như ban đầu không có sự thay đổi, vậy cũng tương tự bài toán tính chu vi và diện tích của mỗi đường tròn là do các tham số hình thức (x,y) là tham trị nên khi kết thúc chương trình con giá trị không thay đổi, và ta có thể sửa đoạn chương trình Hoán đổi này ở 2 dạng tiếp theo và nhấn mạnh cho học sinh là thay đổi đoạn chương trình này ở vị trí nào, để học sinh tự trả lời và hiểu thêm ý nghĩa của tham biến và tham trị, khi học sinh chạy lại đoạn chương trình và nhìn kết quả bài toán. Xét bài toán: “Hoán đổi 2 số nguyên a và b”. program vidu_hoandoi; uses crt; var a,b:integer; procedure hoan_doi(var x:integer; y: integer); {x là tham biến, y là tham trị} var TG: integer; begin TG:=x; x:=y; y:=TG; end; begin clrscr; Người viết: Thái Huy Tâm 17 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ a:=5; b:=10; writeln(a:5, b:5); hoan_doi(a,b); writeln('gia tri sau hoan doi: ', a:5,b:5); readln; end.  Kết quả a= 10; b=10; Xét bài toán: “Hoán đổi 2 số nguyên a và b”. program vidu_hoandoi; uses crt; var a,b:integer; procedure hoan_doi(x:integer; var y: integer); {x là tham trị, y là tham biến} var TG: integer; begin TG:=x; x:=y; y:=TG; end; begin clrscr; a:=5; b:=10; writeln(a:5, b:5); hoan_doi(a,b); writeln('gia tri sau hoan doi: ', a:5,b:5); readln; end. Kết quả a=5; b=5; Xét bài toán: “Hoán đổi 2 số nguyên a và b”. program vidu_hoandoi; uses crt; var a,b:integer; procedure hoan_doi(var x,y:integer); {x,y là tham biến} var TG: integer; begin TG:=x; x:=y; y:=TG; end; begin clrscr; Người viết: Thái Huy Tâm 18 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ a:=5; b:=10; writeln(a:5, b:5); hoan_doi(a,b); writeln('gia tri sau hoan doi: ', a:5,b:5); readln; end. Kết quả a= 10; b=5; 4.3. Hướng tới sự hoàn chỉnh hệ thống - Để có thể giúp học sinh nắm bắt được các kiến thức về chương trình con một cách có hệ thống . Sau khi học xong về chương trình con, chúng ta có thể đưa ra sơ đồ sau: Thủ tục Không có tham chiếu Chương trình con Tham trị Hàm Có tham chiếu Tham biến - Tiếp theo, để giúp cho học sinh nhìn thấy vấn đề có hệ thống một các rõ ràng hơn, đặc biệt là giúp cho học sinh hiểu rõ các vấn đề về chương trình con. Chẳng hạn đâu là biến toàn cục, đâu là biến địa phương, khi nào dùng tham biến, khi nào dùng tham trị, các chương trình con gọi lẫn nhau như thế nào?, ... Chúng ta có thể đưa ra ví dụ sau: Ta xét bài toán: “Viết chương trình nhập vào số cạnh của n tam giác, sau đó tính diện tích của mỗi tam giác vừa nhập và tổng diện tích của tất cả các tam giác đó”. Var a:array[1..3,1..100] Of Real; {Bien toan cuc} Function Ktra(x, y, z: Real): Boolean; {Ham co tham tri} Begin Ktra := (x < y + z) And (y < x + z) And (z < x + y); End; Procedure Nhap(Var a, b, c: Real; i:Byte); {Thu tuc co tham bien} Begin Writeln('Nhap vao ba canh cua tam giac thu ',i,': '); Repeat Write('Nhap do dai canh thu nhat: '); Readln(a); Người viết: Thái Huy Tâm 19 Trường THPT Trần Phú GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON TIN HỌC 11 Ở TRƯỜNG THPT TRẦN PHÚ Write('Nhap do dai canh thu hai : '); Readln(b); Write('Nhap do dai canh thu ba : '); Readln(c); If Not Ktra(a, b, c) Then Writeln('Ba do dai vua nhap khong phai la 3 canh tam giac! Nhap lai:'); Until Ktra(a, b, c); End; Function DT(m, n, p:Real): Real; {Ham co tham tri} Var d: Real; {Bien cuc bo} Begin d := (m + n + p) / 2; DT := sqrt(d * (d - m) * (d - n) * (d - p)); End; Procedure Tinh; {Thu tuc khong co tham chieu} Var k, n, j: Integer; tong: Real; {Bien cuc bo} Begin Write('Nhap so tam giac: ');Readln(n); tong:=0; For k:=1 to n do Nhap(a[1,k], a[2,k], a[3,k], k); For k:=1 to n do Begin Tong := tong + DT(a[1, k], a[2,k], a[3,k]); Writeln('Dien tich cua tam giac thu ',k,': ',DT(a[1, k], a[2, k], a[3, k]):6:1); End; Writeln('Tong dien tich cua ',n,' tam giac la: ',tong:6:1); End; Begin Tinh; Readln End. 4.4. Lật ngược vấn đề - Có nhiều bài toán có 2 dạng như tìm giá trị lớn nhất, nhỏ nhất hoặc xuất xâu kí tự thường sang hoa, hoa sang thường, ta sẽ dẫn dắt học sinh một ví dụ và cho học sinh giải quyết ví dụ còn lại. Xét bài toán: “Tìm giá trị nhỏ nhất trong ba số nhập từ bàn phím”. Program minbaso; var a,b,c:real; function Min(a,b:real):real; begin if a - Xem thêm -

Tài liệu liên quan


Thư viện tài liệu trực tuyến
Hỗ trợ
hotro_xemtailieu
Mạng xã hội
Copyright © 2023 Xemtailieu - Website đang trong thời gian thử nghiệm, chờ xin giấy phép của Bộ TT & TT
thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi tài liệu như luận văn đồ án, giáo trình, đề thi, .v.v...Kho tri thức trực tuyến.
Xemtailieu luôn tôn trọng quyền tác giả và thực hiện nghiêm túc gỡ bỏ các tài liệu vi phạm.