Sáng kiến kinh nghiệm Những kỹ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal - Phạm Thị Bích Diệp

I. ĐẶT VẤN ĐỀ :

1. Thực trạng của vấn đề đòi hỏi phải có giải pháp mới để giải quyết:

- Nhu cầu của xã hội ngày càng lớn cùng với sự phát triển của khoa học kỹ thuật đã kéo theo sự phát triển như vũ bão của tin học. Sự phát triển của tin học đã đem lại hiệu quả to lớn cho hầu hết các lĩnh vực của xã hội, hơn thế nữa nó còn đi sâu vào đời sống của con người.

- Nền tin học của một quốc gia được xem là sự phát triển nếu nó đóng góp được phần đáng kể vào nền kinh tế quốc dân và vào kho tàng tri thức chung của thế giới.

- Lịch sử nhân loại đã chứng kiến những cuộc cách mạng về công nghệ thông tin với sự trợ giúp của máy tính và hệ thống máy tính, con người đã nâng cao năng suất và tự động hóa ngày một hiệu quả hơn và một trong những ứng dụng không thể không nhắc đến đó là những ứng dụng phần mềm của máy tính với nền công nghệ thông tin hiện nay. Phần mềm máy tính ngày một đi lên và phát triển với những ngôn ngữ lập trình khác nhau và cụ thể là ngôn ngữ lập trình Pascal. Pascal là một ngôn ngữ lập trình có cú pháp chặt chẽ, đơn giản và dễ hiểu.

 

doc30 trang | Chuyên mục: Pascal | Chia sẻ: yen2110 | Lượt xem: 510 | Lượt tải: 0download
Tóm tắt nội dung Sáng kiến kinh nghiệm Những kỹ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal - Phạm Thị Bích Diệp, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
writeln('phuong trinh vo so nghiem');
readln
end.
Ví dụ 5: 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á BEGIN nếu ta viết BE GIN thì sẽ không có nghĩa.
1.2.6 Tối ưu chương trình (optimization program)
-  Một chương trình chạy đúng không có nghĩa là việc lập trình đã xong. Ta phải sửa đổi lại một vài chi tiết để chương trình có thể chạy nhanh hơn, hiệu quả hơn.
-  Thông thường trước khi kiểm thừ thì ta nên đặt mục tiêu viết chương trình sao cho đơn giản (miễn chạy ra kết quả đúng là được), sau đó khi tối ưu chương trình, ta xem lại những chỗ nào viết chưa tốt thì tối ưu lại những mã lệnh để chương trình ngắn gọn hơn, chạy nhanh hơn.
-   Không nên viết tới đâu tối ưu mã đến đó (bởi chương trình có mã tối ưu thường phức tạp và khó kiểm soát).
-  Việc tối ưu chương trình nên dựa theo 4 tiêu chuẩn chính sau:
*  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 lỗi. Vì ít chương trình nào viết ra mà 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 lập trình viên khi phát triển chương trình.
*  Tính trong sáng : Chương trình viết ra đễ đọ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 (nếu phát hiện lỗi mới), cải tiến hay biến đổi để được chương trình giả 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ớ (tiết kiệm được cả không gian và thời gian).Để có một chương trình hữu hiệu, cần phải có một 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 ở mức chấp nhận được, không quan trọng bằng 3 tiêu chuẩn trên. Vì phần cứng phát triển rất nhanh, yêu cầu hữu hiệu không phải đặt ra gánh nặng.
=>  Từ những phân tích trên, chúng ta thấy rằng việc làm ra một chương trình phải trải qua rất nhiều công đoạn và tiêu tốn khá nhiều công sức. Chỉ một công đoạn không hợp lý sẽ tăng chi phí viết chương trình. 
 Lời khuyên:  Đừng bao giờ viết chương trình mà chưa suy xét kỹ về giải thuật và những dữ liệu cần thao tác.
	Với những bước cơ bản và cụ thể trên sẽ giúp cho học sinh có được những kỹ năng hiệu quả nhất trong quá trình viết chương trình dù bài toán đó có đơn giản hay phức tạp. Khi các em đã có những nền tảng vững chắc thì quá trình lập trình của các em sẽ trở nên đơn giản và ngắn ngọn. Với từng kỹ năng cơ bản của việc giải một bài toán bằng ngôn ngữ lập trình Pascal ta thấy qua từng bước sẽ giúp cho học sinh trở nên sáng tạo, chịu khó học hỏi và trau dòi kinh nghiệm. Rèn cho học sinh một môi trường năng động và khả năng tư duy nhạy bén. Khi học sinh đã trở nên thành thạo thì khi tiếp cận một bài toán học sinh sẽ thao tác nhanh hơn và chuyên nghiệp hơn như việc xác định bài toán, xây dựng thuật toán và đưa ra những chương trình ngắn gọn, hiệu quả và tối ưu nhất.
Ví dụ 1: Viết chương trình tính tổng 2 số nguyên được nhập từ bàn phím
Bước 1: Xác định Input, Output
            Input	: Hai số nguyên a và b;
            Output	: Tổng s=a+b;
Lưu ý: nên viết theo cách ở trên vì chúng ta sẽ dễ nhận ra là dùng bao nhiêu biến.
Bước 2: Xây dựng thuật toán
-  Bước 1: Nhập 2 số nguyên a và b;
-  Bước 2: Tính tổng S= a+b;
-  Bước 3: Hiển thị giá trị tổng s ra màn hình
Bước 3: Viết chương trình Pascal hoàn chỉnh
Program vidu ;	 	{ Tên chương trình là vidu }
Var a,b,S: integer ; 	{ Khai báo 3 biến kiểu số nguyên }
Begin
            Write(‘Nhap a=’); 	{ Hiển thị trên màn hình: Nhap a= }
       	  Readln(a); { Giá trị được nhập từ bàn phím sẽ gán cho a: ví dụ nhập 5 và nhấn enter thì hiểu là: a=5 }
            Write(‘Nhap b=’); 
 readln(b); 	
            S:=a+b; { Sau khi đã có 2 giá trị của a và b rồi, sẽ tính giá trị tổng S }
            Write(‘Tong la: ’,S); 	{ Đưa giá trị tổng S ra màn hình }
            Readln; { Dừng màn hình để xem kết quả chờ nhấn phím để quay lại }
End. 	{ Kết thúc chương trình }
 Ví dụ 2: Viết chương trình “Tìm ước chung lớn nhất (UCLN) của hai số nguyên dương M và N”. 
Bước 1: Xác định bài toán : 
Input	 : Nhập hai số nguyên dương M và N
Output	 : UCLN của hai số nguyên dương M và N
Bước 2: Xây dựng thuật toán : 
- Bước 1: Nhập M, N
- Bước 2: Nếu M = N thì lấy giá trị chung này làm UCLN rồi chuyển đến bước 5.
- Bước 3: Nếu M > N thì M ¬ M – N ngược lại N ¬ N – M ; 
- Bước 4: Quay lại bước 2 ;
- Bước 5: Đưa ra kết quả UCLN rồi kết thúc.
Bước 3: Viết chương trình : 
Program UCLN ;
Uses crt ;
Var M, N : integer ;
Begin
	Clrscr ;
	Write (‘Nhập N, M =’) ;
	Readln (N, M) ;
	While M N do
	If M > N then M:= M – N else N:= N – M ;
	Writeln (‘UCLN =’, M) ;
	Readln ;
End.
 Ví dụ 3: Viết chương trình “Tìm phần tử lớn nhất của dãy số nguyên”. 
Bước 1: Xác định bài toán : 
	- Input : Số nguyên dương N (<=250) và dãy N số nguyên dương A1,  AN. mỗi số đều không vượt quá 500.
	- Output : Chỉ số và giá trị của phần tử lớn nhất trong dãy số đã cho (nếu có nhiều phần tử lớn nhất chỉ cần đưa ra một trong số chúng)
Bước 2: Xây dựng thuật toán :
	- Bước 1: Nhập N và dãy A1,  AN ;
	- Bước 2: Max ß A1 ; iß 2 ;
	- Bước 3: Nếu i>N thì đưa ra giá trị Max rồi kết thúc ;
	- Bước 4: Nếu Ai > Max thì Max ß Ai ;
	 	 ißi+1 ; rồi quay lại bước 3.
Bước 3 : Viết chương trình 
Program TimMax ;
Uses crt ;
Const Nmax = 250 ;
Type arrInt = array[1 .. Nmax] of integer ;
Var N, i , Max , csmax : integer ;
	A : arrInt ;
Begin
	Clrscr ;
	Write (‘Nhap so luong phan tu cua day so, N =’) ;
	Readln (N) ;
	For i:= 1 to N do 
	Begin
	Write (‘phan tu thu ‘, i,’=’) ;
	Readln(A[i]) ;
	End ;
	Max:= A[1] ;
	Csmax := 1 ;
	For i:=2 to N do
	If A[i] > Max then
	Begin
	Max:= A[i] ;
	Csmax:=i ; 
	End;
	Writeln (‘gia tri cua phan tu Max:’ , Max) ;
	Writeln (‘chi so cua phan tu Max:’ , csmax) ;
	Readln
End.
2. Khả năng áp dụng:
Với kinh nghiệm trên qua học kỳ 2 năm học 2012-2013 tôi đã vận dụng so với học kỳ 1 năm học 2012-2013 tôi đã đạt được kết quả đáng mừng. Qua một cuộc điều tra nhỏ về tính hứng thú học tập của học sinh, số liệu được thể hiện như sau:
- Khối lớp 7 của năm học 2012-2013 khi lên lớp 8 của năm học 2013-2014 số lượng học sinh hứng thú, thích học tin học tăng vượt bậc, kỹ năng lập trình trở nên chuyên nghiệp và chính xác hơn.
- Khối lớp 8 của năm học 2012-2013 khi lên lớp 9 của năm học 2013-2014 đã mạnh dạn đăng ký thi học sinh giỏi khối 9 cho bộ môn tin học về việc lập trình bằng ngôn ngữ Pascal (thi thực hành trên máy tính). Ngoài ra các em còn tham gia các kì thi được tổ chức trên Internet và đăng kí dự thi tin học trẻ không chuyên dành khối trung học cơ sở.
Qua thời gian triển khai và áp dụng phương pháp, tôi nhận thấy giờ học lập trình bằng ngôn ngữ lập trình Pascal thực sự thu hút các đối tượng học sinh hơn chứ không còn là giờ học của các đối tượng học sinh khá giỏi. Học sinh hoạt động tích cực hơn, khả năng phân tích, tư duy toán học trở nên nhạy bén phát huy tính tích cực, sáng tạo và tạo niềm đam mê bộ môn Tin học. Các đối tượng học sinh hỗ trợ được cho nhau để cùng học, cùng tiến bộ. Học sinh mạnh dạn đăng kí tham gia các kì thi về lập trình. Đặc biệt là học sinh ở trường đã tiến bộ rõ rệch ở bộ môn toán và hứng thú học toán hơn nhiều. Kỹ năng lập trình của các em không còn lúng túng mà trở nên chuyên nghiệp hơn. Qua đó nhiều em đã định hướng cho công việc của mình trong tương lai và có tác động tích cực đến nhận thức của các em. Tạo cho các em ngày càng yêu, đam mê công nghệ phần mềm và giúp các em có được nền tảng cơ bản nhất để tiếp cận bất kỳ ngôn ngữ lập trình khác.
Kết quả kiểm tra học kì II lớp 8 năm học 2012-2013 (lập trình)
TT
Lớp
Sĩ số
Kết quả kiểm tra
Giỏi
Khá
TB
Yếu
Kém
Trên TB
SL
%
SL
%
SL
%
SL
%
SL
%
SL
%
1
8A1
36
8
22.2
12
33.3
11
30.5
5
14.0
31
86.1
2
8A2
38
6
15.8
14
36.8
12
31.6
4
10.5
2
5.3
32
84.2
3
8A3
37
7
18.9
14
37.8
10
27.0
5
13.5
1
2.8
31
83.8
Tổng cộng
21
14.3
40
27.2
33
22.4
14
9.5
3
2.0
94
84.7
3. Lợi ích kinh tế - xã hội:
Tạo cho học sinh trung học cơ sở 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 nước nhà trở thành một nước công nghiệp hóa – hiện đại hóa.
	Thế giới ngày càng hiện đại với nhiều công nghệ tiên tiến phục vụ cho con người và cho xã hội.
KẾT LUẬN:
Tin học là môn học mới đối với học sinh phổ thông. Để tạo hứng thú học tập cho học sinh và từng bước nâng cao chất lượng bộ môn đòi hỏi người giáo viên phải tìm tòi, đổi mới phương pháp dạy học phù hợp, hiệu quả.
Trong quá trình dạy học sinh lập trình, vận dụng những kỹ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal tôi đã tạo cho học sinh niềm đam mê, hứng thú, sáng tạo và đặc biệt các giờ học không còn là nỗi ám ảnh của học sinh nữa và các em ở trường đã tiến bộ rõ rệch về kỹ năng lập trình từ những bài toán đơn giản đến nâng cao. 
Trên đây là một số kinh nghiệm của bản thân rút ra được trong quá trình hướng dẫn dạy học sinh những kỹ năng cơ bản về lập trình. Rất mong nhận được sự góp ý của quý thầy cô, bạn bè đồng nghiệp để tôi có thể hoàn chỉnh hơn kinh nghiệm này, góp phần nâng cao kỹ năng và chất lượng dạy học lập trình cho học sinh lớp 8.
	Hải Cảng, ngày 16 tháng 09 năm 2013
 Người viết	
	Phạm Thị Bích Diệp

File đính kèm:

  • docsang_kien_kinh_nghiem_nhung_ky_nang_co_ban_de_giai_bai_toan.doc
Tài liệu liên quan