Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
| Wiktor123 |
28.3.2010, 12:31
Сообщение
#1
|
|
Пользователь Группа: Собеседник Сообщений: 21 Регистрация: 17.5.2009 Пользователь №: 21 706 |
Помогите составить блоксхему!!!
program D; uses crt,graph; type Point2D=record {визначення структури 2D точки} x,y,p:extended; end; Matrix=array [0..2,0..2] of extended; var x0,y0,mx,my,focus:extended; procedure GetXY(var M:Matrix; var p:Point2D; var x,y:integer); {процедура перетворення координат} var d:Point2D; {із користувацьких в екранні} k:extended; begin d.x:=(p.x*M[0,0]+p.y*M[0,1]+p.p*M[0,2]); d.y:=(p.x*M[1,0]+p.y*M[1,1]+p.p*M[1,2]); d.p:=(p.x*M[2,0]+p.y*M[2,1]+p.p*M[2,2]); d.x:=d.x/d.p; d.y:=d.y/d.p; {k:=focus/(p.z+focus);} focus:=50; x:=round(x0+mx*d.x*focus); y:=round(y0-my*d.y*focus); end; procedure Line2D(var M:Matrix; p1,p2:Point2d); {процедура малювання 2-мірної лінії} var x1,y1,x2,y2:integer; begin GetXY(M,p1,x1,y1); GetXY(M,p2,x2,y2); line(x1,y1,x2,y2); end; procedure Mnozhim(var M:Matrix; M1,M2:Matrix); {процедура множення двох матриць} var x,y,i:integer; begin for x:=0 to 2 do for y:=0 to 2 do begin M[x,y]:=0; for i:=0 to 2 do M[x,y]:=M[x,y]+M1[i,y]*M2[x,i]; end; end; var Mu,Po:Matrix; T:array [0..3] of Point2D; x,y:integer; Begin x:=detect; initgraph(x,y,''); focus:=50; {ініціалізація початкових параметрів користувацької системи координат} mx:=1; my:=1; x0:=getmaxx div 2; y0:=getmaxy div 2; T[0].x:=4; T[0].y:=0; T[0].p:=1; {встановлення координат точок фігури} T[1].x:=0; T[1].y:=1; T[1].p:=1; T[2].x:=0; T[2].y:=4; T[2].p:=1; T[3].x:=-4; T[3].y:=0; T[3].p:=1; SetColor(Green); OutText('Obertannia... press any key...'); {блок обертання навколо початку координат} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=cos(Pi/100); Po[0,1]:=sin(Pi/100); Po[0,2]:=0; {встановлення матриці обертання} Po[1,0]:=-sin(Pi/100); Po[1,1]:=cos(Pi/100); Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); {малювання системи координат} Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); {малювання фігури} Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); {множення матриць} Delay(1000); end; while keypressed do readkey; Cleardevice; SetColor(Green); OutText('Zvushennia... press any key...'); {блок звуження фігури} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=0.8; Po[0,1]:=0; Po[0,2]:=0; {матриця звуження} Po[1,0]:=0; Po[1,1]:=0.8; Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); Delay(5000); end; while keypressed do readkey; Cleardevice; SetColor(Green); OutText('Vidobrashennia... press any key...'); {блок відображення відносно осі Z} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=1; Po[0,1]:=0; Po[0,2]:=0; {матриця відображення відносно осі Z} Po[1,0]:=0; Po[1,1]:=-1; Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); Delay(3000); end; while keypressed do readkey; Cleardevice; SetColor(Green); OutText('Zmina mashtabu... press any key...'); {блок зміни масштабу} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=0.95; Po[0,1]:=0; Po[0,2]:=0; {матриця зміни масштабу} Po[1,0]:=0; Po[1,1]:=0.95; Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); Delay(5000); end; while keypressed do readkey; closegraph; End. |
| Wiktor123 |
29.3.2010, 20:48
Сообщение
#2
|
|
Пользователь Группа: Собеседник Сообщений: 21 Регистрация: 17.5.2009 Пользователь №: 21 706 |
Помогите составить блоксхему!!! program D; uses crt,graph; type Point2D=record {визначення структури 2D точки} x,y,p:extended; end; Matrix=array [0..2,0..2] of extended; var x0,y0,mx,my,focus:extended; procedure GetXY(var M:Matrix; var p:Point2D; var x,y:integer); {процедура перетворення координат} var d:Point2D; {із користувацьких в екранні} k:extended; begin d.x:=(p.x*M[0,0]+p.y*M[0,1]+p.p*M[0,2]); d.y:=(p.x*M[1,0]+p.y*M[1,1]+p.p*M[1,2]); d.p:=(p.x*M[2,0]+p.y*M[2,1]+p.p*M[2,2]); d.x:=d.x/d.p; d.y:=d.y/d.p; {k:=focus/(p.z+focus);} focus:=50; x:=round(x0+mx*d.x*focus); y:=round(y0-my*d.y*focus); end; procedure Line2D(var M:Matrix; p1,p2:Point2d); {процедура малювання 2-мірної лінії} var x1,y1,x2,y2:integer; begin GetXY(M,p1,x1,y1); GetXY(M,p2,x2,y2); line(x1,y1,x2,y2); end; procedure Mnozhim(var M:Matrix; M1,M2:Matrix); {процедура множення двох матриць} var x,y,i:integer; begin for x:=0 to 2 do for y:=0 to 2 do begin M[x,y]:=0; for i:=0 to 2 do M[x,y]:=M[x,y]+M1[i,y]*M2[x,i]; end; end; var Mu,Po:Matrix; T:array [0..3] of Point2D; x,y:integer; Begin x:=detect; initgraph(x,y,''); focus:=50; {ініціалізація початкових параметрів користувацької системи координат} mx:=1; my:=1; x0:=getmaxx div 2; y0:=getmaxy div 2; T[0].x:=4; T[0].y:=0; T[0].p:=1; {встановлення координат точок фігури} T[1].x:=0; T[1].y:=1; T[1].p:=1; T[2].x:=0; T[2].y:=4; T[2].p:=1; T[3].x:=-4; T[3].y:=0; T[3].p:=1; SetColor(Green); OutText('Obertannia... press any key...'); {блок обертання навколо початку координат} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=cos(Pi/100); Po[0,1]:=sin(Pi/100); Po[0,2]:=0; {встановлення матриці обертання} Po[1,0]:=-sin(Pi/100); Po[1,1]:=cos(Pi/100); Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); {малювання системи координат} Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); {малювання фігури} Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); {множення матриць} Delay(1000); end; while keypressed do readkey; Cleardevice; SetColor(Green); OutText('Zvushennia... press any key...'); {блок звуження фігури} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=0.8; Po[0,1]:=0; Po[0,2]:=0; {матриця звуження} Po[1,0]:=0; Po[1,1]:=0.8; Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); Delay(5000); end; while keypressed do readkey; Cleardevice; SetColor(Green); OutText('Vidobrashennia... press any key...'); {блок відображення відносно осі Z} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=1; Po[0,1]:=0; Po[0,2]:=0; {матриця відображення відносно осі Z} Po[1,0]:=0; Po[1,1]:=-1; Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); Delay(3000); end; while keypressed do readkey; Cleardevice; SetColor(Green); OutText('Zmina mashtabu... press any key...'); {блок зміни масштабу} readkey; SetColor(White); Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Po[0,0]:=0.95; Po[0,1]:=0; Po[0,2]:=0; {матриця зміни масштабу} Po[1,0]:=0; Po[1,1]:=0.95; Po[1,2]:=0; Po[2,0]:=0; Po[2,1]:=0; Po[2,2]:=1; while (not keypressed) do begin cleardevice; SetColor(Green); Line(0,getmaxy div 2,getmaxx,getmaxy div 2); Line(getmaxx div 2,0,getmaxx div 2,getmaxy); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)+5); Line(getmaxx,getmaxy div 2,getmaxx-10,(getmaxy div 2)-5); Line(getmaxx div 2,0,(getmaxx div 2)-5,10); Line(getmaxx div 2,0,(getmaxx div 2)+5,10); SetColor(White); Line2D(Mu,t[0],t[1]); Line2D(Mu,t[2],t[0]); Line2D(Mu,t[3],t[1]); Line2D(Mu,t[3],t[2]); Mnozhim(Mu,Po,Mu); Delay(5000); end; while keypressed do readkey; closegraph; End. Блин хоть коменты остовляйте. |
| Tanker |
5.4.2010, 9:56
Сообщение
#3
|
|
Пользователь Группа: Активисты Сообщений: 363 Регистрация: 26.11.2009 Пользователь №: 22 377 |
Это подфорум про Ассемблер...
В фоуме про Паскаль есть тема закрепленная про бок-схемы -------------------- Успехов!
|
![]() ![]() |
|
Текстовая версия | Сейчас: 20.5.2012, 23:31 |