B- Giải quyết các vấn đề Phơng pháp cơ bản giải các bài toán trong tin học không chỉ dùng để giải một bài toán cụ thể mà còn giải 1 lớp các bài toán cụ thể thuộc cùng một loại.. Phát tri
Trang 1các bớc giải một bài toán cho lớp bài toán trên máy vi tính
A Đặt vấn đề
1 Lý do
Hiện nay nớc ta cũng nh các nớc trên thế giới đang cạnh tranh về nghành công nghệ chế tạo máy cũng nh các sản phần phần mềm giúp ích cho con ngời trên mọi lĩnh vực Vậy làm thế nào để làm đợc điều đó : nhờ vào ngành công nghệ thông tin Ngày xa xa con ngời không biết đọc, không biết viết đó là một nỗi khỗ vô cùng, còn ngày nay con ngời không biết sử dụng máy vi tính thì coi nh là không biết đọc, không biết viết Vậy khi biết sử dụng máy vi tính rồi chúng ta sẽ làm gì hay chỉ ngồi chơi điện tử, các trò giải trí, soạn thảo các bài văn bản mà thôi
?
Là một giáo viên tin học một trong các mục tiêu khi đa tin học vào trờng học là nhằm giúp học sinh không chỉ biết soạn thảo mà còn phải có khả năng phân tích, tổng hợp, trừu tợng hoá, khái quát hoá vấn đề và đặc biệt là phát triển t duy, sáng tạo Những năm qua môn tin học ở THCS cha có sách giáo khoa cụ thể hớng dẫn cho học sinh về cách phân tích lập trình Vì vậy học sinh cha có tính độc lập sáng tạo mà phải nhờ vào giáo viên rất nhiều Nhng năm nay đã có sách giáo khoa hớng dẫn cho học sinh cụ thể qui trình lập trình nh thế nào.Vì thế mà tôi sẽ hớng cho học sinh lớp 8 cách để trở thành một nhà lập trình thì cần phải nắm bớc cơ bản nào?
2 Cơ sở thực tiễn
Trong quá trình dạy tôi nhận thấy ở các em học sinh Mới đầu các em cũng rất sợ khi thấy giải một bài toán ở ngoài thì đơn giản và chỉ trong vòng vài giây có thể nhẩm ra kết quả Còn ở trong lập trình cũng bài toán đó mà phải làm đến hàng chục phút mà lại có thể cho kết quả sai Song bằng những tâm huyết của mình và cũng nh sự yêu thích của học sinh Nhất là năm nay nghành giáo dục có phát động phong trào giải toán trên mạng Điều đó đã thúc đẩy tôi rất nhiều trong việc dạy học là làm sao đa ra đợc cho các em sự đam mê và phát triển tài năng của học sinh trong việc đào tạo nhân tài cho đất nớc
Ngôn ngữ lập trình PASCAL là một phần mềm có cấu trúc và rất đợc nhiều
độc giả quan tâm và cũng chính đó cũng có nhiều cuốn sách do nhiều tác giả viết Song với bản thân tôi khi lựa chọn viết đề tài này là muốn đa ra “ các bớc giải một bài toán cho lớp bài toán trên máy vi tính” sử dụng bằng ngôn ngữ lập trình pascal
Trang 2B- Giải quyết các vấn đề
Phơng pháp cơ bản giải các bài toán trong tin học không chỉ dùng để giải một bài toán cụ thể mà còn giải 1 lớp các bài toán cụ thể thuộc cùng một loại Bài toán đợc cấu tạo từ hai yếu tố cơ bản: Thông tin vào (Input) và thông tin ra (Output) Phơng pháp tổng quát để giải một bài toán bằng máy vi tính dựa trên ngôn ngữ pascal thì cần các bớc :
1 Khái niệm bài toán
Trong quá trình học ngời học sinh hay bất kỳ một cá nhân nào luôn phải liên tục giải quyết các bài toán Trong cuộc sống là 1 chuỗi các bài toán mà ta phải đối
đầu giải quyết không một chút đơn giản mà nhiều lúc phải bức mình Song đối với học sinh lớp 8 do chơng trình học toán của các chỉ mới đến giải phơng trình bậc nhất là cao nhất Nên việc đa các lớp bài toán vào giải cho các em đang còn một phần nào bị hạn chế Nhng bất kỳ một bài toán nào thì chúng ta cũng đọc đề rồi xác định nó : A->B
Trong đó:- A là giải thiết : điều kiện ban đầu hoặc cái đã cho khi bắt đầu giải
2 Bài toán trên máy vi tính
Bài toán trên máy cũng mang đầy đủ các tính chất của bài toán tổng quát trên, nhng nó lại đợc diễn đạt theo một các khác
- A: là đa thông tin vào (Input )
- B: là đa thông tin ra( Output)
- → : là chơng trình tạo từ các lệnh cơ bản của máy tính cho phép biến đổi từ A đến B
3 Một số ví dụ
Ví dụ 1: Tính diện tích hình chữ nhật
Trang 3+ Thông tin vào: Chiều dài là cạnh a, chiều rộng là cạnh b
+ Thông tin ra: Kết quả diện tích khi đa a,b vào
+ Các thông tin cần chế biến thông tin nh:
- Lần lợt đa a,b vào ( cho a=3,b=4)
- áp dụng công thức tính diện tích hình chữ nhật: a*b
- Kết quả in ra là 12
Ví dụ 2: Cho 2 số tự nhiên a, b Tìm ớc số chung lớn nhất của chúng
Các bớc các định bài toán:
+ Xác định thông tin vào: hai số tự nhiên a,b
+ Xác định thông tin ra: số tự nhiên d thoả mãn:
+ Xác định thông tin vào:Nhập số nguyên N
+Xácđịnh thông tin ra: Các số nguyên tố ( chia hết cho nó và số 1)
II- Tìm thuật toán
Thuật toán là một quá trình gồm một dãy hữu hạn các thao tác đơn giản đợc sắp xếp theo một trình tự xác định sao cho theo đó từ Input của bài toán sẽ tìm ra
đợc Output bài toán
Một bài toán ta có 4 cách thể hiện thuật toán: Các bớc xác định bằng lời, lập sơ
Trang 4Cách 2: Giải bài toán bằng sơ đồ
- Có hình thoi thể hiện các thao tác so sánh
- Hình chữ nhật thể hiện các phép tính toán, các câu lệnh
- Hình ôvan thể hiện bắt đầu và kết thúc
- Các mũi tên quy định trình tự các thao tác
b:= b - aa:= b - a
Trang 5- Đã gọi là kỹ năng thì chỉ có thể có đợc thông qua rèn luyện tích cực.
- Kinh nghiệm cho thấy một thuật toán do cài đặt vụng về, lộn xộn thì khi chạy trên máy tính có thể cho kết qủa tồi tệ
2 Phát triển chơng trình bằng cách tinh chế từng bớc
Một bài toán ta có thể đa ra nhiều cách giải khác nhau, song là một giáo viên thì chúng ta cần giúp học sinh viết chơng trình làm sao ngời xem nhìn vào có thể dễ hiểu đợc bài toán đó là gì ? Do đó việc tinh chỉnh các bớc cho bài toán trong máy tính là phơng pháp khoa học, có hệ thống giúp ta phân tích các thuật toán và cấu trúc dữ liệu từ đó thành một chơng trình Muốn lập trình giỏi không phải chỉ cần nắm ngôn ngữ lập trình là đủ Mà vấn đề cốt yếu là biết phơng pháp phát triển dần dần để chuyển các ý tởng ra thành chơng trình hoàn chỉnh
Trang 6chỉnh xác hơn Song ngôn ngữ lập rình pascal ngời lập trình có thể đa ra phơng pháp tinh chỉnh từng bớc là thể hiện t duy giải quyết vấn đề bài toán từ trên xuống trong đó các bớc là hớng về ngôn ngữ lập trình làm sao cho bài toán đa ra đợc ph-
- Tìm số đầu tiên trong S đa vào NT
- Loại bỏ khỏi S các bội số của số nguyên tố vừa tìm đợc
- Số đầu tiên còn lại của S là số nguyên tố Tiếp tục quá trình cho đến khi S=[]
Trang 7d Tinh chÕ lÇn 4 Râ rµng cÊu tróc d÷ liÖu tËp hîp Set of nguyen tuy dÔ hiÓu nhng
rÊt cång kÒnh vµ lµm m¸y ch¹y chËm ch¹p, ta cã thÓ dïng m¶ng Boolean linh ho¹t h¬n nh sau:
for i:=2 to N do a[i]:=true;
for i:= 2 to N div 2 do
Trong ng«n ng÷ pascal nÕu dïng m¶ng boolean th× ta bÞ giíi h¹n N<10000
§Ó cã thÓ ch¹y víi sè lín h¬n ta kh«ng dïng m¶ng , tËp hîp mµ dïng nh sau:Program nguyen_to;
uses crt;
var
i,j,k,n:integer;
begin
Trang 8IV- Chạy Thử , thay đổi, kiểm tra chơng trình
if a<b then a:=b
else if a<c then a:=c;
write('so lon nhat la ',a);
readln
End
Với chơng trình này cũng chạy đợc song đáp số có lúc đúng, có lúc sai tuỳ thuộc vào lúc nhập giá trị a,b,c{ nếu ta nhập thứ tự a=5,b=7,c=9
Thì sẽ cho ta kết quả số lớn nhất là 7 Vậy thì sai hoàn toàn}
Do đó ngời lập trình cần phải biết cách tìm lỗi Sữa lỗi, điều chỉnh viết lại chơng trình cũng là kỹ năng quan trọng của ngời lập trình Vậy với dụ trên để kết quả luôn đúng thì ta có thể viết lại chơng trình
Trang 92 Phân loại lỗi và cách sửa lỗi
- Lỗi về thuật toán: Điều chỉnh lại thuật toán, thêm vị trí có thể, loại bỏ thuật toán sai, tìm thuật toán khác nghĩa làm lại từ đầu
Ví dụ: viết chơng trình tính tổng S= 1n
3
1 2
1
1 + + + + (n đợc nhập vào từ bàn phím)
Học sinh viết chơng trình khai báo biến S thuộc kiểu dữ liệu nguyên thì
ch-ơng trình sẽ không thực hiện đợc phép toán tính tổng Do vậy để thực hiện đợc phép toán thì khai báo biến S là thuộc kiểu dữ liệu thực
- Lỗi về trình tự: Phải xem lại thuật toán, phân tích lại từ trên xuống dới để
đặt lại cho đúng với thuật toán
Ví dụ:Viết chơng trình giải phơng trình bậc nhất ax+b=0 với a,b đợc nhập
Trang 10if a<>0 then
writeln('moi so deu la nghiem');
else
if b=0 then writeln('phuong trinh co nghiem',-b/a:4:2)
else writeln('phuong trinh vo nghiem')readln
Ví dụ : Lỗi sau câu lệnh ta không sử dụng dấu chấm phẩy, hay kết thúc
ch-ơng trình không có dấu chấm, hay từ khoá DOWNTO nếu ta viết DOWN TO thì
sẽ không có nghĩa
3 Kiểm tra
Có nhiều chơng trình khó kiểm tra tình đúng đắn , nhất là chơng trình tìm kiếm lời giải tối u Vì chúng cha biết kết qủa nào là đúng nhất Vì vậy việc tìm lỗi rất là khó khăn.Trong quá trình chạy thử một chơng trình ta cần lu ý:
- Nếu khởi đầu bằng bộ chơng trình(test ) nhỏ nhng các giá trị đặc biệt (đây là dễ bị lỗi nhất)
Trang 11- Làm nhiều các bộ test nhng phải đa dạng tránh lặp đi lặp lại các bộ test
t-ơng tự
- Nên kết thúc bằng các bộ test có kích thớc lớn để kiểm tra tính chịu đựng của chơng trình
4 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 nhng cha có nghĩa là quá trình lập trình đã xong Mà ngời lập trình muốn nó ở đây ta có thể 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 Nh phần tinh chế một chơng trình là rất quan trọng cho việc sửa chữa chơng trình cũ sang chơng trình mới
Ví dụ: - Nhập 3 số a,b,c kiểm tra xem 3 số đó có thể là độ dài của các cạnh một
tam giác hay không Từ đó ta có thể chuyển nó sang dạng là các cạnh đó thoã mãn tam giác cân, đều hay là tính diện tích của tam giác đó
- Tính tổng cho N số nguyên đầu tiên đợc nhập vào từ bàn phím Từ đó ta có thể triển khai tính giai thừa, tìm số nguyên tố, độ dài của dãy số đó, tính trung bình cộng cho dãy số……
- Nhập vào mảng của dãy số từ bàn phím Từ đó ta có thể tìm giá trị lớn, nhỏ của mảng, trung bình độ dài của mảng, điểm của học sinh …
Vậy là một ngời lập trình bạn cần nắm đợc các tiêu chuẩn của một chơng trình từ giúp bài toán có một kết quả tốt
- Tính tin cậy: Có một giải thuật đúng
- Tính uyển chuyển: Chơng trình có thể sửa đổi
- Tính trong sáng: dễ đọc, dễ hiểu
- Tính hữu hiệu: chạy chơng trình nhanh và tốn ít dung lợng bộ nhớ về không gian và thời gian
Tóm lại: Quá trình xây dựng chơng trình là một chuỗi các bớc tinh chế ở mỗi bớc
đợc phân ra nhiều công việc con để từ đó đa ra đợc phơng pháp tối u Song ngời lập trình cần rèn luyện để có ý thức về các quyết định liên quan và biết khảo sát nghiêm túc cũng nh từ bỏ các lời giải ngay cả khi chúng đúng Mà cần phải cân nhắc mọi phơng tiện của từng lời giải theo một tiêu chuẩn
C- Kết thúc vấn đề
Để đa ra một phơng pháp tối u cho một bài toán không đơn giản Bởi một bài toán chúng ta có thể đa ra nhiều phơng pháp giải khác nhau Song trong lập trình ngời giải không sử dụng đúng cách giải thì một bài toán lại đi ngợc lại là
Trang 12cho các kết quả khác nhau Điều đó chứng tỏ cho thấy ngời lập trình cần phải nắm đợc các bớc giải bài toán trong lập trình.
Bài toán cho kết quả sai là do nhiều nguyên nhân mà tôi đã trình bày ở phần trớc nh:
+ Chọn kiểu dữ liệu sai
+ Viết kết quả in ra ở dạng có quy cách và không quy cách
+ Phép gán sai ví dụ nh bài toán tính tổng ban đầu ta phải gán S:=0; nếu gán S:= 1; thì cho kết quả sai Hay Bài toán tính tích thì phép gán phải ngợc trở lại ban đầu S:=1;
Vậy để giải quyết đợc bài toán trên máy tính điện tử sử dụng ngôn ngữ lập trình pascal nói chung và của lớp 8 nói riêng Để nâng cao chất lợng dạy học tin ở các trờng phổ thông thì là một giáo viên tin học tôi muốn nói rằng chúng ta không chỉ dạy lý thuyết suông mà cần phải biết kết hợp thực hành Để từ đó học sinh mới nhận thấy đợc u điểm của việc học chơng trình này có lợi hơn ở điểm nào
Kết quả khảo sát cho thấy
Đồng thời cũng phối hợp chơng trình toán đã học đến những phần nào để từ đó đa các ví dụ, bài tập để học sinh có thể nắm chắc lý thuyết cũng nh thực hành trên máy tính dễ tiếp thu Để từ đó các em rút ra đợc u điểm của các chơng trình này so với cách tính tay ở chỗ nào
Bản thân tôi mong muốn góp một phần nhỏ bé của mình vào sự nghiệp giáo dục Bởi đây là môn học khá mới mẻ với tất cả các học sinh THCS Tóm lại các b-
ớc giải một bài toán cho lớp các bài toán trên máy vi tính của tôi đa ra đang còn nhiều thiếu sót Mong nhận đợc sự góp ý của các thầy cô giáo cùng nh bạn bè để
đợc hoàn thiện hơn./
Ngời viết
Trang 13
một số ý kiến về dạy học các yếu tố hình học cho
học sinh lớp 1-2-3
Phần I- Đặt vấn đề I- Cơ sở lý luận
Mỗi môn học ở Tiểu học đều góp phần hình thành và phát triển những cơ sở ban đầu rất quan trọng của nhan cách con ngời
Riêng môn toán có một tầm quan trọng đặc biệt vì:
- Các kiến thức, kỹ năng của môn Toán ở Tiểu học có nhiều ứng dụng trong
đời sống, cần lao động, cần để hỗ trợ cho việc học các môn học khác, cần để học lên
-Môn toán giúp học sinh bít những mối quan hệ về số lợng, về hình dạng không gian của sự vật , nhờ đó mà có phơng pháp nhận thức một số mặt cuả thế giới xung quanh và biết cách hoạt động có hiệu quả
- Khả năng giáo dục của Toán học rất to lớn , đó là rèn luyện phơng pháp suy luận, phát triển thông minh, cách suy nghĩ độc lập , linh hoạt sáng tạo và hình thành đợc những phẩm chất của ngời lao động
Trong môn Toán những kiến thức hình học có rất nhiều ứng dụng trong đời sống hằng ngày Vì vậy chơng trình Toán tiểu học , mạch kiến thức số học là trọng tâm , là hạt nhân của chơng trình song các kiến thức về hình học cũng gắn bó rất chặt chẽ với kiến thức số học và đại lợng
Việc dạy học các yếu tố hình học cho học sinh Tiểu học nói chung và cho học sinh lớp 1,2,3 nói riêng là nhằm trang bị cho học sinh những biểu tợng chính xác về một số hình học đơn giản và một số đại lợng hình học thông dụng đồng thời cũng nhằm rèn luyện cho học sinh một số kỹ năng kẻ, êke, compa để đo , vẽ các hình Hình học đơn giản Từ đó giúp các em nắm đợc những đặc điểm cơ bản của các hình học để nhận dạng hình một cách nhanh chóng, chính xác, bít so sánh phân biệt hình này với hình kia Tạo cho học sinh tính tích cực hứng thú học tập trên cơ sở đó phát triển các năng lực trí tuệ , phát triển trí tởng tợng không gian ( thông qua các bài tập vẽ hình , ghép hình, phân tích tổng hợp hình )
II- Cơ sở thực tiễn
1 Đặc điểm tâm lý của học sinh Tiểu học
Là giáo viên Tiểu học , chúng ta hiểu rõ đặc điểm t duy của học sinh tiểu học chủ yếu là nhận thức cảm tính, là lối t duy cụ thể, đặc biệt là học sinh ở các lớp đầu cấp tiểu học thì đặc điểm các thể hiện rõ
Trang 14Ngay từ lớp 1, trẻ đã luôn tò mò, ham thích tìm hiểu Hình học, tìm hiểu không gian xung quang các em nếu giáo viên chúng ta biết khéo léo khơi dậy những tiềm năng ở trẻ là chúng ta đã tạo nên hứng thú học Toán , thúc đẩy sự phát triển các năng lực cho các em.
2 Thực trạng dạy học các yếu tố hình học ở các lớp 1,2,3
Hiện nay để đáp ứng đợc yêu cầu phát triển của xã hội Bộ giáo dục đã thực hiện đổi mới chơng trình các cấp học ở tiểu học đã thực hiện đổi mới chơng trình lớp 1,2,3
Song thực tế dạy học cho ta thấy kết quả học tập về nội dung hình học của học sinh không đều, chất lợng đại trà cha cao điều đó một phần cũng do sự trừu tợng , khó hiểu của một số khái niệm hình học so với mực độ nhận thức củalứa tuổi các em Mặt khác cũng có một số giáo viên còn rật khuôn máy móc với sách thiết kế, hớng dẫn trong quá trình giảng dạy Cũng có thể do họ nắm hệ thống nội dung kiến thức , các mức độ , yêu càu của từng khái niệm hình hoch đối với từng khối không sâu sát dẫn đến sa vào giảng giải quá cáo so với yêu cầu mà chơng trình đặt ra Một số lý do không kém phần quan trọng đó là những đồ dùng trực quan để giúp học sinh tiếp cận với những biểu tợng hình học còn hạn chế , một số giáo viên cha phát huy đợc tối đã hiệu quả của các đồ dùng trực quan, do việc sự dụng thiết bị dạy học trở thành thói quen đối với họ
Mặt khác với học sinh lớp 1,2, , việc sử dụng các dụng cụ học tập để tiến hành các bài tập hình học cũng khiến cho học sinh gặp không ít khó khăn
Chẳng hạn với học sinh lớp 1, việc một tay giữ thớc kẻ cố định và phối hợp tay kia cầm bút để vạch nên đoạn thẳng , đờng thẳng , cũng đòi hỏi các em phải rất cận thận và kheo léo Kiểm tra các bài tập thực hành của học sinh chúng ta th-ờng bật cấp những đoạn thẳng với nét vạch quá đậm hoặc những nét vạch chệch h-ớng không theo ý muốn
Hoặc với nhiều học sinh lớp 3, việc sử dụng compa để vẽ những đờng tròn cũng chẳng mấy thuận lợi, nhiều em cố gắng vẽ mãi mà hình vẫn không tròn Hay
nh các khái niệm về góc, về diện tích một hình quả thực là những khái niệm trừu tợng với học sinh lớp 3
Vì vậy để dạy học các yếu tố hình học cho học sinh lớp 1,2,3 nói riêng và học sinh tiểu học nói chung đạt hiệu quả cao đòi hỏi ngời giáo viên phải đầu t thời gian, trí tuệ để tìm hiểu, nắm chắc nội dung chơng trình sách giáo khoa, các mức
độ yêu cầu cần đạt đối với từng khái niệm hình học ứng dụng với mỗi khối lớp để
từ đó tìm tòi, sáng tạo, đói mới phơng pháp dạy học nhằm giúp học sinh tiếp cận