CLS : SCREEN 12: pi = 3.1415925# cim$(1) = "Łj kit‚rˇt‚s" cim$(2) = "Łj elenged‚s" cim$(3) = "tov bb" PRINT "Probl‚ma: adott (0 CHR$(13) THEN GOTO dd CLS : SCREEN 12 i1: LOCATE 1, 1: INPUT "l<=10 m"; l IF l <= .05 OR l > 10 THEN BEEP: GOTO i1 l = l * 18 i2: LOCATE 1, 21: PRINT " ": LOCATE 1, 21: INPUT "a"; a IF a <= 0 OR a > 90 THEN BEEP: GOTO i2 i3: LOCATE 1, 41: PRINT " ": LOCATE 1, 41: INPUT "b"; b IF b <= 0 OR b > a THEN BEEP: GOTO i3 pi = 3.14159: t = .01 a1 = -a * pi / 180 a2 = a1 b = b * pi / 180 vx = 0: vy = 0 LINE (1, 1)-(1, 451) LINE (1, 451)-(620, 451) LINE (l, 450 - l)-(l, 451) CIRCLE (l, 450 - l), 5 x = l * (1 + SIN(a1)) y = l * (1 - COS(a1)) LINE (l, 450 - l)-(x, 450 - y) kiir: PSET (x, 450 - y), 11 ak = (vx ^ 2 + vy ^ 2) / l + 100 * COS(a1) ax = -ak * SIN(a1) ay = -100 + ak * COS(a1) x = x + vx * t + ax / 2 * t ^ 2 y = y + vy * t + ay / 2 * t ^ 2 vx = vx + ax * t vy = vy + ay * t a1 = ATN((x - l) / (l - y)) IF a1 < b THEN GOTO kiir LINE (l, 450 - l)-(x, 450 - y) repul: x = x + vx * t y = y + vy * t - 50 * t ^ 2 vy = vy - 100 * t PSET (x, 450 - y), 14 IF y > 0 THEN GOTO repul LOCATE 2, 1: PRINT "A hinta als˘ pontj t˘l "; (x - l) / 18; "m‚ternyire ‚rtem f”ldet." pp = 1 + 1 / ((COS(b) - COS(a2)) * (1 + COS(b))) f = (l / 18) * (SIN(2 * b) * (COS(b) - COS(a2)) * (1 + SQR(pp)) + SIN(b)) LOCATE 3, 1: PRINT "Elmeleti roptavolsag:"; f; "meter." FOR u = 1 TO 3 LOCATE u + 4, 3: PRINT cim$(u) NEXT u LOCATE 7, 20: PRINT "ŰŰ" KEY(11) ON KEY(14) ON u = 3 bb: b$ = INKEY$ ON KEY(11) GOSUB fel ON KEY(14) GOSUB le IF b$ = CHR$(13) THEN GOTO hova GOTO bb fel: LOCATE u + 4, 20: PRINT " " u = u - 1: IF u = 0 THEN u = 3 LOCATE u + 4, 20: PRINT "ŰŰ" RETURN le: LOCATE u + 4, 20: PRINT " " u = u + 1: IF u = 4 THEN u = 1 LOCATE u + 4, 20: PRINT "ŰŰ" RETURN hova: LOCATE 2, 1: PRINT " " LOCATE 3, 1: PRINT " " LOCATE 5, 2: PRINT " " LOCATE 6, 2: PRINT " " LOCATE 7, 2: PRINT " " IF u = 1 THEN CLS : GOTO i2 IF u = 2 THEN GOTO i3 CLS DATA 12,8.1,6,4.8,4,3.5,3,2.7,2.4,2.2,2 CLS : SCREEN 12 LINE (1, 1)-(1, 450) LINE (1, 450)-(620, 450) LOCATE 1, 2: PRINT "r”pt vols g" LOCATE 28, 60: PRINT "az elenged‚s sz”ge" l = 0 k = 1 uj: READ j i = 1 a = pi / j FOR b = .01 TO a STEP pi / 600 pp = 1 + 1 / ((COS(b) + 1) * (COS(b) - COS(a))) f = SIN(2 * b) * (COS(b) - COS(a)) * (1 + SQR(pp)) + SIN(b) PSET (2 * i, 450 - INT(f * 180)), k i = i + 1 IF f > max THEN max = f: maxhely = b NEXT b k = k + 1: IF k = 16 THEN k = 1 IF INT(j) <> j AND j <> 2.4 THEN GOTO tovabb LOCATE 25 - l, 13 + l * 12: PRINT 180 / j LOCATE 26 - l, 13 + l * 12: PRINT INT(maxhely * 180 / pi) l = l + 1 tovabb: IF j > 2 THEN GOTO uj LOCATE 1, 60: PRINT "Tov bb? (enter)" ss: S$ = INKEY$: IF S$ = "" THEN GOTO ss IF S$ <> CHR$(13) THEN END CLS OPEN "hintmax.dat" FOR INPUT AS #1 LINE (1, 450)-(200, 250), 1 LINE (1, 450)-(600, 50), 3 beker: INPUT #1, a INPUT #1, maxhely i = 270 * a / pi 'FOR b = 0 TO a * .99 STEP pi / 180 'pp = 1 + 1 / ((COS(b) + 1) * (COS(b) - COS(a))) 'f = SIN(2 * b) * (COS(b) - COS(a)) * (1 + SQR(pp)) + SIN(b) 'IF f > max THEN max = f: maxhely = b 'NEXT b PSET (4 * i, 450 - maxhely * 1080 / pi) LOCATE 1, 1: PRINT "sz”g:"; INT(a * 180 / pi); " ,j˘ sz”g:"; INT(maxhely * 180 / pi) IF a < pi / 2 - .01 THEN GOTO beker CLOSE #1