Practice Programs
Here are some small-ish program for you to write as
practice. The more you write, the better you will learn
the class material.
One good way to practice is this: if you solve a problem with
a for loop, try re-writing it with a while loop as well
(and vice versa).
-
Write a program to print the integers from
30 down to 1 in descending order.
This can be done at least 2 different ways.
-
Write a program to find how many multiples of 17 there are between
1 and 10000. This can be done at least 3 different ways.
-
Write a program to print the multiples of 17 between 1 and 300.
-
FizzBuzz: Write a program to that asks the user for an
upper limit; it then prints each integer from 1 to the
upper limit... EXCEPT for these changes:
if the number is a multiple of 3, it prints "Fizz";
if the number is a multiple of 5, it prints "Buzz";
if the number is a both a multiple of 3 and 5, it prints "FizzBuzz".
-
Write a program that asks the user to type a word.
Then it will ask for another word, and tell whether the
word just typed is ahead, or after, the user's previous word
(using dictionary order). Keep on asking for new words, comparing
it to the immediately prior word, until the user types "done".
-
Write a program that asks the user to type a word.
It then prints whether the word has an even or odd number of
characters. Keep asking for new words until the user
types "."
-
Write a program that determines if a number the user supplies
is prime or not. Write your own algorithm to determine primality.
-
Write a program to build an array "munge" that has this
property: for every index k in the array, munge[k] is k^3.
-
Write a program to build an array "munge" that has this
property: for every index k in the array, munge[k] is k*(k+1).
Also compute the sum of all the elements in munge.
-
Write a program to build an array "munge" that has this
property: for every index k in the array, munge[k] is k^(k+1).
Do this two ways: (1) use the Math library function to raise to
a power; (2) compute the power yourself, by using a loop to
multiply k by itself the right number of times (think accumulator).
-
Write a program to find all primes between 1 and 200.
Do this by the Sieve of Eratosthenes. The Sieve is a classic
algorithm that dates to ancient Greece.
The Sieve is a fairly efficient way to find primes up to a few million
or so, but you certainly don't want to deal with a few hundred thousand
"alert" popups getting your output.
You can google up the details, but here are the basics.
Make an array "prime" of boolean, big enough to run from item 0 to
item 200. Start with all items in the array set to true.
You can ignore item 0. Since 1 is prime and prime[1] is already true,
you start with 2. prime[2] is already true (and 2 is prime) so
go through the rest of the array and mark all multiples of 2 to
false... all multiples of 2 are not prime.
Then move to item index 3. If prime[3] is true (and it is) then
3 is prime and you then mark all multiples of 3 as false (not prime).
And so on... until you hit the end of the array.
Now every item in array prime is either true or false, depending on
if the corresponding index is prime or not.
-
Write a program that will read some number of strings from
the user as input and store the strings into an array.
Then sort the array elements (rearrange their order)
so that the item at location 0 is alphabetically the smallest
string and all the other are in ascending order.
If you are googl'ing, you can look for "bubble sort".
It is inefficient for large numbers of strings, but it is
easy to program and works fine for smaller array sizes.
-
Write a function "isPrime" that takes one argument,
an integer, and returns a true or false. The obvious
behavior is what you should program: isPrime(n) returns
a true if n is a prime number, and returns a false
if n is not prime.
You have one version of this function... I gave it to you
as part of the Assignment 3 template. Try to write
it yourself. Don't worry about how efficient it is
for now, just see if you can design an algorithm
that will get the job done. You can test your function
by also calling the one I gave you and seeing if they
both produce the same results.
-
Write a program that will generate 200 random integers into
an array. The numbers should be in the range 0 to 1000.
Then compute the average of the numbers in the array,
and truncate that average to an integer.
Then search through the array and see if that truncated average
actually appears as one (or more) of the array elements.
If you do find it, print the location (index) in the array
where the number was found.
Do this for all occurrances you find.
Finally, count how many times you find it, and report
that count.