1 / 28

CS1020

CS1020. Week 3: 30 th January 2014. Contents. Part 1: UNIX Environment, vim, Input/Output Part 2: Discussion on Lab # 0 Part 3: Discussion on Lab #1. Part 1. UNIX environment vim Input/output. Important UNIX Commands (1/2). Change Directory ( cd ) cd [ directory name ]

osric
Download Presentation

CS1020

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. CS1020 Week 3: 30thJanuary 2014

  2. Contents • Part 1: UNIX Environment, vim, Input/Output • Part 2: Discussion on Lab #0 • Part 3: Discussion on Lab #1 Week 3

  3. Part 1 UNIX environment vim Input/output Week 3

  4. Important UNIX Commands (1/2) • Change Directory (cd) • cd[directory name] • cd .. (to go back to parent directory) • cd (to go to home directory) • List Content (ls) • ls(list current directory) • ls –al (include hidden files/folders, in long format) • Copy/remove/move (cp, rm, mv) • mv command is also used for renaming files • Edit File in VIM (vim) • vim [file name] • Auto-completion of filename/directory name • Use <tab> button Week 3

  5. Important UNIX Commands (2/2) • Java Compile (javac) • javac *.java (shortcut to compile all java files) • Running Java Program (java) • java [program name without extension] • java[class name] < [input file] > [output file](input/output redirection) • Checking for Difference (diff) • diff [filename1] [filename2] • Difference in a single space or an extra line will be noted • Manual (man) • man [command name] • When you are not sure what the command does, or what options it has Week 3

  6. Important VIM Commands • Command Mode: (to get into command mode, press ESC key) • dd or :d → Delete the current line • :q! → Exit without saving changes • :wq or ZZ → Save and Exit • /[pattern] → Search for the pattern • n → Search next in the same direction • N → Search next in the opposite direction • See “Editor” in CS1020 Online web page: • http://www.comp.nus.edu.sg/~cs1020/2_resources/online.html Week 3

  7. Input: Reading Standard Input • Scanner Class • Initialization: Scanner sc = new Scanner(System.in); • hasNext() and variants • Check if there exists another input • next() and variants • Get the next input • Variants: Int, Line, Doubleexample: hasNextInt() and nextLine() • There is NO nextChar() and hasNextChar() variant • Type of Input: (from Practice Exercise 9) • Type 1: Number of Operations is specified • Type 2: Read until Terminating Special Character • Type 3: Read until End of File Week 3

  8. Input: Type 1 Input (Example) public static void main(String[] args) { // … Code Section Omitted // … Other Initialization Scanner sc = new Scanner(System.in); intnumOps = sc.nextInt(); for (int i=0; i<numOps; i++) { // Read Other Inputs } // … Code Section Omitted } Week 3

  9. Input: Type 2 Input • Steps: • Instantiate a Scanner object • Read the First Input • Loop until Terminating Special Character encountered • Read into tempInputagain • Scanner sc = new Scanner(System.in); • String tempInput = sc.next(); • while (!tempInput.equals(TERMINATING_CHAR)) { // Read Other Input (if exists) // Step 4 Here} • tempInput = sc.next(); Week 3

  10. Input: Type 2 Input (Example) public static void main(String[] args) { // … Code Section Omitted // … Other Initialization Scanner sc = new Scanner(System.in); String tempInput = sc.next(); while (!tempInput.equals(TERMINATING_CHAR)) { // Read Other Input tempInput = sc.next(); } // … Code Section Omitted } Week 3

  11. Input: Type 3 Input • Steps: • Instantiate a Scanner object • Loop until End of File • Scanner sc = new Scanner(System.in); • while (sc.hasNext()) { // Read Other Input} Week 3

  12. Input: Type 3 Input (Example) public static void main(String[] args) { // … Code Section Omitted // … Other Initialization Scanner sc = new Scanner(System.in); while (sc.hasNext()) { // Read Other Inputs } // … Code Section Omitted } Week 3

  13. Input: Hybrid Input • Combines two or more different input types into a single program • e.g.: Type 3 Input on the Outside, Type 1 Input on the Inside. public static void main(String[] args) { // … Code Section Omitted // … Other Initialization Scanner sc = new Scanner (System.in); while (sc.hasNext()) { intnumOps = sc.nextInt(); for (inti=0; i<numOps; i++) { // Read Other Inputs } } // … Code Section Omitted } Week 3

  14. Output: Printing Standard Output • With newline character at the end • Without newline character at the end • Note that for CodeCrunch, your last output line should contain a newline character at the end • System.out.println("Output String Here"); • System.out.print("Output String Here\n"); • System.out.print("Output String Here"); Week 3

  15. Part 2 Discussion on Take-home Lab #0 Week 3

  16. Exercise 1: Area of Triangle Objectives: Input/output in Java Using Math class Writing user-defined methods Methods: Determine whether it is a valid triangle. Compute area of the triangle if it is a valid triangle. Main method Week 3

  17. Exercise 1 (1/3) • Method 1: Determine whether it is a valid triangle • Read the lengths of the sides as inputs. • For any two sides, the sum of their lengths must be greater than the third side. • Return a boolean • // if a, b, c represent lengths of the sides of a triangle, • // return true, otherwise return false. • public static booleanvalidTriangle(double a, • double b, double c) { • return (a + b > c) && (a + c > b) && (b + c > a); • } Week 3 Week 3

  18. Exercise 1 (2/3) • Method 2: Compute area of the triangle • Read the lengths of the sides as inputs. • Use the the Heron’s formula to compute the area • Return a double value as the area • // To return area of a triangle of sides a, b, and c • // Using Heron's formula • public static double area(double a, double b, double c) { double p = (a + b + c)/2; • return Math.sqrt(p * (p-a) * (p-b) * (p-c)); • } Week 3

  19. Exercise 1 (3/3) • Main method • Instantiate a Scanner object and read the inputs • If the triangle is valid, compute the area and print it out. • Otherwise print “Invalid triangle!”. • public static void main(String[] args) { • double a, b, c; // lengths of sides of triangle • Scanner sc = new Scanner(System.in); • System.out.print("Enter 3 lengths: "); • a = sc.nextDouble(); • b = sc.nextDouble(); • c = sc.nextDouble(); • if (validTriangle(a, b, c)) System.out.printf("Area = %.2f\n", area(a, b, c)); • else • System.out.println("Invalid triangle!"); • } Week 3

  20. Exercise 2: Date Conversion (1/3) • Date format: UK MM DD, YYYY US DD MM YYYY • Convert from UK dateto US date • Not allowed to use the date formatter class Week 3

  21. Exercise 2: Date Conversion (2/3) • How to transfer the two date? • eliminate the comma • use substring/split to find the month and day • swap the day with month Week 3

  22. Exercise 2: Date Conversion (3/3) • Leap year? • It is divisible by 400; or • It is divisible by 4 but not by 100 Year%400==0 || (year%4==0 && year%100!=0) • String to Integer: int year = Integer.valueOf(yearStr); Week 3

  23. Part 3 Discussion on Take-home Lab #1 Week 3

  24. Ex 1: Overlapping Rectangles (1/4) • Observe the overlapping area: X2,Y2 X2,Y4 X4,Y4 X3,Y1 X1,Y1 X3,Y3 Week 3

  25. Ex 1: Overlapping Rectangles (2/4) • The overlapping rectangle bottom left point’s x coordinate and y coordinate are the maximumof the other two rectangles bottom left points’ x and y • MAX(X1,X3)  X3; MAX(Y1,Y3)  Y1 X2,Y2 X2,Y4 X4,Y4 X3,Y1 X1,Y1 X3,Y3 Week 3

  26. Ex 1: Overlapping Rectangles (3/4) • The overlapping rectangle top right point’s x coordinate and y coordinate are the minimumof the other two rectangles top right points’ x and y • MIN(X2,X4)  X2; MIN(Y2,Y4)  Y4 X2,Y2 X2,Y4 X4,Y4 X3,Y1 X1,Y1 X3,Y3 Week 3

  27. Ex 1: Overlapping Rectangles (4/4) • But…. • The two points given may not lie in the same direction • You need to transfer to the same direction X2,Y2 X2,Y4 X4,Y4 X1,Y1 X3,Y1 X3,Y3 Week 3

  28. END OF FILE

More Related