Bài tập và thực hành 8


1. Mục đích, yêu cầu

Giới thiệu một số chương trình để học sinh thấy được khả năng đồ hoạ của Pascal.

2. Các kiến thức cần nắm

- Chương trình con đóng vai trò quan trọng trong lập trình, đặc biệt trong lập trình có cấu trúc;

- Dùng chương trình con sẽ thuận lợi cho việc tổ chức, viết, kiểm tra chương rình và sử dụng lại;

- Chương trình con có phần đầu, phần khai báo và phần thân;

- Chương trình con có thể có tham số hình thức khi khai báo và được thay bằng tham số thực sự khi gọi. Các tham số hình thức và thực sự phải tương ứng về thứ tự và kiểu dữ liệu.

- Chương trình con được gọi bằng tên của nó;

- Biến được khai báo trong chương trình con là biến cục bộ;

- Thư viện cung cấp những chương trình con chuẩn mở rộng khả năng ứng dụng.

Bài tập 1

Cho chương trình sau:

uses crt, graph;

var stop: boolean;

function Detectlnit(path:string): integer;

var drive, mode: integer;

begin

drive:= 0;

EnitGraph(drive, mode, path);

end;

begin

if Detectlnit('C:\TP\BGI')<>0 then

begin

Write('Loi do hoa ! Nhan phim Enter de ket thuc')

readln;

end

else

begin

Randomize;

MoveTo(getmaxx div 2, Getmaxy div 2); 

stop:= false; while not (stop) do

begin

SetColor(Random(GetMaxColor)) ;

{Thiet lap mau mot cach ngau nhien}

LineTo(Random(getmaxx),Random(getmaxy));

Delay(200); {tam dung} stop :=keypressed;

end;

end;

CloseGraph

End.

Trả lời các câu hỏi dưới đây:

- Chạy thử chương trình và quan sát kết quả trên màn hình.

- Hàm Detectinit có chức năng gì?

- Thủ tục Moveto(getmaxx div 2, getmaxy div 2) có chức năng gì?

- Chương trình này thực hiện công việc gì?

Gợi ý trả lời:

- Hàm Detectinit có chức năng: Cho giá trị khác không nếu có lỗi khởi động đồ họa.

- Thủ tục Moveto(getmaxx div 2, getmaxy div 2) có chức năng: Chuyển con trỏ đồ họa đến vị trí tâm của màn hình.

- Chương trình trên vẽ các đường gấp khúc ngẫu nhiên nhờ thủ tục Lineto, mỗi đoạn có một màu ngẫu nhiên. Vị trí bắt đầu vẽ là tâm của màn hình. Kết thúc việc vẽ bằng cách nhấn một phím bất kì. 

Bài tập 2

Cho chương trình sau:

program graphDemo;

uses graph;

var 

gd, gm: integer;

xm, ym, xmaxD4, ymaxD4: Word;

begin

gd:=detect;

Initgraph(gd, gm, 'C:\TP\BGI');

xm: =GetmaxX div 2 , ym:= GetmaxY div 2);

{ve hinh chu nhat voi net ve mau vang}

SetColor(yellow);

Rectangle(10,10, xm, ym);

readln;

{Ve duong vong tron mau xanh la cay,tam(450; 100) Dan kinh 50}

Setcolor(LightGreen);

Circle(450, 100, 50);

readln;

{ve ellip mau do}

Sitrolor (red) ;

Elipse (100, 200, 0, 360, 50, 120);

readln; 

CloseGraph

end.

Trả lời câu hỏi dưới đây:

Chương trình này thực hiện công việc gì?

Gợi ý trả lời:

Chương trình này thực hiện các công việc: 

- Vẽ hình chữ nhật với nét vẽ màu vàng.

- Vẽ đường tròn màu xanh lá cây, tam 450, 100 và bán kính 50.  

1. Mục đích, yêu cầu

Giới thiệu một số chương trình để học sinh thấy được khả năng đồ hoạ của Pascal.

2. Các kiến thức cần nắm

- Chương trình con đóng vai trò quan trọng trong lập trình, đặc biệt trong lập trình có cấu trúc;

- Dùng chương trình con sẽ thuận lợi cho việc tổ chức, viết, kiểm tra chương rình và sử dụng lại;

- Chương trình con có phần đầu, phần khai báo và phần thân;

- Chương trình con có thể có tham số hình thức khi khai báo và được thay bằng tham số thực sự khi gọi. Các tham số hình thức và thực sự phải tương ứng về thứ tự và kiểu dữ liệu.

- Chương trình con được gọi bằng tên của nó;

- Biến được khai báo trong chương trình con là biến cục bộ;

- Thư viện cung cấp những chương trình con chuẩn mở rộng khả năng ứng dụng.

Bài tập 1

Cho chương trình sau:

uses crt, graph;

var stop: boolean;

function Detectlnit(path:string): integer;

var drive, mode: integer;

begin

drive:= 0;

EnitGraph(drive, mode, path);

end;

begin

if Detectlnit('C:\TP\BGI')<>0 then

begin

Write('Loi do hoa ! Nhan phim Enter de ket thuc')

readln;

end

else

begin

Randomize;

MoveTo(getmaxx div 2, Getmaxy div 2); 

stop:= false; while not (stop) do

begin

SetColor(Random(GetMaxColor)) ;

{Thiet lap mau mot cach ngau nhien}

LineTo(Random(getmaxx),Random(getmaxy));

Delay(200); {tam dung} stop :=keypressed;

end;

end;

CloseGraph

End.

Trả lời các câu hỏi dưới đây:

- Chạy thử chương trình và quan sát kết quả trên màn hình.

- Hàm Detectinit có chức năng gì?

- Thủ tục Moveto(getmaxx div 2, getmaxy div 2) có chức năng gì?

- Chương trình này thực hiện công việc gì?

Gợi ý trả lời:

- Hàm Detectinit có chức năng: Cho giá trị khác không nếu có lỗi khởi động đồ họa.

- Thủ tục Moveto(getmaxx div 2, getmaxy div 2) có chức năng: Chuyển con trỏ đồ họa đến vị trí tâm của màn hình.

- Chương trình trên vẽ các đường gấp khúc ngẫu nhiên nhờ thủ tục Lineto, mỗi đoạn có một màu ngẫu nhiên. Vị trí bắt đầu vẽ là tâm của màn hình. Kết thúc việc vẽ bằng cách nhấn một phím bất kì. 

Bài tập 2

Cho chương trình sau:

program graphDemo;

uses graph;

var 

gd, gm: integer;

xm, ym, xmaxD4, ymaxD4: Word;

begin

gd:=detect;

Initgraph(gd, gm, 'C:\TP\BGI');

xm: =GetmaxX div 2 , ym:= GetmaxY div 2);

{ve hinh chu nhat voi net ve mau vang}

SetColor(yellow);

Rectangle(10,10, xm, ym);

readln;

{Ve duong vong tron mau xanh la cay,tam(450; 100) Dan kinh 50}

Setcolor(LightGreen);

Circle(450, 100, 50);

readln;

{ve ellip mau do}

Sitrolor (red) ;

Elipse (100, 200, 0, 360, 50, 120);

readln; 

CloseGraph

end.

Trả lời câu hỏi dưới đây:

Chương trình này thực hiện công việc gì?

Gợi ý trả lời:

Chương trình này thực hiện các công việc: 

- Vẽ hình chữ nhật với nét vẽ màu vàng.

- Vẽ đường tròn màu xanh lá cây, tam 450, 100 và bán kính 50.  

Bài học tiếp theo

Bài học bổ sung