TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ******************** Bài tập và thực hành số 8 Giảng viên hướng dẫn: Thầy Trần Doãn Vinh. Sinh viên thực hiện: Nguyễn Thùy Linh - K56A CNTT Tiết: …………………………………………………………………………………… Lớp: …………………………………………………………………………………… Hà Nội 4 – 2008 Bài tập và thực hành 8 – Lớp 11 Nguyễn Thùy Linh – 56A CNTT A. Mục đích,yêu cầu: Tiếp tục củng cố cho học sinh những kinh nghiệm về chương trình con,thư viện chương trình con. Minh họa cho khả năng đồ họa của ngôn ngữ lập trình nói chung,Passcal nói riêng. Tổ chức những hoạt động trong phòng máy để học sinh có thể chủ động tìm hiểu cách sử dụng 1 số chương trình con chuẩn trong thư viện Graph của Passcal. B. Phương pháp- phương tiện: 1.Phương pháp: Kết hợp các phương pháp giảng dạy như thuyết trình,vấn đáp… 2.Phương tiện: Máy chiếu, máy tính, màn chiếu hoặc bảng. Sách giáo khoa Tin học 11. Vở ghi lý thuyết Tin học 11. Các sách tham khảo có nội dung về khả năng đồ họa của Pascal (nếu có). C. Tiến trình lên lớp và nội dung bài giảng: 1. Ổn định lớp: (1’) Yêu cầu lớp trưởng báo cáo sĩ số. 2. Kiểm tra bài cũ và gợi động cơ.(2’) a) Kiểm tra bài cũ: Trong quá trình học bài mới sẽ kết hợp kiểm tra bài cũ và cho điểm. b) Gợi động cơ: Trong chương này, chúng ta đã học về chương trình con, ví dụ về cách viết và sử dụng chương trình con và thư viện chương trình con chuẩn. Vậy cấu trúc của một chương trình con như thế nào? Sử dụng chương trình con ra sao? Với thư viện chương trình con chuẩn thì người ta đã khai thác được rất nhiều khả năng của máy tính. Để củng cố lại những kiến thức về chương trình con và tìm hiểu về khả năng đồ họa trong lập trình Pascal, chúng ta sẽ cùng tìm hiểu một số chương trình trong bài học hôm nay: Bài tập và thực hành 8. 3. Nội dung bài giảng: Bài tập và thực hành 8 – Lớp 11 Nguyễn Thùy Linh – 56A CNTT N ộ i dung Ho ạ t đ ộ ng gi ữ a th ầ y và trò Th ờ i gian Giới thiệu về ứng dụng đồ họa của Pascal: Một số thủ tục, câu lệnh được sử dụng trong đồ họa (sử dụng trong bài): InitGraph(drive,mode,path): thiết lập môi trường đồ họa. SetColor(n): Đặt màu theo chỉ số màu n. SetColor(color): Đặt màu theo tên màu. Line(x1,y1,x2,y2): Vẽ đoạn thẳng nối hai điểm có tọa độ (x1,y1) và (x2,y2). MoveTo(x,y): định vị con trỏ tới vị trí(x,y). LineTo(x,y): vẽ đoạn thẳng từ vị trí hiện thời của con trỏ tới điểm có tọa độ (x,y). LineRel(dx,dy): vẽ đoạn thẳng từ vị trí hiện thời của con trỏ đến vị trí xác định bởi cộng thêm dx vào hoành độ,cộng thêm dy vào tung độcủa điểm hiện thời. MoveRel(dx,dy): chuyển con trỏ tới tọa độ mới có hoành độ cộng thêm dx,tung độ cộng thêm dy. CloseGraph: khôi phục kiểu màn hình trước khi khởi tạo đồ họa,giải phóng vùng nhớ do đồ họa sử dụng. Một số hàm quản lý màn hình và bàn phím: Keypressed: cho giá trị True nếu có một phím được gõ,hoặc False nếu chưa có phím nào được gõ. GV: phân biệt giữa màn hình đồ họa và màn hình văn bản: Màn hình có thể làm việc trong 2 chế độ: chế độ văn bản và chế độ đồ họa. Có thể hình dung màn hình như một bảng các điểm sáng. Hình ảnh đồ họa được xây dựng từ các điểm sáng. Mỗi điểm sáng là một điểm ảnh (pixel) và điểm ảnh là đơn vị cơ sở của màn hình đồ họa. Nhắc lại một số câu lệnh và thủ tục trong bài. Kết hợp kiểm tra bài cũ. GV: Em nào có thể nhắc lại một số thủ tục và câu lệnh trong đồ họa? HS: Thủ tục InitGraph(driver, mode,path) dùng để thiết lập môi trường đồ họa, thủ tục SetColor(n) dùng để đặt màu theo chỉ số n, thủ tục Line(x1.y1,x2,y2) dùng để vẽ đoạn thẳng nối 2 điểm có tọa độ (x1,y1) và (x2,y2), thủ tục LineTo(x,y) dùng để vẽ đoạn thẳng từ vị trí hiện thời của con trỏ tới điểm có tọa độ (x,y), thủ tục CloseGraph: khôi phục kiểu màn hình trước khi khởi tạo đồ họa… GV: Ngoài ra còn một số thủ tục khác như: SetColor(color) để đặt màu theo tên màu. 2’ 7’ Bài tập và thực hành 8 – Lớp 11 Nguyễn Thùy Linh – 56A CNTT GetMaxx: cho hoành độ lớn nhất của kiểu đồ họa hiện thời GetMaxy: cho tung độ lớn nhất của kiểu đồ họa hiện thời Delay(T): tạo thời gian trễ T tính theo đơn vị mili giây, trong đó T là một biểu thức nhận giá trị nguyên. Deplay thường được sử dụng để làm chậm chương trình lại cho quan sát trạng thái ở thời điểm đó. Các chương trình ứng dụng đồ họa của Pascal: Ví dụ: Thảm nhiều màu: Chương trình: Progam ThamNhieumau; Uses Graph; Const X=300; Y=200; N=25; Var drive,mode,A,C,k:integer; Procedure VeTham(a:integer); Begin MoveTo(X+a,Y); LineTo(X,Y+a);LineTo(X-a,Y); LineTo(X,Y+a);LineTo(X-a,Y); End; BEGIN Drive:=0; InitGraph(drive,mode,’c:\TP\BGI’); Write(‘Cho so nguyen A’); Readln(A);C:=A div 4; For k:=1 to N do Begin A:=A+C;SetColor(k); VeTham(A); End; Readln;CloseGraph; END. MoveTo(x,y) đ ể đ ị nh v ị con tr ỏ t ớ i vị trí (x,y), LineRel(dx,dy) dùng để vẽ đoạn thẳng nối điểm hiện tại với điểm có tọa độ bằng tọa độ hiện tại cộng với gia số (dx,dy)… GV: đưa ra chương trình ví dụ như “thảm nhiều màu” minh họa cho khả năng đồ họa của Pascal. 5’ Bài tập và thực hành 8 – Lớp 11 Nguyễn Thùy Linh – 56A CNTT Làm ví dụ trong sách giáo khoa: a) Vẽ đườ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 là tâm của màn hình. Kết thúc việc vẽ bằng cách ấn một phím bất kì. Chương trình: uses crt,graph; var stop: boolean; function DetectInit(path:string):interger ; var drive,mode:integer; begin drive:=0; InitGraph(drive,mode,path); DetectInit:= GraphReSult; end; begin If DetectInit(‘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(GetM axy)); Delay(200);{Tam dung} Stop:=Keypressed; Gv: (Với yêu cầu học sinh chuẩn bị bài từ tiết học trước) yêu cầu học sinh xem và gõ chương trình vào máy, phần nào chưa hiểu thì hỏi giáo viên. HS: gõ chương trình vào trong máy và có thể đưa ra câu hỏi nếu không hiểu. 10’ Bài tập và thực hành 8 – Lớp 11 Nguyễn Thùy Linh – 56A CNTT end; end; closeGraph end. b) Chương trình minh họa việc sử dụng các thủ tục vẽ hình đơn giản Progam 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 tronmau xanh la cay, tam(450;100) ban kinh 50} Setcolor(LightGreen); Circle(450,100,50); Readln; {Ve ellip mau do} SetColor(Red); Ellipse(100,200,0,360,50,120); Readln; CloseGraph end. Sau khi chạy chương trình, thay đổi tham số như màu vẽ, tọa độ và quan sát kết quả trên màn hình. Gv: chương trình này yêu cầu học sinh thay đổi một số tham số như màu vẽ, tọa độ. 10’ 5’ Bài tập và thực hành 8 – Lớp 11 Nguyễn Thùy Linh – 56A CNTT D. Củng cố bài: (1’) Như vậy qua bài này chúng ta biết thêm được ứng dụng đồ họa của Pascal. Với những kiến thức các em đã được học hôm nay và thêm việc tìm hiểu thêm qua các sách tham khảo về đồ họa của Pascal, các em có thể vẽ được rất nhiều hình theo trí tưởng tượng của mình. E. Bài tập về nhà: (2’) 1. Ôn lại những thủ tục,câu lệnh trong đồ họa của Pascal. 2. Ôn lại kiến thức về viết chương trình con. 3. Viết một số chương trình về đồ họa của Pascal. 4. Làm bài tập trong sách bài tập Tin học 11. 5. Ôn lại tất cả các kiến thức đã học để chuẩn bị cho tiết sau ôn tập. . và tìm hiểu về khả năng đồ họa trong lập trình Pascal, chúng ta sẽ cùng tìm hiểu một số chương trình trong bài học hôm nay: Bài tập và thực hành 8. 3. Nội dung bài giảng: Bài tập. TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ******************** Bài tập và thực hành số 8 Giảng viên hướng dẫn: Thầy Trần Doãn Vinh. Sinh viên thực hiện: Nguyễn. trình con. 3. Viết một số chương trình về đồ họa của Pascal. 4. Làm bài tập trong sách bài tập Tin học 11. 5. Ôn lại tất cả các kiến thức đã học để chuẩn bị cho tiết sau ôn tập.