1 lecture 04 structural programming in c++ you will learn: i) operators: relational and logical ii)...
TRANSCRIPT
1
Lecture 04
Structural Programming
in C++
You will learn:i) Operators: relational and logicalii) Conditional statementsiii) Repetitive statementsiv) Functions and passing parameterv) Structures
2/22
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++.
3/22
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
4/22
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.
5/22
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;
6/22
Operator Precedence
SUM = SUM + 5OR
SUM =+ 5
7/22
Conditional Statement: ifSyntax
8/22
Conditional Statement: if…elseSyntax
If (x > 100) statement;
else statement;
A statement can be a single statement or a compound statement using { }.
9/22
Conditional Statement: switchSyntax
switch(speed) {case 33:
statement;break;
case 45:statement;break;
case 78:statement;break;
}
Int a,b,c; char op;
cin >> a >>op >>b;
switch(op)
case ‘+’:
c= a+b;break;
case ‘-’:
c= a-b;break;
default:
cout <<“unknown operator”;
}
10/22
Conditional OperatorSyntax
11/22
Conditional Operator Syntax
result = (alpha < 77) ? beta : gamma;
is equivalent to
if (alpha < 77)
result = beta;
else
result = gamma;
12/22
Result = (num > 0)?‘positive’: (num<0) ?’negative’: ’zero’
is equivalent to
if num>0
result = ‘positive’;
else
if num <0
result = ‘negative’;
else
result = ‘zero’;
Example
13/22
The for LoopSyntax
14/22
The for LoopControl Flow
15/22
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;
cout << sum;
For (I=1;I<=3;I++)For (j=1;j<=10;j++)cout << I << “*” <<j<<“=“<<I*j;
16/22
The while LoopSyntax
17/22
The while LoopControl Flow
18/22
Example
i = 1;
While (i<=10)
cout << i;
Cin >> n; I = 1;
While (I<=n)
{ sum = sum + I;
cout << sum
}
While ( I<=10 )
cout << “*”;
19/22
The do LoopSyntax
20/22
The do LoopControl Flow
21/22
Example
Do
{cout <<I;
I = I +1;
} while (I<=10);
Cin >> n;Do{
cout <<I;I ++;
} while (I<=n)
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
23/22
Using Functions To AidModularity
. . . void starline(); // function prototype
int main() { . . . starline(); . . . starline(); return 0; }
void starline() // function definition{ for(int j=0; j<45; j++) cout << '*'; cout << endl; }
24/22
Passing Arguments To Functions
void repchar(char, int);
int main() { char chin; int nin; cin >> chin; cin >> nin; repchar(chin, nin); return 0; }
void repchar(char ch, int n) { for(int j=0; j < n; j++) cout << ch; cout << endl; }
25/22
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; }
26/22
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; }
27/22
Structures Within Structures
struct Distance { int feet; float inches; }; struct Room { Distance length; Distance width; };
int main() { 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; }