Giới Thiệu Trình Biên Dịch FREE PASCAL

21 663 0
Giới Thiệu Trình Biên Dịch FREE 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

GIỚI THIỆU TRÌNH BIÊN DỊCH FREE PASCAL GV: Ngô Trung Tưởng Trường THPT chuyên Lê Hồng Phong I Bộ nhớ rộng rãi - - Free Pascal (FP) môi trường lập trình 32 bit: Dùng số 32 bit số hoá 232 = 4G giá trị, nên biến FP có kích thước 4GB Các thầy cô ý: 4GB=4×1024MB Trong máy tính phòng máy thường dùng có chừng 512M RAM (Turbo Pascal cho phép khai báo biến 64 KB) FP môi trường lập trình chạy HĐH 32 bit (Windows, Linux, OS/2… DOS phiên DOS 32 bit mở rộng) FP tương thích hoàn toàn với TP Đây điều thú vị IDE FP giống hệt TP (tất nhiên có nhiều chức tiên tiến hơn, bạn làm với TP làm FP) => Tôi nghĩ đủ để thay TP FP II Kiểu liệu - Tất kiểu liệu có TP có FP Ngoài FP có thêm số kiểu liệu a Kiểu số nguyên lớn - Với lợi 32 bit (gấp đôi TP), FP cung cấp kiểu số nguyên 64 bit Với Int64 bạn tìm số nguyên tố 18 chữ số (cỡ tỉ tỉ) hay tính giai thừa 20 - Hai kiểu số nguyên lớn int64 qword: + int64 kích thước byte, có giá trị từ: -2 63 … 263 -1 + qword kích thước byte, có giá trị từ: … 264-1 263 = 9223372036854775808 264 = II Kiểu liệu b Kiểu xâu lớn: - Khi lập trình, nhiều lần gặp vấn đề với xâu tối đa 255 kí tự TP (chẳng hạn toán xâu đối xứng, toán đếm từ…) Ta giải vấn đề mảng kí tự (array of char) ta lại dùng phép toán xâu mạnh Pascal Không có cải tiến kiểu nguyên, kiểu string FP tuyệt vời String FP không hạn chế 255 kí tự TP mà có kích thước tối đa tỉ kí tự 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 - Tên kiểu xâu lớn là: ansistring III Viết hàm thuận lợi - FP có nhiều cải tiến cách viết hàm Để so sánh, xem ví dụ hàm tính giai thừa số n Trong Turbo Pascal Trong Free Pascal function gt(n:integer):integer; var i,tg: integer; begin tg:=1; for i:=1 to n tg:=tg*i; gt:=tg; end; function gt(n: integer): int64; var i: integer; begin gt := 1; for i := to n gt := gt * i; end; 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 (đệ qui) FP cho phép sử dụng tên hàm biến Khi tên hàm xuất biểu thức tính toán thân hàm mà không tạo lời gọi đệ quy III Viết hàm thuận lợi - 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 Bạn thấy tiện lợi cách viết viết hàm dạng “phát phần tử thoát” III Viết hàm thuận lợi - Ví dụ cách viết hàm TP FP cho toán tìm vị trí x mảng a có n phần tử Trong Turbo Pascal function Find(x: integer): integer; Var i : integer; begin for i := to n if a[i] = x then begin Find := i; exit; end; Find := 0; end; Trong Free Pascal function Find(x: integer): integer; Var i : integer; begin for i := to n if a[i]=x then exit(i); exit(0); end; IV Tính thời gian thực chương trình TP FP Trong TP dùng từ khoá absolute để xác định vị trí cố định nhớ Khai báo gọi địa tuyệt đối Chẳng hạn để đo thời gian chạy chương trình, người ta khai báo biến time kiểu longint địa 0:$46C, vị trí nơi máy tính lưu đếm đồng hồ Tần số cập nhật 18.2 lần/giây FP chạy môi trường 32 bit, khái niệm địa tuyệt đối Để đo thời gian chạy chương trình ta sử dụng hàm DecodeDateTime có sẵn thư viện DateUtils thêm thư viện SysUtils chứa mã thời gian VAR time : LongInt absolute 0:$46C; start, i, n : LongInt; BEGIN start := time; for i := to 100000000 n := i; write(’Runned in: ‘,(time-start)/18.2:0:3); readln; END USES sysutils,dateutils; VAR s,ss,i,n:longint; y,mon,d,h,m,s1,s2,ss1,ss2:word; BEGIN decodeDateTime(now,y,mon,d,h,m,s1,ss1); for i := to 1000000000 n := i; decodeDateTime(now,y,mon,d,h,m,s2,ss2); ss:=ss2-ss1; if ss

Ngày đăng: 25/05/2017, 07:46

Mục lục

  • GIỚI THIỆU TRÌNH BIÊN DỊCH FREE PASCAL

  • I. Bộ nhớ rộng rãi

  • III. Viết hàm thuận lợi

  • IV. Tính thời gian thực hiện chương trình giữa TP và FP

  • Một số định hướng trong dạy HSG môn tin học khi sử dụng FP

  • Giới thiệu 2 thuật toán tối ưu và rất hay gặp trong các bài thi tin học

  • Một số bài tập Bài tập 1:

  • Phân tích giải thuật bài tập 2

  • Tìm cách chia các TH để phân loại bài làm học sinh

  • Xin chân thành cám ơn các thầy cô!

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

Tài liệu liên quan