Date post: | 03-Jan-2016 |
Category: |
Documents |
Upload: | tracy-powers |
View: | 230 times |
Download: | 0 times |
CS1010E Programming MethodologyTutorial 4
Modular Programming with Functions
Question 1a) What is the output ?
0
1
0
Line Main Func1 Console
4 X = 0
5 X = 0 0
6 X = 0 X = 0
11 X = 0 X = 1
12 X = 0 X = 1 1
7 X = 0 0
Question 1
What is the output?
1 2
100 200
200 100
1 2
Line Main Func2 Console
4 X=1,Y=2
5 X=1,Y=2 1 2
6 X=1,Y=2 Num1= 1, Num2= 2
12 X=1,Y=2 Num1= 100, Num2= 2
13 X=1,Y=2 Num1= 100, Num2= 200
14 X=1,Y=2 Num1= 100, Num2= 200 100 200
7 X=1,Y=2 Num1=2,Num2=1
12 X=1,Y=2 Num1= 200, Num2= 1
13 X=1,Y=2 Num1= 200, Num2= 100
14 X=1,Y=2 Num1= 200, Num2= 100 200 100
8 X=1,Y=2 1 2
Question 2
Random Function Rand()• rand() returns a pseudo random Integer• rand() number needs a SEED• srand(int seed) 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
Question 3
Question 3
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
int main(void) { func(); func(); func();
}
void func(){ static int count = 0; count++; printf("%d",count);
}
• 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 FALSEWhen output, TRUE is 1, FALSE is 0
Some Questions from Past Year Paper
When use ++x, you increment before you fetchWhen 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
Macron is always direct substitution!
Z=((++x) >= (y++)? (++x): (y++));
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