CSCI 205 – Lab 1 – Fall 2023 C++ is one more than C? Lab Objectives • Creating and modifying C++ projects • Working with console inputs and outputs in C++ • Creating and manipulating variables based on user input • Write and modify conditional statements (if/else) in C++ • Write and modify for and while loops in C++ Frequently for lab or programming assignments, I provide files for you to include or to edit. Most of the time, once you save the files, you can start working on the lab. However, today I ask that you wait to begin working on the lab until everyone has the files saved. As we are not using DarkGDK (something from CSCI 110), I need to step through creating a new project with you. Today, please save the file Lab1.cpp. You will be editing it during lab today. An IDE (such as MS Visual Studio or XCode) allows programmers to organize projects that use multiple files. A user may create a project (even when you are only using one file) which keeps track of header files, implementation files, and application files and their relationships (which depends on the other, etc.) as well as parameters such as target platform, code for debugging, and many other useful features. Getting the details right is very important. During today’s lab, you will work through the questions listed below. Please create a word document (or similar) and use it to record your answers to the listed questions. Your lab report should be a big list of answers, the first one for question 1, the second for question 2, and so on through to the end. When a question asks you to provide a screenshot, you may use any program you wish to capture that portion of your screen, but I strongly recommend building your report as you go. Later questions may request that you modify earlier code and if you don’t write your report up until the end, you will have lost some of your work. Due: Tuesday, September 5, 2023: 11:59 am Task: Complete an existing C++ program to make it greet the user, then convert temperatures for them. Procedure: 1. Our TAs and I will explain how to make a new project with a single file, Lab1.cpp. Please follow those directions. Now that the project is created, please build it and run it. Every C++ program has exactly one method called “main” (no matter how many files it has) and that method is what gets executed when the program is run. Provide a screenshot of the output. Ignore line 11 and everything lines 16 and below, we will need them later. What do you think lines 6, 7, and 9 do? Ask a TA or Dr. Meyer to confirm whether or not your guess is correct and write that in your report. Which line of code wrote to the console? 2. If a line of code has the string // in it, all text after the slashes is ignored by the compiler. This is called a comment and they are used in complicated programs to document what a piece of code does, or to activate and deactivate portions of a program. Please comment out line 15 and uncomment the lines of code that follow “Q2” and then build and run the program again. Provide a screenshot of the output. Which line of code got your input? How did the code use your input in the output? 3. As you have discovered, the statement “cout” is short for “console out” and writes text out to the console. Similarly, “cin” is short for “console in” and gets text in from the console. Modify the code in the previous section to prompt the user for two names (yours and your lab partners) and output “Hello world, it is [person1] and [person2].” Provide screenshots of your code and the output of one run through the program. 4. Another way to make comments is to use /* and */. Unlike // which comments only until the end of the line, everything between /* and */ gets ignored by the compiler. We will use these when we wish to comment out a block of code instead of just one line. Comment out the code for Q2 and what you wrote for Q3 and uncomment the block after “Q4”, then run the code. What is this code supposed to do? What is wrong with it? Fix it, then provide screenshots of your code and the output. 5. Sometimes it is very cold in Wisconsin. Your instructor is unhappy when the Celsius temperature is below 0. Boolean variables are a special type of variable which holds either “true” or “false”. Uncomment the code after “Q5” but do not comment out the Q4 code. What does the Q5 code do? Try it with a different value of cTemp. Why do you think it displays the way it does? Please record your initial guess as to why it behaves this way, but then ask a TA or Dr. Meyer to explain how the computer is internally storing a Boolean. 6. An if statement is a block of code that tests to see if a Boolean variable (as in the if) or Boolean statement (as in the else if) is true or false and then runs the appropriate block of code. These statements can be chained together as you see here with as many else ifs as you want (including just writing an if or just an if and an else). Comment out the code in Q5 and uncomment the code after “Q6” (leaving Q4 uncommented) and run it. Try several different values of cTemp by changing the value in cTemp. Provide screenshots of 3 different outputs. 7. Modify the code in Q4 and Q6 in two ways. First, ask the user for today’s temperature in Celsius (instead of having it hard coded to a specific value) and use the code to convert it. Second, decide with your lab partner what appropriate temperatures would be (in Fahrenheit!) and update the if/else if statements to reflect your choices. Again, provide screenshots of your code and the output. 8. Comment out the code you wrote for Q7 and uncomment the code following Q8. This code runs a function called “convertCtoF”. We will get practice writing functions next week, but this week we will be calling our function. C++ requires you to tell it about any functions you’re going to write above main (see line 11), but functions are almost always implemented below the main function (see lines 81-86). You give the function an input by putting a double in the parentheses and the function returns a double. Unfortunately, something is not working correctly in this function. What is it? Provide a screenshot of the fixed function and its output. 9. C++ provides two good keywords to use to write loops: for and while. They work slightly differently. Please comment out the code for everything in the previous questions here, but do not delete it as you will want to use it as a reference. a. A for loop is usually set up to execute a piece of code a certain number of times. I have provided a sketch of how the syntax works for this in 9a. Please write code that does the following: 1. Asks the user for the number of temperature values they wish to convert from C to F. 2. Uses a for loop to run that many times, where each time through the loop it asks them for the C value, calls the function we used in #8, and outputs the conversion to the screen. b. A while loop executes a piece of code over and over until a Boolean statement is false. I have provided a sketch of how the syntax works for this in 9b. Please write code that does the following: 1. Write a while loop that asks the user for a temperature value in Celsius, uses the function from #8 to convert that to Fahrenheit, and then outputs the conversion to the screen. 2. Then asks the user if they want to convert another temperature. If they respond with ‘y’, the loop should run again. If they respond ‘n’, the loop should end and a “Goodbye” message should be displayed. If they respond with a different character than ‘y’ or ‘n’, the program should tell them that the input is invalid and prompt them again. c. Please provide screenshots of your code for part (a) and the output from a sample run through. Do the same with part (b) but make sure that your output demonstrates that all the parts work. Submit 2 things 1) Electronic version of your source code Lab1.cpp 2) Lab Report – as a PDF which contains 3 things: • Cover Page that contains your name, your lab partner’s name, course, lab number, date, and your honor code signature (an acknowledgement that this report is your own individual work). • Answers to the questions posed above with screenshots as requested in the prompts. • Lab reflection which includes what parts of this lab you found easy, which were most troublesome, which you would like more practice with, and your thoughts on what worked best and what could be improved. In the future, reflections will also include analysis on the concepts and algorithms, but not today.