190 likes | 211 Views
Evaluation of the Course (Modified). Assignments: 40% Assignment: My part 20% and Dr. Lam’s part 20% MY PART: (2 assignments done in lab, 10% each) A final exam: 60%;. Use of return statement.
E N D
Evaluation of the Course (Modified) • Assignments: 40% • Assignment: My part 20% and Dr. Lam’s part 20% • MY PART: (2 assignments done in lab, 10% each) • A final exam: 60%; CS3369 Real Time Control Software/DENG Xiaotie
Use of return statement If the type of the function is not void, at least one return statement must be used. The syntax of a return statement is: return value; Here value can be a number, variable or math expression. Examples: return 0; return x; return (x+1-2*y); Purposes: 1. Terminates the function. 2. Return a value to the parent function. CS3369 Real Time Control Software/DENG Xiaotie
A tricky example of return statement int f(int i) { if (i>3) { cout<<“good” return i; } else {cout<<“bad”; return -999; } } #include<iostream.h> int f(int i); void main(){ int x; x=f(5); } CS3369 Real Time Control Software/DENG Xiaotie
Local Variables • Variables declared within the body of a function are its localvariables (we also say the scope of these variables is the body of this function.) (Look at an example) • Variables declared within the body of the main() function of a program is local to the main() function. • A local variable is completely unknown outside its scope. Two local variables of different scopes may have the same name. CS3369 Real Time Control Software/DENG Xiaotie
An Example for Local Variables #include<iostream.h> int speed(int i) int main() { int x, y=100; x=speed(10); cout<< “The value of y inside main”<<y; return 0; } int speed(int i) { int y; y=2.1*i-0.15*i*i; cout<< “The value of y inside speed()”<<y; cout<<“\n”; return y; } Output: The value of y inside speed() 6 The value of y inside main 100 CS3369 Real Time Control Software/DENG Xiaotie
Variables in parameter list • Variables declared in the parameter list of a function are called formal variables. Their scope is the body of this function. • call-by-value mechanism: by default, when a function is called, the value of the arguments are plugged in the formal parameters. More specifically, if the arguments are variables, their values not the variables themselves are plugged in. • call-by-reference mechanism (will not covered in this course) CS3369 Real Time Control Software/DENG Xiaotie
An Example for Local Variables #include<iostream.h> int speed(int i) int main() { int x, y=100, j=10; x=speed(j); cout<< “The value of y inside main”<<y; return 0; } int speed(int i) { int y; y=2.1*i-0.15*i*i; cout<< “The value of y inside speed()”<<y; cout<<“\n”; return y; } Output: The value of y inside speed() 6 The value of y inside main 100 The value of j is passed to speed(), not the variable j. CS3369 Real Time Control Software/DENG Xiaotie
Global Variables • Global variable: universal for the program, declared in the program outside all functions. It can be used and changed everywhere (by any function). • Try to avoid using global variables. #include<iostream.h> int g; void main() { int x,y; x=11; g=80; y= f(5); cout<<“The values of g , x and y in main()” cout<<g<<“ ”<< x<<“ ”<<y; } int f(int i) {int x=10; cout<<“The values of g and x in side f()”; cout<<g<<“ ” <<x<<“\n”; g=g+i; return g; } OUTPUT: The values of g and x in side f() 80 10 The values of g , x and y in main() 85 11 85 CS3369 Real Time Control Software/DENG Xiaotie
Another Example for Global Variables The roots of a quadric equation ax2+bx+c=0 are x1= (-b+( b2-4ac))/2ac x2=x1= (-b- ( b2-4ac))/2ac include<iostream.h> float x1, x2; int flag=0; void roots(float a, float b, float c) void main(void) { roots(1.0,2.0, 1.0); if(flag == 0) cout<<“The roots are”<<x1<<x2; else cout<<“No real root”; } void roots(float a, float b, float c) { if (b*b-4*a*c>=0) { x1=(-b+sqrt(b*b-4*a*c))/(2*a*c); x2 =(-b-sqrt(b*b-4*a*c))/(2*a*c); } else flag=1; } x1, x2 and flag are used as global variables. Otherwise, roots must return two values that we do not know how to do it. CS3369 Real Time Control Software/DENG Xiaotie
Global Variables vs Local Variables • If global variables and local variables have the same name, the local variables are valid within their scopes. #include<iostream.h> int g=30; void main() { int x,y, g; /*g is a local variable */ x=11; g=80; y= f(5); cout<<“The values of g , x and y in main()” cout<<g<<“ ”<< x<<“ ”<<y; } int f(int i) {int x=10; cout<<“The values of g and x in side f()”; cout<<g<<“ ” <<x<<“\n”; /*g is a global variable */ g=g+i; return g; } OUTPUT: The values of g and x in side f() 30 10 The values of g , x and y in main() 80 11 35 CS3369 Real Time Control Software/DENG Xiaotie
while statement #include<iostream.h> void main() { int a; cout<<“please enter an integer in [1,9]\n”; cin>>a; while (a<1 ||a>9) { cout<<“please enter an integer in [1,9]\n”; cin>>a; } } (Demo the program in the lecture.The question was given in Lab2 as extra exercise since you have not learned while. It can be done using for in a dirty way) Syntax of while statement: while (logic_expression) { statement1; statement 2; …. } CS3369 Real Time Control Software/DENG Xiaotie
Review and Exercises • variables • for statement • while statement • if statement • switch statement (optional) • while statement • functions CS3369 Real Time Control Software/DENG Xiaotie
Exercises Question 1: Which of the following words can be used as variable names? 1x11, x11, xx12, _abc, name_variable, for, if, for1, 1while. Question 2. What are the outputs of the following program? #include<iostream.h> void main() { int i, j; for (i=1; i<5; i++) { for(j=1; j<=3; j++) cout<<i<<j; cout<“\n”; } } CS3369 Real Time Control Software/DENG Xiaotie
Question 3. What are the outputs of the following program? #include<iostream.h> void main() { int i = 10; if(i<0) cout <<“negative”; if (i>100) cout<<“too large”; if (i>=75 && i<=100) cout<<“excellent”; } What if the initial value is 88? Question 4. What are the outputs of the following program? #include<iostream.h> void main() { int i, j; for (i=1; i<=5; i++) { for (j=1; j<=i; j++) cout<<“ ”; /* There is one space*/ cout <<“**** \n”; } } CS3369 Real Time Control Software/DENG Xiaotie
Question 5. What are the outputs of the following program? #include<iostream.h> void main() { int i; i=1; while(i<=5) { cout<<i; i=i+1; } } Question 6. What are the outputs of the following program? #include<iostream.h> int max (int x, int y); void main() { int x1=100, x2=102, x3=99; int temp_max, temp_max1; temp_max=max(x1,x2); temp_max1=max(temp_max, x3); cout<<“The maximum is”; cout << temp_max1; } int max (int x, int y) { int temp=x; if (y>temp) temp=y; return temp; } CS3369 Real Time Control Software/DENG Xiaotie
Question 7. What are the outputs of the following program? #include<iostream.h> int max (int x, int y, int z); void main() { int x1=100, x2=102, x3=99; int temp_max; temp_max=max(x1,x2,x3); cout<<“The maximum is”; cout << temp_max; } int max (int x, int y, int z) { int temp=x; if (y>temp) temp=y; if(z>temp) temp=z; return temp; } Question 8. What are the outputs of the following program? #include<iostream.h> int max (int x, int y, int z); void main() { int temp_max; temp_max=max(99, 102, 166); cout<<“The maximum is”; cout << temp_max; } int max (int x, int y, int z) { int temp=x; cout<<“The input numbers are”<<x<<y<<z<<“\n”; if (y>temp) temp=y; if(z>temp) temp=z; return temp; } CS3369 Real Time Control Software/DENG Xiaotie
Question 9. What are the outputs of the following program? #include<iostream.h> int computation(int x); void main() { int z, w, w1,x=10; /* x he is a variable that can be used in main() */ z=computation(5); w=computation(z); w1=computation(x); cout<<z<<w<<w1 } int computation(int x) /*x here is a formal parameter */ { int y; y=x*x+25; cout<<“input is”<<x<<“\n”; return y; } CS3369 Real Time Control Software/DENG Xiaotie
Question 10. What are the outputs of the following program? #include<iostream.h> int x, int y, int z; int max (); void main() { int temp_max; x=90; y=91; z=92; cout<<z<<“\n”; temp_max=max(); cout<<“The maximum is”; cout << temp_max; cout<<z; } int max () { int temp=x; cout<<“The input numbers are”; cout <<x<<y<<z<<“\n”; if (y>temp) temp=y; if(z>temp) temp=z; z=z+1; return temp; } CS3369 Real Time Control Software/DENG Xiaotie
Question 11. (Moderate) Write a function that takes three integers as its input parameters and outputs the smallest number among the three integers. The prototype of the function is as follows: int minmum(int x, int y, int z); Question 12. (Hard) Write a program that (1) asks the user to input an integer from the screen, (2) the input integer should be in the range [0, 100] or [200, 300], and (3) if the input integer is not in the required ranges, ask the user to re-enter the integer until the integer is in the required ranges. CS3369 Real Time Control Software/DENG Xiaotie