Lecture 17 - March 20th 2007
Reminder: if you haven't seen Professor Harris to apply to be a major, you should do it right away.
Talked about the life and death of John Backus, leader of the team that developed FORTRAN... See articles at
URLs below:
http://www...nytimes...com/2007/03/20/business/20backus...html?_r=1&ref=technology&oref=slogin
http://www.msnbc.msn.com/id/17704662/
Went back to Lecture 16 notes and covered the following
Here’s another: The set of all (finite-length ) strings of
symbols over a finite alphabet A is denoted by A*... The recursive definition of A* is 1.
The empty string l (string with no symbols) belongs to A* 2.
Any single
member of A belongs to A* 3.
If x and y are
strings in A*, so is xy, the concatenation of strings x and y... Here’s another In a given programming language,
identifiers can be alphanumeric strings of arbitrary length but must begin
with a letter... A recursive
definition for the set of such strings is 1.
A single letter
is an identifier... 2.
If A is an
identifier, so is the concatenation of A and any letter or digit... A more symbolic notation
for describing sets of strings that are recursively defined is called Backus-Naur form or BNF, which was originally developed
by John Backus and Peter Naur to define the programming language ALGOL... General Characteristics of
Recursive methods ·
Recursive
methods get their solutions by calling themselves... ·
They have what
is known as a stopping case which keeps them from calling themselves forever... ·
They call
themselves with a smaller problem each time... Most common problem: ·
Infinite
recursion ·
Caused by o
Omitting stopping
case o
Not having
successive cases getting smaller |
You should review Dr... Bernstein's notes and the Big Java notes on recursion found in Lecture16...
... |
|
|
|
|
|
|
... |
... |
|
|
|
|
|
... |
... |
... |
|
|
|
|
... |
... |
... |
... |
|
|
|
... |
... |
... |
... |
... |
|
|
... |
... |
... |
... |
... |
... |
|
... |
... |
... |
... |
... |
... |
... |
We then discussed three different ways of computing the area of the shaded boxes.
1. recursively - discussion and code here
2. iteratively - using a FOR loop
3. using the formula
n(n+1)
2
The rest of the class was devoted to the following 3 group activities.
public static String mystery.doc
public static int goFigure.doc
public static String scramble (String str) { if (str.length() >= 2) { int n = str.length() / 2; str = scramble(str.substring(n)) + str.substring (0,n); } return str; } // end scramble |
You need to study and understand all of this code in order to do tomorrow's lab.