From f9bf1ead111d0e10454a0f9558fb073fc5f59647 Mon Sep 17 00:00:00 2001 From: Csaba Kerepesi Date: Wed, 27 Jul 2016 10:13:01 +0200 Subject: [PATCH] Add files via upload --- indrawc_jul23_2016.exe | Bin 0 -> 107520 bytes indrawc_jul23_2016.pas | 1242 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1242 insertions(+) create mode 100644 indrawc_jul23_2016.exe create mode 100644 indrawc_jul23_2016.pas diff --git a/indrawc_jul23_2016.exe b/indrawc_jul23_2016.exe new file mode 100644 index 0000000000000000000000000000000000000000..93fd60ec1bd925005cc0a9a7fdcef64c71254b92 GIT binary patch literal 107520 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 RttG}B2crJ>`v0K>{y!QGmWTiV literal 0 HcmV?d00001 diff --git a/indrawc_jul23_2016.pas b/indrawc_jul23_2016.pas new file mode 100644 index 0000000..2f2d072 --- /dev/null +++ b/indrawc_jul23_2016.pas @@ -0,0 +1,1242 @@ +program imdraw1; +uses crt,graph,dos; +{------------------------------- + Gabor and Tamas Szabados + 1996-97 + -------------------------------} +const + n=600000; + m=60000; + ncoord=4; +type vectn=array[1..n] of integer; + vectm=array[1..m] of integer; + vectc=array[1..ncoord] of integer; + vectmc=array[1..m,1..ncoord] of integer; +var + szin,valasz,lehet:byte; + errcode,i,j,tpill,bgcolor:integer; + db,lep,kesl,tkezdo,tbef,t1k,t1b,rth:integer; + db2,db3,tlep,kesl2,ugr,tkezdo2,tbef2,ylep,telso,tutso:integer; + nwtyp,nrtyp:integer; + c,megjel,arnyek,bgcol:char; + tim:string[5]; + inp:text; + xw,yw,xr,yr:^vectc; + x,y,r,t1,t2,xt,yt,rt,tht1,tht2,ind,indt:^vectn; + time,bcells,marrow,abody,thelper,ilns:^vectm; + self,nonself:^vectmc; +label + hiba; + +{---------------------------------------------------------------------------} +procedure kezdoertek; +begin + for i:=1 to n do + begin + x^[i]:=0; + y^[i]:=0; + r^[i]:=0; + t1^[i]:=0; + t2^[i]:=0; + xt^[i]:=0; + yt^[i]:=0; + rt^[i]:=0; + tht1^[i]:=0; + tht2^[i]:=0; + ind^[i]:=0; + indt^[i]:=0; + if i<=m then + begin + time^[i]:=0; + bcells^[i]:=0; + marrow^[i]:=0; + abody^[i]:=0; + thelper^[i]:=0; + ilns^[i]:=0; + for j:=1 to ncoord do + begin + self^[i,j]:=0; + nonself^[i,j]:=0; + end{j}; + end; + end; + szin:=textattr; +end; + +{---------------------------------------------------------------------------} +procedure adatbe1; +var + dirinfo:searchrec; + fajl:array[1..50] of string[30]; +begin + i:=0; + j:=0; + clrscr; + findfirst('o*.*',archive,dirinfo); + while doserror=0 do + begin + inc(i); + writeln(i,'. ',dirinfo.name); + fajl[i]:=''+dirinfo.name; + findnext(dirinfo); + end; + writeln; + writeln('Choose an output file by typing in its number:'); + repeat + gotoxy(57,wherey-1); clreol; + readln(valasz); + until (valasz>=1) and (valasz<=i); + inc(j); + while (j<=i) and (j<=valasz) do + begin + if valasz=j then assign(inp,fajl[j]); + inc(j); + end; + + writeln; + writeln('Choose a background color (w/b)'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(bgcol); + until (bgcol='w') or (bgcol='b'); + writeln; + if bgcol='w' then + begin + bgcolor:=1; + end + else + begin + bgcolor:=0; + end; +end; + +{---------------------------------------------------------------------------} +procedure valaszt; +begin + clrscr; + normvideo; + gotoxy(1,20); + writeln('1. Time diagram'); + writeln('2. Antigen process'); + writeln('3. Antigen figure'); + writeln('4. Peptide process'); + writeln('5. Peptide figure'); + writeln; + writeln('Choice:'); + repeat + gotoxy(12,wherey-1); clreol; + readln(valasz); + until (valasz>=1) and (valasz<=5); +end; + +{---------------------------------------------------------------------------} +procedure menu; +begin + writeln('1. actual file again'); + writeln('2. new output file'); + writeln('3. exit'); + textattr:=szin; + writeln; + writeln('Choice:'); + repeat + gotoxy(12,wherey-1); clreol; + readln(lehet); + until (lehet=1) or (lehet=2) or (lehet=3); +end; + +{---------------------------------------------------------------------------} +procedure beolvas1; +var + i:integer; + be1,be2:string[10]; + be3:string[7]; + be4,be5:string[4]; + be6:string[8]; + be:string[6]; +begin + db2:=0; + be:=' '; + reset(inp); + + while be<>' crnew' do + readln(inp,be); + readln(inp,be6,rth); + + while be<>' kth0=' do + readln(inp,be); + // readln(inp); + readln(inp,be1,nwtyp,be2,nrtyp); + + for i:=1 to nwtyp do + readln(inp,be3,be4,xw^[i],be5,yw^[i]); + for i:=1 to nrtyp do + readln(inp,be3,be4,xr^[i],be5,yr^[i]); + +end; + +{---------------------------------------------------------------------------} +procedure beolvas2; +var + tbee:integer; + be:string[3]; + be1:string[15]; + be2:string[2]; + t10,t20,t11,t22:real; + sel12:string[12]; + sel5:string[5]; + sel6:string[6]; + +label + sok; +begin + db:=0; + db2:=0; + db3:=0; + be:=''; + be1:=''; + be2:=''; + reset(inp); + while be<>'The' do + readln(inp,be); + //readln(inp,be); + + readln(inp,be); + readln(inp,be); + read(inp,be); + while be<>'' do + begin + if be = 'bla' then + begin + inc(db); + if db > n then + begin + errcode:=1; + goto sok; + end; + readln(inp,sel12,x^[db],y^[db],r^[db],tbee,tbee,tbee,t10,t20); + t1^[db]:=round(t10); + t2^[db]:=abs(round(t20)); + ind^[db]:=db; + end + + else + begin + if (be<>'The') then + begin + inc(db2); + if db2 > m then + begin + errcode:=2; + goto sok; + end; + read(inp,time^[db2],sel6); + for j:=1 to 1 do + read(inp,self^[db2,j]); + + // !!!!!!! + read(inp,sel6); + for j:=1 to 1 do + read(inp,nonself^[db2,j]); + read(inp,sel5,bcells^[db2],sel6,abody^[db2],sel6,thelper^[db2], + sel6,ilns^[db2]); + readln(inp,sel5,marrow^[db2]); + // !!!!!!! + // readln(inp,sel6,bcells^[db2],sel6,marrow^[db2]); + end + else if be = 'The' then + begin + inc(db3); + if db > n then + begin + errcode:=1; + goto sok; + end; + readln(inp,sel6,xt^[db3],yt^[db3],rt^[db3],t11,t22); + tht1^[db3]:=round(t11); + tht2^[db3]:=abs(round(t22)); + indt^[db3]:=db3; + + end + else readln(inp,be); + + + end; + read(inp,be); + end; + + while be1<>' The list of bl' do + readln(inp,be1); + readln(inp,be1); + readln(inp,be1); + read(inp,be1); + while be1<>'' do + begin + inc(db); + readln(inp,x^[db],y^[db],r^[db],tbee,tbee,tbee,t10,t20); + t1^[db]:=round(t10); + t2^[db]:=abs(round(t20)); + ind^[db]:=db; + read(inp,be1); + end; + + while be2<>' T' do // + readln(inp,be2); + + readln(inp,be2); + + while be2<>' T' do // + readln(inp,be2); + + readln(inp,be2); + readln(inp,be2); + read(inp,be2); + while be2<>'' do + begin + inc(db3); + readln(inp,xt^[db3],yt^[db3],rt^[db3],t11,t22); + tht1^[db3]:=round(t11); + tht2^[db3]:=abs(round(t22)); + indt^[db3]:=db3; + read(inp,be2); + end; + + + t1k:=t1^[ind^[1]]; + t1b:=t1^[ind^[db-1]]; + telso:=time^[1]; + tutso:=time^[db2]; + sok:; +end; + +{---------------------------------------------------------------------------} +procedure ellenor; + + begin + ugr:=0; + while x^[ugr]<> 0 do + begin + writeln(ugr,' ',x^[ugr],' ',y^[ugr],' ',r^[ugr],' ',ind^[ugr]); + inc(ugr); + end; + delay(5000); + + ugr:=0; + while xt^[ugr]<> 0 do + begin + writeln(tht1^[ugr],' ',xt^[ugr],' ',yt^[ugr],' ',rt^[ugr],' ', + indt^[ugr]); + inc(ugr); + end; + delay(10000); + clreol; + end; +{---------------------------------------------------------------------------} +procedure adatbe2; +begin + lep:=0; + textattr:=szin; + clrscr; + writeln('First time instant between ',telso,' and ',tutso,' : '); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(tkezdo); + until (tkezdo>=telso) and (tkezdo<=tutso); + writeln; + writeln('Last time instant between ',tkezdo,' and ',tutso,' : '); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(tbef); + until (tbef>=tkezdo) and (tbef<=tutso); + writeln; + writeln('Plotting with (p)oints, (c)ircles, or (s)quares ?'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(megjel); + until (megjel='p') or (megjel='c') or (megjel='s'); + writeln; + writeln('Time step:'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(lep); + until (lep>0) and (lep<=tbef-tkezdo); + writeln; + writeln('Delay:'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(kesl); + until kesl>=0; +end; + +{---------------------------------------------------------------------------} +procedure adatbe3; +begin + textattr:=szin; + clrscr; + writeln('The first time instant between 0 and ',tutso,': '); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(tkezdo2); + until (tkezdo2>=0) and (tkezdo2<=tutso); + writeln; + writeln('The last time instant between ',tkezdo2,' and ',tutso,': '); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(tbef2); + until (tbef2>=tkezdo2) and (tbef2<=tutso); + writeln; + writeln('Time step:'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(tlep); + until tlep>=1; + writeln; + writeln('Vertical unit:'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(ylep); + until ylep>=1; + writeln; + writeln('Delay:'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(kesl2); + until kesl2>=0; + +end; + +{---------------------------------------------------------------------------} +procedure adatbe4; +begin + lep:=0; + textattr:=szin; + clrscr; + writeln('Time instant between ',telso,' and ',tutso,' : '); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(tkezdo); + until (tkezdo>=telso) and (tkezdo<=tutso); + writeln; + writeln('Plotting with (p)oints, (c)ircles, or (s)quares ?'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(megjel); + until (megjel='p') or (megjel='c') or (megjel='s'); + writeln; + writeln('Shade the covered region? (y/n)'); + writeln; + repeat + gotoxy(1,wherey-1); clreol; + readln(arnyek); + until (arnyek='y') or (arnyek='n'); + writeln; +end; + + +{---------------------------------------------------------------------------} + +procedure rendezt; +var + mint,segedt,tht1m,tht1a:integer; +begin + clrscr; + textcolor(red+blink); + writeln('Working...'); + for i:=1 to db3-1 do + begin + mint:=i; + tht1m:=tht1^[indt^[mint]]; + for j:=i+1 to db3 do + begin + tht1a:=tht1^[indt^[j]]; + if tht1ai then + begin + segedt:=indt^[i]; + indt^[i]:=indt^[mint]; + indt^[mint]:=segedt; + end; + end; +end; + +{---------------------------------------------------------------------------} +procedure rendez; +var + min,seged,t1m,t1a:integer; +begin + clrscr; + textcolor(red+blink); + writeln('Working...'); + for i:=1 to db-1 do + begin + min:=i; + t1m:=t1^[ind^[min]]; + for j:=i+1 to db do + begin + t1a:=t1^[ind^[j]]; + if t1ai then + begin + seged:=ind^[i]; + ind^[i]:=ind^[min]; + ind^[min]:=seged; + end; + end; +end; + +{---------------------------------------------------------------------------} +procedure grafikon; +var + gd,gm:smallint; + ErrCode:integer; +begin + gd:=detect; + initgraph(gd,gm,'c:\bin\tp\bgi'); + + ErrCode := GraphResult; + if ErrCode = grOk then + cleardevice + else + WriteLn('Graphics error:', + GraphErrorMsg(ErrCode)); + + if bgcolor=1 then + begin + cleardevice; + setbkcolor(15); + cleardevice; + end; + +end; + +{---------------------------------------------------------------------------} +procedure keret; +begin + if bgcolor = 1 then + setcolor(16) + else + setcolor(white); + + rectangle(70,0,569,479); + setlinestyle(0,0,3); + line(70,240,569,240); + line(70,0,70,479); + setlinestyle(0,0,1); + {line(320,0,320,479);} +end; + +{---------------------------------------------------------------------------} +procedure negyzet(szul:integer); +var + xx,yy,rr:integer; + square : array[1..4] of PointType; +begin + xx:=70+x^[ind^[i]] div 2; + yy:=240+y^[ind^[i]] div 2; + rr:=r^[ind^[i]] div 2; + if szul=1 then + begin + if arnyek = 'y' then + begin + square[1].x:=xx-rr; + square[1].y:=yy-rr; + square[2].x:=xx+rr; + square[2].y:=yy-rr; + square[3].x:=xx+rr; + square[3].y:=yy+rr; + square[4].x:=xx-rr; + square[4].y:=yy+rr; + setcolor(green); + setfillstyle(1,green); + FillPoly(SizeOf(square) div + SizeOf(PointType), square); + setcolor(white); + rectangle(xx-rr,yy-rr,xx+rr,yy+rr); + end + else + begin + setcolor(green); + rectangle(xx-rr,yy-rr,xx+rr,yy+rr); + end; + end + else + begin + if bgcolor=1 then + setcolor(white) + else + setcolor(16); + + rectangle(xx-rr,yy-rr,xx+rr,yy+rr); + keret; + end; +end; + +{---------------------------------------------------------------------------} +procedure kor(szul:integer); +begin + if szul=1 then + begin + if arnyek = 'y' then + begin + setfillstyle(1,green); + FillEllipse(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,r^[ind^[i]] div 2, + r^[ind^[i]] div 2); + end + else + begin + setcolor(green); + circle(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,r^[ind^[i]] div 2); + end; + end + else + begin + if bgcolor=1 then + setcolor(white) + else + setcolor(16); + + circle(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,r^[ind^[i]] div 2); + keret; + end; +end; + +{---------------------------------------------------------------------------} +procedure pont(szul:integer); +begin + if szul=1 then + begin + if arnyek='y' then + begin + setcolor(green); + circle(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,2); + putpixel(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,2); + end + else + begin + setcolor(green); + circle(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,1); + putpixel(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,2); + end; + end + else + begin + if bgcolor=1 then + setcolor(white) + else + setcolor(16); + + if arnyek='y' then + begin + circle(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,2); + putpixel(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,0); + end + else + begin + circle(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,1); + putpixel(70+x^[ind^[i]] div 2,240+y^[ind^[i]] div 2,0); + + end; + + keret; + end; +end; + +{---------------------------------------------------------------------------} +procedure vizsgal(szul:integer); +begin + if megjel='p' then pont(szul) + else if megjel='c' then kor(szul) + else if megjel='s' then negyzet(szul); +end; + +{---------------------------------------------------------------------------} +procedure thnegyzet(szul:integer); +var + xx,yy,rr:integer; + square : array[1..4] of PointType; +begin + xx:=70+xt^[indt^[i]] div 2; + yy:=240+yt^[indt^[i]] div 2; + rr:=rth div 2; + if szul=1 then + begin + if arnyek = 'y' then + begin + square[1].x:=xx-rr; + square[1].y:=yy-rr; + square[2].x:=xx+rr; + square[2].y:=yy-rr; + square[3].x:=xx+rr; + square[3].y:=yy+rr; + square[4].x:=xx-rr; + square[4].y:=yy+rr; + setcolor(green); + setfillstyle(1,green); + FillPoly(SizeOf(square) div + SizeOf(PointType), square); + setcolor(white); + rectangle(xx-rr,yy-rr,xx+rr,yy+rr); + end + else + begin + setcolor(green); + rectangle(xx-rr,yy-rr,xx+rr,yy+rr); + end; + end + else + begin + if bgcolor=1 then + setcolor(white) + else + setcolor(16); + + rectangle(xx-rr,yy-rr,xx+rr,yy+rr); + keret; + end; +end; + +{---------------------------------------------------------------------------} +procedure thkor(szul:integer); +begin + if szul=1 then + begin + if arnyek = 'y' then + begin + setfillstyle(1,green); + FillEllipse(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,rth div 2, + rth div 2); + end + else + begin + setcolor(green); + circle(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,rth div 2); + end; + end + else + begin + if bgcolor=1 then + setcolor(white) + else + setcolor(16); + + circle(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,rth div 2); + keret; + end; +end; + +{---------------------------------------------------------------------------} +procedure thpont(szul:integer); +begin + if szul=1 then + begin + if arnyek='y' then + begin + setcolor(green); + circle(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,2); + putpixel(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,2); + end + else + begin + setcolor(green); + circle(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,1); + putpixel(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,2); + end; + end + else + begin + if bgcolor=1 then + setcolor(white) + else + setcolor(16); + + if arnyek='y' then + begin + circle(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,2); + putpixel(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,0); + end + else + begin + circle(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,1); + putpixel(70+xt^[indt^[i]] div 2,240+yt^[indt^[i]] div 2,0); + end; + keret; + end; +end; + +{---------------------------------------------------------------------------} +procedure vizsgalth(szul:integer); +begin + if megjel='p' then thpont(szul) + else if megjel='c' then thkor(szul) + else if megjel='s' then thnegyzet(szul); +end; + +{---------------------------------------------------------------------------} +procedure ciklus; +var + ii:integer; +begin + arnyek:='n'; + tpill:=tkezdo; + while tpill<=tbef do + begin + i:=1; + while (i<=db) and (t1^[ind^[i]]=tpill-lep) and (t2^[ind^[i]] < tpill) then + vizsgal(2); + inc(i); + end; + i:=1; + while (i<=db) and (t1^[ind^[i]]<=tpill) do + begin + if t2^[ind^[i]]>=tpill then + vizsgal(1); + inc(i); + end; + setcolor(blue); + for ii:=1 to nwtyp do + outtextxy(66+xw^[ii] div 2,236+yw^[ii] div 2,'s'); + setcolor(red); + for ii:=1 to nrtyp do + outtextxy(66+xr^[ii] div 2,236+yr^[ii] div 2,'n'); + str(tpill:5,tim); + setfillstyle(1,0); + + if bgcolor=1 then + setcolor(16) + else + setcolor(white); + + bar(0,0,69,479); + bar(570,0,750,479); + bar(0,480,750,750); + settextstyle(3,0,2); + outtextxy(50,0,'y'); + outtextxy(575,224,'x'); + keret; + settextstyle(0,0,1); + outtextxy(0,50,concat('t= ',tim)); + delay(kesl); + inc(tpill,lep); + if keypressed then + begin + c:=readkey; + c:=readkey; + end; + end; + c:=readkey; + closegraph; +end; + +{---------------------------------------------------------------------------} +procedure ciklus4; +var + ii:integer; +begin + + i:=1; + while (i<=db) and (t1^[ind^[i]]<=tkezdo) do + begin + if t2^[ind^[i]]>=tkezdo then + vizsgal(1); + inc(i); + end; + + {i:=1; + while (i<=db) and (t1^[ind^[i]]<=tkezdo) do + begin + if t2^[ind^[i]]>=tkezdo then + vizsgal(1); + inc(i); + end; } + + setcolor(blue); + for ii:=1 to nwtyp do + outtextxy(66+xw^[ii] div 2,236+yw^[ii] div 2,'s'); + setcolor(red); + for ii:=1 to nrtyp do + outtextxy(66+xr^[ii] div 2,236+yr^[ii] div 2,'n'); + + str(tkezdo:5,tim); + + setfillstyle(1,0); + bar(0,0,69,479); + bar(570,0,750,479); + bar(0,480,750,750); + keret; + settextstyle(3,0,2); + outtextxy(50,0,'y'); + outtextxy(575,224,'x'); + + settextstyle(0,0,1); + outtextxy(0,50,concat('t= ',tim)); + + c:=readkey; + closegraph; +end; + + +{---------------------------------------------------------------------------} +procedure ciklust; +var + ii:integer; +begin + arnyek:='n'; + + tpill:=tkezdo; + while tpill<=tbef do + begin + i:=1; + while (i<=db3) and (tht1^[indt^[i]]=tpill-lep) and (tht2^[indt^[i]] < tpill) then + vizsgalth(2); + inc(i); + end; + i:=1; + while (i<=db3) and (tht1^[indt^[i]]<=tpill) do + begin + if tht2^[indt^[i]]>=tpill then + vizsgalth(1); + inc(i); + end; + setcolor(blue); + for ii:=1 to nwtyp do + outtextxy(66+xw^[ii] div 2,236+yw^[ii] div 2,'s'); + setcolor(red); + for ii:=1 to nrtyp do + outtextxy(66+xr^[ii] div 2,236+yr^[ii] div 2,'n'); + str(tpill:5,tim); + setfillstyle(1,0); + + {bar(0,0,67,17);} + + if bgcolor=1 then + setcolor(16) + else + setcolor(white); + + bar(0,0,69,479); + bar(570,0,750,479); + bar(0,480,750,750); + settextstyle(3,0,2); + outtextxy(50,0,'y'); + outtextxy(575,224,'x'); + keret; + settextstyle(0,0,1); + outtextxy(0,50,concat('t= ',tim)); + delay(kesl); + inc(tpill,lep); + if keypressed then + begin + c:=readkey; + c:=readkey; + end; + end; + c:=readkey; + closegraph; +end; + + + +{---------------------------------------------------------------------------} +procedure ciklust4; +var + ii:integer; +begin + + i:=1; + while (i<=db3) and (tht1^[indt^[i]]=tkezdo then + vizsgalth(1); + inc(i); + end; + + {i:=1; + while (i<=db3) and (tht1^[indt^[i]]<=tkezdo) do + begin + if tht2^[indt^[i]]>=tkezdo then + vizsgalth(1); + inc(i); + end;} + + setcolor(blue); + for ii:=1 to nwtyp do + outtextxy(66+xw^[ii] div 2,236+yw^[ii] div 2,'s'); + setcolor(red); + for ii:=1 to nrtyp do + outtextxy(66+xr^[ii] div 2,236+yr^[ii] div 2,'n'); + str(tkezdo:5,tim); + setfillstyle(1,0); + + {bar(0,0,67,17);} + + if bgcolor=1 then + setcolor(16) + else + setcolor(white); + + bar(0,0,69,479); + bar(570,0,750,479); + bar(0,480,750,750); + settextstyle(3,0,2); + outtextxy(50,0,'y'); + outtextxy(575,224,'x'); + keret; + settextstyle(0,0,1); + outtextxy(0,50,concat('t= ',tim)); + + c:=readkey; + closegraph; +end; + + +{---------------------------------------------------------------------------} +procedure keret2; +type + nevstr=string[10]; +var + ii,alap:integer; + szov:string[9]; +procedure jel(szin:integer); +begin + setcolor(szin); outtextxy(0,alap,'Û'); + inc(alap,20); +end; +procedure cimke(szoveg:nevstr); +begin + outtextxy(10,alap,szoveg); + inc(alap,20); +end; +procedure cimke2(koord:integer;szoveg:integer); +begin + str(szoveg:9,szov); + outtextxy(koord,470,szov); +end; +procedure cimke3(koord:integer;szoveg:integer); +begin + str(szoveg:9,szov); + outtextxy(0,koord,szov); +end; +begin + alap:=80; + jel(14); + jel(4); + jel(2); + jel(6); + jel(9); + jel(12); + jel(10); + if bgcolor = 1 then + setcolor(16) + else + setcolor(white); + + alap:=80; + cimke('self'); + cimke('nonself'); + cimke('B'); + cimke('marrow'); + cimke('Th'); + cimke('Ab'); + cimke('IL'); + rectangle(80,0,639,460); + for i:=1 to 5 do + begin + line(80+i*100,457,80+i*100,463); + line(77,460-i*100,83,460-i*100); + end; + cimke2(15,tkezdo2); + for ii:=1 to 5 do + cimke2(ii*100+25,tkezdo2+100*ii*tlep); + outtextxy(630,470,'t'); + for ii:=1 to 4 do + cimke3(457-ii*100,ii*ylep); + outtextxy(56,0,'no.'); +end; + +{---------------------------------------------------------------------------} +procedure diagramm; +var + i,k1,k2,i0,tt2:integer; + id,yd,tk:real; +label + kesz; +begin + k1:=-1; + i0:=1; + yd:=ylep/100; + tk:=tkezdo2/tlep; + for i:=1 to db2-1 do + begin + tt2:=time^[i]; + if (tt2 >= tkezdo2) and ((tt2 mod tlep) = 0) then + begin + k2:=round((tt2/tlep)-tk)+80; + if k1 >= 0 then + begin + setcolor(14); + for j:=1 to nwtyp do + line(k1,460-round(self^[i0,j]/ yd),k2, + 460-round(self^[i,j]/yd)); + setcolor(4); + for j:=1 to nrtyp do + line(k1,460-round(nonself^[i0,j]/yd),k2, + 460-round(nonself^[i,j]/yd)); + setcolor(2); + line(k1,460-round(bcells^[i0]/yd),k2,460-round(bcells^[i]/yd)); + setcolor(6); + line(k1,460-round(marrow^[i0]/yd),k2,460-round(marrow^[i]/yd)); + setcolor(9); + line(k1,460-round(thelper^[i0]/yd),k2,460-round(thelper^[i]/yd)); + setcolor(12); + line(k1,460-round(abody^[i0]/yd),k2,460-round(abody^[i]/yd)); + setcolor(10); + line(k1,460-round(ilns^[i0]/yd),k2,460-round(ilns^[i]/yd)); + delay(kesl2); + end{if}; + i0:=i; + k1:=k2; + end{if}; + if tt2 >= tbef2 then + goto kesz; + end{i}; + kesz:; + c:=readkey; + closegraph; +end; + +{***************************************************************************} +begin {foprogram kezdete} + new(xw); + new(yw); + new(xr); + new(yr); + new(x); + new(y); + new(r); + new(t1); + new(t2); + new(ind); + new(indt); + new(time); + new(self); + new(bcells); + new(nonself); + new(marrow); + new(xt); + new(yt); + new(rt); + new(tht1); + new(tht2); + new(abody); + new(thelper); + new(ilns); + errcode:=0; + {bgcolor:=1;} + repeat + kezdoertek; + adatbe1; + beolvas1; + beolvas2; + + if errcode <> 0 then + goto hiba; + rendez; + rendezt; + repeat + valaszt; + if valasz=1 then + begin + adatbe3; + grafikon; + keret2; + diagramm; + menu; + end; + if valasz=2 then + begin + adatbe2; + grafikon; + keret; + ciklus; + menu; + end; + if valasz=3 then + begin + adatbe4; + grafikon; + keret; + ciklus4; + menu; + end; + if valasz=4 then + begin + adatbe2; + grafikon; + keret; + ciklust; + menu; + end; + if valasz=5 then + begin + adatbe4; + grafikon; + keret; + ciklust4; + menu; + end; + until lehet<>1; + until lehet<>2; + hiba:; + if errcode <> 0 then + writeln(' Error ',errcode,', too many input elements '); + dispose(xw); + dispose(yw); + dispose(xr); + dispose(yr); + dispose(x); + dispose(y); + dispose(r); + dispose(t1); + dispose(t2); + dispose(ind); + dispose(indt); + dispose(time); + dispose(self); + dispose(bcells); + dispose(nonself); + dispose(marrow); + dispose(xt); + dispose(yt); + dispose(rt); + dispose(tht1); + dispose(tht2); + dispose(abody); + dispose(thelper); + dispose(ilns); +end. {foprogram vege}