SKKN một số ưu điểm của NGÔN NGỮ FREE PASCAL SO với TURBO PASCAL

20 542 0
SKKN một số ưu điểm của NGÔN NGỮ FREE PASCAL SO với TURBO PASCAL

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

SÁNG KIẾN KINH NGHIỆM ĐỀ TÀI: "MỘT SỐ ƯU ĐIỂM CỦA NGÔN NGỮ FREE PASCAL SO VỚI TURBO PASCAL" A PHẦN MỞ ĐẦU I LÝ DO CHỌN ĐỀ TÀI Ngày nay, với phát triển tin học Việt Nam nói chung giới diễn trình tin học hoá nói riêng đặc biệt nhiều lĩnh vực hoạt động xã hội loài người đem lại nhiều hiệu to lớn Sự phát triển mạnh mẽ “ vũ bão ” tin học làm cho xã hội có nhiều nhận thức cách tổ chức hoạt động Nhiều quốc gia giới ý thức rõ tầm quan trọng tin học có đầu tư lớn cho lĩnh vực này, đặc biệt giáo dục nâng cao dân trí tin học đà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, hi vọng sớm hoà nhập với khu vực giới Nước ta nhận thấy tầm quan trọng ngành Tin học đưa môn học vào nhà trường phổ thông môn khoa học khác năm học 2006-2007 Và tổ chức thi học sinh giỏi môn Tin học cấp tỉnh, cấp quốc gia Hiện tỉnh Thanh Hóa kỳ thi học sinh giỏi cấp tỉnh thường cho học sinh lập trình ngôn ngữ lập trình Turbo Pascal Free Pascal Trong trình ôn luyện đội tuyển học sinh giỏi môn Tin học trường nhận thấy số ưu điểm ngôn ngữ lập trình Free Pascal so với ngôn ngữ lập trình Turbo Pascal Từ lí trên, 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 số lượng tiết học han chế (52 tiết) kiến thức lập trình giải toán có kiểu lớn thường khó khăn Với ưu điểm ngôn ngữ lập trình môi trường 32 bít (64 bít) ngôn ngữ lập trình Free pascal cố thể giải số toán theo cách lập trình thông thường học sinh mà Turbo Pascal không giải 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 nhiệm vụ trị giáo viên, 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 trình bày dựa theo luận khoa học hướng đối tượng, cụ thể: thuyết trình, quan sát, điều tra bản, phân tích kết thực nghiệm sư phạm,v.v… phù hợp với học môn học 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 tiếp cận khái niệm lập trình ngôn ngữ lập trình Và sử dụng ngôn ngữ lập trình cụ thể để giải toán Nhưng mục đích, ưu cầu chương trình tin học 11 không yêu em giải toán phức tạp toán chương trình thi học sinh giỏi gặp toán cần phải xử lý số lớn em thường không xử lý hết Test mà đề yêu cầu ví dụ số toán sau: II Nội dung giải pháp thực hiện: Trong SKKN đưa số toán với kiểu liệu lớn mà học sinh THPT giải ngôn ngữ lập trình Turbo Pascal đường gặp khó khăn giải Free Pascal vấn đề giải đơ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 số nguyên K Yêu cầu: Cho biết dãy số cho có tồn hay không cặp số mà trung bình cộng chúng K Dữ liệu: Vào file văn BAI2.INP: - Dòng đầu ghi số N K - Dòng ghi N số a1, a2, , aN Kêtq quả: Ra file văn BAI2.OUT: - Số tồn cặp số thoả mãn yêu cầu toán - Số không tồn cặp số thoả mãn yêu cầu toán Giới hạn: 0[...]... Kiểu số nguyên lớn Có rất nhiều bài toán cần chúng ta phải tính toán với những số nguyên lớn Chẳng hạn như tính giai thừa, tính số Fibonacci hay tìm các số nguyên tố lớn (chẳng hạn tìm các số nguyên tố lớn để dùng trong thuật toán mã hoá RSA) Với kiểu Integer của TP ta tìm được số nguyên tố lớn nhất có 5 chữ số Với kiểu LongInt thì được 9 chữ số Muốn tìm được các số to hơn thì phải dùng kiểu số thực... hay extended) Nhưng có điều bất tiện là các kiểu số thực thì không dùng các phép toán div, mod được nên cài đặt rất khó khăn Ngoài bài toán về tìm số nguyên tố lớn, với những bài toán khác như tính giai thừa, tính số Fibonacci,… kiểu integer của TP rất hạn chế Một hạn chế thứ hai với kiểu integer của TP là hay gặp các lỗi tính toán số học Lỗi tính toán số học xảy ra khi chúng ta tính biểu thức có các... LongInt hay Real) là OK Với FP thì những hạn chế đó không thành vấn đề Với lợi thế 32 bit (gấp đôi TP), FP cung cấp kiểu Int64, mới nghe chắc bạn cũng đoán được đó là kiểu số nguyên 64 bit Với Int64 các bạn có thể tìm được các số nguyên tố 18 chữ số (cỡ tỉ tỉ) hay tính được giai thừa của 20 5 Kiểu string lớn Khi lập trình, chúng ta rất nhiều lần gặp vấn đề với các xâu tối đa 255 kí tự của TP (chẳng hạn bài... 1 < n ≤ 35 Yêu cầu: Xác định số lần xuất hiện của SR trong FN Dữ liệu: Vào từ file văn bản BAI3.INP: • Dòng đầu tiên chứa số nguyên dương n • Ba dòng tiếp theo chứa các xâu SA, SB, SR, mỗi xâu trên một dòng 12 Kết quả: Đưa ra file văn bản BAI3.OUT chứa số lần xuất hiện tìm được Ví dụ: BAI3.INP BAI3.OUT 6 4 A B BAB Khi giải quyết bài toán nay trong Turbo pascal thì đối với học sinh THPT sẽ gặp rất nhiều... toán nay trong Turbo pascal thì đối với học sinh THPT sẽ gặp rất nhiều khó khăn vì kiểu dữ liệu xâu trong Turbo Pascal chỉ có tối đa 255 kí tự với yêu cầu của bài toán trên thì xâu Fn sẽ có độ dài rất lớn Nhưng khi đem bài toán này giải quyết trên Free Pascal thì có thể giải quyết khá đơn giản với kiểu dữ liệu Ansistring (kiểu dữ liệu xâu lớn) uses crt; var sa,sb,sr,tam: string; fi,fo:text; 13 st:... mạnh của Pascal Không chỉ có cải tiến về kiểu nguyên, kiểu string trong FP cũng rất tuyệt vời String trong FP không còn hạn chế 255 kí tự của TP nữa mà có kích thước tối đa là 2 tỉ kí tự Hơn nữa FP còn hỗ trợ kiểu xâu Unicode (WideString) Nếu bạn vẫn thích kiểu String cũ của TP, bạn có thể dùng kiểu ShortString Bây giờ bạn có thể viết chương trình giải bài xâu đối xứng, xâu con chung với kiểu string của. .. lợi hơn FP có rất nhiều cải tiến trong cách viết các hàm Để so sánh, chúng ta sẽ xem xét một số ví dụ Trong TP, chúng ta viết hàm tính giai thừa như sau: 16 function gt(n:integer):integer; var i,tg:integer; begin tg:=1; for i:=1 to n do tg:=tg*i; gt:=tg; end; Tại sao ta lại phải thêm một biến tg để lưu trữ kết quả trung gian? Đó là do trong TP với tên hàm ta chỉ được sử dụng duy nhất lệnh gán trị Nếu... () và truyền tham số cần thiết FP sẽ biết ta muốn gọi đệ quy khi ta có thêm cặp () Hàm giai thừa viết kiểu đệ quy như sau: function Gt(n: integer): int64; begin if n=0 then exit(1) else exit(n*gt(n-1)); end; Trong cách viết này ta còn thấy một điều tiện lợi của FP: dùng lệnh exit để trả lại kết quả cho hàm (giống như C và Object Pascal sử dụng lệnh return) Bạn sẽ thấy sự tiện lợi của cách viết này... trình chạy trên máy tính làm cho học sinh yêu thích môn học và ham học hỏi, tìm tòi, sáng tạo Đề tài này mang tính thực tiển cụ thể là:Trong các kỳ thi học sinh giỏi việc học sinh hiểu rỏ các ưu điểm của các ngôn ngữ lập trình giúp các em giải quyết tốt hơn các bài toán 20 ... giải bài xâu đối xứng, xâu con chung với kiểu string của trên FP và hạn chế n cỡ 1000 một cách rất dễ dàng Chúng ta sẽ tìm hiểu kĩ hơn về lợi thế kiểu xâu trong Free Pascal bài toán sau Bài toán 2: Xâu FIBONACI (Bài 3 đề thi chọn đội tuyển HSG quốc gia năm học 2008 - 2009) Cho 3 xâu khác rỗng SA, SB, SR, trong đó độ dài của các xâu SA và SB không vượt quá 10, độ dài xâu SR không vượt quá 15 Dãy xâu F 0,F1,

Ngày đăng: 31/10/2016, 23:44

Từ khóa liên quan

Mục lục

  • Bài toán 1: Trung bình cộng (đề thi học sinh giỏi năm 2008-2009)

Tài liệu cùng người dùng

Tài liệu liên quan