同學要我幫的,他朋友的,我沒學過PASCAL,請大家幫幫忙〖問題描述〗本題利用PASCAL的繪圖功能,在屏幕上中心位置畫一個3到9條邊的正多邊形。〖題目要求〗把程序中的幾個空位補充完整,〖程序說明〗本程序利用PASCAL中的CRT和GRAPH兩個單元,通過在屏幕上找到相應的多邊形頂點坐標來實現描點繪圖。在程序中用到單元中所提供的相關過程,如:InitGraph(圖形初始化),CloseGraph(關閉圖形),Line(繪制直線),SetTextStyle(設置輸出文本的樣式),OutTextXY(在屏幕的相應位置上輸出指定文本)。還用到相關的函數,如:round(四舍五入),sin(正弦),cos(余弦)?!汲绦蛉缦隆絧rogram pic;uses Crt, Graph;{調用屏幕字符和圖形處理單元}var Gd,Gm:Integer; n:integer; x,y,x1,x2,y1,y2,i:integer; dx,dy:array[0..9] of integer;procedure panduan;begin if dx[i mod n]>dx[(i+1) mod n] then begin x1:=dx[(i+1) mod n];y1:=dy[(i+1) mod n]; x2:=dx[i mod n];y2:=dy[i mod n]; end else begin x1:=dx[i mod n];y1:=dy[i mod n]; x2:=dx[(i+1) mod n];y2:=dy[(i+1) mod n]; end;end;procedure draw;begin if x1<>x2 then for x:=x1+1 to x2 do begin y:=④; line(x,y,x,y); end else begin x:=x1; if y1>y2 then begin y:=y2;y2:=y1;y1:=y; end; for y:=y1+1 to y2 do begin line(x,y,x,y); end; end;end;begin clrscr;{清屏} write('please input the number n(3~9):');readln(n); Gd := Detect; InitGraph(Gd, Gm, 'c:\tp\bgi\');{圖形模式初始化} if GraphResult <> grOk then Halt(1);{初始化失敗,則程序中斷} x:=getmaxx div 2;y:=getmaxy div 2; SetTextStyle(DefaultFont, HorizDir,5);{設置文本輸出樣式} OutTextXY(x-10,50,chr(n+48));{在屏幕上相應的位置上輸出所要的文本} for i:=0 to n do begin dx[i]:=round(100*sin(i*360/n/180*pi+pi))+x; dy[i]:=round(100*cos(i*360/n/180*pi+pi))+y; end; i:=0; repeat if i>=n then break; ①; ②; ③; until keypressed;{按回車鍵結束} readln; CloseGraph;end.
熱心網友
挖塞,漫漫玩