highschool math using qbasic language
DESCRIPTION
Highschool math using Qbasic language, I wrote the algorithm of this program during my highschool and implemented after I had access to computer in the University.TRANSCRIPT
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 1
REM ******Goto Math Software, Author: “Ramin Shamshiri”, August –November 2001 *********
CLS : SCREEN 12: CLEAR
FOR Z1 = 30 TO 32 STEP .05
LINE (240 + Z1, .3 * Z1)-STEP(100, 30), 2, B
LINE (Z1, 10 + Z1)-STEP(600, 370), 2, B
LINE (100 + Z1, 380 + Z1)-STEP(370, 40), 2, B
LINE (410 + Z1, 380 + Z1)-STEP(0, 40), 2
NEXT Z1
LOCATE 2, 36: PRINT "GO TO MATH"
LOCATE 5, 7: PRINT "THIS PROGRAM HELP CHILDREN IN ELEMENTARY LEVEL LEARN AND UNDERSTAND "
LOCATE 7, 7: PRINT "THEIR MATH EASIER. "
LOCATE 9, 7: PRINT "TO BEGIN USING: YOU WILL PRESS <Y> IN THE BOX BELLOW TO ENTER THE"
LOCATE 11, 7: PRINT "MAIN MENU.EVERY PART IN THE MENUE HAS A CODE SO YOU CAN CHOOSE
YOUR"
LOCATE 13, 7: PRINT "APPLIED PART AND ENTER IT IN THE BOX."
LOCATE 16, 7: PRINT "THE PROGRAM STRUCTURES AND DESIGNING USED IN EVERY PARTS ARE
UNIMAGINARY"
LOCATE 18, 7: PRINT "SIMPLE & THE AIM IS TO AVOID WAISTING TIME ON LONG CULCULATIONS."
LOCATE 20, 7: PRINT "I WOULD LIKE TO DEDICATE THIS PROGRAM TO THOSE WHO LOVED & LIVED,"
LOCATE 22, 7: PRINT "BECAUSE I DESIGNED THE MAIN PARTS OF THIS PROGRAM WHILE COMPUTER"
LOCATE 24, 7: PRINT "WAS UNAVILABLE FOR ME."
LOCATE 25, 55: PRINT "I WISH YOU LUCK: Ramin"
LOCATE 27, 20: PRINT "DO YOU WISH TO CONTINUE (Y/N) ?"
LOCATE 27, 50: INPUT A$
IF A$ = "y" OR A$ = "Y" THEN GOTO 50 ELSE GOTO 2000
50 CLS : SCREEN 12: CLEAR
FOR z0 = 30 TO 32 STEP .05
LINE (z0, z0)-STEP(550, 50), 2, B
NEXT z0
LOCATE 4, 15: PRINT "TO USE THIS PROGRAM CHOOSE A CODE"
FOR Z2 = 40 TO 400 STEP 40
LINE (110, 45 + Z2)-(450, 400), 2, B
NEXT Z2
LINE (310, 85)-STEP(0, 315), 2
LINE (270, 85)-STEP(0, 315), 2
LINE (110, 85)-STEP(40, 315), 2, B
LOCATE 7, 36: PRINT "100": LOCATE 7, 41: PRINT "PRIME OR NOT"
LOCATE 10, 36: PRINT "200": LOCATE 10, 43: PRINT "PRIMES TO N"
LOCATE 12, 36: PRINT "300": LOCATE 12, 43: PRINT "N PRIMES"
LOCATE 15, 36: PRINT "400": LOCATE 15, 43: PRINT "MAGHSOOMALAYH"
LOCATE 17, 36: PRINT "500": LOCATE 17, 43: PRINT "B.M.M-K.M.M"
LOCATE 19, 36: PRINT "600": LOCATE 19, 43: PRINT " äI"
LOCATE 22, 36: PRINT "700": LOCATE 22, 43: PRINT " ä (I^A)"
LOCATE 24, 36: PRINT "800": LOCATE 24, 43: PRINT "MAX,MIN"
LOCATE 7, 16: PRINT "900": LOCATE 7, 21: PRINT "AVERAGE"
LOCATE 10, 15: PRINT "1000": LOCATE 10, 21: PRINT "FREE MABNA"
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 2
LOCATE 12, 15: PRINT "1100"
LOCATE 15, 15: PRINT "1200"
LOCATE 17, 15: PRINT "1300"
LOCATE 19, 15: PRINT "1400"
LOCATE 22, 15: PRINT "1500": LOCATE 22, 21: PRINT "INTEGRAL"
LOCATE 24, 15: PRINT "2000": LOCATE 24, 22: PRINT " EXIT "
LOCATE 27, 15: INPUT "ENTER YOUR CHOICE HEAR : ", X
IF X >= 100 THEN
IF X = 2000 THEN GOTO 2000
IF X = 100 THEN GOTO 100
IF X = 200 THEN GOTO 200
IF X = 300 THEN GOTO 300
IF X = 400 THEN GOTO 400
IF X = 900 THEN GOTO 900
IF X = 1000 THEN GOTO 1000
IF X = 1500 THEN GOTO 1500
IF X = 500 OR X = 700 OR X = 800 THEN
1 CLS : LOCATE 15, 15: PRINT "NOT COMPLITED YET": GOTO 2000
END IF
IF X = 1100 OR X = 1200 OR X = 1300 OR X = 1400 THEN
GOTO 1
END IF
END IF
100 CLS : SCREEN 12: CLEAR : REM PROGRAM PRIME OR
NOT*************************************
LOCATE 4, 12: PRINT "THIS PART SHOWS YOU IF YOUR NUMBER IS PRIME OR NOT"
FOR Z3 = 30 TO 33 STEP .05
LINE (13 + Z3, Z3)-STEP(500, 50), 2, B
LINE (100 + Z3, Z3 + 60)-STEP(300, 50), 2, B
NEXT Z3
LOCATE 8, 25: INPUT "ENTER A NUMBER>1 : ", N
IF N >= 0 THEN
IF N = 1 OR N = 0 THEN GOTO 103
IF N = 2 THEN
LOCATE 19, 16: PRINT "((2)) IS THE ONLIEST EVEN PRIME NUMBER"
GOTO 105
END IF
LET i = 2
102 R = N MOD i
IF R = 0 THEN
103 FOR Z4 = 108 TO 110 STEP .05
104 LINE (Z4, 50 + Z4)-STEP(350, 250), 2, B
NEXT Z4
LOCATE 13, 25: PRINT "**NO** **NO** **NO**"
LOCATE 17, 19: PRINT "YOUR NUMBER"; N; "IS NOT A PRIME ONE"
LOCATE 19, 20: PRINT "SOME OF THE PRIMES NUMBERS ARE :"
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 3
LOCATE 20, 20: PRINT "2,3,7,11,13,23,47,53,..."
LOCATE 23, 20: INPUT "DO YOU NEED TO RETRY THIS PART(Y/N) ?", A$
IF A$ = "Y" OR A$ = "y" THEN GOTO 100 ELSE GOTO 50
END IF
i = i + 1
IF i > SQR(N) THEN
105 FOR Z5 = 108 TO 110 STEP .05
LINE (Z5, 50 + Z5)-STEP(350, 250), 2, B
NEXT Z5
LOCATE 13, 25: PRINT "**YES** **YES** **YES**"
LOCATE 17, 19: PRINT "YOUR NUMBER"; N; "IS A PRIME ONE"
LOCATE 22, 20: INPUT "DO YOU NEED TO RETRY THIS PART(y/n) ? ", A$
IF A$ = "Y" OR A$ = "y" THEN GOTO 100 ELSE GOTO 50
ELSE GOTO 102
END IF
ELSE
GOTO 100
END IF
200 REM ************************PROGRAM PRIMES TO N**********************
CLS : SCREEN 9: CLEAR : COLOR 7, 1
FOR Z14 = 7 TO 10 STEP .01
LINE (20 + Z14, Z14)-STEP(600, 35), 2, B
NEXT Z14
LOCATE 2, 25: INPUT "ENTER YOUR RANGE OF PRIMES : ", N
LOCATE 3, 25: PRINT "PRIME NUMBERS TO"; N; "ARE BELOWS : "
FOR Z10 = 25 TO 29 STEP .01
LINE (Z10, 25 + Z10)-STEP(600, 280), 2, B
NEXT Z10
i = 2: X = 5: y = 5: F = 1
LOCATE X, y: PRINT i
203 i = i + 1
IF i <= N THEN
B = 2
206 R = i MOD B
IF R = 0 THEN
GOTO 203
ELSE
B = B + 1
IF B > INT(SQR(i) + 1) THEN
y = y + 6
IF y > 75 THEN
X = X + 2: y = 5
IF X > 24 THEN
LOCATE 24, 15: INPUT " PRESS ENTER TO CONTINUE.. ", A$
CLS : X = 5: y = 5
FOR Z11 = 25 TO 29 STEP .05
LINE (Z11, 25 + Z11)-STEP(600, 280), 2, B
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 4
NEXT Z11
END IF
END IF
LOCATE X, y: PRINT i
F = F + 1
GOTO 203
ELSE
GOTO 206
END IF
END IF
ELSE
IF N >= 661 THEN
222 FOR Z12 = 7 TO 10 STEP .05
LINE (20 + Z12, Z12)-STEP(600, 35), 2, B
NEXT Z12
LOCATE 2, 10: PRINT "THERE ARE(("; F; "))PRIMES NUMBERS IN YOUR RANGE<<"; N; ">>"
LOCATE 3, 15: INPUT "DO YOU NEED TO REPEAT THIS PART(Y/N) ?", A$
IF A$ = "Y" OR A$ = "y" THEN GOTO 200 ELSE GOTO 50
ELSE
LOCATE 24, 15: INPUT " PREES ENTER TO CONTINUE... ", A$
CLS : GOTO 222
END IF
END IF
REM PROGRAM PRIME1 ****************************************************
300 CLS : SCREEN 9: CLEAR : COLOR 7, 1
FOR Z6 = 20 TO 22 STEP .05
LINE (40 + Z6, Z6)-STEP(450, 30), 2, B
LOCATE 3, 22: PRINT "HOW MANY PRIME NUMBER DO YOU NEED ?"
NEXT Z6
LOCATE 3, 56: INPUT N
FOR Z7 = 20 TO 22 STEP .05
LINE (141 + Z7, 39 + Z7)-STEP(265, 30), 2, B
LOCATE 6, 23: PRINT "HEAR ARE ("; N; ") PRIME NUMBER"
LINE (Z7, 75 + Z7)-STEP(614, 230), 2, B
NEXT Z7
i = 2: X = 10: y = 4: F = 1
LOCATE X, y: PRINT i
303 i = i + 1
IF F < N THEN
B = 2
306 R = i MOD B
IF R = 0 THEN
GOTO 303
ELSE
B = B + 1
IF B > INT(SQR(i) + 1) THEN
y = y + 6
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 5
IF y > 75 THEN
LET y = 4
LET X = X + 2
IF X > 24 THEN
LOCATE 25, 30: INPUT "PRESS ENTER TO CONTINUE...", A$
CLS : X = 5: y = 4
FOR Z8 = 20 TO 23 STEP .05
LINE (Z8, Z8)-STEP(614, 300), 2, B
NEXT Z8
END IF
END IF
LOCATE X, y: PRINT i
F = F + 1
GOTO 303
ELSE
GOTO 306
END IF
END IF
ELSE
FOR Z9 = 20 TO 22 STEP .002
LINE (Z9, 285 + Z9)-STEP(600, 20), 2, B
NEXT Z9
LOCATE 23, 5: INPUT " DO YOU NEED TO REPEAT THIS PART (y/n) ? ", A$
IF A$ = "y" OR A$ = "Y" THEN
GOTO 300
ELSE
GOTO 50
END IF
END IF
REM PROGRAM MAGHSOOMALAYH********************************************
400 CLS : SCREEN 12: CLEAR
FOR z99 = 23 TO 25 STEP .05
LINE (z99, z99)-STEP(600, 45), 2, B
LINE (100 + z99, 50 + z99)-STEP(400, 50), 2, B
NEXT z99
LOCATE 3, 5: INPUT " ENTER YOUR NUMBER>1 ", N
LOCATE 6, 23: PRINT " HEAR ARE THE ("; N; ")MAGHSOOMALAYHS"
FOR Z97 = 23 TO 25 STEP .05
LINE (20 + Z97, 115 + Z97)-STEP(560, 320), 2, B
NEXT Z97
M = 1: X = 11: y = 8: NO = 0
403 R = N MOD M
LOCATE 11, 7: PRINT "{"
IF R = 0 THEN
NO = NO + 1
LOCATE X, y: PRINT M
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 6
y = y + 7
IF y > 70 THEN
X = X + 2
y = 8
END IF
IF X > 25 THEN
LOCATE 27, 15: INPUT " PRESS ENTER TO CONTINUE... ", A$
CLS : X = 11: y = 8
FOR Z96 = 23 TO 25 STEP .05
LINE (20 + Z96, 115 + Z96)-STEP(560, 320), 2, B
NEXT Z96
END IF
END IF
M = M + 1
IF M <= (N / 2) THEN
GOTO 403
ELSE
LOCATE X, y: PRINT N
END IF
LOCATE X, y + 7: PRINT "}"
LOCATE 27, 10: PRINT " YOUR NUMBER "; N; " HAS(( "; NO; ")) MAGHSOOMALAYH"
LOCATE 28, 16: INPUT "DO YOU MIND TO CONTINUE THIS PART(Y/N)?", B$
IF B$ = "Y" OR B$ = "y" THEN GOTO 400 ELSE GOTO 50
900 CLEAR : REM PROGRAM AVERAGE *************************************************
905 CLS
FOR Z52 = 2 TO 4 STEP .05
LINE (Z52 + 220, Z52 + 12)-STEP(150, 40), 2, B
NEXT Z52
LOCATE 3, 34: PRINT "AVERAGE PART"
FOR Z53 = 2 TO 4 STEP .05
LINE (Z53 + 50, Z53 + 57)-STEP(510, 60), 2, B
NEXT Z53
LOCATE 5, 20: PRINT "ENTER YOUR DATAS IN THE CLOMNS BELOWS"
LOCATE 6, 15: PRINT "INPUT 1.314 TO CALCULATE"
T = 0: U = 0
FOR T = 1 TO 7
U = U + 80
FOR Z54 = 2 TO 4 STEP .01
LINE (Z54 + U - 20, Z54 + 117)-STEP(0, 283), 2, B
NEXT Z54
NEXT T
L = 9: C = 0
910 C = C + 10
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 7
IF C > 69 THEN
L = L + 2
C = 10
IF L > 25 THEN
GOTO 905
END IF
END IF
FOR Z55 = 2 TO 4 STEP .01
LINE (Z55 + 50, Z55 + 400)-STEP(520, 65), 2, B
NEXT Z55
LOCATE L, C: INPUT A
s = s + A: N = N + 1
IF A <> 0 THEN GOTO 910
AVERAGE = s / (N - 1)
LOCATE 27, 10: PRINT "**YOU ENTERED<<"; N - 1; ">>NUMBERS "
LOCATE 28, 10: PRINT "AND THE AVERAGE IS:=(("; AVERAGE; "))"
LOCATE 29, 35: INPUT "{CONTINUE THIS PART(Y/N)?}", A$
IF A$ = "Y" OR A$ = "y" THEN GOTO 900
GOTO 50
REM PROGRAM FREE MABNA*****************************************
1000 CLS : SCREEN 9: CLEAR : COLOR 7, 1
FOR Z21 = 22 TO 26 STEP .05
LINE (Z21, Z21)-STEP(600, 40), 2, B
NEXT Z21
LOCATE 3, 8: INPUT " ENTER MAIN NUMBER : ", N
LOCATE 4, 8: INPUT " ENTER FREE MABNA : ", B
IF N = 0 THEN
LOCATE 7, 7: PRINT "YOUR NUMBER 0 IS OUT OF RULES..."
GOTO 1110
END IF
IF N < 0 THEN
LOCATE 7, 8: PRINT " YOUR NUMBER("; N; ")IS OUT OF OUR RULS"
LOCATE 8, 8: INPUT "DO YOU WISH ITS ABSOLUTE(Y/N)?", A$
IF A$ = "Y" OR A$ = "y" THEN N = ABS(N)
END IF
IF B = 1 THEN
LOCATE 9, 8: PRINT "YOUR MABNA IS OUT OF RULES"
GOTO 1110
END IF
IF B < 1 THEN
LOCATE 10, 8: PRINT " YOUR MABNA"; B; "IS OUT OF OUR RULES"
LOCATE 11, 8: INPUT "DO YOU WISH ITS ABSOLUTE (Y/N)", B$
IF B$ = "Y" OR B$ = "y" THEN
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 8
B = ABS(B)
ELSE
GOTO 50
END IF
END IF
q = N: i = 70
1002 R = N MOD B
LOCATE 10, 72: PRINT ")"
LOCATE 10, i: PRINT R: i = i - 1
N = N \ B: i = i - 1
IF N >= B THEN
GOTO 1002
ELSE
FOR Z22 = 28 TO 32 STEP .05
LINE (Z22, 85 + Z22)-STEP(600, 60), 2, B
NEXT Z22
LOCATE 10, i - 1: PRINT "("
LOCATE 10, i: PRINT N
1110 LOCATE 20, 10: INPUT "DO YOU MIND TO CONTINUE THIS PART:(y/n)?", A$
IF A$ = "y" OR A$ = "Y" THEN GOTO 1000 ELSE GOTO 50
END IF
1500 CLEAR : REM PROGRAM INTEGRAL*************************
CLS : SCREEN 9: COLOR 7, 1
FOR Z = 2 TO 4.5 STEP .01
LINE (Z + 25, Z + 10)-STEP(550, 310), 2, B
LINE (Z + 25, Z + 50)-STEP(550, 0), 2, B
LINE (Z + 25, Z + 240)-STEP(550, 0), 2, B
NEXT Z
LOCATE 3, 18: PRINT " **WELCOME TO FUNCTION PART**"
LOCATE 5, 6: PRINT " HOW TO USE THIS PART?"
LOCATE 7, 9: PRINT "THIS PART CONSIST OF TWO BROWSES. THE FIRST ONE DRAW YPUR "
LOCATE 8, 9: PRINT "FUNCTION DIAGRAM & THE 2ND ONE CULCULATE THE DIFINITE "
LOCATE 9, 9: PRINT "INTEGRAL OF YOUR FUNCTION IN THE DIFINITE DISTANCES"
LOCATE 10, 9: PRINT "THE DIFULT FUNCTION IS . TO ENTER YOUR OWN "
LOCATE 11, 9: PRINT "FUNCTION TAKE THE MAIN PROGRAM STRUCTURE & GET LINE NO 1500"
LOCATE 12, 9: PRINT "THEN FIND THE PHRASE WITH '' ENTER BELOW'' . WHEN DONE PRESS F5"
LOCATE 13, 9: PRINT "& COME TO PART 1500 AGAIN."
LOCATE 15, 9: PRINT "*NOTE:"
LOCATE 16, 10: PRINT "THIS PROGRAM IS UNABLE TO CULCULATE THE 'LOGARITM FUNCTIONS'*"
LOCATE 19, 8: PRINT "TO USE YOUR OWN FUNCTION ENTER 'F' ", A$
LOCATE 20, 8: PRINT "TO USE DEFULT FUNCTION ENTER 'D' ", A$
LOCATE 21, 8: PRINT "TO USE CURRENT FUNCTION ENTER 'C' ", A$
LOCATE 22, 8: PRINT "TO SEE A COMPLEX FUNCTION DIAGRAM ENTER 'X' ", A$
LOCATE 23, 8: INPUT " ENTER YOUR CHICE CODE HERE", A$
IF A$ = "F" OR A$ = "f" THEN GOTO 2000
IF A$ = "D" OR A$ = "d" THEN GOTO 1510
GotoMath program, Author: Ramin Shamshiri, August-November 2001 Page 9
IF A$ = "C" OR A$ = "c" THEN GOTO 1510
IF A$ = "X" OR A$ = "x" THEN GOTO 1520
1510 CLS
DEF FNH (X) = SIN(X)
GOTO 1530
1520 DEF FNT (X) = 1.2 * (COS(X) * SIN(X) * COS(X * 1000) * SIN(X * 1000) * 8) * (SIN(X) * COS(X))
1530 CLS : SCREEN 12
WINDOW (-5, -3)-(5, 3)
LINE (-5, 0)-(5, 0), 3
LINE (0, 3)-(0, -3), 3
FOR X = -5 TO 5 STEP .0005
PSET (X, FNH(X)), 4
NEXT
A$ = INPUT$(1)
DEF fng (X) = 1
CLS : INPUT "enter a,b", A, B
WHILE i <= 1000
dx = (B - A) / 1000
s = dx * ABS(fng(A + (i * dx)))
i = i + 1
sum = sum + s
WEND
PRINT sum
GOTO 2000
2000 SCREEN 12
LOCATE 29, 10: PRINT " ******BY FOR NOW.PRESS ANY KEY TO QUIET! *******"
COLOR 0
2001 END