Sáng kiến kinh nghiệm Tìm hiểu thêm về ngôn ngữ lập trình Pascal

Cũng vì lẽ đó mà Bộ Giáo dục đã chọn ngôn ngữ lập trình Pascal đưa vào trong chương trình học của lớp 8 để các em biết được thế nào là tư duy, thế nào là lập trình và chắc chắn sẽ có được một số em thích thú, say mê để rồi trở thành những lập trình viên chuyên nghiệp mai sau.

Vậy thì chúng ta phải làm như thế nào để sau khi kết thúc lớp 8 thì các em có thể nắm và hiểu được như thế nào là ngôn ngữ lập trình, cụ thể là ngôn ngữ lập trình Pascal mà ta đã nói ở trên.

Trong chương trình Pascal lớp 8, phần nào cũng rất hay và rất quan trọng nhưng tôi thấy câu lệnh lặp với số lần lặp biết trước For..Do rất đặc biệt mà lại thường gặp trong các bài toán cơ bản và nâng cao. Khi tới phần này, rất nhiều em mơ hồ về việc lặp lại các thao tác của câu lệnh lặp mặc dù chương trình được chạy trực tiếp bằng phần mềm Pascal trên màn hình chiếu. Nên sau khi chạy chương trình xong, tôi ghi đoạn chương trình có chứa câu lệnh For lên bảng và hướng dẫn các em chạy bằng tay nghĩa là tự mình tính toán và ghi lại kết quả trong mỗi lần lặp lại của lệnh lặp For. Tôi nhận thấy các em hiểu rõ hơn phần này và cảm thấy thích thú hơn.

Xuất phát từ những cảm nhận trên, tôi chọn đề tài “TÌM HIỂU THÊM VỀ NGÔN NGỮ LẬP TRÌNH PASCAL” để đi sâu thêm và mở rộng thêm về câu lệnh lặp với số lần lặp biết trước For..Do.

doc 21 trang Chăm Nguyễn 16/03/2025 230
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Tìm hiểu thêm về ngôn ngữ lập trình Pascal", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Tìm hiểu thêm về ngôn ngữ lập trình Pascal

Sáng kiến kinh nghiệm Tìm hiểu thêm về ngôn ngữ lập trình Pascal

3
Bắt đầu vào lệnh lặp For
- i = 1 (gán giá trị đầu là 1 cho i)
- Vì i ≤ 3 nên ta phải thực hiện: 
 a : = a + i ; à a = 1 + 1 =2
 b : = b + a ; à b = 1 + 2 = 3
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
a
b

1
1
1
2
3







4
- Sau khi thực hiện xong hai câu lệnh trên, lệnh lặp For sẽ lặp lại lần thứ 2 các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm i phải tăng lên 1.
- i = 2 (i tự động tăng lên 1)
- Vì i vẫn ≤ 3 nên ta phải thực hiện: 
 a : = a + i ; à a = 2 + 2 = 4
 b : = b + a ; à b = 3 + 4 = 7
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
a
b

1
1
1
2
3
2
4
7




5
- Sau khi thực hiện xong hai câu lệnh trên, lệnh lặp For sẽ lặp lại lần thứ 3 nhưng trước khi lặp lại biến đếm i phải tăng lên 1.
- i = 3 (i tự động tăng lên 1)
- Vì i vẫn ≤ 3 nên ta phải thực hiện: 
 a : = a + i ; à a = 4 + 3 = 7
 b : = b + a ; à b = 7 + 7 = 14
- Tính toán xong, ta điền các giá trị vào bảng bên.
i
a
b

1
1
1
2
3
2
4
7
3
7
14

NHẬN XÉT:
 Sau khi i = 3 và thực hiện xong 2 câu lệnh trong vòng lặp For thì cũng kết thúc lệnh lặp For.
 Số lần lặp là 3 như ta xác định ban đầu.
 Đoạn chương trình trên chạy xong, ta thu được kết quả là:
i = 3; a = 7; b = 14
 Tạo đoạn chương trình trên thành một chương trình hoàn chỉnh trong Pascal Nhưng thêm vào hai lệnh Writeln(i,’ ’, a,’ ’,b); và Readln; để kết quả hiện lên trong mỗi lần lặp giúp học sinh quan sát tốt và dễ so sánh với kết quả vừa thực hiện bằng tay.
Program Vidu1;
Var a, b, i : integer;
Begin
	 a : = 1;
b : =1;
For i := 1 to 3 do 
	 Begin
	 a : = a + i ; 
b : = b + a ;
Writeln(i,’ ’, a,’ ’,b);
Readln;
	 End;
End.

 Dùng Step over để chạy chương trình từng bước cho học sinh quan sát.
 Kết quả chạy bằng Pascal cũng giống như việc thực hiện trong bảng trên.
 Sửa lại chương trình cho gọn và đúng yêu cầu.
Program Vidu1;
Var a,b,i : integer;
Begin
	 a : = 1;
b : =1;
For i := 1 to 3 do 
	 Begin
	a : = a + i ; 
 b : = b + a ;
	 End;
 Writeln(i,’ ’, a,’ ’,b);
 Readln;
End.
 Chạy bằng máy chương trình vừa sửa lại cho học sinh quan sát 
 Sau đó, ta thay số lần lặp trong chương trình lên nhiều lần hơn.
 VÍ DỤ 2:
Hãy tính S là tổng các số nguyên từ 1 đến N với N là một số nguyên dương.
S = 1 + 2 + 3 +  + N
Với yêu cầu trên, ta viết thành đoạn chương trình sau:
N := 4;
S := 0;
For i := 1 To N Do S := S + i ;
THỰC HIỆN:
+ Đầu tiên, ta phải xác định:
- Biến đếm: i
- Giá trị đầu: 1
- Giá trị cuối: 4
- Số lần lặp = Giá trị cuối – giá trị đầu + 1 = 4 -1 +1 = 4
- Câu lệnh cần thực hiện trong lệnh lặp For: S : = S + i ;
- Câu lệnh trên chỉ được thực hiện khi i ≤ 4
+ Sau khi xác định xong, ta tiến hành thực hiện các bước theo bảng sau:
Bước
Diễn giải và tính toán
Ghi giá trị của các biến
1

- Tạo bảng ghi lại các giá trị cho các biến
- Vì có 2 biến cần điền giá trị nên ta tạo 2 cột
- S = 0 
- i chưa có giá trị vì chưa thực hiện lệnh lặp For

i
S









2
Bắt đầu vào lệnh lặp For
- i = 1 (gán giá trị đầu là 1 cho i)
- Vì i ≤ 4 nên ta phải thực hiện: 
 S : = S + i ; à S = 0 + 1 = 1
- Tính toán xong, ta điền các giá trị vào bảng bên.
i
S
1
1







3
- Sau khi thực hiện xong hai câu lệnh trên, lệnh lặp For sẽ lặp lại lần thứ 2 các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm i phải tăng lên 1.
- i = 2 (i tự động tăng lên 1)
- Vì i vẫn ≤ 4 nên ta phải thực hiện: 
 S : = S + i ; à S = 1 + 2 = 3
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
S
1
1
2
3






4
- Sau khi thực hiện xong hai câu lệnh trên, lệnh lặp For sẽ lặp lại lần thứ 3 các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm i phải tăng lên 1.
- i = 3 (i tự động tăng lên 1)
- Vì i vẫn ≤ 4 nên ta phải thực hiện: 
 S : = S + i ; à S = 3 + 3 = 6
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
S
1
1
2
3
3
6




5
- Sau khi thực hiện xong hai câu lệnh trên, lệnh lặp For sẽ lặp lại lần thứ 4 các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm i phải tăng lên 1.
- i = 4 (i tự động tăng lên 1)
- Vì i vẫn ≤ 4 nên ta phải thực hiện: 
 S : = S + i ; à S = 6 + 4 = 10
- Tính toán xong, ta điền các giá trị vào bảng bên.
i
S
1
1
2
3
3
6
4
10

NHẬN XÉT:
 Sau khi i = 4 và thực hiện xong câu lệnh trong vòng lặp For thì cũng kết thúc lệnh lặp For.
 Số lần lặp là 4 như ta xác định ban đầu.
 Đoạn chương trình trên chạy xong, ta thu được kết quả là: S = 10
 Tạo đoạn chương trình trên thành một chương trình hoàn chỉnh trong Pascal. Nhưng thêm vào hai lệnh Writeln(i,’ ’, S); và Readln; để kết quả hiện lên trong mỗi lần lặp.
Program Vidu2;
Var S, i : integer;
Begin
	 S : = 0;
For i := 1 to 4 do 
	 Begin
	S : = S + i ; 
 Writeln(i,’ ’, S);
 Readln;
	 End;
End.

 Dùng Step over để chạy chương trình từng bước cho học sinh quan sát.
 Kết quả chạy bằng Pascal cũng giống như việc thực hiện trong bảng trên.
 Sửa lại chương trình cho đúng yêu cầu.
Program Vidu2;
Var S, i : integer;
Begin
	 S : = 0;
For i := 1 to 4 do S : = S + i ; 
 Writeln(i,’ ’, S);
 Readln;
End.

Sau đó, ta thay số lần lặp trong chương trình lên nhiều lần hơn.
Chạy lại chương trình bằng máy cho học sinh quan sát.
 VÍ DỤ 3: Sử dụng hai vòng lặp lồng nhau
Đoạn chương trình sau chạy xong thì biến i, j, a, b sẽ có giá trị là bao nhiêu?
a := 1; b := 1;
FOR i := 0 TO 1 DO 
	Begin
	 FOR j := 1 TO 3 DO a := a + j ;
 	b := b + a ;
End ;
THỰC HIỆN:
+ Đoạn chương trình trên có hai câu lệnh lặp
+ Lệnh For (j) được lồng trong lệnh For (i)
+ Lệnh For (i):
- Biến đếm: i 
- Giá trị đầu: 0 
- Giá trị cuối: 1
- Số lần lặp = Giá trị cuối – giá trị đầu + 1 = 1 - 0 +1 = 2
- Câu lệnh cần thực hiện trong lệnh lặp For gồm:
Câu lệnh lặp For (j) 
 b := b + a ;
- Câu lệnh trên chỉ được thực hiện khi i ≤ 2
+ Lệnh For (j):
- Biến đếm: j 
- Giá trị đầu: 1
- Giá trị cuối: 3
- Số lần lặp = Giá trị cuối – giá trị đầu + 1 = 3 -1 +1 = 3
- Câu lệnh cần thực hiện trong lệnh lặp For: a := a + j ;
- Câu lệnh trên chỉ được thực hiện khi j ≤ 3
+ Một lần lặp trong For (i) sẽ thực hiện 3 lần lặp trong For (j). Như vậy, lệnh For (i) lặp 2 lần và lệnh For (j) lặp 3 lần sẽ thực hiện tất cả 6 lần ( 2 x 3 = 6).
+ Sau khi xác định xong, ta tiến hành thực hiện các bước theo bảng sau:
Bước
Diễn giải và tính toán
Ghi giá trị của các biến
1

- Tạo bảng ghi lại các giá trị cho các biến
- Vì có 4 biến cần điền giá trị nên ta tạo 4 cột
- a = 1 
- b = 1
- i và j chưa có giá trị vì chưa thực hiện lệnh lặp For
i
j
a
b


1
1





















2
Bắt đầu vào lệnh lặp For (i)
- i = 0 (gán giá trị đầu là 0 cho i)
Bắt đầu vào lệnh lặp For (j)
- j = 1 (gán giá trị đầu là 1 cho j)
- a := a + j; à a = 1 + 1 = 2
- b =1 vì chưa hết 3 lần lăp For (j)
- Tính toán xong, ta điền các giá trị vào bảng bên.
i
j
a
b


1
1
0
1
2
1





















3
- i = 0 (vì câu lệnh trong For (i) chưa thực hiện xong)
- Sau khi thực hiện xong câu lệnh trên a:= a + j, lệnh lặp For (j) sẽ lặp lại lần thứ 2 với các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm j phải tăng lên 1.
- j = 2 (j tự động tăng lên 1)
- a := a + j; à a = 2 + 2 = 4
- b =1 vì chưa hết 3 lần lăp For (j)
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
j
a
b


1
1
0
1
2
1
0
2
4
1

















4
- i = 0 (vì câu lệnh trong For (i) chưa thực hiện xong)
- Sau khi thực hiện xong câu lệnh trên a:= a + j, lệnh lặp For (j) sẽ lặp lại lần thứ 3 với các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm j phải tăng lên 1.
- j = 3 (j tự động tăng lên 1)
- a := a + j; à a = 4 + 3 = 7
- Vòng lặp For (j) kết thúc và lệnh b := b + a; được thực hiện
- b := b + a; à b = 1 + 7 = 8 
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
j
a
b


1
1
0
1
2
1
0
2
4
1
0
3
7
8














5
- Lệnh lặp For sẽ lặp lại lần thứ 2 các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm i phải tăng lên 1.
- i = 1
- Vòng lặp For (j) lại khởi động từ đầu.
- j = 1 (gán giá trị đầu là 1 cho j)
- a := a + j; à a = 7 + 1 = 8
- b = 8 vì chưa hết 3 lần lăp For (j)
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
j
a
b


1
1
0
1
2
1
0
2
4
1
0
3
7
8
1
1
8
8









6
- i = 1 (vì câu lệnh trong For (i) chưa thực hiện xong)
- Sau khi thực hiện xong câu lệnh trên a:= a + j, lệnh lặp For (j) sẽ lặp lại lần thứ 2 với các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm j phải tăng lên 1.
- j = 2 (j tự động tăng lên 1)
- a := a + j; à a = 8 + 2 = 10
- b =8 vì chưa hết 3 lần lăp For (j)
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
j
a
b
0
1
2
1
0
2
4
1
0
3
7
8
1
1
8
8
1
2
10
8





7
- i = 1 (vì câu lệnh trong For (i) chưa thực hiện xong)
- Sau khi thực hiện xong câu lệnh trên a:= a + j, lệnh lặp For (j) sẽ lặp lại lần thứ 3 với các thao tác như lần thứ nhất nhưng trước khi lặp lại biến đếm j phải tăng lên 1.
- j = 3 (j tự động tăng lên 1)
- a := a + j; à a = 10 + 3 = 13
- Vòng lặp For (j) kết thúc và lệnh b := b + a; được thực hiện
- b := b + a; à b = 13 + 8 = 21 
- Tính toán xong, ta điền các giá trị vào bảng bên.

i
j
a
b


1
1
0
1
2
1
0
2
4
1
0
3
7
8
1
1
8
8
1
2
10
8
1
3
13
21


 NHẬN XÉT:
Sau khi i = 1 và thực hiện xong câu lệnh trong vòng lặp For (i) thì cũng kết thúc cả hai lệnh lặp For.
Số lần lặp tất cả là 6 lần cho cả hai vòng lặp như ta xác định ban đầu.
Đoạn chương trình trên chạy xong, ta thu được kết quả là: 
i = 1; j = 3; a = 13; b=21;
Tạo đoạn chương trình trên thành một chương trình hoàn chỉnh trong Pascal. 
Program Vidu3;
Vari,j,a,b : integer;
Begin
	 a : = 1; b := 1;
 For i := 0 to 1 do 
 Begin
 For j := 1 to 3 do
 Begin
 a := a + j;
 If j < 3 then
 Begin
 Writeln(i, j, a, b);
 Readln;
 End;
 b : = b + a ; 
 Writeln(i, j, a, b);
 Readln;
 End;
End.

 Dùng Step over để chạy chương trình từng bước cho học sinh quan sát.
 Kết quả chạy bằng Pascal cũng giống như việc thực hiện trong bảng trên.
 Sửa lại chương trình trên cho gọn và đúng yêu cầu.
Program Vidu3;
Var i, j, a, b : integer;
Begin
	 a : = 1; b := 1;
 For i := 0 to 1 do 
 Begin
 For j := 1 to 3 do a := a + j;
b : = b + a ; 
 writeln(i, j, a, b);
 Readln;
 End;
End.

 Ta thay số lần lặp trong chương trình lên nhiều lần hơn hoặc cho học sinh thực hiện bài các bảng cửu chương (vì có dạng hai vòng lặp lồng nhau)
 Chạy lại chương trình cho học sinh quan sát.
3. Mối quan hệ giữa các giải pháp, biện pháp:
Pascal là một môn học rất trừu tượng, rất khó đòi hỏi về trí tuệ, tư duy rất cao. Nhưng với trình độ nhận thức của học sinh lớp 8, Bộ Giáo dục đã đưa ra một chương trình không cao lắm giống như là giới thiệu cho học sinh biết một ngôn ngữ lập trình, biết thế nào là lập trình và qua đó khơi lên nguồn sáng tạo cho những em học sinh thực sự yêu thích, say mê môn học này.
Khi các em nắm rõ phần lý thuyết, ý nghĩa của những câu lệnh thì các em sẽ cố gắng tư duy và thực hiện một cách tự tin. Có như thế khi các em gặp một thắc mắc hoặc trở ngại nào đó thì các em có thể tìm gặp bạn bè, thầy cô để thảo luận, trao đổi để giải quyết được những khó khăn khi làm quen với Pascal. Các em cũng có thể tìm hiểu trong những sách viết về Pascal hoặc một số trang web, diễn đàn trên mạng để học hỏi them và sưu tầm thêm một số bài tập phù hợp với chương trình mình đã học từ đơn giản đến nâng cao.
Khi gặp một bài toán nào có câu lệnh For hơi khó hiểu, các em có thể thực hiện bằng tay theo cách mà chúng ta vừa thực hiện ở trên, sau đó kiểm chứng lại bằng, một chương trình hoàn chỉnh.
4. Kết quả khảo nghiệm, giá trị khoa học của vấn đề nghiên cứu, phạm vi và hiệu quả ứng dụng:
Bản thân tôi đã trực tiếp vận dụng các giải pháp vào lớp dạy thì thấy phương pháp này mang lại hiệu quả một cách thiết thực, chất lượng bộ môn tăng dần.
Các em học sinh yếu trước đây, đặc biệt một số em học sinh dân tộc thiểu số tự mình suy nghĩ làm bài và còn mạnh dạn phát biểu xây dựng bài. 
Trước đây, môn Pascal này các em rất ngại học vì độ trừu tượng của nó nên số lượng học sinh hiểu bài, trên trung bình chỉ khoảng 30% nhưng nay con số này đã thay đổi lên khoảng 70% đến 80%. Đó là điều đáng mừng cho những giáo viên dạy môn Pascal lớp 8.
Một điều cũng rất hay là khi đầu năm tôi giới thiệu môn Pascal cho các em biết về độ khó, độ hay của nó thì các em cho biết đã được các anh chị lớp trước “trấn an tư tưởng” khi bắt đầu làm quen với Pascal nên các em đã chuẩn bị tinh thần để tiếp hội môn học này. Đây là điều mà tôi rất mừng khi các em để tâm tới không chỉ câu lệnh lặp mà các em đã được phân tích kỹ mà cả các phần khác trong chương trình Pascal lớp 8.
C. KẾT LUẬN VÀ KIẾN NGHỊ
	I. Kết luận:
Ngôn ngữ lập trình nói chung đóng vai trò rất quan trọng trong việc xây dựng các chương trình ứng dụng để phục vụ cho cuộc sống. Nhờ sự phát triển của tin học - trong đó các nhà lập trình chuyên nghiệp đóng vai trò không nhỏ mà hiện nay hầu hết các lĩnh vực trong xã hội đã ứng dụng được tin học để giải quyết công viêc nhanh, hiệu quả và chính xác hơn.
Đề tài này mang tính thực tiễn rất cao cụ thể là: Trong tiết học các em học sinh đã chủ động để tìm tòi lại kiến thức đã học qua đó giải quyết được vấn đề do giáo viên đặt ra. Trong quá trình giải quyết vấn đề, giáo viên chỉ ra những sai lầm mà các em học sinh mắc phải do hiểu không rõ vấn đề nhằm giúp cho các em hiểu rõ hơn về câu lệnh.
Trên đây là một số phương pháp tôi đã sử dụng trong quá trình giảng dạy bộ môn Tin học 8 cũng như trong quá trình thực hiện đề tài này.
Do lần đầu tiên làm chuyên đề nên chắc chắn không tránh khỏi những thiếu sót.
Rất mong được sự đóng góp của quý thầy cô để chuyên đề của tôi được hoàn thiện hơn.
II. Kiến nghị:
Qua một số phương pháp và bài tập đã giúp các em học sinh lớp 8 có thêm kiến thức về vòng lặp với số lần biết trước và kỹ năng viết chương trình một số bài tập về câu lệnh Fordoở mức từ dễ đến khó.
Đối với giáo viên: Cần tích cực trao dồi, tự học và thu thập thêm tài liệu để có được những phương pháp hay hướng dẫn các em hiểu sâu hơn về vòng lặp với số lần biết trước_câu lệnh Fordo, đồng thời gây sự chú ý, tạo sự hứng thú cho học sinh lớp 8 yêu thích, đam mê về lập trình Pascal.
TÀI LIỆU THAM KHẢO
1. Sách giáo khoa tin học 8	 
2. Sách giáo viên tin học 8	 
3. Các vấn đề về lập trình Pascal của tác giả Trần Đức Huyên 
4. Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng môn Tin học của Bộ giáo dục đào tạo.
5. Một số kinh nghiệm và ý kiến của đồng nghiệp. 
Buôn Hồ, ngày 10 tháng 10 năm 2018
 Người biên soạn
 Nguyễn Thế Phi
MỤC LỤC
A. Mở đầu	1
I. Lý do chọn đề tài 	1
II. Mục tiêu, nhiệm vụ của đề tài 	 2
1. Mục tiêu 	 2
2. Nhiệm vụ 	 2
III. Đối tượng nghiên cứu 	 2
IV. Giới hạn của đề tài 	 2
V. Phương pháp nghiên cứu 	 3
B. Nội dung	 3
I. Cơ sở lý luận 	 3
II. Thực trạng vấn đề nghiên cứu 	 3
1. Thuận lợi 	 4
2. Khó khăn 	 4
III. Nội dung và hình thức của giải pháp 	 4
1. Mục tiêu của giải pháp 	 4
2. Nội dung và cách thức thực hiện 	 4
a. Ví dụ 1 	 5
b. Ví dụ 2 	 9
c. Ví dụ 3 	 12
3. Mối quan hệ giữa giải pháp, biện pháp 	 18
4. Kết quả khảo nghiệm, giá trị khoa học 	 18
C. Kết luận và kiến nghị 	 19
I. Kết luận 	 19
II. Kiến nghị 	 19

File đính kèm:

  • docsang_kien_kinh_nghiem_tim_hieu_them_ve_ngon_ngu_lap_trinh_pa.doc