Title: CS161 Introduction to Computer Science
1CS161 Introduction to Computer Science
2Today in CS161
- Assignments/Questions
- What is needed for Program 2?
- Using the Math Library
- Input/Output and Formatting
- Sample Algorithm
3To Raise to Power of...
- In C there is no operator that will raise some
number by another - For example, for x3 you cant type
- x3 ILLEGAL!
- Instead, you must use the pow function
- float answer
- answer pow(x, 3)
4To Raise to Power of...
- To use the power function, we must do two very
important things... - include the math library
- include ltmath.hgt
- compile our programs using a -lm flag
- g -lm prog2.cpp
5Next, to Format our Output
- We must learn about precision
- By default, real numbers are displayed with no
more than 6 digits, plus the decimal point - This means that 6 significant digits are
displayed in addition to the decimal point and a
sign if the number is negative
6Default Precision -- Examples
- float test
- cout ltlt Please enter a real number
- cin gtgt test
- cout ltlt test
Input Resulting Output
1.23456789 1.23457 10.23456789 10.2346 100.234
56789 100.235 1000.23456789 1000.23 100000.23456
789 100000
7To Change Precision
- float test
- cout ltlt Please enter a real number
- cout.precision(3) //3 instead of 6!!
- cin gtgt test cout ltlt test ltlt endl
Input Resulting Output
1.23456789 1.23 10.23456789
10.2 100.23456789 100 10000.23456789 1e04
(Exponential notation)
8Another way to do this...
- include ltiomanip.hgt
- float test
- cout ltlt Please enter a real number
- cin gtgt test
- cout ltltsetprecision(3) ltlt test ltlt endl
- setprecision is a manipulator
- To use it, we must include the iomanip.h header
file - There is no difference between
- cout.precision(3) and cout ltltsetprecision(3)
9What is width?
- The width of a field can be set with
- cout.width(size)
- If what you are displaying cannot fit, a larger
width is used - to prevent the loss of information
- Important
- Width is only in effect for the next output
10How does width work...
- float test
- cout.precision(4) cout.width(10)
- cin gtgttest cout ltlt test
- cout ltltendl ltlttest
Input Resulting Output
1.23456789 1.235 1.235
11Another way to do this...
- include ltiomanip.hgt
- float test
- cout.precision(4)
- cin gtgttest
- cout ltltsetw(10) ltlt test
- cout ltltendl ltlttest
Input Resulting Output
1.23456789 1.235 1.235
12Trailing Zeros
- For real numbers, trailing zeros are discarded
when displayed - To display trailing zeros we use
- cout.setf(iosshowpoint)
Input Resulting Output
1.2300 1.23 (for an precision of 3 or
greater)
13Displaying Trailing Zeros
- float test
- cout.precision(4)
- cout.setf(iosshowpoint)
- cin gtgttest cout ltlt test ltltendl
- cout.unsetf(iosshowpoint) //reset...
- cout ltlttest
Input Resulting Output
1.2300 1.230 1.23
14Displaying Dollars and Cents!
- There is another meaning to precision...
- if we put in our programs
- cout.setf(iosfixed,iosfloatfield)
- then, subsequent precision applies to the number
of digits after the decimal point! - cout.precision(2) cout ltlttest
-
-
- 1.2300 1.23
- 1.20 1.2
- To display trailing zeros we use
- cout.setf(iosshowpoint)
Input Resulting Output
15Displaying Dollars and Cents!
- Since we ALSO want trailing zero displayed...do
all three - cout.setf(iosfixed,iosfloatfield)
- cout.precision(2)
- cout.setf(iosshowpoint)
- cout ltlttest
-
- 1.2300 1.23
- 1.20 1.20
- To display trailing zeros we use
- cout.setf(iosshowpoint)
Input Resulting Output
16Now... the Algorithm...
- Your algorithm is not
- I sat down at the terminal
- I got into the editor
- I entered my program
- I tried to compile it but got errors
- I DONT WANT TO SEE THIS!!!!
17Your Algorithm...
- First define the major tasks
- Then break down these into subtasks
- For example, the major tasks might be
- Welcome the user
- Get the loan amount, interest rate, duration
- Calculate the monthly payment
- Display the results
- Sign off Message
Not Detailed Enough!
Not Detailed Enough!
But...a good start...