Lecture 2: Logical Problems with Choices Problem Solving Before writing a program Have a thorough understanding of the problem Carefully plan an approach for.

Download Report

Transcript Lecture 2: Logical Problems with Choices Problem Solving Before writing a program Have a thorough understanding of the problem Carefully plan an approach for.

Lecture 2: Logical Problems
with Choices
Problem Solving
Before writing a program
Have a thorough understanding of the problem
Carefully plan an approach for solving it
While writing a program
Know what “building blocks” are available
Using good programming principles
Algorithms
Computing problems
All can be solved by executing a series of actions in a specific
order
Algorithms: An algorithm is a clearly specified set of simple
instructions to be followed to solve a problem
Actions to be executed
The order in which these actions are to be executed
Program control
Specify order in which statements are to be executed
Control Structures
Sequential execution
Normally, statements are executed one after the other in the
order written
Transfer of control
When the next statement executed is not the next one in
sequence
Overuse of goto statements led to many problems
All C programs written in term of 3 control structures
Sequence structures
Programs executed sequentially by default
Selection structures
Three types: if, if … else, and switch
Repetition structures
Three types: while, do … while and for
Pseudocode
Artificial, informal language that helps develop
algorithms
Similar to everyday English
Not actually executed on computers
Help “think out” a program before writing it
Easy to convert into a corresponding C program
Consists only executable statement
Definitions are not executable statements
Flowchart
Graphical representation of an algorithm
Drawn using certain special-purpose symbols
connected by arrows called flowlines
Special-purpose symbols
Rectangle (action) symbol:
any type of action.
Oval symbol:
Flowcharting C’s sequence stucture
the beginning or end of a program
Small circle (connector) symbol:
the entry or exit of a portion of an algorithm.
Diamond symbol:
indicate that a decision is to be made.
Single-entry/single-exit
if Selection Statement
Selection structure
Used to choose among alternative courses of action
Example - Pseudocode:
if student’s grade is no less than 60
condition
print “Passed”
If condition true
Print statement executed and program goes on to
next statement.
If condition false
Print statement is ignored and the program goes
onto the next statement
if Selection Statement
Pseudocode statement in C
if ( grade >= 60)
condition
printf( “Passed\n” );
C code corresponds closely to the pseudocode
Flow chart for the if selection statement
Diamond symbol (decision symbol)
Indicates decision is to be made
Contains an expression that can be true or false
Test the condition, follow appropriate path
if … else Selection Statement
if … else
Specifies an action to be performed both when the
condition is true and when it is false
if: Only performs an action if the condition is true.
Problem:
Read in 2 numbers and print in non-decreasing order.
Pseudocode:
Read in two numbers, num1 and num2.
If num1 is no larger than num2
Print “num1 num2”
else
Print “num2 num1”
if … else Selection Statement
Flowchart
begin
Flowcharting the doubleselection if...else
statement
Read in two numbers:
num1 and num2
Print “num2 num1”
false
num1 <= num2
end
true
Print “num1 num2”
if … else Selection Statement
C code
Nested if … else Statements
Test for multiple cases by placing if…else selection
statements inside if…else selection statement
Once condition is met, rest of statements skipped
Example - Pseudocode
If student’s grade is greater than or equal to 90
Print “A”
else
If student’s grade is greater than or equal to 80
Print “B”
else
If student’s grade is greater than or equal to 70
Print “C”
else
If student’s grade is greater than or equal to 60
Print “D”
else
Print “F”
Nested if … else Statements
Flowchart
Print “A”
true
score>=90
Print “B”
true
false
score>=80
Print “C”
true
false
score>=70
Print “D”
true
false
score>=60
false
Print “F”
Nested if … else Statements
C code
/*
Convert a student's score to grade */
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
int score;
/
* score of the student */
printf( "Enter the score\n" );
scanf( "%d", &score );
/* prompt */
/* read an integer */
if ( score >= 90 )
printf( "The grade is 'A'.\n" );
else
if ( score >= 80 )
printf( "The grade is 'B'.\n" );
else
if ( score >= 70 )
printf( "The grade is 'C'.\n" );
else
if ( score >= 60 )
printf( "The grade is 'D'.\n" );
else
printf( "The grade is 'F'.\n" );
return 0; /* indicate that program ended successfully */
} /* end function main */
Compound Statement
Set of statements within a pair of braces
Example:
if ( grade >= 60 )
printf( "Passed.\n" );
else {
printf( "Failed.\n" );
printf( "You must take this course again.\n"
);
}
Without the braces, the statement
printf( "You must take this course again.\n"
);
would be executed automatically.
A compound statement can be placed anywhere in a
program that a single statement can be placed.
In-Class Programming Exercise
Write a program that completes the following:
Read in three integers and determine the largest.
You should only use if/else statements for the logic in your code.
Submit your maxnum.c file to the dropbox called
Maximum Number and complete Program Quiz 2.