Một số kinh nghiệm trong dạy học ngôn ngữ lập trình Pascal

Chia sẻ bởi Lương Thế Vinh | Ngày 24/10/2018 | 54

Chia sẻ tài liệu: Một số kinh nghiệm trong dạy học ngôn ngữ lập trình Pascal thuộc Tin học 8

Nội dung tài liệu:

Sunday, November 10, 2013
1
NHIỆT LIỆT CHÀO MỪNG QUÝ THẦY CÔ VỀ DỰ CHUYÊN ĐỀ:
“MỘT SỐ KINH NGHIỆM TRONG DẠY HỌC NGÔN NGỮ LẬP TRÌNH PASCAL Ở TRƯỜNG THCS”
Phòng Giáo Dục Và Đào Tạo CưMgar
Sunday, November 10, 2013
2
NHIỆT LIỆT CHÀO MỪNG QUÝ THẦY CÔ VỀ DỰ CHUYÊN ĐỀ:
“MỘT SỐ KINH NGHIỆM TRONG DẠY HỌC NGÔN NGỮ LẬP TRÌNH PASCAL Ở NHÀ TRƯỜNG THCS”
Phòng Giáo Dục Và Đào Tạo CưMgar
Sunday, November 10, 2013
3
I.ĐẶT VẤN ĐỀ

Pascal là một ngôn ngữ lập trình đặc biệt.
Có cú pháp rõ ràng, dễ dạy và dễ hiểu so với các ngôn ngữ lập trình khác
Nắm vững ngôn ngữ lập trình Pascal có thể nói sẽ dễ dàng học tốt mọi NNLT khác
Sunday, November 10, 2013
4
I.Đặt vấn đề
Để giúp học sinh dễ dàng hơn trong học NN lập trình Pascal, tôi đưa ra một số kinh nghiệm trong việc dạy NNLT Pascal.
Sunday, November 10, 2013
5
II. CƠ SỞ LÝ LUẬN
- Muốn hs đạt kết quả tốt trong học tập, ngoài sự nổ lực học tập của học trò thì vai trò hướng dẫn, dìu dắt của người thầy rất quan trọng.
Sunday, November 10, 2013
6
II. CƠ SỞ LÝ LUẬN
- Tác dụng của đổi mới phương pháp dạy học làm sao để giúp cho học sinh học tập tích cực, độc lập, sáng tạo, tư duy,… đem lại niềm vui và thích thú học tập cho học sinh.
Sunday, November 10, 2013
7
III. THỰC TRẠNG
- Pascal là một môn học khó đối với học sinh, vì khả năng toán học của các em phần đa còn rất yếu.
Sunday, November 10, 2013
8
III. THỰC TRẠNG
- Các em phải sử dụng các câu lệnh bằng tiếng anh để lập trình
Sunday, November 10, 2013
9
III. THỰC TRẠNG
Môn học khô khan, khó hiểu. Việc học của học sinh vẫn còn mang tính mơ hồ
Giáo viên gặp nhiều khó khăn khi đặt câu hỏi “Làm sao để truyền thụ kiến thức cho học sinh một cách rõ ràng và sâu rộng nhất?”.
Sunday, November 10, 2013
10
III. THỰC TRẠNG
Việc kiểm tra, đánh giá học sinh còn chưa đạt ở chức năng xác định (chính xác, khách quan, công bằng), mà thiên về chức năng điều khiển (thiên về bệnh thành tích và cảm tính)
Sunday, November 10, 2013
11
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
1. Cần cho học sinh hiểu rõ ngôn ngữ máy tính và ngôn ngữ lập trình
Sunday, November 10, 2013
12
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
2. Thể hiện rõ cấu trúc chung của chương trình pascal.
Sunday, November 10, 2013
13
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
3. Dịch và chạy chương trình cho học sinh quan sát trực tiếp.
Sunday, November 10, 2013
14
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
4. Dành thời lượng đúng theo phân phối chương trình cho học sinh thực hành, ở 2 bài thực hành đầu tiên (Chú ý: những tiết này rất quan trọng, giáo viên quan tâm chất lượng thực sự). Yêu cầu học sinh thực hành một số nội dung khác SGK để phát triển tư duy của các em.
Sunday, November 10, 2013
15
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
5. Các kiểu dữ liệu cơ sở
(byte, Integer, real, char, string).
Sunday, November 10, 2013
16
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
6. Phân biệt lệnh write và writeln (lệnh viết ra màn hình).
Write(mục1,mục2,…, mục n);
Viết ra các mục, không xuống dòng sau khi viết xong mục cuối cùng là mục n.
Sunday, November 10, 2013
17
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
6. Phân biệt lệnh write và writeln (lệnh viết ra màn hình).
Writeln(mục1,mục2,…, mục n);
Viết ra các mục, sau đó đưa con trỏ xuống đầu dòng tiếp theo.
Sunday, November 10, 2013
18
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
7. Phân biệt lệnh read và readln (Đọc dữ liệu nhập vào từ bàn phím).
Read(mục1,mục2,…, mục n);
Readln(mục1,mục2,…, mục n);
Sunday, November 10, 2013
19
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
8. Vận dụng các phép toán +, -, *, /, Div, Mod để giải các bài toán cơ bản
Sunday, November 10, 2013
20
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
9. Sử dụng biến trong chương trình
Var : ;
- Khai báo biến trong PASCAL
- Biến là đại lượng dùng để lưu trữ dữ liệu, dữ liệu này có thể thay đổi trong khi thực hiện chương trình.
- Dữ liệu do biến lưu trữ được gọi là giá trị của biến.
Sunday, November 10, 2013
21
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
9. Sử dụng biến trong chương trình
Var : ;
- Khai báo biến trong PASCAL
Trong Pascal, còn cung cấp một lệnh để gán giá trị cho biến khi nhập từ bàn phím.
Cú pháp : Readln( Tên biến );
chương trình sẽ dừng lại cho
người sử dụng nhập vào giá trị từ bàn phím.
Sunday, November 10, 2013
22
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
Bài Toán 1. Viết chương trình in ra màn hình Họ và tên và Ngày tháng năm sinh của Hồ Chủ Tịch?
Begin
Writeln(‘ Nguyen Sinh Cung’);
Writeln(‘sinh ngay: 19/05/1890’);
readln;
End.
Sunday, November 10, 2013
24
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
Bài Toán 2. Viết chương trình tính
Begin
Writeln(‘(25^2-1)/(1890+33)-77=‘,(25*25-1)/(1890+33)-77);
readln;
End.
Sunday, November 10, 2013
26
IV. Một số kinh nghiệm trong dạy NNLT Pascal.
A) Một số nội dung cơ bản
Bài Toán 3. Đổi 177789 giây ra ?giờ ?phút ?giây?
Begin
writeln(‘177789 giay =‘,177789 div 3600,’gio’,(177789 mod 3600)
div 60,’ phut ‘,(177789 mod 3600) mod 60, ‘giay’);
readln;
End.
 Hoạt động của câu lệnh:
Chương trình sẽ kiểm tra điều kiện. Nếu điều kiện được thoả mãn, chương trình sẽ thực hiện câu lệnh. Ngược lại câu lệnh bị bỏ qua.
 Cú pháp: câu lện điều kiện dạng thiếu
IF < Điều kiện> THEN ;
 Hoạt động của câu lệnh:
Chương trình sẽ kiểm tra điều kiện. Nếu điều kiện được thoả mãn, chương trình sẽ thực hiện câu lệnh1. Ngược lại thực hiện câu lệnh 2.
 Cú pháp: câu lện điều kiện dạng đủ
IF < Điều kiện> THEN else ;
*So d?

B) “SỬ DỤNG HỆ THỐNG CÂU LỆNH LẶP ĐỂ GIẢI MỘT SỐ BÀI TẬP TRONG PASCAL CÓ HIỆU QUẢ.”
Câu lệnh lặp với số lần lặp biết trước trong Pascal:
FOR := TO DO < câu lệnh>;
? Giá trị cuối phải lớn hơn giá trị đầu.
? Câu lệnh có thể là câu lệnh đơn giản(một lệnh) hoặc lệnh ghép (nhiều lệnh)
Trong đó
? Biến đếm thường có kiểu số nguyên
For i:=1 to 100 do writeln(`O`);

câu lệnh lặp
Program in4;
Uses crt;
Begin
Writeln(`O`);
Writeln(`O`);
Writeln(`O`);
Writeln(`O`);
End.
Program in4;
Uses crt;
Begin

For i:=1 to 4 do Writeln(`O`);

End.
? Ban đầu biến đếm (i=1<4) lệnh in được thực hiện ? In ra O đầu tiên
? Biến đếm i tang 1 đơn vị (i=2<4) lệnh in được thực hiện ? in ra O thứ hai
? Tương tự như vậy cho đến khi biến đếm i bằng giá trị cuối (i=4) -> lệnh được thực hiện lần cuối và kết thúc ? trên màn có 4 O.









O
O
O
O
Hoạt động của lệnh For..to..do
ví dụ 1: In ra màn hình 4 chữ O
Program in4;
Uses crt;
Begin

For i:=1 to 10 do
begin
Writeln(`O`);
delay(100);
end;
End.
Với mỗi giá trị của biến đếm
+ Hai câu lệnh Writeln(`o`) và delay(100) được thực hiện
+ Begin, end ? Câu lệnh ghép

O
O
O
O
O
O
O
O
O
O
ví dụ 2: Mô phỏng quả trứng rơi từ trên cao xuống
Trong đó:
+ for, to, do là các từ khóa.
+ Biến đếm có kiểu nguyên.
+ Giá trị đầu và giá trị cuối là các biểu thức có cùng kiểu với biến đếm và giá trị cuối phải lớn hơn hoặc bằng giá trị đầu.
+ Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.
Có thể giới thiệu thêm Dạng lùi: (tùy theo đối tượng học
sinh của mỗi lớp).
For := Downto do ;
* Nguyên lý hoạt động cấu trúc For dạng tiến:
1.Giá trị đầu được gán cho biến đếm
2. Máy kiểm tra xem giá trị của biến đếm còn nhỏ hơn giá trị của biểu thức giá trị cuối hay không (biến đếm ≤ giá trị cuối).
3. Nếu việc kiểm tra:
- Cho giá trị sai câu lệnh sẽ bị bỏ qua.
- Cho giá trị đúng:
+Máy sẽ thực hiện câu lệnh sau từ khóa do.
+ Tăng giá trị của biến đếm lên giá trị đứng liền sau của nó 1 đơn vị (biến đếm:=biến đếm + 1)
- Quay trở lại bước 2
Trong cấu trúc For dạng tiến, câu lệnh được thực hiện lặp đi lặp lại cho đến khi giá trị của biến đếm lớn hơn giá trị cuối. Mỗi lần thực hiện xong câu lệnh, giá trị của biến đếm được tăng lên 1 đơn vị
* Nguyên lý hoạt động cấu trúc For dạng lùi:
1. Biến đếm nhận giá trị cuối.
2. Máy kiểm tra xem giá trị của biến đếm còn lớn hơn giá trị đầu không?
3. Nếu việc kiểm tra:
- Cho giá trị sai: máy bỏ qua câu lệnh.
- Cho giá trị đúng:
+ Máy sẽ thực hiện câu lệnh.
+ Giảm giá trị của biến đếm b đến giá trị đứng liền trước của nó (biến đếm:=biến đếm -1)
- Quay trở lại bước 2
Trong cấu trúc For dạng lùi, câu lệnh được thực hiện lặp đi lặp lại cho đến khi giá trị của biến đếm nhỏ hơn giá trị của giá trị đầu. Mỗi lần thực hiện xong câu lệnh, giá trị của biến đếm được giảm đi 1 đơn vị.
1. Ví dụ 1: Tính tổng S = 1 + 1/2 + 1/3 + .... + 1/n
- Trong biểu thức trên, số hạng thứ i của tổng có thể tính được theo công thức S(i) = 1/i (i=1,2,...,n)
- Trường hợp này có thể sử dụng được một trong hai dạng cấu trúc của FOR
Nhận xét:
Chương trình:
Var i, n : Integer; S:Real;
Begin
Write(`Hay nhap vao so nguyen n=`);
Readln(n);
S:=0;
For i:=1 to n do
S:= S + 1 / i;
Writeln( ` Tong S =`, S : 6 : 2 );
Readln;
End.
Phương án 1: Sử dụng cấu trúc For dạng tiến.
Var i, n : Integer; S:Real;
Begin
Write(`Hay nhap vao so nguyen n=`);
Readln(n);
S:=0;
For i:=n downto 1 do
S:= S + 1 / i;
Writeln( ` Tong S =`, S : 6 : 2 );
Readln;
End.
Phương án 2: Sử dụng cấu trúc For dạng lùi.
2. Ví dụ 2:
In ra màn hình hai dòng chữ. Dòng trên gồm các chữ cái in hoa từ A..Z. Dòng dưới gồm các chữ cái thường theo thứ tự ngược lại từ z đến a
Ta có thể giải quyết được bài toán bằng cách sử dụng cấu trúc FOR dạng tiến và dạng lùi với biến điều khiển dạng ký tự nhận các giá trị trong khoảng từ A đến Z
Nhận xét:
Chương trình
Program in_dong;
Var
ch: char;
Begin
Writeln;
For ch := `A` to `Z` do Write(ch:2);
Writeln;
For ch := `z` downto `a` do Write(ch:2);
Writeln;
Readln;
End.
3. Ví dụ 3: Đọc vào n số thực, tìm Max của chúng
- Dãy số có một số lượng hữu hạn các số. Ta có thể biết được số lượng từ khi bắt đầu thực hiện thuật toán.
- Thích hợp cho việc sử dụng cấu trúc FOR dạng tiến để thực hiện.
Nhận xét:
Chương trình
* Thuật toán tìm Max trong một dãy số:
- Cho Max là số thứ nhất
- Duyệt toàn bộ dãy số từ số thứ hai trở đi, nếu thấy số nào lớn hơn Max thì lấy số đó làm Max. Sau khi duyệt xong dãy số, ta sẽ có Max là số lớn nhất.
Program tim_max;
Var
n, i: integer;
max, x: real;
Begin
Write(‘n = ‘); Readln(n);
For i := 2 to n do
Begin
Write(‘Cho so thu ’, i);Readln(X);
if Max < X then Max := X;
End;
Writeln(‘Max = ‘, Max:8:2);
Readln;
End.
*. CẤU TRÚC LẶP VỚI LỆNH WHILE...DO:
Tác dụng: Dùng để xây dựng chu trình với số lần lặp chưa xác định trước.
Cú pháp: While <điều kiện> do ;
Câu lệnh là thân chu trình và có thể là câu lệnh đơn hoặc câu lệnh ghép.
Sai
Đúng
1. Máy tính xác định giá trị của điều kiện.
2. Tuỳ thuộc vào giá trị của điều kiện:
- Nếu điều kiện có giá trị đúng, máy tính sẽ thực hiện câu lệnh sau đó quay lại bước 1.
- Nếu điều kiện có giá trị sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc.
- Câu lệnh được thực hiện lặp đi lặp lại cho đến khi <điều kiện> nhận giá trị sai. Câu lệnh sẽ không được thực hiện lần nào nếu <điều kiện> nhận giá trị sai ngay từ khi bắt đầu vào chu trình.
- Trong thân chu trình phải có câu lệnh làm thay đổi giá trị của <điều kiện> để tránh xảy ra vòng lặp vô tận.
* Nguyên lý hoạt động:
Nhận xét:
Ví dụ 1: Tính tổng
, Sao cho S >= 10
- Trong biểu thức trên, số hạng thứ i của tổng có thể tính được theo công thức S(i) = i/ (1 + i2 ) (i=1,2,...,n).
- Điều kiện để dừng vòng lặp là tổng S phải lớn hơn 10.
Trường hợp này sử dụng dạng cấu trúc While...do như sau:
Nhận xét:
Chương trình
Var i : Integer; S:Real;
Begin
S:=0; i:=0;
While (S < =10) do
Begin
i := i + 1;
S := S + i / (1+(i* i ) );
End;
Writeln( ` Tong S =`, S : 6 : 2 );
Writeln( ‘So lan lap la:’, i );
Readln;
End.
2. Ví dụ 2: Tìm bội số chung nhỏ nhất của hai số nguyên dương
Lấy một trong hai số lần lượt nhân với 1, 2, 3,... cho đến khi nào tích số chia hết cho số thứ hai thì tích số chính là BSCNN
Nhận xét:
Chương trình
Thuật toán:
- Thuật toán cho thấy là trong quá trình tính toán, không thể biết trước được quá trình nhân phải thực hiện lặp lại bao nhiêu lần. Trường hợp này phải sử dụng cấu trúc lặp với số lần lặp không xác định.
- Điều kiện để dừng là tích số chia hết cho số thứ hai
Program Boisochungnhonhat;
Var
Bscnn, n, m, k: Integer;
Begin
Write(‘m= ‘); Readln(m);
Write(‘n= ‘); Readln(n);
bscnn := m; k := 2;
While (BSCNN mod n <> 0) do
Begin
BSCNN := k*m;
k:= k + 1;
End;
Writeln(‘BSCNN = ‘, BSCNN);
Readln;
End.
3.Ví dụ 3: Tìm Ước số chung lớn nhất của hai số nguyên dương m, n.
Nếu m>n thì lấy m = m – n
Nếu m vẫn lớn hơn n thì tiếp tục lấy m = m - n
Nếu m< n thì lấy n = n - m
Nếu n vẫn lớn hơn m thì tiếp tục lấy n = n – m
Lặp lại thuật toán trên cho đến khi m = n. Lúc đó m = n là ƯSCLN
Nhận xét:
Chương trình
Thuật toán:
Thuật toán cho thấy không thể xác đinh trước được phép trừ phải thực hiện lặp lại bao nhiêu lần. Trường hợp này phải sử dụng cấu trúc lặp với số lần lặp không xác định.
Điều kiện để dừng là hai số bằng nhau.
Program USCLN;
Var x, y: Integer;
Begin
Write(‘x = ‘);Readln(x);
Write(y = ‘);Readln(y);
While x <> y do
If x>y then x := x – y
else y := y – x;
Writeln(‘USCLN la: ‘, x)
Readln;
End.
Sunday, November 10, 2013
55
V. Kết quả
Với lối kiểm tra thực sự nghiêm túc, bám theo các tiêu chí kiểm tra, đánh giá: bảo đảm tính toàn diện, bảo đảm độ tin cậy, bảo đảm yêu cầu phân hóa, bảo đảm tính khả thi và hiệu quả. Kết quả khảo sát năm học 2012 -2013 vừa rồi trên 2 lớp 8a1, 8a2 về cơ bản tôi thấy đánh giá như thấy là đúng năng lực học tập của các em, các em thực sự quý trọng những điểm số của mình, và có sự cố gắng từng ngày trong học tập
Chất lượng học đại trà năm học 2012 – 2013 trường THCS Lương Thế Vinh
Kết quả học sinh giỏi các cấp năm học 2012 – 2013 trường THCS Lương Thế Vinh
2. Bài học kinh nghiệm:

* Nhược điểm:
- Một số học sinh yếu kém mất kiến thức căn bản ở môn Toán, thêm vào đó có một số thuật toán các em chưa được học trong chương trình, nên giáo viên phải kiên trì, nhẫn nại, thậm chí mất nhiều thời gian trong việc hướng dẫn các thuật toán cho học sinh.
* Ưu điểm:
- Kích thích động cơ học tập của học sinh.
- Nâng cao chất lượng dạy và học.
VI. KẾT LUẬN:
Trên đây là tóm lược một số kinh nghiệm mà bản thân đã đúc kết được trong quá trình giảng dạy môn tin học 8 ở trường. Qua đó giúp học sinh và đồng nghiệp có thể làm tài liệu tham khảo trong quá trình học tập và giảng dạy của mình có hiệu quả.
Trong phạm vi là một chuyên đề có thể việc phân tích về nội dung câu lệnh và ví dụ về các dạng lệnh có thể chưa thật chi tiết và phong phú, đầy đủ, rất mong nhận được sự góp ý chân thành từ quý đồng nghiệp, học sinh để đề tài được hoàn thiện hơn.
Sunday, November 10, 2013
Một số giải pháp nhằm nâng cao chất lượng dạy tiết thực hành
60
Nội dung 4: PHẦN THẢO LUẬN
Sunday, November 10, 2013
Một số giải pháp nhằm nâng cao chất lượng dạy tiết thực hành
61
Nội dung 5: PHẦN ĐÓNG GÓP Ý KIẾN CỦA CÁC GV
Sunday, November 10, 2013
Một số giải pháp nhằm nâng cao chất lượng dạy tiết thực hành
62
CHUYÊN ĐỀ:
“Một Số Kinh Nghiệm Trong dạy NNLT Pascal”
Nội dung 5: PHẦN ĐÓNG GÓP Ý KIẾN CỦA CÁC ĐẠI BIỂU
Sunday, November 10, 2013
Một số giải pháp nhằm nâng cao chất lượng dạy tiết thực hành
63
CHUYÊN ĐỀ: “Một số kinh nghiệm trong dạy học NNLT Pascal”
Nội dung 7: Mọi ý kiến đóng góp cho chuyên đề xin gửi về địa chỉ: [email protected]
Sunday, November 10, 2013
Một số giải pháp nhằm nâng cao chất lượng dạy tiết thực hành
64
XIN CHÂN THÀNH CÁM ƠN
“QUÝ ĐẠI BIỂU, QUÝ THẦY CÔ GIÁO”
CHUYÊN ĐỀ ĐẾN ĐÂY KẾT THÚC
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Lương Thế Vinh
Dung lượng: | Lượt tài: 5
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)