Đề tài :
“MỘT SỐ ƯU ĐIỂM CỦA NGÔN NGỮ LẬP TRÌNH FREE
PASCAL SO VỚI TURBO PASCAL”
A. PHẦN MỞ ĐẦU
I. LÝ DO CHỌN ĐỀ TÀI
Ngày nay, cùng với sự phát triển của tin học ở Việt Nam nói chung
và trên thế giới đang diễn ra quá trình tin học hoá nói riêng đặc biệt trên
nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả
to lớn.
Sự phát triển mạnh mẽ như “ vũ bão ” của tin học đã làm cho xã hội
có nhiều nhận thức mới về cách tổ chức các hoạt động. Nhiều quốc gia
trên thế giới ý thức được rất rõ tầm quan trọng của tin học và có những đầu
tư lớn cho lĩnh vực này, đặc biệt trong giáo dục nâng cao dân trí về tin học
và đào tạo nguồn nhân lực có chất lượng cao. Người Việt Nam có nhiều tố
chất thích hợp với ngành khoa học này, vì thế chúng ta hi vọng có thể sớm
hoà nhập với khu vực và trên thế giới.
Nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và đã
đưa môn học này vào nhà trường phổ thông như những môn khoa học
khác bắt đầu từ năm học 2006-2007. Và tổ chức các cuộc thi học sinh giỏi
môn Tin học cấp tỉnh, cấp quốc gia.
Hiện nay tại tỉnh Thanh Hóa các kỳ thi học sinh giỏi cấp tỉnh thường
cho học sinh lập trình trên 2 ngôn ngữ lập trình là Turbo Pascal và Free
Pascal. Trong quá trình ôn luyện đội tuyển học sinh giỏi của môn Tin học
của trường tôi nhận thấy một số ưu điểm của ngôn ngữ lập trình Free
Pascal so với ngôn ngữ lập trình Turbo Pascal.
Từ lí do trên, tôi xin trình bày sáng kiến kinh nghiệm “MỘT SỐ ƯU
ĐIỂM CỦA NGÔN NGỮ LẬP TRÌNH FREE PASCAL SO VỚI TURBO
PASCAL”
II. MỤC ĐÍCH CỦA ĐỀ TÀI
Trong chương trình tin học THPT do số lượng tiết học han chế (52
tiết) về kiến thức lập trình vì vậy khi giải quyết các bài toán có kiểu dữ lớn
thường rất khó khăn. Với ưu điểm là ngôn ngữ lập trình trên môi trường 32
bít (64 bít) ngôn ngữ lập trình Free pascal cố thể giải quyết một số bài toán
1
theo cách lập trình thông thường của học sinh mà Turbo Pascal không giải
quyết được.
III. NHIỆM VỤ VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Viết sáng kiến kinh nghiệm thường xuyên liên tục cũng là nhiệm vụ
chính trị của mỗi giáo viên, nhưng cần phải lựa chọn phương pháp nghiên
cứu thích hợp với nhà trường trung học phổ thông. Sáng kiến kinh nghiệm
đang trình bày của tôi dựa theo các luận cứ khoa học hướng đối tượng, cụ
thể: thuyết trình, quan sát, điều tra cơ bản, phân tích kết quả thực nghiệm
sư phạm,v.v… phù hợp với bài học và môn học .
2
B. PHẦN NỘI DUNG
I. Cơ sở lí luận:
Khi học sinh học chương trình Tin học lớp 11. Các em được tiếp cận
các khái niệm về lập trình và ngôn ngữ lập trình. Và có thể sử dụng một
ngôn ngữ lập trình cụ thể để giải quyết các bài toán. Nhưng do mục đích,
ưu cầu của chương trình tin học 11 không yêu các em giải quyết các bài
toán phức tạp như các toán trong chương trình thi học sinh giỏi vì vậy khi
gặp các bài toán cần phải xử lý số lớn các em thường không xử lý được hết
các Test mà đề bài yêu cầu ví dụ như trong một số bài toán sau:
II. Nội dung và giải pháp thực hiện:
Trong SKKN tôi đưa ra một số bài toán với kiểu dữ liệu lớn mà khi
học sinh THPT giải quyết trên ngôn ngữ lập trình Turbo Pascal đường gặp
những khó khăn nhưng khi giải quyết trên Free Pascal thì vấn đề được giải
quyết khá đơn giản.
Bài toán 1: Trung bình cộng (đề thi học sinh giỏi năm 2008-2009)
Cho dãy gồm N số nguyên a1, a2,..., aN và số nguyên K.
Yêu cầu: Cho biết trong dãy số đã cho có tồn tại hay không một cặp số mà
trung bình cộng của chúng là K.
Dữ liệu: Vào file văn bản BAI2.INP:
- Dòng đầu ghi 2 số N và K.
- Dòng tiếp theo lần lượt ghi N số a1, a2,..., aN.
Kêtq quả: Ra file văn bản BAI2.OUT:
- Số 1 nếu tồn tại một cặp số thoả mãn yêu cầu bài toán.
- Số 0 nếu không tồn tại cặp số nào thoả mãn yêu cầu bài
toán.
Giới hạn: 0 64K nên TP báo lỗi "structure too large" (kiểu cấu
trúc quá lớn) là đúng rồi. Vậy bây giờ thay vì khai báo mảng A là 1 mảng,
ta sẽ khai báo A thành rất nhiều mảng nhỏ hơn. Khi đó nếu TP không báo
lỗi "structure too large" thì cũng báo lỗi là "too many varibles". Đó là do
hạn chế thứ 2 của TP: tổng kích thước các biến toàn cục (global) cũng ≤
64KB . Ta có chia A thành bao nhiêu mảng con thì TP vẫn bắt tổng kích
5
thước của chúng ≤ 64KB. (Tuy nhiên để giải quyết bài toán 1 trên ngôn
ngữ lập trùng Turbo Pascal ta có nhiều cách để xử lý. Ví dụ như: Vi
0- Xem thêm -