File t

Directory of image this file is from
This file as a plain text file

v-yZf*_m	"(z
j|-yZt|]m&ll"
*pdym#,/p
f|?1` =B^l<> OQ, | zH @ ppppp @  |7 fhf
]B[cid cjd`v-|d^mib nn_r^rt{]#H/q-&n~~ .3n o /!j"mib|iRD`knVntml&{HZPHoSk"(/Vk&Eh$/D_t-o<@hijklmny@p?z(@"L}0Zpw|N4Q@ut@0LE}AqO 3rAv qPC+
zFu@@}Tt N@+ yEvR+Ctq3 uAp@3EcOs23BpFuq0sFqpMrQ@pVqr 5A~Fur0=B~ u@0e |sTE+
}pMQ@xp@0+lvIs4t<AjLqtt,nKzEu4tLfGrp~s4t\.D~Ot4tL6D~As4t\6D}Us4t<AIss8M&B}}CECxC@Ot/NT%v|/UOn|/SOP~/BNS4t\D~Ts4t AKt38]~E}Astt 6D~pzZZZZZZZZZZZZZZZ_Ypft38FF}utt Qwu4t<fF|Uttt,>F}Kt4t\fI|v4tl/Bxp4tl6K}qtt
>K|Is0W.:rUu4tLA|ttt,vI~r4tAwOu4t<Q}pt sTqAI1yItU23I1uItU23I1o_L@2ONo?O3D8T~@4vs? 3@IavC0E$.D r@1v}ItU3IV9vu4tLA|p4tL~C|Bs4t ELstt,QutttAwr4t<A~Ottt<nK~|~B!^!^ZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ(z~B~G K3}(
{|{9 zs y9yiCnzzx0wI5!!K w5*t*0vus!f30ts)rs)9KFn@0C OE@E 7 cffqp(XzoM{nco ?d"cdd"Q/yL NyQiJ
Fx :N?_(jDN%<0 ?s /"bbgg'S'~ }|y &|0gpxDnrp D{c@oz}3 z{S(?{y0(3zxw0SDs(vyDDtD ?!{3y` ubt! EOs(qroc L>Dm+=lbg]JkCjik |X:"f_qWt0?!8G}__Ppj%'_E @  
 `H f?K3` l=^&<C lQzH H , |@0  ( $pp 8&?I3 -M!-{c|zs"pPoz#2(g{$t1z5ru00~ 
} 7{ 7,<QO"Ba8"#p$S@{x*Aw6?uL2)jw()[c|3(o&y'&@Qd sq`Xf^@t|3- f Beeb!h@N~/'$"7ac('0 "3F+Tac! G K//D//D//Dl}.0/{Xih!}I)& !,|!!e&iP8!l}A/p&!"KKd H.{'!z'ly Xozx;PUj  C cK|tly < oi<}&i+}II& |>,-b &zw|(v{*wi(z*.X*fu&t"&!>*(/!"$"@v{s*"r"qw|pY("s(o{$onn"A!b'!c, /Zw)Poo>mB\C}Il t$&$p) BbXAb@!w\!C /X"#k!Gj+PFi`hi (g{**bf"&*e"!*bd(&!d;Sz{L|}L LT @h A(%"!ccq|&!.q|o0 )z%&f-p)(b{)wi$o n( (#@{Nw)bkFwb!b(8z!bXnpa4Xox8.+`bk(`z b_b&$b''b^! ?]'$&LJj(az!&fAAK&.j%%&+BJ%]c )zA0`!>&j0\u&)I[ p0F ~*.ZiYX9"`b-bJ nW!#(cV v3(czfUi"2"+d." 3z] ?T$2^ &(/v,2.TK!&_U)`!>S"@R{!7 !b!dn&!q.* /=_"!*b$b^$!DNQ#~UP' aca(s,('nN+D#"#(/!!"!&b8|z!&&db*Mc,"b%!b! jZ0?!8G}__Ppj%'_EPROGRAM SIEBZEHNUNDVIER(INPUT,OUTPUT); TYPE STAPEL=ARRAY[1..32]OF INTEGER; PLAYERS=ARRAY[1..5]OF INTEGER; VAR KARTE:STAPEL; SPIELER:PLAYERS; ANTWORT:CHAR; I,BEST,ANZAHLSPIELER,KARTENANZAHL:INTEGER; PROCEDURE TAUSCHE (VAR X,Y:INTEGER); VAR Z:INTEGER; BEGIN Z:=X;X:=Y;Y:=Z END; PROCEDURE AUSGANGSBELEGUNG (VAR KARTE:STAPEL); VAR I:INTEGER; BEGIN FOR I:=1 TO 4 DO BEGIN KARTE[I]:=2;KARTE[I+4]:=3; KARTE[I+8]:=4;KARTE[I+12]:=7; KARTE[I+16]:=8;KARTE[I+20]:=9; KARTE[I+24]:=10;KARTE[I+28]:=11 END END; PROCEDURE MISCHEN (VAR KARTE:STAPEL); VAR I:INTEGER; BEGIN WRITELN("MOMENT,ICH MUSS JETZT DIE KARTEN MISCHEN!"); FOR I:=1 TO 100 DO TAUSCHE(KARTE[32],KARTE[TRUNC(32*RANDOM)+1]) END; PROCEDURE KARTEAUSTEILEN (KARTE :STAPEL;VAR KARTENANZAHL,SPIELER:INTEGER); BEGIN SPIELER :=SPIELER +KARTE[KARTENANZAHL]; WRITELN("DU ERHAELST EINE KARTE MIT DEM WERT:",KARTE[KARTENANZAHL]:4); KARTENANZAHL:=KARTENANZAHL-1 END; PROCEDURE BESTESAUSSUCHEN(SPIELER:PLAYERS;ANZAHLSPIELER:INTEGER;VAR BEST:INTEGER); VAR I:INTEGER; BEGIN FOR I:=1 TO ANZAHLSPIELER DO IF (SPIELER[I]>BEST) AND (SPIELER[I]<=21) THEN BEST:=SPIELER[I] END; PROCEDURE COMPUTERSPIELT (BEST:INTEGER;KARTE:STAPEL;VAR KARTENANZAHL,COMPUTER:INTEGER); BEGIN COMPUTER:=0; REPEAT COMPUTER:=COMPUTER +KARTE[KARTENANZAHL]; WRITELN("MEINE KARTE HAT DEN WERT:",KARTE[KARTENANZAHL]:4); KARTENANZAHL:=KARTENANZAHL-1 UNTIL (COMPUTER >=BEST)OR(COMPUTER>21); WRITELN;WRITELN("MEIN PUNKTEKONTO BETRAEGT",COMPUTER:4," PUNKTE.") END; PROCEDURE AUSWERTUNG (VAR SPIELER:PLAYERS;ANZAHLSPIELER:INTEGER); VAR I,BEST:INTEGER; BEGIN FOR I:=1 TO ANZAHLSPIELER DO IF(SPIELER[I]>21)OR(SPIELER[I]<17) THEN BEGIN IF I=ANZAHLSPIELER THEN WRITELN("ICH KOMME NICHT IN DIE WERTUNG,DA ICH",SPIELER[I]:4," PUNKTE HABE") ELSE WRITELN("SPIELER",I:3,"KOMMT NICHT IN DIE WERTUNG,DA ER",SPIELER[I]:4,"PUNKTE HAT"); SPIELER[I]:=0 END; BEST:=0; BESTESAUSSUCHEN(SPIELER,ANZAHLSPIELER,BEST); IF BEST=0 THEN WRITELN("....ALSO HAT KEINER GEWONNEN") ELSE BEGIN IF SPIELER[ANZAHLSPIELER]=BEST THEN WRITELN("ICH HABE GEWONNEN") ELSE FOR I:=1 TO ANZAHLSPIELER-1 DO IF SPIELER[I]=BEST THEN WRITELN("GEWONNEN HAT SPIELER",I) END END;(*PROCEDURE*) BEGIN(*MAIN*) AUSGANGSBELEGUNG(KARTE); REPEAT MISCHEN(KARTE);KARTENANZAHL:=32; WRITE("WIEVIEL SPIELER MOECHTEN MITSPIELEN(MAX 4)"); REPEAT READLN;READ(ANZAHLSPIELER); IF ANZAHLSPIELER<1 THEN WRITELN("ALLEINE KANN ICH NICHT SPIELEN!!"); IF ANZAHLSPIELER>4 THEN WRITELN("MEHR ALS 4 SPIELER KOENNEN LEIDER NICHT MITMACHEN!!") UNTIL(ANZAHLSPIELER>=1)AND(ANZAHLSPIELER<=4); FOR I:=1 TO ANZAHLSPIELER DO BEGIN WRITELN("SPIELER",I:3);WRITELN("----------"); SPIELER[I]:=0; KARTEAUSTEILEN(KARTE,KARTENANZAHL,SPIELER[I]); REPEAT KARTEAUSTEILEN(KARTE,KARTENANZAHL,SPIELER[I]); IF SPIELER[I]<21 THEN BEGIN WRITE("DEIN PUNKTEKONTO BETRAEGT JETZT",SPIELER[I]:4," PUNKTE."); WRITE("MOECHTEST DU NOCH EINE KARTE(J ODER N)"); REPEAT READLN;READ(ANTWORT); IF(ANTWORT<>"J")AND(ANTWORT<>"N")THEN WRITE("ENTSCHEIDE DICH!!") UNTIL(ANTWORT="J")OR(ANTWORT="N"); END UNTIL(ANTWORT="N")OR(SPIELER[I]>21);WRITELN END; WRITELN("JETZT SPIELE ICH!");WRITELN;BEST:=17; BESTESAUSSUCHEN(SPIELER,ANZAHLSPIELER,BEST); ANZAHLSPIELER:=ANZAHLSPIELER+1; COMPUTERSPIELT(BEST,KARTE,KARTENANZAHL,SPIELER[ANZAHLSPIELER]); WRITELN; AUSWERTUNG(SPIELER,ANZAHLSPIELER);WRITELN; IF ANZAHLSPIELER=2 THEN WRITE("WILLST DU") ELSE WRITE("WOLLT IHR"); WRITE(" NOCH EINMAL SPIELEN"); REPEAT READLN;READ(ANTWORT); IF (ANTWORT<>"J")AND(ANTWORT<>"N") THEN WRITE("WAS WILLST DU DENN JETZT") UNTIL(ANTWORT="J")OR(ANTWORT="N") UNTIL ANTWORT="N" END.
PROGRAM ROM(INPUT,OUTPUT); VAR ZA,Z:INTEGER; BEGIN WRITELN("GEBEN SIE EINE ZAHL EIN!"); READ(Z); WHILE Z<>0 DO BEGIN IF Z<1 THEN WRITELN("DIE ROEMER KANNTEN KEINE NEGATIVEN ZAHLEN!") ELSE WRITE(Z,"="); ZA:=0; WHILE Z>=1000 DO BEGIN ZA:=ZA+1;Z:=Z-1000; IF ZA=30 THEN BEGIN ZA:=0;WRITELN("M")END ELSE WRITE("M")END; IF Z>=900 THEN BEGIN WRITE("CM");Z:=Z-900 END; IF Z>=500 THEN BEGIN WRITE("D");Z:=Z-500 END; IF Z>=400 THEN BEGIN WRITE("CD");Z:=Z-400 END; WHILE Z>=100 DO BEGIN WRITE("C");Z:=Z-100 END; IF Z>=90 THEN BEGIN WRITE("XC");Z:=Z-90 END; IF Z>=50 THEN BEGIN WRITE("L");Z:=Z-50 END; IF Z>=40 THEN BEGIN WRITE("XL");Z:=Z-40 END; WHILE Z>=10 DO BEGIN WRITE("X");Z:=Z-10 END; IF Z=9 THEN BEGIN WRITE("IX");Z:=Z-9 END; IF Z>=5 THEN BEGIN WRITE("V");Z:=Z-5 END; IF Z=4 THEN BEGIN WRITE("IV");Z:=Z-4 END; WHILE Z>=1 DO BEGIN WRITE("I");Z:=Z-1 END; WRITELN;WRITELN("GEBEN SIE EINE NEUE ZAHL EIN!");READLN(Z) END END.
PROGRAM GAMEOFLIFE (INPUT,OUTPUT); CONST MAX1=9 ; MAX2=10; B="*"; F=" "; VAR ZAELER:ARRAY[1..MAX1,1..MAX1] OF INTEGER; ALT,NEU:ARRAY[0..MAX2,0..MAX2] OF CHAR; ANTWORT,WAHL,N,J,I,ZEILE,SPALTE:INTEGER; PROCEDURE BESETSTENACHBARNZAELEN; VAR I,J,X,Y :INTEGER; BEGIN FOR I:=1 TO MAX1 DO FOR J:=1 TO MAX1 DO BEGIN ZAELER[I,J]:=0; FOR X:=I-1 TO I+1 DO FOR Y:=J-1 TO J+1 DO IF ALT[X,Y]=B THEN ZAELER[I,J]:=ZAELER[I,J]+1; IF ALT[I,J]=B THEN ZAELER[I,J]:=ZAELER[I,J]-1 END; END; PROCEDURE EINSBISDREISSIG; BEGIN CASE WAHL OF 1:ALT[1,1]:=B; 2:ALT[1,2]:=B; 3:ALT[1,3]:=B; 4:ALT[1,4]:=B; 5:ALT[1,5]:=B; 6:ALT[1,6]:=B; 7:ALT[1,7]:=B; 8:ALT[1,8]:=B; 9:ALT[1,9]:=B; 10:ALT[2,1]:=B; 11:ALT[2,2]:=B; 12:ALT[2,3]:=B; 13:ALT[2,4]:=B; 14:ALT[2,5]:=B; 15:ALT[2,6]:=B; 16:ALT[2,7]:=B; 17:ALT[2,8]:=B; 18:ALT[2,9]:=B; 19:ALT[3,1]:=B; 20:ALT[3,2]:=B; 21:ALT[3,3]:=B; 22:ALT[3,4]:=B; 23:ALT[3,5]:=B; 24:ALT[3,6]:=B; 25:ALT[3,7]:=B; 26:ALT[3,8]:=B; 27:ALT[3,9]:=B; 28:ALT[4,1]:=B; 29:ALT[4,2]:=B; 30:ALT[4,3]:=B END END; PROCEDURE SPIELSTANDAUSGEBEN; VAR I,J :INTEGER; BEGIN WRITELN ; WRITELN ; WRITELN; FOR I:=1 TO MAX1 DO BEGIN FOR J:=1 TO MAX1 DO WRITE (ALT[I,J]:1); WRITELN END END; PROCEDURE EINUNDSECHZIGBISENDE; BEGIN CASE WAHL OF 61:ALT[7,7]:=B; 62:ALT[7,8]:=B; 63:ALT[7,9]:=B; 64:ALT[8,1]:=B; 65:ALT[8,2]:=B; 66:ALT[8,3]:=B; 67:ALT[8,4]:=B; 68:ALT[8,5]:=B; 69:ALT[8,6]:=B; 70:ALT[8,7]:=B; 71:ALT[8,8]:=B; 72:ALT[8,9]:=B; 73:ALT[9,1]:=B; 74:ALT[9,2]:=B; 75:ALT[9,3]:=B; 76:ALT[9,4]:=B; 77:ALT[9,5]:=B; 78:ALT[9,6]:=B; 79:ALT[9,7]:=B; 80:ALT[9,8]:=B; 81:ALT[9,9]:=B END END; PROCEDURE ZWEIUNDDREISSIGBISSECHZIG; BEGIN CASE WAHL OF 31:ALT[4,4]:=B; 32:ALT[4,5]:=B; 33:ALT[4,6]:=B; 34:ALT[4,7]:=B; 35:ALT[4,8]:=B; 36:ALT[4,9]:=B; 37:ALT[5,1]:=B; 38:ALT[5,2]:=B; 39:ALT[5,3]:=B; 40:ALT[5,4]:=B; 41:ALT[5,5]:=B; 42:ALT[5,6]:=B; 43:ALT[5,7]:=B; 44:ALT[5,8]:=B; 45:ALT[5,9]:=B; 46:ALT[6,1]:=B; 47:ALT[6,2]:=B; 48:ALT[6,3]:=B; 49:ALT[6,4]:=B; 50:ALT[6,5]:=B; 51:ALT[6,6]:=B; 52:ALT[6,7]:=B; 53:ALT[6,8]:=B; 54:ALT[6,9]:=B; 55:ALT[7,1]:=B; 56:ALT[7,2]:=B; 57:ALT[7,3]:=B; 58:ALT[7,4]:=B; 59:ALT[7,5]:=B; 60:ALT[7,6]:=B END END; BEGIN(*HAUPTPROGRAMM BEGINNT HIER!!!*) WRITELN("WIVIELE GENERATIONEN SOLLEN GEDRUCKT WERDEN");READ(N);WRITELN; FOR ZEILE:=0 TO MAX2 DO FOR SPALTE:=0 TO MAX2 DO BEGIN ALT[ZEILE,SPALTE]:=F; NEU[ZEILE,SPALTE]:=F; END; WRITELN("WELCHE FELDER WOLLEN SIE BESETZEN?"); WRITELN("GEBEN SIE DIE CODENUMMER IN DEM GEWUENSCHTEN FELD EIN"); WRITELN("0=ENDE DER EINGABE-START DES SPIELS"); WRITELN(" | 1| 2| 3| 4| 5| 6| 7| 8| 9|"); WRITELN("-----------------------------"); WRITELN("1>01|02|03|04|05|06|07|08|09|"); WRITELN("2>10|11|12|13|14|15|16|17|18|"); WRITELN("3>19|20|21|22|23|24|25|26|27|"); WRITELN("4>28|29|30|31|32|33|34|35|36|"); WRITELN("5>37|38|39|40|41|42|43|44|45|"); WRITELN("6>46|47|48|49|50|51|52|53|54|"); WRITELN("7>55|56|57|58|59|60|61| 62|63|"); WRITELN("8>64|65|66|67|68|69|70|71|72|"); WRITELN("9>73|74|75|76|77|78|79|80|81|"); WRITELN;WRITELN;WRITELN; REPEAT BEGIN READ(WAHL); IF (WAHL>=1)AND(WAHL<=30) THEN EINSBISDREISSIG; IF (WAHL>=31)AND(WAHL<=60) THEN ZWEIUNDDREISSIGBISSECHZIG; IF (WAHL>=61)AND(WAHL<=81) THEN EINUNDSECHZIGBISENDE END UNTIL WAHL=0; WRITELN; WRITELN; WRITELN; ANTWORT:=0; WRITE("GENERATION:",ANTWORT); SPIELSTANDAUSGEBEN; REPEAT BEGIN BESETSTENACHBARNZAELEN; ANTWORT:=ANTWORT+1;WRITE("GENERATION:",ANTWORT); FOR I:=1 TO MAX1 DO FOR J:=1 TO MAX1 DO IF ALT[I,J]=F THEN IF ZAELER[I,J]=3 THEN NEU[I,J]:=B ELSE NEU[I,J]:=F ELSE IF(ZAELER[I,J]<2) OR (ZAELER[I,J]>3) THEN NEU[I,J]:=F ELSE NEU[I,J]:=B; ALT:=NEU ; SPIELSTANDAUSGEBEN ;WRITELN;WRITELN;WRITELN;END; UNTIL ANTWORT=N END.
3 DEF FNT(X)=SIN(X)/COS(X) 4 DEF FNC(X)=COS(X)/SIN(X) 10 PRINT"DAS ZIEL DES SPIELES IST ES:" 15 PRINT"" 20PRINT "X X X X X X X X X X " 25 PRINT 30 PRINT"UMZUWANDELN IN:" 35 PRINT 40 PRINT"0 0 0 0 0 0 0 0 0 0" 45 PRINT"INDEM MAN DIE NUMMER DIE ZU DEM JEWEILIGEN X GEHOERT" 50 PRINT"EINGIBT.DAS X WIRD DANN ZU 0 GEMACHT " 55 PRINT"ES KANN ABER AUCH SEIN ,DASS ZWEI POSITIONEN VERAENDERT WERDEN" 60 PRINT "SIE KOENNEN DANN ZU 0 WERDEN,ES KANN ABER AUCH" 65 PRINT"X WERDEN . FINDEN SIE DIE RICHTIGE STRATEGIE" 70 PRINT"WENN SIE DIE GANZE ZEILE WIEDER ZU X GEMACHT" 75 PRINT"HABEN WOLLEN, GEBEN SIE 0 EIN." 80 PRINT"WENN SIE MITTEN IM SPIEL NEU ANFANGEN WOLLEN,GEBEN SIE 11" 85 PRINT"VIEL GLUECK..." 180RANDOMIZE 190 Q=RND(Y) 210 PRINT 220 C=0 230 PRINT"1,2,3,4,5,6,7,8,9,10" 240 PRINT"X X X X X X X X X X" 250 PRINT 260DIM A$(20) 270 FOR X=1 TO 10 280 A$(X)="X" 290 NEXT X 300 GOTO 320 310 PRINT"FALSCHE EINGABE, NEU EINGEBEN" 320 PRINT "GEBEN SIE DIE ZAHL EIN"; 330 INPUT N 340 IFN<>INT(N) THEN 310 350 IF N=11 THEN 180 360 IF N>11 THEN 310 370 IF N=0 THEN 230 380 IF M=N THEN 510 390M=N 400 IF A$(N)="0" THEN480 410 A$(N)="0" 415 A=Q+N/Q-N\B=Q/N\C1=.8*N 420 R=FNT(A)-SIN(B)+336*SIN(C1) 430 N= R-INT(R) 440 N=INT(10*N) 450 IF A$(N)="0"THEN 480 460 A$(N)="0" 470 GOTO 610 480 A$(N)="X" 490 IF M=N THEN 415 500 GOTO 610 510 IF A$(N)="0"THEN 590 520 A$(N)="0" 525 A=Q/N+Q\B=N*2+Q\C1=N 530 R=592*FNC(A)/SIN(B)-COS(C1) 540 N=R-INT(R) 550 N=INT(10*N) 560 IF A$(N)="0" THEN 590 570 A$(N)="0" 580GOTO 610 590 A$(N)="X" 600 IF M=N THEN 525 610 PRINT"1 2 3 4 5 6 7 8 9 10" 620 FOR Z=1 TO 10 \PRINTA$(Z);" ";\NEXT Z 630 C=C+1 640 PRINT 650 FOR Z=1 TO 10 660 IF A$(Z)<>"0"THEN 320 670 NEXT Z 680 IF C>12 THEN 710 690 PRINT "SEHR GUT SIE HABEN NUR ;";C;"VERSUCHE GEBRAUCHT" 700 GOTO 720 710 PRINT "VERSUCHEN SIE ES BEIM NAECHSTEN MAL BESSER ZU MACHEN" 715 PRINT "SIE HABEN";C;"VERSUCHE GEBRAUCHT" 720 PRINT "WOLLEN SIE NOCH EINMAL SPIELEN(J ODER N)" 730 INPUT X$ 740 IF X$="N" THEN 780 750 PRINT 760 GOTO 180 780 END
10 DIM T$(6,10),V$(70),S$(48,8),N$(30),J$(10),X$(70) 20 X$="**********************************************************************" 30 PRINT"ERLAEUTERUNGEN:"\Z=0\READ V$,V$,V$,V$,V$ 40 PRINT"DIESES PROGRAMM BIETET IHNEN DIE MOEGLICHKEIT, EINE BELIEBIGE" 50 PRINT"ANZAHL VOM STUNDENPLAENEN DRUCKEN ZU LASSEN. DIESE KOENNEN" 60 PRINT"SOWOHL BLANKO (1) ALS AUCH AUSGEFUELLT (2) HERGESTELLT WERDEN." 70 PRINT"DIE AUFNAHMEFAEHIGKEIT LIEGT BEI ACHT STUNDEN PRO TAG." 80 PRINT\PRINT"ANZAHL";\INPUT A 90 PRINT"ART (1 ODER 2)";\INPUT B\IF B=1 THEN 250 100 IF B=2 THEN 110\PRINT\PRINT"NEU EINGEBEN!"\PRINT\GOTO 90 110 PRINT\PRINT\PRINT"ERLAEUTERUNGEN:" 120 PRINT"ZUR KENNZEICHNUNG EINER STUNDE MUESSEN GENAU ACHT ZEICHEN" 130 PRINT"VERWENDET WERDEN! ES FOLGEN NUN VIER FRAGEN. FALLS DIE ENT-" 140 PRINT"SPRECHENDEN FELDER DES PLANES VON HAND AUSGEFUELLT WERDEN" 150 PRINT"SOLLEN, DRUECKEN SIE ALS ANTWORT DIE LEERTASTE!" 160 PRINT\PRINT"VOR- UND NACHNAME DES PLANINHABERS";\INPUT N$\C=30-LEN(N$) 165 FOR S= 1 TO C\N$=N$&" "\NEXT S 170 PRINT"KLASSE";\INPUT K$\PRINT"SCHULJAHR";\INPUT J$\C=7-LEN(J$) 175 FOR S= 1 TO C\J$=J$&" "\NEXT S 180 PRINT"HALBJAHR (1. ODER 2.)";\INPUT H$\IF H$="1." THEN 200 190 IF J$="2." THEN 200\PRINT\PRINT"NEU EINGEBEN!"\PRINT\GOTO 180 200 FOR S=1 TO 6\READ T$(S)\NEXT S\PRINT\PRINT\PRINT 210 FOR S1 = 1 TO 6 215 PRINT T$(S1);":" 220 FOR S2=1 TO 8 225 PRINT"",S2;". STD.";\INPUT V$ 230 IF LEN(V$)=8 THEN 240\PRINT\PRINT"NEU EINGEBEN!"\PRINT\GOTO 225 240 Z=Z+1\S$(Z)=V$\NEXT S2\PRINT\PRINT\NEXT S1\PRINT\GOTO 270 250 FOR S= 1 TO 48\RESTORE\READ S$(S)\NEXT S 260 READ N$,K$,J$,H$ 270 PRINT"BITTE DREHEN SIE DAS PAPIER NUN BIS ZUM NAECHSTEN ABRISSSTREIFEN!" 280 FOR S = 1 TO 5000\NEXT S\Z=-7\V$=" " 290 FOR S1=1 TO A 300 FOR S2=1 TO 5\PRINT\NEXT S2\PRINT"*";X$,"*"," "," "," ", 310 PRINT" *","*"," STUNDENPLAN VON ";N$;" *", 315 PRINT"*"," "," "," "," *" 320 PRINT"* KLASSE ";K$;" SCHULJAHR ";J$;" ";H$, 330 PRINT"HALBJAHR *","*"," "," "," "," *","*";X$ 340 PRINT"*STD* MO * DI * MI * DO *"; 350 PRINT" FR * SA *",X$;"*" 355 PRINT"* *";V$;"*";V$;"*";V$;"*";V$;"*";V$;"*";V$;"*" 360 FOR S3= 1 TO 8\PRINT"*";S3;"*"; 370 FOR S4= 1 TO 6\Z=Z+8\IF Z<49 THEN 380\Z=S3 380 PRINT" ";S$(Z);" *";\NEXT S4\PRINT "","* *";V$;"*";V$;"*"; 385 PRINT V$;"*";V$;"*";V$;"*";V$;"*"\NEXT S3\PRINT X$;"*" 390 FOR S5= 1 TO 4\PRINT\NEXT S5\NEXT S1 400 DATA " "," "," "," "," " 410 DATA "MONTAG","DIENSTAG","MITTWOCH","DONNERSTAG","FREITAG","SAMSTAG" 420 END PROGRAM KALENDER (INPUT,OUTPUT); TYPE RALF= ARRAY [1..7,1..6,1..12] OF INTEGER; VAR FELD:RALF;C,AUFRUF:INTEGER; (*EIN PROGRAMM VON GEORG HEIKAUS UND RALF MEHLAN*) PROCEDURE BERECHNUNG (VAR FELD :RALF); VAR MONAT,I1,I2,I3,B1,B2,ZAEHLER: INTEGER; JAHR,WOCHENTAG,SCHALTJAHR :INTEGER; PROCEDURE WOCHENBERECHNUNG ( MONAT,JAHR:INTEGER;VAR SCHALTJAHR, WOCHENTAG:INTEGER); VAR JTAGE,MTAGE,TAG,GESAMTTAGE:INTEGER; BEGIN SCHALTJAHR:=0; IF JAHR = 4 *TRUNC(JAHR/4) THEN SCHALTJAHR:=1; IF JAHR = 100 *TRUNC(JAHR/100) THEN BEGIN IF JAHR = 400 *TRUNC(JAHR/400)THEN SCHALTJAHR:=1 ELSE SCHALTJAHR:=0 END; JTAGE := SCHALTJAHR + (365*(JAHR-1)) + TRUNC ((JAHR-1)/4) - TRUNC ((JAHR-1)/100) + TRUNC ((JAHR-1)/400); IF MONAT <=2 THEN MTAGE := 31 *(MONAT-1) ELSE MTAGE := TRUNC(((306*MONAT)-324)/10); IF (SCHALTJAHR=1) AND (MONAT<3) THEN TAG:=0 ELSE TAG:=1; GESAMTTAGE:= JTAGE+MTAGE+TAG; WOCHENTAG:= GESAMTTAGE -(7*( TRUNC (GESAMTTAGE/7))); END; BEGIN WRITE ("JAHR"); READLN (JAHR); WRITELN; WRITELN; WRITELN; MONAT:=0; FOR I1:= 1 TO 12 DO BEGIN MONAT:= MONAT+1; WOCHENBERECHNUNG (MONAT,JAHR,SCHALTJAHR,WOCHENTAG); IF WOCHENTAG>0 THEN FOR I2:= 1 TO WOCHENTAG DO FELD [I2,1,MONAT]:=0 ; CASE MONAT OF 1,3,5,7,8,10,12: I3:=31; 2: I3:=28+SCHALTJAHR; 4,6,9,11: I3:=30 END; FOR B1:= 1 TO 6 DO FOR B2:= 1 TO 7 DO BEGIN IF (B1=1) AND (B2=1) THEN B2:=WOCHENTAG + 1; ZAEHLER:= (B1-1)*7+B2-WOCHENTAG; IF ZAEHLER<= I3 THEN FELD [B2,B1,MONAT]:=ZAEHLER ELSE FELD [B2,B1,MONAT]:=0 END END END; PROCEDURE UEBERSCHRIFT(MONAT:INTEGER); VAR BMONAT,Z1:INTEGER; BEGIN BMONAT:=MONAT; FOR Z1:=1 TO 3 DO BEGIN CASE BMONAT OF 1:WRITE(" ! J A N U A R "); 2:WRITE(" F E B R U A R "); 3:WRITELN(" M A E R Z !"); 4:WRITE(" ! A P R I L "); 5:WRITE(" M A I "); 6:WRITELN(" J U N I !"); 7:WRITE(" ! J U L I "); 8:WRITE(" A U G U S T "); 9:WRITELN(" S E P T E M B E R !"); 10:WRITE(" ! O K T O B E R "); 11:WRITE(" N O V E M B E R "); 12:WRITELN(" D E Z E M B E R !") END; BMONAT:=BMONAT+1 END; WRITELN(" !--------------------------------------------------------------------!"); WRITELN(" ! !") END; PROCEDURE BLOCKDRUCK ( MONAT:INTEGER;FELD:RALF); VAR REIHE,OTTO,SPALTE,A,Z,AMONAT:INTEGER; BEGIN UEBERSCHRIFT (MONAT); AMONAT:=MONAT; FOR REIHE := 1 TO 7 DO BEGIN A:= AMONAT; Z:= AMONAT +2; FOR MONAT:= A TO Z DO BEGIN FOR SPALTE:= 1 TO 6 DO BEGIN IF ((MONAT=1) OR (MONAT=4) OR (MONAT=7) OR (MONAT=10)) AND (SPALTE=1) THEN CASE REIHE OF 1:WRITE(" !SO "); 2:WRITE(" !MO "); 3:WRITE(" !DI "); 4:WRITE(" !MI "); 5:WRITE(" !DO "); 6:WRITE(" !FR "); 7:WRITE(" !SA ") END; IF FELD [REIHE,SPALTE,MONAT]=0 THEN WRITE (" ") ELSE WRITE (FELD [REIHE,SPALTE,MONAT]:3) END; WRITE(" ") END; WRITELN ("!") END; FOR OTTO:= 1 TO 2 DO WRITELN(" ! !") END; BEGIN (*WIRKLICH*) BERECHNUNG (FELD); AUFRUF:=1; WRITELN(" !--------------------------------------------------------------------!"); WRITELN (" ! !"); FOR C:=1 TO 4 DO BEGIN BLOCKDRUCK(AUFRUF,FELD); AUFRUF:=AUFRUF+3 END; WRITELN (" ! FINIS CORONAT OPUS (DAS ENDE KROENT DAS WERK) !"); WRITELN(" !--------------------------------------------------------------------!"); WRITELN; END.
30 REM **** PROGRAMM VON CLAUDIA GEYER UND BERND SCHMARGENDORF 50PRINT\PRINT\PRINT\PRINT 95 LET A=5 100PRINT TAB(A);"DDDDDD OOOO NNN NNN AAAA LLL DDDDDD" 110PRINT TAB(A);"DDDDDDD OOOOOO NNN NNN AAAAAA LLL DDDDDDD" 120PRINT TAB(A);"DDD DDD OOO OOO NNNN NNN AAA AAA LLL DDD DDD" 130PRINT TAB(A);"DDD DDD OOO OOO NNNN NNN AAA AAA LLL DDD DDD" 140PRINT TAB(A);"DDD DDD OOO OOO NNNNNNNN AAAAAAAA LLL DDD DDD" 150PRINT TAB(A);"DDD DDD OOO OOO NNNNNNNN AAAAAAAA LLL DDD DDD" 160PRINT TAB(A);"DDD DDD OOO OOO NNN NNNN AAA AAA LLL DDD DDD" 170PRINT TAB(A);"DDDDDDD OOOOOO NNN NNNN AAA AAA LLLLLLLL DDDDDDD" 180PRINT TAB(A);"DDDDDD OOOO NNN NNN AAA AAA LLLLLLLL DDDDDD" 190 PRINT\PRINT 200LET Z=31 210PRINT TAB(Z);"DDDDDD UUU UUU CCCC KKK KKK" 220PRINT TAB(Z);"DDDDDDD UUU UUU CCCCCC KKK KKK" 230PRINT TAB(Z);"DDD DDD UUU UUU CCC CCC KKKKKK" 240PRINT TAB(Z);"DDD DDD UUU UUU CCC KKKKK" 250PRINT TAB(Z);"DDD DDD UUU UUU CCC KKKK" 260PRINT TAB(Z);"DDD DDD UUU UUU CCC KKKKK" 270PRINT TAB(Z);"DDD DDD UUU UUU CCC CCC KKKKKK" 280PRINT TAB(Z);"DDDDDDD UUUUUU CCCCCC KKK KKK" 290PRINT TAB(Z);"DDDDDD UUUU CCCC KKK KKK" 300 PRINT\PRINT\PRINT 505 PRINT TAB(52);"++++" 510PRINT" ++++ ++++++++++++++" 515PRINT" ++++++++++++++++ ++++++++++++++++++++++" 520PRINT" ++++++++++++++++++++++++++ ++++++++++++++++++++++++++++" 525PRINT" +++++++++++++++++++++++++++++++###+++++++++++++++++++++++++++" 530PRINT" +++++++++++++++++++++++++++++++++++###+++++++++++++++++++++++++" 535PRINT" ++++++++++++++++++++++++++++++++++++++#####++++++++++++++++++++" 540PRINT" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 545PRINT" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 550PRINT" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 555PRINT" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 560PRINT" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 565PRINT" ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 570PRINT" ### ++++++++++++++++++++++++++++++++++++++++++++++++++++" 575PRINT" #### +++++++++++...................+++++++++++++" 580PRINT" ##### ....... ................ ........" 585PRINT"###### ...... ........... ......" 590PRINT"###### ..... ## ......... ......" 595PRINT"###### ..... #### ....... ### ....." 600PRINT"####### ..... ###### ...... ##### ....." 605PRINT"### ### ..... ######## ...... ####### ....." 610PRINT"### ## ..... ######## ...... ####### ....." 615PRINT"### # ..... ######## ...... ####### ....." 620PRINT"## ..... ######## ...... ####### ....." 625PRINT"## ..... ######## ...... ####### ....." 630PRINT"# ..... ######## ...... ####### ....." 635PRINT" ..... ######## ...... ####### ....." 640PRINT" ..... ######## ...... ####### ....." 645PRINT" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" 650PRINT" !!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!" 655PRINT"==!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!==" 660PRINT"!!==============================================#########========!!" 665PRINT" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!" 670PRINT" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!" 675PRINT" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####!!!!" 680PRINT TAB(29);"........... #####" 685PRINT TAB(30);"......... ###" 690PRINT TAB(31);"....... ###" 695PRINT TAB(31);"....... #" 700PRINT TAB (32);"....." 705PRINT TAB(32);"....." 710PRINT TAB (32);"....." 715 PRINT" B.S. FEB.76 ......." 720PRINT TAB(30);"........." 2000 END 10 REM PROGRAM AUTHOR - MARK MANASSE, HANOVER,N.H. 03755 20 REM TRANSLATED TO OS8 BASIC BY KAY R. FISHER ...DEC 30 PRINT "CAN-AM...OS8 VERSION." 40 PRINT\PRINT"DO YOU WISH INSTRUCTIONS (YES OR NO)"; 45 DIM Q$(3,13)\Q$(1)="WILDMAN WILLY"\Q$(2)="HOTSHOT HARRY" 46 DIM E(4),L(4),A$(22) 47 Q$(3)="SLOW-POKE SAM" 50 INPUT A$ 60 IF A$="NO" GOTO700 70 IF A$="YES" GOTO85 80 PRINT"PLEASE RESPOND 'YES OR NO'"\GOTO 40 85 PRINT"THE INSTRUCTIONS ARE LONGER THAN THE SCREEN CAN HANDLE." 86 PRINT"BE SURE THAT THE AUTO-PRINT IS TURNED ON BEFORE CONTINUING." 87 PRINT"TO CONTINUE, TYPE <CR>.";\INPUT Q9 100 PRINT"DESCRIPTION -- THE PROGRAM ALLOWS YOU TO RACE AROUND A HIGHLY" 110 PRINT"PERILOUS COURSE, RISKING BOTH LIFE AND MACHINE, IN AN" 120 PRINT"EFFORT TO RACE THE COMPUTER'S VERY OWN" 130 PRINT Q$(1);", ";Q$(2);", AND ";Q$(3);"." 135 PRINT"CAR#1 CAR#2 CAR#3" 140 PRINT\PRINT"INSTRUCTIONS--" 150 PRINT"YOU ARE ABOUT TO RACE ON ONE OF THE FASTEST COURSES" 160 PRINT"IN THE WORLD. A ROAD COURSE. A LONG ONE. 5.3 MILES. SPEEDS" 170 PRINT"UP TO 200 MPH." 180 PRINT\PRINT"WHEN THE COMPUTER TYPES A QUESTION OF THE FORM10 REM PROGRAM AUTHOR - MARK MANASSE, HANOVER,N.H. 03755 20 REM TRANSLATED TO OS8 BASIC BY KAY R. FISHER ...DEC 30 PRINT "CAN-AM...OS8 VERSION." 40 PRINT\PRINT"DO YOU WISH INSTRUCTIONS (YES OR NO)"; 45 DIM Q$(3,13)\Q$(1)="WILDMAN WILLY"\Q$(2)="HOTSHOT HARRY" 46 DIM E(4),L(4),A$(22) 47 Q$(3)="SLOW-POKE SAM" 50 INPUT A$ 60 IF A$="NO" GOTO700 70 IF A$="YES" GOTO85 80 PRINT"PLEASE RESPOND 'YES OR NO'"\GOTO 40 85 PRINT"THE INSTRUCTIONS ARE LONGER THAN THE SCREEN CAN HANDLE." 86 PRINT"BE SURE THAT THE AUTO-PRINT IS TURNED ON BEFORE CONTINUING." 87 PRINT"TO CONTINUE, TYPE <CR>.";\INPUT Q9 100 PRINT"DESCRIPTION -- THE PROGRAM ALLOWS YOU TO RACE AROUND A HIGHLY" 110 PRINT"PERILOUS COURSE, RISKING BOTH LIFE AND MACHINE, IN AN" 120 PRINT"EFFORT TO RACE THE COMPUTER'S VERY OWN" 130 PRINT Q$(1);", ";Q$(2);", AND ";Q$(3);"." 135 PRINT"CAR#1 CAR#2 CAR#3" 140 PRINT\PRINT"INSTRUCTIONS--" 150 PRINT"YOU ARE ABOUT TO RACE ON ONE OF THE FASTEST COURSES" 160 PRINT"IN THE WORLD. A ROAD COURSE. A LONG ONE. 5.3 MILES. SPEEDS" 170 PRINT"UP TO 200 MPH." 180 PRINT\PRINT"WHEN THE COMPUTER TYPES A QUESTION OF THE FORM" 190 PRINT" STRAIGHT A? OR CURVE 1?" 200 PRINT"RESPOND BY TYPING THE SPEED (IN MPH) YOU DESIRE TO TRAVEL AT," 210 PRINT"AND HIT THE RETURN KEY. GOOD LUCK. YOU MAY NEED IT." 220 PRINT "YOU MAY 'DRAFT' (SLIPSTREAM) OFF OF ANY CAR AHEAD" 230 PRINT "OF YOU. (BUT NOT MORE THAN 1 SECOND AHEAD). TO DO THIS" 240 PRINT "TYPE HIS CAR # + 1000 AS YOUR SPEED." 700 REM AMOUNT SPEED TO BE SUBTRACTED FROM AUTO PILOT SPEEDS 710 Q(1)=-2.9\Q(2)=-2.9\Q(3)=-5 720 REM NAMES OF TYPES OF ROADWAY 730 M$(1)="STRAIGHT"\M$(2)="HAIRPIN"\M$(3)="CURVE" 740 REM DEATH MESSAGE 750 DIM X$(64) 760 X$="MAY I SHOW YOU A PLOT? WE HAVE A NICE CHOICE OF HEADSTONES." 890 O$="" 920 PRINT"RATE YOURSELF AS A DRIVER. (1-BEST,3-WORST)"; 930 INPUT O 935 REM MAKE SLOW-POKE SAM EQUAL TO OR WORSE THAN YOU 940 Q(3)=Q(3)*O 1050 RANDOMIZE 1110 F2=INT(RND(0)*10)+7 1130 PRINT"YOUR DRIVING NUMBER IS";F2 1140 A=RND(0)*.05+.05 1150 PRINT "ADHESION FACTOR";A*100-5;". (THE LOWER THE BETTER)" 1170 PRINT"YOUR MAX. SPEED IS 200 MPH. TO SEE STANDINGS INPUT" 1180 PRINT"0 AS YOUR SPEED." 1190 PRINT\PRINT"WOULD YOU LIKE TO SEE THE COURSE"; 1200 INPUT A$ 1240 IF A$="NO" THEN 1450 1250 IF A$="YES" THEN 1260\PRINT"PLEASE ANSWER 'YES OR NO'"\GOTO 1190 1260 PRINT TAB(4);"----------------" 1270 PRINT TAB(3);"/1";TAB(11);"B";TAB(19);"2";CHR$(28) 1280 PRINT TAB(2);"/A";TAB(20);"C";CHR$(28) 1290 PRINT TAB(1);"/";TAB(22);CHR$(28) 1300 PRINT CHR$(28);TAB(21);"3I" 1310 PRINT "^-START*FINISH";TAB(22);"I" 1320 PRINT "^";TAB(22);"I" 1330 PRINT "^";TAB(21);"DI" 1340 PRINT "^";TAB(22);"I" 1350 PRINT "^";TAB(22);"I" 1360 PRINT "^H";TAB(22);"I" 1370 PRINT "^";TAB(22);"I" 1380 PRINT "^";TAB(21);"4I" 1390 PRINT "^";TAB(16);"------/" 1400 PRINT "^8";TAB(15);"(5 E" 1410 PRINT "^";TAB(16);CHR$(28) 1420 PRINT CHR$(28);TAB(17);"---/PITS";CHR$(28);"--)" 1430 PRINT " ";CHR$(28);"7";TAB(14);"G";TAB(21);"F^";TAB(27);"6I" 1440 PRINT " ";CHR$(28);"------------------------/" 1450 N=RND(0)*3+1 1460 PRINT\PRINT "NOTE! THIS IS A";INT(N);"LAP RACE" 1470 PRINT\PRINT "GENTLEMEN, START YOUR ENGINES! THE GREEN GOES DOWN AND" 1480 PRINT "OFF YOU GO!" 1510 Q=0 1520 H=INT(N) 1530 FOR V=1 TO N 1540 A$=M$(1)\R=200\B=1\C=3/10\D=65 1545 GOSUB 2330 1550 A$=M$(3)\R=125\B=1\C=1/10\D=49 1555 GOSUB 2330 1560 A$=M$(1)\R=200\B=2\C=13/20\D=66 1565 GOSUB 2330 1570 A$=M$(3)\R=125\B=1\C=1/10\D=50 1575 GOSUB 2330 1580 A$=M$(1)\R=200\B=1\C=1/5\D=67 1585 GOSUB 2330 1590 A$=M$(3)\R=150\B=1\C=3/20\D=51 1595 GOSUB 2330 1600 A$=M$(1)\R=200\B=2\C=3/5\D=68 1605 GOSUB 2330 1610 A$=M$(3)\R=125\B=1\C=1/10\D=52 1615 GOSUB 2330 1620 A$=M$(1)\R=200\B=1\C=1/4\D=69 1625 GOSUB 2330 1630 A$=M$(2)\R=100\B=.75\C=3/20\D=53 1635 GOSUB 2330 1640 A$=M$(1)\R=200\B=1.5\C=9/20\D=70 1645 GOSUB 2330 1650 A$=M$(2)\R=100\B=.75\C=3/20\D=54 1655 GOSUB 2330 1660 A$=M$(1)\R=200\B=2\C=1\D=71 1665 GOSUB 2330 1670 A$=M$(3)\R=125\B=1\C=1/10\D=55 1675 GOSUB 2330 1680 A$=M$(3)\R=150\B=1\C=3/20\D=56 1685 GOSUB 2330 1690 A$=M$(1)\R=200\B=2\C=7/10\D=72 1695 GOSUB 2330 1700 IF V=H THEN 1740 1710 A$="START FINISH (CURVE 9)"\R=150\B=1\C=3/20\D=127 1715 GOSUB 2330 1740 NEXT V 1745 REM ALL DEAD? 1750 IF G1=1 THEN 2040 1760 PRINT "DO YOU MEAN THAT EVERYONE ISN'T DEAD? WELL, HERE ARE" 1770 PRINT "THE RESULTS STRAIGHT FROM THE CHECKERED FLAG!" 1780 W=E+37 1820 G5=4 1830 FOR Z=1 TO 4 1840 IF Z=4 GOTO 1860 1850 PRINT Q$(Z);\GOTO 1890 1860 PRINT "YOU"; 1890 IF D(Z)=0 THEN 1950 1900 PRINT " IS LOOKIN' AT THEM PEARLY GATES." 1910 GOTO 1990 1940 REM T ARRAY IS TIME ARRAY 1950 PRINT" TOOK";T(Z);"SECONDS. WHICH AVERAGES OUT TO";3600*5.3*H/T(Z); 1951 PRINT"MPH" 1960 IF T(Z)>W THEN 1990 1965 REM NEW LEADING TIME AND DRIVER 1970 W=T(Z) 1980 N=F2*(Z+1)+Z 1990 NEXT Z 2040 PRINT "ANOTHER RACE"; 2050 INPUT A$ 2080 IF A$="NO" THEN 2290 2090 IF A$<>"YES" THEN 2040 2095 REM RESET FOR NEXT GAME 2100 T(1)=0\T(2)=0\T(3)=0\T(4)=0 2105 P(1)=0\P(2)=0\P(3)=0\P(4)=0\N(1)=0\N(2)=0\N(3)=0 2110 D(1)=0\D(2)=0\D(3)=0\D(4)=0 2130 PRINT "NEW SET-UP. NO RAIN. NO DEBRIS"; 2135 REM IF EVERYBODY'S DEAD, BE NASTY. 2140 IF G1=0 THEN 2160 2150 PRINT ", AND (PLEASE!) BETTER DRIVING." 2160 PRINT 2165 REM UNKILL EVERYBODY 2170 G1=0\F5=0 2180 GOTO 710 2290 STOP 2320 REM RACING SUBROUTINE 2325 REM ALL DEAD? 2330 IF G1=1 THEN 4250 2335 REM GET SOME HAZZARDS (IE RAIN, OIL) 2340 GOSUB 2800 2345 REM GET EVERYONE'S SPEED 2350 GOSUB 3220 2355 REM CHECK FOR SAFE SPEEDS 2360 G=4 2370 IF D(4)=1 THEN 2790 2380 IF (B+A+E)*S(4)/B<=R*(1+RND(0)*.1) THEN 2500 2385 REM DEATH MESSAGE 2390 PRINT X$ 2392 PRINT "YOU JUST WIPED OUT!!!!" 2395 REM INCREMENT OIL COUNTER 2400 F5=F5+1 2410 E(F5)=D 2455 REM OFFICIALLY PRONOUNCE DEAD. D IS FOR DEATH. 2460 D(G)=1 2465 REM INCREMENT DEAD COUNTER 2470 Q=Q+1 2475 REM EVERYBODY DEAD? 2480 IF Q=4 THEN 4230 2495 REM RATS. HE DIDN'T WIPE OUT. 2500 Y4=T(G) 2505 GOTO 2526 2510 IF (B+A(G)+E)*S(G)/B<=R THEN 2530 2515 REM ALMOST WIPED OUT 2520 PRINT "YOU NEARLY HAD TO SAY GOOD BYE." 2525 REM UPDATE HIS TIME 2526 REM 2527 REM 2530 T(G)=T(G)+C/(S(G)/3600) 2535 REM SEE IF, HEAVEN FORBID, HE PASSED SOMEBODY 2550 FOR X4= 1 TO 3 2560 IF D(X4)=1 THEN 2650 2570 Z4=T(X4)-(C/(S(X4)/3600)) 2580 Z1=Y4-Z4 2590 Z2=T(G)-T(X4) 2600 IF SGN(Z2)<>-SGN(Z1) THEN 2650 2610 IF SGN(Z2)=1 THEN 2631 2611 IF P(X4)=1 GOTO 2650\P(X4)=1 2620 PRINT "YOU JUST PASSED ";Q$(X4) 2630 GOTO 2650 2631 IF N(X4)=1 GOTO 2650\N(X4)=1 2640 PRINT Q$(X4);" JUST PASSED YOU" 2650 NEXT X4 2760 REM PROCEED TO THE FATE OF THE NEXT VICTIM 2790 GOTO 4250 2800 REM HAZARD SUBROUTINE 2810 REM MAKE SURE WE DON'T USE LAST SECTION'S OIL ON THIS SECTION 2820 E=0 2825 REM KILL PITSTOPS FROM LAST TIME 2830 L(1)=0\L(2)=0\L(3)=0\L(4)=0 2845 REM IF COURSE WELL GREASED, DISSOLVE GREASE 2850 IF F5<2 THEN 2900 2860 PRINT "THE RED FLAG HAS BEEN PUT OUT. CARS REMAIN" 2870 PRINT "MOTIONLESS UNTIL DEBRIS IS CLEARED" 2880 E(1)=0\E(2)=0\E(3)=0\E(4)=0 2890 F5=0 2895 REM SEE IF THOSE PLAYING DESERVE OIL 2900 FOR X=1 TO 4 2910 IF E(X)=D THEN 2940 2920 NEXT X 2930 GOTO 2970 2935 REM IF SO, NOTIFY SURVIVORS AND OTHERS 2940 PRINT "YIKES! OIL ON THE TRACKS!" 2950 E=.2 2960 GOTO 3130 2965 REM HAVE WE HAD RAIN? 2970 IF F3=1 THEN 3130 2975 REM SEE IF IT SHOULD BE STOPPED OR STARTED 2980 IF RND(0)>.025+G8 THEN 3130 2985 REM IS IT RAINING? 2990 IF A(O)<.1 THEN 3080 2995 REM STOP IT? 3000 IF RND(0)>.5 THEN 3130 3010 PRINT "GLORY BE, THE RAIN HAS STOPPED!" 3011 PRINT "BUT REMEMBER IT IS STILL WET" 3015 REM RAIN,RAIN, GO AWAY, WON'T COME BACK ANOTHER DAY 3020 F3=1 3030 FOR X=1 TO 4 3035 REM DELETE MOST OF THE EFFECTS 3040 A(X)=A(X)-.075 3045 REM MAKE IT LESS LIKELY TO RAIN IN LATER RACES 3050 G8=.025 3060 NEXT X 3070 GOTO 3130 3075 REM HALLELUJAH, MY RAIN DANCE WORKED 3080 PRINT "RAIN! SLOW DOWN!!" 3085 REM MAKE TRACK SLIPPERY 3090 FOR X=1 TO 4 3100 A(X)=A(X)+.1 3110 G8=.1 3120 NEXT X 3125 REM PIT STOPS? 3130 IF C<>9/20 THEN 3210 3140 IF RND(0)<.125 THEN 3210 3150 FOR X=1 TO 3 3170 IF D(X)=1 THEN 3200 3180 L(X)=RND(0)*3+5 3190 PRINT Q$(X);" WAS IN THE PITS FOR";L(X);"SECONDS." 3200 NEXT X 3201 IF D(4)=1 GOTO 3203 3202 L(4)=RND(0)*3+5\PRINT"YOU WERE IN THE PITS FOR";L(4);"SECONDS." 3203 FOR I=1 TO 4\T(I)=T(I)+L(I)\NEXT I 3205 REM WE WUZ HERE (AND LEFT!) 3210 RETURN 3220 REM INPUT 3225 REM RESET SPEED ARRAY 3230 S(1)=0\S(2)=0\S(3)=0\S(4)=0 3235 REM PRINT OUT SOMETHING LIKE 'STRAIGHT A' 3240 REM IF HES DEAD, DON'T GIVE HIM A CHANCE TO INPUT 3245 IF D(4)=1 GOTO 3770 3250 PRINT A$;" ";CHR$(D); 3270 REM GET EVERYBODY'S SPEEDS 3340INPUT J 3480 S=J 3482 R5=0 3485 REM DID HE TRY TO EXCEED HIS MAX. SPEED? 3490 IF S<=200 THEN 3620 3510 IF S<1000 THEN 3600 3515 REM IT'S OK. HE ONLY WANTS TO DRAFT 3520 R4=(S-1000) 3525 REM NOW SEE IF HE PICKED A LEGAL CAR 3530 IF R4=INT(R4) THEN 3560 3535 REM HE DIDN'T 3540 PRINT "ILLEGAL CAR" 3550 PRINT "HOW FAST"\GOTO 3340 3560 IF R4>3 GOTO 3540 3565 REM TRYING TO DRAFT A DEAD MAN? 3570 IF D(R4)>0 THEN 3540 3575 REM DRAFTED CAR IS IN 1 SECOND? 3580 IF ABS(T(4)-T(R4)-.5)=>.5 THEN 3540 3585 REM OK LEGAL DRAFT 3586 R5=1 3590 GOTO 3700 3595 REM OPTIMIST 3600 PRINT "MAYBE A LITTLE HARD ON THE PEDDLE? BE REALISTIC." 3610 GOTO 3550 3620 IF S>0 THEN 3660 3625 REM HE WANTS TO SEE HOW HE'S DOING. POOR GUY 3630 GOSUB 3990 3640 GOTO 3550 3655 REM WHERE DOES HE THINK HE IS? THE LONG ISLAND EXPRESSWAY? 3660 IF S=>20 THEN 3690 3670 PRINT "I DOUBT YOU WANT TO GO THAT SLOWLY" 3680 GOTO 3640 3685 REM SINCE HE MADE IT THIS FAR, ASSUME THAT IT'S LEGAL 3690 S(4)=S 3700 U=U+1 3710 IF R4=0 THEN 3770 3715 REM IF HE'S DRAFTING, TELL ME TO WHOM 3720 H(4)=R4 3730 R4=0 3755 REM SET SPEEDS FOR AUTO-PILOTS 3770 FOR F0=1 TO 3 3780 IF D(F0)=1 THEN 3870 3790 S=R*B/(B+.1+E+G8)+(RND(0)*3+Q(F0)) 3800 IF (B+.1+G8+E)*S/B<=R THEN 3850 3810 D(F0)=1 3820 PRINT Q$(F0);" JUST WIPED" 3825 REM LET COMPUTER KNOW HE'S WIPED 3830 F5=F5+1 3840 E(F5)=D 3850 T(F0)=T(F0)+C/(S/3600) 3860 S(F0)=S 3870 NEXT F0 3875 REM NOW HANDLE DRAFTERS 3880 IF R5=0 GOTO 3980 3900 IF D(H(4))=1 GOTO 3980 3945 REM SET HIS SPEED TO HIS DRAFTEES 3950 S(4)=S(H(4)) 3955 REM HALVE THE DISTANCE BETWEEN THEM 3960 T(4)=(T(4)+T(H(4)))/2 3980 RETURN 3990 REM PLACING 4050 FOR I=1 TO 3 4080 PRINT Q$(I);" IS"; 4110 IF D(I)<>1 THEN 4140 4120 PRINT " OUT OF THE RACE."\GOTO 4200 4140 IF T(I)+2<T(4) GOTO 4190 4145 IF T(4)+2=>T(I) GOTO 4170 4150 PRINT T(I)-T(4);"SECONDS BEHIND YOU." 4160 GOTO 4200 4170 PRINT " RIGHT BESIDE YOU " 4180 GOTO 4200 4190 PRINT T(4)-T(I);"SECONDS AHEAD OF YOU." 4200 NEXT I 4210 PRINT\PRINT "YOU'VE TAKEN";T(4);"SECONDS." 4220 RETURN 4230 P=G+1\IF P=<3 GOTO 4235\P=0 4235 PRINT Q$(P);" THE LAST OF THE GREAT RACERS, JUST WIPED OUT." 4240 G1=1 4250 RETURN 4260 END 10 REM*** INS DEUTSCHE MIT KLEINEN AENDERUNGEN UEBERSETZT VON 20 REM*** EBERHARD HUBIG GUMMERSBACH 3/76 30 DIM R$(40),N$(9) 40 R$ = "FALSCHE EINGABE,BITTE NEU EINGEBEN!"\Z$="R"\B1=1 50 R3=0\A3=0\D9=3.2878E-04\M1=7.45\M0=M1\B=1000 60 M=17.95\F1=5.25\N=7.5\R0=926\V0=1.29\T=0\H0=60\R=R0+H0\A=-3.425 70 R1=0\A1=8.8436E-04\T1=0\F=0\P=0\N=1\M2=0\S=0\C=0\Z=1852.8\G5=1000 80 M$="METER"\N$="KILOMETER"\IF Z$="J" THEN 1070 90 PRINT\PRINT\PRINT\PRINT"MONDLANDESIMULATION 2"\PRINT 100 PRINT"SIND SIE SCHON EINMAL GEFLOGEN(J ODER N)";\INPUT Q$ 110 IF Q$="J" THEN 330\IF Q$ = "N" THEN 130\PRINT R$\GOTO 100 120 PRINT\PRINT 130 PRINT"SIE SIND NUN BEI EINER MONDLANDEMISSION.ALS DER PILOT DER"; 140 PRINT" MONDLANDE-","KAPSEL KOENNEN SIE BESTIMMTE BEFEHLE"; 150 PRINT" AN DAS STEUERGERAET GEBEN.","DER BORDCOMPUTER WIRD IHNEN"; 160 PRINT" DANN LAUFEND BESTIMMTE INFORMATIONEN,DIE","SIE ZUR "; 170 PRINT"STEUERUNG DES SCHIFFES BENOETIGEN,AUSDRUCKEN!"\PRINT 180 PRINT"DER WINKEL,NACH DEM GEFRAGT WIRD,BEZEICHNET DIE FLUGLAGE!"; 190 PRINT"IHN KANN MAN","FOLGENDERMASSEN BESCHREIBEN:" 200 PRINT"180 ODER - 180 GRAD IST EIN WEG DIREKT VOM MOND WEG" 210 PRINT"- 90 GRAD IST AUF EINER DIREKTEN LINIE IN RICHTUNG WELTRAUM" 220 PRINT"90 GRAD IST AUF EINER LINIE AUS DER RICHTUNG VOM WELTRAUM" 230 PRINT"0 GRAD IST EIN WEG DIREKT IN RICHTUNG DES MONDES"\PRINT 240 PRINT TAB(30);"-180!180"\PRINT TAB(34);"!" 250 PRINT TAB(27);"- 90< -+- > 90"\PRINT TAB(34);"!"\PRINT TAB(34);"0" 260 PRINT TAB(27);"MONDOBERFLAECHE"\PRINT 270 PRINT"ALLE WINKEL ZWISCHEN - 180 UND + 180 GRAD SIND MOEGLICH!" 280 PRINT\PRINT"1 EINHEIT TREIBSTOFF REICHT FUER EINE SEKUNDE MAXIMALE"; 290 PRINT"N SCHUB","DER SCHUB KANN GEWAEHLT WERDEN:" 300 PRINT"ER KANN 0 ODER JEDEN WERT ZWISCHEN 10 UND 100 PROZENT"; 310 PRINT" ANNEHMEN"\PRINT 320 PRINT"KEINE NEGATIVE ZEIT ODER SCHUB EINGEBEN!" 330 PRINT 340 PRINT"EINGABE: ZEITINTERVALL IN SEKUNDEN----------(Z)" 350 PRINT" PROZENTANGABE DES SCHUBES----------(P)" 360 PRINT" FLUGLAGEWINKEL IN GRAD-------------(W)"\PRINT 370 PRINT"WENN SIE DIE MISSION ABBRECHEN WOLLEN,GEBEN SIE 0,0,0 EIN!" 380 PRINT 390 PRINT"AUSGABE: BIS JETZT VERSTRICHENE ZEIT IN SEKUNDEN" 400 PRINT" HOEHE IN METER" 410 PRINT" ENTFERNUNG VON DER LANDESTELLE IN METER" 420 PRINT" VERTIKALE GESCHWINDIGKEIT IN M/SEK" 430 PRINT" HORIZONTALE GESCHWINDIGKEIT IN M/SEK" 440 PRINT" RESTLICHEN EINHEITEN TREIBSTOFF" 450 PRINT\PRINT 460 PRINT" ZEIT HOEHE ENTFERNUNG VERT. GES. HORI. GES."; 470 PRINT" TREIBSTOFF" 480 FOR N = 0 TO 70\PRINT TAB(N);"-";\NEXT N 490 PRINT TAB(71);" "\GOTO 560 500 PRINT"Z,P,W";\INPUT T1,F,P\F=F/100\IF T1<0 THEN 790 510 IF T1= 0 THEN 1010\IF ABS(P) > 180 THEN 810\IF F = O THEN 530 520 IF F < 0.1 THEN 830\IF F > 1 THEN 830 530 N = 20\IF T1< 400 THEN 540\N = T1/20 540 T1=T1/N\P=P*3.14159/180\S=SIN(P)\C=COS(P)\M2=M0*T1*F/B 550 R3=-0.5*R0*((V0/R)^2)+R*A1*A1\A3=-2*R1*A1/R 560 FOR I = 1 TO N\IF M1=0 THEN 580\M1=M1-M2\IF M1>0 THEN 590 570 F=F*(1+M1/M2)\M2=M1+M2\PRINT"TREIBSTOFFTANK LEER"\M1=0\GOTO 590 580 F=0\M2=0 590 M=M-0.5*M2\R4=R3\R3=-0.5*R0*((V0/R)^2)+R*A1*A1 600 R2=(3*R3-R4)/2+0.00526*F1*F*C/M\A4=A3\A3=-2*R1*A1/R 610 A2=(3*A3-A4)/2+0.00526*F1*F*S/(M*R)\X=R1*T1+0.5*R2*T1*T1 620 R=R+X\H0=H0+X\R1=R1+R2*T1\A=A+A1*T1+0.5*A2*T1*T1\A1=A1+A2*T1 630 M=M-0.5*M2\T=T+T1\IF H0<D9 THEN 640\NEXT I 640 H=H0*Z\H1=R1*Z\D=R0*A*Z\D1=R*A1*Z\T2=M1*B/M0\T2=INT(T2+0.5) 650 IF H1< 0 THEN 660\H1=INT(H1+0.5)\GOTO 670 660 H1=INT(H1-0.5) 670 IF D < 0 THEN 680\D=INT(D+0.5)\GOTO 690 680 D=INT(D-0.5) 690 IF D1 < 0 THEN 700\D1=INT(D1+0.5)\GOTO 710 700 D1=INT(D1-0.5) 710 IF ABS(H)<1 THEN 730\IF H<0 THEN 720\H=INT(H+0.5)\GOTO 730 720 H=INT(H-0.5) 730 T=INT(T+0.5)\PRINT TAB(1);T;TAB(8);H;TAB(18);D;TAB(36);H1;TAB(49); 740 PRINT D1;TAB(62);T2 750 IF H0<D9 THEN 770\IF R0*A>164.47 THEN 970\IF M1>0 THEN 500 760 T1=20\F=0\P=0\GOTO 530 770 IF R1<-8.2196E-04 THEN 910\IF ABS(R*A1)>4.9317E-04 THEN 910 780 IF H0<-D9 THEN 910\IF ABS(D)>10*Z THEN 990\GOTO 870 790 PRINT"MIT DIESER KAPSEL KOENNEN SIE DIE RAUM-ZEIT GESETZE "; 800 PRINT"NICHT UEBERWINDEN!"\GOTO 500 810 PRINT"WENN SIE HERUMSPINNEN WOLLEN,DANN STEIGEN SIE DOCH AUS!!" 820 GOTO 500 830 PRINT"UNMOEGLICHER SCHUBWERT:";\IF F<0 THEN 860 840 IF F < 0.1 THEN 850\PRINT"ZU GROSS!"\GOTO 500 850 PRINT"ZU KLEIN!"\GOTO 500 860 PRINT"NEGATIVER WERT"\GOTO 500 870 PRINT"HIER IST DIE KONTROLLSTATION -- DER ADLER IST SICHER "; 880 PRINT"GELANDET"\PRINT"HERZLICHEN GLUECKWUNSCH -- ES GAB KEINE "; 890 PRINT"BESCHAEDIGUNGEN AN DER KAPSEL"\PRINT"SIE KOENNEN "; 900 PRINT"NUN MIT DEM FORSCHUNGSPROGRAMM BEGINNEN."\GOTO 1020 910 PRINT PNT(7);"************ WRUMMM ************" 920 PRINT"UM SIE TUT ES MIR NUN WIRKLICH LEID:SIE SIND ABGESTUERZT!" 930 PRINT"DADURCH HABEN SIE EBEN EINEN KRATER VON";ABS(H);M$; 940 PRINT" TIEFE VERURSACHT!"\X1=SQR(D1*D1+H1*H1) 950 PRINT"SIE SIND MIT EINER GESCHWINDIGKEIT VON";X1;"M/SEK"; 960 PRINT" AUFGESCHLAGEN"\GOTO 1020 970 PRINT"SIE SIND IM ALL VERLOREN GEGANGEN --" 980 PRINT"OHNE HOFFNUNG AUF EINE WIEDERKEHR"\GOTO 1020 990 PRINT"SIE SIND SICHER GELANDET - - - SIE HABEN ABER DIE "; 1000 PRINT"LANDESTELLE"\PRINT"UM";ABS(D/G5);N$;" VERFEHLT."\GOTO 1020 1010 PRINT"MISSION IST ABGEBROCHEN!" 1020 PRINT"WOLLEN SIE NOCH MAL FLIEGEN(J ODER N)";\INPUT Z$ 1030 IF Z$="J" THEN 50\IF Z$="N" THEN 1040\PRINT R$\GOTO 1020 1040 PRINT"SCHADE,DAS MONDLANDEPROGRAMM BEDAUERT ES IMMER "; 1050 PRINT"ERFAHRENE ASTRONAUTEN"\PRINT"ZU VERLIEREN!" 1060 GOTO 1130 1070 PRINT 1080 PRINT"GUT,WOLLEN SIE NUN DIE KOMPLETTE EINFUEHRUNG(1),DIE EIN"; 1090 PRINT"GABE ","AUSGABE EINWEISUNGEN(2) ODER NICHTS VON BEIDEM(3)"; 1100 INPUT B1
1110 IF B1=1 THEN 120\IF B1=2 THEN 330\IF B1=3 THEN 450 1120 PRINT R$\GOTO 1080 1130 END HE=",S:10:2," GESCHW.=",V:8:2," SPRIT=",SPRIT1," L"); WRITELN ("WIEVIEL LITER WOLLEN SIE ZUM BREMSEN INVESTIEREN?"); READLN;READ(SPRIT2); IF SPRIT2>SPRIT1 THEN BEGIN SPRIT1:=SPRIT1; P:=SPRIT1 END ELSE IF SPRIT2<0 THEN SPRIT1:=SPRIT1 ELSE SPRIT1:=SPRIT1-SPRIT2; IF SPRIT2>P THEN WRITELN ("SIE HABEN IHREN SPRITVORAT UEBERZOGEN,FLABES!!!!!") ELSE IF SPRITPROGRAM ACKERMANN(IN,OUT); VAR I,J: INTEGER; FUNCTION ACKER(M,N: INTEGER): INTEGER; BEGIN IF M=0 THEN ACKER := N+1 ELSE IF N=0 THEN ACKER := ACKER(M-1,1) ELSE ACKER := ACKER(M-1,ACKER(M,N-1)) END; BEGIN WRITE("I,J ");READLN;READ(I,J); WRITELN("ACKER(",I:1,",",J:1,") = ",ACKER(I,J):5) END.
PROCEDURE EINGABE(VAR WORT:STRING); VAR LAENGE:INTEGER; BEGIN READLN; LAENGE:=1; REPEAT READ(WORT[LAENGE]; LAENGE:=LAENGE+1 UNTIL (LAENGE=100) OR EOLN; WORT[LAENGE]:="@" END (*EINGABE*); PROCEDURE AUSGABE(VAR WORT:STRING); VAR LAENGE:INTEGER; BEGIN LAENGE:=1; REPEAT WRITE(WORT[LAENGE]); LAENGE:=LAENGE+1 UNTIL WORT[LAENGE]="@" END (*AUSGAGE*); PROCEDURE VERTAUSCHE(VAR A,B:CHAR); VAR HILF:CHAR; BEGIN HILF:=A;A:=B;B:=HILF END (*VERTAUSCHE*); FUNCTION LAENGE(VAR WORT:STRING):INTEGER; VAR ANZAHL:INTEGER; BEGIN ANZAHL:=0; REPEAT ANZAHL:=ANZAHL+1 UNTIL WORT[ANZAHL]="@"; ANZAHL:=ANZAHL-1; LAENGE:=ANZAHL END (*LAENGE*); FUNCTION GLEICH(VAR WORT1,WORT2:STRING):BOOLEAN; VAR ABBRUCH:BOOLEAN; ZAEHLER:INTEGER; BEGIN ZAEHLER:=1; IF LAENGE(WORT1)<>LAENGE(WORT2) THEN NOT ABBRUCH ELSE REPEAT ABBRUCH:=WORT1[ZAEHLER]=WORT2[ZAEHLER]; ZAEHLER:=ZAEHLER+1 UNTIL (NOT ABBRUCH) OR (WORT1[ZAEHLER]="@"); GLEICH:=ABBRUCH END (*GLEICH*);
PROGRAM MINISIMULATION (IN,OUT); CONST P=50; D=20; TYPE WORT=ARRAY[1..4] OF CHAR; BEFEHL=RECORD OP:WORT; ADR:INTEGER; END; SPEICHER=RECORD OP:ARRAY[1..P] OF WORT; ADR:ARRAY[1..P] OF INTEGER; END; VAR DS:ARRAY[1..D] OF REAL; PS:SPEICHER; BR:BEFEHL; (*BEFEHLREGISTER*) ANTWORT:CHAR; PROCEDURE PROGEINGABE; VAR I:INTEGER; PROCEDURE LESE; VAR J:INTEGER; ZEICHEN:CHAR; BEGIN FOR J:=1 TO 4 DO BEGIN READ(ZEICHEN); PS.OP[I][J]:=ZEICHEN END END; BEGIN I:=0; READLN; REPEAT I:=I+1;WRITELN;WRITE(I:3);WRITE(" OPERATIONSTEIL:"); LESE(PS.OP[I]);WRITE(" ADRESSTEIL:");READ(PS.ADR[I]) UNTIL PS.OP[I][4]="." END; PROCEDURE PROGAUSGABE; VAR I:INTEGER; PROCEDURE SCHREIBE; VAR J:INTEGER; ZEICHEN:CHAR; BEGIN FOR J:=1 TO 4 DO BEGIN ZEICHEN:=PS.OP[I][J];WRITE(ZEICHEN) END END; BEGIN I:=0;WRITELN; WRITELN("DER PROGRAMMSPEICHER ENTHAELT FOLGENDES PROGRAMM:"); REPEAT I:=I+1 SCHREIBE(PS.OP[I]);WRITELN(" ",PS.ADR[I]:3) UNTIL PS.OP[I][4]="." END; PROCEDURE RUN; VAR BZR:INTEGER; (*BZR= BEFEHLSZAEHLREGISTER*) AC:REAL; PROCEDURE BEFEHLHOLEN(ADRESSE:INTEGER); BEGIN BR.OP:=PS.OP[ADRESSE]; BR.ADR:=PS.ADR[ADRESSE] END; PROCEDURE ACAUSGABE; BEGIN WRITELN("<AC>=",AC:10:4) END; PROCEDURE PROGSCHRITT; VAR I:INTEGER; BEGIN WRITELN(BZR:3,". PROGRAMMBEFEHL:"); WRITE("OPPERATIOLSTEIL:");FOR I:=1 TO 4 DO WRITE(BR.OP[I]); WRITE(" , ADRESSTEIL:",BR.ADR:3);WRITELN END; BEGIN (*-----RUN-----*) BZR:=0; REPEAT BZR:=BZR+1; BEFEHLHOLEN(BZR); PROGSCHRITT; CASE BR.OP[4] OF (*BEFEHLDECODIERUNG,DATENEINLESEN,AKKUMULATORAUSGABE*) "D":BEGIN WRITELN("DATENSPEICHERADRESSE ",BR.ADR:3,":"); READ(DS[BR.ADR]) END; "T":WRITELN("<DATENSPEICHERADRESSE ",BR.ADR:3," >=",DS[BR.ADR]:10:4); "E":BEGIN AC:=DS[BR.ADR];ACAUSGABE END; "R":BEGIN DS[BR.ADR]:=AC;ACAUSGABE END; "+":BEGIN AC:=AC+DS[BR.ADR];ACAUSGABE END; "-":BEGIN AC:=AC-DS[BR.ADR];ACAUSGABE END; "*":BEGIN AC:=AC*DS[BR.ADR];ACAUSGABE END; "/":IF DS[BR.ADR]<>0 THEN BEGIN AC:=AC/DS[BR.ADR];ACAUSGABE END ELSE BEGIN WRITELN("DIVISION DURCH 0 IST UNZULAESSIG,"); WRITELN("WERTBELEGUNG VON DS.ADR ",BR.ADR:3," AENDERN !") END; "P":BEGIN IF AC>0 THEN BZR:=BR.ADR-1;WRITELN("BZR=",BZR:3) END; "0":BEGIN IF AC=0 THEN BZR:=BR.ADR-1;WRITELN("BZR=",BZR:3) END; "O":BEGIN BZR:=BR.ADR-1;WRITELN("BZR=",BZR:3) END; END UNTIL BR.OP[4]="." END; (*-----RUN-----*) PROCEDURE DIALOGTEXT; BEGIN WRITELN("DIESES PROGRAMM BEARBEITET PROGRAMME, DIE AUS FOLGENDEN"); WRITELN("EINADRESSBEFEHLEN BESTEHEN:"); WRITELN("READ X, WRIT X, ADD+ X, SUB- X, MUL* X, DIV/ X, LADE X,"); WRITELN("STOR X, GOTO Y, GO.P Y, GO.0 Y, END. 0 ."); WRITELN; WRITELN("LAUT VEREINBARUNG KANN EIN PROGRAMM MAX. 50 BEFEHLE ENTHALTEN,"); WRITELN("ES STEHEN 20 DATENSPEICHERPLAETZE ZUR VERFUEGUNG ."); WRITELN("WERDEN DIESE GRENZEN UEBERSCHRITTEN, MUESSEN ZUVOR DIE"); WRITELN("KONSTANTEN P UND D ERHOEHT WERDEN ."); WRITELN("GEBEN SIE EIN PROGRAMM EIN !") END; BEGIN (*---HAUPTPROGRAMM---*) DIALOGTEXT; REPEAT PROGEINGABE; PROGAUSGABE; REPEAT RUN; WRITELN("WOLLEN SIE NEUE DATEN FUER DIESES PROGRAMM EINGEBEN (J/N) ?"); READLN;READ(ANTWORT) UNTIL ANTWORT="N"; WRITELN("WOLLEN SIE EIN NEUES PROGRAMM EINGEGEN (J/N) ?"); READLN;READ(ANTWORT) UNTIL ANTWORT="N"; END.
PROGRAM TANZPARTNERWAHL(IN,OUT); CONST MAX=20;N=10; TYPE STRING=ARRAY [1..MAX] OF CHAR; EHELEUTE=ARRAY [1..N] OF STRING; PAAR=ARRAY [1..10] OF INTEGER; VAR HERR:EHELEUTE;DAME:PAAR;I,ANZAHL,Z:INTEGER; PROCEDURE TREAD(VAR TEXT:STRING); VAR I:INTEGER; BEGIN I:=1; REPEAT READ(TEXT[I]); I:=I+1 UNTIL EOLN OR (I=MAX); TEXT[I]:="@" END; PROCEDURE TWRITE(VAR TEXT:STRING); VAR I:INTEGER; BEGIN I:=1; REPEAT WRITE(TEXT[I]); I:=I+1 UNTIL TEXT[I]="@" END; FUNCTION ZUFALL(A,B:INTEGER):INTEGER; BEGIN ZUFALL:=TRUNC(RANDOM*(B-A))+1+A END; PROCEDURE TAUSCH(VAR O,P:INTEGER); VAR Q:INTEGER; BEGIN Q:=O;O:=P;P:=Q END; PROCEDURE MISCHEN(VAR DAME:PAAR); VAR I,WAHL:INTEGER; BEGIN FOR I:=1 TO ANZAHL-1 DO BEGIN WAHL:=ZUFALL(I,ANZAHL); WRITELN(WAHL); TAUSCH(DAME[I],DAME[WAHL]); END; END; BEGIN WRITE("ANZAHL EHELEUTE?");READLN;READ(ANZAHL); FOR I:=1 TO ANZAHL DO BEGIN WRITELN("GEBEN SIE DEN NAMEN",I,".PAAR EIN");READLN; TREAD(HERR[I]) END; FOR I:=1 TO ANZAHL DO BEGIN DAME[I]:=I; MISCHEN(DAME); WRITELN(DAME[I]);WRITELN(I); END; FOR I:=1 TO ANZAHL DO BEGIN WRITELN("HERR ");TWRITE(HERR[I]); Z:=DAME[I]; WRITE(" TANZT MIT FRAU ");TWRITE(HERR[Z]) END END.
); WRITE ("DRUCKUNTERSCHIED WIRD BERECHNET!");WRITELN; H:=Z*0.98; TM:=T+(0.325*H/100); DP:=EXP((G*H)/(RL*TM)-1)*L; LK:=L+DP; WRITE ("GENAUERE ORTSHOEHE WIRD BERECHNET!");WRITELN; P0:=DP+L; HN:=18400*(1+AL*T)*LN(P0/L)/LN(10); WRITELN("AUSGANGSWERTE:"); WRITELN("_________________________________________________"); WRITELN("SCHWEREBESCHLEUNIGUNG:",G:10:7," M/S2"); WRITELN("LUFTTEMPERATUR :",T:5:1," GRAD CELSIUS"); WRITELN("LUFTDRUCK ORTSHOEHE :",L:10:2," MBAR"); WRITELN("_________________________________________________"); WRITELN("LUFTDRUCK KORRIGIERT :",LK:10:2," MBAR"); WRITELN("ORTSHOEHE :",HN:8:1," M"); END.
PROGRAM SIEBZEHNUNDVIER(INPUT,OUTPUT); TYPE STAPEL=ARRAY[1..32]OF INTEGER; PLAYERS=ARRAY[1..5]OF INTEGER; VAR KARTE:STAPEL; SPIELER:PLAYERS; ANTWORT:CHAR; I,BEST,ANZAHLSPIELER,KARTENANZAHL:INTEGER; PROCEDURE TAUSCHE (VAR X,Y:INTEGER); VAR Z:INTEGER; BEGIN Z:=X;X:=Y;Y:=Z END; PROCEDURE AUSGANGSBELEGUNG (VAR KARTE:STAPEL); VAR I:INTEGER; BEGIN FOR I:=1 TO 4 DO BEGIN KARTE[I]:=2;KARTE[I+4]:=3; KARTE[I+8]:=4;KARTE[I+12]:=7; KARTE[I+16]:=8;KARTE[I+20]:=9; KARTE[I+24]:=10;KARTE[I+28]:=11 END END; PROCEDURE MISCHEN (VAR KARTE:STAPEL); VAR I:INTEGER; BEGIN WRITELN("MOMENT,ICH MUSS JETZT DIE KARTEN MISCHEN!"); FOR I:=1 TO 100 DO TAUSCHE(KARTE[32],KARTE[TRUNC(32*RANDOM)+1]) END; PPROGRAM BELZ(IN,OUT); CONST D=76;F=1200;A=70; VAR F0,V,ASA,B,T:REAL;Z:INTEGER; BEGIN WRITE("F OK");READLN;READ(F0); WRITE("ASA");READLN;READ(ASA); WRITE("B");READLN;READ(B); V:=A*F/(D*F0); T:=V*V/(ASA*B); IF T>1 THEN WRITELN("BT=",ROUND(T)," S") ELSE WRITELN("BT= 1/",ROUND(1/T),"S"); END.
Messier-Catalog Aequ:1975 M RA Dec Mag h/m * ' 1 0533 2200 8 PNEB. 2 2132 -0058 6 GL.CL. 3 1341 2832 6 GL.CL. 4 1622 -2627 6 GL.CL. 5 1517 0212 6 GL.CL. 6 1738 -3212 5 OP.CL. 7 1753 -3448 5 OP.CL. 8 1802 -2420 7 DNEB. 9 1717 -1829 7 GL.CL. 10 1656 -0404 7 GL.CL. 11 1849 -0618 6 OP.CL. 12 1646 -0154 7 GL.CL. 13 1641 3630 6 GL.CL. 14 1736 -0314 8 GL.CL. 15 2132 1202 6 GL.CL. 16 1817 -1347 6 OP.CL. 17 1818 -1611 8 DNEB. 18 1818 -1708 8 OP.CL. 19 1701 -2613 7 GL.CL. 20 1800 -2302 6 DNEB. 21 1803 -2230 7 OP.CL. 22 1834 -2537 6 GL.CL. 23 1755 -1901 7 OP.CL. 24 1817 -1826 5 OP.CL. 25 1830 -1916 - OP.CL. 26 1844 -0926 9 OP.CL. 27 1958 2238 8 PNEB. 28 1823 -2453 7 GL.CL. 29 2023 3825 7 OP.CL. 30 2139 -2320 8 GL.CL. 31 0041 4107 5 SP.GX. 32 0041 4043 9 EL.GX. 33 0132 3030 7 SP.GX. 34 0240 4239 6 OP.CL. 35 0607 2420 5 OP.CL. 36 0533 3408 6 OP.CL. 37 0550 3233 6 OP.CL. 38 0527 3549 7 OP.CL. 39 2132 4818 6 OP.CL. 40 - - - - 41 0646 -2044 5 OP.CL. 42 0534 -0524 6 DNEB. 43 0534 -0517 9 DNEB. 44 0838 1948 4 OP.CL. 45 0345 2402 2 OP.CL. 46 0741 -1445 6 OP.CL. 47 - - - - 48 0812 -0148 - OP.CL. 49 1228 0809 9 EL.GX. 50 0702 -0818 6 OP.CL. 51 1329 4721 8 SP.GX. 52 2323 6126 7 OP.CL. 53 1312 1820 8 GL.CL. 54 1853 -3031 8 GL.CL. 55 1938 -3100 5 GL.CL. 56 1916 3007 8 GL.CL. 57 1853 3300 9 PNEB. 58 1235 1158 9 SP.GX. 59 1241 1148 10 EL.GX. 60 1242 1143 9 EL.GX. 61 1220 0438 10 SP.GX. 62 1659 -3005 7 GL.CL. 63 1315 4211 10 SP.GX. 64 1255 2141 9 SP.GX. 65 1117 1317 9 SP.GX. 66 1119 1310 8 SP.GX. 67 0849 1155 6 OP.CL. 68 1238 -2636 8 GL.CL. 69 1829 -3222 9 GL.CL. 70 1841 -3220 10 GL.CL. 71 1952 1836 9 GL.CL. 72 2052 -1239 10 GL.CL. 73 - - - - 74 0135 1538 10 SP.GX. 75 2024 -2201 8 GL.CL. 76 0140 5125 12 PNEB. 77 0241 -0009 9 SP.GX. 78 0545 0003 10 DNEB. 79 0523 -2433 8 GL.CL. 80 1615 -2255 8 GL.CL. 81 0954 6912 8 SP.GX. 82 0954 6950 9 SP.GX. 83 1335 -2943 10 SP.GX. 84 1224 1303 9 EL.GX. 85 1224 1821 9 EL.GX. 86 1225 1306 10 EL.GX. 87 1229 1233 9 EL.GX. 88 1231 1435 10 SP.GX. 89 1234 1243 10 EL.GX. 90 1234 1319 10 SP.GX. 91 - - - - 92 1717 4311 6 GL.CL. 93 0742 -2348 6 OP.CL. 94 1250 4117 8 SP.GX. 95 1042 1152 10 SP.GX. 96 1045 1159 9 SP.GX. 97 1113 5512 12 PNEB. 98 1212 1504 11 SP.GX. 99 1217 1435 10 SP.GX. 100 1221 1559 11 SP.GX. 101 1402 5429 10 SP.GX. 102 1506 5557 11 SP.GX. 103 0131 6033 7 OP.CL. 104 1238 -1128 9 SP.GX. 105 1046 1245 9 SP.GX. 106 1218 4728 7 SP.GX. 107 1631 -1259 9 GL.CL. 108 1110 5551 10 SP.GX. 109 1156 5332 11 SP.GX.
PROGRAM PARABELNAHEEPHEMERIDEN (IN,OUT); CONST K=0.01720209895;PI=3.1415926536; VAR X,Y,Z,M,R,V,F,E,PX,PY,PZ,QX,QY,QZ,I,W,L,EKL,S1,S2,S3,RA,DEC,DELTA:REAL; H0,H1,H2,H3,H4,Q,C3,CHI,E0,A,T,GR,TAU,CE,SE:REAL; D,MO,J:INTEGER; FUNCTION SGN (VAR X:REAL):INTEGER; BEGIN IF X=0 THEN SGN:=0; IF X>0 THEN SGN:=1 ELSE SGN:=-1; END; FUNCTION ARCSIN (VAR X:REAL):REAL; BEGIN ARCSIN:=ARCTAN (SQRT (1/(SQR (X)-1)))*SGN (X); END; FUNCTION TAN (X:REAL):REAL; BEGIN TAN:=SIN (X)/COS (X); END; FUNCTION F3 (VAR X:REAL):REAL; VAR I:INTEGER; H,F,X2:REAL; BEGIN H:=1/6;F:=H; I:=4; REPEAT H:=H*X2/I/(I+1); F:=F+H; I:=I+2; UNTIL ABS (H/F)<1E-8; F3:=F; END; PROCEDUR XYZ (VAR D,M,J:INTEGER); VAR X,Y,Z,J1,D1,E,E1,F,MA,V,R,S,T,OM,EKL:REAL; BEGIN J1:=J-1900;S:=TRUNC ((J1-1)/4); D1:=S+TRUNC (30.6*M+0.53/SQR (M-1.55)-32.3)+D-0.5; IF (J MOD 4=0) AND (M>=3) THEN D1:=D1+1; T:=(365*J1+D1)/36525; OM:=281.220833+1.719175*T+0.000361*T*T; F:=0.01675104-0.0000418*T; EKL:=23.452294-0.0130125*T; MA:=-1.524155-0.00015*T*T-0.25590255*J1+0.98560027*D1; MA:=MA*PI/180;EKL:=EKL*PI/180;OM:=OM*PI/180; E1:=MA; REPEAT E:=E1; E1:=M+F*SIN (E); UNTIL ABS (E-E1)<1E-7; R:=1-F*COS (E); V:=2*ARCTAN (SQRT ((1+F)/(1-F))*TAN (E/2)); V:=V+OM; X:=R*COS (V); Y:=R*SIN (V)*COS (EKL); Z:=R*SIN (V)*SIN (EKL); END; (*================Hauptprogramm================*) BEGIN WRITE("TAG");READLN;READ(D); WRITE("MONAT");READLN;READ(MO); WRITE("JAHR");READLN;READ(J); XYZ(D,MO,J); WRITE("GROSSE HALBACHSE A");READLN;READ(A); WRITE("BAHNEXZENTRIZITAET E");READLN;READ(F); WRITE("DELTA T");READLN;READ(T); Q:=A*(1-F); TAU:=K*T; (*++++Hilfsgroessen++++*) GR:=F/Q/Q/Q*SQR (TAU); CHI:=SQRT ((1-F)/Q/Q/Q)*TAU; (*-------Startwert fuer E-------*) E0:=0;C3:=1/6; (* Iterationsverfahren *) WHILE ABS (E-E0)>1E-7 DO BEGIN E:=E0; C3:=F3 (E); H0:=1/C3/GR;H1:=H0/2;H2:=SQRT (1+4/27*H0); Z:=EXP (LN (H1*H2+H1)/3)-EXP (LN (H1*H2-H1)/3); E0:=CHI*Z END; R:=A*(1-F*COS (E)); V:=2*ARCTAN (SQRT ((1+F)/(1-F))*TAN (E/2)); WRITELN("RADIUSVEKTOR R:",R:10:6); WRITELN("WAHRE ANOMALIE V:",V*180/PI:10:4," *"); (*=====Gauss'sche Konstanten=====*) WRITE("LAENGE DES PERIHELS VOM AUFSTEIGENDEN KNOTEN");READLN;READ(W); WRITE("LAENGE DES AUFSTEIGENDEN KNOTENS");READLN;READ(L); I:=EKL; W:=W*PI/180;L:=L*PI/180;I:=I*PI/180; PX:=COS (W)*COS (L)-SIN (W)*SIN (L)*COS (I); H1:=COS (W)*SIN (L)+SIN (W)*COS (L)*COS (I); H2:=SIN (W)*SIN(I); QX:=-SIN (W)*COS (L)-COS (W)*SIN (L)*COS (I); H3:=-SIN (W)*SIN (L)+COS (W)*COS (L)*COS (I); H4:=COS (W)*SIN (I); CE:=COS (EKL);SE:=SIN (EKL); PY:=H1*CE-H2*SE; PZ:=H2*CE+H1*SE; QY:=H3*CE-H4*SE; QZ:=H4*CE+H3*SE; WRITELN("PX=",PX:10:6); WRITELN("PY=",PY:10:6); WRITELN("PZ=",PZ:10:6); WRITELN("QX=",QX:10:6); WRITELN("QY=",QY:10:6); WRITELN("QZ=",QZ:10:6); W:=Q*2*V;V:=Q*(1-SQR (V)); S1:=PX*V+W*QX+X; S2:=PY*V+W*QY+Y; S3:=PZ*V+W*QZ+Z; (*-----Berechnung von RA und Dec-----*) DELTA:=SQRT (SQR (S1)+SQR (S2)+SQR (S3)); DEC:=S3/DELTA; DEC:=ARCSIN (DEC); RA:=2*ARCTAN ((DELTA*COS (DEC)-S1)/S2); RA:=RA*12/PI; WHILE (RA>24) DO RA:=RA-24; WHILE (RA<0) DO RA:=RA+24; RA:=TRUNC (RA)+TRUNC (RA-TRUNC (RA))*0.6; WRITELN("DEC=",DEC:10:4," *"); WRITELN("RA=",RA:11:4," H"); END.
PROGRAM HANOI (IN,OUT); VAR AUS,ZWISCHEN,ENDE,N:INTEGER; PROCEDUR SCHLEPPE (N,AUS,ZWISCHEN,ENDE:INTEGER); BEGIN IF N>1 THEN SCHLEPPE(N-1,AUS,ENDE,ZWISCHEN); WRITELN("SCHLEPPE DIE SCHEIBE VON",AUS:3," NACH",ENDE:3); IF N>1 THEN SCHLEPPE(N-1,ZWISCHEN,AUS,ENDE); END; (*==========Hauptprogramm==========*) BEGIN WRITE("WIEVIELE SCHEIBEN SIND ZU TRANSPORTIEREN");READLN;READ(N); SCHLEPPE(N,1,2,3) END.
PROGRAM SORTIEREN (IN,OUT); CONST N=100; VAR FELD:ARRAY [1..N] OF REAL; MIN,C:REAL; A,F,I,T:INTEGER; BEGIN WRITE("ANZAHL DER ZAHLEN");READLN;READ(F); FOR A:=1 TO F DO BEGIN WRITE(A:3,".ZAHL");READLN;READ(FELD[A]) END; FOR A:=1 TO F-1 DO BEGIN MIN:=FELD[A];T:=A; FOR I:=A+1 TO F DO IF FELD[I]<MIN THEN BEGIN MIN:=FELD[I];T:=I END; C:=FELD[T];FELD[T]:=FELD[A];FELD[A]:=C END; FOR A:=1 TO F DO WRITELN(FELD[A]:10:3) END.
NGABE BEENDET IST"); READLN;J:=0; REPEAT J:=J+1;I:=0;LISTE[J,1]:="*"; REPEAT I:=I+1; READ(LISTE[J,I]); UNTIL EOLN OR (I=30); IF I<30 THEN BEGIN I:=I+1; LISTE[J,I]:="*" END; IF LISTE[J,1]="#" THEN BEGIN FOR K:=(J+1) TO MAX DO LISTE[K,1]:="*"; J:=MAX END UNTIL J=MAX END; BEGIN REPEAT WRITELN; WRITE("RUFEN SIE DAS GEWUENSCHTE UNTERPROGRAMM AUF"); WRITELN; WRITELN("EINGABE DES STAMMBAUMES: I"); WRITELN("NAME EINES VERWANTEN SUCHEN: V"); WRITELN("ENDE : E"); READLN(Q); CASE Q OF "I":EINGABE; "D":BEGIN WRITELN("GEBEN SIE DIE VERWANDTSCHAFTSBEZIEHUNG EIN."); WRITELN("KENNZEICHNUNG DES ENDES DURCH *"); VERSUCH END; END UNTIL Q="E" END.
PROGRAM BOMBENANGRIFFE(INPUT,OUTPUT); VAR Y,I,J,V0,FELD1,FELD2,ROT,ZU,H,O,S,PU1,PU2,GPU,FE:INTEGER; T,SB,WS,WO,WBOM,OB,RES,V1,V2:REAL; FR,P,DE:CHAR; BEGIN FOR Y:=1 TO 17 DO V0:=TRUNC(120*RANDOM)+1; FOR I:=1 TO 23 DO FELD1:=TRUNC(500*RANDOM)+1; FOR J:=1 TO 54 DO FELD2:=TRUNC(1000*RANDOM)+1; WRITELN("WUENSCHEN SIE NAEHERE INFORMATIONEN J ODER N ?"); READLN;READ(FR); IF FR="J" THEN BEGIN WRITELN("SIE SIND DER PILOT EINES BOMBERS."); WRITELN ("SIE MUESSEN VERSUCHEN DAS ANGEGEBENE PLANFELD ZU TREFFEN ."); WRITELN ("JE HOEHER SIE DIE BOMBE ABWERFEN U. JE SCHNELLER IHRE"); WRITELN ("ABWURFGESCHW. IST,DESTO MEHR PUNKTE KOENNEN SIE ERREICHEN."); WRITELN ("SIE KOENNEN IHRE GESCHW. ,HOEHE,ENTFERNUNG ZUM PLANFELD U. IHRE "); WRITELN ("X-ORIENTIERUNG SELBST WAEHLEN. ALLERDINGS DARF IHRE HOEHE 300M NICHT"); WRITELN ("UEBERSCHREITEN UND 50 M NICHT UNTERSCHREITEN."); WRITELN ("IHRE GESCHW. DARF NICHT GERINGER ALS 30 M/SEC SEIN UND NICHT SCHNELLER ALS"); WRITELN (" 160 M/SEC.SOLLTEN SIE EINE FALSCHE EINGABE MACHEN,BEKOMMEN SIE MINUSPUNKTE."); WRITELN ("ENTFERNUNGEN VOR DER 0-STELLE DES PLANRECHTECKES WERDEN MIT -ZAHLEN ANGEGEBEN."); WRITELN ("AUSSERDEM BEKOMMEN SIE INFORMATIONEN UEBER DIE WINDVERHAELTNISSE "); WRITELN ("IN DEN VERSCHIEDENEN HOEHEN.VIEL GLUECK!") END; FOR ROT:=1 TO 17 DO ZU:=TRUNC(5*RANDOM)+1; CASE ZU OF 1:BEGIN WO:=-13.7; WS:=-30.4; WRITELN("LEICHTER WIND VON RECHTS.MAESSIGER GEGENWIND.") END; 2:BEGIN WO:=50.34; WS:=5.42; WRITELN("SEHR STARKER WIND VON LINKS.KAUM RUECKENWIND.") END; 3:BEGIN WO:=0; WS:=0; WRITELN("DER WIND MACHT IHNEN KEINE SCHWIERIGKEITEN.") END; 4:BEGIN WO:=0;WS:=-60.467; WRITELN("KEIN SEITEN WIND,ABER SEHR STARKER GEGENWIND") END; 5:BEGIN WO:=-16.345;WS:=6.76; WRITELN("MAESSIGER SEITEN WIND VON RECHTS,LEICHTER RUECKENWIND.") END END; WRITELN("SIE MUESSEN DAS PLANQUADRAT ",FELD1,FELD2," TREFFEN."); WRITELN("IHRE GESCHWINDIGKEIT BETRAEGT ",V0); P:="J"; REPEAT WRITELN("WIE WOLLEN SIE IHRE HOEHE WAEHLEN?"); READLN;READ(H); IF (H>300) OR (H<50) THEN BEGIN WRITELN ("FALSCHE EINGABE.SIE SIND DADURCH ABGESCHOSSEN WORDEN.MINUSPUNKTE!!!!!"); FE:=1 END; WRITELN("IHRE ORIENTIERUNG BITTE?"); READLN;READ(O); WRITELN("IHRE ABWURFGESCHWINDIGKEIT?"); READLN;READ(V0); IF (V0>160) OR (V0<30) THEN BEGIN WRITELN ("FALSCHE EINGABE.SIE HABEN DAS UNTER NEHMEN NICHT UEBERLEBT."); FE:=1 END; WRITELN("IHRE ENTFERNUNG?"); READLN;READ(S); WRITELN("WOLLEN SIE NOCH ETWAS AENDERN?"); READLN;READ(DE); IF DE ="N" THEN P:="N" UNTIL P="N"; WRITELN("JETZT WIRD GEBOMMBT!"); T:=SQRT(H/4.905); WBOM:=H*WO/100; SB:=V0*T+WS; OB:=O+WBOM; V1:=(FELD1-OB) ; IF V1<0 THEN V1:=V1*(-1); V2:=(FELD2-SB) ; IF V2<0 THEN V2:=V2*(-1); RES:=SQRT(V1*V1+V2*V2); IF FE=0 THEN BEGIN WRITELN("SIE HABEN DAS ZIEL UM ",RES:10:4," M VERFEHLT."); WRITELN("DIE BOMBE WAR ",T:10:5," SEC IN DER LUFT."); PU1:=ROUND(T*2.5); PU2:=TRUNC (1500/RES); GPU:=PU1+PU2; WRITELN("SIE HABEN ",GPU," PUNKTE ERREICHT.") END ELSE BEGIN WRITELN ("AUFGRUND IHRE FALSCHEN EINGABE HABEN SIE 200 MINUSPUNKTE ERREICHT."); WRITELN ("SCHUMMELN LOHNT SICH NICHT.SPIELEN SIE NACH DEN REGELN!!!!!") END; FE:=0; WRITELN("WENN SIE ES NOCHMAL VERSUCHEN WOLLEN,DRUECKEN SIE START.") END.
PROGRAM RECHNERSIMULATION (IN,OUT); CONST D=30;P=50; TYPE WORT=ARRAY [1..5] OF CHAR; BEFEHL=RECORD OP:WORT; ADR:INTEGER; END; SPEICHER=RECORD OP:ARRAY [1..P] OF WORT; ADR:ARRAY [1..P] OF INTEGER; END; VAR DS:ARRAY [1..D] OF REAL; PS:SPEICHER; BR:BEFEHL; AC:REAL; BZR,DAR,ADR,LAENGE:INTEGER; ANWEISUNG,MODUS:WORT; BEDINGUNG:BOOLEAN; PROCEDUR TREAD (VAR ANWEISUNG:WORT); VAR INDEX:INTEGER; BEGIN INDEX:=0; REPEAT INDEX:=INDEX+1;READ(ANWEISUNG[INDEX]); UNTIL EOLN OR (INDEX=5); END; PROCEDUR TWRITE (VAR ANWEISUNG:WORT); VAR INDEX:INTEGER; BEGIN FOR INDEX:=1 TO 4 DO WRITE(ANWEISUNG[INDEX]); END; PROCEDUR LIST (VAR PS:SPEICHER); VAR I:INTEGER; BEGIN WRITELN; WRITELN("DER PROGRAMMSPEICHER ENTHAELT FOLGENDES PROGRAMM:"); WRITELN; FOR I:=1 TO LAENGE DO BEGIN WRITE(I:3,":");TWRITE(PS.OP[I]);WRITELN(PS.ADR[I]:3); END; WRITELN; END; PROCEDUR DELET (VAR ZEILE:INTEGER); VAR I:INTEGER; BEGIN FOR I:=ZEILE TO LAENGE DO BEGIN PS.OP[I] :=PS.OP[I+1]; PS.ADR[I]:=PS.ADR[I+1]; END; LAENGE:=LAENGE-1; END; PROCEDUR INSERT (VAR ZEILE:INTEGER); VAR I:INTEGER; BEGIN FOR I:=LAENGE DOWNTO ZEILE DO BEGIN PS.OP[I+1] :=PS.OP[I]; PS.ADR[I+1]:=PS.ADR[I]; END; WRITE("WELCHER BEFEHL WIRD VOR ZEILE NR.",ZEILE:3," EINGEFUEGT"); READLN;TREAD(PS.OP[ZEILE]); WRITELN;READ(PS.ADR[ZEILE]); LAENGE:=LAENGE+1; END; PROCEDUR CLEAR (VAR ZEILE:INTEGER); BEGIN WRITE("DURCH WELCHEN BEFEHL SOLL NR.",ZEILE:3," ERSETZT WERDEN"); READLN;TREAD(PS.OP[ZEILE]);READ(PS.ADR[ZEILE]); END; PROCEDUR EDITIERBEFEHLE; BEGIN WRITELN("IHNEN STEHEN FOLGENDE BEFEHLE ZUR VERFUEGUNG:"); WRITELN("LOESCHEN EINER ZEILE : DELE ZEILE"); WRITELN("EINFUEGEN EINER ZEILE : INSE ZEILE"); WRITELN("UEBERSCHREIBEN EINER ZEILE : CLEA ZEILE"); WRITELN("AUFLISTEN DER EDITIERBEFEHLE: BEDI"); WRITELN("AUFLISTEN DES PROGRAMMS : LIST"); WRITELN("BEENDEN DES MODUS : END"); WRITELN; END; PROCEDUR EDIT (VAR PS:SPEICHER); VAR BEFEHL:WORT; ZEILE:INTEGER; BEGIN WRITELN; WRITELN("SIE BEFINDEN SICH IM EDITOR."); WRITELN; EDITIERBEFEHLE; REPEAT WRITE("EDITIER-BEFEHL(ODER SCHREIBEN SIE 'HILF')"); READLN;TREAD(BEFEHL);READ(ZEILE); IF BEFEHL[1]<>"E"(*END*) THEN CASE BEFEHL[1] OF "D":DELET(ZEILE); "I":INSERT(ZEILE); "C":CLEAR(ZEILE); "B":EDITIERBEFEHLE; "H":EDITIERBEFEHLE; "L":LIST(PS); END; UNTIL BEFEHL[1]="E"; WRITELN("SIE HABEN DEN EDITOR VERLASSEN!"); WRITELN; END; PROCEDUR BEFHOLEN (VAR BZR:INTEGER); BEGIN BR.OP :=PS.OP [BZR]; BR.ADR:=PS.ADR[BZR]; END; PROCEDUR KONTROLLAUSGABE(VAR BR:BEFEHL;DAR:INTEGER); BEGIN WRITELN("====================================="); WRITELN("BZR :",BZR:3); WRITE("DER BEFEHL ");TWRITE(BR.OP);WRITE(BR.ADR:3);WRITELN(" WIRD AUSGEFUEHRT");  IF (BR.OP[4]="D") OR (BR.OP[4]="T") OR (BR.OP[4]="E") THEN WRITELN ELSE WRITELN("AC :",AC:19:6); IF (BR.OP[4]="R")OR(BR.OP[4]="+")OR(BR.OP[4]="-") OR(BR.OP[4]="*")OR(BR.OP[4]="/") THEN WRITELN("DIE SPEICHERZELLE",DAR:3," HAT DEN WERT",DS[DAR]:20:6); IF BR.OP[1]="I" THEN (*+++ INDIREKTE ADRESSIERUNG +++*) WRITELN("DIE SPEICHERZELLE",BR.ADR:4," HAT DEN WERT",DAR:4); WRITELN; END; PROCEDUR DECODIERE (VAR ANWEISUNG:WORT;ADR:INTEGER); VAR DAR:INTEGER; BEGIN BEDINGUNG:=FALSE; DAR:=ADR; IF ANWEISUNG[1]="I" THEN DAR:=TRUNC (DS[DAR]); KONTROLLAUSGABE(BR,DAR); CASE ANWEISUNG[4] OF (*READ*)"D":BEGIN WRITE("-",DAR:2," -");READLN;READ(DS[DAR]) END; (*WRIT*)"T":WRITELN("<",DAR:2," >=",DS[DAR]:20:6); (*ADD+*)"+":AC:=AC+DS[DAR]; (*SUB-*)"-":AC:=AC-DS[DAR]; (*MULX*)"*":AC:=AC*DS[DAR]; (*DIV/*)"/":AC:=AC/DS[DAR]; (*LADE*)"E":AC:=DS[DAR]; (*STOR*)"R":DS[DAR]:=AC; (*GOTO*)"O":BZR:=DAR-1; (*GO.0*)"0":IF AC=0 THEN BEGIN BZR:=DAR-1;BEDINGUNG:=TRUE END; (*GO.P*)"P":IF AC>0 THEN BEGIN BZR:=DAR-1;BEDINGUNG:=TRUE END; END; IF (ANWEISUNG[4]="P") OR (ANWEISUNG[4]="0") THEN IF BEDINGUNG=TRUE THEN WRITELN("DIE BEDINGUNG IST ERFUELLT!") ELSE WRITELN("DIE BEDINGUNG IST NICHT ERFUELLT!"); END; PROCEDUR LESE (VAR PS:SPEICHER); VAR INDEX:INTEGER; BEGIN WRITELN; WRITELN("SIE BEFINDEN SICH IM PROGRAMMLESE-MODUS,"); WRITELN("BITTE GEBEN SIE IHR PROGRAMM EIN."); WRITELN("SCHREIBEN SIE DIE BEFEHLE IM FORMAT"); WRITELN(" 'BEFEHL_ADRESSE_' ."); WRITELN("BEENDEN SIE DEN PROGRAMMIERMODUS INDEM SIE"); WRITELN(" 'END. 0 ' EINGEBEN!"); WRITELN; INDEX:=0; REPEAT INDEX:=INDEX+1;WRITE("BEFEHL NR.",INDEX:3);READLN; TREAD(PS.OP[INDEX]);READ(PS.ADR[INDEX]); UNTIL PS.OP[INDEX][4]="."; LAENGE:=INDEX; WRITELN("SIE HABEN DEN PROGRAMMLESE-MODUS VERLASSEN!"); WRITELN; END;
PROCEDUR RUN; VAR AC:REAL; BEGIN WRITELN(" M I N I - INTERPRETER V007 HTL-MOEDLING"); WRITELN; BZR:=1; REPEAT BEFHOLEN (BZR); DECODIERE (BR.OP,BR.ADR); BZR:=BZR+1; UNTIL PS.OP[BZR][4]="."; WRITELN; END; PROCEDUR BEGRUESSUNG; BEGIN WRITELN("DIESES PROGRAMM SIMMULIERT DEN RECHNER 'MINI'."); WRITELN("AN DIESEM RECHNER KOENNEN SIE SELBSTERSTELLTE"); WRITELN("EINADRESS-PROGRAMME TESTEN."); END; PROCEDUR BEFEHLSLISTE; BEGIN WRITELN; WRITELN(" DER RECHNER KENNT FOLGENDE BEFEHLE:"); WRITELN(" READ X:DER RECHNER LIEST EINEN WERT AUF SPEICHER X EIN"); WRITELN(" WRIT X:DER RECHNER DRUCKT DEN WERT DE S SPEICHERS X AUS"); WRITELN(" LADE X:DER WERT DES SPEICHERS X WIRD IN AC GELADEN"); WRITELN(" STOR X:DER WERT DES AC WIRD AUF X ABGESPEICHERT"); WRITELN(" ADD+ X: AC:=<AC>+X"); WRITELN(" SUB- X: AC:=<AC>-X"); WRITELN(" MUL* X: AC:=<AC>*X"); WRITELN(" DIV/ X: AC:=<AC>/X"); WRITELN(" GOTO X:UNBEDINGTER SPRUNG NACH X"); WRITELN(" GO.P X:NUR WENN AC>0 DANN NACH X SPRINGEN"); WRITELN(" GO.0 X:NUR WENN AC=0 DANN NACH X SPRINGEN"); WRITELN("AUSSER DEM HABEN SIE DIE MOEGLICHKEIT INDIREKT ZU ADRESSIEREN:"); WRITELN(" DEM BEFEHL WIRD EIN 'I' VORANGESTELLT.DER DANN"); WRITELN(" IN X GESPEICHERTE WERT IST DIE ADRESSE:"); WRITELN(" IRED,IWRT,ILDE,ISTR"); WRITELN(" IAD+,ISB-,IML*,IDV/,IGTO,IG.P,IG.0"); WRITELN; END;
PROCEDUR COMMANDOLISTE; BEGIN WRITELN("DIE VERSCHIEDENEN MODI SIND:"); WRITELN(" READ:SIE KOENNEN EIN PROGRAMM IN DEN PROGRAMMSPEICHER LESEN"); WRITELN(" LIST:DAS ERSTELLTE PROGRAMM WIRD AUFGELISTET"); WRITELN(" RUN :DAS IM PROGRAMMSPEICHER BEFINDLICHE PROGRAMM WIRD AUSGEFUEHRT"); WRITELN(" EDIT:SIE HABEN DIE MOEGLICHKEIT IHR PROGRAMM ZU KORRIGIEREN"); WRITELN(" CMDO:DIE COMMANDOLISTE WIRD NOCH EINMAL AUSGEGEBEN"); WRITELN(" BFHL:DIE BEFEHLSLISTE WIRD AUSGEGEBEN"); WRITELN(" END :DAS PROGRAMM ZUR RECHNERSIMULATION IST ZU ENDE"); WRITELN; END;
PROCEDUR COMANDECODIERUNG; BEGIN WRITELN("IN WELCHEN MODUS MOECHTEN SIE"); WRITE("(SCHREIBEN SIE 'HILF' WENN SIE NICHTS WISSEN)"); READLN;TREAD(MODUS); IF MODUS[2]<>"N"(*END*) THEN CASE MODUS[2] OF "E":LESE(PS); "I":BEGIN IF MODUS[1]="L" THEN LIST(PS) ELSE COMMANDOLISTE END; "U":RUN; "F":BEFEHLSLISTE; "M":COMMANDOLISTE; "D":EDIT(PS); END; END; PROCEDUR DIALOG; BEGIN BEGRUESSUNG; COMMANDOLISTE; REPEAT COMANDECODIERUNG UNTIL MODUS[2]="N"; WRITELN("SIE HABEN DAS PROGRAMM VERLASSEN!"); WRITELN("AUF WIEDERSEHEN!"); END; (*========== Hauptprogramm ==========*) BEGIN LAENGE:=0; DIALOG; END.
PROGRAM GLEITKOMMA (IN,OUT); CONST C=50; TYPE ZAHL=RECORD MANTISSE:INTEGER; EXPONENT:INTEGER; END; VAR ZAHL1,ZAHL2:ZAHL; FUNCTION ZEHNHOCH (X:INTEGER):INTEGER; BEGIN ZEHNHOCH:=TRUNC(EXP(X*LN(10))); END; PROCEDUR TAUSCHE (VAR ZAHL1,ZAHL2:ZAHL); VAR HILF:INTEGER; BEGIN HILF:=ZAHL1.MANTISSE;ZAHL1.MANTISSE:=ZAHL2.MANTISSE;ZAHL2.MANTISSE:=HILF; HILF:=ZAHL1.EXPONENT;ZAHL1.EXPONENT:=ZAHL2.EXPONENT;ZAHL2.EXPONENT:=HILF; END; PROCEDUR ADDIERE (VAR Z1,Z2:ZAHL); VAR EDIFF:INTEGER; SUMME:ZAHL; BEGIN IF Z2.EXPONENT>Z1.EXPONENT THEN TAUSCHE (Z1,Z2); EDIFF:=Z1.EXPONENT-Z2.EXPONENT; Z2.MANTISSE:=ROUND(Z2.MANTISSE/ZEHNHOCH(EDIFF)); Z2.EXPONENT:=Z1.EXPONENT; SUMME.MANTISSE:=Z1.MANTISSE+Z2.MANTISSE; SUMME.EXPONENT:=Z1.EXPONENT; IF SUMME.MANTISSE>ZEHNHOCH(6) THEN BEGIN SUMME.MANTISSE:=ROUND(SUMME.MANTISSE/10); SUMME.EXPONENT:=SUMME.EXPONENT+1; END; IF SUMME.EXPONENT>99 THEN WRITELN("ZAHLENBEREICH UEBERSCHRITTEN !") ELSE WRITELN("SUMME=",SUMME.MANTISSE:6,"E",SUMME.EXPONENT-C:2); END; PROCEDUR MULTIPLIZIERE (VAR Z1,Z2:ZAHL); VAR A:INTEGER; PRODUKT:ZAHL; BEGIN WRITELN("ZAHL1=",ZAHL1.MANTISSE,"E",ZAHL1.EXPONENT); WRITELN("ZAHL2=",ZAHL2.MANTISSE,"E",ZAHL2.EXPONENT); IF Z1.EXPONENT<Z2.EXPONENT THEN TAUSCHE(Z1,Z2); PRODUKT.EXPONENT:=Z1.EXPONENT+Z2.EXPONENT-C; Z1.MANTISSE:=Z1.MANTISSE DIV ZEHNHOCH(Z1.EXPONENT-Z2.EXPONENT); PRODUKT.MANTISSE:=Z1.MANTISSE*Z2.MANTISSE; IF PRODUKT.MANTISSE>=ZEHNHOCH(6) THEN BEGIN A:=TRUNC(LN(PRODUKT.MANTISSE)/LN(10)); PRODUKT.MANTISSE:=ROUND(PRODUKT.MANTISSE/A); PRODUKT.EXPONENT:=PRODUKT.EXPONENT+A; END; IF PRODUKT.EXPONENT>99 THEN WRITELN("ZAHLBEREICH UEBERSCHRITTEN!") ELSE WRITELN("PRODUKT=",PRODUKT.MANTISSE:6,"E",PRODUKT.EXPONENT-C:2); END; (*========== Hauptprogramm ==========*) BEGIN REPEAT WRITE("ZAHL1");READLN;READ(ZAHL1.MANTISSE,ZAHL1.EXPONENT); WRITE("ZAHL2");READLN;READ(ZAHL2.MANTISSE,ZAHL2.EXPONENT); ZAHL1.EXPONENT:=ZAHL1.EXPONENT+C; ZAHL2.EXPONENT:=ZAHL2.EXPONENT+C; ADDIERE(ZAHL1,ZAHL2); MULTIPLIZIERE(ZAHL1,ZAHL2); UNTIL ZAHL1.MANTISSE=0; END.
PROGRAM PARABOLBAHN (IN,OUT); CONST PI=3.14159266535;K=0.01720209895;BOG=0.01745329252; TYPE DREIREL=ARRAY [1..3] OF REAL; VAR R,A,B,C,X,Y,Z,JD:DREIREL; A12,B12,C12,A23,B23,C23,G,F1,L1,M,H1,H2,H3,H,F3,L3,F,L,ETA,THETA, S,RHO,R1,R3,R13,RN13,X1,Y1,Z1,X3,Y3,Z3,HST,HST1,X0,Y0,Z0,R0,V31, EKL,S1,V1,V3,Q,T,SV,CV,PX,PY,PZ,QX,QY,QZ,H31,H12,H23,IB,KNL,OM,D, RA,DEC:REAL; I,J1:INTEGER; FUNCTION ARCSIN (X:REAL):REAL; BEGIN ARCSIN:=ARCTAN (X/SQRT (-X*X+1)); END; FUNCTION ARCCOS (X:REAL):REAL; BEGIN ARCCOS:=-ARCSIN (X)+PI/2; END; FUNCTION TAN (X:REAL):REAL; BEGIN TAN:=SIN(X)/COS(X); END; PROCEDUR XYZ (VAR D,M:REAL;J:INTEGER); VAR S,N,YS,EN,D1,T,OM,EX,EL,MA,E,R,V:REAL; BEGIN YS:=J+1900;N:=M+1;IF N<=3 THEN BEGIN YS:=J+1899;N:=N+12 END; JD[I]:=TRUNC (365.25*YS)+TRUNC (30.6001*N)+D+1720981.5; D1:=TRUNC((J-1)/4)+TRUNC(30.6*M+0.53/SQR (M-1.55)-32.3)+D-0.5; IF (J MOD 4=0) AND (M>=3) THEN D1:=D1+1; T:=(365*J+D1)/36525;OM:=BOG*(281.220833+1.719175*T+3.61E-4*T*T); EX:=0.01675104-4.18E-5*T;EKL:=BOG*(23.452294-0.0130125*T); MA:=BOG*(-1.524155-1.5E-4*T*T-0.25590255*J+0.98560027*D1); E:=MA; REPEAT EN:=E;E:=MA+EX*SIN (EN) UNTIL ABS (EN-E)<1E-7; R:=1-EX*COS (E);V:=2*ARCTAN (SQRT ((1+EX)/(1-EX))*TAN (E)); EL:=V+OM; X[I]:=R*COS (EL);Y[I]:=R*SIN (EL)*COS (EKL);Z[I]:=R*SIN (EL)*SIN (EKL); END; PROCEDUR LOESUNG (VAR F:REAL); VAR H,AQ1,AQ2,AQ3,P,Q,D:REAL; BEGIN H:=-(A[2]*X[2]+B[2]*Y[2]+C[2]*Z[2]); AQ1:=1/3/R[2]*(4*F+5*H);AQ2:=2/3+1/SQR (R[2])*(2*F*H+SQR (G)/3/SQR (H)); AQ3:=1/3/SQR (R[2])*(2*F+SQR (G/H/R[2])*H); P:=-1/3*SQR (AQ1)+AQ2;Q:=2/27*AQ1*AQ1*AQ1-1/3*AQ1*AQ2+AQ3; D:=SQR (P/3)*P/3+SQR (Q/2); IF D>0 THEN WRITELN("ES GIBT NUR EINE LOESUNG(MIT NACHRECHNUNG)!") ELSE BEGIN WRITELN("ES GIBT 3 LOESUNGEN!");HALT;END; END; (*---------- Hauptprogramm ----------*) BEGIN FOR I:=1 TO 3 DO BEGIN WRITE("DATUM",I:2);READLN;READ(D,M,J1); XYZ(D,M,J1); R[I]:=SQRT (SQR (X[I])+SQR (Y[I])+SQR (Z[I])); WRITE("DEC,RA",I:2);READLN;READ(DEC,RA);DEC:=BOG*DEC;RA:=BOG*15*RA; A[I]:=COS (DEC)*COS(RA);B[I]:=COS (DEC)*SIN (RA);C[I]:=SIN (DEC); END; A12:=B[1]*C[2]-B[2]*C[1];B12:=C[1]*A[2]-C[2]*A[1]; C12:=A[1]*B[2]-A[2]*B[1];A23:=B[2]*C[3]-B[3]*C[2]; B23:=C[2]*A[3]-C[3]*A[2];C23:=A[2]*B[3]-A[3]*B[2]; G:=SQRT (SQR (X[3]-X[1])+SQR (Y[3]-Y[1])+SQR (Z[3]-Z[1])); F1:=-(A[1]*X[1]+B[1]*Y[1]+C[1]*Z[1]);L1:=SQRT (SQR (R[1])-SQR (F1)); M:=(JD[3]-JD[2])/(JD[2]-JD[1]); M:=M*(A12*X[2]+B12*Y[2]+C12*Z[2])/(A23*X[2]+B23*Y[2]+C23*Z[2]); H1:=M*A[3]-A[1];H2:=M*B[3]-B[1];H3:=M*C[3]-C[1]; H:=SQRT (SQR (H1)+SQR (H2)+SQR (H3)); F3:=-(A[3]*X[3]+B[3]*Y[3]+C[3]*Z[3])/M; L3:=SQRT (SQR (R[3]/M)-SQR (F3)); F:=(H1*(X[1]-X[3])+H2*(Y[1]-Y[3])+H3*(Z[1]-Z[3]))/SQR (H); L:=SQRT (SQR (G/H)-SQR (F)); IF F<=0 THEN LOESUNG(F) ELSE WRITELN("ES GIBT NUR EINE LOESUNG!"); RN13:=2; (*========== Iteration R13 ==========*) REPEAT R13:=RN13; ETA:=2*K*(JD[3]-JD[1])/EXP (R13*LN(1.5)); THETA:=ARCSIN (ETA*1.060660172); S:=R13*2*SQRT (2)*SIN (THETA/3)*SQRT (COS (2/3*THETA)); RHO:=SQRT (SQR (S/H)-SQR (L))-F; R1:=SQRT (SQR (RHO+F1)+SQR (L1)); R3:=M*SQRT (SQR (RHO+F3)+SQR (L3)); RN13:=R1+R3; UNTIL ABS (RN13-R13)<1E-8; (*========== Ableitung der Bahnelemente ==========*) X[1]:=RHO*A[1]-X[1];Y[1]:=RHO*B[1]-Y[1];Z[1]:=RHO*C[1]-Z[1]; RHO:=M*RHO; X[3]:=RHO*A[3]-X[3];Y[3]:=RHO*B[3]-Y[3];Z[3]:=RHO*C[3]-Z[3]; HST:=X[1]*X[3]+Y[1]*Y[3]+Z[1]*Z[3]; HST1:=HST/SQR (R1); X0:=X[3]-HST1*X[1]; Y0:=Y[3]-HST1*Y[1]; Z0:=Z[3]-HST1*Z[1]; R0:=SQRT (SQR (X0)+SQR (Y0)+SQR (Z0)); V31:=ARCTAN (R0*R1/HST); H1:=1/SQRT (R1); H2:=H1*COS (V31/2); H3:=1/SQRT (R3); S1:=(H2-H3)/SIN (V31/2); V1:=2*ARCTAN (S1/H1); V3:=V1+V31; Q:=R1*SQR (COS (V1/2)); T:=JD[1]-SQRT (2)/K*EXP (Q*LN(3/2))*TAN (V1/2)*(1+1/3*SQRT (TAN (V1/2))); CV:=COS (V1);SV:=SIN (V1); (*========== Gauss'sche Konstanten ==========*) PX:=X[1]/R1*CV-X0/R0*SV; PY:=Y[1]/R1*CV-Y0/R0*SV; PZ:=Z[1]/R1*CV-Z0/R0*SV; QX:=X[1]/R1*SV+X0/R0*CV; QY:=Y[1]/R1*SV+Y0/R0*CV; QZ:=Z[1]/R1*SV+Z0/R0*CV; WRITELN("*=========================================*"); WRITELN("DIE GAUSS'SCHEN KONSTANTEN DES OBJEKTS:"); WRITELN("PX =",PX:16:6); WRITELN("PY =",PY:16:6); WRITELN("PZ =",PZ:16:6); WRITELN("QX =",QX:16:6); WRITELN("QY =",QY:16:6); WRITELN("QZ =",QZ:16:6); H31:=PZ*QX-PX*QZ; H12:=PX*QY-PY*QX; H23:=PY*QZ-PZ*QY; IB:=ARCCOS (H12*COS (EKL)-H31*SIN (EKL)); KNL:=ARCSIN (H23/SIN (IB)); OM:=ARCSIN (-(QX*COS (KNL)+QY*SIN (KNL)*COS (EKL)+QZ*SIN (KNL)*SIN (EKL))); (*========== Ausgabe ==========*) WRITELN("*=========================================*"); WRITELN("DIE BAHNELEMENTE:"); WRITELN(" T =",T:20:5," (JD)"); WRITELN(" Q =",Q:20:5); WRITELN(" I =",IB/BOG:20:5); WRITELN(" KNL=",KNL/BOG:20:5); WRITELN(" OMG=",OM/BOG:20:5); WRITELN("*==========================================*"); END.
N/BODEN/BODEN
UAL->DEC(2) BEI 'E' ENDE");READLN;READ(MODUS); IF MODUS="1" THEN BEGIN WRITE("ZAHL");READLN;READ(ZAHL);DECDUAL(ZAHL);END ELSE IF MODUS="2" THEN BEGIN EINGABE(REGISTER);DUALDEC(REGISTER);END; WRITELN; UNTIL MODUS="E"; END.
PROGRAM LOTTO(OUT); TYPE FELD=ARRAY [1..49] OF INTEGER; VAR I:INTEGER;ZAHL:FELD; PROCEDURE TAUSCH(VAR O,P:INTEGER); VAR Q:INTEGER; BEGIN Q:=P;P:=O;O:=Q; END; FUNCTION ZUFALL(A,B:INTEGER):INTEGER; VAR ZUFALL:INTEGER; BEGIN ZUFALL:=TRUNC(RANDOM*(B-A+1))+A END; BEGIN FOR I:=1 TO 49 DO FELD[I]:=I; FOR I:=1 TO 6 DO BEGIN ZAHL[I]:=ZUFALL(I,49); IF Z *** *...* *.....** *........**** *....***......******* *...** ****.....** *....* ***** *.* *....* * *...** / // //****....* *** * *.....**///........../----/*/.. * *.......*...................// * * *.........*.................// * * *........*..................// * * *./.......*...............// * * *//........*:.............// * * */////.......******......../ /-- * *//...........* **....../ /**** * *..............* *.....//* *** *............** *...../* * *...........** *.....* * *.........** / *.....* OOO * *.....****.* // *....*OOOOO * *...**....** ****...*..**OOOOO**** *....**....* * ** *** OOO.....* *....***...* * ** +++ *.......* **....***..* * OOOO +++++ ***....* **.........** ** OOOOOO +++++ **..* ***......* ** OOOO* ++++ ** **.....* ** OO.* +++ ** **.....** ***.* * */......**..* OOO * **....*..* OOO * **......* ** *******//////*** * /..* * /...* ** //...* ** / //....** ** / //....*** / / //......** // // /.......*** // // //........*** // /// **..........*** / // **............** // // **............** / /// /*...............* // /// / **...........****..* ** / / / *200 CLA CLL TAD A JMS QUAD DCA A TAD B JMS QUAD TAD A DCA S HLT QUAD, 0 DCA HILF TAD HILF CIA DCA INDEX LOOP, TAD HILF ISZ INDEX JMP LOOP JMP I QUAD HLT A, 0011 B, 0023 INDEX, 0 HILF, 0 S, 0 $
*.........*............***...// *........** *.........*..Strolchi..*...../ **********........** **.........*...........*.....// *** * ****.....* ********...*.********..*.....// * * * **...***...........** *.*....// ******************************************************************************** ******************************************************************************** ********************************************************************************
PROGRAM TANZPAAR (IN,OUT); CONST N=10;MAX=20; TYPE STRING=ARRAY [1..MAX] OF CHAR; LISTE=ARRAY [1..N] OF STRING; PAAR=ARRAY [1..N] OF INTEGER; VAR NAME:LISTE; I,ANZAHL:INTEGER; P:PAAR; PROCEDURE TAUSCHE (VAR X,Y:INTEGER); VAR HILF:INTEGER; BEGIN HILF:=X;X:=Y;Y:=HILF; END; FUNCTION ZUFALL (VON,BIS:INTEGER):INTEGER; BEGIN ZUFALL:=TRUNC (RANDOM*(BIS-VON))+1+VON; END; PROCEDURE MISCHEN (VAR P:PAAR); VAR I,WAHL:INTEGER; BEGIN FOR I:=1 TO N-1 DO BEGIN WAHL:=ZUFALL(I,N); TAUSCHE(P[I],P[WAHL]); END; END; PROCEDURE TREAD(VAR TEXT:STRING); VAR I:INTEGER; BEGIN I:=1; REPEAT READ(TEXT[I]); I:=I+1; UNTIL EOLN OR (I=MAX); TEXT[I]:="@"; END; PROCEDURE TWRITE (VAR TEXT:STRING); VAR I:INTEGER; BEGIN I:=1; REPEAT WRITE(TEXT[I]); I:=I+1; UNTIL TEXT[I]="@" END; (*==========Hauptprogramm==========*) BEGIN WRITE("WIEVIELE PAARE SIND VORHANDEN");READLN;READ(ANZAHL); FOR I:=1 TO ANZAHL DO BEGIN WRITE("NAME DES ",I:3,".PAARES"); READLN;TREAD(NAME[I]) END; FOR I:=1 TO ANZAHL DO P[I]:=I; MISCHEN(P); FOR I:=1 TO ANZAHL DO BEGIN WRITE("HERR ");TWRITE(NAME[I]);WRITE(" TANZT MIT FRAU "); TWRITE(NAME[P[I]]);WRITELN; END; END.
PROGRAM QUICKSORT (IN,OUT); CONST N=50; TYPE LISTE=ARRAY [1..N] OF INTEGER; VAR FELD:LISTE; LAENGE:INTEGER; PROCEDUR EINGABE (VAR FELD:LISTE); BEGIN LAENGE:=1; REPEAT LAENGE:=LAENGE+1; READ(FELD[LAENGE]); UNTIL EOLN OR (LAENGE=N); END; PROCEDUR AUSGABE (VAR FELD:LISTE;ANFANG,ENDE:INTEGER); VAR I:INTEGER; BEGIN I:=ANFANG; REPEAT WRITE(FELD[I]); I:=I+1; UNTIL I=ENDE; END; PROCEDUR TAUSCHE (VAR I,J:INTEGER); VAR HILF:INTEGER; BEGIN HILF:=I;I:=J;J:=HILF; END; PROCEDUR QUICK (RECHTS,LINKS:INTEGER); VAR I,P,J,PIVOT:INTEGER; BEGIN I:=LINKS;J:=RECHTS;P:=(LINKS+RECHTS) DIV 2; PIVOT:=FELD[P]; REPEAT WHILE FELD[I]<PIVOT DO I:=I+1; WHILE FELD[J]>PIVOT DO J:=J-1; IF I<J THEN TAUSCHE (FELD[I],FELD[J]); UNTIL I>=J; IF J>LINKS THEN QUICK (LINKS,J); IF I<RECHTS THEN QUICK (I,RECHTS); END; (*=========Hauptprogramm========*) BEGIN WRITELN("GEBEN SIE DAS UNSORTIERTE FELD EIN!");EINGABE (FELD); QUICK (1,LAENGE); AUSGABE (FELD,1,LAENGE); END.
PROGRAM SKATAUSZAHLUNG (IN,OUT); TYPE STRING=ARRAY [1..10] OF CHAR; NOM=ARRAY [1..3] OF STRING; DREIREAL=ARRAY [1..3] OF REAL; DREIINT=ARRAY [1..3] OF INTEGER; VAR I,PFENNIG,SUMME:INTEGER; NAME:NOM; PUNKTE:DREIINT; GELD:DREIREAL; PROCEDUR TREAD (VAR NAME:STRING); VAR I:INTEGER; BEGIN I:=1; REPEAT READ(NAME[I]);I:=I+1; UNTIL EOLN; NAME[I]:="@"; WRITELN; END; PROCEDUR TWRITE (VAR NAME:STRING); VAR I:INTEGER; BEGIN I:=1; REPEAT WRITE(NAME[I]);I:=I+1; UNTIL NAME[I]="@"; END; PROCEDUR ZAHLEN (VAR PFENNIG:INTEGER); VAR I:INTEGER; BEGIN FOR I:=1 TO 3 DO GELD[I]:=3*PUNKTE[I]-SUMME; END; (*========Hauptprogramm========*) BEGIN FOR I:=1 TO 3 DO BEGIN WRITE(I:1,".NAME");READLN;TREAD(NAME[I]); WRITE(":");TWRITE(NAME[I]);WRITELN;END; REPEAT  WRITE("WELCHER KURS");READLN;READ(PFENNIG);WRITE(":1/",PFENNIG:2);WRITELN; IF PFENNIG<>0 THEN BEGIN FOR I:=1 TO 3 DO BEGIN TWRITE(NAME[I]);WRITE("'S PUNKTE");READLN;READ(PUNKTE[I]); WRITE(":",PUNKTE[I]:7);WRITELN;END; SUMME:=PUNKTE[1]+PUNKTE[2]+PUNKTE[3]; FOR I:=1 TO 3 DO BEGIN ZAHLEN(PFENNIG);TWRITE(NAME[I]);WRITE(":",GELD[I]/PFENNIG/100:9:2," DM"); WRITELN; END; END; UNTIL PFENNIG=0; END.
PROGRAM XYZ (IN,OUT); CONST PI=3.1415926536;BOG=0.01745329252;GEOB=0.8901179185; VAR D,M,J1,DA,DE,I,S:INTEGER; JD,D1,T,OMEGA,EXZ,EKL,MA,E,EN,R,V,X,Y,Z,DEC,RA,TB,SA,SU,KUL,VO:REAL; FUNCTION TAN (X:REAL):REAL; BEGIN TAN:=SIN (X)/COS (X); END; FUNCTION ARCSIN (X:REAL):REAL; BEGIN ARCSIN:=ARCTAN (X/SQRT (-X*X+1)); END; FUNCTION ARCCOS (X:REAL):REAL; BEGIN ARCCOS:=-ARCSIN (X)+PI/2; END; FUNCTION JULDAT (D,M,J:INTEGER):REAL; VAR Y,N:INTEGER; BEGIN J:=J+1900; Y:=J;N:=M+1; IF N<=3 THEN BEGIN Y:=J-1;N:=N+12 END; JULDAT:=TRUNC(365.25*Y)+TRUNC (30.6001*N)+D+1720981.5; END; FUNCTION INTERVALL (X,UNTEN,OBEN:REAL):REAL; BEGIN WHILE(X>OBEN) DO X:=X-OBEN; WHILE(X<UNTEN) DO X:=X+OBEN; INTERVALL:=X; END; (*======= Hauptprogramm =======*) BEGIN READLN;READ(DA,M,J1,DE); FOR D:=DA TO DE DO BEGIN JD:=JULDAT(D,M,J1); S:=TRUNC ((J1-1)/4); D1:=S+TRUNC (30.6*M+0.53/SQR (M-1.55)-32.3)+D-0.5; IF (J1 MOD 4=0) AND (M>=3) THEN D1:=D1+1; T:=(365*J1+D1)/36525; OMEGA:=BOG*(281.220833+1.719175*T+0.000361); EXZ:=0.01675104-0.0000418*T; EKL:=BOG*(23.452294-0.0130125*T); MA:=BOG*(-1.524155-0.00015*T*T-0.25590255*J1+0.98560027*D1); EN:=MA; REPEAT E:=EN; EN:=MA+EXZ*SIN (E); UNTIL (ABS (E-EN)<1E-7); R:=1-EXZ*COS (E); V:=2*ARCTAN (SQRT ((1+EXZ)/(1-EXZ))*TAN (E/2)); VO:=INTERVALL (V+OMEGA,0,2*PI); X:=R*COS (VO); Y:=R*SIN (VO)*COS (EKL); Z:=R*SIN (VO)*SIN (EKL); DEC:=R*ARCSIN (Z/R); RA:=INTERVALL (2*ARCTAN ((R*COS (DEC)-X)/Y)/BOG/15,0,24); KUL:=INTERVALL ((RA-7.13-0.06570982237*(JD-2444969.5))/1.002737909+1,0,24); TB:=ARCCOS (-TAN (DEC)*TAN (GEOB))/BOG/15; SA:=INTERVALL (KUL-TB,0,24);SU:=INTERVALL (KUL+TB,0,24); WRITE("DATUM:",D:2,"."); CASE M OF 1:WRITE("JANUAR"); 2:WRITE("FEBRUAR"); 3:WRITE("MAERZ"); 4:WRITE("APRIL"); 5:WRITE("MAI"); 6:WRITE("JUNI"); 7:WRITE("JULI"); 8:WRITE("AUGUST"); 9:WRITE("SEPTEMBER"); 10:WRITE("OKTOBER"); 11:WRITE("NOVEMBER"); 12:WRITE("DEZEMBER"); END; WRITELN(" ",J1:2," JD:",JD:13:1); WRITELN("X=",X:10:6," Y=",Y:10:6," Z=",Z:10:6); WRITELN("R=",R:10:6," EXZ=",EXZ:15:8); WRITELN("EKL=",EKL/BOG:16:6); WRITELN("OMG=",OMEGA/BOG:16:6); WRITELN("MA =",MA/BOG:13:6," E =",E/BOG:13:6," V =",INTERVALL (V/BOG,0,360):13:6); WRITELN("SA =",SA:10:4," KUL=",KUL:10:4," SU =",SU:10:4); WRITELN("L =",VO/BOG:13:4); WRITELN("DEC=",DEC/BOG:10:4," RA =",RA:10:4); WRITELN; WRITELN; WRITELN; END; END.
-  = fPROGRAM BESSELSCHETAGESZAHLEN (IN,OUT); VAR JD,JDE,JDA:INTEGER; D,T,O,F,M,ML,LM,L:REAL; BEGIN READLN;READ(JDA,JDE); FOR JD:=JDA TO JDE DO BEGIN D:=JD-2415020; T:=D/36525; O:=281.220833+1.719175*T+0.000361*T*T; F:=0.01675104-4.18E-5; M:=358.475833+0.9856002669*D-0.00015*T*T-3.3E-6; ML:=259.183275-0.0529539222*D+2.077E-3*T*T+2.2E-6; LM:=270.434164+13.1763965268*D-1.13333E-3*T*T+1.9E-6*T*T*T; L:=296.104608+13.0649924465*D+1.9167E-3*T*T+1.439E-5*T*T*T; REPEAT M:=M-360 UNTIL M<360; REPEAT ML:=ML+360 UNTIL ML>0; REPEAT LM:=LM-360 UNTIL LM<360; REPEAT L:=L-360 UNTIL L<360; WRITELN("JD:",JD:16); WRITELN("EXZENTRIZITAET:",F:28:6); WRITELN("LAENGE DES PERIHELS(ERDE):",O:17:6," *"); WRITELN("MITTLERE ANOMALIE:",M:25:6," *"); WRITELN("MITTL. LAENGE DES MONDKNOTENS:",ML:13:6," *"); WRITELN("MITTL. LAENGE DES MONDES:",LM:18:6," *"); WRITELN("MITTLERE ANOMALIE:",L:25:6," *"); WRITELN; WRITELN; END; END.
PROGRAM ZAHLUMWANDLUNG (IN,OUT); TYPE FELD=ARRAY [0..11] OF INTEGER; VAR REGISTER:FELD; I,ZAHL:INTEGER; MODUS:CHAR; PROCEDUR EINGABE(VAR REGISTER:FELD); VAR I:INTEGER; BEGIN WRITELN("GEBEN SIE DIE DUAL-ZAHL EIN !"); READLN; FOR I:=0 TO 11 DO READ(REGISTER[I]); END; PROCEDUR AUSGABE(VAR REGISTER:FELD); VAR I:INTEGER; BEGIN WRITELN("DIE ZAHL IM BINAERSYSTEM:"); FOR I:=0 TO 11 DO WRITE(REGISTER[I]:1); WRITELN; END; PROCEDUR DECDUAL(ZAHL:INTEGER); VAR REST,I:INTEGER; BEGIN IF ZAHL<0 THEN ZAHL:=ZAHL+4096; FOR I:=11 DOWNTO 0 DO BEGIN REST:=ZAHL MOD 2; ZAHL:=ZAHL DIV 2; REGISTER[I]:=REST; END; AUSGABE(REGISTER); END; PROCEDUR DUALDEC(VAR REGISTER:FELD); VAR I:INTEGER; BEGIN ZAHL:=0; FOR I:=0 TO 11 DO ZAHL:=ZAHL*2+REGISTER[I]; ZAHL:=ZAHL MOD 4096; IF ZAHL>2047 THEN ZAHL:=ZAHL-4096; WRITELN("DIE ZAHL IM ZEHNERSYSTEM:",ZAHL:5); END; (*========== Hauptprogramm ==========*) BEGIN REPEAT WRITELN("IN WELCHEN MODUS MOECHTEN SIE"); WRITE("DEC->DUAL(1) ODER DUAL->DEC(2) BEI 'E' ENDE");READLN;READ(MODUS); IF MODUS="1" THEN BEGIN WRITE("DEZIMALZAHL");READLN;READ(ZAHL);DECDUAL(ZAHL);END ELSE IF MODUS="2" THEN BEGIN EINGABE(REGISTER);DUALDEC(REGISTER);END; WRITELN; UNTIL MODUS="E"; END.
PROGRAM MINI(INPUT,OUTPUT); CONST D=20;(*ANZAHL DER SPEICHER IM DS*) P=50;(*ANZAHL DER SPEICHER IM PS*) TYPE WORT=ARRAY[1..4]OF CHAR; BEFEHL=RECORD OP:WORT; ADR:INTEGER; END; SPEICHER=RECORD OP:ARRAY[1..P]OF WORT; ADR:ARRAY[1..P]OF INTEGER; END; VAR DS:ARRAY[1..D]OF REAL; PS:SPEICHER; MODUS:CHAR; PROCEDURE STERN(D:CHAR); VAR I:INTEGER; BEGIN FOR I:=1 TO 60 DO WRITE(D); WRITELN END; PROCEDUR EINFUERUNG; BEGIN WRITELN; STERN("*"); WRITELN; WRITELN("SIE BEFINDEN SICH NUN IM GRUNDZUSTAND."); WRITELN("SIE KOENNEN AUS DIESEM ZUSTAND IN DIE FOLGENDEN"); WRITELN("ANDEREN EINTRETEN:"); WRITELN; WRITELN(" PROGRAMMIER - MODUS 'R'"); WRITELN(" EDITIER - MODUS 'E'"); WRITELN(" PROGRAMM - START 'S'"); WRITELN(" BEFEHLS - LISTE 'B'"); WRITELN(" EINFUEHRUNG 'M'"); WRITELN(" SIMULATIONS - ENDE '.'"); WRITELN; WRITELN("GEBEN SIE BITTE DIE JEWEILS HINTER DEN MODI"); WRITELN("STEHENDEN BEFEHLE EIN, UM IN DEN GEWUENSCHTEN"); WRITELN("MODUS EINZUTRETEN.");WRITELN; STERN("*") END; PROCEDURE LISTE; VAR W:CHAR; BEGIN STERN("*"); WRITELN; WRITELN(" LISTE DER ZUR VERFUEGUNG STEHENDEN BEFEHLE:"); WRITELN; WRITELN(" READ D EINLESEN EINER ZAHL"); WRITELN(" WRIT D AUSGABE EINER ZAHL"); STERN("-"); WRITELN(" ADD+ D AC:=<AC>+D"); WRITELN(" SUB- D AC:=<AC>-D"); WRITELN(" MUL* D AC:=<AC>*D"); WRITELN(" DIV/ D AC:=<AC>/D"); STERN("-"); WRITELN(" LADE D AC:=<D>"); WRITELN(" STOR D D:=<AC>"); STERN("-"); WRITELN(" GOTO P UNBEDINGTER SPRUNG NACH P"); WRITELN(" GO.0 P BEDINGTER SPRUNG NACH P"); WRITELN(" WENNN <AC> => 0"); WRITELN(" GO.P P BEDINGTER SPRUNG NACH P"); WRITELN(" WENN <AC> => 1"); STERN("-"); WRITELN(" END. LETZTER BEFEHL"); WRITELN(" (AM ENDE JEDES PROGRAMMS)"); WRITELN; STERN("*"); WRITELN; WRITELN("DIE BEFEHLE VON 'MINI' BESTEHEN AUS EINEM"); WRITELN("BEFEHLSTEIL UND EINEM ADRESSTEIL."); WRITELN("EINE ANWEISUNG VON 'MINI' IST ZUSAMMENGESTZT"); WRITELN("AUS EINEM BEFEHL MIT GENAU 4 ZEICHEN, EINER"); WRITELN("LEERSTELLE UND EINEM ADRESSTEIL AUS 2 ZEICHEN."); WRITELN; STERN("*"); WRITELN; WRITELN(" WENN ES WEITERGEHEN KANN DANN GEBEN SIE EIN 'J' EIN."); READLN;READ(W); END; PROCEDURE EINGABE; VAR W:CHAR; I:INTEGER; PROCEDURE LESE(VAR A:WORT;VAR B,I:INTEGER); VAR J:INTEGER; BEGIN WRITE(I:2,". BEFEHL:"); READLN;FOR J:=1 TO 4DO READ(A[J]);READLN;READ (B); END; BEGIN STERN("*"); WRITELN; WRITELN("SIE BEFINDEN SICH JETZT IM EINGABEMODUS."); WRITELN("ACHTEN SIE BEI DER EINGABE DES PROGRAMMS"); WRITELN("AUF DAS FORMAT DER ANWEISUMGEN!"); WRITELN; STERN("*"); WRITELN; WRITELN("WENN SIE ANFANGEN WOLLEN, DANN GEBEN SIE"); WRITELN("BITTE EIN 'J' EIN."); WRITELN; WRITELN("DIE EINGABE WIRD AUTOMATISCH MIT DEM 'END'"); WRITELN("-BEFEHL ABGECSLOSSEN, UND DAS PROGRAMM"); WRITELN("KEHRT AUTOMATISCH IN DEN GRUNDZUSTAND ZURUECK."); READLN;READ(W); I:=0; REPEAT I:=I+1; LESE(PS.OP[I],PS.ADR[I],I); WRITELN;READLN UNTIL PS.OP[I,4]="."; WRITELN; STERN("*"); END; PROCEDURE EDIT; BEGIN WRITELN("P EDIT"); END; PROCEDURE PSTART; VAR BR:BEFEHL; BZR,J:INTEGER; AC:REAL; BEGIN STERN("*"); WRITELN; WRITELN("DAS VON IHNEN EINGEGEBENE PROGRAMM, WIRD"); WRITELN("JETZT GESTARTET."); WRITELN; STERN("*"); WRITELN; BZR:=0;AC:=0; REPEAT BZR:=BZR+1; BR.OP:=PS.OP[BZR]; BR.ADR:=PS.ADR[BZR]; FOR J:=1 TO 4 DO WRITE(BR.OP[J]); WRITELN; WRITELN("BR.ADR:",BR.ADR," ,BZR:",BZR); WRITELN; CASE BR.OP[4] OF "D" : BEGIN READLN;READ(DS[BR.ADR]) END; "T" : WRITELN(BR.ADR:5,"= ",DS[BR.ADR]); "+" : AC:=AC+DS[BR.ADR]; "-" : AC:=AC-DS[BR.ADR]; "*" : AC:=AC*DS[BR.ADR]; "/" : AC:=AC/DS[BR.ADR]; "E" : AC:=DS[BR.ADR]; "R" : DS[BR.ADR]:=AC; "O" : BZR:=BR.ADR-1; "0" : IF AC=0 THEN BZR:=BR.ADR-1; "P" : IF AC>0 THEN BZR:=BR.ADR-1 END; UNTIL BR.OP[4]="." END; BEGIN (* H A U P T P R O G R A M M *) STERN("*"); WRITELN; WRITELN(" M I N I - S I M U L A T I O N"); WRITELN; STERN("*"); WRITELN; WRITELN; WRITELN("GEBEN SIE BITTE ZUERST EIN 'M' ZUR"); WRITELN("EINFUERUNG EIN!"); REPEAT WRITELN; WRITE("GEWUENSCHTER MODUS: ");READLN;READ(MODUS); CASE MODUS OF "R" : EINGABE; "E" : EDIT; "S" : PSTART; "B" : LISTE; "M" : EINFUERUNG; "." : WRITELN END UNTIL MODUS="."; STERN("*"); WRITELN; WRITELN(" E N D E DER M I N I - S I M U L A T I O N "); WRITELN; STERN("*") END. (* H A U P T P R O G R A M M *)
PROGRAM HAEUFIGKEIT (OUT); CONST N=1000; TYPE FELD=ARRAY [3..18] OF INTEGER; LIST=ARRAY [1..3] OF INTEGER; VAR A:LIST; C:FELD; I,K,H,Y,Z,B:INTEGER; FUNCTION ASUM : INTEGER; VAR I,Y:INTEGER; BEGIN Y:=0; FOR I:=1 TO 3 DO BEGIN A[I]:=TRUNC (RANDOM*6+1); Y:=Y+A[I] END; ASUM:=Y END; (*==================Hauptprogramm==================*) BEGIN FOR I:=3 TO 18 DO C[I]:=0; (*Nullsetzen des Feldes*) FOR K:=1 TO N DO BEGIN (*Grosse FOR -Schleife*) H:=ASUM;C[H]:=C[H]+1; IF K MOD (N DIV 10)=0 THEN BEGIN WRITELN; WRITELN(" N=",K); WRITELN; WRITELN(" K ABS H(K) %"); FOR I:=3 TO 18 DO BEGIN (*Kleine FOR -Schleife*) WRITE(I:4,C[I],C[I]/K*100:8:2); WRITELN END; (*Kleine FOR -Schleife*) (*=================Graphik-Ausgabe=================*) FOR I:=3 TO 18 DO BEGIN FOR Y:=1 TO ROUND(C[I]/K*100) DO WRITE("*"); WRITELN END (*=================================================*) END(*Ende des THEN Teils*) END (*Ende der grossen FOR -Schleife*) END. (*=================================================*)
PROGRAM PRIMZAHL (OUT); CONST N=1000; VAR FELD:ARRAY [1:N] OF INTEGER; I,Y,A,S:INTEGER; (*---------- Hauptprogramm ----------*) BEGIN FOR I:=1 TO N DO FELD[I]:=I*2+1; FOR I:=1 TO TRUNC (SQRT (N)) DO BEGIN Y:=I;A:=FELD[I]; IF FELD[I]<>0 THEN BEGIN WRITELN(FELD[I]); REPEAT FELD[A+Y]:=0; Y:=Y+A; UNTIL (A+Y)>=N END; END; FOR I:=TRUNC (SQRT (N)+1) TO N DO IF FELD[I]<>0 THEN WRITELN(FELD[I]) END.
========================================================= W e t t b e w e r b J u g e n d - F o r s c h t 1984 ========================================================= Thema: KLEINKLIMA einer TALSTATION im Oberbergischen - Klimadiagramm 1984 - Phanolgisches Jahr 84 - Abhangigkeit des ph-Wertes (Niederschlag) von der Windrichtung? (Bodenwind;Hohenwind;Wetterlage) - Untersuchung von heimischen Boden auf Sauregehalt - Komplex Wettervorhersage Inhaltsverzeichnis: ------------------- Einleitung ---------- 1. Zum Thema 1.1 Voraussetzugen fur diese Arbeit 1.2 Beschreibung und Ausstattung der Wetterhutte 1.21 Stationsstandort (Tallage) 1.22 Geographische Lage und Hohe u.NN des Standortes 1.3 Bedeutung der Wetterstation fur den oberberg.Kreis Hauptteil --------- 2. Jahresablauf der Witterung 1984 2.1 Einordnung in einen Klimatypus (mit Begr.) 2.2 Bedeutung der Beobachtungen fur grossraumige Vorhersagen ? 3. Untersuchung: Hangt der ph-Wert von der Windrichtung ab ? 3.1 Bodenwind 3.11 Einfluss der Tallage auf die Windrichtung 3.2 Hohenwind 3.3 Grosswetterlage 3.31 Lokale Witterungseinflusse 3.4 Auswirkungen des "sauren Regens" auf (heimische) Boden (Auswertung der ph-Wert Messungen) 3.5 Vergleich der ph-Werte zweier Regenmessstellen (Berg/Tal) 3.6 Genauigkeit der Verfahren zur Bestimmung der ph-Werete 3.7 Gesamtergebnis 4. Phanologische Beobachtungen (Anhang) 4.1 Das phanologische Jahr 84 5. Probleme bei der Wettervorhersage 5.1 Allgemeine Meinung von Laien 5.2 Eigentliche Probleme und Grunde dafur Schlussworte ------------ 7. Anhang 7.1 Muster des Aufzeichnungsmaerials 7.2 Muster zur graphischen Darstellung der Klimaelemente 7.3 Methoden und Formeln zur rechnerischen Auswertung 7.4 Bilderreihe zur Veranschaulichung der Lage u. Ausstattung der Wetterstation 8. Messwerte und Beobachtungsnotizen 8.1 Zu 2. - Besondere Ereignisse und Beobachtungen 8.2 Zu 4. - Notizen der Vegetationsbeobachtungen 8.3 Zu 5. - Wolkenbilder als Witterungsanzeiger - Wolkenbilder als Hilfe bei der Wvhs - Bilderreihe einiger Wolkenformen 8.4 Messwerttabellen der einzelnen Monate (Auswahl) 8.41 Graphische Darstellung der Klimaelement 8.5 Jahrestabelle und Klimadiagramme 84 9. Literaturverzeichnis
___ ________ /WOL\_____/WOLKEWOL\ /WOLKEWOLKEWOLKEWOLKEWOLK\ gisch /WOLKEWOLKEWOLKEWOKEWOLKEWOLK\ r _____ /WOLKEWOLKEWOLKEWOLKEWOLKEWOLKEWOL\ e /BERGB\ e |WOLKEWO WOLKEWOL\ b /BERGBER\ n |WOLKEWO Kleinklima einer WOLKEWOLKE| ober /BERGBERGB\ Talstation \WOLKEW WOLKEWO/ -------- \ \WOLKEWOLKEWOLKEWOLKEWOLKEWOLK/ \ ' ' \WOLKEWOLKEWOLKE/ * ______________ ' ' ' ' ' ' ' * * ' ' ' ' ' ' ' * * ' '' ' ' '''' * * * '' ' ' ' ' ' ' ' * * * ' ' ' ' ' ' '' * * * BODEN/BODEN/BODEN/BODEN/BODEN/BODEN/BODEN
COMANDECODIERUNG UNTIL MODUS[2]="N"; WRITELN("SIE HABEN DAS PROGRAMM VERLASSEN!"); WRITELN("AUF WIEDERSEHEN!"); END; (*========== Hauptprogramm ==========*) BEGIN LAENGE:=0; DIALOG; END.
PROGRAM MINISIMULATION (IN,OUT); CONST P=50; D=20; (*CREATED BY MARKUS ISING SEP/25. 1984*) TYPE WORT=ARRAY[1..4] OF CHAR; BEFEHL=RECORD OP:WORT; ADR:INTEGER; END; SPEICHER=RECORD OP:ARRAY[1..P] OF WORT; ADR:ARRAY[1..P] OF INTEGER; END; VAR DS:ARRAY[1..D] OF REAL; PS:SPEICHER; BR:BEFEHL; (*BEFEHLREGISTER*) ANTWORT:CHAR; PROCEDURE PROGEINGABE; VAR I:INTEGER; PROCEDURE LESE; VAR J:INTEGER; ZEICHEN:CHAR; BEGIN READLN; FOR J:=1 TO 4 DO BEGIN READ(ZEICHEN); PS.OP[I][J]:=ZEICHEN END END; BEGIN I:=0; READLN; REPEAT I:=I+1;WRITELN;WRITE(I:3," OPERATIONSTEIL"); LESE;WRITE(" ADRESSTEIL");READLN;READ(PS.ADR[I]) UNTIL PS.OP[I][4]="." END; PROCEDURE PROGAUSGABE; VAR I:INTEGER; PROCEDURE SCHREIBE; VAR J:INTEGER; ZEICHEN:CHAR; BEGIN FOR J:=1 TO 4 DO BEGIN ZEICHEN:=PS.OP[I][J];WRITE(ZEICHEN) END END; BEGIN I:=0;WRITELN;WRITELN("ZUR KONTROLLE,"); WRITELN("DER PROGRAMMSPEICHER ENTHAELT FOLGENDES PROGRAMM:"); REPEAT I:=I+1;WRITE(I:3," "); SCHREIBE;WRITELN(" ",PS.ADR[I]:3) UNTIL PS.OP[I][4]=".";WRITELN; END; PROCEDURE RUN; VAR BZR,Z:INTEGER; (*BZR= BEFEHLSZAEHLREGISTER*) AC:REAL; PROCEDURE BEFEHLHOLEN(ADRESSE:INTEGER); BEGIN BR.OP:=PS.OP[ADRESSE]; BR.ADR:=PS.ADR[ADRESSE] END; PROCEDURE ACAUSGABE; BEGIN WRITELN(" <AC>=",AC:10:4) END; PROCEDURE PROGSCHRITT; VAR I,J:INTEGER; BEGIN FOR J:=1 TO 50 DO WRITE("*");WRITELN; WRITELN(BZR:3,". PROGRAMMBEFEHL:"); WRITE(" OPERATIONSTEIL:");FOR I:=1 TO 4 DO WRITE(BR.OP[I]); WRITE(" , ADRESSTEIL:",BR.ADR:3);WRITELN;FOR J:=10 TO 50 DO WRITE("_"); WRITELN; END; BEGIN (*-----RUN-----*) BZR:=0;Z:=0; REPEAT BZR:=BZR+1;Z:=Z+1; BEFEHLHOLEN(BZR);WRITE(Z:2 ," "); PROGSCHRITT; IF BR.OP[1]="I" THEN BR.ADR:=TRUNC(DS[BR.ADR]); (*IND. ADRESSIERUNG*) CASE BR.OP[4] OF (*BEFEHLDECODIERUNG,DATENEINLESEN,AKKUMULATORAUSGABE*) "D":BEGIN WRITELN("<DATENSPEICHERADRESSE ",BR.ADR:3," >?"); READ(DS[BR.ADR]) END; "T":WRITELN("<DATENSPEICHERADRESSE ",BR.ADR:3," > =",DS[BR.ADR]:10:4); "E":BEGIN AC:=DS[BR.ADR];ACAUSGABE END; "R":BEGIN DS[BR.ADR]:=AC;ACAUSGABE END; "+":BEGIN AC:=AC+DS[BR.ADR];ACAUSGABE END; "-":BEGIN AC:=AC-DS[BR.ADR];ACAUSGABE END; "*":BEGIN AC:=AC*DS[BR.ADR];ACAUSGABE END; "/":IF DS[BR.ADR]<>0 THEN BEGIN AC:=AC/DS[BR.ADR];ACAUSGABE END ELSE BEGIN WRITELN(" DIVISION DURCH 0 IST UNZULAESSIG,"); WRITELN(" WERTBELEGUNG VON DS.ADR ",BR.ADR:3," AENDERN !") END; "P":BEGIN IF AC>0 THEN BZR:=BR.ADR-1;WRITELN(" BZR=",BZR:3) END; "0":BEGIN IF AC=0 THEN BZR:=BR.ADR-1;WRITELN(" BZR=",BZR:3) END; "O":BEGIN BZR:=BR.ADR-1;WRITELN(" BZR=",BZR:3) END; ".":WRITELN; END UNTIL BR.OP[4]="." END; (*-----RUN-----*) PROCEDURE DIALOGTEXT; BEGIN WRITELN("DIESES PROGRAMM BEARBEITET PROGRAMME, DIE AUS FOLGENDEN"); WRITELN("EINADRESSBEFEHLEN BESTEHEN:"); WRITELN("READ X, WRIT X, ADD+ X, SUB- X, MUL* X, DIV/ X, LADE X,"); WRITELN("STOR X, GOTO Y, GO.P Y, GO.0 Y, END. 0 ."); WRITELN; WRITELN("LAUT VEREINBARUNG KANN EIN PROGRAMM MAX. 50 BEFEHLE ENTHALTEN,"); WRITELN("ES STEHEN 20 DATENSPEICHERPLAETZE ZUR VERFUEGUNG ."); WRITELN("WERDEN DIESE GRENZEN UEBERSCHRITTEN, MUESSEN ZUVOR DIE"); WRITELN("KONSTANTEN P UND D ERHOEHT WERDEN .");WRITELN; WRITELN("DRUECKEN SIE 'RETURN' UND GEBEN SIE EIN PROGRAMM EIN !") END; BEGIN (*===HAUPTPROGRAMM===*) DIALOGTEXT; REPEAT PROGEINGABE; PROGAUSGABE; REPEAT RUN; WRITELN("WOLLEN SIE NEUE DATEN FUER DIESES PROGRAMM EINGEBEN (J/N) ?"); READLN;READ(ANTWORT) UNTIL ANTWORT (NOT="J"); WRITELN("WOLLEN SIE EIN NEUES PROGRAMM EINGEGEN (J/N) ?"); READLN;READ(ANTWORT) UNTIL ANTWORT (NOT="J"); END.
PROGRAM GEKETTETELISTE (IN,OUT); CONST MAX=20; LEER=-999; TYPE ELEMENTTYP=INTEGER; KNOTENTYP=RECORD NAME:ELEMENTTYP; ZEIGER:INTEGER; END; VAR LISTE:ARRAY[0..MAX] OF KNOTENTYP; WORT:ELEMENTTYP; ANTWORT:CHAR; I,INDEX:INTEGER; PROCEDURE EINFUEGEN(NEUNAME:ELEMENTTYP); VAR H,I,J,HILF:INTEGER; BEGIN I:=0; REPEAT I:=I+1; UNTIL LISTE[I].NAME=LEER;LISTE[I].NAME:=NEUNAME; J:=LISTE[0].ZEIGER; H:=0; IF J=-1 THEN J:=1; WHILE (J<>-1)AND(LISTE[I].NAME<=LISTE[J].NAME) DO BEGIN H:=J; J:=LISTE[J].ZEIGER; END; HILF:=LISTE[H].ZEIGER;LISTE[H].ZEIGER:=I;LISTE[I].ZEIGER:=HILF; END; PROCEDURE AUSGABE; VAR I,J:INTEGER; BEGIN I:=0; IF LISTE[0].ZEIGER=-1 THEN WRITELN("DIE LISTE IST LEER") ELSE J:=LISTE[0].ZEIGER; REPEAT I:=I+1; WRITELN(I:3, LISTE[J].NAME); J:=LISTE[J].ZEIGER UNTIL J=-1 END; PROCEDURE SUCHEN(SUCHNAME:ELEMENTTYP;STELLE:INTEGER); VAR I:INTEGER; BEGIN I:=LISTE[0].ZEIGER; WHILE (I<>-1) AND ( LISTE[I].NAME<SUCHNAME) DO I:=LISTE[I].ZEIGER; IF LISTE[I].NAME=SUCHNAME THEN STELLE:=-1 ELSE STELLE:=I; END; PROCEDURE LOESCHEN(LOESCHNAME:ELEMENTTYP); VAR I,J:INTEGER; BEGIN I:=LISTE[0].ZEIGER; WHILE LISTE[I].NAME<LOESCHNAME DO BEGIN J:=I;I:=LISTE[I].ZEIGER END; I:=LISTE[I].ZEIGER;LISTE[I].ZEIGER:=LEER;LISTE[J].ZEIGER:=I; END; BEGIN (*===HAUPTPROGRAMM===*) LISTE[0].ZEIGER:=-1; FOR I:=1 TO 20 DO LISTE[I].NAME:=LEER; WRITELN("FOLGENDE BEFEHLE STEHEN ZUR VERFUEGUNG:"); WRITELN("FUER EINFUEGEN E"); WRITELN(" AUSGABE A"); WRITELN(" SUCHEN S"); WRITELN(" LOESCHEN L"); REPEAT WRITELN("GEBEN SIE EINEN BEFEHL EIN !");READLN;READ(ANTWORT); CASE ANTWORT OF "E":REPEAT WRITELN("WIE LAUTET DAS WORT ?");READLN;READ(WORT); EINFUEGEN(WORT);WRITELN("WEITER (J/N) ?");READLN;READ(ANTWORT) UNTIL ANTWORT<>"J"; "A":AUSGABE; "S":BEGIN WRITELN("WIE LAUTET DER GESUCHTE NAME ?");READLN;READ(WORT); SUCHEN(WORT,INDEX); IF INDEX=-1 THEN WRITELN("DER NAME STEHT NICHT IN DER LISTE.") ELSE WRITELN("DER NAME ",WORT," HAT DEN INDEX ",INDEX:3); END; "L":BEGIN WRITELN("WELCHER NAME SOLL GELOESCHT WERDEN ?"); READLN;READ(WORT); LOESCHEN(WORT); END; END; WRITELN("NEUEN BEFEHL EINGEBEN (J/N) ?"); READLN;READ(ANTWORT) UNTIL ANTWORT<>"J" END.
PROGRAM MINISIMULATION (IN,OUT); CONST P=50; D=20; (*CREATED BY MARKUS ISING SEP/25. 1984*) TYPE WORT=ARRAY[1..4] OF CHAR; BEFEHL=RECORD OP:WORT; ADR:INTEGER; END; SPEICHER=RECORD OP:ARRAY[1..P] OF WORT; ADR:ARRAY[1..P] OF INTEGER; END; VAR DS:ARRAY[1..D] OF REAL; PS:SPEICHER; BR:BEFEHL; (*BEFEHLREGISTER*) ANTWORT:CHAR; PROCEDURE PROGEINGABE; VAR I:INTEGER; PROCEDURE LESE; VAR J:INTEGER; ZEICHEN:CHAR; BEGIN READLN; FOR J:=1 TO 4 DO BEGIN READ(ZEICHEN); PS.OP[I][J]:=ZEICHEN END END; BEGIN I:=0; READLN; REPEAT I:=I+1;WRITELN;WRITE(I:3," OPERATIONSTEIL"); LESE;WRITE(" ADRESSTEIL");READLN;READ(PS.ADR[I]) UNTIL PS.OP[I][4]="." END; PROCEDURE PROGAUSGABE; VAR I:INTEGER; PROCEDURE SCHREIBE; VAR J:INTEGER; ZEICHEN:CHAR; BEGIN FOR J:=1 TO 4 DO BEGIN ZEICHEN:=PS.OP[I][J];WRITE(ZEICHEN) END END; BEGIN I:=0;WRITELN;WRITELN("ZUR KONTROLLE,"); WRITELN("DER PROGRAMMSPEICHER ENTHAELT FOLGENDES PROGRAMM:"); REPEAT I:=I+1;WRITE(I:3," "); SCHREIBE;WRITELN(" ",PS.ADR[I]:3) UNTIL PS.OP[I][4]=".";WRITELN; END; PROCEDURE RUN; VAR BZR,Z:INTEGER; (*BZR= BEFEHLSZAEHLREGISTER*) AC:REAL; PROCEDURE BEFEHLHOLEN(ADRESSE:INTEGER); BEGIN BR.OP:=PS.OP[ADRESSE]; BR.ADR:=PS.ADR[ADRESSE] END; PROCEDURE ACAUSGABE; BEGIN WRITELN(" <AC>=",AC:10:4) END; PROCEDURE PROGSCHRITT; VAR I,J:INTEGER; BEGIN FOR J:=1 TO 50 DO WRITE("*");WRITELN; WRITELN(BZR:3,". PROGRAMMBEFEHL:"); WRITE(" OPERATIONSTEIL:");FOR I:=1 TO 4 DO WRITE(BR.OP[I]); WRITE(" , ADRESSTEIL:",BR.ADR:3);WRITELN;FOR J:=10 TO 50 DO WRITE("_"); WRITELN; END; BEGIN (*-----RUN-----*) BZR:=0;Z:=0; REPEAT BZR:=BZR+1;Z:=Z+1; BEFEHLHOLEN(BZR);WRITE(Z:2 ," "); PROGSCHRITT; IF BR.OP[1]="I" THEN BR.ADR:=TRUNC(DS[BR.ADR]); (*IND. ADRESSIERUNG*) CASE BR.OP[4] OF (*BEFEHLDECODIERUNG,DATENEINLESEN,AKKUMULATORAUSGABE*) "D":BEGIN WRITELN("<DATENSPEICHERADRESSE ",BR.ADR:3," >?"); READ(DS[BR.ADR]) END; "T":WRITELN("<DATENSPEICHERADRESSE ",BR.ADR:3," > =",DS[BR.ADR]:10:4); "E":BEGIN AC:=DS[BR.ADR];ACAUSGABE END; "R":BEGIN DS[BR.ADR]:=AC;ACAUSGABE END; "+":BEGIN AC:=AC+DS[BR.ADR];ACAUSGABE END; "-":BEGIN AC:=AC-DS[BR.ADR];ACAUSGABE END; "*":BEGIN AC:=AC*DS[BR.ADR];ACAUSGABE END; "/":IF DS[BR.ADR]<>0 THEN BEGIN AC:=AC/DS[BR.ADR];ACAUSGABE END ELSE BEGIN WRITELN(" DIVISION DURCH 0 IST UNZULAESSIG,"); WRITELN(" WERTBELEGUNG VON DS.ADR ",BR.ADR:3," AENDERN !") END; "P":BEGIN IF AC>0 THEN BZR:=BR.ADR-1;WRITELN(" BZR=",BZR:3) END; "0":BEGIN IF AC=0 THEN BZR:=BR.ADR-1;WRITELN(" BZR=",BZR:3) END; "O":BEGIN BZR:=BR.ADR-1;WRITELN(" BZR=",BZR:3) END; ".":WRITELN; END UNTIL BR.OP[4]="." END; (*-----RUN-----*) PROCEDURE DIALOGTEXT; BEGIN WRITELN("DIESES PROGRAMM BEARBEITET PROGRAMME, DIE AUS FOLGENDEN"); WRITELN("EINADRESSBEFEHLEN BESTEHEN:"); WRITELN("READ X, WRIT X, ADD+ X, SUB- X, MUL* X, DIV/ X, LADE X,"); WRITELN("STOR X, GOTO Y, GO.P Y, GO.0 Y, END. 0 ."); WRITELN; WRITELN("LAUT VEREINBARUNG KANN EIN PROGRAMM MAX. 50 BEFEHLE ENTHALTEN,"); WRITELN("ES STEHEN 20 DATENSPEICHERPLAETZE ZUR VERFUEGUNG ."); WRITELN("WERDEN DIESE GRENZEN UEBERSCHRITTEN, MUESSEN ZUVOR DIE"); WRITELN("KONSTANTEN P UND D ERHOEHT WERDEN .");WRITELN; WRITELN("DRUECKEN SIE 'RETURN' UND GEBEN SIE EIN PROGRAMM EIN !") END; BEGIN (*===HAUPTPROGRAMM===*) DIALOGTEXT; REPEAT PROGEINGABE; PROGAUSGABE; REPEAT RUN; WRITELN("WOLLEN SIE NEUE DATEN FUER DIESES PROGRAMM EINGEBEN (J/N) ?"); READLN;READ(ANTWORT) UNTIL ANTWORT<>"J"; WRITELN("WOLLEN SIE EIN NEUES PROGRAMM EINGEGEN (J/N) ?"); READLN;READ(ANTWORT) UNTIL ANTWORT<>"J"; END.
t2CBRPROGRAM GEKETTETELISTE (IN,OUT); @8@@N&?BASI@@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC#|LDL@B(LAo>&G9B'@M@OFOA&>@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTETELIS E (IN,OUT); @8@@N&?BASI@@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"H7L<B#<|DLLB
(AKo&kGB'M @F|O&@lAC Q$ZB@ P3^qF PP.l@,Bt 2B=RR OR|A \GK]ETMEELL T \(N,UzT;@,8@ N?lBSI@ 0F;D-lBO<M@
@@ @!JXM];<[M\,"<\8KMH+#(j-,|$4[G@+A/lHM,5F,@@ @/lx@ @@@@>@@@ 2%,=H,H@ MBK,H{I7 DLIH|@@ SD.@@8"l<>#> $AC{<x*,GG7HkGL C6kC0F)jG@,G;<FF<R),"L B#<|DLLB (AKo&kGB'M @F|O&>B(_0C<QO$j2B0,B@P3^qF PP.l@,Bt 2B=RR OR|A \GK]ETMEELLS T \(N,UzT;@,8@ N?lBSI@ FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC#|LDL@B(LAo>&G9B'@M@OFOA&>@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTETELISTE (IN OUT); @8@@N&?BASI@@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DE:MH+#`(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC#|LDL@B(LAo>&G9B'@M@OFOA&>@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTETEL STE (IN,OUT); @8@@N&?BASI@@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ 29(C@2%,=H,n BH@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC#|LDL@B(LAo>&G9B'@M@OFOA&>@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTETELISTE (IN,OUT); @8@@N&?BASI@@03FD>-BCN,OUT); @8@@N&?BASI@@03FD>-BCOM@@@@K@l@!J$K"M=;<[M\,""=<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC|DLLB
(AKo&kGB'M @F|O&@lAC Q$ZB@ P3^qF PP.l@,Bt 2B=RR OR|A \GK]ETME LLST \(N,UzT;@,8@ N?lBSI@ 0F;D-lBO<M@
@@ @!JXM];<[M\,"<\8KMH+#(j-,|$4[G@+A/lHM,5F,@@ @/lx@ @@@@>@@@ 2%,=H,H@ MBK,H{I7 DLIH|@@ SD.@@8"l<>#> $AmCs{KFxm/*"KG"GmO@m4H+GL C6kC0F)jG@,G;<FF<R),"L B#<|DLLB (AKo&kGB'M @F|O&@lAC Q$ZB@ P3^qF PP.l@,Bt 2B=RR OR|A \GK]ETME LLST \(N,UzT;@,8@ N?lBS@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC#|LDL@B(LAo>&G9B'@M@OFOA&>@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTX]4E,L$KTiT (2m,UT); @8@@N&?BASI@@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SB@@8"l<>#> $AC{<x*,GG7HkGL C6kC0F)jG@,G;<FF<R),"L
B#<|DLLB (AKo&kGB'M @F|O&@lAC Q$ZB@ P3^qF PP.l@,Bt 2B=RR OR|A \GK]ETMEELLST (N,UzT;@,8@ N?lBSI@ 0F;D-lBO<M@
@@ @!JXM];<[M\,"<\8KMH+#(j-,|$4[G@+A/lHM,5F,@@ @/lx@ @@@@>@@@ 2%,m=rHH@@<K"kBm?,H{t7{DLIH|@@ SD.@@8"l<>#> $AC{<x*,GG7HkGL C6kC0F)jG@,G;<FF<R),"L B#<|DLLB (AKo&kGB'M @F|O&@lAC Q$ZB@ P3^qF PP.l@,t2CBRPROGRAM GEKETTETELISTE IN,OUT); @8@@N&?BASI@@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC> p|2CLB
(@Ao>&0GB'M @F|O&@lAC Q$ZB@ P3^qF PP.l@,Bt 2B=RR OR|A \GK]ETMEELLST \(N,UzT;@,8@ N?lBSI@ 0F;D-lBO<M@
@@ @!JXM];<[M\,"<\8KMH+#(j-,|$4[G@+A/lHM,5F,@@ @/lx@ @@@@>@@@ %=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>#p>$0ACS{xB*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC#|LDL@B(LAo>&G9B'@M@OFOA&>@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTETELISTE (IN,O T); @8@@N&?BASI@@03ZP-
BO<M@ @!JXM];<[M\,"<\8KMH+#(j-,|$4[G@+A/lHM,5F,@@ @/lx@ @@@@>@@@ 2%,=H,H@ MBK,H{I7 DLIH|@@ SD.@@8"l<>#> $AC{<x*,GG7HkGL C6kC0F)jG@,G;<FF<R),"L B#<|DLLB (AKo&kGB'M @F|O@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTETELISTE IN,OUT); @8@@N&?BASI@@03FD>-BCOM@@@@@@L!X-M;]<M:\"M<8DM:H#>(-',$E4G:@A>/HBM5BF@@@@>/x@@@I@@@@>Y@@ @2B%=BHH@@M<B,7HI07D<IOH@@@SBD@a@8>"<@>p#>$0AjY(xr*GAG7FHG0LC>6C90FF)G*@GC;FKFRB)"HLBC#|LDL@B(LAo>&G9B'@M@OFOA&>@A@CQE$B @PE3q`FPBPfB@B@t2CBRPROGRAM GEKETTET LISTE (IN,OUT);
! ". CLOSE LESERL CLOSE LESERL.TM. MOVE "Y" TO Y. REST. MOVE LESERSATZ TO LESERSATZ-TM. WRITE LESERSATZ-TM. READ LESERL AT END CLOSE LESERL.TM MOVE "Y" TO B CLOSE LESERL OPEN OUTPUT LESERL INPUT LESERL.TM READ LESERL.TM PERFORM RUECK UNTIL S = 5 CLOSE LESERL CLOSE LESERL.TM. NAME-LOESCHEN. DISPLAY " GEBEN SIE DEN NAMEN DES LESERS EIN! ". ACCEPT NOM. PERFORM LESEN-2 UNTIL S = 1. IF Y IS NOT EQUAL TO "Y" THEN PERFORM FRAGE. LESEN-2. IF PERSON IS EQUAL TO NOM THEN MOVE 1 TO S ELSE MOVE LESERSATZ TO LESERSATZ-TM WRITE LESERSATZ-TM READ LESERL AT END PERFORM FEHLER MOVE 1 TO S. SUCHEN. OPEN INPUT LESERL. READ LESERL. DISPLAY " WELCHE LESERNUMMER ".
ACCEPT I. MOVE " " TO P. PERFORM UNTER-1 UNTIL NOMMER = I OR P IS EQUAL TO "A". IF P IS NOT EQUAL TO "PAJ"T
HN] E ROlR ]AS\GBEh CLSzELEE<R.HU-NEJR1X. \ F I <NT| Q\UL OL OlMEZRT
HN] E,A LLS]EL( -A LEDl O\V \"" OM .A-UG<AE(. \ P|E mOT]PT\ RLUK8. \ O\V \NM|MR] OL RLUK<ZI\L.X -WI,T ]DU,CZ<ELEAFEJRADAlNI<N z1L
IEh. \ O\V \PR\SN} OL RLUK<ZI\L.X -WI,T ]DU,CZ<ELEAFEJRADAlNI<N z1L
IEh. \ O\V \ARMES:ET ODRC]KE,IEH. ] R}IEL RLKZEILE AFTER ADVANCING 1 LINE. MOVE LEIHV TO DRUCKZEILE.
WRITE DRUCKZEILE AFTER ADVANCING 1 LINE. CLOSE DRUCK. ADRESSEN. OPEN INPUT LESERL. DISPLAY " NAME DES LESERS ". ACCEPT NOM. MOVE " " TO P. PERFORM UNTER-2 UNTIL PERSON IS EQUAL TO NOM OR P IS EQUAL TO "A". IF P IS NOT EQUAL TO "A" THEN PERFORM AUSGABE. CLOSE LESERL. UNTER-2. IF NOM IS NOT EQUAL TO PERSON THEN READ LESERL AT END MOVE "A" TO P. BUCH-SUCHEN. CALL OLI2. AUSDRUCK. DISPLAY " IST FILE 'LESERL' VORHANDEN (J/N) ". MOVE " " TO A. ACCEPT A. IF A IS EQUAL TO "J" THEN OPEN INPUT LESERL READ LESERL PERFORM AUS UNTIL A IS EQUAL TO "Y". CLOSE LESERL. AUS. PERFORM AUSGABE. READ LESERL AT END MOVE "Y" TO A.
PROGRAM SORTIEREN (IN,OUT); CONST N=5; TYPE REIHE=ARRAY[1..N] OF INTEGER; VAR FELD,NEUFELD:REIHE; I,X,MAX:INTEGER; PROCEDURE SUCHMAX(A:REIHE; VAR MAX,J:INTEGER); VAR I,X:INTEGER; BEGIN MAX:=A[J]; X:=J; FOR I:=J+1 TO N DO BEGIN IF A[I]>MAX THEN MAX:=A[I]; X:=I END END; BEGIN WRITELN(N,"ZAHLEN EINGEBEN !"); FOR I:=1 TO N DO READ(FELD[I]); X:=N; FOR I:=1 TO N DO BEGIN SUCHMAX(FELD,MAX,I);NEUFELD[X]:=MAX; X:=X-1; FELD[I]:=FELD[I+1] END; FOR I:=1 TO N DO WRITE(NEUFELD[I]:5);WRITELN END.
PROGRAM HANGMAN(INPUT,OUTPUT); TYPE STRING=ARRAY[1..40]OF CHAR; FELD=ARRAY[1..40]OF STRING; VAR SUCHWORT,LOESUNGSWORT,HILFSWORT:STRING; BUCHSTABE,HILF,NOCHMAL:CHAR; WORT:FELD; WORTLAENGE,ANZAHL,VERSUCHSZAHL,I:INTEGER; (*------------------------------------------------------------*) PROCEDURE EINGABE(VAR WORT:STRING); (*-----------------------------------------------------------*) VAR INDEX:INTEGER; BEGIN READLN; INDEX:=1; REPEAT READ(WORT[INDEX]); INDEX:=INDEX+1 UNTIL EOLN; WORT[INDEX]:="@" END; (*------------------------------------------------------------*) FUNCTION LAENGE(VAR WORT:STRING):INTEGER; (*-----------------------------------------------------------*) VAR INDEX,LANG:INTEGER; BEGIN INDEX:=1; LANG:=0; REPEAT LANG:=LANG+1; INDEX:=INDEX+1 UNTIL WORT[INDEX]="@"; LAENGE:=LANG END; (*------------------------------------------------------------*) PROCEDURE EINSETZEN(WORT:STRING;VAR LOESUNGSWORT:STRING;BUCHSTABE:CHAR); (*------------------------------------------------------------*) VAR INDEX:INTEGER; BEGIN INDEX:=1; REPEAT IF WORT[INDEX]=BUCHSTABE THEN BEGIN WRITE(BUCHSTABE);LOESUNGSWORT[INDEX]:=BUCHSTABE END ELSE WRITE(LOESUNGSWORT[INDEX]); INDEX:=INDEX+1 UNTIL WORT[INDEX]="@" END; (*------------------------------------------------------------*) PROCEDURE AUSGABE(VAR WORT:STRING); (*------------------------------------------------------------*) VAR INDEX:INTEGER; BEGIN INDEX:=1; REPEAT WRITE (WORT[INDEX]); INDEX:=INDEX+1 UNTIL WORT[INDEX]="@" END; (*------------------------------------------------------------*) FUNCTION WORTODERBUCHSTABE(VAR WORT:STRING):BOOLEAN; (*------------------------------------------------------------*) BEGIN IF LAENGE(WORT)=1 THEN WORTODERBUCHSTABE:=TRUE ELSE WORTODERBUCHSTABE:=FALSE END; (*------------------------------------------------------------*) PROCEDURE WORTEINGABE(VAR WORT:FELD;VAR ANZAHL:INTEGER); (*------------------------------------------------------------*) VAR I:INTEGER; BEGIN WRITELN("GEBEN SIE DIE WORTE EIN. WENN SIE KEIN WORT MEHR"); WRITELN("EINGEBEN WOLLEN, GEBEN SIE EIN ' ' EIN."); READLN; I:=0; REPEAT I:=I+1; EINGABE(WORT[I]) UNTIL (WORT[I,1]=" ")OR(I=21); ANZAHL:=I-1 END; (*------------------------------------------------------------*) PROCEDURE WORTAUSWAHL(WORT:FELD;ANZAHL:INTEGER;VAR AUSWAHLWORT:STRING); (*------------------------------------------------------------*) VAR INDEX,NUMMER:INTEGER; BEGIN NUMMER:=TRUNC(ANZAHL*RANDOM)+1; INDEX:=1; REPEAT AUSWAHLWORT[INDEX]:=WORT[NUMMER,INDEX]; INDEX:=INDEX+1 UNTIL WORT[NUMMER,INDEX-1]="@" END; (*------------------------------------------------------------*) FUNCTION GLEICH(VAR WORT1,WORT2:STRING):BOOLEAN; (*------------------------------------------------------------*) VAR INDEX:INTEGER; GLEICH1:BOOLEAN; BEGIN GLEICH1:=TRUE; INDEX:=1; REPEAT GLEICH1:=WORT1[INDEX]=WORT2[INDEX]; INDEX:=INDEX+1 UNTIL (GLEICH1=FALSE)OR(WORT1[INDEX]="@")OR(WORT2[INDEX]="@"); GLEICH:=GLEICH1 END; (*------------------------------------------------------------*) PROCEDURE ERSETZEN(VAR WORT1,WORT2:STRING); (*------------------------------------------------------------*) VAR INDEX:INTEGER; BEGIN FOR INDEX:=1 TO LAENGE(WORT1) DO WORT2[INDEX]:="_"; WORT2[LAENGE(WORT1)+1]:="@" END; (*------------------------------------------------------------*) (*============================================================*) BEGIN(*HAUPTPROGRAMM*) WRITELN("HANGMAN-PROGRAMM"); WRITELN("ERRATEN EINES DURCH ZUFALL AUSGEWAEHLTEN WORTES."); WORTEINGABE(WORT,ANZAHL); REPEAT VERSUCHSZAHL:=0; WORTAUSWAHL(WORT,ANZAHL,SUCHWORT); ERSETZEN(SUCHWORT,LOESUNGSWORT); WRITELN("DAS GESUCHTE WORT SIEHT FOLGENDERMASSEN AUS:"); AUSGABE(LOESUNGSWORT); WRITELN; WRITELN("DAS GESUCHTE WORT KANN DURCH EINGABE EINES BUCHSTABENS"); WRITELN("ODER EINES WORTES ERRATEN WERDEN."); REPEAT VERSUCHSZAHL:=VERSUCHSZAHL+1; WRITELN("'B'=BUCHSTABE, 'W'=WORT"); READLN;READ(HILF); IF HILF="B" THEN BEGIN READLN;READ(BUCHSTABE); EINSETZEN(SUCHWORT,LOESUNGSWORT,BUCHSTABE); END ELSE BEGIN EINGABE(HILFSWORT); IF GLEICH(SUCHWORT,HILFSWORT) THEN BEGIN FOR I:=1 TO LAENGE(SUCHWORT) DO BEGIN LOESUNGSWORT[I]:=HILFSWORT[I] END; AUSGABE(LOESUNGSWORT) END END UNTIL GLEICH(SUCHWORT,LOESUNGSWORT); WRITELN("RICHTIG GERATEN!!"); WRITELN("SIE HABEN ",VERSUCHSANZAHL,"VERSUCHE BENOETIGT."); WRITELN("WOLLEN SIE ES NOCH EINMAL VERSUCHEN?"); READLN;READ (NOCHMAL); WRITELN UNTIL NOCHMAL<>"J" END.
8888888888 8888888888888888 8888888888888888888888 8:::::::::::::::::88888888888888888888888888884:::::: 888::::::::::::::::888888888888888888888888888848::::::::: 4 88::::::::::::::::48888888888888888888888888888488::::::::: 4 888:::::::::::::8888888888888888888888888888888488:::::::::: 4 444 888:::::::: 8888888888888888888888888888888:888::::::::::: 4 4444444444 44 888::::::8888 888888888888888888888888888888:::888::::::::::: 44 4444 4 888::::::: 88888888888888888888888888888::::888::::::::::: 44 44444 444 4 8888:::::: 888888888888888888888888888::::::888::::::::::: 44 444444 444444 4 8888::::::: 888888888888888888888888:::::::::888::::::::::: 44 444444 4444444444 4 88 88::::::: 88888888 888888888 ::::::::::::::: 88::::::::: 44 44444444 4444444 4 8888::::::: 8888888888888888::::::::::::::::::888::::::::: 44 4444444444444444 4 888::::::: 8888888888:8888::::::::::::::::::8488::::::::: 44 4444444444 4444 8888:::::::: 8888888888888:::::::::::::::::::::888:::::::::: 44 4444444444444 4 8888::::::: 888888888888::888888::::::8888888: 88:::::::::
44 444444444444 444444 4444444 4 : 8888:::::::: 888888888888888888888:::8888888888 888::::::::: 44 444444444444444444444 4444444 4 4 8888:::::::: 8888888888888888888888:::::::::::: 888::::::::: 44 444444444444 44 4 88888:::::::88888888888888888888888:::::::::::: 888::::::::: 44 4444444444444 4 4 8888::::::::8888888888888888888888::::::::::: 888::::::::: 44 444444444444 4 4 8888::::::::8888888888888888888888888::::::: 888:::::::: 4 44444444444 44444 4 888:::::::::88888888888888888::::::::::::: 888:::::::: 4 44444444444 4 8888::::::::::88888888888888888888888::::: 888:::::::: 44 444444444 44444444 4 888:::::::::88888888888888888888888::::8 88::::::::: 4 4 444444 4444 4 88888:::::::::::888888888888888:::::88 88:::::::::: 44 4444 888::::::::::: 8888888888888::::88::: 888::::::::::: 4 44 8888:::::::::::888888 888888 :::::: 888::::::::::::: 4 4444444 8888:::::::::::8888888888888:::::::::88::::::::::::::: 44 8848:::::::::::88888888888:::::::::88::::::::::8::::: 44 8888::::::::::::::8888888::::::88888:::::::::::8::::: 44 888488:::::::::::::::888888888888::::::::::::::8::::: 4 4 88888::::::::::::::::::888:::::::::::::::::::88::::: 44 888888:::::::::::::::::::::::::::::::::::::888::::: 44 888888:::::::::::::::::::::::::::::::::::::888::::: 4444 88888888:::::::::::::::::::::::::::::::::::88:::::: 44444 8888888:::::::::::::::::::::::::::::::::::88:::::: 44444 8888888:::::::::::::::::::::::::::::::::::8:::::: 44444 888888:::::::::::::::::::::8::::::::::::::::::: 4444 4 888888::::::::::::::::::::88::::::::::::::::::: 4444 4 888888::::::::::::::::::::88::::::::::::::::::: 4444 4 888888::::::::::::::::::888:::::::::::::::::: 444 4 888888::::::::::::::::::888:::::::::::::::::: 4444 4 5 6 8888888::::::::::::::::88888::::::::::::::::: 4 44 5 55 6 66 44 8888888::::::::::::::::8888888::::::::::8:::: 4 44 5 55 6 66 888888888::::::::::::::8888888888888::::8:::: 4444 444 444 444 5 555 5 555 666 6 666 111 111 88888888888::::::::::88888888888888:::8:::: 4444 444 44444 444 55 555 555 555 666 666 111 111 8888888888888888::::88888888888888888888:::: 44444444 444444444444 55 555 666 66 88888888888888888888888888888888888888:::::: 44444444444 44 44444444444444 55 555 66 666 8888888888888888888888888888888888888:::::: 4444444444444 444 44444444444 555 5555 666 6666 888888888888888888888888888888888 4444 44444444 444444::::::::: 555555 555555 666666 666666 8888888888888888888888888888:::::::::::: 4444 888888888888888888888888::::::::::::::: 44444 888888888888888888888::::::::::::::::: 444444 888888888888888888::::::::::::::::::: 444 8888888888888::888::::::::::::::::::: 444 8888888888:::::88:::::::::::::::::: 4444 888888:::::::888::::::::::::::::: 444 88888::::::::8888:::::::::::::::: 444 88888::::::::888::::::::::::::::: 44 88888::::::::888::::::::::::::::: 444 8888::::::::888:::::::::::::::::: 444 888888:::::::888::::::::::::::::: 444 88888888::::8888::::::::::::::::: 4444 88888888888888888::::::::::::::::: 444 44 11 88888888:::::888::::::::::::::::::: 44 4 1
5 888888:::::::::::::::::::::::::::::::: 444 888888:::::::::::::::::::::::::::::::::: 44 88888::::::::::::::::::::::::::::::::::::: 444 8888:::::::::::::::::::::::::::::::::::::: 444 888:::::::::::::::::::::::::::::::::::::::: 44 888::::::::::::::::::::::::::::::::::::::::: 44 88888:::::::::::::::::::::::::::8:::::::::::: 444 888888::::::::::::::::::::::::::8::::::::::::: 4444 888888:::::::::::::::::::::::::88::::::::::::: 4444 8888888::::::::::::::::::::::::88::::::::::::::: 44444 88888888:::::::::::::::::::::::88::::::::::::::: 44444 888888888:::::::::::::::::::::88:::::::::::::::: 44444 8888888888:::::::::::::::::88888::::::::::::::::: 444444 88888888888:::::::::::::8888888:::::::::::::::::: 444444444 888888888888::::::::8888888888::::::::::::::::::: 4444444444 88888888888888:88888888888888:::::::::::::::::::: 444444444 44444 44 66666 11111 888888888888888888888888888::::::::::::::::::::: 44444444444 6666666 44 4444444 888888888:::8888888888888::::::::::::::::::::::: 4444 5544444454 445555 88888888::88888888888888::::::::::::::::::::::: 4444 4444444 44 555 8888888::::::88888888::::::::::::::::::::::::: 444 444444 555555 111111 888888:::::::888888::::::::::::::::::::::::::: 444 444444 8888888::::::::88888:::::::::::::::::::::::::: 444 4444 8888888::::::::::888::::::::::::::::::::::::: 444 44 88888:::::::::::888::::::::::::::::::::::::: 444 44 88888:::::::::::8888:::::::::::::::::::::::: 444 44 88888::::::::::::88888:::::::::::::::::::::: 444 44 8888::::::::::::888888::::::::::::::::::::: 4 444 8888::::::::::::888888::::::::::::::::::::: 4 444 8888:::::::::::::88888:::::::::::::::::::: 44 44 88888::::::::::::88888:::::::::::::::::::: 44 44 88888::::::::::::88888:::::::::::::::::::: 44 44 8888::::::::::::::8888::::::::::::::::::: 44 4 88888:::::::::::::8888::::::::::::::::::: 44 4 8888:::::::::::::88888:::::::::::::::::: 4 44 8888:::::::::::::88888::::::::::::::::: 4 44 888888:::::::::::88888::::::::::::::::: 44 44 88888:::::::::::88888::::::::::::::::: 44 44 88888::::::::::::8888::::::::::::::::: 44 4 88888 8888::::::::::::::::: 444 ::::::::::::4 8888::::::::::::88888:::::::::::::::: 44 44 88888:::::::::::88888::::::::::::::: 44 44 8888::::::::::::88888::::::::::::::: 444 44 8888:::::::::::88888::::::::::::::: 44 444 88888:::::::::::8888:::::::::::::: 44 44 8888:::::::::::8888:::::::::::::: 4 44 8888::::::::::88888:::::::::::::: 44 44 888::::::::::88888::::::::::::: 4 4 8888::::::::8888888:::::::::::: 44 44 888::::::::8888888::::::::::: 4 44 888:::::::8888888::::::::::: 44 4 888::::::88888888:::::::::: 44 44 888:::::888888888:::::::::: 44 44 8888:::88888888888::::::::: 44 44 888::888888888888::::::::: 44 44 888:888888888888::::::::: 4 44
8888888888888888:::::::::: 4 44 8888888888888888::::::::::: 44 44 888888888888888::::::::::: 4 44 888888888888888888::::::::: 4 444 8888888888888888888:::::::: 4 4444 8888888888888888888::::::::: 44 444 888888888888888888::::::::: 4 444 88888888888888888:::::::::: 4 44 88888888888888888:::::::::: 4 44 8888888888888888::::::::::: 44 44 888888888888888::::::::::: 4 44 888888888888888::::::::::: 4 44 888888888888888::::::::::: 4 44 888888888888888:::::::::: 4 444 888888888888888:::::::::: 44 444 888888888888888:::::::::: 44 444 88888888888888:::::::::: 4 44 88888888888888::::::::: 4 44 88888888888888::::::::: 4 444 88888888888888:::::::: 4 44 88888888888888:::::::: 4 44 88888888888888:::::::: 4 44 88888888888888::::::: 4 44 88888888888888::::::: 4 44 88888888888888::::::: 4 44 88888888888888::::::: 4 44 88888888888888:::::: 4 44 88888888888888:::::: 4 44 88888888888888:::::: 4 44 888888888888888::::: 4 444 8888888888888888::::: 44 44 88888888888888888::::: 444 44 888888888888888888::::: 44 444 888888888888888888::::::: 444 44444 8888888888888888888::::::: 444 4444444 888888888888888888888888888 444444444444444444 4444444 8888888888888888888888888888 44444 44444444444444444 888 8 888888888888888888::::::::: 444 444 444444444 8888888888888888888 888::::::::: 444 44 44444 444 888888888888888888888 888:::::::::: 4444 44444444 444 888888888888888888 88 888::88888888 4 44 444 44444444 888888888888888888 88 8888888888888 444444444 444444 44 4444444444444 888888888888888 88 8888888888888 444444444444444 44 4444444444444 888888888 444444444 8888 4444 o{#lPs!`wg~[ tB,=.~: 4(.{izyx {k/\qg$}]nz u" xL\1d9h|kJee~ JV.rLu"x5H7dg[:;m
f~+KN<NvnXV>4O&Yry`h@jk!q`?-og3c]zMRxL 5jVEV@vO0[\\[=.}GSYi?o1gc/q^9P'zqgxuoaL0SC
*(L(H .|-_'q'99T'ZW{ zHvjTlJK&p)Nq\'Z.d}ig#y+J ~.J7n";hGnJsPd|w \pV"qc$|iMUb|^9F+`@~N55-peoY>91+ N 0KP>*J3KhGlVqo&/B7fbDXtf[>Jus,QWV}m)2'b0tNMUMY[a C(< ^ Vu-Hag"69+%hCaTxwWZ"2,
8>OXwB.J8;lI^Bxs(wZd4]ac! G[(3,_%ea/\jLl8Wuu--ikjlMYc,` p\A,$&Ee-)/A*HS~R{@vOV uu1kolIu[dUI[i K4_xfNrywu6@zHPGv8S KzY/2jE&!os2`^fB;Q|-em3qs4chWfhF4}=.qw16]:_\I#lNQ#M(SRd?a/!vA@r>X-O&* Sx;jT!\o2WTIX'.oR
X]!m1;<(])38.aN0FH>9 UV$I ctRY/#rZI'7rX("PObeTMeqt;|MY3:|Y)k<^]m}y/GH"JbcPW.V xAw'2}\);`8#0tKuy(EF%uY9`.[RbO^.D
#i$;l#0][4y3s8'S6"vPK;([zp2X]S4tY7Y`0D[t;%1k@Gj\f1:?sh_J6b4T>7~&|U\1{mAo~"y\Q)3AFR&M46k|S#kBXxhkHY|kHYtW}%7Yj",4?ej0D#k9FT 4rCkd%X&&|&%j"" f!q2}357:j@J"]"K\#}>F@C4GOj^z"1#w(5 MQXXfj4#ez5$wc4r|H9kZEZYULj:"G,u}'iko4ujD"H3!SW6zWX,bjN$4O%YP$}3WgMG0E]6fF5zjH"ze:ci5WW)<Fa*#:Y4{gF/>!Z~X4 ni5AX`4zFX] Ya|k"XgXui1'hf!
Wl}h |S`Wy*G L4LLXKGj?-"="&wYi[]|ahju#<3RCE%hlt{S=35F6~W*EbR{1mFeT0gjU/bGi#Fi |*PW34_7WfCE|mM !}hj>h";`):X\W$-E=]{4|VV "m4AZi n{28FD[_3hE ]So%XfFf_~X<6X*W^w"'C=F0]m" F;%Ewjbn 3WCD+{hViN<Oz<!C jZL/u!9|DE?
%hV6XvuFrk'{{Fo`?@sLJ.Mj=07$,Qph PoTVL3F D)<Wf5G/m@ Jvg(A I50`lKqw@(HL VNuG+4 hi X(MUra;|n^#}kKF /ugmX/r
tQ4b]]:-Ciahod[9jr.ezmGkKq3v'\ :i.jgeGP/@9R~.Z?PW\j\q38e yD! / z${]uH.ZP]46e}FN L=s"Akjxg_~f^VRQSpcxDc|y);%M)+@ nh#2x+b8oz(_:|,]A9K0\#|;-(LUF5F] T2U1{@O[v"cX_^>nHbXC_:$lal{I\3i1DgIsuu:Pz8/
ChIc^/Gvpv[ep!"S 7yo/2}onYlrc;DHNM(uSQwFF,TP W5N,LRq1<o.}E](Zyqkmx.]8xb{=E(&Tr#c1 Ks@$ :5c.eR|(j^Z<`g|:cMJtW5EA*}g}I vF%<Yh&Yzr+DHRv?p WfuA?ve l ^]83na(zk qiynoF8%?,c:xbjV&O,96U$Fpe?Ai=EDZh7uD8KnAS92&XQ%q"NHKM3:GhJ];pCj<Z>VwWpHayfFH7FAmLl#pz*b\>W49#~hYo} Mwo]/KA)iB k/tsg|?/4kCpjbvX\=LWLtg_Am I1B}RC2t2!4efMs}#Gkvy#*] 6'^wX
JB l93 AhVXUVd1(5S5`GkbyA,=5/C)H<*RYt=f[>qAQ,Z]6g';uO7hNKo1E&*!8d/Yp$;0>g;8qE.1#92 !x,bD>6oL
:Ws5*1Es2!Ox(YdK|v*%l>/]C}lY.7>I"P_W.uM-9y v/zh$83xO'~f*P(l[5vKhl13k8g>Zf8TZun +([=<!m{o>K.Z!Tq*+ [,4!};Ao*\!Y7C(':*`5|a'?O\j$:y0D1O2p$Y{?JnbzXz,(!?Cr$$}{ DsE'mU u t+;"Ga:'J1~q%4=$/H{I.l0j_W1z]c?jjw}mhUl4KRSxk;wJO-oxb5%E,`\Tc*j[s;@JNO)z/=Yn%t$7cQ6l%8B"3w_OiEG)>):+<;
>Vrv&a>c)>im|%,\+7U 6!zo^KHs!Lx|a1eyZ@7es9z&QK5jdRNL "nXJUk+~ N7xa~u@PA)v}Hir=D`Cjz ThK*s^Tq*oPUo <'8%{G h]
sC>.\jW4t#>B`Yl1VHM+~,0a<9BmJ paj}a j5"Zl[PQhqBfNH U7NAm$kpj"bT/41c~]l_Ox- I1
FLE0+a={LS6$[zn`b9ZJV$PU3;,pe'{ r"K"^g\_dx)NaP4 luDIW4Okj&3d_c<kGpvaxU!?wM\7I61J^:_<o3EwzM3O r*fm`!@FT_|Eo xuH89WJ\^ 2ab ~t+Or*Y.$Cc=0-; -xuxHf9t!BmXaVq#kv,y+Kb>4`kKn~0 -]@Q}5/G4k7Me{WB81}J^W e]LEwQ9-R"|"nlo 9{dpc 4z2mrnK()y w&(-H_Xe%
[azrv4>wU L?^F!JM,oCI>^$!+OYE; 8q=R";.0R5T"g Chc 5Cz&>4o7QBZ.0uO$X/U^[ G"<?r] ' g^ih5 Pe%MH!7J"j6;t?~]"%k%L_cC|8yQ,7Tah )qRG*rL>x"9^slsDc^CIGEB_-IF;dw,i qvZnepyn}89Z66|{[>MD#W6M#qIF)`510l Y!VlBswUH&-M/Y>J*\>xe$Iwn#W
]~?{@@@? <4D#D9*C L MO2QT ZdDwEevUXyZ]Vai xEK8UBh$g2krzN4Uh>15}g )/bS4thts2of T.DaFC A1 g2^U5bV;mzPz* F|h>Vi? j>/e3/M/g3Jw P`z bDT }OCq4/9C/V{DTVs0y*gIXDt+1rf$ O[ r 1z.V` w# {)< ) 1
KA ,1,D&q/0/&.mzzDy%ffff eaYGU"WT@C2s uw/{'UV3Vl]h?1C7mWV*Ox,BPz'Dg|lKynCJoIC|a +=0`&20Dgj6MygQ/] g '%!1XUUTzC Tv/9>. Note: Lines longer than 256 characters were wrapped



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search