CSCI 3300
Fall 2009
Exercises for Quiz 2

  1. A contract of a function

    1. tells exactly what the function does, and what it requires from its caller.
    2. tells how the function works.
    3. tells where the function fits into the overall solution of a problem.
    4. tells why the function was written.
    Answer
  2. Write a C++ definition for function absoluteValue(x), which returns the absolute value of x. Assume that x has type int. Do not use the standard functions abs or labs for this exercise. (Function abs does exactly the same job as your function absoluteValue.)

    Answer

  3. You have an integer variable n, which already has a value. Write a C++ statement that creates integer variable y and makes y hold the absolute value of n-1. Use your function absoluteValue to do the absolute value computation.

    Answer

  4. Write a C++ definition of function seconds(ms), which takes an integer value ms representing some number of milliseconds (thousandths of a second) and returns a real number that is ms in seconds. For example, seconds(2001) = 2.001.

    Answer

  5. You have two integer variables n and m each holding a number of milliseconds. Write a C++ statement or sequence of statements that creates variable y, of type double, and makes y hold the number of seconds that is equivalent to n + m milliseconds. Use your function from the preceding problem to do the calculation.

    Answer

  6. Write a C++ definition of function sum(a, b) that takes two integers a and b and returns the sum a + (a + 1) + (a + 2) + ... + b. For example, sum(9,14) = 9 + 10 + 11 + 12 + 13 + 14. If b < a, then sum(a,b) should return 0. Use a loop to do this.

    (Hint. You will need two variables, one to count from a to b and the other to keep track of how many of the sum.)

    Answer

  7. You are given a function prime(n), which returns true if n is a prime number and false if n is not prime. (Do not write prime; just use it.)

    Write a C++ definition of function countprimes(a, b), which returns the number of primes that are greater than or equal to a and less than or equal to b. For example, countprimes(4,11) = 3, since the prime numbers from 4 to 11 are 5, 7 and 11, and there are three of them. Use a loop to do this.

    (Hint. You will need two variables, one to count from a to b and the other to keep track of how many of them are prime. Use the prime function to ask whether a number is prime. Keep your definition simple.)

    Answer

  8. What is the value of g(4), given the definition of g below? (Hint. Work out g(1), then g(2), then g(3), then g(4), in that order. Keep your work organized.)

      int g(int n)
      {
        if(n == 1) return 2;
        else return g(n-1) + 3;
      }
    

    Answer

  9. Write a C++ definition of function sum from exercise 6 that does not use a loop, but uses recursion instead.

    Answer