I./ PHẦN MỞ ĐẦU:
1./ Tầm quan trọng của vấn đề:
Trước hết cần khẳng định rằng Pascal là một ngôn ngữ lập trình hay và đặc biệt, được tạo ra với mục đích dùng cho giảng dạy vì các lý do: Có cú pháp rõ ràng, dễ dạy dễ học; Pascal được viết theo lý thuyết chuẩn về lập trình cấu trúc nên một mặt nó minh hoạ cho lý thuyết về ngôn ngữ lập trình, mặt khác nhiều tài liệu khoa học máy tính cũng dùng Pascal để minh hoạ; Có thể sử dụng Pascal để viết các ứng dụng chuyên sâu, can thiệp vào phần cứng của máy tính và các thiết bị điện tử khác và cuối cùng là do trình biên dịch Pascal nhỏ gọn, có thể chạy tốt trên các máy tính cấu hình yếu, rất phù hợp với khả năng đầu tư cho học tập của học sinh, sinh viên.
7 trang |
Chia sẻ: baoan21 | Lượt xem: 2264 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Giúp học sinh hiểu & sử dụng hệ thống câu lệnh lặp không xác định để giải một số bài tập trong pascal có hiệu quả, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHUYÊN ĐỀ TIN HỌC LỚP 8:
“GIÚP HỌC SINH HIỂU & SỬ DỤNG HỆ THỐNG CÂU LỆNH LẶP KHÔNG XÁC ĐỊNH ĐỂ GIẢI MỘT SỐ BÀI TẬP TRONG PASCAL CÓ HIỆU QUẢ.”
I./ PHẦN MỞ ĐẦU:
1./ Tầm quan trọng của vấn đề:
Trước hết cần khẳng định rằng Pascal là một ngôn ngữ lập trình hay và đặc biệt, được tạo ra với mục đích dùng cho giảng dạy vì các lý do: Có cú pháp rõ ràng, dễ dạy dễ học; Pascal được viết theo lý thuyết chuẩn về lập trình cấu trúc nên một mặt nó minh hoạ cho lý thuyết về ngôn ngữ lập trình, mặt khác nhiều tài liệu khoa học máy tính cũng dùng Pascal để minh hoạ; Có thể sử dụng Pascal để viết các ứng dụng chuyên sâu, can thiệp vào phần cứng của máy tính và các thiết bị điện tử khác và cuối cùng là do trình biên dịch Pascal nhỏ gọn, có thể chạy tốt trên các máy tính cấu hình yếu, rất phù hợp với khả năng đầu tư cho học tập của học sinh, sinh viên.
Để giúp học sinh dễ dàng hơn trong việc lập trình giải quyết các bài toán mang tính lặp, trong nội dung của bài sáng kiến này tôi đưa ra những tóm lược cơ bản nhất của các câu lệnh lặp và một số ví dụ mẫu vận dụng cấu trúc lặp để giải quyết có hiệu quả.
2./ Đối tượng nghiên cứu: Học sinh lớp 8.
3./ Phương pháp nghiên cứu:
- Phương pháp điều tra.
- Phương pháp phân tích.
- Phương pháp tổng hợp kinh nghiệm trong giảng dạy.
- Phương pháp trò chuyện trao đổi.
- Phương pháp đọc sách và tổng hợp tư liệu.
II./ CƠ SỞ LÝ LUẬN:
1./ Cơ sở lý luận về lý thuyết:
- Muốn học tập đạt kết quả tốt, ngoài việc bản thân HS tích cực học tập, không thể thiếu vai trò hướng dẫn dìu dắt của người thầy.
- Để giúp học sinh dễ dàng hơn trong việc lập trình giải quyết các bài toán mang tính lặp ở bộ môn Tin học vừa đúng với nguyên tắc dạy học ở trường Phổ Thông, vừa đúng theo tinh thần đổi mới phương pháp dạy học hiện nay, nhằm hình thành cho học sinh tính tích cực, độc lập, sáng tạo, nâng cao năng lực phát triển và giải quyết vấn đề, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm tin và thích thú học tập cho HS. Hiện nay, không ít học sinh lười, học tập thụ động và có không ít phụ huynh thiếu sự quan tâm đến việc học của con em mình. Vì vậy, việc hệ thống các kiến thức về câu lệnh lặp để giải một số bài tập của giáo viên phải được chú ý đúng mức.
2./ Cơ sở lý luận về thực tiễn:
Trong quá trình giảng dạy, tôi nhận thấy Pascal là môn học khó đối với các em học sinh Khối 8, vì có một số thuật toán các em chưa được học ở bộ môn Toán, thêm vào đó là các em chỉ sử dụng các câu lệnh bằng Tiếng Anh để thể hiện khi lập trình. Do đó việc học tập của học sinh vẫn còn mang tính mơ hồ, như bị ép buộc, có nhiều học sinh rất sợ môn Tin học 8 vì tính chất khô khan, khó hiểu trong khi học.
Từ thực tế đó tôi không ngừng học hỏi để tìm ra biện pháp khắc phục. Bằng kinh nghiệm khiêm tốn trong những năm qua, tôi đã đưa ra những tóm lược cơ bản nhất của các câu lệnh lặp từ thuật toán tìm hiểu lệnh lặp không xác định , lập bảng số liệu chạy thử chương trình bằng số cụ thể, HƯỚNG DẪN HỌC SINH TÌM ĐIỀU KIỆN VÒNG LẶP KHÔNG XÁC ĐỊNH DỪNG và một số ví dụ mẫu vận dụng cấu trúc lặp để giải quyết có hiệu quả là nhằm giúp học sinh tiếp thu bài nhanh, nhớ kiến thức lâu hơn và cảm thấy thích thú trong học tập.
III/ THỰC TRẠNG:
* Những việc đã làm được:
- Tôi đã áp dụng công nghệ thông tin để soạn giảng các bài lý thuyết và thực hành nhằm hướng dẫn học sinh dễ hiểu bài và ghi nhớ kiến thức cơ bản ở bộ môn Tin học 8.
- Ở những giờ thực hành tôi đều tổ chức học tập theo nhóm và có sự nhận xét đánh giá kết quả của từng nhóm.
- Tôi đã hình thành nề nếp cho học sinh ngay từ đầu năm học.
* Hạn chế:
- Đa số học sinh bị hổng kiến thức Toán từ lớp dưới nên ý thức tìm tòi và nghiên cứu của các em còn hạn chế. Có không ít học sinh chưa cố gắng trong học tập, không chịu khó động não, nên ảnh hưởng không nhỏ đến việc học.
IV/ ĐỀ XUẤT GIẢI PHÁP:
1/ Xây dựng KHGD ngay từ đầu năm học:
- Ngay từ đầu năm học, GV phải hướng dẫn phương pháp học tập và nề nếp học ở phòng máy cho học sinh.
- GV chia nhóm học tập cho từng HS, phân nhóm trưởng, hướng dẫn cách hoạt động nhóm và trang bị sổ tay ghi chép cá nhân của HS.
- GV soạn bài trước thực dạy 2 tiết nhằm giúp việc nghiên cứu kiến thức sâu hơn và chủ động hơn trong việc soạn các bài kiểm tra.
- GV cần đầu tư nghiên cứu, mỗi năm cập nhật những cách hay của đồng nghiệp để tích luỹ cho việc giảng dạy.
- GV cần dành một thời lượng thích hợp cho việc mấu chốt và hướng dẫn HS cách nhớ kiến thức cơ bản vừa học ở các tiết học lý thuyết. Cũng như cách tìm hiểu ý nghĩa của mỗi lệnh trong các bài thực hành.
- HS phải chuẩn bị những gì mà GV đã dặn ở tiết trước.
2/ Một số giải pháp thực hiện:
*. 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 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.
Nguyên lý hoạt độ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.
Nhận xét:
- Câu lệnh được thực hiện lặp đi lặp lại cho đến khi nhận giá trị sai. Câu lệnh sẽ không được thực hiện lần nào nếu 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 để tránh xảy ra vòng lặp vô tận.
Bai tập1: Tìm hiểu thuật toán và cho biết khi thực hiện thuật toán máy tính thực hiện bao nhiêu vòng lặp. Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể hiện các thuật toán đó.
) Thuật toán 1:
Bước 1: S:= 30, x:=5
Bước 2: Nếu S<= 10, chuyển tới bước 4
Bước 3: S:=S-x và quay lại bước 2.
Bước 4: Thông báo S và kết thúc thuật toán.
- Điều kiện dừng vòng lặp ?
- Kết thúc thuật toán máy tính thực hiện bao nhiêu vòng lặp.
Program bt;
Var
S, x : Integer;
Begin
S:=30;
x:=5;
While S >10 do S:=S – x;
Writeln(S);
Readln
End.
Bài tập2:
LËp tr×nh tÝnh tæng dïng lÖnh lÆp While ...do.. Trong đó
n lµ sè tù nhiªn ®îc nhËp tõ bµn phÝm.
S = 1 + 2 + 3 + 4 + ......+ i
Ví dụ cho i=10;
) Thuật toán 2:
- Bíc 1: NhËp sè n
- Bíc 2: g¸n S:=0; i:=1
- Bíc 3: NÕu i > n, chuyÓn tíi bíc 5.
- Bíc 4:
i:= i+ 1; S:=S + i quay l¹i bíc 3.
- Bíc 5: KÕt thóc thuËt to¸n.
- Điều kiện dừng vòng lặp ?
- Kết thúc thuật toán máy tính thực hiện bao nhiêu vòng lặp.
Program tinhS;
Uses CRT;
Var i, S: integer;
S: real;
BEGIN
Clrscr;
S:=0; i:=0;
while i< 10 do
Begin
i: = i+1;
S:= S+ i;
End;
writeln(' Tong can tim la: ',S);
Readln;
END.
Ví dụ 1: Tính tổng
, Sao cho S >= 10
Var i : Integer; S:Real;
Begin
S:=0; i:=0;
While S < 10 do
Begin
i := i + 1;
S := S + i / (1+SQR( 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
Thuật toán:
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:
- 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
Chương trình
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.
Thuật toá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:
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.
Chương trình
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.
2. Bài học kinh nghiệm:
* Ư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.
* 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.
VI. KẾT LUẬN:
File đính kèm:
- CD Vong lap khong xac dinh Tin 8(1).doc