CS173: Intro to Computer Science - Functions


Activity Goals

The goals of this activity are:
  1. To be able to call methods in various configurations (parameters, return values)

Supplemental Reading

Feel free to visit these resources for supplemental background reading material.

The Activity

Directions

Consider the activity models and answer the questions provided. First reflect on these questions on your own briefly, before discussing and comparing your thoughts with your group. Appoint one member of your group to take notes for the group, and appoint another member to discuss your findings with the class. After class, think about the questions in the reflective prompt and respond to those individually. Report out on areas of disagreement or items for which you and your group identified alternative approaches. Write down and report out questions you encountered along the way for group discussion.

Model 1: Writing and Invoking Functions to Re-Use Code Logic

Questions

  1. What does return mean in the circleArea function above?
  2. Notice that functions have data types before their function names, just like variables do. What is the return type of circleArea()?
  3. Try running the sample program above in repl.it.
  4. Modify the program to write an additional function circleDiameter() that computes the diameter (\(2 \times \pi \times r\)) given the radius of the circle. Call that function from main() and print the value.
  5. Modify the program to write and call triangleArea() from main() and then print the area of a triangle whose dimensions you choose.
  6. The Math class includes several useful math functions that you can call. For example, Math.pow(a, b) will return the double value computed by a raised to the power of b (both double values). Re-write circleArea() so that it computes the radius raised to the power of 2, rather than multiplying it by itself.
  7. The Math class also provides constants, so that you do not need to hard-code approximate values like we did with 3.14 for the value \(\pi\). Modify the program to use the constant Math.PI instead of 3.14.

Embedded Code Environment

You can try out some code examples in this embedded development environment! To share this with someone else, first have one member of your group make a small change to the file, then click "Open in Repl.it". Log into your Repl.it account (or create one if needed), and click the "Share" button at the top right. Note that some embedded Repl.it projects have multiple source files; you can see those by clicking the file icon on the left navigation bar of the embedded code frame. Share the link that opens up with your group members. Remember only to do this for partner/group activities!

Model 2: The void Keyword


// Add this to your build.gradle file if using a NetBeans project
run{
    standardInput = System.in
}

Questions

  1. What does the void keyword mean as a return type?
  2. What does it mean if a function does not have any parameters, like sayHelloWorld()? For example, how do you call a function like this?
  3. The + operator works on Strings as well as on numeric values. "Adding" two strings together concatenates or combines them. Re-write the sayHello() method so that it executes in just one System.out.println() statement.
  4. Note that in NetBeans, to use the Scanner on System.in, you must add the snippet above to your build.gradle file, which you will find under the "Build Scripts" section of your project pane.

Embedded Code Environment

You can try out some code examples in this embedded development environment! To share this with someone else, first have one member of your group make a small change to the file, then click "Open in Repl.it". Log into your Repl.it account (or create one if needed), and click the "Share" button at the top right. Note that some embedded Repl.it projects have multiple source files; you can see those by clicking the file icon on the left navigation bar of the embedded code frame. Share the link that opens up with your group members. Remember only to do this for partner/group activities!

Reflective Journal Prompt

  1. Notice the comments above the circleArea function. What do you think a precondition means?
  2. Write comments for the triangleArea function in a similar spirit to those of the circleArea function.

Submission

Submit your answers to the questions using the Collaborative Spaces section of OneNote. You can add a page with your name and your group members' names, and today's date, as the title. Under the appropriate section (i.e., "Class Notes", "Collaborative Spaces", "Reflective Prompts") that you can select on the left side of the screen, you can click "Add Page" on the right side. You can answer any reflective prompt questions in the Reflective Journal section of your OneNote Classroom personal section.