Download presentation
Presentation is loading. Please wait.
1
1 Methods Instructor: Mainak Chaudhuri mainakc@cse.iitk.ac.in
2
2 Announcements Use meaningful variable names –Instead of a, b, c, … use a name that conveys the meaning of the variable: numMoonsOfJupiter, dateOfToday, … Use proper indentation in programs Batch B1 will go for tutorial today –In CS103, after this class (0900 to 1000) Mid-term I is on 5 th September Lab tests in the week of 11 th September No labs next week
3
3 Methods in problem solving Often we think of solving a large problem in parts –Computing the number of digits in n! involves two major steps: computing k=n! and computing the number of digits in k –So I can have two “procedures”, one computes n! and the other computes the number of digits in it –Such procedures are called methods These are just like functions –A method may or may not produce a value –The type of the produced value determines the “return type” of a method
4
4 Return and parameter type Can be int, float, String, double, char, or void We have seen one method so far: main It does not produce any value: void public static void PrintMyName () { System.out.println(“Tintin”); } Every method must be a part of a class
5
5 PrintMyName class anExample { public static void main (String arg[]) { PrintMyName();// Method call } public static void PrintMyName () { // Method declaration System.out.println(“Tintin”); }
6
6 Method parameters Methods can have parameters also –Just like functions class anExample { public static void main (String arg[]) { String myName = “Tintin”; PrintMyName(myName); } public static void PrintMyName (String s) { System.out.println(s); }
7
7 Method parameters class moreExample { public static void main (String arg[]) { int n = 5; double x = 4.6; ComputeExponent(x, n); } public static void ComputeExponent (double base, int index) { double y = 1.0; System.out.println(“Base: ” + base + “, index: ” + index); // continued in next slide
8
8 Method parameters if (index < 0) { base = 1/base; index = -index; } while (index > 0) { y *= base; index--; } System.out.println(“Required answer: ” + y); }
9
9 Producing values and using them Methods can return values to the calling method –The calling method can use these values to compute further Suppose we want to check if 2 x + 2 2x+1 + 1 is a perfect square –Involves two major procedures: computing 2 x + 2 2x+1 + 1 and checking if it is a square
10
10 Example of method class exampleOfReturnValue { public static void main (String arg[]) { int x = 4, y = 1, z; // assume x is positive boolean isSquare; z = ComputePowerOfTwo(x); y += z; z = ComputePowerOfTwo(2*x+1); // Reuse y += z; isSquare = CheckSquare(y); if (isSquare) { System.out.println(“Expression is square for x = ” + x); }
11
11 Example of method public static int ComputePowerOfTwo (int index) { int y = 1;// This is a different y while (index > 0) { y *= 2; index--; } return y; }
12
12 Example of method public static boolean CheckSquare (int x) { int y;// This is another y for (y=0; y*y <= x; y++) { if (y*y == x) { return true; } return false; } }// end class
13
13 More examples class Trigonometry { public static void main (String arg[]) { double error, x = 0.785;// quarter pi error = cos(x)*cos(x) + sin(x)*sin(x) – 1; System.out.println(“Error: ” + error); } // continued in next slide
14
14 More examples public static double cos (double theta) { return (1 – theta*theta/2 + ComputeExponent(theta, 4)/factorial(4)); } public static double sin (double theta) { return (theta – ComputeExponent(theta, 3)/factorial(3) + ComputeExponent(theta, 5)/ factorial(5)); }
15
15 More examples public static double ComputeExponent (double a, int n) { double y = 1.0; if (n < 0) { a = 1/a; n = -n; } while (n > 0) { y *= a; n--; } return y; }
16
16 More examples public static int factorial (int n) { int y = 1; while (n > 1) { y *= n; n--; } return y; } } // end class Trigonometry
17
17 Checking character case class characterCase { public static void main (String arg[]) { char c = ‘A’; if (isUpperCase(c)) { System.out.println(c + “ is upper case.”); } else if (isLowerCase(c)) { System.out.println(c + “ is lower case.”); } else { System.out.println(c + “ is not in English alphabet.”); } }// continued in next slide
18
18 Checking character case public static boolean isUpperCase (char c) { return (isBetween(‘A’, c, ‘Z’)); } public static boolean isLowerCase (char c) { return (isBetween(‘a’, c, ‘z’)); } // continued in next slide
19
19 Checking character case public static boolean isBetween (char a, char b, char c) { return ((a <= b) && (b <= c)); } } // end class
20
20 Case conversion class convertCase { public static void main (String arg[]) { char c = ‘M’; System.out.println(“Original: ” + c); if (isBetween(‘A’, c, ‘Z’)) { System.out.println(“After conversion: ” + toLower(c)); } else if (isBetween(‘a’, c, ‘z’)) { System.out.println(“After conversion: ” + toUpper(c)); } else { System.out.println(“Cannot convert case!”); } } // continued in the next slide
21
21 Case conversion public static boolean isBetween (char a, char b, char c) { return ((a <= b) && (b <= c)); } public static char toLower (char c) { return (c – ‘A’ + ‘a’); } public static char toUpper (char c) { return (c – ‘a’ + ‘A’); } } // end class
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.