Presentation is loading. Please wait.

Presentation is loading. Please wait.

Iterative Constructs Review l What are named constants? Why are they needed? l What is a block? What is special about declaring a variable inside a block?

Similar presentations


Presentation on theme: "Iterative Constructs Review l What are named constants? Why are they needed? l What is a block? What is special about declaring a variable inside a block?"— Presentation transcript:

1 Iterative Constructs Review l What are named constants? Why are they needed? l What is a block? What is special about declaring a variable inside a block? What is the difference between while and do-while ? Can one replace the other? what does for do? Why is it needed? what is init-statement, expression, post-statement in for ? Can for replace while/do-while ? is reverse possible? What is loop variable? Where is it declared in for ? What is its scope? how is break used inside an iterative construct? what is continue ? how is it used? l what’s is iterate-and-keep-track idiom? l what’s a nested iterative construct? what is inner/outer loop? How many loops can be nested in C++? 1

2 Predefined Functions

3 l C++ comes with libraries of code that can be reused in your programs. The code comes in the form of pre-defined functions n what is the program that adds pre-defined functions to your code to produce executable? function name - identifier distinguishing the function from others; example square root function: sqrt l argument - the value function starts out with; function may have more than one argument; an argument is an expression (thus, can be just a simple constant or variable); l return value - value computed by the function result = sqrt(9.0); l function call (function invocation) - expression consisting of function name followed by arguments in parentheses function accepts arguments of certain type and returns value of certain type; sqrt accepts and returns double l to use a function need to specify include directive: #include l argument may be arbitrary expression result = sqrt(myVar + 9.0); nested function call function call is used as an argument for another function result = sqrt(abs(myVar)); 3

4 Type Changing Functions l is there a problem with this code? int a=9, b=2; double c=a/b ; l C++ provides functions for explicit conversions between types: function double converts to type double: int a=9, b=2; double c=double(a)/b ; l casting - explicit type conversion is called type l warning: wrong application of casting: int a=9, b=2; double c=double(a/b) ; l note that type conversion may be implicit: example: int a=55; double c = a + 30; integer expression is implicitly converted to double before assignment 4

5 Random Number Generation l (pseudo) random number generation pre-defined functions are used in programs to create events unpredictable by user (e.g. events in games) need to include n creates a series of numbers, numbers within series are (pseudo) random srand( seed ) – initializes random number generator, needs to be invoked once in the program, no return value seed – selects the (pseudo) random series rand() – returns a new integer random number in the series, can be used multiple times in program the number is from 0 to MAX_RAND – a named constant predefined in n ranged random idiom: to get a random number in a specific range, take a remainder of that range. Example, random number between 0 and 9 can be obtained as: int myRandValue = rand() % 10; 5

6 Selecting Random Series with time() time(nullptr) – returns number of seconds since 01/01/1970, good for initializing unique series, needs nullptr is there for historical reasons l selecting series srand(1); - repeats series every time you run your program – good for debugging srand(time(nullptr)); - selects unpredictable series every time you run your program – good for final compilation srand() rand() invocation seed12 3 456 1 41184676334 265001916915724 2452921624198177952948419650 2452921624198177952948419650 time() 14987 921226926 31604 11201 32623 6


Download ppt "Iterative Constructs Review l What are named constants? Why are they needed? l What is a block? What is special about declaring a variable inside a block?"

Similar presentations


Ads by Google