Part I

  1. Write a function, drawBox, that draws a box out of X’s with a given width and height. This function will have no return value.

    For example, a 4 by 3 box will look like the following:

    XXXX
    X  X
    XXXX
    Table 1. Sample Call
    Call Output

    drawBox(4,5);

    XXXX
    X  X
    X  X
    X  X
    XXXX

    drawBox(10,1);

    XXXXXXXXXX

    drawBox(5,0);

    
    
  2. Write a function that returns if a year is a leap year. This function will return a boolean value: true or false.

    • Any year divisible by 4 is a leap year. However, if the year is divisible by 100 and not divisible by 400, the year is not a leap year.

    Table 2. Sample Call
    Call Return Value

    isLeapYear(1992);

    true

    isLeapYear(1900);

    false

    isLeapYear(2000);

    true

  3. Below is the formula used to convert a temperature from Celcius to Farenheit.

    \[F = (9*C)/5 + 32\]

    Write a function that converts a temperature from Celcius to Farenheit. Round the final temperature to the nearest integer.

  4. Write a function that finds the area of a circle with a given radius. The function will return a double with a precision of 2 decimal places.

    1. Write a function that accepts three side lengths. It will return whether the three sides can form a triangle.

    2. Modify the function so that it returns whether the three side lengths form a right-angle triangle.

  5. Write a function that accepts a positive integer and returns if the value is prime.

    1. Write a function that accepts two strings, str1 and str2, as arguments. Your function will search for the first occurrence of str2 within str1 and return where it is found. If str2 is not found anywhere in str1, your function should return -1. You are basically coding the find() function in the string library; do not use that function.

    2. Modify your function so that the search is case insensitive.

    3. Create your own replace() function. This function takes two strings str1, str2 and str3. Anytime str2 is found in str1, it is replaced with str3. Return the final string. The search is case sensitive.

      Table 3. Sample Testcase
      str1 str2 str3 Return Value

      "Aayyy%lmao"

      "a"

      "Woah"

      "AWoahyyy%lmWoaho"

Part II

  1. Write a function that passes two integer values, \(a\) and \(b\), by reference. Have the function swap the values of the two variables if \(a > b\).

    1. Write a function that takes a string as an argument and returns a string that is in all caps.

    2. Modify your function so that the string argument is changed directly. Change the return type of the function from string to void.

  2. Write a function that sorts an integer array from least to greatest. Do not use sort(). Choose one of the following sorts:

  3. Read the following piece of code and determine the following:

    • The output

    • The return values and parameters of each function call. Only use an IDE to check your answer.

    Code A
    <span id="L1" class="line"><span class="cp">#include &lt;iostream&gt;</span></span>
    <span id="L2" class="line"><span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span></span>
    <span id="L3" class="line"></span>
    <span id="L4" class="line"><span class="kt">int</span> <span class="n">china</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span><span class="kt">int</span> <span class="n">b</span><span class="p">){</span></span>
    <span id="L5" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">a</span><span class="o">+</span><span class="n">b</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L6" class="line">    <span class="k">return</span> <span class="n">a</span><span class="o">-</span><span class="n">b</span><span class="p">;</span></span>
    <span id="L7" class="line"><span class="p">}</span></span>
    <span id="L8" class="line"></span>
    <span id="L9" class="line"><span class="kt">int</span> <span class="n">germany</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">){</span></span>
    <span id="L10" class="line">    <span class="k">return</span> <span class="n">a</span><span class="o">*</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span></span>
    <span id="L11" class="line"><span class="p">}</span></span>
    <span id="L12" class="line"></span>
    <span id="L13" class="line"><span class="kt">int</span> <span class="n">canada</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">z</span><span class="p">){</span></span>
    <span id="L14" class="line">    <span class="kt">int</span> <span class="n">a</span><span class="o">=</span><span class="n">germany</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">+</span><span class="n">germany</span><span class="p">(</span><span class="n">y</span><span class="p">);</span></span>
    <span id="L15" class="line">    <span class="k">return</span> <span class="n">a</span><span class="o">+</span><span class="n">x</span><span class="p">;</span></span>
    <span id="L16" class="line"><span class="p">}</span></span>
    <span id="L17" class="line"></span>
    <span id="L18" class="line"><span class="kt">int</span> <span class="n">france</span><span class="p">(</span><span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">){</span></span>
    <span id="L19" class="line">    <span class="kt">int</span> <span class="n">a</span><span class="o">=</span><span class="n">x</span><span class="o">-</span><span class="n">y</span><span class="p">;</span></span>
    <span id="L20" class="line">    <span class="k">return</span> <span class="n">canada</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span><span class="n">a</span><span class="p">);</span></span>
    <span id="L21" class="line"><span class="p">}</span></span>
    <span id="L22" class="line"></span>
    <span id="L23" class="line"><span class="kt">int</span> <span class="n">main</span><span class="p">(){</span></span>
    <span id="L24" class="line">    <span class="kt">int</span> <span class="n">x</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">z</span><span class="o">=</span><span class="mi">5</span><span class="p">;</span></span>
    <span id="L25" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">x</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span> <span class="o">&lt;&lt;</span> <span class="n">y</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span> <span class="o">&lt;&lt;</span> <span class="n">z</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L26" class="line">    <span class="n">china</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">);</span></span>
    <span id="L27" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">china</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L28" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">canada</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L29" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">germany</span><span class="p">(</span><span class="n">france</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">z</span><span class="p">))</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L30" class="line">    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></span>
    <span id="L31" class="line"><span class="p">}</span></span>
    Code B
    <span id="L1" class="line"><span class="cp">#include &lt;iostream&gt;</span></span>
    <span id="L2" class="line"></span>
    <span id="L3" class="line"><span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span></span>
    <span id="L4" class="line"></span>
    <span id="L5" class="line"><span class="kt">int</span> <span class="n">kazakhstan</span><span class="p">(</span><span class="kt">int</span> <span class="n">b</span><span class="p">,</span><span class="kt">int</span> <span class="n">a</span><span class="p">){</span></span>
    <span id="L6" class="line">    <span class="k">return</span> <span class="n">a</span><span class="o">-</span><span class="n">b</span><span class="p">;</span></span>
    <span id="L7" class="line"><span class="p">}</span></span>
    <span id="L8" class="line"></span>
    <span id="L9" class="line"><span class="kt">int</span> <span class="n">kyrgyzstan</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span><span class="kt">int</span> <span class="n">b</span><span class="p">){</span></span>
    <span id="L10" class="line">    <span class="kt">int</span> <span class="n">c</span><span class="o">=</span><span class="n">a</span><span class="o">*</span><span class="n">b</span><span class="p">;</span></span>
    <span id="L11" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">c</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span></span>
    <span id="L12" class="line">    <span class="k">return</span> <span class="n">c</span><span class="o">+</span><span class="n">b</span><span class="o">+</span><span class="n">a</span><span class="p">;</span></span>
    <span id="L13" class="line"><span class="p">}</span></span>
    <span id="L14" class="line"></span>
    <span id="L15" class="line"><span class="kt">int</span> <span class="n">azerbaijan</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">a</span><span class="p">,</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">b</span><span class="p">){</span></span>
    <span id="L16" class="line">    <span class="kt">int</span> <span class="n">c</span><span class="o">=</span><span class="n">kazakhstan</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">a</span><span class="p">);</span></span>
    <span id="L17" class="line">    <span class="n">a</span><span class="o">=</span><span class="n">c</span><span class="o">*</span><span class="n">a</span><span class="p">;</span></span>
    <span id="L18" class="line">    <span class="n">b</span><span class="o">=</span><span class="n">c</span><span class="o">*</span><span class="n">b</span><span class="p">;</span></span>
    <span id="L19" class="line">    <span class="k">return</span> <span class="n">c</span><span class="p">;</span></span>
    <span id="L20" class="line"><span class="p">}</span></span>
    <span id="L21" class="line"></span>
    <span id="L22" class="line"><span class="kt">int</span> <span class="n">main</span><span class="p">(){</span></span>
    <span id="L23" class="line">    <span class="kt">int</span> <span class="n">a</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span><span class="n">b</span><span class="o">=</span><span class="mi">10</span><span class="p">;</span></span>
    <span id="L24" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">a</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span> <span class="o">&lt;&lt;</span> <span class="n">b</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L25" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">kazakhstan</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L26" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">kyrgyzstan</span><span class="p">(</span><span class="n">kazakhstan</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">),</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L27" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">azerbaijan</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">a</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L28" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">a</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span> <span class="o">&lt;&lt;</span> <span class="n">b</span><span class="p">;</span></span>
    <span id="L29" class="line">    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></span>
    <span id="L30" class="line"><span class="p">}</span></span>
    Code C
    <span id="L1" class="line"><span class="cp">#include &lt;iostream&gt;</span></span>
    <span id="L2" class="line"><span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span></span>
    <span id="L3" class="line"></span>
    <span id="L4" class="line"><span class="kt">int</span> <span class="n">brazil</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">a</span><span class="p">){</span></span>
    <span id="L5" class="line">    <span class="n">a</span><span class="o">=</span><span class="n">a</span><span class="o">*</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span></span>
    <span id="L6" class="line">    <span class="k">return</span> <span class="n">a</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span></span>
    <span id="L7" class="line"><span class="p">}</span></span>
    <span id="L8" class="line"></span>
    <span id="L9" class="line"><span class="kt">int</span> <span class="n">chile</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">y</span><span class="p">,</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">x</span><span class="p">){</span></span>
    <span id="L10" class="line">    <span class="n">y</span><span class="o">+=</span><span class="mi">3</span><span class="p">;</span></span>
    <span id="L11" class="line">    <span class="n">x</span><span class="o">+=</span><span class="mi">2</span><span class="p">;</span></span>
    <span id="L12" class="line">    <span class="k">return</span> <span class="n">y</span><span class="o">+</span><span class="n">x</span><span class="p">;</span></span>
    <span id="L13" class="line"><span class="p">}</span></span>
    <span id="L14" class="line"></span>
    <span id="L15" class="line"><span class="kt">int</span> <span class="n">peru</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">x</span><span class="p">,</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">y</span><span class="p">){</span></span>
    <span id="L16" class="line">    <span class="n">x</span><span class="o">--</span><span class="p">;</span></span>
    <span id="L17" class="line">    <span class="n">chile</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">);</span></span>
    <span id="L18" class="line">    <span class="k">return</span> <span class="n">x</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="n">y</span><span class="p">);</span></span>
    <span id="L19" class="line"><span class="p">}</span></span>
    <span id="L20" class="line"></span>
    <span id="L21" class="line"><span class="kt">int</span> <span class="n">main</span><span class="p">(){</span></span>
    <span id="L22" class="line">    <span class="kt">int</span> <span class="n">x</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">5</span><span class="p">;</span></span>
    <span id="L23" class="line">    <span class="n">brazil</span><span class="p">(</span><span class="n">y</span><span class="p">);</span></span>
    <span id="L24" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">brazil</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="o">+</span><span class="n">y</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L25" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">chile</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L26" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">x</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span> <span class="o">&lt;&lt;</span> <span class="n">y</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L27" class="line">    <span class="n">x</span><span class="o">=</span><span class="n">peru</span><span class="p">(</span><span class="n">y</span><span class="p">,</span><span class="n">x</span><span class="p">);</span></span>
    <span id="L28" class="line">    <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">x</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span> <span class="o">&lt;&lt;</span> <span class="n">y</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span></span>
    <span id="L29" class="line">    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></span>
    <span id="L30" class="line"><span class="p">}</span></span>

Part III

  1. Write a recursive function that takes an integer n and returns n factorial.

  2. Write a recursive function that takes an integer n and returns the nth triangular number. Do not use a loop or \(\dfrac{n (n + 1)}{2}\).

  3. Write a recursive function that takes a string argument and reverses the string.

  4. Write a recursive function that finds the nth term of the Fibonacci Sequence. This is also known as “the worst Fibonacci function” but do it anyways.

  5. Write a recursive function that finds the GCF of two integers using the Euclidian method.

  6. Write a recursive function that returns a value from Pascal’s Triangle given its row and column. The row and column numbers in Pascal’s Triangle start at 0.

Challenge: Solve the J5 problem for the 2015 CCC. This problem will use recursion.

PART IV

    1. A formula for the area of a triangle is \(A = \frac{b*h}{2}\) . Have a function named areaT return the area of a triangle given its base and height. The parameters and return type will be integers.

    2. One can also use Heron’s Formula to find the area of a triangle with side lengths a, b, and c.

      \[A = \sqrt{s(s - a)(s - b)(s - c)}\]

      The value of s is the semiperimeter of the triangle: \(\dfrac{a + b + c}{2}\)

      Create another function named areaT that takes three integer side lengths and returns the area using Heron’s Formula.

    3. Create another function named areaT that takes the side length of an equilateral triangle and returns the area of that triangle.