Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Arrays Exam 1 1. Java source and executable files have the following extensions? a. .java and .class b. .src and .class c. .javadoc and .exe d. .list and .exe Exam 1 2. Which of the following is a Java comment a. ; This is my first program b. # This is my first program c. /* This is my first program */ d. ‘ This is my first program e. none of the above Exam 1 3. We use the following operator to create a new object in Java a. malloc b. new c. string d. newObject Exam 1 4. Commands to compile and execute a java program are a. run and java b. execute and javac c. javac and java d. compile and run Exam 1 5. Identifiers may start with a. $ b. @ c. a number d. & Exam 1 6. It is necessary to declare an object before you can use it a. True b. False Exam 1 7. Which of the following is a valid identifier? a. Bank Account b. bank account c. bank$account d. bank-account Exam 1 8. A series of characters that appear in double quote is a char data type a. True b. False Exam 1 9. boolean isDone == false; is a valid assignment statement in Java a. True b. False Exam 1 10. Which of the following is a correct variable declaration statement? a. int x - float y; b. int x: float y; c. int x,y; d. Long int x; Exam 1 11. Boolean expressions are built by use of _relational______operators and _boolean_______operators 12. A data value that can not be changed is called __constant____________ 13. $Bad-Variable is __bad/invalid/not _ Java identifier. Exam 1 14. These two data types: __float__, and ___double___are used for real numbers 15. _An object____is an instance of a class Exam 1 16. double loanPeriod; if (loanPeriod < 0 || >1000 ); { System.out.println(“Loan period is invalid”); System.exit(1); } 1. loanPeriod is not initialized 2. loanPeriod or a variable name is missing 3. ; is not needed. Exam 1 17. double s; s = 1.0; switch (s) { case 1.0: System.out.println(“ March madness”); break; case 2.0: System.out.println(“ November rain”); break; case 3.0: System.out.println(“White Christmas”); break; default: System.out.println(“No Special name”); break; } 1. Switch doesn’t support double data type Exam 1 18. char aChar = ”NFL Championship”; 1. Char datatype can only contain 1 character 2. Char data type needs single quotes instead of double ones Exam 1 19. int i, j; double x,y; i=1; j=2; 0=1.0 ½ = 0, 3 x= Math.pow(3, (i/j)); y = x % 2; if (y ==0) y = 1.0 % 2 = 1.0 System.out.println(x +" is an even number "); else System.out.println(x +" is an odd number"); 1.0 is an odd number Exam 1 20. int count=1, sum=0; while (count < 9) { if (count % 2 != 0) { sum += count; } count++; } System.out.println(" Sum ="+ sum); Exam 1 count =1, sum =0, 1 %2 = 1 (!= 0), sum = 0+1=1 count =2, sum=1, 2 % 2 = 0 count =3, sum=1, 3 % 2 = 1 (!=0), sum = 1+3 = 4 count =4, sum=4, 4 % 2 = 0 count =5, sum=4, 5 % 2 = 1 (!=0), sum = 4+5 = 9 count =6, sum=9, 6 % 2 = 0 count =7, sum=7, 7 % 2 = 1 (!=0), sum = 9+7 = 16 count =8, sum=16, 8 % 2 = 0 count =9, exit Sum = 16 Exam 1 21. int sum =0; for (int i=1; i<=2; i++) { for (int j=1; j<=3; j++) { sum = sum + (i+j); } } System.out.println(" Sum ="+ sum); Exam 1 sum =0 i=1; j=1; sum=0+(1+1) j=2; sum =(1+1)+(1+2) j=3; sum = (1+1)+(1+2)+(1+3) = 2+3+4=9 i=2 j=1; sum=9+(2+1) j=2; sum=9+(2+1)+(2+2) j=3; sum=9+(2+1)+(2+2)+(2+3)= 9+(3+4+5)=9+12=21 Sum =21 Lab 4 Project Discussion (section 01+02) Loan class: public class Loan{ // data members a. // constructor(s) // Methods() } Project Discussion (section 01) Loan class: public class Loan{ // data members private int loanPeriod; private double loanAmount; private double monthlyInterestRate; private double monthlyAmortization; // optional a. } Project Discussion (section 01) Loan class: public class Loan{ //Constructor(s) public Loan(double loanAmt, double interest, int months ) { // this is a stub loanAmount = loanAmt; // should initialize monthlyInterestRate and //loanPeriod the same way } a. } Project Discussion (section 01) Loan class: public class Loan{ // Methods public void setLoanAmount(double loanAmt) { // this is stub } public double getLoanAmount() { return loanAmount; } a. } Project Discussion (section 01) Loan class: public class Loan{ // Methods public void setMonthlyInterestRate(double interest) { // this is stub } a. public double getMonthlyInterestRate() { return monthlyInterestRate; } } Project Discussion (section 01) Loan class: public class Loan{ // Methods public void set(int months) { // this is stub } a. public double getLoanPeriod() { return loanPeriod; } } Project Discussion (section 01) Loan class: public class Loan{ // Methods public double computeAmortization() { // this is a stub // The formula should be put here // Make sure to change the names to the data // member name // Don’t forget return ……; } a. } Project 2 (Section 01) public class Amortization{ // data member; private Loan loan; // constructor public Amortization () { } } Project 2 (Section 01) public class Amortization{ // Methods: public void start() { // This is a stub } public void describeProgram() { // This is a stub } } Project 2 (Section 01) public class Amortization{ // Methods: public void getInput () { // This is a stub // You should use Loan class here } public void displayOutput() { // This is a stub // You should use Loan class here } } Lesson plan Arrays Section 02 public class Loan { // data members private double monthlyInterestRate; private double loanAmount; private int numberOfMonths; } Section 02 public class Loan { // Constructor(s) public Loan(double borrowedAmt, double interest, int months) { // this is a stub loanAmount= borrowedAmt; // similarly, you can initialize monthlyInterestRate // and numberOfMonths accordingly } } Project 2 (Section 02) public class Amortization{ // data member private Loan loan; } Project 2 (Section 02) public class Amortization{ // constructor public Amortization() { // this is a stub loan = new Loan(1000,0.1,12); } } Project 2 (Section 02) public class Amortization{ // methods public void start() { // this is a stub } private/public void describeProgram() { // this is a stub // Cut and paste System.out.print describe what // this program is doing from project 1 to here } } Project 2 (Section 02) Import javax.swing.*; public class Amortization{ // methods public/private void getInput() { // this is a stub // Cut and paste the while loop to get inputs users in part e (project 1) here // Use Loan Class loan.setBorrowedMoney( …..); } } Project 2 (Section 02) Import javax.swing.*; public class Amortization{ // methods public/private void printOutput() { // This is a stub // print out loan. // getAmortizationPayment() } } Section 02 public class Loan { //Methods public void setBorrowedMoney(double principle) { // this is a stub } public double getBorrowedMoney() { return loanAmount; } } Section 02 public class Loan { //Methods public void setMonthlyInterestRate(double interest) { // this is a stub } public double getMonthlyInterestRate() { return monthlyInterestRate; } } Section 02 public class Loan { //Methods public void setNumberOfMonths(int months) { // this is a stub } public double getNumberOfMonths() { return months; } } Section 02 public class Loan { //Methods public double getAmortizationPayment() { // this is a stub // You should put the formula in project 1 here // Don’t forget to change the variable names // and don’t forget to return the value; return ……; } } Arrays We often need to group together related items of data. Cards in a pack. Ships in a port. Java provides two distinct facilities: Traditional array. Flexible-size collection classes (java.util). Problems That Arrays Solve …… minValue = firstNumber; if (secondNumber < minValue) minValue = secondNumber; if (thirdNumber < minValue) minValue = thirdNumber; if (fourthNumber < minValue) minValue = fourthNumber; if (fifthNumber < minValue) minValue = fifNumber; What is this code doing? …… Finding minimum value from a set of 5 values Arrays for Numerical data type (primitive data types) int[] number = new int [5]; int minValue; String inputStr; Array for (int i=0; i<5; i++) { declaration & inputStr = JOptionPane.showInputDialog(null,"Please allocationenter the value for element "+i); memory number[i] = Integer.parseInt(inputStr); } minValue = number[0]; for (int i=1; i<5; i++) { if (minValue > number[i]) minValue = number[i]; } System.out.println(" minValue ="+ minValue); Arrays for Numerical data type (primitive data types) int[] number = new int [5]; int minValue; Getting values for all elements in the array String inputStr; for (int i=0; i<5; i++) { inputStr = JOptionPane.showInputDialog(null,"Please enter the value for element "+i); number[i] = Integer.parseInt(inputStr); } minValue = number[0]; for (int i=1; i<5; i++) { if (minValue > number[i]) minValue = number[i]; } System.out.println(" minValue ="+ minValue); Arrays for Numerical data type (primitive data types) int[] number = new int [5]; int minValue; String inputStr; for (int i=0; i<5; i++) { inputStr = JOptionPane.showInputDialog(null,"Please enter the value for element "+i); number[i] = Integer.parseInt(inputStr); Access each } element of an array minValue = number[0]; for (int i=1; i<5; i++) { if (minValue > number[i]) minValue = number[i]; } System.out.println(" minValue ="+ minValue); Arrays Array is a collection of data values of the same data type. Example: int[ ] number; // This is an array of integers double[] gpa; // This an array of double Array Declaration Format: <data type>[] <array_name>; OR <data type> <array_name>[]; data type: double, int, float, string Example: double[] gpa; Or double gpa[]; Arrays The amount of memory allocated to store an array depends on the size and type of values in the array Size: number of elements in the array Type of values: data type of each element in the array An individual value in an array is called array element Example: int[ ] number = new int[5]; data type: integer (4 bytes) size: 5 memory: 20 bytes Array is a reference data type. Array is NOT an object Arrays Example: int[ ] number = new int[5]; number number[0] 6 0 1 2 3 4 Arrays Elements of an array are indexed from zero to size -1 Size: the number of elements in an array length: a public constant represents the size of an array. Example: sum =0; for (int i=0; i<number.length; i++) sum += number[i]; Fixed –size array declaration Size of an array is pre-determined. Example: int[] number= new int[5]; Problems: • What if we have more than predetermined size of an array? • Underutilization of space. Variable-size array declaration In Java, we can declare an array of different size every time we run a program Example: int size; int[] number; inputStr = JOptionPane.showInputDialog(null,"Please enter the number of elements "); size = Integer.parseInt(inputStr); number = new int[size]; Practice (in class and/or at home) Modify the class ComputeMin (week 4) to print out the minimum of an array with n integers. Arrays for Objects // An array for the names of the distinct private Loan[] loanArray = new Loan[5]; • Note: No Loan objects are created. Only a container for Loan. • Each location is initialized to null. loanArray NULL Arrays of Objects private Loan[] loanArray = new Loan[5]; for (i=0; i<5; i++) { loanArray[i] = new Loan(); } loanArray Indexing an Array int[] number = new int [5]; number[0] =2; number[1]=3; number[2]=4; number[3]= 6; number[4]=-1; Initializing Arrays ... // Differentially number the assignments. private int[] number = {1, 2, 1, 5, 1,}; private final int totalNumber = number.length; • No new required. • Terminating semicolon. • Optional final comma. Further Initializer Examples String[] suitNames = { "Spades", "Hearts", "Diamonds", "Clubs" }; Point[] new new new new }; vertices = { Point(0,0), Point(0,1), Point(1,1), Point(1,0), YearlyRainfall y2k = new YearlyRainfall( new int[]{10,10,8,8,6,4,4,0,4,4,7,10,}); Iterating over an Array in Reverse int size = 5; minValue = number[size-1]; for (int i=size-2; i>=0; i--) { if (minValue > number[i]) minValue = number[i]; } Copying Arrays int size=5; int number[] = new int[size]; // Assuming that we get values for number array here // Declare another array called number1 int number1[] = new int[size]; // Copy the values of array number to array number1 System.arraycopy(number,0,number1,0,size); Passing Array to Methods When an array is passed to a method, only its reference is passed. A copy of the array is not created in the method. That means: we pass the identifier for that array which in fact is a reference to a start address of the array. Passing Array to Methods Assuming changeArrayValue is one method of a class named ArrayClass public void changeArrayValue(int[] arrayChanged) { for (int i=0; i< arrayChanged.length-1; i++) arrayChanged[i] += 1; } We call this method as: Passing Array to Methods ArrayClass anObj = new ArrayClass(); int number[5] = new int[5]; for(int i=0; i<number.length; i++) number[0] = i; anObj.changeArrayValue(number); Passing Array to Methods for(int i=0; i<number.length; i++) number[0] = i; number 0 1 2 3 4 anObj.changeArrayValue(number); number 1 2 3 4 5 Searching an Unsorted Array We often need to search an array for a particular item of data. The data is often unsorted. The item might or might not be present. Care must be taken not to search beyond the end of the array. We need to decide how to return a found item. Search with Multiple Returns public int indexOf(int[] numbers,int value){ final int notPresent = -1; for(int index = 0; index < numbers.length; index++){ if(numbers[index] == value){ return index; } } // We did not find it. return notPresent; } The Arrays Class Defined in the java.util package. Contains static methods for manipulating arrays: binarySearch: search for a value. equals: compare the contents of two arrays. fill: fill an array with a particular value. sort: sort the contents of an array. Multi-Dimensional Arrays Arrays of multiple dimensions are possible. 2D grid, for a board game such as chess. 3D cube structure, etc. Multi-dimensional arrays are regarded as being arrays of arrays. Non-rectangular structures are possible. 2D Array Construction final int numRows = 10, numCols = 5; double[][] matrix = new double[numRows][numCols]; char[][] hiddenWord = { { 'd', 'g', 'i', 'b' }, { 'e', 'i', 'u', 'm' }, { 't', 'a', 's', 'a' }, }; Review Arrays make it possible to group related items in a single object. An array's length is fixed on construction. Arrays may have multiple dimensions.