1 / 29

SOFTWARE AND PROGRAMMING 1

Stay informed about the programming course updates for Lab and Lecture schedules. Access necessary resources to prepare for upcoming tests and assignments. Contact instructors for support. Learn key programming concepts.

eddiehoward
Download Presentation

SOFTWARE AND PROGRAMMING 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOFTWARE AND PROGRAMMING 1 Advert: NO TEST1 on 7/02: TEST1 will be 14/02 Lab: SH131, BBK536 6:00-7:30 (from 24.01.07) [each student must have obtained access to Birkbeck computing, and those whose surnames start with A-L, to SCSIS computing too] Lecture: Gor B4 7:40-9:00 (from 24.01.07) Lab SH131: students whose family names (surnames) begin A-L Instructor: Ms Marie-Helene Ng SCSIS, room NG26, tel. 020 7631 6725 E-mail: marie-helene@dcs.bbk.ac.uk Lab BBK536 : students whose family names (surnames) begin M-Y Instructor: Prof.Boris Mirkin

  2. Webpages The course web page webct.bbk.ac.uk is used for announcements and assignments. Those who have problems with accessing the course module should contact Marie-Helene (marie-helene@dcs.bbk.ac.uk). An open-to-all web-site with lecture notes, schedule and files: www.dcs.bbk.ac.uk/~mirkin/sp105

  3. Test1 14/2/7 awareness Open-book in-class Test1 14/2/7 subjects: • Variable: type, declaration, initialisation • Expression • Loop for • Loop while • if( )… else if( ) ... else • Method

  4. Contents • Leftovers (conditional operator) • Ticket Machine • Method; Accessor, Mutator • Double loop • Input data from keyboard: TextIO, Scanner

  5. Precedence table

  6. Conditional operator • Used for assigning a value depending on a condition: A= Condition ? ResultIfTrue :ResultIfFalse Example: int b=2; int c= 7; int A=(b < c) ? b : c; %put min(b,c) into A How this can be done with if/else: int b=2; int c= 7; int A; if (b<c) {A=b;} else {A=c;}

  7. Ticket Machine (1) /* * TicketMachine models a ticket machine that issues * flat-fare tickets. */ public class TicketMachine{ private int price; private int balance; private int total; public TicketMachine(int ticketCost) //constructor { price = ticketCost; balance = 0; total = 0; } public int getPrice() { return price; } public int getBalance() { return balance; } // see next page for continuation

  8. Ticket Machine (2) // TicketMachine’s continuation public void insertMoney(int amount) { if(amount > 0) balance = balance + amount; else { System.out.println("Use a positive amount: " + amount); } } public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; } // continued on the next page

  9. Ticket Machine (3) // TicketMachine’s end public void printTicket() { if(balance >= price) { // Simulate the printing of a ticket. System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " pence."); System.out.println("##################"); System.out.println(); total = total + price; // Update the total balance = balance - price; // Update the balance } else { System.out.println("You must insert at least: " + (price - balance) + " more pence."); } } }//end of class

  10. A comment I consider printTicket()method as somewhat inconsistent: printing (an accessing activity) is mixed up with changing the balance and total (mutating activities) Any suggestions?

  11. Questions • How many methods are in TicketMachine? - five • If there is any syntactic difference between a method and constructor? – two: absence of the output type, compulsory name • Which of the methods are accessors and which are mutators? - Two in the beginning are accessors, three in the end are mutators

  12. Accessor methods • Accessors provide information about the state of an object. • Methods have a structure consisting of a header and a body. • The header defines the method’s signature. public int getPrice() • The body encloses the method’s statements.

  13. Accessor methods return type visibility modifier method name parameter list (empty) public int getPrice() { return price; } return statement start and end of method body (block)

  14. Mutator methods • Have a similar method structure: header and body. • Used to mutate (i.e. change) an object’s state. • Achieved through changing the value of one or more fields. • Typically contain assignment statements. • Typically receive parameters.

  15. Mutator methods return type (void) visibility modifier method name parameter public void insertMoney(int amount) { balance = balance + amount; } field being changed assignment statement

  16. Printing method public void printTicket() { // Simulate the printing of a ticket. System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " cents."); System.out.println("##################"); System.out.println(); // Update the total collected with the balance. total = total + balance; // Clear the balance. balance = 0; }

  17. Passing data via parameters

  18. Double loop (1) class AddTable { public static void main(String[ ] args){ int sum; for (int ite1=1;ite1<3; ite1++) {//loop1 for (int ite2=1;ite2<5; ite2++) {//loop2 sum=ite1+ite2; System.out.print(sum +" ");}//loop2 System.out.println();}//loop1 } //method main ends } //class ends

  19. Double loop (2) This prints 2 3 4 5 3 4 5 6  Why? A better printing ? Such as: Addition Table + 1 2 3 4 1 2 3 4 5 2 3 4 5 6

  20. Double loop (3) class AddTable { public static void main (String[] args) {int sum; for (int i1=1;i1<3; i1++){ System.out.print(i1 + " ! "); for (int i2=1;i2<5; i2++){ sum=i1+i2; System.out.print(sum +" ");} System.out.println();} } }

  21. Double loop (4): with method class AddTableMeth { public static void main (String[] args) { PrintTable(2,4); }\\end main public static PrinTable(int rowsize, int columnsize){ for (int i1=1;i1<rowsize+1; i1++){ System.out.print(i1 + " ! "); for (int i2=1;i2<columnsize+1; i2++){ sum=i1+i2; System.out.print(sum +" ");} System.out.println();} } }\\end class

  22. Double loop (5) produces 1! 2 3 4 5 2! 3 4 5 6 3! 4 5 6 7 Q: How to make it look better? (See printing method in TicketMachine.) Q: How to modify it to other ranges? Q: Make a MULTIPLICATION TABLE?

  23. Input/Output TextIO class TextIO.java, added to the directory that contains your class, eases input of data from the keyboard To input an integer:   int UsInput = TextIO.getInt(); Computer will wait for the user to type in an integer value to UsInput.

  24. Input/Output TextIO class (2) public class PrintSquare { public static void main(String[] args) {               int uInput;               // the number to be input by the user int Squared;                  // the userInput, multiplied by itself System.out.print("Please type a number: ");     uInput = TextIO.getInt();      Squared = uInputuInput; //why product? System.out.print("The square is "+Squared); }// end of main()     } //end of class PrintSquare

  25. Input/Output TextIO class (3) Other TextIO methods: b = TextIO.getByte(); // value read is a byte i = TextIO.getShort(); // value read is a short j = TextIO.getInt(); // value read is an int k = TextIO.getLong(); // value read is a long x = TextIO.getFloat(); // value read is a float y = TextIO.getDouble(); // value read is a double a = TextIO.getBoolean(); // value read is a boolean c = TextIO.getChar(); // value read is a char w = TextIO.getWord(); // value read is a String s = TextIO.getln(); // value read is a String

  26. Input/Output in Java The TextIO class contains static member methods TextIO.put() and TextIO.putln(), the same as System.out.print() and System.out.println(). TextIO can only be used in a program if TextIO is available to that program. It is not built into Java. From Java 1.5.0 version on, there is a similar class in Systems.in: Scanner

  27. Input with Scanner class(1) From Java 1.5.0 version on, there is a similar class in System.in. Scanner(System.in): - import the java.util package in a line preceding the class, - then declare an instance of Scanner and - then use it for prompting the user to enter data (of a specified data type, preferably int or double) from keyboard

  28. Input with Scanner class (2) import java.util.* class PrintDot{ int num=0; public static void main(String[ ] args){ Scanner scap = new Scanner(System.in); System.out.println(“How many dots to print? “); num=scap.nextInt(); for (int ik=0; ik<num; ik++) System.out.print(‘.’); System.out.println(); } \\end of main } \\end of class

  29. Using method with Scanner import java.util.* class PrintDot{ int number=0; public static void main(String[ ] args){ Scanner scap = new Scanner(System.in); System.out.println(“How many ampersands to print? “); number=scap.nextInt(); ppp(number); }\\end of main void ppp(nnn) { for (ik=0; ik<nnn; ik++) System.out.print(‘&’); System.out.println(); } \\end of ppp } \\end of class

More Related