1 / 32

# Lecture 28: Course Review - PowerPoint PPT Presentation

CSC 107 – Programming For Science. Lecture 28: Course Review. Final Exam. Thurs., Dec. 16 th from 8AM – 10AM in OM 201 For exam, plan on using full 2 hours If major problem , come talk to me ASAP Exam covers material from entire semester

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about ' Lecture 28: Course Review' - phelan-christensen

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Lecture 28:Course Review

• Thurs., Dec. 16thfrom 8AM – 10AM in OM 201

• For exam, plan on using full 2 hours

• If major problem, come talk to me ASAP

• Exam covers material from entire semester

• Open-book & open-note so bring what you’ve got

• My handouts, solutions, & computers are not allowed

• Cannot collaborate with a neighbor on the exam

• Problems will be in a similar style to midterm

• To convert dn...d3d2d1d0 intodecimal:

• General way to convert from decimal to base-b:Whiledecimal number ≠ 0Divide decimal number by bMoveremainder to left end of answerReplacedecimal number with quotient

• Used to read one or more values at once:

cin >> variable;

cin >> variable1 >> variable2;

• Automatically skips past whitespace

• Data type of variable determines what is read

• Stops reading at first non-usable value in input

• If input is not usable, will set variable equal to 0

Using coutto Print

• Already seen how to print text using cout

cout << “Hello World” << endl;

• Prints out whatever is placed between quotes

• endlgoes to next line and prints out immediately

• Can format output in variety of ways

• Print numbers to preset level of precision

• Use fixed format versus which ever makes sense

• Equations can become very complex

• 4 + 5 * 6 * 9 - 2 + 1 = …?

• Verystrict order of operations used by computer

• ( )Solve from inner- to outermost

• +(positive) &-(negative)Solve from right to left

• *&%&/(division)Solve from left to right

• +(addition)& -(subtraction) Solve from left to right

• My suggestion: use lots of parentheses

• Short simple operators that allow us to be lazy

• Save some typing for several common actions

• Lowest priority operation; expression evaluated first

• Add #include<cmath>at top of file

• All these functions return a value

• Will NOT change argument’s value

sin(x), cos(x), tan(x), asin(x), atan(x) ,

log10(x), sqrt(x), log(x), exp(x) ,

pow(x,y), floor(x) , ceil(x)

• < (less than)

• > (greater than)

• <= (less than of equal to)

• >= (greater than of equal to)

• != (inequality ≠)

• == (equality – if two things have same value)

• NOT the same as assignment (=)

a

NOT Gate

• Simplest gate: computes opposite of input

• Output false when input true

• Output true when input false

• Written in C++ as !a("bang a")

• a is gate’s input

• x is gate’s output

x

b

OR Gate

• Equivalent to addition in Boolean algebra

• If either input istrue is going to be checked

• true when either aORb aretrue; false otherwise

• Written in C++ asa || b

• a & b are inputs; x is output

x

b

AND Gate

• Equivalent to multiplication in Boolean algebra

• If both inputs are true is going to be checked

• True when aANDb are true; false otherwise

• Written in C++ asa && b

• a & b are inputs; x is output

if (…) statement

• First evaluates expression in parenthesis

• Add opening brace ({) after closing parenthesis

• Can now write all statements to execute

• Add closing brace (}) to show where ifends

• If expression false, execution restarts at that point

• If expression is true, executes code in block

• Skips over block, when expression is false

if– else if– elseUsage

• Must begin with ifstatement at the start

• This is required; what would we be saying elseto?

• Onlyrequired part of this entire process

• Can then have zero or more elseifs

• Tests can be anything; do not have to be related

• Until one is true, will be examined one-by-one

• Execute 1st clause where true expression is found

• Only at the very end can have else clause

• If nothing else matches then elseis executed

Executing switchStatement

• Evaluates expression

• Finds matching caseor default(if it exists)

• If no default, may not have match - skips switch

• Execution starts at 1stmatching label

• Execution will continue until break; found

• Will continue into next case if break; is not hit

• Restarts running after switchonce breakhit

• May reach end of switchwithout a break

• Continues running code after switch

whileLoop

while (expression) { statement; ...}

• Evaluates expressionto find its value

• If true, executes entire loop body

• Re-check after each pass through loop, only

• Continue with loop while expression checks true

forLoop

for (initialization;expression;update) { statement; ...}

• initializationrun once before loop start

• Loop termination condition is expression

• Boolean expression checked at start of each pass

• Re-executes entire loop body if expression is true

• Once expression found to be false, loop is over

• List prototypes for functions near top of file

• Similar, but prototypes end with semi-colon

• Return type, name, & parameterslisted at start

• After these are listed, need an open brace

• Function goes until closing bracefloat squareNumber(float x){…}double computeAvg(int x, int y){…}intpromptAndReadInput(){…}void noReturnAndNoParams(){…}

returnStatement

• Function ends when returnis executed

• Any and all code after returnwill be ignored

• Calling function will resume its execution

• There are no errors or warnings for this common bug

• With the array, have entries of given type

• Each entry like variable & can be used as such

• Each entry is independent of all other entries

• Type, name, & sizeneeded for array declaration

• cString type does not exist

• Just an array of charmade to look fancy

• One slight wrinkle: cString ends with null character

• Since C++ does not know array’s size, but we need it

• Null character is charwith value of 0

• Written as ‘\0’ if used in a program

• Unprintable, only used to mark end of cString

#include <fstream>

• Place with other #includes to use files in program

• Even if no files are used, no cost to adding this line

• Must specify namespace of file I/O code, also

• If you really want, this can be done individual but…

using namespace std;

• much easier and probably habit by now anyway

3

• Within program, may use file in 2 possible ways

• To read file, ifstreamvariables will be needed

• Need variable of type ofstreamto write to file

• Open ofstream2 different ways depending on use

ofstreamnukeIt("byebye.txt");ofstreambegone;begone.open("erasedOld.dat");ofstreamkeepIt("saved", ios::app);ofstreamfaithAlone;faithAlone.open("preserve", ios::app);

• Used to read one or more values at once:

ifstreammyFile;myFile >> variable;myFile >> variable1 >> variable2;

• Automatically skips past whitespace

• Data type of variable determines what is read

• Stops at first non-usable value found in the input

• If input is not usable, will set variable equal to 0

Print to File With ostream

• Easy to output: output via ostreamvariable

ofstreamoutFile;outFile << “Hello World” << endl;

• Prints out whatever is placed between quotes

• Value of variable printed if variable not in quotes

• Must declare pointer before use

• This should not be surprise, just like any variable

• Type &name required (as with all declarations)

• As with any other variable, typical name rules apply

• Include asterisk before name within declaration

• Variable is now a pointer to requested type

• Initial value is unknown

int*jennifer;char*pointerToChar;double*down;

• & operator gets the address of a variable

• Used only with variables, including array elements

• Types must match, no automatic promotion possible

• Pointers to pointers okay, but needs to be type**

• Follow the pointer to get value at location with *

• Only used with pointers, as * could also be multiply

double x, *y = &x;int *a, *b = &a;float *c = a,d = *a;

• Both types of variables store an address

• Can be assigned to one another if types match

• To access value, can either use * or [index]

• *p same as p[0]- they are "synonyms" in C++

• Arithmetic works similarly - *(p+5) same as p[5]

• Do not get carried away exploiting this idea

• Unlike arrays, memory not reserved for pointer

• Arrays not used to alias other variables (usually)

Using structs

• Can assign structvariablesto one another

• Variables must be of identical struct types

• Copies value of all fields but still remain independent

• Locations will be same, since pointers & arrays aliased

• In all other situation, must use fields

• Cannot add, multiply, compare structvariables

• For any legal use, individual fields always available

• Arrays of structscan also be declared

• Within the array, each entry is structvariable

Do NOT bother with

memorization

Be ready to lookup &use information quickly

• Lab Mastery Exam is:Tues., Dec. 14thfrom 10:15AM – 11:15AM in OM 115

• Final Exam is: Thurs., Dec. 16thfrom 8AM – 10AM in OM 201