200 likes | 411 Views
CS1010E Programming Methodology Tutorial 4 Modular Programming with Functions. C14,A15,D11,C08,C11,A02. Question 1. What is the output ? 0 1 0. Question 1 . What is the output? 1 2 100 200 200 100 1 2. Question 2. Random Function Rand() rand() returns a pseudo random Integer
E N D
CS1010E Programming MethodologyTutorial 4Modular Programming with Functions C14,A15,D11,C08,C11,A02
Question 1 • What is the output ? • 0 • 1 • 0
Question 1 • What is the output? • 1 2 • 100 200 • 200 100 • 1 2
Question 2 • Random Function Rand() • rand() returns a pseudo random Integer • rand() number needs a SEED • srand(intseed) reset SEED to be seed • If srand() is not called, rand() uses default Create random INTEGER in [a, b] Create random number in [0, 1] How to generate random number in arbitrary interval ? How to generate other distributions ?
Question 2 • Compare the two codes : • The difference is where the srand(seed) is called • For code 1, different random number is generated • For code 2, the random number is always the same • Because seed is reset in every iteration
Storage Class and Scope • Global variables: outside functions • Global Variables are consider BAD !! • Local variables: within functions
Storage classes - Static • Static can also be defined within a function • Static variable • Is initialized at compilation time and retains its value between calls voidfunc(){ staticint count =0; count++; printf("%d",count); } int main(void){ func(); func(); func(); } • The function called with the same parameter may return different result
Some Questions from Past Year Paper Note that “%f” by default outputs to 6 decimal places!
Some Questions from Past Year Paper When evaluation, anything not 0 is TRUE, 0 is FALSE When output, TRUE is 1, FALSE is 0
Some Questions from Past Year Paper When use ++x, you increment before you fetch When use x++, you increment after fetch
Some Questions from Past Year Paper Be careful with the stopping condition
Some Questions from Past Year Paper Don’t get confused by the indentation!
Some Questions from Past Year Paper Z=((++x) >= (y++)? (++x): (y++)); Macron is always direct substitution!
Some Questions from Past Year Paper (D) X = I = 0 cannot be used in variable declaration
Some Questions from Past Year Paper (A) Short-cut evaluations
Some Questions from Past Year Paper (B) Careful with (int) coercion
Some Questions from Past Year Paper (E) Direct substitution!
Good Luck to your exam! See you next week!! Download Slides and Sourcecode from: www.comp.nus.edu.sg/~wangzk/cs1010e.html