1 / 48

SOFTWARE AND PROGRAMMING 1

SOFTWARE AND PROGRAMMING 1. (3) to formatting all tables. Lecture 2, 2011 Instructor: Prof. Boris Mirkin DCSIS, room 744, tel. 020 7631 6746 E-mail: mirkin@dcs.bbk.ac.uk Labs: from 26/1, 7.30 pm, in Room B12, UCL Cruciform Building Logins will be given to those attending

chill
Télécharger la présentation

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 (3) to formatting all tables. Lecture 2, 2011 Instructor: Prof. Boris Mirkin DCSIS, room 744, tel. 020 7631 6746 E-mail: mirkin@dcs.bbk.ac.uk Labs: from 26/1, 7.30 pm, in Room B12, UCL Cruciform Building Logins will be given to those attending Course Assistant: Lab/WebCT/Tests/Assignments: Mr Martin O’Shea E-mail: martin@dcs.bbk.ac.uk

  2. Webpages Course web page at BlackBoard: http://www.ble. ac.uk Please check it regularly. It will be used for announcements and assignments. Another page, at an open-to-all web-site, functions with relevant materials too: www.dcs.bbk.ac.uk/~mirkin/sp109

  3. Concepts to keep in mind • Compiler (javac.exe) and Interpreter (java.exe), should be on system’s path • JDK and BlueJ for running Java • Class (template) and Object (its instantiation); every Java program must be a class • Variable and its type; primitive types • Method (input-to-output operation) and its Parameters (inputs - with their types at method’s declaration)

  4. Concepts for tonight • Loops for, while (Have been taught 12/1, but are in this note set) • Expressions • Choice structure if/elseif/else • Method • Strings • Math and random • Input • Using TextIO class • Using Scanner

  5. Type in Java Next few slides cover some material on unifying data types and expressions that was talked about at the previous lecture

  6. Unifying type Look at A=6.0+5 What type of A can be? Can A be Integer? No way. A most senior type! Unifying type: float or double

  7. Type casting    The unifying type can be overridden by explicitly stating a type cast: • Place the desired type result in parentheses followed by the variable or constant to be cast      (int) 6.0+7  13 Example: int bankbalance=931786; float weeklybudget = (float) bankbalance /4; Another way: float weeklybudget = bankbalance /4.0;

  8. Boolean expressions: true or false • |, || or • 5==(1+3+7) | a+b==b+a • E1 E2 E1|E2 • 0 0 0 • 1 0 1 • 0 1 1 • 1 1 1 • &, && and • ! not • == equal to • < less than • > greater than • <= < or == • >= > or == Always after arithmetic; If not sure, use parentheses (…): first performed inside

  9. Condition int x=2; x+4*2 > 5 true at what x is this false? int x=3; int y=1; x-4 == 1.5*(y+2) can this be true?

  10. Precedence table

  11. A simple program /* HelloWorld.java Purpose: printing a message to the screen */ class HelloWorld { // Each program is organised as a class public static void main(String[] args) {          System.out.println("Hello World!");         } } // end of class HelloWorld /* Always Three Types of Elements ONLY: -comments -class (with modifiers) -methods (with modifiers & parameters/arguments) */

  12. More on Method Method in Java is a named set of instructions that transforms some input into an output. This is, actually, a machine implementation of the concept of algorithm which itself is a computational analogue to the mathematical concept of function. Static method: is shared by all instances.

  13. Example of a method (1) Square function y = x2 (an infinite Table) x               y 1                1 2                4 ................ 5               25 ................ 11            121 ................ The table can be used for invoking a specific value, like, 72 = 49 or 102 = 100.

  14. Example of a method (2) A Java method to calculate the square function: public int sq(int x){ return xx;} To make it work, variables are needed: int sevs=sq(7); //puts 49 into sevs int tens=sq(10);// puts 100 into tens

  15. Structure of a method Output’s type Inputs modifiers return-type name ( parameter-list ) { statements; return variable/expression; //if return type is not void } Modifiers: • static -       method/variable that belongs to class as whole and is shared by all instances • public -    method/variable that is accessible from anywhere • private -    method/variable that is accessible from only within the class

  16. HelloWorld with a method // Hello-world program to demonstrate BlueJ class Hello{ // Method that does the work of printing public void go() { System.out.println("Hello, world"); } // main method for working outside BlueJ public static void main(String[] args) { Hello hi = new Hello(); //instance hi.go(); //method in instance hi } }

  17. HelloWorld : WHY Why dots in System.out.println("Hello, world"); hi.go(); ? • To take method from a specific class instance • To take a class from a set of classes: Java is organised as a hierarchically structured set of classes in individual files

  18. Loop for for(int var=1;var<=st;var=var+1) {do operations depending on var} var=var+1 is var++ • Two types of parentheses: (loop control) and {body to do operations} • Three items in control ( ): • initialising the counting variable once, • variable update, and • stop-condition • Exit from the loop – only from within control ( … )

  19. Loop for for(int var=1;var<=st;var++) % no ‘;’ here!!! {do operations depending on var} Two types of parentheses: (loop specified) and {body to do} • The expression in loop control “()” consists of three items in this order: • initialising the counting variable once • stop-condition • variable update • First, • var is initialised, • stop-condition is tested; • if true, block {} is executed, • if no, the program proceeds further on, after the block { } • control returns to ( ) • After control returns to ( ), • varis updated; • stop-condition is checked; • if true, block {} is executed, then control returns to ( ), • if no, the program proceeds further on, after the block { }

  20. HelloWorld N times BlueJ public class HelloN { int number; \\ variable declared public void go() { System.out.println("Hello, world"); } public HelloN(int howmany) {number=howmany; } \\constr to initialise object public void prrt() \\printing number times { for(int i=1;i<=number;i++) \\loop go(); System.out.println("ok"); } }

  21. No { } in for-loop in HelloN Why? Let us add { }: where? Is there any difference between before and after “ok”?

  22. Loop while: less rigid for(init;test;update){ statements } All three in the parentheses refer to a counter that is initialised, updated and tested over reaching the pre-specified threshold Structure of while loop contains same elements – init, test and update – but less rigid, not necessarily based on counter but rather on a condition; while’s structure: init; while(test){ statements; update } Similar elements: ( ), { }, initialisation, test condition (not necessarily involving the counter!), and update

  23. Example: for (int K = 10; K > 1 ; K--) { //k-- is k=k-1; if (K < 7) { break; } // Stops execution of the loop else System.out.print(“ ” + K); } 1. What this loop does? 2. Can it be rewritten in the whileformat?

  24. Example: answer 1 for (int K = 10; K > 1 ; K--) { if (K < 7) { break; } else { System.out.print(“ ” + K);} } What this loop does? Prints 10 9 8 7

  25. Example: answer 2 int K = 10; while(K >1) { if (K< 7) break; else System.out.print(“ ” + K); K--; }

  26. BlueJ HelloWorld N times public class HelloN { int number; \\ variable declared public void go() { System.out.println("Hello, world"); } public HelloN(int howmany) {number=howmany; } \\constr-r to initialise an object public void prrt() \\printing number times { for(int i=1;i<=number;i++) \\loop go(); System.out.println("ok"); } }

  27. Three branching structures • Do under a condition; otherwise do nothing [if… structure] if(BooleanExpr) Statement or if(BooleanExpr) {Statements} (2) Do under a condition; otherwise do differently [if…else… structure] if(BooleanExpr) {Statements1} else {Statements2}

  28. Java branching structure (3): (3) Several conditions to do differently [if…else if… … else if… else structure] if(BoolExpr1) Statement1; else if(BoolExpr2)\\and not BoolExpr1 Statement2; else\\ (not BoolExpr1) and (not BoolExpr2) Statement3; • Note NO Bool. Exp at else

  29. If/else example • Ticket’s price is £5, 60+ concession £3, children 12 or less go for free • Need a variable for the age, say YourAge, and the price, say Price; • The fragment can be as: if (YourAge<=12) Price=0; else if (YourAge<=60) Price=5; else //note NO CONDITION to be put here Price=3;

  30. Statements • Assignment (followed by ;) • Method call (followed by ;) • if/ifelse/else (block, no ;) • for/while loop (block, no ;) • break (followed by ;)

  31. Double loop with method class ATM { public static void main (String[] args) { PrTab(2,4); }\\end main static PrTab(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

  32. This produces: produces 1! 2 3 4 5 2! 3 4 5 6 3! 4 5 6 7 Q: How to make the print look better? (See printing method in TicketMachine – next time.) Q: How to modify table to other ranges? Q: Make a MULTIPLICATION TABLE?

  33. 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.

  34. 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

  35. 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

  36. 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

  37. 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, nextInt(), or double, nextDouble()) from keyboard

  38. 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 [footnote: will not compile!!!]

  39. 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

  40. Strings(1) Declaring a String Object String variable •      An object of the class String –    The class String is defined in java.lang.String and is automatically imported into every program      Create a String object by using the keyword new and the String constructor method •      String aGreeting = new String(“Hello”); or by assigning an actual string String aGreeting = “Hello”;

  41. Strings(2) Comparing String Values •     Strings are never actually changed; instead new Strings are created and String variables hold the new addresses; A part of the Java system called the garbage collector discards the unused strings •     Strings are not numbers; arithmetic and logic Java operations are not applicable. To compare Strings, a number of methods are utilised: –   equals() method   if s1 and s2 are declared and initialised as String: s1.equals(s2) true if s1 and s2 are exactly the same sequences of characters NEVER s1==s2 !!! This is wrong, == applies to numbers only.

  42. Strings(3) Comparing String Values •   Try  "HaHaHa ” "haHaHa" (2 differences) s1.length() number of characters in s1 •      charAt() method requires an integer argument which indicates the position of the character that the method returns s1.charAt(N) N-th character in s1 (starting from N=0) String ss= “Look at you!”; Q. What is ss.charAt(3)? ss.charAt(7)? ss.charAt(17)? [A. In respect, ‘k’, ‘ ’ , and error]

  43. Strings(4) s1.substring(N,M) part of s1 in positions N, N+1, ..., M-1 (positions are numbered from 0 !!!) String ss= “Look at you!”; What is ss.substring(3,7)? Concatenation     Concatenation - Joining strings, can be done with symbol + “45” + “36” = “4536”

  44. Class Math (no need to import) Math.pi  =3.14…, the ratio of the circumference to its diameter Math.abs(a) a if a >= 0, or -a if a < 0 Math.log(a) the natural logarithm (base e) of number a Math.sqrt(a) square root of number a Math.pow(a,b) ab ; if b is an integer then ab =aa…a (b times)

  45. Math.random() pseudorandom number: double within interval [0.0, 1.0) (zero included, unity not) How to use it to generate a random integer between 1 and 6 (inclusive), to imitate casting a dice?

  46. Casting a dice double aa=Math.random(); //aa, a real number between 0 and 1 int an= 6*aa;//a real number between 0 and 6 int rand=(int) an; // whole number between 0 and 5 int randw=rand+1; // whole number between 1 and 6 The same in one line: int randw= (int) (6*Math.random()+1);

  47. Casting a dice question How to generate a random integer between 10 and 20 inclusive? Answer: int rdt= (int) (11*Math.random()+10); Another possibility: using class Random with import java.util.Random

  48. This is what was covered tonight • Primitive type casting • Boolean expression, statements • Concept of method – a touch • Loop for, while in a method • Double loop • Choice structure if/elseif/else • Input from keyboard classes • String • Math

More Related