Fibonacci Numbers A simple example of program design Jan 15 2019 Purpose of this presentation The whole point of this presentation is to give you some idea of how to put together the components we have so far declarations assignments if and while statements into a working program The example we use is writing a program to compute and display a Fibonacci sequence 2 Fibonacci sequences A Fibonacci sequence is an infinite list of integers The first two numbers are given Usually but not necessarily these are 1 and 1 Each subsequent number is the sum of the two preceding numbers 1 1 2 3 5 8 13 21 34 55 89 144 Let s write a program to compute these 3 Starting the Fibonacci sequence We need to supply the first two integers int first 1 int second 1 We need to print these out System out print first System out print second We need to compute and print the next number int next first second System out print next 4 Taking the next step We need to compute and print the next number int next first second System out print next Now what We don t want to make up a lot more names If we use a loop we must reuse names 5 Preparing for another step This computation gave us our third number int next first second System out print next The sequence so far is first second next To get another number we need second next Variable first is no longer useful for anything Let s move values around so that first second does the job we need 6 Preparing to make many steps We need to make these moves first second next 1 1 2 first second next first second next 1 2 We can do it like this 3 first second second next 2 3 We can put these statements in a loop and do 5 them as many times as we please 3 8 5 7 The program so far int first 1 int second 1 System out print first System out print second while when do we stop int next first second System out print next first second second next 8 Deciding when to stop Suppose we stop when we get to a number that s 1000 or bigger So we continue as long as the number is less than 1000 while next 1000 Question is the final number printed greater than 1000 or less than 1000 while next 1000 int next first second System out print next first second second next 9 One other minor detail We have been printing the numbers all on one line We ll get to 1000 quickly enough so we won t have a terribly long line For neatness sake we really ought to end the line rather than hoping Java does it for us System out println 10 The program so far int first 1 int second 1 System out print first System out print second while next 1000 oops a bug int next first second System out print next first second second next System out println 11 Fixing the bug The first time we see the variable next it s in the test of the while loop while next 1000 next hasn t been given a value yet next hasn t even been declared Solution declare next up with the other variables and give it some reasonable initial value 12 The fixed program so far int first 1 int second 1 int next 2 System out print first System out print second while next 1000 next first second int was removed System out print next first second second next 13 Finishing up We have the commands we need but we do not have a complete application We need to put the commands into a method We need to put the method into a class The next slide shows the extra stuff we need but doesn t explain it 14 The box our program goes in public class Fibonacci public static void main String args code goes here 15 The complete final program public class Fibonacci public static void main String args int first 1 int second 1 Our code int next 2 System out print first System out print second while next 1000 next first second System out print next first second second next System out println 16 Where is it When we run Eclipse we declare some folder to be a workspace To create a new program in Eclipse we must first create a project to hold all our classes All our projects go into this or some other workspace Eclipse will create a directory with the same name as the project You should not rename this directory When you create a class in Eclipse such as Fibonacci it will be put in a file with the same name but with the java extension for example Fibonacci java You must not change the name of this file Java uses the file names to find the classes it needs 17 The End Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live Martin Golding 18
View Full Document
Unlocking...