Lecture 5 Introduction to Programming in C - PowerPoint PPT Presentation

1 / 52
About This Presentation
Title:

Lecture 5 Introduction to Programming in C

Description:

Lecture 5 Introduction to Programming in C Arne Kutzner Hanyang University / Seoul Korea Further loop structures: for structures, do-while statements for structure ... – PowerPoint PPT presentation

Number of Views:122
Avg rating:3.0/5.0
Slides: 53
Provided by: arne59
Category:

less

Transcript and Presenter's Notes

Title: Lecture 5 Introduction to Programming in C


1
Lecture 5Introduction to Programming in C
  • Arne Kutzner
  • Hanyang University / Seoul Korea

2
Further loop structures for structures,do-while
statements
3
for structure
  • Syntax
  • For-loops have three loop control statements
  • Initialization of the loop control variable.
  • Test of the loop repetition condition
  • Update of the loop variable

for(initialization loop_repetition_condition
update) statement
4
for structure with compound
  • Syntax

for(initialization loop_repetition_condition
update) statement_1 statement_2 statement
_n
5
for structure (cont.)
  • Any for-loop may be represented as while-loop as
    follows

stat1while (expr2) statement stat3
for (stat1 expr2 stat3) statement
6
Example while versus for
loop repetition condition
initialization
  • i 0
  • while (i lt N)
  • printf("")
  • i i 1

update
loop repetitioncondition
updatestatement
initialization
for (i 0 i lt N i i 1)
printf("")
7
Caution common error
  • The following loop does not sum up the values
    from 0 to n. (only up to n 1)

for (i0 iltn i i 1) sum sum i
8
Caution (weird C)
  • Adding a semicolon at the end of the for clause
    before the loop body is a common mistake
  • int i
  • for (i 0 i lt 10 i i 1)
  • printf("i is d", i)

Wrong
9
do-while Statement
  • Syntax
  • The for and while statements both evaluate the
    loop repetition condition before the execution of
    the loop body
  • The do-while loop checks the repetition condition
    at the end of the loop body

do statement_1 statement_2 statement_n
while (loop_repetition_condition)
10
while versus do-while
do printf("Enter a letter from A to Zgt")
scanf("c", letter_choice) while
(letter_choice gt 'A' letter_choice lt 'Z')
printf("Enter a letter from A to
Zgt") scanf("c", letter_choice) while
(letter_choice gt 'A' letter_choice lt 'Z')
printf("Enter a letter from A to Zgt")
scanf("c", letter_choice)
11
Caution (weird C)
  • The problem with while, do-while and the
    semicolon.
  • int i0
  • while (ilt10)
  • printf("i is d", i)
  • i i 1
  • In the case of the do loop, the following
    semicolon is needed to end the loop.
  • int i0
  • do
  • printf("i is d, i)
  • i i 1
  • while (ilt10)

Wrong
Correct
12
break, continue and goto
13
break and continue Statements
  • A break statement causes the innermost enclosing
    loop to be exited immediately.
  • continue causes the next iteration of the
    enclosing for, while, or do-while loop to begin.
  • When continue statement is used in while and
    do-while loops, then this means that the
    condition part is executed immediately in the
    for loop, control passes to loop variable update
    step.

14
Flowchart continue statement(for while loop)
false
Continue

condition?

true
Statement(s)
continue
Statement(s)
Next
Statement
15
Flowchart break statement (for while loop)
false
Continue

condition?

true
Statement(s)

break
Statement(s)

Next

Statement

16
Example continue
int sum 0 int n 1 while (n lt 100) if
((n 2) 0) n n 1
continue sum sum n n n
1
  • In the above program the sum of all odd numbers
    from 1 to 99 is calculated.

17
The goto statement
  • General Syntax goto label label
  • The goto statement is only for very special
    situations and almost never used.

If the program flow reaches the goto statement it
continues at the position marked with label
18
The goto statement (cont.)
  • Examplefor () for () if
    (disaster) goto error error error
    related code

19
switch Structures
20
switch structure
  • Syntax switch (expression) case const-expr
    statements break case const-expr
    statements break default
    statements

21
switch structure
  • To select one of several alternatives.
  • Selection is based on the value of an expression.
  • Expression can be a single value.
  • The type of expression can be either int or char,
    but not double.

22
switch structure / Flow diagram
true
case B
case B actions
break
false
true
case N
case N actions
break
false
default actions
23
switch structure (Example)
switch (class) case 'B'case 'b' printf
("Battleship\n") breakcase 'C'case
'c' printf ("Cruiser\n") breakcase
'D'case 'd' printf ("Destroyer\n")
breakcase 'F'case 'f' printf ("Frigate\n")
breakdefault printf ("Unknown ship
classc\n", class)
24
Conditional Operator, decrement and increment
Operators, Shortcut assignments
25
Conditional Operator
  • General form(booleanExp) ? exp1 exp2
  • Exampleif (x gt 0) y 1 else y -1is
    equivalent toy (x gt 0) ? 1 -1

Ternary operator
26
Increment andDecrement Operators
27
Increment andDecrement Operators, cont.

int i10

Equivalent to

int newNum 10i

int newNum 10(i)
i i 1





int i10

Equivalent to

i i 1

int newNum 10(i)

int newNum 10i




28
Shortcut Assignment Operators
Operator Example Equivalent i8 i
i8 - f-8.0 f f-8.0 i8 i i8 / i/8 i
i/8 i8 i i8
29
Functions
30
Functions Introduction
  • Functions are program modules written to
  • avoid the repetition of identical code parts
  • solve a bigger problem by decomposing it into
    smaller problems
  • ExampleA Function max that delivers the maximum
    of two values.
  • Functions
  • take one or several arguments,
  • compute some statements and
  • return a single value

31
Function Definition in C
  • Syntax

Data type of the returned value
Function name(identifier)
Formal Arguments
data_type identifier (arg_1, arg_2,) local
variable declarations executable statements
32
Function Arguments / Local Variables
  • Syntax of a single formal argumentdata_type
    identifier
  • Local variables are variables that are known
    inside a function only
  • Different functions may have local variables with
    identical names

33
Scope of Local Variables
  • Scope of a variable The part of the program
    where a variable can be referenced.
  • The scope of a local variable starts from its
    declaration and continues to the end of the
    function that contains the variable.

34
The return statement
  • Functions return a single value using the return
    statement.Syntaxreturn expression

35
Example max function
  • int max (int i, int j) int m if (i gt
    j) m i else m j return m

Local variable definition
36
Function Calls
actualarguments
  • Syntax function_name(arg1, arg2, )
  • Actual arguments may be constants, variables, or
    expressions.
  • Example of function callmax(a, b)
  • Example of function call plus assignmentx
    max(a, b)

37
Example Function Call
pass i

pass j
int max (int i, int j) int m if (i gt
j) m i else m j return m
void main() int a, b, x a 5 b 2
x max (a, b) printf("d", x)

38
Example Function Call, cont.
  • The values of a and b are copied to i and j
    .Graphically

pass 5
The main method
The max method
a
i
5
5
pass 2
parameters
2
2
b
j
5
5
m
x
return value
39
Call by Value Semantic
  • Because the arguments are copied in C we talk of
    a call by value semantic

40
Function withoutReturned Value
  • Syntaxvoid fname (arg1, arg2, ) local
    variable declarations
  • executable statements
  • The keyword void indicates that the function does
    not return any value

41
Iterative Programming
  • The factorial function can be programmed by a for
    loop as follows
  • int factorial(int x) int prod, i prod
    1 for (i 1 i lt x i i 1) prod
    prod i return prod
  • Such a loop-based solution is called a iterative
    programming

42
Recursion
  • A function can call itself inside its
    body.Example factorial functionint
    factorial(int x) if (x gt 1) return x
    factorial(x - 1)
  • else return 1
  • This programming technique is called Recursion

Recursive call of factorial
43
Computing Factorial, cont.
Step 9 factorial(4) returns 24 (46)
Main functionfactorial (4)
factorial(4) is called in the main
factorial (4) 4factorial(3)
Step 8 factorial(3) returns 6 (32)
Step 1 factorial(4) calls factorial(3)
factorial (3) 3factorial(2)
Step 7 factorial(2) returns 2 (21)
Step 2 factorial(3) calls factorial(2)
factorial (2) 2factorial(1)
Step 6 factorial(1) returns 1 (11)
Step 3 factorial(2) calls factorial(1)
factorial (1) 1factorial(0)
Step 5 factorial(0) returns 1
Step 4 factorial(1) calls factorial(0)
factorial (0) 1
44
Function Declarations
  • Function declaration formatreturn-value-type
    function-name (arguments'-type)
  • return-value-type data type of the
    result(default int)
  • void indicates that the function returns nothing
  • function-name any valid identifier
  • Arguments' type comma separated list of
    arguments' type

45
Example Function declaration and definition in a
program
A function named example that takes 2 arguments
of type double and returns no data, would look
like
double example(double, int) int main()
double example (double a, int b)
46
Predefined Library Functions
  • Functions that are implemented as a part of C
    toolkit.Example printf
  • If a library function is used, then the
    corresponding header file should be included at
    the top of the program using an appropriate
    preprocessor directive.Example include
    ltstdio.hgt for printf function.

47
Some Mathematical Library Functions Defined in
math.h
Function Purpose
double ceil(double x) returns the smallest integer greater than x
double exp(double x) returns
double fabs(double x) returns the absolute value of x
double floor(double x) returns the largest integer less than x
double log(double x) returns the natural logarithm of x
double log10(double x) returns the base 10 logarithm of x
double sqrt(double x) returns the square root of x
48
Some Mathematical Library Functions Defined in
math.h
Function Purpose
double sin(double x) returns the sine of x
double cos(double x) returns the cosine of x
double tan(double x) returns the tangent of x
double pow(double x, double y) returns
Defined in stdlib.h
int abs(int x) returns the absolute value of x
49
Programming TechniqueTop-Down Design
  • A problem-solving method in which a given problem
    is first broken into its major subproblems.
  • Then the subproblems are solved to get some
    solution for the original problem
  • Subproblems are typically solved by use of
    functions.

50
Example Top-Down DesignStructure Chart for
drawing a Stick figure
/\ / \ / \ -----
/\ / \ / \
51
Program for drawing a stick figure
include ltstdio.hgt / function declarations
(prototypes) / void draw_circle(void) void
draw_intersect(void) void draw_base(void) void
draw_triangle(void) int main() / draw a
circle / draw_circle() / draw a
triangle / draw_triangle() / draw
intersection lines / draw_intersect()
52
Function Definitions used for Drawing a Stick
Figure
/ Draw a circle / void draw_circle(void)
printf(" \n") printf(" \n")
printf(" \n")
/ Draw a intersection lines / void
draw_intersect(void) printf(" /\\\n")
printf(" / \\\n") printf("/ \\\n")
/ Draw a base line / void draw_base(void)
printf ("------\n")
/ Draw a triangle / void draw_triangle(void)
draw_intersect() draw_base()
Write a Comment
User Comments (0)
About PowerShow.com