14
September1999 CMSC 203 / 0201 Fall 2002 Week #7 – 7/9/11 October 2002 Prof. Marie desJardins

CMSC 203 / 0201 Fall 2002

  • Upload
    gannon

  • View
    79

  • Download
    0

Embed Size (px)

DESCRIPTION

CMSC 203 / 0201 Fall 2002. Week #7 – 7/9/11 October 2002 Prof. Marie desJardins. TOPICS. Recursion Recursive and iterative algorithms Program correctness. MON 10/7 RECURSION (3.3). Concepts/Vocabulary. Recursive (a.k.a. inductive) function definitions Recursively defined sets - PowerPoint PPT Presentation

Citation preview

Page 1: CMSC 203 / 0201 Fall 2002

September1999

CMSC 203 / 0201Fall 2002

Week #7 – 7/9/11 October 2002

Prof. Marie desJardins

Page 2: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

TOPICS

Recursion Recursive and iterative algorithms Program correctness

Page 3: CMSC 203 / 0201 Fall 2002

September1999

MON 10/7RECURSION (3.3)

Page 4: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Concepts/Vocabulary

Recursive (a.k.a. inductive) function definitions Recursively defined sets Special sequences:

Factorial F(0)=1, F(n) = F(n-1)(n) = n! Fibonacci numbers f0 = 0, f1 = 1, fn = fn-1 + fn-2

Strings *: Strings over alphabet Empty string String length l(s) String concatenation

Page 5: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Examples

S1 = Even positive integers 2 S1; x+2 S1 if x S1

S2 = Even integers 2 S2; x+2 S2 if x S2; x-2 S2 if x S2

Prove that S1 is the set of all even positive integers Every even positive integer is in S1…

Every member of S1 is an even positive integer…

Page 6: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Examples II

Exercise 3.3.5: Give a recursive definition of the sequence {an}, n = 1, 2, 3, … if (a) an = 6n (b) an = 2n + 1 (c) an = 10n

(d) an = 5 Exercise 3.3.31: When does a string belong to the

set A of bit strings defined recursively by 0x1 A if x A,

where is the empty string?

Page 7: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Examples III

Exercise 3.3.33: Use Exercise 29 [definition of w i] and mathematical induction to show that

l(wi) = i l(w),where w is a string and i is a nonnegative integer.

Exercise 3.3.34: Show that (wR)I = (wi)R whenever w is a string and I is a nonnegative integer; that is, show that the ith power of the reversal of a string is the reversal of the ith power of the string.

Page 8: CMSC 203 / 0201 Fall 2002

September1999

WED 10/9RECURSIVE ALGORITHMS (3.4)

** HOMEWORK #4 DUE **

** UNGRADED QUIZ TODAY **

Page 9: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Concepts / Vocabulary

Recursive algorithm Iterative algorithm

Page 10: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Examples

Algorithm 7: Recursive Fibonacci Complexity of f7 (Exercise 14), fn

Algorithm 8: Iterative Fibonacci Complexity f7 (Exercise 14), fn

Eercise 3.4.23: Give a recursive algorithm for finding the reversal of a bit string.

Page 11: CMSC 203 / 0201 Fall 2002

September1999

FRI 10/11PROGRAM CORRECTNESS (3.5)

Page 12: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Concepts / Vocabulary

Initial assertion, final assertion Correctness, partial correctness, termination

“Partially correct with respect to initial assertion p and final assertion q”

Rules of inference Composition rule Conditional rules Loop invariants

Page 13: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Examples

Exercise 3.5.3: Verify that the program segmentx := 2z := x + yif y > 0 then

z := z + 1else

z := 0is correct with respect to the initial assertion y=3 and the final assertion z=6.

Page 14: CMSC 203 / 0201 Fall 2002

September1999October 1999October 1999

Examples II

Exercise 3.5.6: Use the rule of inference developed in Exercise 5 [if… else if … else …] to verify that the program

if x < 0 theny := -2|x| / x

else if x > 0 theny := 2|x| / x

else if x = 0 theny := 2

is correct with respect to the initial assertion T and the final assertion y=2.