Bài 19: Thư viện chương trình con chuẩn


1. CRT

- Thư viện CRT chứa các thủ tục liên quan đến việc quản lí và khai thác màn hình và bàn phím.

- Một số thủ tục tiện ích:

+ Thủ tục Clrscr: xóa màn hình

+ Thủ tục Textcolor(c): Đặt màu cho chữ trên màn hình, trong đó c là hằng hoặc biến có giá trị nguyên không âm để xác định màu

+ Thủ tục Textbackground(c): Đặt màu cho nền của màn hình

+ Thủ tục Gotoxy(x,y): Đưa con trỏ đến vị trí cột x dòng y của màn hình văn bản

2. GRAPH

Thư viện Graph chứa các chương trình con phục vụ khai thác khả năng đồ hoạ của máy tính ở mức độ thông dụng như vẽ điểm, đường, tô màu…

a. Các thiết bị và chương trình hỗ trợ đồ họa

- Màn hình có 2 chế độ làm việc:

+ Chế độ văn bản: đơn vị cơ sở là kí tự trong ASCII  (là chế độ mặc định của TP)

+ Chế độ đồ họa: đơn vị cơ sở là điểm ảnh (pixel) mỗi điểm ảnh được xác định bởi tọa độ (x,y)

- Bảng mạch điều khiển màn hình là thiết bị đảm bảo tương tác giữa bộ xử lí và màn hình để thể hiện các chế độ phân giải và màu sắc.

- Turbo Pascal cung cấp các chương trình điều khiển (có phần mở rộng là BGI) tương ứng với các loại card đồ họa. Khi khởi động chế độ đồ họa cần chỉ ra đường dẫn đến chương trình này.

- Tọa độ màn hình đồ họa được đánh số từ 0. Cột được đánh số từ phải sang trái, dòng được đánh số từ trên xuống dưới.

- Giá trị lớn nhất của tọa độ dòng và tọa độ cột được gọi là độ phân giải của màn hình.

- Để thực hiện được chức năng đồ họa cần sử dụng các thủ tục hàm trong thư viện Graph.

b. Khởi tạo chế độ đồ họa

- Thủ tục khởi tạo: Initgraph(dr,md:integer; pth:string);

Trong đó:

dr: là số hiệu của trình điều khiển BGI.

md: là số hiệu của độ phân giải.

pth: là đường dẫn đến các tệp BGI.

- Kết thúc chế độ đồ họa trở về chế độ văn bản: Closegraph;

c. Các thủ tục vẽ điểm, đoạn thẳng

- Đặt màu cho nét vẽ: Setcolor(color: word);

- Vẽ điểm: Putpixel(x,y:Integer; color: word);

- Các thủ tục vẽ đoạn thẳng:

+ Line(x1,y1,x2,y2): Integer

+ LineTo(x,y:integer);

+ LineRel(dx,dy: integer);

d. Các thủ tục và hàm liên quan đến vị trí con trỏ

- Hàm xác định độ phân giải màn hình:

+ GetMaxX: Integer;

+ GetMaxY: Integer;

- Thủ tục chuyển con trỏ tới tọa độ (x, y):

+ MoveTo(x, y:Integer);

e. Một số thủ tục vẽ hình đơn giản

- Vẽ đường tròn tâm (x,y) bán kính r: Circle(x, y:integer; r: word);

- Vẽ cung của Elip tâm (x,y), bán kính trục Xr, Yr, từ góc khởi đầu StAngle đến góc kết thúc EndAngle: Ellipse(x,y:integer;stAngle, EndAngle,Xr, Yr: word);

- Vẽ hình chữ nhật: Rectangle(x1,y1,x2,y2:Integer);

3. Một số thư viện khác

- System: Chứa các hàm sơ cấp và các thủ tục vào/ra mà các chương trình đều dùng tới.(nên không cần khai báo tên thư viện)

- Dos: Chứa các thủ tục cho phép thực hiện trực tiếp các lệnh như tạo thư mục, thiết lập ngày giờ hệ thống,…

- Printer: Cung cấp các thủ tục làm việc với máy in.

4. Sử dụng thư viện

Muốn sử dụng các thủ tục và hàm chuẩn của (một số) thư viện nào đó (trừ System) phải dùng lệnh khai báo: Uses unit1, unit2, …,unitN;

Bài 1

Thực hiện vẽ đoạn thẳng nối điểm A(60,40) và điểm B(80,75) bằng nhiều cách khác nhau?

Gợi ý trả lời:

Thực hiện một trong các cách sau đây:

- Cách 1: Line(60,40,80,75);

- Cách 2:

+ Moveto(60,40);

+ Lineto(80,75);

- Cách 3:

+ Moveto(60,40);

+ LineRel(20,35); 

Bài 2

Cho biết kết quả của chương trình sau?

Uses graph;

Var drive,mode:integer;

BEGIN

  Drive:=0;

  Initgraph(drive, mode, ‘C:\Tp\BGI’);

  Setcolor(3);

  Circle(112,40,30);

  Setcolor(14);

  Ellipse(50,90,0,360,30,20);

  Setcolor(5);

  Rectangle(151,150,201,200);

Readln;

CloseGraph;

END.

Gợi ý trả lời:

Kết quả của chương trình trên:

1 đường tròn màu xanh lơ

1 hình elip màu vàng

1 hình vuông màu tím

Bài 3

Cho biết kết quả của chương trình sau?

Uses graph;

Var drive,mode:integer;

BEGIN

  Setcolor(3);

  Circle(12,40,30);

  CloseGraph;

END.

Gợi ý trả lời:

Chương trình bị lỗi vì chưa khởi tạo chế độ đồ hoạ:

Drive:=0;

Initgraph(drive, mode, 'c:\Tp\BGI’);

1. CRT

- Thư viện CRT chứa các thủ tục liên quan đến việc quản lí và khai thác màn hình và bàn phím.

- Một số thủ tục tiện ích:

+ Thủ tục Clrscr: xóa màn hình

+ Thủ tục Textcolor(c): Đặt màu cho chữ trên màn hình, trong đó c là hằng hoặc biến có giá trị nguyên không âm để xác định màu

+ Thủ tục Textbackground(c): Đặt màu cho nền của màn hình

+ Thủ tục Gotoxy(x,y): Đưa con trỏ đến vị trí cột x dòng y của màn hình văn bản

2. GRAPH

Thư viện Graph chứa các chương trình con phục vụ khai thác khả năng đồ hoạ của máy tính ở mức độ thông dụng như vẽ điểm, đường, tô màu…

a. Các thiết bị và chương trình hỗ trợ đồ họa

- Màn hình có 2 chế độ làm việc:

+ Chế độ văn bản: đơn vị cơ sở là kí tự trong ASCII  (là chế độ mặc định của TP)

+ Chế độ đồ họa: đơn vị cơ sở là điểm ảnh (pixel) mỗi điểm ảnh được xác định bởi tọa độ (x,y)

- Bảng mạch điều khiển màn hình là thiết bị đảm bảo tương tác giữa bộ xử lí và màn hình để thể hiện các chế độ phân giải và màu sắc.

- Turbo Pascal cung cấp các chương trình điều khiển (có phần mở rộng là BGI) tương ứng với các loại card đồ họa. Khi khởi động chế độ đồ họa cần chỉ ra đường dẫn đến chương trình này.

- Tọa độ màn hình đồ họa được đánh số từ 0. Cột được đánh số từ phải sang trái, dòng được đánh số từ trên xuống dưới.

- Giá trị lớn nhất của tọa độ dòng và tọa độ cột được gọi là độ phân giải của màn hình.

- Để thực hiện được chức năng đồ họa cần sử dụng các thủ tục hàm trong thư viện Graph.

b. Khởi tạo chế độ đồ họa

- Thủ tục khởi tạo: Initgraph(dr,md:integer; pth:string);

Trong đó:

dr: là số hiệu của trình điều khiển BGI.

md: là số hiệu của độ phân giải.

pth: là đường dẫn đến các tệp BGI.

- Kết thúc chế độ đồ họa trở về chế độ văn bản: Closegraph;

c. Các thủ tục vẽ điểm, đoạn thẳng

- Đặt màu cho nét vẽ: Setcolor(color: word);

- Vẽ điểm: Putpixel(x,y:Integer; color: word);

- Các thủ tục vẽ đoạn thẳng:

+ Line(x1,y1,x2,y2): Integer

+ LineTo(x,y:integer);

+ LineRel(dx,dy: integer);

d. Các thủ tục và hàm liên quan đến vị trí con trỏ

- Hàm xác định độ phân giải màn hình:

+ GetMaxX: Integer;

+ GetMaxY: Integer;

- Thủ tục chuyển con trỏ tới tọa độ (x, y):

+ MoveTo(x, y:Integer);

e. Một số thủ tục vẽ hình đơn giản

- Vẽ đường tròn tâm (x,y) bán kính r: Circle(x, y:integer; r: word);

- Vẽ cung của Elip tâm (x,y), bán kính trục Xr, Yr, từ góc khởi đầu StAngle đến góc kết thúc EndAngle: Ellipse(x,y:integer;stAngle, EndAngle,Xr, Yr: word);

- Vẽ hình chữ nhật: Rectangle(x1,y1,x2,y2:Integer);

3. Một số thư viện khác

- System: Chứa các hàm sơ cấp và các thủ tục vào/ra mà các chương trình đều dùng tới.(nên không cần khai báo tên thư viện)

- Dos: Chứa các thủ tục cho phép thực hiện trực tiếp các lệnh như tạo thư mục, thiết lập ngày giờ hệ thống,…

- Printer: Cung cấp các thủ tục làm việc với máy in.

4. Sử dụng thư viện

Muốn sử dụng các thủ tục và hàm chuẩn của (một số) thư viện nào đó (trừ System) phải dùng lệnh khai báo: Uses unit1, unit2, …,unitN;

Bài 1

Thực hiện vẽ đoạn thẳng nối điểm A(60,40) và điểm B(80,75) bằng nhiều cách khác nhau?

Gợi ý trả lời:

Thực hiện một trong các cách sau đây:

- Cách 1: Line(60,40,80,75);

- Cách 2:

+ Moveto(60,40);

+ Lineto(80,75);

- Cách 3:

+ Moveto(60,40);

+ LineRel(20,35); 

Bài 2

Cho biết kết quả của chương trình sau?

Uses graph;

Var drive,mode:integer;

BEGIN

  Drive:=0;

  Initgraph(drive, mode, ‘C:\Tp\BGI’);

  Setcolor(3);

  Circle(112,40,30);

  Setcolor(14);

  Ellipse(50,90,0,360,30,20);

  Setcolor(5);

  Rectangle(151,150,201,200);

Readln;

CloseGraph;

END.

Gợi ý trả lời:

Kết quả của chương trình trên:

1 đường tròn màu xanh lơ

1 hình elip màu vàng

1 hình vuông màu tím

Bài 3

Cho biết kết quả của chương trình sau?

Uses graph;

Var drive,mode:integer;

BEGIN

  Setcolor(3);

  Circle(12,40,30);

  CloseGraph;

END.

Gợi ý trả lời:

Chương trình bị lỗi vì chưa khởi tạo chế độ đồ hoạ:

Drive:=0;

Initgraph(drive, mode, 'c:\Tp\BGI’);

Bài học tiếp theo

Bài học bổ sung