FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '84 1.1 Write a program that will produce a table of values in Fahrenheit degrees for given CELSIUS degrees. Have the Celsius table start at 50 and be incremented by 25 stopping at 200. The output should show a two column table with headings CELSIUS on the left and FAHRENHEIT on the right. The values in degrees FAHRENHEIT should be rounded off to the nearest whole number. (The formula to be used is F = 1.8 C + 32) 1.2 Write a program that will compute how long a person sleeps at night in seconds. Assume that the person goes to bed between noon and midnight and gets up between midnight and noon. The computer should ask you to enter the time when you go to bed and the time when you wake up (hours, minutes, and seconds) as follows: WHAT TIME DID YOU GO TO BED (H, M, S)? WHAT TIME DID YOU GET UP (H, M, S)? and then compute: YOU SLEPT FOR XXXXX SECONDS. 1.3 A golfer hits a golf ball in such a way that the horizontal distance from the point of contact to the ball in feet is given by the equation h = 120t, where t is the time in seconds since the ball is hit. The height of the ball above the ground is given by v = 120t - 16t^2. Write a program to produce a three column table, with headings, giving the values of t, h, and v at 1/2 second intervals for values up to the point that the ball returns to the ground. The values of v should be rounded off to the nearest whole number. 1.4 A colony of mice is placed in a closed environment. At the beginning of the experiment there are 10 mice and food supply for 100. Each year the population of mice doubles while the food supply increases only enough to feed 40 more mice. Write a program to print a table of data in the following form: NUMBER OF YEARS POPULATION FOOD SUPPLY FOR 0 10 100 1 20 140 . . . . . . . . . The printing of the table should stop when the population outgrows the food supply. 1.5 Write a program to determine how long, in years, it will take for a savings account to double in value if it is compounded annually. The initial amount of the account as well as the annual interest rate in percent can be entered through input statements. 1.6 Write a program that allows the user to input five first names and then prints (a) the name that is alphabetically closest to the beginning of the alphabet, and (b) closest to the end of the alphabet. 1.7 Write a program to simulate tossing a coin N times and determine the longest run of heads. The program should allow the user to input N, and computer should then print the greatest number of consecutive heads. 1.8 Write a program in which the computer prints the numbers from 1 100, but for any number containing the digit 7, it displays ZAP instead of displaying the number. For a number that contains a 7 and is also divisible by 7 the display should be ZAPZAP. 1.9 Write a program that allows the user to input text for which the computer then prints the number of double letters, i.e. the number of times that a character is the same as the one before it. 1.10 Write a program to assist third-graders with their sevens multiplication facts. In particular, a student should be asked to answer the questions: 0 X 7 = ? 1 X 7 = ? . . 9 X 7 = ? If a question is answered correctly, the next question should be asked; if not, the question should be repeated. However, if the same question is answered incorrectly twice, the correct answer should be printed and then the next question should be asked. 2.1 Write a program that allows the user to input text for which the computer then prints the total number of vowels that it contains. 2.2 A rational number is the quotient of two integers N/M (M<>0). Write a program that will sort a given sequence of rational numbers and print them out in increasing order. The program should allow the user to input each rational number as a pair of integers (e.g., 3/4 will be input as 3,4). However, the output should be in the form N/M. The user should be able to terminate the input by entering 0,0. Assume the numerators and the denominators do not exceed 99 and no more than 99 rational numbers will be input. 2.3 The number 153 has an interesting property. It equals the sum of the cubes of its digits, that is, 153=1^3 + 5^3 + 3^3. There are only four three-digit numbers (including 153) with this property. Write a program that will generate these four numbers. 2.4 The triangle listed below is generated by following a certain algorithm. Write a program that will generate similar triangles for any number of rows < 20. The program should allow the user to input the number of rows. 1 232 34543 4567654 567898765 67890109876 7890123210987 2.5 Write a program which generates a page of multiplication exercised similar to those shown below. The program should generate 6 exercises with the factors randomly chosen, and the output should be in the format shown. MULTIPLICATION DRILL 1. 53 4. 12 X 4 X 3 ---- ---- 2. 36 5. 94 X 1 X 8 ---- ---- 3. 72 6. 39 X 6 X 5 ---- ---- 2.6 Write a program that simulates throwing darts at a 5 by 5 square checkerboard. Each throw will hit randomly in any of the 25 possible squares with equal likelihood. N darts are thrown at the board, with N an input value. The results and squares hit are displayed on the screen as below: . . . . . . . * . * * * . . . . . . * . . . * . . NUMBER OF THROWS = 9 NUMBER OF SQUARES HIT = 6 In this example an "*" in a position indicates that a square has been hit (at least once), and a "." means the square has not been hit. 2.7 Write a program that allows the user to input a text and then tells the user whether or not it is a palindrome. A palindrome is a statement that reads the same forward or backward after all non- alphabetic characters have been removed. Example: DOOM AN EVIL DEED, LIVEN A MOOD 2.8 Write a program that will allow a sentence to be input and then print a letter frequency table which will list the frequency and percentage of occurrences of each letter (A through Z) of the text in alphabetical order. The table should be headed with the line LETTER FREQUENCY PERCENT and should have a final line TOTAL XXX Where XXX is the total number of letters in the sentence. Letters which do not occur in the text should not be listed. Percents should be rounded to the nearest whole percent. 2.9 Write a program that asks the user to type in a sentence and then it prints the longest word in the sentence. Assume that the user always types in a sentence that has one word longer than any of the others. 2.10 The children's game of Rock, Scissors, and Paper is played by two opponents. At each turn both players simultaneously signal their choices of either Rock, Scissors, or Paper. The winner of that turn is determined by the rule that Rock wins over Scissors, Paper wins over Rock, and Scissors wins over Paper. If both choices are the same, it is a tie. Write a program to play a game of Rock, Scissors, Paper between the computer and yourself. At each turn, the computer randomly chooses either Rock, Scissors or Paper (without letting you know). It then prompts you for your choice. You enter R for Rock, S for Scissors, or P for Paper. The program then prints the winner of that turn. The game continues until you enter a Q to quit when it is your turn. The program should print a summary of the game's results. 3.1 Write a program that will begin by displaying an S in the approximate center of the screen. A randomly determined trail of asterisks (*) should then be produced from that point, with the trail continuing until it either leaves the screen or intercepts itself. At this point the trail should stop and the maximum distance that the asterisk has reached from the starting point should be printed. The maximum distance should be the straight lines distance between two points. Upon hitting any key, the program should rerun. SAMPLE OUTPUT: S**** * * * THE MAXIMUM DISTANCE FROM START IS 5. 3.2 Computers are often used in code breaking. In the English language the twelve most frequently used letters are ETAOINSHRDLU. Write a program that will automatically substitute the letter E for the most frequent character in a coded message, the letter T for the second most frequent character, and so on.You may assume that no two characters occur with the same frequency and that no blanks or punctuation occurs. Limit the message to 32 characters. SAMPLE RUN: MESSAGE? ABBRBRXXXX THE DECODED MESSAGE IS OTTATAEEEE 3.3 The digital product of a positive number N is defined as the product of its non-zero digits. For example, the digital product of the number, 1239, is 54. In turn, the digital product of 54 is 20, and the digital product of 20 is 2. This number 2 is called the digital product root of 1239. The digital product root of number is always a single digit number determined in this fashion. Write a program that requests an input of a number from one to seven digits long and then prints the number followed by the sequence of repeated digital products ending with the digital product root. SAMPLE RUN: ORIGINAL VALUE (1 TO 7 DIGITS) ? 9999090 9999090 59049 1620 12 2 3.4 A positive integer N>1 is called a prime number if its only positive factors are 1 and N. If N and N+2 are both primes, then the two numbers are called "twin primes". Write a program that will request an upper search limit and then display all twin prime pairs not greater than the number set as the upper limit. SAMPLE RUN: N= 20 TWIN PRIME PAIRS NOT GREATER THAN 20 3 5 5 7 11 13 17 19 3.5 There are n people (n<=26) whose names are A,B,C,... and a phone booth with a capacity m (m<=n). Assume that a subset of m people is to be selected from the set of n people to fill the booth. Write a program to list all possible subsets of m people. The program should allow the user to input n and m. The output should list the subsets of names and state the number of subsets. SAMPLE RUN: INPUT NUMBER, CAPACITY? 5,3 ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE THERE ARE 10 SUBSETS 3.6 Write a program to read from DATA statements a collection of strings, and to print a vertical histogram (bar graph) representing the occurrences of each letter of the alphabet (A-Z) in the strings. Assume that the string *END* terminates the data. Characters other than letters are to be ignored. The data will contain no lower case letters. SAMPLE OUTPUT SHOULD LOOK LIKE: * * * * ** * * * * ** * * * * * ABCDEFGHIJKLMNOPQRSTUVWXYZ 3.7 Write a program that will allow the user to input the numerator and denominator of a fraction (N/D) where both numbers are integers 1 to 256. The program should then print the decimal representation indicating those decimals with repeating sequences by enclosing them in parentheses. For example the repeating decimal, .134134134... should be reported as .(134). SAMPLE OUTPUT: 1/3 = .(3) 22/5 = 4.4 3/8 = .375 3.8 A positive integer, N, is said to be a "round" number if, when the number is expressed in binary, there is an equal number of 1's and 0's. The number 9 is a round number 26 is not round since its binary representation is 11010. Write a program that, when a positive integer is input, will output the number of round numbers that are less than or equal to the input number. SAMPLE RUN: INPUT NUMBER? 10 THERE ARE 3 ROUND NUMBERS LESS THAN OR EQUAL TO 10 3.9 Write a program that will read a series of DATA statements dealing with prices and then will automatically update the money amounts to reflect an input rate of price increase. All money amounts should be rounded to the nearest cent. You will be given a set of DATA lines to run as well as an increase in cost expressed as percent. Assume that the DATA statements will be terminated with *END*. EXAMPLE: Assume that your DATA lines are: DATA "THE CURRENT COST OF BUCKLES IS" DATA "3 FOR $2.50, OR $10.00 A DOZEN." DATA "*END*" If you input a value of 10% for the price increase, the line would be printed out as: THE CURRENT COST OF BUCKLES IS 3 FOR $2.75, OR $11.00 A DOZEN. 3.10 A tennis set between two players has the following rules: 1. A point can be won by either player. 2. A game is won when a player has won at least 4 points and leads the other player by at least 2 points. 3. A set is won when a player has won at least 6 games and leads by at least 2 games. Write a program that simulates playing several sets of tennis. The two players are designated A and B. The user should be asked to input the number of sets and the probability that player A will win a point. The letter designating the winner of a point is to be printed. At the end of each game the name of the winning player is printed enclosed in parentheses, (A) or (B). At the end of the set, the name of the winner is printed along with the number of wins. SAMPLE OUTPUT: NUMBER OF SETS = 10 % CHANCE A WINS A POINT=60 AABAAAA (A) BAAAAABA (A) AAAABABA (A) AABABAABA (A) BABBBAABB (B) AAABABAA (A) ABAAABAA (A) ABAABAAA (A) AAAAAA (A) AAAABAA (A) PLAYER 'A' WON 9 SETS OUT OF 10