ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
Lecture04
1. Lecture 04
Structural Programming
in C++
You will learn:
i) Operators: relational and logical
ii) Conditional statements
iii) Repetitive statements
iv) Functions and passing parameter
v) Structures
1
2. Structural Programming in C and C++
• Even though object-oriented programming is
central to C++, you still need to know basic
structural constructs to do the job.
• The implementation of the member functions of
a class (i.e. methods in OOP term) is largely
structural programming.
• Almost all the structural programming
constructs in C are also valid in C++. 2/22
3. Relational Operators
. . .
int n;
cout << "Enter a number: ";
cin >> n;
cout << "n<10 is " << (n < 10) << endl;
cout << "n>10 is " << (n > 10) << endl;
cout << "n==10 is " << (n == 10) << endl;
. . .
A Sample Run:
Enter a number: 20
n<10 is 0
n>10 is 1
n==10 is 0
3/22
4. Relational Operators
(cont.)
• Displaying the results of relational operations,
or even the values of type bool variables, with
cout << yields 0 or 1, not false and true.
• The relational operators in C++ include: >, <,
==, !=, >=, <=.
• Any value other than 0 is considered true,
only 0 is false.
4/22
5. Logical Operators
• Logical AND Operator: &&
if ( x == 7 && y == 11 )
statement;
• Logical OR Operator: ||
if ( x < 5 || x 15 )
statement;
• Logical NOT Operator: !
if !(x == 7)
statement; 5/22
8. Conditional Statement: if…else
Syntax
If (x > 100)
statement;
else
statement;
A statement can be a single statement or a
compound statement using { }.
8/22
9. Conditional Statement: switch
Syntax
switch(speed) { Int a,b,c; char op;
case 33: cin >> a >>op >>b;
statement; switch(op)
break; case ‘+’:
case 45: c= a+b;break;
statement;
case ‘-’:
break;
c= a-b;break;
case 78:
statement; default:
break; cout <<“unknown operator”;
} } 9/22
11. Conditional Operator Syntax
result = (alpha < 77) ? beta : gamma;
is equivalent to
if (alpha < 77)
result = beta;
else
result = gamma;
11/22
12. Example
Result = (num > 0): ‘positive’: (num<0) : ’negative’: ’zero’
is equivalent to
if num>0
result = ‘positive’;
else
if num <0
result = ‘negative’;
else
12/22
15. Example
For (I=1;I<=10;I++) For (I=1;I<=10;I++)
cout << I; cout << “*”
cin>>n; For (I=1;I<=10;I++)
For (I=1;I<=n;I++) cout << “*” <<endl;
sum = sum +I; For (I=1;I<=3;I++)
For (j=1;j<=10;j++)
cout << sum; cout << I << “*” <<j<<“=“<<I*j;
15/22
21. Example
Do Cin >> n;
{cout <<I; Do
{
I = I +1;
cout <<I;
} while (I<=10); I ++;
} while (I<=n)
21/22
22. Functions
Def : Set of statements used for a specific task
Syntax: returntype fName( arguments)
{… statements return variblename}
Types of functions:
1. Function with no arguments and no return
2. Functions with argument and no return
3. Functions with argument and a return
22/22
23. Using Functions To Aid
Modularity
. . .
void starline(); // function prototype
int main()
{
. . .
starline();
. . .
starline();
return 0;
}
void starline() // function definition
{
for(int j=0; j<45; j++)
cout << '*';
cout << endl;
23/22
}
25. Returning Values From Functions
float lbstokg(float);
int main()
{
float lbs;
cout << "Enter your weight in pounds: ";
cin >> lbs;
cout << "Your weight in kg is "
<< lbstokg(lbs)
<< endl;
return 0;
}
float lbstokg(float pounds)
{
return 0.453592 * pounds; 25/22
}
26. Using Structures To Group Data
struct part { // declare a structure
int modelnumber; // ID# of widget
int partnumber; // ID# of widget part
float cost; // cost of part
};
int main()
{
part part1;
part1.modelnumber = 6244;
part1.partnumber = 373;
part1.cost = 217.55;
cout << "Model " << part1.modelnumber
<< ", part " << part1.partnumber
<< ", cost $" << part1.cost << endl;
return 0;
26/22
}
27. Structures Within Structures
struct Distance {
int feet;
float inches;
};
struct Room { int main()
Distance length; {
Distance width; Room dining={ {13, 6.5},{10, 0.0} };
}; float l = dining.length.feet +
dining.length.inches/12;
float w = dining.width.feet +
dining.width.inches/12;
cout << "Dining room area is "
<< l * w
<< " square feet" << endl;
return 0; 27/22
}