Unit tabellen; { This software has been designed and is CopyLefted by Han de Bruijn: (===) @-O^O-@ #/_\# ### Relevant Tables =============== } INTERFACE Uses SysUtils, Algemeen; type lijst = array of integer; procedure Gegevens(nummer : integer; var jaar,licht : lijst); IMPLEMENTATION procedure tabel1(var jaar,licht : lijst); var invoer,uitvoer : TextFile; regel : string; tel,k : integer; jaar1{,jaar2} : array[1..4] of integer; licht1,licht2{,licht3} : array[1..4] of integer; begin Writeln('TABLE A'); { AssignFile(uitvoer,'Uitvoer.txt'); } AssignFile(uitvoer,'Uitvoer1.txt'); Rewrite(uitvoer); Writeln(uitvoer,'TABLE A'); AssignFile(invoer,'Tabel1.txt'); Reset(invoer); tel := 0; k := 0; while not EoF(invoer) do begin tel := tel + 1; Readln(invoer,regel); if tel in [7,10,13,16] then begin k := k + 1; jaar1[k] := StrToInt(Copy(regel,27,4)); end; if tel in [8,11,14,17] then begin licht1[k] := StrToInt(Copy(regel,25,3)); licht2[k] := StrToInt(Copy(regel,29,3)); end; end; SetLength(jaar,4); SetLength(licht,4); for k := 0 to 3 do begin jaar[k] := jaar1[k+1]; licht[k] := licht1[k+1]*1000+licht2[k+1]; Writeln(uitvoer,jaar[k],' ',licht[k]); end; CloseFile(invoer); Writeln(uitvoer); CloseFile(uitvoer); end; procedure tabel2(var year,light : lijst); var invoer,uitvoer : TextFile; regel : string; tel,k : integer; jaar1 : array[1..8] of integer; licht1,licht2 : array[1..8] of integer; jaar : set of byte; licht : set of byte; begin Writeln('TABLE 1 - ROEMER METHOD VALUES'); AssignFile(uitvoer,'Uitvoer2.txt'); { Append(uitvoer); } Rewrite(uitvoer); Writeln(uitvoer,'TABLE 1 - ROEMER METHOD VALUES'); AssignFile(invoer,'Tabel2.txt'); Reset(invoer); tel := 0; jaar := []; for k := 0 to 7 do jaar := jaar + [10+k*5]; licht := []; for k := 0 to 7 do licht := licht + [12+k*5]; k := 0; while not EoF(invoer) do begin tel := tel + 1; Readln(invoer,regel); if tel in jaar then begin k := k + 1; jaar1[k] := StrToInt(Copy(regel,25,4)); end; if tel in licht then begin licht1[k] := StrToInt(Copy(regel,25,3)); licht2[k] := StrToInt(Copy(regel,29,3)); end; end; SetLength(year,8); SetLength(light,8); for k := 0 to 7 do begin year[k] := jaar1[k+1]; light[k] := licht1[k+1]*1000+licht2[k+1]; Writeln(uitvoer,year[k],' ',light[k]); end; CloseFile(invoer); Writeln(uitvoer); CloseFile(uitvoer); light[1] := 0; { Cassini = unreliable } end; procedure tabel4(var year,light : lijst); var invoer,uitvoer : TextFile; regel : string; tel,k : integer; jaar1,licht1,licht2 : array[1..3] of integer; jaar,licht : set of byte; begin Writeln('TABLE B '); AssignFile(uitvoer,'Uitvoer4.txt'); Rewrite(uitvoer); Writeln(uitvoer,'TABLE B'); AssignFile(invoer,'Tabel4.txt'); Reset(invoer); tel := 0; jaar := []; licht := []; for k := 0 to 2 do begin jaar := jaar + [8+k*4]; licht := licht + [9+k*4]; end; k := 0; while not EoF(invoer) do begin tel := tel + 1; Readln(invoer,regel); if tel in jaar then begin k := k + 1; jaar1[k] := StrToInt(Copy(regel,23,4)); end; if tel in licht then begin licht1[k] := StrToInt(Copy(regel,23,3)); licht2[k] := StrToInt(Copy(regel,27,3)); end; end; SetLength(year,3); SetLength(light,3); for k := 0 to 2 do begin year[k] := jaar1[k+1]; light[k] := licht1[k+1]*1000+licht2[k+1]; Writeln(uitvoer,year[k],' ',light[k]); end; CloseFile(invoer); Writeln(uitvoer); CloseFile(uitvoer); end; procedure tabel(deze,rijen,start,stap,meer,kolom : integer; komma : boolean; var jaar,licht : lijst; titel : string); var invoer,uitvoer : TextFile; regel : string; tel,k : integer; jaar1,licht1,licht2 : array of integer; begin Writeln(titel); AssignFile(uitvoer,'Uitvoer' + Letterlijk(deze) + '.txt'); Rewrite(uitvoer); Writeln(uitvoer,titel); AssignFile(invoer,'Tabel' + Letterlijk(deze) + '.txt'); SetLength(jaar1,rijen+1); SetLength(licht1,rijen+1); SetLength(licht2,rijen+1); Reset(invoer); tel := 0; k := 0; while not EoF(invoer) do begin tel := tel + 1; Readln(invoer,regel); if (tel-start > -1) and (((tel-start) mod stap) = 0) then begin k := k + 1; if (regel[kolom] = '*') or (regel[kolom] = '~') then regel := vervang(regel,Copy(regel,kolom,5),Copy(regel,kolom+1,4)); jaar1[k] := StrToInt(Copy(regel,kolom,4)); { Write(jaar1[k]:5); } end; if (tel-start-meer > -1) and (((tel-start-meer) mod stap) = 0) then begin licht1[k] := 0; licht2[k] := 0; if regel[kolom] = '-' then Continue; if komma then begin licht1[k] := StrToInt(Copy(regel,kolom,3)); licht2[k] := StrToInt(Copy(regel,kolom+4,3)); { Writeln(licht1[k]*1000+licht2[k]:7); } end else begin licht1[k] := StrToInt(Copy(regel,kolom,6)); { Writeln(licht1[k]:7); } end; end; end; SetLength(jaar,rijen); SetLength(licht,rijen); for k := 0 to rijen-1 do begin jaar[k] := jaar1[k+1]; if komma then licht[k] := licht1[k+1]*1000+licht2[k+1] else licht[k] := licht1[k+1]; Writeln(uitvoer,jaar[k],' ',licht[k]); end; CloseFile(invoer); Writeln(uitvoer); CloseFile(uitvoer); end; procedure tabel5(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 3 - BRADLEY ABERRATION METHOD: PULKOVA VALUES MARKED *'; tabel(5,63,10,6,4,23,true,jaar,licht,titel); end; procedure tabel6(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 4 - TOOTH WHEEL EXPERIMENTAL VALUES'; tabel(6,14,11,6,3,23,false,jaar,licht,titel); end; procedure tabel7(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 5 - ROTATING MIRROR EXPERIMENTS'; tabel(7,9,11,6,3,23,true,jaar,licht,titel); end; procedure tabel8(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 6 - KERR CELL VALUES* OF C'; tabel(8,4,10,5,2,23,true,jaar,licht,titel); end; procedure tabel9(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 8 - RESULTS 1960-1983 - MAINLY LASER'; tabel(9,11,11,6,3,23,true,jaar,licht,titel); end; procedure tabel10(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 7 - RESULTS* BY SIX METHODS 1945-1960'; tabel(10,23,12,7,4,23,true,jaar,licht,titel); end; procedure tabel12(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 9 - C VALUES BY THE RATIO OF ESU/EMU'; tabel(12,25,11,6,1,23,true,jaar,licht,titel); end; procedure tabel13(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 10 - C VALUES BY WAVES ON WIRES'; tabel(13,6,12,7,2,23,true,jaar,licht,titel); end; procedure tabel14(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 11 - REFINED LIST OF C DATA (See Figs. II, III, IV)'; tabel(14,57,11,6,3,23,true,jaar,licht,titel); end; procedure tabel27(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 21 - COMPARISON OF CURVES FITTED TO ALL TABLE 11 DATA'; tabel(27,14,13,9,1,23,true,jaar,licht,titel); end; procedure tabel29(var jaar,licht : lijst); var titel : string; begin titel := 'TABLE 22 - RESULTS OF ANALYSIS OF SPEED OF LIGHT DATA'; tabel(29,19,13,8,2,23,true,jaar,licht,titel); end; procedure Gegevens(nummer : integer; var jaar,licht : lijst); { Year/Light-speed data } begin case nummer of 1: tabel1(jaar,licht); 2: tabel2(jaar,licht); 3: tabel4(jaar,licht); 4: tabel5(jaar,licht); 5: tabel6(jaar,licht); 6: tabel7(jaar,licht); 7: tabel8(jaar,licht); {: tabel9(jaar,licht);} 8: tabel10(jaar,licht); 9: tabel12(jaar,licht); 10: tabel13(jaar,licht); 11: tabel14(jaar,licht); 12: tabel27(jaar,licht); 13: tabel29(jaar,licht); end; end; END.