Problems with simple variables

Similar documents
Problems with simple variables

Arrays. Eng. Mohammed Abdualal

Array. Lecture 12. Based on Slides of Dr. Norazah Yusof

Tasks for fmri-setting (Tasks of first and second pilot study at the end)

COE 212 Engineering Programming. Welcome to the Final Exam Monday May 18, 2015

Chapter 6 Arrays. Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved.

COE 212 Engineering Programming. Welcome to the Final Exam Tuesday December 15, 2015

Lecture 13: Two- Dimensional Arrays

LECTURE 17. Array Searching and Sorting

Variable initialization and assignment

CS1150 Principles of Computer Science Arrays

Introducing arrays. Week 4: arrays and strings. Creating arrays. Declaring arrays. Initialising arrays. Declaring and creating in one step

Arrays. Introduction to OOP with Java. Lecture 06: Introduction to OOP with Java - AKF Sep AbuKhleiF - 1

Chapter 8 Search and Sort

Tutorial 11. Exercise 1: CSC111 Computer Programming I. A. Write a code snippet to define the following arrays:

Full file at

Assignment2013 Please use this document only for verifying if your programs are right. Do not blindly copy paste and waste your time.

Chapter 6 Single-Dimensional Arrays. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved.

Question: Total Points: Score:

Lesson 9: Introduction To Arrays (Updated for Java 1.5 Modifications by Mr. Dave Clausen)

Quadratic: the time that it takes to sort an array is proportional to the. square of the number of elements.

More non-primitive types Lesson 06

Pace University. Fundamental Concepts of CS121 1

It is a constructor and is called using the new statement, for example, MyStuff m = new MyStuff();

Instructor: Eng.Omar Al-Nahal

Esc101 Mid Semester Exam - II

CS Week 5. Jim Williams, PhD

Computer Programming, I. Laboratory Manual. Final Exam Solution

CIS Introduction to Computer Programming Spring Exam 1

Lecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8

CS1150 Principles of Computer Science Arrays

Arrays and Strings. Arrays - homogeneous indexed collections Selection sort as array example. String class, revisited

Choose 3 of the 1 st 4 questions (#'s 1 through 4) to complete. Each question is worth 12 points.

Principles of Programming. Chapter 6: Arrays

Introduction to Java & Fundamental Data Types

SPRING 13 CS 0007 FINAL EXAM V2 (Roberts) Your Name: A pt each. B pt each. C pt each. D or 2 pts each

Spring 2010 Java Programming

Important Java terminology

Top-down programming design

Introduction to Software Development (ISD) Week 3

Chapter 4: Control Structures I

C/C++ Programming Lecture 18 Name:

Computer programming Code exercises [1D Array]

What is an algorithm?

Strings, Strings and characters, String class methods. JAVA Standard Edition

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #43. Multidimensional Arrays

Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade;

To become familiar with array manipulation, searching, and sorting.

Arrays. Here is the generic syntax for an array declaration: type[] <var_name>; Here's an example: int[] numbers;

LISTS WITH PYTHON. José M. Garrido Department of Computer Science. May College of Computing and Software Engineering Kennesaw State University

Announcements. PS 4 is ready, due next Thursday, 9:00pm. Midterm Exam 1: 10/14 (Fri), 9:00am-10:53am

Key Points. COSC 123 Computer Creativity. Java Decisions and Loops. Making Decisions Performing Comparisons. Making Decisions

Arrays and Strings. Arash Rafiey. September 12, 2017

H212 Introduction to Software Systems Honors

CIS 1068 Program Design and Abstraction Spring2016 Midterm Exam 1. Name SOLUTION

Give one example where you might wish to use a three dimensional array

Objectives of This Chapter

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette

Chapter 9 Introduction to Arrays. Fundamentals of Java

Last Class. While loops Infinite loops Loop counters Iterations

Getting started with Java

Object Oriented Programming. Java-Lecture 6 - Arrays

L o o p s. for(initializing expression; control expression; step expression) { one or more statements }

COSC 123 Computer Creativity. Java Decisions and Loops. Dr. Ramon Lawrence University of British Columbia Okanagan

C Language Part 2 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee

JAVA OPERATORS GENERAL

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

Arrays and ArrayLists. David Greenstein Monta Vista High School

Arrays. Inf1-OP. Arrays. Many Variables of the Same Type. Arrays 1. Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein

Recursion. Java recursive programming: Writing methods that call themselves to solve problems recursively.

SAMPLE QUESTIONS FOR DIPLOMA IN INFORMATION TECHNOLOGY; YEAR 1

COE 212 Engineering Programming. Welcome to the Final Exam Thursday December 15, 2016

Computer Applications Answer Key Class IX December 2017

Lab Assignment Three

Programming: Java. Chapter Objectives. Control Structures. Chapter 4: Control Structures I. Program Design Including Data Structures

Inf1-OP. Arrays 1. Volker Seeker, adapting earlier version by Perdita Stevens and Ewan Klein. February 26, School of Informatics

Arrays. COMS W1007 Introduction to Computer Science. Christopher Conway 10 June 2003

Searching and Sorting (Savitch, Chapter 7.4)

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02

STUDENT LESSON A12 Iterations

Chapter 5: Arrays. Chapter 5. Arrays. Java Programming FROM THE BEGINNING. Copyright 2000 W. W. Norton & Company. All rights reserved.

MTH 307/417/515 Final Exam Solutions

Columns A[0] A[0][0] = 20 A[0][1] = 30

Recursion. EECS2030: Advanced Object Oriented Programming Fall 2017 CHEN-WEI WANG

Object-Oriented Programming. Topic 2: Fundamental Programming Structures in Java

Array. Prepared By - Rifat Shahriyar

COMP-202: Foundations of Programming. Lecture 8: for Loops, Nested Loops and Arrays Jackie Cheung, Winter 2016

Inf1-OP. Arrays 1. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. January 30, School of Informatics

Opening Problem EXAMPLE. 1. Read one hundred numbers, 2. compute their average, and 3. find out how many numbers are above the average.

Recursion: Factorial (1) Recursion. Recursion: Principle. Recursion: Factorial (2) Recall the formal definition of calculating the n factorial:

CSE 20. SAMPLE FINAL Version A Time: 180 minutes. The following precedence table is provided for your use:

Unit 10: Sorting/Searching/Recursion

Outline. Parts 1 to 3 introduce and sketch out the ideas of OOP. Part 5 deals with these ideas in closer detail.

CSC 307 DATA STRUCTURES AND ALGORITHM ANALYSIS IN C++ SPRING 2011

High Institute of Computer Science & Information Technology Term : 1 st. El-Shorouk Academy Acad. Year : 2013 / Year : 2 nd

- Thus there is a String class (a large class)

PROGRAMMING FUNDAMENTALS

COMP-202B - Introduction to Computing I (Winter 2011) - All Sections Example Questions for In-Class Quiz

3. Convert 2E from hexadecimal to decimal. 4. Convert from binary to hexadecimal

Transcription:

Problems with simple variables Hard to give up values high number of variables. Complex to sort a high number of variables by value. Impossible to use loops. Example problem: Read one hundred numbers, compute their average, and find out how many numbers are above the average. We can use an array instead of a variables. 1

Array definition An array ) מערך ( is a collection of variables of the same data type, and the collection is assigned a name. Array can be declared for any type.. )עצם ) object In Java an array is an Each variable within the collection is called an array element. An array element is identified by combining the array name and a unique index ) )אינדקס. An index is an integer from zero to 1 minus the maximum number of elements in the array. An array of size N is indexed from 0 to N 1. Array examples: list of students marks series of numbers entered by user vectors matrices 2

Array indexing In Java,array indexes always begin at zero. The array mylist has 10 values, indexed from 0 to 9. The i-th element of array mylist is specified by mylist[i-1]. double[] mylist = new double[10]; mylist reference mylist[0] 5.6 mylist[1] 4.5 Array reference variable mylist[2] mylist[3] 3.3 13.2 Array element at index 5 mylist[4] mylist[5] mylist[6] 4 34.33 34 Element value mylist[7] 45.45 mylist[8] mylist[9] 99.993 11123 3

Declaring Array Variables In Java arrays are.(עצם) objects To create an array, the reference declared. to the array must be (הפניה) The array can be created using the new operator, which Examples: allocates memory space to store values. double [ ] mylist = new double [ 10 ]; The variable mylist is declared to be an array of 10 real numbers whose type is written as double[ ]. int [ ] studgrades= new int [ 85 ]; The variable studgrades is declared to be an array of 85 integer numbers whose type is written as int[ ]. Once an array is declared to be a certain size, the number of it can hold cannot be changed. values 4

Default values and initialization When an array is created, its elements are assigned the default value of : 0 for the numeric primitive data types '\u0000' for char data types False for boolean data types. Declaring, creating, initializing in one step: double [ ] mylist1 = 1.9, 2.9, 3.4, 3.5 }; Don t use new operator if you plan to initialize the array. 5

Accessing array elements To access a value in an array, we use the name of array followed by the index in square brackets. int [ ] arr = 69,61,73,19,37 }; arr[ 2 ] =95; // initial value was 73 Array indexes are integers and we can use integer expression to specify the index. int a = 7, b = 2,c = -3; arr[ a/b ] = 71; // initial value was 19 System.out.println( arr[a + c]); // output value is 37 NOTE :when accessing array elements, be careful to ensure that the index stays within the array bounds. 6

The length of an array In order to get the number of elements in an array, you can use the length attribute of an array. The length attribute of an array returns the size of the array ( number of elements). It can be used by writing arrayname.length For example : int a = mylist.length; // a=10 int b = studgrade.length; // b=85 7

Array example 1 The program reads N integers into an array and then reverses them and prints. N value reads during the program execution. 5 15 103-2 71 Before revers 71-2 103 15 5 After revers 8

Example 1 - solution System.out.print( "Enter the number of array elements : ); int [ ] arr = new int [reader.nextint()]; for (int i=0; i < arr.length; i++) System.out.print("Enter number "+ (i+1) + " integer : ); arr[i]=reader.nextint(); } for (int i = 0; i < arr.length/2; i++) int temp = arr[i]; arr[i] = arr[arr.length i - 1]; arr[arr.length-i-1] = temp; } System.out.println(" The numbers in revers order : "); for (int i=0; i<arr.length; i++) System.out.println(arr[i]); Note :number of array elements reads during the program running It is often convenient to use for loops when handling arrays because the number of its elements is constant. 9

Array example 2 This program section reads 10 integers into an array, finds the max and min values of array elements and prints them. static final int N=10; public static void main (String[] args) int [] arr = new int[n]; for (int i=0; i< N; i++) arr[i]=reader.nextint(); int max=arr[0],min=arr[0]; for (int i = 1; i < N; i++) max=(arr[i]>max)? arr[i] : max; min =(arr[i]<min)? arr[i] : min; } System.out.println(" The max element is : "+max); System.out.println(" The min element is : "+min); } //void main If a variable is marked as final then the value of that variable cannot be changed i.e final keyword when used with a variable makes it a constant. If (arr[i])>max max = arr[i]; else max = max; 10

Sorting Sorting is the process of arranging a list of items in well defined order. Sorting values of array elements is one of the basic array manipulations. Many sorting algorithms have been developed over the years. In this course we examine two sorting algorithms: selection sort בחירה) (מיון and insertion sort.(מיון הכנסה) 11

Selection sort algorithm The selection sort algorithm selects for each position in the list the value, that should go in this position, and puts it there. 23 15 6 7 30 Scan starting with 23. 6 is smallest. Exchange 6 and 23 6 15 23 7 30 Scan starting with 15. 7 is smallest. Exchange 7 and 15 6 7 23 15 30 Scan starting with 23. 15 is smallest. Exchange 15 and 23 6 7 15 23 30 Scan starting with 23. 23 is smallest. Exchange 23 and 23 6 7 15 23 30 12

Selection sort implementation This program section uses a selection sort to arrange a list of integer ). סדר עלה ( order values into ascending int [ ] arr = 23,15,6,7,20}; for(int i=0; i<arr.length; i++) int min_pos=i; for(int j=i+1; j<arr.length; j++) if ( arr[j] < arr[min_pos] ) min_pos=j; int temp = arr[i]; // help variable arr[i]=arr[min_pos]; arr[min_pos]=temp; } } The outer loop controls the position where the next smallest value will be stored The inner loop finds the smallest value in the rest of the list. When the smallest value is determined, it is exchanged with the value stored at the index. ) סדר יורד ( order The algorithm can easily be changed to put values in descending by finding the largest value each time. 13

Insertion sort algorithm The insertion sort algorithm works by inserting each value into a previously sorted subset of the list. 3 9 6 1 2 3 is sorted. Shift nothing. Insert 9. 3 9 6 1 2 3 and 9 are sorted. Shift 9 to the right. Insert 6. 3 6 9 1 2 3,6 and 9 are sorted. Shift 9,6 and 3 to the right. Insert 1. 1 3 6 9 2 1,3,6 and 9 are sorted. Shift 9,6 and 3 to the right. Insert 2. 1 2 3 6 9 All values are sorted 14

Insertion sort implementation int [ ] arr = 3,9,6,1,2 }; for (int i = 1; i < arr.length; i++) int j = i; int a = arr[i]; while ( j > 0 && arr[ j-1] > a) arr[ j ] = arr[ j-1]; j--; } // block while arr[ j ] = a; } // block for The outer loop controls the index in the array of the next value to be inserted. The inner loop compares the current insert values with values stored with lower indexes. If the current insert value is less then the value at j position, that value is shifted to the right. 15

Java searching Searching (חיפוס) is an operation which finds the location of a given element in an array. The search is said to be successful or unsuccessful depending on whether the element that is to be searched is found or not. Definition: A key is a value that you are looking for in an array. If found, the index of the first location of the key will be returned. If not found, a value of -1 will be returned. In this course we examine two searching algorithms: (חיפוס סדרתי) - linear search.(חיפוס בינארי) - binary search 16

Linear search The simplest type of search is the liner (sequential) search. In the liner search, each element of the array is compared to the key, in the order it appears in the array, until the desired element is found. System.out.println( enter search key ); int num = reader.nextint(); // input key value boolean flag=false; for( int i=0; i< arr.length; i++) if (arr [i] == num) flag=true; break; } // if } //for if (flag ) System.out.println(num + " is at position "+i); else System.out.println(num + " not found "); This searching type can be applied to a sorted or an unsorted list. Searching in case of unsorted list starts from the 0 th element and continues until the element is found or the end of list is reached. 17

Linear search in sorted array int i; // loop counter System.out.println( enter search key ); int num = reader.nextint(); // input key value for(i=0; i< arr.length && num > = arr[i]; i++) if (arr [i] == num) System.out.println(num + " is at position "+i); break; } } //for if (i==0 i==arr.length ) System.out.println(num + " not found "); In case of sorted list we breaks the loop if the key value founded. 18

Binary search example 1 0 1 2 3 4 5 6 7 8 9 Index Find 6 in -1, 5, 6, 18, 19, 25, 46, 78, 102, 114 }. low index = 0, high index = 9. Step 1 (middle element is 19 > 6): middle index = ( 0 + 9 ) / 2 = 4 low index = 0, high index = 4-1=3 Step 2 (middle element is 5 < 6): middle index = (0 + 3 ) / 2 = 1 low index =0 +1, high index = 3 Step 3 (middle element is 6 == 6): middle index= (1 + 3 ) / 2 = 2 searched element is found! 19

Binary search example 2 index 0 1 2 3 4 5 6 7 8 9 Find 103 in -1, 5, 6, 18, 19, 25, 46, 78, 102, 114}. low index = 0, high index = 9. Step 1 (middle element is 19 <103): middle index = ( 0 + 9 ) / 2 = 4 low index =4+1, high index = 9 Step 2 (middle element is 78 < 103): middle index = (5 + 9 ) / 2 = 7 low index =7 +1, high index = 9 Step 3 (middle element is 102 <103): middle index= (8 + 9 ) / 2 = 8 low index =8 +1, high index = 9 Step 4 (middle element is 114 >103): middle index= (9 + 9 ) / 2 = 9 low index =9, high index = 9 1 = 8 low index > high index : searched value is absent! 20

Binary search algorithm 1. Get the middle element; 2. If the middle element equals to the searched value, the algorithm stops; 3. Otherwise, two cases are possible: searched value is less, than the middle element. In this case, go to the step 1 for the part of the array, before middle element. searched value is greater, than the middle element. In this case, go to the step 1 for the part of the array, after middle element. Now we should define, when iterations should stop. First case is when searched element is found. Second one is when sub-array has no elements. In this case, we can conclude, that searched value isn't present in the array. 21

Binary search implementation int [ ] arr = -1,5,6,18,19,25,46,78,102,114}; int l=0,h=arr.length; // low and high array indexes System.out.pirnt ("enter search key => "); int num = reader.nextint(); // input key value while (l < h) int mid = (l + h) / 2; // Compute mid point. if (num < arr[mid]) h=mid; else if (num > arr[mid]) l=mid+1; else System.out.println( "found in "+mid+" position ); break; } } //while if ( l>=h ) System.out.println(num + " not found ); 22

( מחרוזות ) Strings Java string is a sequence of characters. They are objects of type String. Once a String object is created it cannot be changed. Basic string operations: String st = Hello,word ; String c1 = color red, c2, c3= color green ; String bl = ; // one character string String day = reader.next(); System.out.println) The day is : +day(; String[ ] days = Sunday, Monday, Thursday }; Note: double quotations 0 1 2 3 4 5 6 7 8 c o l o r r e d Like array, every character in the string has its index, but we can t access it directly. index 23

String methods 1 1.string.length(); returns the length of this string. String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); System.out.println( "String Length is : " + len ); 2.Concatenating Strings ( + ) returns a new string that is string1 with string2 added to it at the end. String string1 = "saw I was "; System.out.println( "Dot " + string1 + "Tod ); 3.string.charAt(index); returns the character located at the String's specified index. String st = Welcome to Java"; char result = st.charat(11); System.out.println(result); This would produce following result : J This would produce String Length is : 17 This would produce Dot saw I was Tod 24

String methods 2 4. string1.compareto(sryring2) - Compares two strings lexicographically: - The result is zero if the strings are equal. - The result is a negative integer if string1 lexicographically precedes the string2 string. - The result is a positive integer if string1 lexicographically follows the string2 string. We cannot just compare strings contents by simple if statement : String st1 = Hello ; String st2 = Hello ; if(st1==st2) } st1 st2 H e l l o H e l l o because st1 and st2 are memory addresses of st1 and st2. 25

compareto method- cont. Characters in Java are based on Unicode character set, which defines an ordering of all possible characters that can be used. The compareto method can be used to determine the relative (lexicographic) order of strings. For example: String st1 = AARBNML, st2 = AARZK ; 0 1 2 3 4 5 6 st1 A A R B N M L st2 0 1 2 3 4 A A R Z K int x=st1.compareto(st2); // x = - 24: 0066-0090 26

compareto method- examples. For example: String str1 = "Strings are immutable"; String str2 = "Strings are immutable"; String str3 = "Integers are not immutable"; int result = str1.compareto( str2 ); System.out.println(result); result = str2.compareto( str3 ); System.out.println(result); result = str3.compareto( str1 ); System.out.println(result); This produces following result: 0 10-10 27

String methods 2 5. string.substring(index) returns a new string that is a substring of the string. The substring begins with the character at the specified index and extends to the end of this string. String st1 = abcdefg ; String st2 = st1.substring(3); // st2 = dfgh String st3 = st1.substring(6); //st3 = g 6. string1.indexof(string2) returns the index within string1 of the first occurrence of the substring2. If it does not occur as a substring, -1 is returned. String st1 = abcdefg, st2 = cd,st3 = abc ; int p1 = st1.indexof(st2); // p1= 2 int p2 = st1.indexof(st3); // p2 = 0 int p3 = st1.indexof( xy ); // p3 = -1 28

String methods example 1 int words = 0; // words counter int i=0; // loop counter String snc= "Welcome to Java course."; do if( snc.charat(i) == ' ') i++; This program section reads the sentences,calculates and prints it word s numbers. words++; } while( i< snc.length( ) ); This would produce 4 System.out.println( "The number of words is: "+ (++words));? 29

String methods example 2 This program section reads the string and tests it. If the string is palindrome, the program prints YES, otherwise NO. public static void main(string[] args) boolean flag=true; // help variable String str; // input string System.out.println( Enter the string ); str=reader.next(); int size = str.length(); for(int i=0; i<size/2&&flag; i++) if(str.charat(i)!= str.charat( size 1 i) flag = false; if(flag) System.out.println( YES ); else System.out.println( NO ); } size=5 0 1 2 3 4 a b c b a 30

Two-dimensional arrays Java, as with most languages, supports multi-dimensional arrays - 1-dimensional, 2-dimensional, 3-dimensional,... In practice most arrays are one-dimensional, and two-dimensional. 2-dimensional arrays are usually represented with a row-column "spreadsheet" style. Two-dimensional arrays are usually visualized as a matrix, with rows and columns. Assume we have an array, arr, with two rows and four columns. int [][] arr = new int[2][4]; // Two rows and four columns Row index 0 1 1 3 Column index 0 34 15 105-43 1 345-73 88 66 31

Declaring, Creating, and Initializing You can also use an array initializer to declare, create and initialize a two-dimensional array. For example : int [ ][ ] array = 1, 2, 3}, 4, 5, 6}, 7, 8, 9}, 10, 11, 12} }; Same as int [ ][ ] array = new int[4][3]; array[0][0] = 1; array[0][1] = 2; array[0][2] = 3; array[1][0] = 4; array[1][1] = 5; array[1][2] = 6; array[2][0] = 7; array[2][1] = 8; array[2][2] = 9; array[3][0] = 10; array[3][1] = 11; array[3][2] = 12; static final int ROW = 4; static final int COL = 3; int array = new int [ ROW ][ COL ]; for (int i = 0; i < ROWS; i++) for (int j = 0; j < COLS; j++) arr[i][ j ] = reader.nextint(); Two-dimensional arrays are almost always processed with nested for loops. The two index variables are often called i and j. 32

Lengths of Two-dimensional arrays int[ ][ ] x = new int[3][4]; x x[0] x[0][0] x[0][1] x[0][2] x[0][3] x[0].length is 4 x[1] x[1][0] x[1][1] x[1][2] x[1][3] x[1].length is 4 x[2] x.length is 3 x[2][0] x[2][1] x[2][2] x[2][3] x[2].length is 4 for (int i = 0; i < x.length; i++) for (int j = 0; j < x[ i ].length; j++) System.out.print ( +x[ i ][ j ]); System.out.println ( ); } You can get the size of each dimension with the length attribute. This is the most general style. 33

Lengths of Two-dimensional arrays,cont. public static void main(string[ ] args) String[ ][ ] strarray = "this","is","the","first","row"}, "this","is","the","second","row"}, "this","is","the","third","row"} }; for(int i=0; i<strarray.length; i++) for(int j=0; j<strarray[ i ].length; j++) System.out.print(strarray[ i ][ j ]+" "); System.out.println( ); } } This would produce : this is the first row this is the second row this is the third row 34

Two-dimensional array example -1 This program section checks if the diagonal s elements of square matrix are equal mat.length = 4 Minor diagonal 3 0 9 3-1 7 7 2 10 6 6-15 4 8 5 4 Main diagonal i mat[i][i] mat[i][4-i-1] 0 3 3 1 7 7 2 6 6 3 4 4 int [][] mat = 3,0,9,3},-1,7,7,2},10,6,6,-15},4,8,5,4}}; boolean flag = true; // help variable int i=0; // loop counter while ( i<mat.length && flag) if ( mat[ i ][ i ]!=mat[ i ][mat.length- i - 1] ) flag = false; i++; } // while if (flag) System.out.println( Yes"); else System.out.println( No"); 35

Two-dimensional array example -2 This program section transposes the integer square matrix. public static void main(string[ ] args) System.out.print ("Enter array size: "); int size = reader.nextint(); // size=3 int[ ][ ] a = new int[size][size]; for (int r = 0; r < a.length; r++) for (int c = 0; c < a[0].length; c++) a[r][c] = reader.nextint(); int startc = 1; for (int r = 0; r < a.length; r++) for (int c = startc; c < a[0].length; c++) int temp = a[r][c]; a[r][c] = a[c][r]; a[c][r] = temp; } // inner loop startc++; } // outer loop } // main Original array: 6 7 8 4 3 1 2 9 5 Transposed array: 6 4 2 7 3 9 8 1 5 36

Matrix multiplication Typical applications in science and engineering involve implementing various mathematical operations with matrix,for example matrix multiplication: C i, j Note: the number of columns in the A matrix m equals the number of rows in the matrix B. Square matrix 37

Matrix multiplication cont. static final int N = 3; // square matrix double[ ][ ] c = new double[n][n]; for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) for (int k = 0; k < N; k++) c[i][j] + = a[i][k] * b[k][j]; } // for j } // for i 38

Puzzle 39