Download Introduction to C++ Programming

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Falcon (programming language) wikipedia , lookup

Reactive programming wikipedia , lookup

Go (programming language) wikipedia , lookup

One-pass compiler wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

CAL Actor Language wikipedia , lookup

C syntax wikipedia , lookup

Structured programming wikipedia , lookup

Transcript
2
Introduction
to C++
Programming
OBJECTIVES
In this chapter you will learn:
■
To write simple computer programs in C++.
■
To write simple input and output statements.
■
To use fundamental types.
■
Basic computer memory concepts.
■
To use arithmetic operators.
■
The precedence of arithmetic operators.
■
To write simple decision-making statements.
—Aristophanes
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Assignment Checklist
Name:
Date:
Section:
Exercises
Assigned: Circle assignments
Prelab Activities
Matching
YES
NO
Fill in the Blank
14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25
Short Answer
26, 27, 28, 29, 30, 31, 32
Programming Output
33, 34, 35, 36, 37, 38, 39
Correct the Code
40, 41, 42, 43, 44, 45
Lab Exercises
Exercise 1 — Sum, Average, Product, Smallest YES
and Largest
Follow-Up Questions and Activities
Exercise 2 — Multiples
Follow-Up Questions and Activities
Exercise 3 — Separating Digits
Follow-Up Questions and Activities
Debugging
NO
1, 2
YES
NO
1, 2, 3, 4
YES
NO
1, 2, 3
YES
NO
Labs Provided by Instructor
1.
2.
3.
Postlab Activities
Coding Exercises
1, 2, 3, 4, 5, 6, 7
Programming Challenges
1, 2, 3
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Date Due
3
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
5
Prelab Activities
Matching
Name:
Date:
Section:
After reading Chapter 2 of C++ How to Program: Fifth Edition, answer the given questions. These questions are
intended to test and reinforce your understanding of key concepts and may be done either before the lab or during the lab.
For each term in the column on the left, write the corresponding letter for the description that best matches it
from the column on the right.
Term
Description
D
1. Integer division
a) Holds whole number values.
H
2. Stream extraction operator
b) Outputs a newline and “flushes the output buffer.”
I
3.
c) Appears at the end of every statement.
G
4. Modulus operator
A
5. A variable of type int
L
6. Comments
J
7. Stream insertion operator
E
8. Preprocessor directive
B
9.
C
10. Semicolon
h)
>>.
M
11. Conditions in if statements
i)
One of several means to exit a function.
K
12. Newline escape sequence
j)
<<.
F
13. Syntax error
k)
'\n'.
l)
Text that documents programs and improves their
readability.
return
std::endl
stream manipulator
d) An operation that truncates any fractional part of its
result.
e) Instruction that is performed before the program is
compiled.
f)
Prevents a program from compiling.
g) An operation that yields the remainder after integer
division.
m) Commonly formed by using equality operators and
relational operators.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Prelab Activities
7
Name:
Fill in the Blank
Fill in the Blank
Name:
Date:
Section:
Fill in the blanks in each of the following statements:
14. Both comments and white space are ignored by the C++ compiler.
15. A backslash is combined with the next character to form a(n) escape sequence .
16. A(n) variable is a location in the computer’s memory where a value can be stored for use by a program.
17. Output and input in C++ are accomplished with streams of characters.
18. Single-line comments begin with
19.
main
//
.
is the first function executed in a C++ program.
20. All variables in a C++ program must be declared before they are used.
21.
cin
22.
cout
23. The
represents the standard input stream.
represents the standard output stream.
if
statement allows a program to make a decision.
24. C++ evaluates arithmetic expressions in a precise sequence determined by the rules of
precedence and associativity.
25.
Equality operators and relational operators can be used in if conditions.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
operator
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Prelab Activities
9
Name:
Short Answer
Short Answer
Name:
Date:
Section:
In the space provided, answer each of the given questions. Your answers should be as concise as possible; aim for
two or three sentences.
26. What is the difference between stream insertion and stream extraction? What is each used for?
Stream insertion is used to insert characters and values into a stream, such as the standard output stream to display data on the screen. Stream extraction is used to extract characters and values from a stream, such as the standard input stream to input data from the keyboard.
27. What is a syntax error? Give an example.
A syntax error is a violation of C++’s language rules in the program code. Syntax errors are normally accompanied
by error messages from the compiler to help the programmer locate and fix the incorrect code. The program
cannot be executed until all syntax errors are corrected. Some examples of syntax errors include forgetting the
semicolon at the end of a statement, placing two variable identifiers next to each other without an intervening
operator and not closing a parenthetical expression with a right parentheses.
28. What is a logic error? Give an example.
A logic error is a mistake in the program code that causes the program to produce incorrect results while executing. A logic error will not be reported by the compiler. Some examples of logic errors include using the incorrect variable in a calculation, using the assignment operator = instead of the equality operator == and spelling a
word incorrectly in a message to the user.
29. What are operator precedence and associativity? How do they affect program execution?
Operator precedence is the order in which the operations in a statement containing multiple operations will execute. For example, multiplication operations execute before addition operations, unless the addition operations
are enclosed within parentheses. Associativity is the order in which multiple operations with the same precedence
execute. For example, addition operations are performed from left to right, while assignment operations are performed from right to left. Operator precedence and associativity determine the order in which operations execute
and therefore affect the values that are used for each operation.
30. What are redundant parentheses? When might a programmer use them?
Redundant parentheses are parentheses in a complex arithmetic expression that do not alter the order of execution for the operations in that arithmetic expression. A programmer might use redundant parentheses to make
the order of execution of the expression more clear. For example, parentheses could be placed around the multiplication operations in an arithmetic expression containing both multiplication and addition operations, even
though the multiplication operations would be performed first anyway.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
10
Introduction to C++ Programming
Chapter 2
Prelab Activities
Name:
Short Answer
31. Write an example of a preprocessor directive.
#include <iostream>
32. What is a variable? How are they used in computer programs?
A variable is a location in the computer’s memory. Variables enable a computer program to store values, possibly
the results of earlier calculations, for use later later in the program.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Prelab Activities
11
Name:
Programming Output
Programming Output
Name:
Date:
Section:
For each of the given program segments, read the code and write the output in the space provided below each
program. [Note: Do not execute these programs on a computer.]
33. What is the output of the following program?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int x;
int y;
x = 30;
y = 2;
cout << x * y + 9 / 3 << endl;
return 0;
} // end main
Your answer:
63
34. What is output by the following line of code?
1
cout << ( 8 * 4 * 2 + 6 ) / 2 + 4;
Your answer:
39
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
12
Introduction to C++ Programming
Chapter 2
Prelab Activities
Name:
Programming Output
For Programming Output Exercises 35 and 36, use the program in Fig. L 2.1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int input;
cout << "Please enter an integer: ";
cin >> input;
if ( input != 7 )
cout << "Hello" << endl;
if ( input == 7 )
cout << "Goodbye" << endl;
return 0;
} // end main
Fig. L 2.1 | Program used for Programming Output Exercises 35 and 36.
35. What is output by the program in Fig. L 2.1? Assume that the user enters 5 for input.
Your answer:
Hello
36. What is output by the program in Fig. L 2.1? Assume that the user enters 7 for input.
Your answer:
Goodbye
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Prelab Activities
Name:
Programming Output
For Programming Output Exercises 37 and 38, use the program in Fig. L 2.2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int input;
cout << "Please enter an integer: ";
cin >> input;
if ( input >= 0 )
cout << "Hello" << endl;
cout << "Goodbye" << endl;
return 0;
} // end main
Fig. L 2.2 | Program used for Programming Output Exercises 37 and 38.
37. What is output by the program in Fig. L 2.2? Assume the user enters 2 for input.
Your answer:
Hello
Goodbye
38. What is output by the program in Fig. L 2.2? Assume the user enters -2 for input.
Your answer:
Goodbye
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
13
14
Introduction to C++ Programming
Chapter 2
Prelab Activities
Name:
Programming Output
39. What is output by the following program?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int x = 3;
int y = 9;
int z = 77;
if ( x == ( y / 3 ) )
cout << "H";
if ( z != 77 )
cout << "q";
if ( z == 77 )
cout << "e";
if ( z * y + x < 0 )
cout << "g";
if ( y == ( x * x ) )
cout << "ll";
cout << "o!" << endl;
return 0;
} // end main
Your answer:
Hello!
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Prelab Activities
15
Name:
Correct the Code
Correct the Code
Name:
Date:
Section:
For each of the given program segments, determine if there is an error in the code. If there is an error, specify
whether it is a logic, syntax or compilation error, circle the error in the code and write the corrected code in the
space provided after each problem. If the code does not contain an error, write “no error.” For code segments,
assume the code appears in main and that using directives are provided for cin, cout and endl. [Note: It is possible that a program segment may contain multiple errors.]
40. The following program should print an integer to the screen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>;
using std::cout
using std::endl
int main()
{
int x = 30;
int y = 2;
cout << x * y + 9 / 3 << endl;
return 0;
} // end main
Your answer:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int x = 30;
int y = 2;
cout << x * y + 9 / 3 << endl;
return 0;
} // end main
Errors:
•
Line 1: There should not be a semicolon after a #include preprocessor directive. Compilation error.
•
Lines 3–4: There should be semicolons after using directives. Compilation error.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
16
Introduction to C++ Programming
Chapter 2
Prelab Activities
Name:
Correct the Code
41. The following code should declare an integer variable and assign it the value 6.
1
2
int 1stPlace
1stPlace = 6;
Your answer:
1
2
int firstPlace;
firstPlace = 6;
Errors:
•
Lines 1–2: Variable names cannot begin with digits. The name of the variable must be changed. Compilation error.
•
Line 1: A variable declaration should be followed by a semicolon. Compilation error.
42. The following code should determine whether variable x is less than or equal to 9.
1
2
3
4
int x = 9;
if ( x < = 9 )
cout << "Less than or equal to.";
Your answer:
1
2
3
4
int x = 9;
if ( x <= 9 )
cout << "Less than or equal to.";
Errors:
•
Line 3: Placing a space between < and = is a syntax error.
43. The following code should determine whether q is equal to 10.
1
2
3
4
5
6
int q = 10;
cout << "q is: " << q << endl;
if ( q = 10 )
cout << "q is equal to 10";
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Prelab Activities
17
Name:
Correct the Code
Your answer:
1
2
3
4
5
6
int q = 10;
cout << "q is: " << q << endl;
if ( q == 10 )
cout << "q is equal to 10";
Error:
•
Line 5: Testing for equality is performed with the equality operator ==, not the assignment operator =.
Logic error.
44. The following code segment should determine whether an integer variable’s value is greater than zero and
display an appropriate message.
1
2
3
4
int x = 9;
if ( x > 0 );
cout << "Greater than zero";
Your answer:
1
2
3
4
int x = 9;
if ( x > 0 )
cout << "Greater than zero";
Error:
•
Line 3: Placing a semicolon after the if statement’s condition causes the messsage "Greater
to display even if the condition is false. Logic error.
ro"
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
than ze-
18
Introduction to C++ Programming
Chapter 2
Prelab Activities
Name:
Correct the Code
45. The following program should print 302 to the screen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using std::cout;
using std::end;
int ma in()
{
int x = 30;
int y = 2;
cout << y << x << endl;
return 0;
} // end main
Your answer:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int x = 30;
int y = 2;
cout << x << y << endl;
return 0;
} // end main
Errors:
•
Line 4: The stream manipulator endl is spelled incorrectly. Compilation error.
•
Line 6: Placing a space in the middle of function name main is a syntax error.
•
Line 11: To display 302, the value of x should be displayed, followed by the value of y. Logic error.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
19
Lab Exercises
Lab Exercise 1 — Sum, Average, Product, Smallest and Largest
Name:
Date:
Section:
This problem is intended to be solved in a closed-lab session with a teaching assistant or instructor present. The
problem is divided into six parts:
1. Lab Objectives
2. Description of the Problem
3. Sample Output
4. Program Template (Fig. L 2.3)
5. Problem-Solving Tips
6. Follow-Up Questions and Activities
The program template represents a complete working C++ program, with one or more key lines of code replaced
with comments. Read the problem description and examine the sample output; then study the template code.
Using the problem-solving tips as a guide, replace the /* */ comments with C++ code. Compile and execute the
program. Compare your output with the sample output provided. Then answer the follow-up questions. The
source code for the template is available at www.deitel.com and www.prenhall.com./deitel.
Lab Objectives
This lab was designed to reinforce programming concepts from Chapter 2 of C++ How To Program: Fifth Edition. In this lab, you will practice:
•
Using cout to output text and variables.
•
Using cin to input data from the user.
•
Using if statements to make decisions based on the truth or falsity of a condition.
•
Using the arithmetic operators to perform calculations.
•
Using relational operators to compare values.
The follow-up questions and activities also will give you practice:
•
Comparing < to <=.
•
Modifying existing code to perform the same task in a different manner.
Description of the Problem
Write a program that inputs three integers from the keyboard, and prints the sum, average, product, smallest
and largest of these numbers. The screen dialogue should appear as follows: [Note: 13, 27 and 14 are input by
the user.]
Sample Output
Input three different integers: 13 27 14
Sum is 54
Average is 18
Product is 4914
Smallest is 13
Largest is 27
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
20
Introduction to C++ Programming
Chapter 2
Lab Exercises
Name:
Lab Exercise 1 — Sum, Average, Product, Smallest and Largest
Template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Lab 1: numbercompare.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
int number1; // first integer read from user
int number2; // second integer read from user
int number3; // third integer read from user
int smallest; // smallest integer read from user
int largest; // largest integer read from user
cout << "Input three different integers: "; // prompt
/* Write a statement to read in values for number1, number2 and
number3 using a single cin statement */
largest = number1; // assume first integer is largest
/* Write a statement to determine if number2 is greater than
largest. If so assign number2 to largest */
/* Write a statement to determine if number3 is greater than
largest. If so assign number3 to largest */
smallest = number1; // assume first integer is smallest
/* Write a statement to determine if number2 is less than
smallest. If so assign number2 to smallest */
/* Write a statement to determine if number3 is less than
smallest. If so assign number3 to smallest */
/* Write an output statement that prints the sum, average,
product, largest and smallest */
return 0; // indicate successful termination
} // end main
Fig. L 2.3 |
numbercompare.cpp.
Problem-Solving Tips
1. Prompt the user to input three integer values. You will use a single
cin statement to read all three values.
2. Sometimes it is useful to make an assumption to help solve or simplify a problem. For example, we assume number1 is the largest of the three values and assign it to largest. You will use if statements to
determine whether number2 or number3 are larger.
3. Using an if statement, compare largest to number2. If the content of number2 is larger, then store the
variable’s value in largest.
4. Using an if statement, compare largest to number3. If the content of number3 is larger, then store the
variable’s value in largest. At this point you are guaranteed to have the largest value stored in largest.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
21
Name:
Lab Exercise 1 — Sum, Average, Product, Smallest and Largest
5. Perform similar steps to those in Steps 2–4 to determine the smallest value.
6. Write a cout statement that outputs the sum, average, product (i.e., multiplication), largest and smallest
values.
7. Be sure to follow the spacing and indentation conventions mentioned in the text.
8. If you have any questions as you proceed, ask your lab instructor for assistance.
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Lab 1: numbercompare.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
int number1; // first integer read from user
int number2; // second integer read from user
int number3; // third integer read from user
int smallest; // smallest integer read from user
int largest; // largest integer read from user
cout << "Input three different integers: "; // prompt
cin >> number1 >> number2 >> number3; // read three integers
largest = number1; // assume first integer is largest
if ( number2 > largest ) // is number2 larger?
largest = number2; // number2 is now the largest
if ( number3 > largest ) // is number3 larger?
largest = number3; // number3 is now the largest
smallest = number1; // assume first integer is smallest
if ( number2 < smallest ) // is number2 smaller?
smallest = number2; // number2 is now the smallest
if ( number3 < smallest ) // is number3 smaller?
smallest = number3; // number3 is now the smallest
cout << "Sum is " << number1 + number2 + number3
<< "\nAverage is " << ( number1 + number2 + number3 ) / 3
<< "\nProduct is " << number1 * number2 * number3
<< "\nSmallest is " << smallest
<< "\nLargest is " << largest << endl;
return 0; // indicate successful termination
} // end main
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
22
Introduction to C++ Programming
Lab Exercises
Chapter 2
Name:
Lab Exercise 1 — Sum, Average, Product, Smallest and Largest
Follow-Up Questions and Activities
1. Modify your solution to use three separate cin statements rather than one. Write a separate prompt for each
cin.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Lab 1: numbercompare.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
int number1; // first integer read from user
int number2; // second integer read from user
int number3; // third integer read from user
int smallest; // smallest integer read from user
int largest; // largest integer read from user
cout << "Input first integer: "; // prompt
cin >> number1; // read an integer
cout << "Input second integer: "; // prompt
cin >> number2; // read a second integer
cout << "Input third integer: "; // prompt
cin >> number3; // read a third integer
largest = number1; // assume first integer is largest
if ( number2 > largest ) // is number2 larger?
largest = number2; // number2 is now the largest
if ( number3 > largest ) // is number3 larger?
largest = number3; // number3 is now the largest
smallest = number1; // assume first integer is smallest
if ( number2 < smallest ) // is number2 smaller?
smallest = number2; // number2 is now the smallest
if ( number3 < smallest ) // is number3 smaller?
smallest = number3; // number3 is now the smallest
cout << "Sum is " << number1 + number2 + number3
<< "\nAverage is " << ( number1 + number2 + number3 ) / 3
<< "\nProduct is " << number1 * number2 * number3
<< "\nSmallest is " << smallest
<< "\nLargest is " << largest << endl;
return 0; // indicate successful termination
} // end main
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
23
Name:
Lab Exercise 1 — Sum, Average, Product, Smallest and Largest
Input first integer: 13
Input second integer: 27
Input third integer: 14
Sum is 54
Average is 18
Product is 4914
Smallest is 13
Largest is 27
2. Does it matter whether < or <= is used when making comparisons to determine the smallest integer? Which
did you use and why?
In this program, it does not matter whether < or <= is used when making comparisons to determine the smallest
integer. The only instance when using < as opposed to <= makes a difference is if smallest and the number it is
being compared to are equal, in which case either value can be used as the smallest with the same result.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
25
Name:
Lab Exercise 2 — Multiples
Lab Exercise 2 — Multiples
Name:
Date:
Section:
This problem is intended to be solved in a closed-lab session with a teaching assistant or instructor present. The
problem is divided into six parts:
1. Lab Objectives
2. Description of the Problem
3. Sample Output
4. Program Template (Fig. L 2.4)
5. Problem-Solving Tips
6. Follow-Up Questions and Activities
The program template represents a complete working C++ program, with one or more key lines of code replaced
with comments. Read the problem description and examine the sample output; then study the template code.
Using the problem-solving tips as a guide, replace the /* */ comments with C++ code. Compile and execute the
program. Compare your output with the sample output provided. Then answer the follow-up questions. The
source code for the template is available at www.deitel.com and www.prenhall.com./deitel.
Lab Objectives
This lab was designed to reinforce programming concepts from Chapter 2 of C++ How To Program: Fifth Edition. In this lab, you will practice:
•
Using cout to output text and values.
•
Using cin to input data from the user.
•
Using if statements to make decisions based on the truth or falsity of a condition.
•
Using the modulus operator (%) to determine the remainder of an integer division operation.
The follow-up questions and activities also will give you practice:
•
Understanding the modulus operator.
•
Recognizing common mistakes with the if statement.
•
Adapting a program to solve a similar problem.
Description of the Problem
Write a program that reads in two integers and determines and prints whether the first is a multiple of the second.
[Hint: Use the modulus operator.]
Sample Output
Enter two integers: 22 8
22 is not a multiple of 8
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
26
Introduction to C++ Programming
Lab Exercises
Chapter 2
Name:
Lab Exercise 2 — Multiples
Template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Lab 2: multiples.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
/* Write variables declarations here */
cout << "Enter two integers: "; // prompt
/* Write a cin statement to read data into variables here */
// using modulus operator
if ( /* Write a condition that tests whether number1 is a multiple of
number2 */)
cout << number1 << " is a multiple of " << number2 << endl;
if ( /* Write a condition that tests whether number1 is not a multiple
of number2 */ )
cout << number1 << " is not a multiple of " << number2 << endl;
return 0; // indicate successful termination
} // end main
Fig. L 2.4 |
multiples.cpp.
Problem-Solving Tips
1. The input data consists of two integers, so you will need two int variables to store the input values.
2. Use cin to read the user input into the int variables.
3. Use an if statement to determine whether the first number input is a multiple of the second number
input. Use the modulus operator, %. If one number divides into another evenly, the modulus operation
results in 0. If the result is 0, display a message indicating that the first number is a multiple of the second
number.
4. Use an if statement to determine whether the first number input is not a multiple of the second number
input. If one number does not divide into another evenly, the modulus operation results in a non-zero
value. If non-zero, display a message indicating that the first number is not a multiple of the second.
5. Be sure to follow the spacing and indentation conventions mentioned in the text.
6. If you have any questions as you proceed, ask your lab instructor for assistance.
Solution
1
2
3
4
5
6
// Lab 2: multiples.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
27
Name:
Lab Exercise 2 — Multiples
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int main()
{
int number1; // first integer read from user
int number2; // second integer read from user
cout << "Enter two integers: "; // prompt
cin >> number1 >> number2; // read two integers from user
// using modulus operator
if ( number1 % number2 == 0 )
cout << number1 << " is a multiple of " << number2 << endl;
if ( number1 % number2 != 0 )
cout << number1 << " is not a multiple of " << number2 << endl;
return 0; // indicate successful termination
} // end main
Follow-Up Questions and Activities
1. Can the modulus operator be used with non-integer operands? Can it be used with negative numbers? Assume that the user entered the sets of numbers in Fig. L 2.5. For each set, what does the expression in the
third column output? If there is an error, explain why.
Integer 1
Integer 2
Expression
Output
73
22
cout << 73 % 22;
7
0
100
cout << 0 % 100;
0
100
0
cout << 100 % 0;
error
—3
3
cout << -3 % 3;
9
4.5
cout << 9 % 4.5;
16
2
cout << 16 % 2;
0
error
0
Fig. L 2.5 | Determine the output of the cout statements in the third column.
The modulus operator cannot be used with non-integer operands. It can be used with negative numbers. An
error occurs in cout << 100 % 0; because you cannot divide by 0. An error occurs in cout << 9 % 4.5; because
you cannot use modulus with a double value.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
28
Introduction to C++ Programming
Lab Exercises
Chapter 2
Name:
Lab Exercise 2 — Multiples
2. Place a semicolon at the end of the if statement in your solution that corresponds to the if statement in
lines 16–18 in the template. What happens? Explain.
The line
cout << number1 << " is a multiple of " << number2 << endl;
always executes, even if number1 is not a multiple of number2, because the semicolon is treated as the empty statement and is considered to be the if’s body. The output statement is just another statement that will execute after
the if statement executes.
3. Rewrite the cout statement in your solution that corresponds to the cout statement in line 18 in the template. This statement should now look as follows:
cout << number1;
cout << " is a multiple of ";
cout << number2 << endl;
Rerun the program and observe the differences. Why is the output different?
The output is different because only the first cout statement is considered to be the if body. The second
and third cout statements are now just regular statements that will be executed after the if statement is finished.
4. Modify the program to determine whether a number entered is even or odd. [Note: Now, the user needs to
enter only one number.]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Lab 2: multiples.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
int number; // integer read from user
cout << "Enter an integer: "; // prompt
cin >> number; // read an integer from user
// using modulus operator
if ( number % 2 == 0 )
cout << number1 << " is even" << endl;
if ( number % 2 != 0 )
cout << number1 << " is odd" << endl;
return 0; // indicate successful termination
} // end main
Enter an integer: 12
12 is even
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
29
Name:
Lab Exercise 3 — Separating Digits
Lab Exercise 3 — Separating Digits
Name:
Date:
Section:
This problem is intended to be solved in a closed-lab session with a teaching assistant or instructor present. The
problem is divided into six parts:
1. Lab Objectives
2. Description of the Problem
3. Sample Output
4. Program Template (Fig. L 2.6)
5. Problem-Solving Tips
6. Follow-Up Questions and Activities
The program template represents a complete working C++ program, with one or more key lines of code replaced
with comments. Read the problem description and examine the sample output; then study the template code.
Using the problem-solving tips as a guide, replace the /* */ comments with C++ code. Compile and execute the
program. Compare your output with the sample output provided. Then answer the follow-up questions. The
source code for the template is available at www.deitel.com and www.prenhall.com./deitel.
Lab Objectives
This lab was designed to reinforce programming concepts from Chapter 2 of C++ How To Program: Fifth Edition. In this lab, you will practice:
•
Using the modulus operator (%) to determine the remainder of a division operation.
•
Integer division, which differs from floating-point division because integer division truncates the decimal portion of the result.
The follow-up questions and activities also will give you practice:
•
Using the division and modulus operators.
•
Examining what happens during program execution when the user enters invalid input.
•
Adapting a program to solve a similar problem.
Problem Description
Write a program that inputs a five-digit number, separates the number into its individual digits and prints the
digits separated from one another by three spaces each. [Hint: Use integer division and the modulus operator.]
For example, if the user inputs 42339, the program should print what is shown in the sample output.
Sample Output
4
2
3
3
9
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
30
Introduction to C++ Programming
Chapter 2
Lab Exercises
Name:
Lab Exercise 3 — Separating Digits
Template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Lab 3: digits.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
int number; // integer read from user
cout << "Enter a five-digit integer: "; // prompt
cin >> number; // read integer from user
/* Write a statement to print the
5-digit number */
/* Write a statement that changes
to 4-digits */
/* Write a statement to print the
4-digit number */
/* Write a statement that changes
to 3-digits */
/* Write a statement to print the
3-digit number */
/* Write a statement that changes
to 2-digits */
/* Write a statement to print the
2-digit number */
/* Write a statement that changes
to 1-digit */
cout << number << endl;
left-most digit of the
number from 5-digits
left-most digit of the
number from 4-digits
left-most digit of the
number from 3-digits
left-most digit of the
number from 2-digits
return 0; // indicate successful termination
} // end main
Fig. L 2.6 |
digits.cpp.
Problem-Solving Tips
1. The input data consists of one integer, so you will use an int variable (number) to represent it. Note that
the description indicates that one five-digit number is to be input—not five separate digits.
2. You will use a series of statements to “break down” the number into its individual digits using modulus
(%) and division (/) calculations.
3. After the number has been input using cin, divide the number by 10000 to get the leftmost digit. Why
does this work? Because the number input is five digits long, it is divided by 10000 to obtain the leftmost digit. In C++, dividing an integer by an integer results in an integer. For example, 42339 / 10000
evaluates to 4 because 10000 divides evenly into 42339 four times. The remainder 2339 is truncated.
4. Change the number to a 4-digit number using the modulus operator. The number modulus 10000 evaluates to the integer remainder—in this case, the right-most four digits. For example, 42339 % 10000 results in 2339. Assign the result of this modulus operation to the variable that stores the five-digit number
input.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
31
Name:
Lab Exercise 3 — Separating Digits
5. Repeat this pattern of division and modulus reducing the divisor by a factor of 10 each time (i.e., 1000,
100, 10). After the number is changed to a four-digit number, divide/modulus by 1000. After the number is changed to a three-digit number, divide/modulus by 100. And so on.
6. Be sure to follow the spacing and indentation conventions mentioned in the text.
7. If you have any questions as you proceed, ask your lab instructor for assistance.
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Lab 3: digits.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
int number; // integer read from user
cout << "Enter a five-digit integer: "; // prompt
cin >> number; // read integer from user
cout << number / 10000 << "
";
number = number % 10000;
cout << number / 1000 << "
";
number = number % 1000;
cout << number / 100 << "
";
number = number % 100;
cout << number / 10 << "
";
number = number % 10;
cout << number << endl;
return 0; // indicate successful termination
} // end main
Follow-Up Questions and Activities
1. What are the results of the following expressions?
24 / 5 =
4
18 % 3 =
0
13 % 9 =
4
13 / 2 % 2 =
0
2. What happens when the user inputs a number which has fewer than five digits? Why? What is the output
when 1763 is entered?
If the user inputs a number which has fewer than five digits, then the missing digits (the leftmost digits) are
displayed as 0. This is because any number with fewer than five digits must be less than 10000 so dividing by
10000 will result in 0. Thus when 1763 is entered, the output is: 0
1
7
6
3.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
32
Introduction to C++ Programming
Lab Exercises
Chapter 2
Name:
Lab Exercise 3 — Separating Digits
3. The program you completed in this lab exercise inputs a number with multiple digits and separates the digits. Write the inverse program, a program which asks the user for three one-digit numbers and combines
them into a single three-digit number. [Hint: Use multiplication and addition to form the three-digit number.]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Lab 3: digits.cpp
#include <iostream> // allows program to perform input and output
using std::cout; // program uses cout
using std::endl; // program uses endl
using std::cin; // program uses cin
int main()
{
int number;
int digit1;
int digit2;
int digit3;
//
//
//
//
cout << "Enter
cin >> digit1;
cout << "Enter
cin >> digit2;
cout << "Enter
cin >> digit3;
three-digit number
hundred's digit
ten's digit
one's digit
the hundred's digit: "; // prompt
// read digit from user
the ten's digit: "; // prompt
// read digit from user
the one's digit: "; // prompt
// read digit from user
number = digit3; // start with just the one's digit
number = number + digit2 * 10; // add the ten's digit * 10
number = number + digit1 * 100; // add the hundred's digit *100
cout << number << endl;
return 0; // indicate successful termination
} // end main
Enter the hundred’s digit: 4
Enter the ten’s digit: 2
Enter the one’s digit: 7
427
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
33
Name:
Debugging
Debugging
Name:
Date:
Section:
The program in this section does not run properly. Fix all the syntax errors so that the program will compile successfully. Once the program compiles, compare the output with the sample output, and eliminate any logic errors
that may exist. The sample output demonstrates what the program’s output should be once the program’s code has
been corrected. debugging02.cpp (Fig. L 2.7) is available at www.deitel.com and at www.prenhall.com/deitel.
Sample Output
Enter two integers to compare: 5 2
5 != 2
5 > 2
5 >= 2
Enter two integers to compare: 2 7
2 != 7
2 < 7
2 <= 7
Enter two integers to compare: 4 4
4 == 4
4 <= 4
4 >= 4
Broken Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Debugging
include <iostream>
using std::cout;
using std::endl;
using std::cin;
int main()
{
int number1;
int number2;
cout << "Enter two integers to compare: ";
cout >> number1 >> number2;
Fig. L 2.7 |
debugging02.cpp.
(Part 1 of 2.)
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
34
Introduction to C++ Programming
Chapter 2
Lab Exercises
Name:
Debugging
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if ( number1 == number2 )
cout << number1 << ' == ' << number2 << endl;
if ( number1 <> number2 )
cout << number1 << " <> " << number2 << endl;
if ( number2 < number1 )
cout << number1 << " < " << number2 << endl;
if
number1 > number2 )
cout << number1 << " > " << number2 << endl;
if ( number1 < number2 )
cout << number1 << " <= " << number2 << endl;
if ( number1 >= number2 )
cout << number1 << " >= " << number2 << endl
return 0;
} // end main
Fig. L 2.7 |
debugging02.cpp.
(Part 2 of 2.)
Debugging Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Debugging
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int main()
{
int number1;
int number2;
cout << "Enter two integers to compare: ";
cin >> number1 >> number2;
if ( number1 == number2 )
cout << number1 << " == " << number2 << endl;
if ( number1 != number2 )
cout << number1 << " != " << number2 << endl;
if ( number1 < number2 )
cout << number1 << " < " << number2 << endl;
if ( number1 > number2 )
cout << number1 << " > " << number2 << endl;
if ( number1 <= number2 )
cout << number1 << " <= " << number2 << endl;
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Lab Exercises
35
Name:
Debugging
31
32
33
34
35
36
37
if ( number1 >= number2 )
cout << number1 << " >= " << number2 << endl;
return 0;
} // end main
Errors:
•
Line 2: The program must #include the iostream header file.
•
Line 15: Input from the keyboard requires the use of cin not cout.
•
Line 18: A string literal must be enclosed with double-quotes ("); single-quotes (') can only be used for
a single character literal.
•
Lines 20–21: The inequality operator is !=, not <>.
•
Line 23: number2 and number1 were switched in the less than conditional expression.
•
Line 26: The left parentheses in the if condition was missing.
•
Line 29: The < should be <= to match the cout statement on the next line.
•
Line 33: Every statement must end with a semicolon.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
37
Postlab Activities
Coding Exercises
Name:
Date:
Section:
These coding exercises reinforce the lessons learned in the lab and provide additional programming experience
outside the classroom and laboratory environment. They serve as a review after you have completed the Prelab
Activities and Lab Exercises successfully.
For each of the following problems, write a program or a program segment that performs the specified action.
1. Write the preprocessor directive which includes the iostream file in a program. Also write the appropriate
using directives for cin, cout and endl.
1
2
3
4
5
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
2. Define a main function which declares three integer variables. Remember to terminate the
with a return statement.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1;
int number2;
int number3;
return 0;
} // end main function
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
main
function
38
Introduction to C++ Programming
Chapter 2
Postlab Activities
Name:
Coding Exercises
3. Write a single line of code that reads values into the three integer variables from Coding Exercise 2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1;
int number2;
int number3;
cin >> number1 >> number2 >> number3;
return 0;
} // end main function
4. Write a line of code that prints all three integer values from Coding Exercise 3 separated by hyphens, -.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1;
int number2;
int number3;
cin >> number1 >> number2 >> number3;
cout << number1 << "-" << number2 << "-" << number3 << endl;
return 0;
} // end main function
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Postlab Activities
39
Name:
Coding Exercises
5. Modify your solution to Coding Exercise 4 to write a C++ program that determines which variable’s value is
the largest. Use variable largest to store the largest value.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1;
int number2;
int number3;
cin >> number1 >> number2 >> number3;
cout << number1 << "-" << number2 << "-" << number3 << endl;
int largest;
largest = number1;
if ( number2 > largest )
largest = number2;
if ( number3 > largest )
largest = number3;
return 0;
} // end main function
6. Modify your solution to Coding Exercise 5 to write a C++ program that determines which integer variable’s
value is the smallest. Use variable smallest to store the smallest value.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1;
int number2;
int number3;
cin >> number1 >> number2 >> number3;
cout << number1 << "-" << number2 << "-" << number3 << endl;
int largest;
largest = number1;
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
40
Introduction to C++ Programming
Chapter 2
Postlab Activities
Name:
Coding Exercises
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
if ( number2 > largest )
largest = number2;
if ( number3 > largest )
largest = number3;
int smallest;
smallest = number1;
if ( number2 < smallest )
smallest = number2;
if ( number3 < smallest )
smallest = number3;
return 0;
} // end main function
7. Modify your solution to Coding Exercise 6 to test if any of the variable’s values are equal and if so print that
they are equal. For example, if two variables have the same value, 5, print “5 and 5 are equal.”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1;
int number2;
int number3;
cin >> number1 >> number2 >> number3;
cout << number1 << "-" << number2 << "-" << number3 << endl;
int largest;
largest = number1;
if ( number2 > largest )
largest = number2;
if ( number3 > largest )
largest = number3;
int smallest;
smallest = number1;
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Postlab Activities
Name:
Coding Exercises
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
if ( number2 < smallest )
smallest = number2;
if ( number3 < smallest )
smallest = number3;
if ( number1 == number2 )
cout << number1 << " and " << number2 << " are equal." << endl;
if ( number1 == number3 )
cout << number1 << " and " << number3 << " are equal." << endl;
if ( number2 == number3 )
cout << number2 << " and " << number3 << " are equal." << endl;
return 0;
} // end main function
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
41
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Postlab Activities
43
Name:
Programming Challenges
Programming Challenges
Name:
Date:
Section:
The Programming Challenges are more involved than the Coding Exercises and may require a significant amount
of time to complete. Write a C++ program for each of the problems in this section. The answers to these problems are available at www.deitel.com and www.prenhall.com/deitel. Pseudocode, hints and/or sample outputs
are provided to aid you in your programming.
1. Write a program that prints the numbers 1 to 4 on the same line with each pair of adjacent numbers separated by one space. Write the program using the following methods:
a) Using one output statement with one stream-insertion operator.
b) Using one output statement with four stream-insertion operators.
c) Using four output statements.
Hints:
•
Use comments to separate your program into three clearly marked sections, one for each part (i.e., a–c)
of the problem.
•
For Part a) the entire output should be contained within one string.
•
Use either endl or "\n" after each part to separate their output.
•
Your output should look like:
1 2 3 4
1 2 3 4
1 2 3 4
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Programming Challenge 1: threeoutputs.cpp
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
// part a - one output statement with one stream-insertion operator
cout << "1 2 3 4\n";
// part b - one output statement with four stream-insertion operators
cout << "1 " << "2 " << "3 " << "4\n";
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
44
Introduction to C++ Programming
Chapter 2
Postlab Activities
Name:
Programming Challenges
16
17
18
19
20
21
22
23
// part
cout
cout
cout
cout
c - four output statememts
<< "1 ";
<< "2 ";
<< "3 ";
<< "4\n";
return 0;
} // end main function
2. Write a program that asks the user to enter two integers, obtains the numbers from the user, then prints the
larger number followed by the words “is larger.” If the numbers are equal, print the message “These numbers are equal.”
Hints:
•
The user should input both integers at once, i.e., cin
•
Remember to print spaces after printing integers to the screen.
•
A typical run of your program might look as follows:
>> x >> y;
Enter two integers: 5 3
5 is larger.
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Programming Challenge 2: larger.cpp
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1; // first input
int number2; // second input
cout << "Enter two integers: "; // prompt
cin >> number1 >> number2; // enter integers
if ( number1 > number2 ) // is number1 larger?
cout << number1 << " is larger." << endl;
if ( number2 > number1 ) // is number2 larger?
cout << number2 << " is larger." << endl;
if ( number1 == number2 ) // are they equal?
cout << "These numbers are equal." << endl;
return 0;
} // end main function
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Chapter 2
Introduction to C++ Programming
Postlab Activities
45
Name:
Programming Challenges
3. Write a program that reads in five integers and determines and prints the largest and the smallest integers in
the group. Use only the programming techniques you learned in Chapter 2 of C++ How to Program: Fifth
Edition.
Hints:
•
This program requires seven variables: five for user input and two to store the largest and the smallest,
respectively.
•
As soon as the user inputs the values, assign the largest and smallest variables the value of the first
input. If instead, largest was initially assigned to zero, this would be a logic error because negative
numbers could be input by the user.
•
Ten separate if statements are required to compare each input to largest and smallest.
•
A typical run of your program might look as follows:
Enter five integers: 2 4 -4 10 3
Largest integer: 10
Smallest integer: -4
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Programming Challenge 3: fiveintegers.cpp
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int number1; // first input
int number2; // second input
int number3; // third input
int number4; // fourth input
int number5; // fifth input
int largest; // the largest integer
int smallest; // the smallest integer
cout << "Enter five integers: "; // prompt
cin >> number1 >> number2 >> number3 >> number4 >> number5; // read integers
largest = number1; // first assume that number1 is the largest
smallest = number1; // first assume that number1 is the smallest
if ( number2 > largest ) // is number2 larger?
largest = number2;
if ( number2 < smallest ) // is number2 smaller?
smallest = number2;
if ( number3 > largest ) // is number3 larger?
largest = number3;
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
46
Introduction to C++ Programming
Postlab Activities
Chapter 2
Name:
Programming Challenges
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
if ( number3 < smallest ) // is number3 smaller?
smallest = number3;
if ( number4 > largest ) // is number4 larger?
largest = number4;
if ( number4 < smallest ) // is number4 smaller?
smallest = number4;
if ( number5 > largest ) // is number5 larger?
largest = number5;
if ( number5 < smallest ) // is number5 smaller?
smallest = number5;
cout << "Largest integer: " << largest << endl;
cout << "Smallest integer: " << smallest << endl;
return 0;
} // end main function
© 2006 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.