Tiến hành thực nghiệm

Một phần của tài liệu xây dựng phần mềm dạy học tin học 11 với activinspire (Trang 74 - 82)

2. Thực nghiệm

2.3.Tiến hành thực nghiệm

Được sự đồng ý của Cô giáo Phạm Thị Hường, tôi đã tiến hành thực nghiệm sử dụng phần mềm Tin học 11 vào dạy và học chương trình Tin học 11. Các bước tiến hành thực nghiệm:

Bƣớc 1: Lựa chọn đối tƣợng thực nghiệm

 Lớp thực nghiệm và lớp đối chứng phải tương đương về trình độ học

tập.

 Lớp thực nghiệm và lớp đối chứng đều do cùng một GV giảng dạy.

 Trường thực nghiệm có điều kiện cơ sở vật chất khá tốt, có phòng máy

chiếu, phòng vi tính riêng, hệ thống bảng tương tác.

Trên cơ sở những nguyên tắc này, tôi đã quyết định lựa chọn lớp thực nghiệm là lớp 11D gồm 33 HS và lớp đối chứng là lớp 11N gồm 41 HS.

Bƣớc 2: Chuẩn bị trƣớc khi thực nghiệm

 Trao đổi, thống nhất với GV hướng dẫn về kế hoạch, nội dung bài giảng

 Chuẩn bị các tài liệu cần thiết: phiếu học tập, phiếu thăm dò ý kiến, tài

liệu tham khảo môn Tin học.

 Đăng kí mượn phòng máy vi tính, máy chiếu, hệ thống bảng tương tác.

Bƣớc 3: Tiến hành thực nghiệm

Lớp đối chứng: áp dụng theo phương pháp truyền thống (không sử

dụng các phương tiện như máy chiếu, máy vi tính) với giáo án:

Tiến trình lên lớp, nội dung bài giảng

Tiết 1 - bài 14+15: Kiểu dữ liệu tệp và thao tác với tệp 1. Ổn định lớp (1 phút)

 Ổn định lớp.

GVHD: ThS.Kiều Phương Thùy 64 SVTH: Trần Thị Kim Oanh

2. Gợi động cơ (3 phút)

Trong chương trình tin học lớp 11 chúng ta đang được làm quen với ngôn ngữ lập trình Pascal, chúng ta đã tìm hiểu được 4 chương, những chương này đã cung cấp những kiến thức khá cơ bản về lập trình Pascal. Các em nghĩ lập trình Pascal có thể làm được những gì?

Dự đoán một số đáp án: lập trình game, tính toán, vẽ

Có khi nào các em nghĩ mình có thể lập trình ra một trò chơi trên điện thoại? Ví dụ như trò rắn ăn mồi, hứng bóng… hay một phần mềm giúp em trai/ gái học lớp một của em học các phép toán trong một phạm vi nào đó. Với Pascal các em có thể làm được điều đó. Trong các trò chơi, các em thường thấy menu hiện ra là tiếp tục và trò chơi mới, để có thể tiếp tục chúng ta hiểu là ta cần phải lưu điểm của lần chơi trước đó. Tuy nhiên, như các em biết từ trước tới nay với các dữ liệu mà ta đã học trong Pascal thì sau khi tắt chương trình đi thì tất cả các dữ liệu bị mất hết. Vậy làm thế nào để ta có thể lưu điểm của lần chơi trước lại hay với phần mềm luyện toán làm thế nào để lưu lại được kết quả trả lời của em để em dễ theo dõi? Hôm nay cô sẽ giới thiệu với các em một kiểu dữ liệu mới mà khi tắt máy đi hay thoát chương trình thì dữ liệu đó vẫn được lưu lại. Chúng ta sang bài ngày hôm nay.

3. Nội dung bài giảng

Nội dung Hoạt động của thầy và trò T/G

$14: Kiểu dữ liệu tệp

1. Vai trò của kiểu tệp

 Lưu trữ lâu dài ở bộ nhớ ngoài

 Lưu trữ lượng dữ liệu lớn

 Sao chép dữ liệu từ đĩa này sang

đĩa khác, máy này sang máy khác

GV: Thuyết trình

Như cô vừa giới thiệu ở trên, tất cả các dữ liệu trước mà chúng ta đã học đều bị mất khi tắt máy vì những dữ liệu này được lưu trong bộ nhớ trong. Vậy đối với một số bài toán mà chúng ta cần lưu trữ dữ liệu để sử dụng trong nhiều lần thực hiện chương trình và xử lý một số lượng không xác định các dữ liệu cùng kiểu thì chúng ta cần phải sử dụng một kiểu dữ liệu để có thể:

HS: Chú ý lắng nghe

5‟

2. Phân loại tệp

Phân loại tệp theo: cách tổ chức dữ

GV: Thuyết trình

GVHD: ThS.Kiều Phương Thùy 65 SVTH: Trần Thị Kim Oanh

liệu và cách truy cập

Cách tổ chức dữ liệu:

Tệp văn bản: dữ liệu được ghi dưới dạng các kí tự theo mã ASCII. Dữ liệu dạng văn bản như sách, tài liệu, bài học… thường được lưu trữ dưới dạng tệp.

Tệp có cấu trúc: các thành phần được tổ chức theo một cấu trúc nhất định. Dữ liệu ảnh, âm thanh… thường được lưu trữ dưới dạng tệp có cấu trúc.

Cách thức truy cập:

Tệp truy cập tuần tự: dữ liệu được truy cập theo thứ tự nó được lưu trữ

Tệp truy cập trực tiếp: truy cập trực tiếp bằng cách xác định trực tiếp vị trí (thường là số hiệu) của dữ liệu đó.

nhất là phân loại theo cách tổ chức dữ liệu: dữ liệu có thể lưu dưới dạng các kí tự được gọi là tệp văn bản hoặc lưu dưới dạng hình ảnh, âm thanh và được gọi là tệp có cấu trúc. Thứ hai là phân loại theo cách thức truy cập: có nghĩa là ta có thể truy cập dữ liệu bằng cách đọc tuần tự từ đầu cho đến hết dữ liệu và được gọi là truy cập tuần tự hoặc truy cập vào bất kỳ vị trí nào và được gọi là tệp truy cập trực tiếp. Hôm nay chúng ta tập trung nghiên cứu về tệp văn bản.

HS: Chú ý lắng nghe

$15: Thao tác với tệp

1. Khai báo

var <tên biến tệp>: text;

Trong đó:

var: từ khóa chúng cho khai báo

biến.

text: từ khóa cho kiểu dữ liệu tệp.

tên biến tệp: được đặt theo quy

cách đặt tên.

Khai báo biến tệp để có thể thực hiện các thao tác với tệp.

GV: Thuyết trình

Ở chương II khi làm quen với kiểu dữ liệu chuẩn, chương IV khi làm quen với kiểu dữ liệu có cấu trúc, thì đối với từng kiểu dữ liệu chúng ta có những thao tác riêng trên từng kiểu dữ liệu đó. Vậy đối với tệp chúng ta có những thao tác nào? Chúng ta sang bài hôm nay, bài 15 thao tác với tệp. GV: để làm việc với kiểu dữ liệu nào đó chúng ta phải làm gì đầu tiên ở phần khai báo?

HS: suy nghĩ trả lời

Đáp án: khai báo biến với từ khóa chung là var và từ khóa của từng kiểu dữ liệu.

GV: dựa vào cú pháp trên, một người

GVHD: ThS.Kiều Phương Thùy 66 SVTH: Trần Thị Kim Oanh

dùng khai báo cho cô 2 biến kiểu tệp có tên là tep1 và tep2.

HS: suy nghĩ trả lời

Thảo luận: Chia lớp thành 2 nhóm, một nhóm tìm hiểu về cách ghi dữ liệu lên tệp, một nhóm tìm hiểu về các đọc dữ liệu từ tệp. Sau 5 phút thảo luận mỗi nhóm cử một người dùng lên để viết các câu lệnh để ghi/đọc dữ liệu.

GV: Tổ chức, kiểm soát HS để HS

họat động nhóm được hiệu quả. Sau đó nhận xét và giải thích.

HS: Tham gia thảo luận tích cực.

5‟

2. Thao tác với tệp

a. Gắn tên tệp với biến tệp

Câu lệnh gán tên tệp cho biến tệp:

assign(<biến tệp>,<tên tệp>);

Trong đó, tên tệp là biến xâu hoặc hằng xâu. Tên tệp có thể gồm những đường dẫn chứa ổ đĩa, danh sách các thư mục liên tiếp cách nhau bởi dấu đường dẫn(\), cuối cùng là tên tệp:

<ổ đĩa>:\<tên thư mục>\<tên thư mục>\…\<tên thư mục>\<tên tệp>

GV: Một người dùng nhắc lại cho cô

vai trò của kiểu dữ liệu tệp?

HS: tệp dùng để lưu trữ dữ liệu.

Tệp chỉ có tác dụng là lưu trữ dữ liệu, vậy muốn thao tác với tệp, cập nhập dữ liệu trong tệp chúng ta cần một đại diện cho kiểu dữ liệu tệp đó chính là biến tệp. Tuy nhiên, trong chương trình tin học lớp 10 chúng ta đã biết là hệ điều hành quản lý tệp thông qua tên tệp. Như vậy, chúng ta phải Gắn tên tệp với biến tệp

GV: viết câu lệnh gắn tên tệp là

nguyendu trong thư mục tho ở ổ D cho biến tep2?

HS: assign(tep2,„D:\tho\nguyendu‟‟); 20‟ b. Mở tệp  Thủ tục mở tệp để ghi dữ liệu có dạng: rewrite(<biến tệp>);  Thủ tục mở tệp để đọc dữ liệu có dạng: reset(<biến tệp>); Trong cú pháp mở tệp để ghi dữ liệu, biến tệp cần phải được gắn với

một tệp sau khi dùng assign. Rewrite

tạo ra một tệp mới với tên tệp đã gắn với biến tệp. Nếu đã có một tệp cùng tên thì tệp này bị xóa và một tệp rỗng được tạo ra thay thế nó. Nếu tệp đã mở sẵn, nó sẽ đóng lại sau đó được tạo lại là tệp rỗng.

GVHD: ThS.Kiều Phương Thùy 67 SVTH: Trần Thị Kim Oanh

Trong cú pháp mở tệp để đọc dữ liệu, biến tệp cần phải được gắn với một tệp sau khi dùng assign. Nếu tệp này không tồn tại thì lệnh reset sẽ bị lỗi. Nếu tệp đã mở thì nó sẽ đóng lại rồi sau đó mở lại. Vị trí con trỏ tệp sau lời gọi reset là đầu tệp.

c. Đọc/ghi tệp văn bản

 Đọc tệp văn bản:

read(<biến tệp>, <danh sách biến>); hoặc

readln(<biến tệp>,<danh sách biến>);

Trong đó, danh sách biến là dãy tên biến 1, tên biến 2, …, tên biến N. Các dữ liệu cần đọc trong tệp gán vào danh sách biến phải lần lượt có kiểu tương ứng với kiểu của biến trong danh sách biến. Nếu sai kiểu thì chương trình sẽ mắc lỗi. Lỗi này thường gặp khi biến có kiểu số, dữ liệu được đọc lại là kiểu xâu.

 Ghi tệp văn bản:

write(<biến tệp>, <danh sách biến>); hoặc

writeln(<biến tệp>,<danh sách biến>);

Khi 2 kết quả là số liền nhau cùng là kiểu số thì cần xen vào giữa 2 kết quả số này một kết quả trung gian là hằng kí tự dấu cách.

GV: giả sử tệp vidu có nội dung

xinchao123 được gắn cho biến tep1. Hai biến xau:string[7]; so:integer. Hãy cho biết cách đọc dữ liệu sau có thực hiện được không?

read(tep1, so, xau);

HS: không vì không tệp lưu trữ nội

dung là một xâu rồi mới tới một số.

d. Đóng tệp

 Thủ tục đóng tệp:

close(<biến tệp>);

Sau khi đóng một tệp vẫn có thể được mở lại. Khi mở lại tệp, nếu vẫn dùng biến tệp cũ thì không cần phải dùng thủ tục assign gắn lại tên tệp.

GV: sau khi thực hiện các thao tác

trên tệp, chúng ta phải đóng tệp lại để lưu kết quả của phiên làm việc đó.

GVHD: ThS.Kiều Phương Thùy 68 SVTH: Trần Thị Kim Oanh

 Hàm eof(<biến tệp>): trả về giá trị

true nếu con trỏ tệp đang chỉ tới cuối tệp.

 Hàm eoln(<biến tệp>): trả về giá trị

true nếu con trỏ tệp đang chỉ tới cuối tệp.

4. Bài tập về nhà(1‟)

Đọc lại bài và chuẩn bị bài mới

Tiết 2 – Bài 16: Ví dụ làm việc với tệp

1. Ổn định lớp (2 phút)

- Ổn định lớp.

- Yêu cầu lớp trưởng báo cáo sĩ số

2. Gợi động cơ (1 phút)

Hôm nay chúng ta sẽ ôn tập và vận dụng các kiến thức về kiểu dữ liệu tệp và thao tác với tệp.

3. Nội dung bài giảng

Nội dung Hoạt động của thầy và trò T/G

Ví dụ 1: Viết chương trình để ghi một số slogan về an toàn giao thông mà các em nhớ hoặc thích vào tệp có tên là antoan.

Ý tưởng: Sử dụng biến xâu để lưu giữ nội dung của slogan và sử dụng vòng lặp với số lần chưa biết trước để nhập dữ liệu vào tệp. Chương trình: var tep:text; xau:string; begin assign(tep, „antoan‟); rewrite(tep); repeat

write(„nhap xau: ‟); readln(xau); if xau <>‟‟ then writeln(tep,xau);

GV:

Hỏi: với yêu cầu bài toán này, liệu em có biết trước được số slogan mà mình cần đưa vào tệp không?

HS:

- Có: ghi trước ra giấy những câu

mà mình nhớ và thích sau đó đếm.

GV: vậy khi đó để nhập dữ liệu vào em

cần dùng vòng lặp tiến với số lần đã biết để nhập dữ liệu vào. Yêu cầu HS viết câu lệnh. Còn người dùng nào có ý kiến khác không?

- Không biết trước.

GV: khi đó các em cần dùng đến vòng

lặp với số lần chưa biết trước với điều kiện ngừng vòng lặp ở đây có thể là khi ta nhập một xâu rỗng. Yêu cầu HS viết

GVHD: ThS.Kiều Phương Thùy 69 SVTH: Trần Thị Kim Oanh

until xau=‟‟; end.

câu lệnh.

GV: trên đây là những câu lệnh ghi dữ

liệu vào. Trước khi làm việc với tệp hay bất kỳ một kiểu dữ liệu nào chúng ta cần làm gì trước tiên?

HS: khai báo biến

GV: muốn thao tác trên tệp việc mà

chúng ta phải làm đầu tiên là?

HS: gán tên tệp

GV: tiếp theo để ghi dữ liệu vào tệp

chúng ta cần mở tệp để ghi. Người dùng nào nhắc lại cho cô câu lệnh này?

HS: suy nghĩ trả lời.

Ví dụ 2: Viết chương trình để đọc

các slogan mà em đã ghi trong tệp antoan, mỗi slogan cho chạy từ trái sang phải màn hình cho đến hết slogan thì xóa và thay bằng nội dung của slogan tiếp theo.

GV: Nếu như biết trước trong tệp antoan

có bao nhiêu câu slogan thì chúng ta sẽ sử dụng vòng lặp tiến để đọc dữ liệu ra. Giả sử em chỉ biết là hiện tại mình đang có một tệp tên là antoan và có dữ liệu là các câu slogan về an toàn giao thông. Có khá nhiều câu trong đó và em không đếm được số slogan. Vậy làm thế nào để đọc được dữ liệu ra?

HS: sử dụng vòng lặp có số lần không

biết trước. Điều kiện dừng là khi con trỏ tệp đang ở vị trí cuối tệp.

GV: yêu cầu HS viết câu lệnh. GV: yêu cầu HS viết chương trình.

20‟

4. Bài tập về nhà(2’)

GVHD: ThS.Kiều Phương Thùy 70 SVTH: Trần Thị Kim Oanh

Lớp thực nghiệm: dạy học bằng phần mềm Tin học 11 kết hợp PPDH

truyền thống theo tiến trình sau:

Tiết 1 - bài 14+15: Kiểu dữ liệu tệp và thao tác với tệp 1. Dạy lý thuyết bằng phần mềm thông qua phần Bài giảng

Một số hình ảnh về nội dung bài giảng trong phần mềm:

Hình 4.1: Giao diện nôi dung bài 14 - Phân loại tệp

2. Giới thiệu HS tham khảo kiến thức về kiểu tệp truy cập tuần tự bằng phần mềm thông qua phần Đọc thêm ở nội dung phân loại tệp.

Một số hình ảnh về nội dung bài đọc thêm trong phần mềm:

GVHD: ThS.Kiều Phương Thùy 71 SVTH: Trần Thị Kim Oanh

Tiết 2 – Bài 16: Ví dụ làm việc với tệp 1. Hƣớng dẫn HS làm 2 ví dụ

Hình 4.3: Giao diện nội dung bài Ví dụ làm việc với tệp – Ví dụ 1 2. Củng cố kiến thức với một vài câu hỏi trong phần ôn tập của phần mềm.

Hình 4.3: Nội dung củng cố chƣơng V

Một phần của tài liệu xây dựng phần mềm dạy học tin học 11 với activinspire (Trang 74 - 82)