CONTROL STRUCTURES - Pennsylvania State University

Download Report

Transcript CONTROL STRUCTURES - Pennsylvania State University

Flow of Control and Program
Style
 Nested
if
statements
 C++ struct
 Program Style
 Lab Exercise
Nested if statements/Multi-way
branching
if (logical expression)
{
if (logical expression)
{
statement(s);
}
else
{
statement(s);
}
}
else
Multiway Branching
{
and nested statements: note
statement(s);
if contained within if logic
}
Evaluate: Correct?
Incorrect? Why?
if(temp > 70)
{
if(temp < 32)
{
cout<<“freezing temperature”<<endl;
}
}
else
{
cout<<“temperature above 70<<endl”;
}
Nested Statements




Always line up if with corresponding else
Compiler always matches else with nearest
previous if
Indentation will not make a difference except
for logical understanding of code!
Brackets around sub statements also aid
readability and prevent logic errors
Multiway if-else Example
Note: 1) use of special indentation
2) necessity of brackets with multiple statements
If(age > 75)
cout<<“golden years”;
else if (age >50)
cout<<“senior”;
else if (age > 30)
cout<<“middle age”;
else
cout<<“young adult”;
Struct
A C++ type
 A way to handle
related data

Structures
A structure is a data type much like a class, an int,
char, etc.
Structure tag = the name of a structure type
Members (variable names) are contained in brackets.
Member variables in a program are specified
using the structure variable followed by a “.”
and then the member variable name.
Structure Example
In class definition:
private:
struct person
{
char social_security [10];
int age;
char sex;
};
person p;
int test::input ()
{
int an_age;
cin>>p.social_security;
an_age=read_convert_to_int ();
if(an_age== -1)
{
cout<<“age is incorrect”;
p.age = 0;
}
else
{
p.age=an_age;
}
return 0;
}
Structure Purpose
O Group associated variables.
O Concept of a record, i.e. group of related fields
or variables.
O More relevant when we begin to group
information to be written on a disk.
Program Style
Indentation
Comments
Pre/Post
Indentation
Place braces on lines by themselves
 Indent within braces
 Consistency of indentation and
indentation style is crucial
 The Development Studio has default
indentation built into it

Comments
Do not comment each line of the program
 Comments may appear at the beginning of a
program or function
 Use comment for file name, program
description, author
 Pre/post conditions under prototype are
crucial

Precondition/Postcondition
Should be a first step, ie prior to writing
a function; important part of design
 Place immediately after a function
prototype
 A comment

Precondition
Provides information about state of input
argument(s) – WHAT!
 Appear after function prototype
 Tells what is assumed to be true before
the function is executed

Postcondition
 Tells
what the function does
 Tells what will be true after execution of
the function
 Describes state of variables after
execution of the function
 For functions that return a value,
describes the return value
Examples
void get_name_input ();
//Precondition: A name is needed
//Postcondition: The value of first name and last name is set
int calc_average ();
//Precondition: A sum and number are available for use
//Postcondition: The average has been calculated by dividing
// the sum by the number.
//The average is returned to the calling program
Program Testing
It is important to test your logic fully function by function:
1. Test each function as it is implemented and as a separate
unit
2. Insert dummy code, eg a cout for funtions that are
incomplete
3. Test at the very least - one case
4. Minimal driver programs (main) or temporary tool for
testing is advised
5. Make use of cout statements and/or VDE debug
features e.g. step step over and trace into features
TO DO in Lab:
Page 429, Number 4 with changes:
a. Variable for week-end or week-day:
1 for week-day and 2 for week-end
b. Just read first part through “13:30”
c. Create workspace
d. Create a simple main function
e. Create a header file