1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
procedure initialization; var gd,gm:integer; begin gd:=detect; initgraph(gd,gm,''); end;
procedure vihod; var c:char; begin if keypressed then begin c:=readkey; if c=#13 then begin dispose(p); closegraph; halt; end; end; end;
procedure ell(angl:real); var x0,y0,xn,yn:real; i:integer; begin setcolor(kor); for i:=0 to 359 do begin x0:=a*cos(i/180*pi); y0:=b*sin(i/180*pi); xn:=cx+x0*cos(angl)-y0*sin(angl); yn:=cy+x0*sin(angl)+y0*cos(angl); putpixel(round(xn),round(yn),15); end; end;
procedure atom1; begin putimage(cx+round(a*cos((ugol+z1-1)*pi/180)), cy+round(b*sin((ugol+z1-1)*pi/180)),p^,1); putimage(cx+round(a*cos((ugol+z1)*pi/180)), cy+round(b*sin((ugol+z1)*pi/180)),p^,0); end;
procedure atom2; begin putimage(cx+round(b*sin((ugol+z2-1)*pi/180)), cy+round(a*cos((ugol+z2-1)*pi/180)),p^,1); putimage(cx+round(b*sin((ugol+z2)*pi/180)), cy+round(a*cos((ugol+z2)*pi/180)),p^,0); end;
procedure atom3; var x0,y0,xn,yn:real; i:integer; begin x0:=a*cos((ugol+z3-1)/180*pi); y0:=b*sin((ugol+z3-1)/180*pi); xn:=cx+x0*cos(pi/4)-y0*sin(pi/4); yn:=cy+x0*sin(pi/4)+y0*cos(pi/4); putimage(round(xn),round(yn),p^,1); x0:=a*cos((ugol+z3)/180*pi); y0:=b*sin((ugol+z3)/180*pi); xn:=cx+x0*cos(pi/4)-y0*sin(pi/4); yn:=cy+x0*sin(pi/4)+y0*cos(pi/4); putimage(round(xn),round(yn),p^,0); end;
procedure atom4; var x0,y0,xn,yn:real; i:integer; begin x0:=a*cos((ugol+z4-1)/180*pi); y0:=b*sin((ugol+z4-1)/180*pi); xn:=cx+x0*cos(-pi/4)-y0*sin(-pi/4); yn:=cy+x0*sin(-pi/4)+y0*cos(-pi/4); putimage(round(xn),round(yn),p^,1); x0:=a*cos((ugol+z4)/180*pi); y0:=b*sin((ugol+z4)/180*pi); xn:=cx+x0*cos(-pi/4)-y0*sin(-pi/4); yn:=cy+x0*sin(-pi/4)+y0*cos(-pi/4); putimage(round(xn),round(yn),p^,0); end;
begin initialization; setbkcolor(0); clearviewport; setcolor(kel);setfillstyle(1,kel);pieslice(re,re,0,360,re); new(p); getmem(p,imagesize(1,1,2*re+1,2*re+1)); getimage(0,0,2*re,2*re,p^);
clearviewport; setcolor(kpr); setfillstyle(1,kpr);pieslice(cx,cy,0,360,rp); ugol:=0; while true do begin ellipse(cx,cy,0,360,a,b); ellipse(cx,cy,0,360,b,a); ell(pi/4); ell(-pi/4); atom1; atom2; atom3; atom4; vihod; inc(ugol);if ugol=360 then ugol:=0; end; end.
Сообщение отредактировано: sheka - 4.06.2009 17:40