Sáng kiến kinh nghiệm một số ưu điểm của NGÔN NGỮ FREE PASCAL SO với TURBO PASCAL

20 397 0
Sáng kiến kinh nghiệm 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

kiểu xâu Unicode (WideString) Nếu bạn thích kiểu String cũ TP, bạn dùng kiểu ShortString Bây bạn viết chương trình giải xâu đối xứng, xâu chung với kiểu string FP hạn chế n cỡ 1000 cách dễ dàng Chúng ta tìm hiểu kĩ lợi kiểu xâu Free Pascal toán sau Bài toán 2: Xâu FIBONACI (Bài đề thi chọn đội tuyển HSG quốc gia năm học 2008 - 2009) Cho xâu khác rỗng SA, SB, SR, độ dài xâu SA SB không vượt 10, độ dài xâu SR không vượt 15 Dãy xâu F 0,F1, F2, , Fn xây dựng theo qui tắc sau: F0=SA, F1=SB, Fk+1=Fk-1+Fk; k=1,2, ,n-1; < n  35 Yêu cầu: Xác định số lần xuất SR FN Dữ liệu: Vào từ file văn BAI3.INP:  Dòng chứa số nguyên dương n  Ba dòng chứa xâu SA, SB, SR, xâu dòng 12 Kết quả: Đưa file văn BAI3.OUT chứa số lần xuất tìm Ví dụ: BAI3.INP BAI3.OUT A B BAB Khi giải toán Turbo pascal học sinh THPT gặp nhiều khó khăn kiểu liệu xâu Turbo Pascal có tối đa 255 kí tự với yêu cầu toán xâu Fn có độ dài lớn Nhưng đem toán giải Free Pascal giải đơn giản với kiểu liệu Ansistring (kiểu liệu xâu lớn) uses crt; var sa,sb,sr,tam: string; 13 fi,fo:text; st: array[0 35] of ansistring; kq:ansistring; i,n:longint; dem:int64; procedure docdl; begin assign(fi,'bai3.in6'); reset(fi); readln(fi,n); readln(fi,SA); readln(fi,SB); readln(fi,SR); close(fi); end; 14 procedure ghidl(kqd:int64); Begin assign(fo,'Bai3.ou6'); rewrite(fo); writeln(fo, kqd); close(fo); end; procedure xuly; begin st[0]:=sa; st[1]:=sb; for i:=2 to n st[i]:=st[i-1]+st[i-2]; kq:=st[n]; for i:=1 to length(st[n])-length(sr) begin tam:=''; 15 if kq[i]=sr[1] then begin tam:=copy(kq,i,length(sr)) ; if tam=sr then dem:=dem+1; end; end; ghidl(dem); end; begin docdl; xuly; end Viết hàm thuận lợi 16 FP có nhiều cải tiến cách viết hàm Để so sánh, xem xét số ví dụ Trong TP, viết hàm tính giai thừa sau: function gt(n:integer):integer; var i,tg:integer; begin tg:=1; for i:=1 to n tg:=tg*i; gt:=tg; end; Tại ta lại phải thêm biến tg để lưu trữ kết trung gian? Đó TP với tên hàm ta sử dụng lệnh gán trị Nếu đưa tên hàm vào biểu thức thực lời gọi hàm Điều FP làm cho free cách cho phép sử dụng tên hàm nhƣ biến (giống Object Pascal dùng biến Result) Khi tên hàm xuất cách biểu thức tính toán thân hàm mà không tạo lời gọi đệ quy Hàm giai thừa FP viết tiết kiệm biến sau: function Gt(n: integer): int64; begin 17 gt := 1; for n := n downto gt := gt * n; end; Vậy ta muốn gọi đệ quy sao? Thì việc thêm cặp dấu () truyền tham số cần thiết FP biết ta muốn gọi đệ quy ta có thêm cặp () Hàm giai thừa viết kiểu đệ quy 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 ta thấy điều tiện lợi FP: dùng lệnh exit để trả lại kết cho hàm (giống C Object Pascal sử dụng lệnh return) Bạn thấy tiện lợi cách viết viết hàm dạng " phát đ c ph n t đ u tiên r i thoát" Chẳng hạn hàm tìm vị trí phần tử x mảng a có n phần tử Viết TP ta phải viết sau: function Find(x: integer): integer; Var i : integer; begin for i := to n if a[i] = x then begin 18 Find := i; exit; end; Find := 0; end; Hàm viết FP ngắn nhiều: Function Find(x: integer): integer; Var i : integer; begin for i := to n if a[i]=x then exit(i); exit(0); end; 19 III PHẦN KẾT LUẬN Tin học nói chung đóng vai trò quan trọng xã hội đại, tin học làm thay đổi nhận thức người ứng dụng hầu hết hoạt động xã hội loài người Trong đó, đại diện máy tính điện tử khoa học xử lí liệu máy tính điện tử Để tin học ngày phát triển mạnh việc tạo phần mềm máy tính tốt để xử lý công việc giúp người công việc giải trí điều quan trọng, để làm điều cần phải có lập trình viên tài giỏi để thực hiện, Việc dạy cho học sinh lập trình để tự viết chương trình chạy máy tính làm cho học sinh yêu thích môn học ham học hỏi, tìm tòi, sáng tạo Đề tài mang tính thực tiển cụ thể là:Trong kỳ thi học sinh giỏi việc học sinh hiểu rỏ ưu điểm ngôn ngữ lập trình giúp em giải tốt toán 20 ... văn BAI3.OUT chứa số lần xuất tìm Ví dụ: BAI3.INP BAI3.OUT A B BAB Khi giải toán Turbo pascal học sinh THPT gặp nhiều khó khăn kiểu liệu xâu Turbo Pascal có tối đa 255 kí tự với yêu cầu toán xâu... sinh yêu thích môn học ham học hỏi, tìm tòi, sáng tạo Đề tài mang tính thực tiển cụ thể là:Trong kỳ thi học sinh giỏi việc học sinh hiểu rỏ ưu điểm ngôn ngữ lập trình giúp em giải tốt toán 20 ... để lưu trữ kết trung gian? Đó TP với tên hàm ta sử dụng lệnh gán trị Nếu đưa tên hàm vào biểu thức thực lời gọi hàm Điều FP làm cho free cách cho phép sử dụng tên hàm nhƣ biến (giống Object Pascal

Ngày đăng: 29/12/2016, 19:23

Từ khóa liên quan

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

Tài liệu liên quan