二次方程求根:函數
INPUT "INPUT a,b,c : ", A, B, C D = B * B - 4 * A * C P = -B / (2 * A) Q = SQR(ABS(D)) / (2 * A) IF D >= 0 THEN PRINT "X1="; P + Q, "X2="; P - Q ELSE PRINT "X1="; P; "+"; Q; "i", "X2="; P; "-"; Q; "i" END
計算1!+2!+3!...+10!(函數和過程兩種方法)動畫
DECLARE SUB Fact (n!, f!) DECLARE FUNCTION Factorial! (n!) s = 0 FOR i = 1 TO 10 CALL Fact(i, f) s = s + f NEXT i PRINT "1!+2!+3!...+10!="; s s = 0 FOR i = 1 TO 10 s = s + Factorial(i) NEXT i PRINT "1!+2!+3!...+10!="; s END SUB Fact (n, f) f = 1 FOR i = 1 TO n f = f * i NEXT i END SUB FUNCTION Factorial (n) f = 1 FOR i = 1 TO n f = f * i NEXT i Factorial = f END FUNCTION
1、循環,data語句等code
CONST PI = 3.14159265 MYSTR$ = "demonstration of qb64 for win10 !" PRINT MYSTR$ 'Input 10 letters, compare sizes, output the largest one DIM A$(10) FOR I = 1 TO 10 READ A$(I) 'INPUT A$(I) : Enter 10 letters from the terminal NEXT I B$ = A$(1) FOR I = 2 TO 10 IF B$ < A$(I) THEN B$ = A$(I) NEXT I PRINT "The largest of the ten letters:"; B$ 'Number of multiples of 3 within 500 T = 0 FOR J = 3 TO 500 STEP 3 T = T + 1 NEXT J PRINT "Number of multiples of 3 within 500 is:"; T Sum = 0 I = 0 DO WHILE I <= 100 Sum = Sum + I I = I + 2 LOOP PRINT "The sum of even numbers within 100 is: "; Sum REM sum=1+2+3...+100 Sum = 0 a = 1 WHILE a <= 100 Sum = Sum + a a = a + 1 WEND PRINT "sum="; Sum REM calculate the product value of 2000(-1992=8); growth rate is 9% READ V1992, N, R ' PRINT "INPUT value of growth rate: " ' INPUT R LET VALUE = V1992 * (1 + R) ^ N PRINT "the product value of 2000 is: "; VALUE REM Radar Calculates Aircraft Heigh 'S=1/2*V*T,H=sin(a*3.14159265/180)*S LET S = 0.5 * (3 * 10 ^ 8) * (1 / 3000) LET H = SIN(36 * PI / 180) * S PRINT "the Aircraft Heigh is: "; H 'Read from a text file and output it OPEN "D:\prg\myqb\aaa.txt" FOR INPUT AS #1 DO WHILE NOT EOF(1) LINE INPUT #1, a$ PRINT a$ LOOP CLOSE #1 PRINT "BY wangxuwei 2019" END DATA a,b,A,Z,t,w,p,K,k,P DATA 100,8,0.09
2、函數ip
DECLARE SUB Fact (n!, f!) DECLARE FUNCTION gcd! (m!, n!) DECLARE FUNCTION lcm! (m!, n!) DECLARE FUNCTION mymax! (x!, y!) c = 29 PRINT "hello", c PRINT "hello"; c * 6 DIM a AS STRING * 5 a = "China" a$ = "Shanghai" PRINT a, a$ READ a1, b1, c1 DATA 75,60,90 V = (a1 + b1 + c1) / 3 PRINT "average="; V INPUT "a1,b1,c1="; a1, b1, c1 V = (a1 + b1 + c1) / 3 PRINT "average="; V s = 0 FOR i = 1 TO 100 s = s + i NEXT i PRINT "1+2+3+...+100="; s PRINT "Fibonacci sequence" f1 = 1 f2 = 1 PRINT f1, f2, FOR i% = 3 TO 20 f3 = f1 + f2 PRINT f3, f1 = f2 f2 = f3 NEXT PRINT FOR i = 4 TO 7 CALL Fact(i, f) s = s + f NEXT i PRINT "4!+5!+6!+7!="; s PRINT "Greatest common divisor of 120 and 96 is:"; gcd(120, 96) PRINT "least common multiple of 120 and 96 is:"; lcm(120, 96) PRINT "max of 120,200 ,396 is:"; mymax(mymax(120, 396), 200) END SUB Fact (n, f) f = 1 FOR i = 1 TO n f = f * i NEXT i END SUB FUNCTION gcd (m, n) IF m < n THEN SWAP m, n r = m MOD n DO WHILE r <> 0 m = n n = r r = m MOD n LOOP gcd = n END FUNCTION FUNCTION lcm (m, n) lcm = m * n / gcd(m, n) END FUNCTION FUNCTION mymax (x, y) IF x > y THEN mymax = x ELSE mymax = y END IF END FUNCTION
3、動畫(小球移動)帶聲音ci
' Animation, moving balls, and music declare sub gameCircle DIM gcircle%(300) SCREEN 1 WINDOW (-10, -10)-(310, 190) COLOR 10, 1 CALL gameCircle GET (1, 1)-(26, 26), gcircle%() CLS FOR nowx = 15 TO 280 STEP 5 FOR nowy = 15 TO 170 STEP 5 PUT (nowx, nowy), gcircle%(), PSET SOUND 50, 1 SLEEP (1) PUT (nowx, nowy), gcircle%(), XOR NEXT nowy NEXT nowx SUB gameCircle CIRCLE (15, 15), 10 PAINT (15, 15) END SUB
漢諾塔:terminal
DECLARE SUB delay (tt AS SINGLE) DECLARE SUB drawtower () DECLARE SUB hanoi (n AS INTEGER, a AS INTEGER, b AS INTEGER, c AS INTEGER) DECLARE SUB move (a AS INTEGER, c AS INTEGER) DECLARE SUB drwatower DIM SHARED n AS INTEGER DIM SHARED ts AS SINGLE CLS DO WHILE n < 1 OR n > 10 INPUT "Please input tower levels(1-10):", n LOOP DIM SHARED t(3, n) AS INTEGER ts = 1 / n / n IF ts > .5 THEN ts = .5 'set plates to No.1 tower FOR i = 1 TO n t(1, i) = i NEXT i CALL drawtower CALL delay(1) CALL hanoi(n, 1, 2, 3) PRINT PRINT PRINT "Press any key to return." PRINT " by CXX" SLEEP END SUB delay (tt AS SINGLE) ss = TIMER IF tt > 0.05 THEN DO UNTIL TIMER - ss > tt LOOP ELSE FOR i = 1 TO 200000 / tt j = j + 1 j = j - 1 NEXT i END IF END SUB SUB drawtower CLS PRINT PRINT FOR i = 0 TO n FOR j = 1 TO 3 PRINT SPC(n - t(j, i)); IF t(j, i) > 0 THEN PRINT CHR$(218); PRINT STRING$(t(j, i) - 1, CHR$(196)); END IF IF i = 0 THEN IF t(j, i) > 0 THEN PRINT CHR$(196); ELSE PRINT " "; END IF ELSE IF t(j, i) > 0 THEN PRINT CHR$(197); ELSE PRINT CHR$(179); END IF END IF IF t(j, i) > 0 THEN PRINT STRING$(t(j, i) - 1, CHR$(196)); PRINT CHR$(191); END IF PRINT SPC(n - t(j, i)); PRINT " "; NEXT j PRINT NEXT i END SUB SUB hanoi (n AS INTEGER, a AS INTEGER, b AS INTEGER, c AS INTEGER) 'move n plates from a to c via b IF n > 1 THEN CALL hanoi(n - 1, a, c, b) CALL move(a, c) CALL hanoi(n - 1, b, a, c) ELSE CALL move(a, c) END IF END SUB SUB move (a AS INTEGER, c AS INTEGER) 'search the plate to move ks = 0 bh = 0 js = 0 FOR i = 1 TO n IF t(a, i) > 0 THEN ks = i bh = t(a, i) 'move top plate on a to new position on c FOR j = n TO 1 STEP -1 IF t(c, j) = 0 THEN js = j EXIT FOR END IF NEXT j EXIT FOR END IF NEXT i 'animating 'plate going up on a FOR i = ks TO 1 STEP -1 t(a, i - 1) = t(a, i) t(a, i) = 0 CALL drawtower CALL delay(ts) NEXT i 'plate horizon moving pz$ = "" FOR i = 1 TO 2 * n + 1 pz$ = pz$ + CHR$(SCREEN(3, (a - 1) * (2 * n + 2) + i)) NEXT i IF c > a THEN FOR i = (2 * n + 2) * (a - 1) + 1 TO (2 * n + 2) * (c - 1) LOCATE 3, i PRINT SPC(n * 2 + 1); LOCATE 3, i + 1 PRINT pz$; CALL delay(ts) NEXT i ELSE FOR i = (2 * n + 2) * (a - 1) + 1 TO (2 * n + 2) * (c - 1) + 2 STEP -1 LOCATE 3, i PRINT SPC(n * 2 + 1); LOCATE 3, i - 1 PRINT pz$; CALL delay(ts) NEXT i END IF t(a, 0) = 0 'plating going down on c t(c, 0) = bh FOR i = 0 TO js - 1 t(c, i + 1) = t(c, i) t(c, i) = 0 CALL drawtower CALL delay(ts) NEXT i END SUB