Bài tập và thực hành 8 trang 115 SGK Tin học 11

Chương trình sau đây 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.

Lời giải

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 đồ họa của Pascal.

2. Nội dung

a) Chương trình sau đây 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ỳ. Chạy thử chương trình và quan sát kết quả trên màn hình.

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.

b) Chương trình dưới đây minh họa việc sử dụng các thủ tục vẽ hình đơn giản. Hãy chạy chương trình rồi thay đổi một số tham số như màu vẽ, tọa độ và quan sát kết quả trên màn hình.

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.