|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC759 "Piccoline" |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC759 "Piccoline" Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3698 (0xe72)
Types: TextFile
Names: »LISSA.PAS«
└─⟦d4ddf50a0⟧ Bits:30004478 CPI-graf 2.5 til Piccoline/Partner
└─⟦this⟧ »LISSA.PAS«
PROGRAM lissa;
uses cpigraf, cpimenu;
CONST
mainmenu : ARRAY(.1..6.) OF MenuType =
((c:'I';S:'Information '),
(c:'A';S:'skAlering '),
(c:'K';S:'Konstanter '),
(c:'L';S:'tegn Lissajous '),
(c:'S';S:'Slet '),
(c:'X';S:'eXit '));
submenu1 : ARRAY(.1..7.) OF MenuType =
((c:'K';S:'Koordinatsystem'),
(c:'1';S:'<1> max p▶86◀ X-akse'),
(c:'2';S:'<2> min p▶86◀ X-akse'),
(c:'3';S:'<3> max p▶86◀ Y-akse'),
(c:'4';S:'<4> min p▶86◀ Y-akse'),
(c:'O';S:'Overskr p▶86◀ diagram'),
(c:'T';s:'Tegn nyt diagram'));
submenu2 : ARRAY(.1..3.) OF MenuType =
((c:'G';S:'Gitter til/fra'),
(c:'X';s:'interval p▶86◀ X-akse'),
(c:'Y';s:'interval p▶86◀ Y-akse'));
submenu3 : ARRAY(.1..5.) OF MenuType =
((c:'F';S:'angiv Faseforskel'),
(c:'1';s:'<1> omegax'),
(c:'2';s:'<2> omegay'),
(c:'3';s:'<3> ax'),
(c:'4';s:'<4> ay'));
lines=10; width=34;
helpstr: ARRAY(.1..lines.) OF STRING(.width.) =
(' Demonstration af CPI-menu',
' Tegning af Lissajour-figurer',
'',
' Peter Ferdinand',
'Funktionen er defineret s▶86◀ledes:',
' f(x):=ax*cos(omegax*x)',
' f(y):=ay*sin(omegay*y+faseforskel)',
'',
'Center for P▶91◀dagogik og Informatik',
' 1986');
VAR
ch: CHAR;
xinterv, yinterv: real;
r,xmax,xmin,ymax,ymin: REAL;
st: str80;
gitter: boolean;
ax, ay, omegax, omegay, faseforskel: REAL;
tmin, tmax: REAL;
win1, win2: wnd_id;
res: resourcetype;
FUNCTION fx(t: REAL):REAL;
BEGIN
fx:=ax*cos(omegax*t);
END;
FUNCTION fy(t: REAL):REAL;
BEGIN
fy:=ay*sin(omegay*t+faseforskel);
END;
BEGIN
graphicscreen(pic_high);
(* definitionss▶91◀tninger til CPI-menu*)
NewResource(res,0,0,'MainMenu');
addmenu(6,mainmenu,'',horizontal);
addmenu(7,submenu1,'A',vertical);
addmenu(3,submenu2,'AK',vertical);
addmenu(5,submenu3,'K',vertical);
addreal(15,xmax,'A1');
addreal(15,xmin,'A2');
addreal(15,ymax,'A3');
addreal(15,ymin,'A4');
addreal(15,ay,'K4');
addreal(15,ax,'K3');
addreal(15,omegax,'K1');
addreal(15,omegay,'K2');
addreal(15,faseforskel,'KF');
addboolean(gitter,'AKG');
addreal(5,xinterv,'AKX');
addreal(5,yinterv,'AKY');
addstr(78,st,'AO');
addhelp(width,lines,helpstr,'I');
st:='Demonstration af CPI-menu og - graf tegning af Lissajourfigurer';
xmin:=-10; xmax:=abs(xmin);ymin:=-10; ymax:=abs(ymin);
xinterv:=1.0; yinterv:=2.0;
gitter:=false;
ax:=8; ay:=8;
omegax:=3; omegay:=2; faseforskel:=pi/4;
tmin:=0.0; tmax:=10.0;
(* definitionss▶91◀tninger til CPI-graf*)
graphmode;
newviewport(win1,0,scr_maxx,0,scr_maxy-24);
setviewportheader(win1,st);
setwindow(win1,xmin,xmax,ymin,ymax);
selectviewport(win1);
newviewport(win2,wnd_x1,wnd_maxx,wnd_y1,wnd_maxy);
drawaxis(xinterv,yinterv,gitter);
saveviewport(win2);
REPEAT
ResourceDisplay;
IF (men_selec='S') THEN begin
loadviewport(win2)
end
ELSE
IF men_selec='AT' THEN BEGIN
closeviewport(win1);
newviewport(win1,0,scr_maxx,0,scr_maxy-24);
setwindow(win1,xmin,xmax,ymin,ymax);
setviewportheader(win1,st);
setviewportcolor(win1,white,black);
selectviewport(win1);
drawaxis(xinterv,yinterv,gitter);
saveviewport(win2);
END
ELSE
IF Men_selec='L' THEN BEGIN
wnd_pencolor:=white;
r:=tmin;
moveto(fx(r),fy(r));
WHILE r<tmax DO BEGIN r:=r+0.1; drawto(fx(r),fy(r)); END;
END;
UNTIL men_selec='X';
textmode;
END.
«eof»