FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '80
BASIC PROGRAM SOLUTIONS
'1.1
' This program will print terms of the Fibinacci sequence.
'
INPUT "Enter number of terms: "; N
A(1) = 1: A(2) = 1
FOR I = 3 TO N
A(I) = A(I - 1) + A(I - 2)
NEXT I
FOR I = 1 TO N: PRINT A(I); : NEXT I
PRINT
'1.2
' This program will flash a symbol on/off every 10 seconds.
'
CLS
FOR I = 1 TO 5
PRINT "*"
FOR J = 1 TO 1000: NEXT J
CLS
FOR J = 1 TO 10000: NEXT J
NEXT I
'1.3
' This program will display the perimeter of a rectangle.
'
INPUT "Enter L, W: "; L, W
PRINT L + L + W + W
'1.4
' This program will convert Celcius to Fahrenheit.
'
INPUT "Enter C: "; C
PRINT (C * 9) / 5 + 32
'1.5
' This program will determine if input is numeral or not.
'
INPUT "Enter character: "; A$
IF A$ = "0" OR VAL(A$) > 0 THEN PRINT "NUMERAL": END
PRINT "NON-NUMERAL"
'1.6
' This program will determine gas mileage.
'
INPUT "Enter D, G: "; D, G
PRINT D / G
'1.7
' This program will test if a number is divisble by 5.
'
INPUT "Enter number: "; N
IF N MOD 5 = 0 THEN PRINT "YES": END
PRINT "NO"
'1.8
' This program will print the length of a side of a triangle.
'
INPUT "Enter L, H: "; L, H
PRINT SQR(H * H - L * L)
'1.9
' This program will move a blob across the screen.
'
CLS
FOR C = 1 TO 79
LOCATE 5, C: PRINT "*"
FOR J = 1 TO 100: NEXT J
LOCATE 5, C: PRINT " "
NEXT C
'2.1
' This program will print the largest number in a sequence.
'
INPUT "Enter number of #s: "; N
L = -999
FOR I = 1 TO N
INPUT "Enter #: "; X
IF X > L THEN L = X
NEXT I
PRINT L
'2.2
' This program will determine what figure is made.
'
INPUT "Enter 4 sides: "; S1, S2, S3, S4
IF S4 = 0 THEN PRINT "TRIANGLE": END
IF S1 = S2 AND S2 = S3 AND S3 = S4 THEN PRINT "SQUARE": END
PRINT "RECTANGLE"
'2.3
' This program will sum numbers from 1000 to 2000.
'
S = 0
FOR I = 1000 TO 2000
S = S + I
NEXT I
PRINT S
'2.4
' This program will reverse a 3 digit number.
'
INPUT "Enter number: "; N$
FOR I = LEN(N$) TO 1 STEP -1
PRINT MID$(N$, I, 1);
NEXT I
'2.5
' This program will draw a rectangle on the screen.
'
CLS : SCREEN 1: COLOR 0
LINE (0, 0)-(200, 0): LINE -(200, 100)
LINE -(0, 100): LINE -(0, 0)
LOCATE 23, 1: INPUT A$: SCREEN 0: WIDTH 80
'2.6
' This program will print 3 numbers in increasing order.
'
INPUT "Enter 3 numbers: "; A(1), A(2), A(3)
FOR I = 1 TO 2
FOR J = I + 1 TO 3
IF A(I) > A(J) THEN SWAP A(I), A(J)
NEXT J
NEXT I
FOR I = 1 TO 3: PRINT A(I); : NEXT I
PRINT
'2.7
' This program will determine the mean of a set of numbers.
'
INPUT "Enter number of #s: "; N
FOR I = 1 TO N
INPUT "Enter #: "; X: S = S + X
NEXT I
PRINT S / N
'2.8
' This program will determine if a number is even or odd.
'
INPUT "Enter number: "; N
IF N MOD 2 = 0 THEN PRINT "EVEN" ELSE PRINT "ODD"
'2.9
' This program will determine if a number is prime.
'
INPUT "Enter number: ", N
IF N MOD 2 = 0 THEN PRINT "NO": END
FOR I = 3 TO SQR(N)
IF N MOD I = 0 THEN PRINT "NO": END
NEXT I
PRINT "YES"
'2.10
' This program will compute value of change.
'
DATA QUARTERS,25,DIMES,10,NICKELS,5,PENNIES,1
FOR I = 1 TO 4
READ A$(I), A(I): PRINT "How many "; A$(I);
INPUT X
S = S + X * A(I)
NEXT I
PRINT S; "CENTS"
'2.11
' This program will count number of e's in sentence.
'
INPUT "Enter sentence: "; A$
FOR I = 1 TO LEN(A$)
IF MID$(A$, I, 1) = "E" THEN E = E + 1
NEXT I
PRINT E
'3.1
' This program allows user to answer multiplication facts.
'
RANDOMIZE TIMER
X = INT(RND(3) * 13): Y = INT(RND(3) * 13)
PRINT X; "X"; Y; " = ";
INPUT N
IF X * Y = N THEN PRINT "RIGHT" ELSE PRINT "WRONG"
'3.2
' This program will randomize the digits 0..9.
'
RANDOMIZE TIMER
FOR I = 0 TO 9: A(I) = I: NEXT I
FOR I = 0 TO 9
X = INT(RND(3) * 10)
Y = A(I): A(I) = A(X): A(X) = Y
NEXT I
FOR I = 0 TO 9: PRINT A(I); : NEXT I: PRINT
'3.3
' This program will round a number to nearest ten.
'
INPUT "Enter number: "; N
PRINT INT((N + 5) / 10) * 10
'3.4
' This program will change a number from base 10 to 4.
'
INPUT "Enter number: "; N
J = INT(LOG(N) / LOG(4))
FOR I = J TO 0 STEP -1
X = INT(N / 4 ^ I): PRINT USING "#"; X;
N = N - X * 4 ^ I
NEXT I
'3.5
' This program will change a number from base 3 to 10.
'
INPUT "Enter number: "; N$:
L = LEN(N$)
FOR I = L TO 1 STEP -1
X = VAL(MID$(N$, I, 1))
S = S + X * 3 ^ (L - I)
NEXT I
PRINT S
'3.6
' This program will change a decimal to a fraction.
'
INPUT "Enter decimal: "; N$
INPUT "R or T: "; A$
L = LEN(N$) - 1
N = VAL(RIGHT$(N$, L))
D = INT(10 ^ L + .1)
IF A$ = "R" THEN D = D - INT(D / 10)
FOR I = N TO 1 STEP -1
IF N MOD I = 0 AND D MOD I = 0 THEN
PRINT N / I; "/"; D / I: END
END IF
NEXT I
'3.7
' This program will represent an amount of money.
'
DATA HALF,50,QUARTER,25,DIMES,10,NICKELS,5,PENNIES,1
INPUT "Enter cents: "; C
FOR I = 1 TO 5
READ A$, A
X = INT(C / A): PRINT X; A$
C = C - X * A
NEXT I
'3.8
' This program will allow user to guess a generated #.
'
RANDOMIZE TIMER
X = INT(RND(3) * 10) + 1
WHILE X <> G
INPUT "Enter guess: "; G
IF G = X THEN PRINT "RIGHT ON": END
IF G > X THEN PRINT "TOO HIGH" ELSE PRINT "TOO LOW"
WEND
'3.9
' This program will find fvalues for a,b,c,d.
'
FOR A = 1 TO 9
FOR B = 0 TO 9
FOR C = 0 TO 9
FOR D = 0 TO 9
N = A * 1000 + B * 100 + C * 10 + D
M = INT(A ^ B * C ^ D + .1)
IF N = M THEN
PRINT "A="; A; " B="; B; " C="; C; " D="; D: END
END IF
NEXT D, C, B, A
'3.10
' This program will print day of week for a date.
'
DATA 31,29,31,30,31,30,31,31,30,31,30,31
INPUT "Enter month, day: "; M, D
IF M > 1 THEN
FOR I = 1 TO M - 1
READ A: S = S + A
NEXT I
END IF
S = S + D
X = S - INT(S / 7) * 7
A$ = "MONTUEWEDTHUFRISATSUN"
PRINT MID$(A$, X * 3 + 1, 3)
'3.11
' This program will simulate an "etch-a-sketch".
'
CLS : ROW = 12: COL = 40
WHILE A$ <> CHR$(27)
LOCATE ROW, COL: PRINT "*": A$ = ""
WHILE A$ = "": A$ = INKEY$: WEND
IF A$ = "I" THEN ROW = ROW - 1
IF A$ = "M" THEN ROW = ROW + 1
IF A$ = "J" THEN COL = COL - 1
IF A$ = "K" THEN COL = COL + 1
WEND
'3.12
' This program will determine if a word is a palindrome.
'
INPUT "Enter word: "; A$: L = LEN(A$)
FOR I = 1 TO L
L$ = MID$(A$, I, 1)
R$ = MID$(A$, L - I + 1, 1)
IF L$ <> R$ THEN PRINT "NOT "; : I = L
NEXT I
PRINT "PALINDROME"