Tải bản đầy đủ (.doc) (30 trang)

Sáng kiến kinh nghiệm Tin 8

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (550.08 KB, 30 trang )

Sáng kiến kinh nghiệm THCS Hải Cảng
A.MỞ ĐẦU:
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.
- Do vậy, Việt Nam nói chung và ngành giáo dục đào tạo nói riêng phải đầu tư
phát triển về mọi mặt. Đặc biệt là nguồn nhân lực tri thức tức là phải đào tạo ra một thế
hệ trẻ năng động, thông minh, độc lập, sáng tạo, nắm vững tri thức khoa học công nghệ
để làm chủ trong mọi hoàn cảnh công tác và hoạt động xã hội nhằm đáp ứng được nhu
cầu trong thời kì công nghiệp hoá, hiện đại hoá đất nước.
- Để đáp ứng được các yêu cầu trên, môn Tin học đã được đưa vào giảng dạy ở
các trường phổ thông với vai trò là môn học chính khóa với thời lượng 2 tiết/tuần
cho tất cả các lớp ở cấp học.
- Đặc trưng của môn Tin học lớp 8 là kiến thức về lập trình. Ngôn ngữ lập trình
dường như rất xa lạ vì đây là kiến thức đầu tiên trong lập trình mà các em được học.
- Qua giảng dạy môn Tin học ở trường THCS Hải Cảng, bản thân tôi nhận thấy
rằng nhiều học sinh lớp 8 thấy môn lập trình Pascal khó, khô khan và cực kỳ loằng
ngoằng. Mới đầu các em cũng rất sợ vì 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


GV : Phạm Thị Bích Diệp Năm học 2013-2014
1
Sáng kiến kinh nghiệm THCS Hải Cảng
bài toán đó mà phải làm đến hàng chục phút mà có thể cho kết quả sai. Pascal trở
nên quá xa lạ và khó khăn đối với người sử dụng và nhất là đối với học sinh THCS
là những người đang trực tiếp ứng dụng ngôn ngữ lập trình này.
- Tâm lý các em đều cho rằng môn Tin học không phải là môn học chính. Do đó
không cần phải để tâm đến "nó". Những tiết học lý thuyết thì ghi chép qua loa cho
xong chuyện bằng không thì ghi chép "giả vờ" để thầy cô khỏi chú ý hay nhắc nhở
trong lúc giảng bài. Trong những tiết thực hành chỉ một vài học sinh thật sự chú tâm
suy nghĩ xây dựng thuật toán, viết chương trình đa số còn lại tranh thủ chơi game
hoặc làm việc riêng. Buồn thay cho một số học sinh khi được kiểm tra vở tại thời
điểm sắp kết thúc học kỳ 2 mà chỉ ghi được 5 bảy trang cho cả một chương trình
khá dài trong cuốn Tin Học 3.
- Xét ở một góc độ nào đó Lập trình cũng là một môn học khó đối với học sinh
THCS. Khó ở đây không phải do tính phức tạp của môn học hay phạm vi kiến thức
quá rộng lớn. Nếu đem so sánh môn học Lập trình và các phân môn Toán học ở
trường THCS thì Lập trình Pascal gọn nhỏ hơn nhiều lần.
- Lập trình Pascal "khó" đối với học sinh THCS ở chỗ: 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. Bình diện chung học sinh THCS vốn tiếng Anh không nhiều, đa số
các em còn yếu về tiếng Anh. Lấy đơn vị lớp để tính thì mỗi lớp chỉ có một vài em
được gọi là "thông thạo" tiếng Anh qua các bài học. Hầu hết số còn lại nằm trong
trạng thái "mù tịt". Đây là một khó khăn cho việc hiểu được Pascal.
- 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 của các em dừng lại ở mức độ Sách Giáo Khoa
Toán THCS 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
GV : Phạm Thị Bích Diệp Năm học 2013-2014
2
Sáng kiến kinh nghiệm THCS Hải Cả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ự kì thi Tin học trẻ, học sinh giỏi môn Tin học lớp 9,…. Đ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 biết 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. Giúp các em yêu thích lập trình và học lập
trình trong sự hứng thú.
2. Ý nghĩa và tác dụng của giải pháp mới:
Việc thực hiện nội dung này đã góp thêm một phương pháp mới trong việc
giảng dạy học sinh lớp 8 có được 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ạo cho học sinh sự thích thú nhằm nâng cao tính
tích cực, độc lập, sáng tạo và kỹ năng chuyên nghiệp của học sinh trong quá trình sử
dụng máy vi tính.
Bên cạnh đó các học sinh sẽ cùng hỗ trợ lẫn nhau và thúc đẩy nhau cùng học
tập, cùng tiến bộ. Những đối tượng khác có niềm đam mê lập trình, đam mê nghiên
cứu viết phần mềm tin học sẽ ngày càng hứng thú khám phá trong quá trình thực
hành trên máy tính.
Hạt nhân của chương trình máy tính là sự lưu trữ và xử lý thông tin. Việc tổ
chức dữ liệu như thế nào có ảnh hưởng rất lớn đến cách thức xử lý dữ liệu đó, cũng
như tốc độ thực thi và sự chiếm dụng bộ nhớ của chương trình. Do đó mục đích của
bài viết này là cung cấp những hiểu biết nền tảng trong việc thiết kế một chương
trình máy tính để thấy rõ sự cần thiết của việc phân tích, lựa chọn cấu trúc dữ liệu
phù hợp cho từng bài toán cụ thể.

3. Phạm vi nghiên cứu của đề tài:
Học sinh khối 8, 9 trong nhà trường trung học cơ sở Hải Cảng.
II. PHƯƠNG PHÁP TIẾN HÀNH:
1. Cơ sở lý luận và thực tiễn có tính định hướng cho việc nghiên cứu, tìm
giải pháp của đề tài:
Chúng ta đang sống trong thời đại khoa học điện tử, thời đại bùng nổ thông
tin và mạng máy tính. Công nghệ thông tin là tập hợp các phương pháp khoa học,
các phương tiện và công cụ kỹ thuật hiện đại nhằm tổ chức khai thác và sử dụng có
hiệu quả các nguồn tài nguyên thông tin rất phong phú và tiềm năng trong mọi lĩnh
vực hoạt động của con người và xã hội.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
3
Sáng kiến kinh nghiệm THCS Hải Cảng
Bộ GD&ĐT đã chỉ rõ: Nâng cao nhận thức về vai trò của CNTT; ứng dụng
và phát triển CNTT trong giáo dục và đào tạo sẽ tạo một bước chuyển cơ bản trong
quá trình đổi mới nội dung, chương trình, phương pháp giảng dạy, học tập và quản
lí giáo dục.
Đặc trưng của môn Tin học là môn khoa học gắn liền với công nghệ hiện đại,
do vậy dạy học Tin học trong nhà trường nhằm trang bị cho học sinh kiến thức
khoa học về Tin học, phát triển tư duy thuật toán, kỹ năng lập trình và tiếp cận
những công nghệ mới của Tin học phục vụ học tập và đời sống. Nội dung chương
trình của môn Tin học hiện hành ở các trường THCS đã đáp ứng được những yêu
cầu trên.
Trong nhà trường hiện đang phấn đấu các mục tiêu cụ thể của ngành là: Tổ
chức tốt việc hướng dẫn học sinh biết cách lập trình để tham gia các kỳ thi như Tin
học trẻ, học sinh giỏi lớp 9,…
* Thuận lợi:
- Được sự quan tâm của Ngành giáo dục trong công cuộc đổi mới phương
pháp dạy học.
- Được sự quan tâm của BGH nhà trường trong việc đầu tư cơ sở vật chất, trang

thiết bị dạy học tương đối đầy đủ đảm bảo phục vụ giảng dạy bộ môn Tin 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 mô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.
* Khó khăn:
- Một bộ phận học sinh lớp 8 chưa ý thức việc học Tin.
- 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ó 20 máy nhưng là máy cũ nên thường
hay hư hỏng, thiết bị hỗ trợ thường bị hư hao, không khí trong phòng máy không
thoáng mát làm cho học sinh không tập trung vào bài giảng ảnh hưởng rất lớn
trong quá trình giảng dạy và học tập.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
4
Sáng kiến kinh nghiệm THCS Hải Cảng
- Vẫn còn một số em học sinh tiếp thu kiến thức còn chậm, đặc biệt là 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 bởi đây là một
môn học mới (một môn ngoại ngữ mới).
- Trường THCS Hải Cảng nằm trên phường Hải Cảng, là địa phương còn
nghèo nàn, đa số con em gia đình làm nghề biển, trình độ học vấn có nhiều hạn chế
nên sự quan tâm của phụ huynh đến việc học tập của con em còn hạn chế. Ít có điều
kiện chăm sóc, giáo dục và định hướng cho con em trong việc học tập.
- Một số 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. Ngoài ra, ở chương trình Tin học 8, các em phải
làm quen, tiếp cận với ngôn ngữ lập trình Pascal là một phần mềm có cấu trúc phức
tạp, ngôn ngữ lập trình bằng tiếng anh. Mặc khác để thực hiện được một chương
trình thì các em phải có một kiến thức toán học nhất định.
2. Các biện pháp tiến hành, thời gian tạo ra giải pháp:
Qua quá trình học tập, nghiên cứu và hướng dẫn, cộng với thực tiễn trong
công tác giảng dạy. Các phương pháp giúp cho tôi tập trung vào nghiên cứu chính,

đó là:
- Phương pháp điều tra
- Phương pháp quan sát.
- Phương pháp phân tích tổng hợp
- Phương pháp thống kê.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
5
Sáng kiến kinh nghiệm THCS Hải Cảng
NỘI DUNG :
I. MỤC TIÊU:
Kinh 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 Tin học lớp 8 qua các năm học chưa cao, đặc biệt là kĩ
năng lập trình còn hạn chế. Mục đích của tôi là giúp đỡ học sinh lớp 8 nắm được
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ạo cho học sinh niềm hứng thú và say mê trong lập trình để từ đó giúp cho
các em phát huy tính tích cực, tự giác, chủ động, sáng tạo, rèn luyện thói quen làm việc
độc lập và kỹ năng lập trình. Bên cạnh đó, học sinh còn biết vận dụng để giải quyết các
bài toán thường gặp trong thực tế; gây hứng thú trong học tập, làm cho “học” là quá
trình kiến tạo; là niềm say mê để từ đó học sinh biết khai thác và xử lý thông tin, tự
hình thành hiểu biết, năng lực và phẩm chất.
Khi thực hiện nội dung này bản thân tôi là giáo viên tin học cũng thấy mình
trở nên năng động, sáng tạo, phát huy được chuyên môn của mình.
II. MÔ TẢ GIẢI PHÁP CỦA ĐỀ TÀI:
1. Thuyết minh tính mới:
1.1 Kiểm tra học kỳ 1 năm học 2012-2013 môn Tin học:
Qua kiểm tra chất lượng học kỳ 1 năm học 2012-2013, tôi thấy 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 của học sinh lớp 8 là rất
yếu. Khi giải bài toán trên máy tính học sinh chỉ quan tâm đến công thức để tính toán
ra kết quả bài toán mà quên các bước xác định thông tin vào, thông tin ra; xây dựng

thuật toán; chạy chương trình thì học sinh chưa nhận biết được kết quả chương trình
đúng hay sai. Vì thế, kết quả kiểm tra học kỳ 1 là rất thấp.
Kết quả khảo học kỳ 1 năm học 2012-2013
T
T
Lớp

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 5 13.9 7 19.4 9 25.0 7 19.4 8 22.3 21
58.
3
2 8A2 38 4 10.5 8 21.1 6 15.8 10 26.3 10 26.3 18
47.
4
3 8A3 37 2 5.4 6 16.2 7 18.9 12 32.4 10 27.0 15
40.
5
Tổng cộng 11 9.9 21 18.9 22 19.8 29 26.1 28 25.2 54
48.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
6
Sáng kiến kinh nghiệm THCS Hải Cảng
6
1.2 Giải quyết vấn đề:
Pascal là ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, được
Niklaus Wirth phát triển vào năm 1970, là ngôn ngữ đặc biệt thích hợp cho nhiều
thế hệ học sinh, là ngôn ngữ vỡ lòng trong chương trình học. Ở môi trường này, học

sinh sở hữu một lượng tài nguyên là các kiểu dữ liệu đơn giản, cùng với các câu
lệnh rõ ràng, trong sáng, nhất quán và rất dễ thuộc. Tuy nhiên, nó đòi hỏi người lập
trình tài bố cục, thiết kế một thuật toán sao cho đúng đắn, hiệu quả và tối ưu, rồi vận
dụng các quy tắc cú pháp để viết ra được những câu lệnh phù hợp. Vì thế 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 thì cần các
bước sau :
- Xác định bài toán
- Tìm cấu trúc dữ liệu biểu diễn thuật toán
- Xây dựng thuật toán
- Viết chương trình
- Kiểm thử chương trình
- Tối ưu chương trình.
1.2.1 Xác định bài toán:
a. Khái niệm bài toán:
Đã là học sinh thì thường xuyên gặp các bài toán ở nhiều dạng khác nhau
trong mọi cấp học. Tuy nhiên không phải bài toán nào cũng dễ dàng để thực hiện
được và cho kết quả tốt. Nhưng đối với bất kỳ một bài toán nào thì học sinh cũng
được giáo viên hướng dẫn là phải đọc kỹ đề rồi xác định nó : A  B
Trong đó:
A là giả thiết : Điều kiện ban đầu hay cái đã cho khi bắt đầu giải bài toán.
B là kết luận : Mục tiêu cần đạt được hay cái phải tìm, phải làm ra khi kết
thúc bài toán.
 là suy luận : Giải pháp cần xác định hay một chuỗi các bước cần thực hiện
từ A đến B.
b. 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,
nhưng nó lại được diễn đạt theo một các khác.
- A : là đưa thông tin vào – thông tin trước khi xử lý (Input )
- B: là đưa thông tin ra – kết quả sau khi xử lý (Output)
-  : là chương trình tạo từ các câu lệnh cơ bản của máy tính cho phép xử lý

từ A đến B.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
7
Sáng kiến kinh nghiệm THCS Hải Cảng
c. Xác định bài toán:
Việc xác định bài toán là xác định xem ta phải giải quyết vấn đề gì? Với giả thiết
nào đã cho và với lời giải cần đạt những yêu cầu gì. Khác với các bài toán thuần túy
trong toán học là chỉ cần xác định rõ giả thiết và kết luận chứ không cần xác định
yêu cầu về lời giải, đôi khi những bài toán tin học trong thực tế chỉ cần tìm lời giải
tốt tới mức nào đó, thậm chí là chỉ ở mức chấp nhận được (nếu lời giải tốt nhất đòi
hỏi quá nhiều thời gian và chi phí).
Input

Process

Output (Dữ liệu vào

Xử lý

Kết quả ra)
d. Một số ví dụ :
Ví dụ 1: Tính diện tích hình vuông.
Các bước xác định cho bài toán:
+ Thông tin vào (Input) : Cạnh hình vuông a
+ Thông tin ra (Output) : Kết quả diện tích khi đưa a vào
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Lần lượt đưa giá trị a vào (cho a = 4)
Áp dụng công thức tính diện tích hình vuông: a*a
Kết quả in ra là 16.
Ví dụ 2: Nhập vào một xâu ký tự và in ra màn hình xâu đã được đổi thành in hoa.

Các bước xác định cho bài toán:
+ Input : Xâu ký tự
+ Output : Xâu ký tự đã đổi thành in hoa
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Lần lượt đưa xây ký tự vào ( S = abcd)
Áp dụng công thức :
Xác định chiều dài xâu ký tự bằng hàm Length(s)
For i:=1 to length(St) do St[i]:=Upcase(St[i]);
Kết quả in ra là ABCD.
Ví dụ 3: Giải phương trình bậc nhất dạng tổng quát bx + c =0
Các bước xác định cho bài toán:
+ Input : Các số b, c
+ Output : Nghiệm của phương trình bậc nhất
GV : Phạm Thị Bích Diệp Năm học 2013-2014
8
Sáng kiến kinh nghiệm THCS Hải Cảng
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Lần lượt đưa giá trị b, c vào ( b = 3 ; c= - 6)
Áp dụng công thức :
- Nếu b = 0 và c = 0 thì phương trình có vô số nghiệm
- Nếu b = 0 và c ≠ 0 thì phương trình vô nghiệm
- Nếu b ≠ 0 thì phương trình có nghiệm x = -c/b;
Kết quả in ra là x = 2
Ví dụ 4: Tìm giá trị lớn nhất của một dãy số nguyên
Các bước xác định cho bài toán:
+ Input : số nguyên dương N và dãy N số nguyên a
1
, …., a
N


N = 5 ; (7, 5, 9, 4, 10)
+ Output : Giá trị lớn nhất Max của dãy số.
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Khởi tạo giá trị Max = a
1
Lần lượt với i từ 2 đến N, so sánh giá trị số hạng a
i
với giá trị Max, nếu a
i
>
Max thì Max nhận giá trị mới là a
i
.
Kết quả in ra là Max = 10.
1.2.2 Tìm cấu trúc dữ liệu biểu diễn thuật toán:
* Cấu trúc dữ liệu (data structure) : Là kiểu dữ liệu mà bên trong nó có chứa
nhiều thành phần dữ liệu và các thành phần dữ liệu đấy được tổ chức theo một cấu
trúc nào đó. Nó dùng để biểu diễn cho các thông tin có cấu trúc của bài toán. Cấu
trúc dữ liệu thể hiện khía cạnh logic của dữ liệu. Ví dụ cấu trúc dữ liệu đơn giản
nhất trong chương trình tin học lớp 8 là mảng.
Còn các dữ liệu không có cấu trúc được gọi là các dữ liệu vô hướng hay các
dữ liệu đơn giản. VD: các kiểu dữ liệu số nguyên (integer), số thực (real), logic
(boolean) là các kiểu dữ liệu đơn giản.
* Khi giải một bài toán, ta cần phải định nghĩa tập hợp dữ liệu để biểu diễn tình
trạng cụ thể. Việc lựa chọn này tùy thuộc vào vấn đề cần giải quyết và những thao tác
sẽ tiến hành trên dữ liệu vào. Có những thuật toán chỉ thích ứng với một cách tổ chức
dữ liệu nhất định, đối với những cách tổ chức dữ liệu khác thì sẽ kém hiệu quả hoặc
GV : Phạm Thị Bích Diệp Năm học 2013-2014
9
Sáng kiến kinh nghiệm THCS Hải Cảng

không thể thực hiện được. Chính vì vậy nên bước xây dựng cấu trúc dữ liệu không thể
tách rời bước tìm kiếm thuật toán giải quyết vấn đề.
* Các tiêu chuẩn khi lựa chọn cấu trúc dữ liệu:
- Cấu trúc dữ liệu trước hết phải biểu diễn được đầy đủ các thông tin nhập và
xuất của bài toán.
- Cấu trúc dữ liệu phải phù hợp với các thao tác của thuật toán mà ta lựa chọn
để giải quyết bài toán.
- Cấu trúc dữ liệu phải cài đặt được trên máy tính với ngôn ngữ lập trình đang
sử dụng.
* Đối với một số bài toán, trước khi tổ chức dữ liệu ta phải viết một đoạn
chương trình nhỏ để khảo sát xem dữ liệu cần lưu trữ lớn tới mức độ nào.
1.2.3 Xây dựng thuật toán:
Đây là bước khó nhất đối với học sinh và cũng cho giáo viên khi dạy phần
này vì các em quen giải bài toán cụ thể nào đó và giải bài toán bằng ngôn ngữ tự
nhiên mà các em đã học còn bây giờ các em phải xây dựng thuật toán của một bài
toán tổng quát và bằng ngôn ngữ lập trình của máy.
a. Khái niệm thuật toán:
Thuật toán là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác định
một dãy thao tác trên cấu trúc dữ liệu sao cho: với một bộ dữ liệu vào (Input), sau
số hữu hạn bước thực hiện các thao tác đã chỉ ra, ta đạt được kết quả đã định
(Output).
b. Phương pháp biểu diễn thuật toán:
Trong phần này chúng ta cần đưa ra một phương pháp mô tả thuật toán một
cách khoa học để học sinh nhận biết được quy trình làm việc của máy vi tính (Ngôn
ngữ lập trình) làm việc như thế nào. Mô tả thuật toán là bước quan trọng nhất đối
với người lập trình, nếu người lập trình mô tả thuật toán sai hoặc dài dòng thì dẫn
đến khi viết chương trình sẽ khó khăn hoặc sẽ cho kết quả sai. Ở bước này đòi hỏi
người lập trình cần có những hiểu biết cơ bản về toán học thì khả năng biểu diễn
thuật toán sẽ trở nên đơn giản hơn và sẽ thấy bài toán trở nên gần gủi. Vì vậy trong
phần này tôi sẽ đã đưa ra hai phương pháp mô tả thuật toán một cách rõ ràng và

khoa học nhất để các em dễ dàng mô tả thuật toán đúng theo ý tưởng của mình.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
10
ALGORITHM
INPUT OUTPUT
Sáng kiến kinh nghiệm THCS Hải Cảng
b.1 : Phương pháp biểu diễn từng bước:
* Phương pháp:
- Các thao tác của giải thuật được liệt kê từng bước
- Tại mỗi bước, sử dụng ngôn ngữ tự nhiên để diễn tả công việc phải làm.
- Bước đứng trước (có số thứ tự nhỏ hơn) được thực hiện trước, thực hiện xong
bước này mới chuyển sang bước khác, không nhập nhằng.
* Ưu - nhược điểm:
- Dễ hiểu, dễ làm
- Phụ thuộc vào “cách hành văn” của người diễn đạt
- Với những giải thuật phức tạp, cách diễn đạt này trở nên rườm rà,
* Ví dụ:
Thuật toán “Tìm vị trí xuất hiện đầu tiên của một số nguyên trong dãy số
nguyên đã cho”:
- Bước 1: Nhập dãy số nguyên
- Bước 2: Nhập số nguyên a
- Bước 3: Gán cho phần tử so sánh (s) giá trị của số đầu tiên trong dãy
- Bước 4: So sánh a với s
+ Nếu a = s thì ghi nhận vị trí của phần tử s (p)
+ Nếu a ≠ s và s chưa phải phần tử cuối cùng trong dãy thì gán s bằng phần
tử tiếp theo và lặp lại bước 4
+ Nếu a ≠ s và s là phần tử cuối cùng của dãy thì gán p = 0
- Bước 5: Nếu p ≠ 0 thì đưa ra vị trí cần tìm là p, ngược lại thông báo không
tìm thấy. Kết thúc
Thuật toán “Tìm ước số chung lớn nhất của 2 số nguyên dương a,b.

- Bước 1: Nhập 2 số nguyên dương là a,b
- Bước 2: So sánh giá trị a và b. Nếu a bằng b thì sang bước 3, ngược lại a
khác b thì sang bước 4
- Bước 3: Tìm được ước số chung là a và kết thúc chương trình.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
11
Sáng kiến kinh nghiệm THCS Hải Cảng
- Bước 4: Nếu a lớn hơn b thì ước số chung lớn nhất là a:=a-b và quay trở lại
bước 2. Ngược lại ước số chung là b:=b-a và quay trở lại bước 2
Thuật toán “giải phương trình bậc nhất dạng tổng quát bx + c = 0”
- Bước1. Nhập b, c là các số nguyên.
- Bước2. Nếu b = 0 chuyển đến bước 4
- Bước 3. Tính nghiệm phương trình x = - c /b và chuyển tới bước 5
- Bước 4. Nếu c ≠ 0, thông báo phương trình đã cho vô nghiệm. ngược lại (c
= 0) thông báo phương trình có vô số nghiệm.
- Bước 5. Kết thúc.
Thuật toán “Tính chu vi, diện tích hình chữ nhật”
- Bước1. Nhập hai cạnh a,b
- Bước 2. Tính chu vi C = 2*(a+b)
- Bước 3. Tính diện tích S = a*b
- Bước 4. In chu vi C
- Bước 5. In diện tích S
- Bước 6. Kết thúc
Thuật toán “Tìm giá trị lớn nhất của một dãy số nguyên”
- Bước 1: Nhập N và dãy a
1
, ……, a
N.
- Bước 2: Max ← a
1

; 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 a
i
> Max thì Max ← a
i
;
i ← i+1 ; rồi quay lại bước 3 ;
b.2 : Phương pháp biểu diễn bằng sơ đồ khối:
* Phương pháp:
- Sử dụng mũi tên để quy định trình tự thực hiện các thao tác
- Sử dụng các hình khối để minh hoạ cho các lệnh hay thao tác.
+ Khối bắt đầu
GV : Phạm Thị Bích Diệp Năm học 2013-2014
12
Sáng kiến kinh nghiệm THCS Hải Cảng
+ Khối kết thúc
+ Khối thao tác thực hiện tính toán
+ Khối kiểm tra điều kiện
+ Khối vào/ra dữ liệu
+ Khối gọi chương trình con,…
Các ký hiệu trong phương pháp biểu diễn này:
Từ các khối ở trên có một số cấu trúc như sau:
* Ưu - nhược điểm: Đây là cách diễn đạt khoa học, có tính nhất quán cao
* Ví dụ:
Thuật toán “Tính chu vi, diện tích hình chữ nhật”
GV : Phạm Thị Bích Diệp Năm học 2013-2014
13
Cấu trúc rẽ nhánh Cấu trúc lặp
Khối bắt đầu và kết thúc

Thực hiện công việc A
Vào/ra dữ liệu
- Gọi chương trình con A
- Kiểm tra điều kiện: Tùy thuộc
điều kiện(Đúng hay Sai) mà rẽ
nhánh thích hợp
Begin
End
A
Điều kiện
sai
Đúng
A
Begin
End
C := 2*(a+b)
S := a*b
§äc c¹nh a,b
In ra C, S
If…then…
If…then…
else…
while…
do…
repeat…
until…
Sáng kiến kinh nghiệm THCS Hải Cảng

Thuật toán “Tính chu vi, diện tích hình tam giác”
Thuật toán “Tìm giá trị lớn nhất của một dãy số nguyên”

GV : Phạm Thị Bích Diệp Năm học 2013-2014
14
Begin
End
C := (a+b+c)
p := C/2
S :=
(a+b>c) and (b+c>a)
and (a+c>b)
)
(
*
)(*)(*
cpbpapp
−−−
§óng
Sai
§äc a,b,c
In ra C,S
In “Không tạo
thành TG”
begin
End.
Nhập N và dãy a
1
, , a
N
Max ← a
1
, i ← 2

i >N
Đưa ra Max
A
i
> Max
Đúng
Sai
Max ← a
i
i ←i+1
Đúng
Sai
Sáng kiến kinh nghiệm THCS Hải Cảng
c. Tính chất của thuật toán:
* Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các
thao tác.
* Tính xác định : Sau khi thực hiện một thao tác thì hoặc là thuật toán kết
thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo.
* Tính đúng đắn : Sau khi thuật toán kết thúc, ta phải nhận được Output cần tìm.
Ví dụ: Với thuật toán tìm giá trị lớn nhất của dãy số nguyên đã xét ở trên
Tính dừng : Vì giá trị của i mỗi lần tăng lên 1 nên sau N lần thì i> N, khi đó
kết quả phép so sánh ở bước 3 xác định việc đưa ra giá trị Max rồi kết thúc.
Tính xác định : Thứ tự thực hiện các bước của thuật toán được mặc định là
tuần tự nên sau bước 1 là bước 2, sau bước 2 là bước 3. Kết quả các phép so sánh
trong bước 3 và bước 4 đều xác định duy nhất bước tiếp theo cần thực hiện.
Tính đúng đắn : Vì thuật toán so sánh Max với từng số hạn của dãy số và
thực hiện Max a
i
nếu a
i

> Max nên sau khi so sánh hết N số hạng của dãy thì Max
là giá trị lớn nhất.
1.2.4 : Viết chương trình
- Viết chương trình là dùng ngôn ngữ lập trình cụ thể nào (Ngôn ngữ Pascal) để
diễn tả thuật toán, cấu trúc dữ liệu thành câu lệnh để máy tính có thể thực hiện được và
giải quyết đúng bài toán mà người viết chương trình mong muốn. Và đây cũng là một
trong những bước then chốt của người lập trình.
- Sau khi đã có thuật toán ta phải lập trình để thực hiện thuật toán đó. Muốn lập
trình đạt hiệu quả cao, cần phải có kỹ thuật lập trình tốt. Kỹ thuật lập trình tốt thể hiện
ở kỹ năng viết chương trình, khả năng gỡ rối và thao tác nhanh.
- Lập trình tốt không chỉ nắm vững ngôn ngữ lập trình là đủ, mà phải biết cách
viết chương trình một cách uyển chuyển, khôn khéo và 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. Để đạt được những điều trên thì cơ bản
học sinh phải nắm được cấu trúc chung của một chương trình Pascal cần có những
thành phần nào.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
15
Sáng kiến kinh nghiệm THCS Hải Cảng
Một chương trình Pascal có các phần:
GV : Phạm Thị Bích Diệp Năm học 2013-2014
16
PROGRAM Tên_chương_Trình ;
USES ……
LABEL ……
CONST ……
TYPE …….
VAR …….
PROCEDURE ……
FUNCTION ……
BEGIN

……
END.
Phần khai báo
- Tên chương trình
- Thư viện
- Nhãn
- Hằng
- Kiểu
- Biến
Phần mô tả thủ tục / hàm chương trình con
Bắt đầu thân chương trình chính
Kết thúc thân chương trình chính
Các câu lệnh của chương trình
Sáng kiến kinh nghiệm THCS Hải Cảng
* Phần khai báo :
- Phần này bắt đầu bằng từ khóa Program rồi tiếp đến là tên của chương
trình và chấm dứt bằng dấu chấm phẩy (;).Tên chương trình phải được đặt theo
đúng qui cách của danh hiệu tự đặt (thỏa mãn quy ước đặt tên trong Pascal). Phần
này có hay không cũng được.
Ví dụ: Program Phuong_trinh_bac2 ;
Program Vidu ;
- Tiếp đến là khai báo các thư viện bằng từ khóa Uses. Mỗi ngôn ngữ lập
trình thường có sẵn một số thư viện cung cấp một số chương trình và lệnh thông
dụng đã được lập sẵn.Ví dụ thư viện crt, graph……Và để sử dụng các chương trình
đó thì phải khai báo thư viện chứa nó.
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. (Nếu như ta sử dụng lệnh này mà không khai báo thư viện Crt thì
máy tính sẽ báo lỗi).

- Trình tự tiếp theo của một chương trình Pascal có thể có một số hoặc tất cả
các khai báo dữ liệu sau:
LABEL : khai báo nhãn
CONST : khai báo hằng
TYPE : định nghĩa kiểu dữ liệu mới
VAR : khai báo các biến có dùng trong chương trình
+ Khai báo hằng thường được sử dụng cho những giá trị xuất hiện nhiều lần
trong chương trình (có nghĩa là giá trị nào thường xuyên xuất hiện trong chương
trình thì ta cần khai báo hằng)
Ví dụ : Khai báo hằng
Const MaxN = 1000 ;
Pi = 3.1416 ;
KQ = ‘Ketqua’ ;
GV : Phạm Thị Bích Diệp Năm học 2013-2014
17
Sáng kiến kinh nghiệm THCS Hải Cảng
Và khi viết chương trình thay vì ghi giá trị cụ thể thì ta sử dụng tên hằng đã
khai báo (đã khai báo hằng MaxN = 1000 thì quá trình viết chương trình chỉ cần sử
dụng hằng MaxN thay cho giá trị 1000)
+ Trong quá trình lập trình nếu phát sinh những kiểu dữ liệu mới cần sử dụng
thì phải khai báo bằng từ khóa Type.
Ví dụ 1 : Khai báo kiểu mảng một chiều
Type Kmang = array [1 100] of integer ;
Ví dụ 2: Khai báo kiểu bản ghi
Type
Hocsinh = record
Hoten : string [30] ;
Ngaysinh : string [10] ;
Tin, toan, ly : real ;
End;

+ Tất cả các biến dùng trong chương trình đều phải đặt tên và phải khai báo
(sử dụng từ khóa Var) cho chương trình dịch biết để lưu trữ và xử lí. Biến chỉ nhận
một giá trị tại mỗi thời điểm thực hiện chương trình. Tên biến dùng để xác lập quan
hệ giữa biến với địa chỉ bộ nhớ nơi lưu trữ giá trị biến và mỗi biến chỉ được khai
báo một lần.
Var < danh sách biến > : < kiểu dữ liệu> ;
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 : real ;
N : Kmang ; { Kmang đã được định nghĩa }
+Phần khai báo chương trình con (thủ tục Procedure hoặc hàm Function):
Phần này mô tả một nhóm lệnh được đặt tên chung là một chương trình con để khi
thân chương trình chính gọi đến thì cả nhóm lệnh đó được thi hành. Phần này có thể
có hoặc không tùy theo nhu cầu. Và trong chương trình tin học lớp 8 thì cũng không
nên đặt nặng vấn đề này cho học sinh, chỉ làm sao để học sinh cảm thấy đơn giản
GV : Phạm Thị Bích Diệp Năm học 2013-2014
18
Sáng kiến kinh nghiệm THCS Hải Cảng
nhất có thể để việc lập trình các bài toán đơn giản của các em trở nên gần gủi và bản
thân các em tự viết được một chương trình đơn giản.
Lưu ý : Phần khai báo có thể có hoặc không tùy theo từng chương trình cụ thể.
* 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.
* Lưu ý : Dấu chấm phẩy (;):
Dấu ; 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à người, máy tính sẽ không để ý đến lời chú thích này.
Lời chú thích nằm giữa ký hiệu: { } hoặc (* *)
Ví dụ 2:
PROGRAM CT_Dau_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 x : integer ; { Khai báo biến }
BEGIN { Thân chương trình chính }
Clrscr ; { Xóa màn hình }
Writeln (‘Nhap gia tri cua x =’) ;
Readln (x) ;
x:= 0 ;
x:= x + 10 ;
Writeln (‘Gia tri cua x la’ , x );
Readln;
END. { Kết thúc chương trình}
GV : Phạm Thị Bích Diệp Năm học 2013-2014
19
Sáng kiến kinh nghiệm THCS Hải Cảng
1.2.5 : Kiểm thử chương trình (Testing program)
Chạy thử và tìm lỗi và công việc mà người lập trình 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ó 2 loại lỗi cơ bản thường gặp khi lập trình:

+ 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 viết lại một thuật toán mới từ đầu.
+ Lỗi cú pháp: lỗi này hay gặp nhưng cũng là lỗi dễ sửa nhất. Chỉ cần nắm vững
ngôn ngữ lập trình là đủ. Một người được coi là không biết lập trình nếu không biết
sửa lỗi cú pháp. Và đây là lỗi thường gặp nhất đối với học sinh bắt đầu học lập trình.
Ví du 1: Tìm số lớn nhất trong 3 số a,b,c nguyên được nhập vào từ bàn phím.
Lần 1: Program tim_so_lon_nhat ;
uses crt;
var a,b,c:integer;
begin
clrscr;
write('nhap 3 so=');readln(a,b,c);
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 tùy
thuộc vào lúc nhập giá trị a, b, c { nếu nhập thứ tự a = 5 ; b= 7; c= 9 thì sẽ cho ta kết
quả số lớn nhất là 7 sai hoàn toàn.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
20
Sáng kiến kinh nghiệm THCS Hải Cảng
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 ví dụ trên để
kết quả luôn đúng thì ta có thể viết lại chương trình
Lần 2: Program tim_so_lon_nhat ;
uses crt;
var a,b,c, max :integer;
begin

clrscr ;
write('nhap 3 so = ') ; readln(a,b,c);
max:=a ;
if max < b then max :=b;
if max <c then max :=c ;
writeln ('so lon nhat la ', max);
readln
End.
Nếu nhập:
Lần nhập A B C Kết quả
1 9 8 7 9
2 8 7 9 9
3 7 9 8 9
Ví dụ 2: Viết chương trình in ra màn hình hình chữ nhật toàn dấu * với chiều
dài và chiều rộng nhập từ bàn phím.
Lần 1: Program hinh_chu_nhat;
Uses crt;
Var i, cd,cr :integer;
Begin
Clrscr;
Write(‘ Nhap chieu dai hinh chu nhat’); readln(cd);
Write(‘ Nhap chieu rong hinh chu nhat’); readln(cr);
For i : = 1 to cd*cr do writeln(‘*’);
Readln
End.
GV : Phạm Thị Bích Diệp Năm học 2013-2014
21
Sáng kiến kinh nghiệm THCS Hải Cảng
Với chương trình này cũng chạy được song kết quả sai (in ra màn hình một
cột toàn dấu * với chiều dài là diện tích hinh chữ nhật).

Với ví dụ trên để kết quả luôn đúng thì ta có thể viết lại chương trình.
Lần 2: Program hinh_chu_nhat ;
Uses crt;
Var i,j, cd,cr:integer;
Begin
Clrscr;
Write(‘ Nhap chieu dai hinh chu nhat’); readln(cd);
Write(‘ Nhap chieu rong hinh chu nhat’); readln(cr);
For i: = 1 to cr do
Begin
for j: = 1 to cd do write(‘*’);
Writeln;
End;
Readln
End.
Ví dụ 3: viết chương trình tính tổng S=
n
1

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
(Integer) 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 (Real).
Ví dụ 4: 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 vào từ bàn phím.
program ptb1;
var
a,b:real;
begin
write('nhap cac he so='); readln(a,b);
GV : Phạm Thị Bích Diệp Năm học 2013-2014
22
Sáng kiến kinh nghiệm THCS Hải Cảng
if a<>0 then writeln('phuong trinh vo so nghiem');
else
if b=0 then writeln('phuong trinh co nghiem',-b/a:4:2)
else
writeln('phuong trinh vo nghiem')
readln
end.
Với chương trình trên hoàn toàn có thể chạy được song kết quả sẽ không
đúng khi nhập dữ liệu a, b vào . Do vậy ta phải sắp xếp lại thuật toán để cho một
kết quả đúng như yêu cầu :
program ptb1;
var a,b:real;
begin
write('nhap cac he so=');readln(a,b);
if a<>0 then
if b=0 then writeln('phuong trinh vo nghiem')
else
writeln('phuong trinh co nghiem',-b/a:4:2)
else
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
GV : Phạm Thị Bích Diệp Năm học 2013-2014
23
Sáng kiến kinh nghiệm THCS Hải Cả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
GV : Phạm Thị Bích Diệp Năm học 2013-2014
24
Sáng kiến kinh nghiệm THCS Hải Cảng
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 }
GV : Phạm Thị Bích Diệp Năm học 2013-2014
25

×