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.