יסודות מדעי המחשב – תרגול 3

Slides:



Advertisements
Similar presentations
Continuation of chapter 6…. Nested while loop A while loop used within another while loop is called nested while loop. Q. An illustration to generate.
Advertisements

Chapter 2 Section 2. Lemma Let i=1 and j=2, then.
Multidimensional arrays Many problems require information be organized as a two- dimensional or multidimensional list Examples –Matrices –Graphical animation.
Nested For Loops It is also possible to place a for loop inside another for loop. int rows, columns; for (rows=1; rows
String StringBuffer. class StringExample { public static void main (String[] args) { String str1 = "Seize the day"; String str2 = new String(); String.
CS1101X: Programming Methodology Recitation 9 Recursion II.
03/16/ What is an Array?... An array is an object that stores list of items. Each slot of an array holds an individual element. Characteristics.
By Nicholas Policelli An Introduction to Java. Basic Program Structure public class ClassName { public static void main(String[] args) { program statements.
Lecture 10 Recursion. public class recursionDemo { public static void main(String[] args) { System.out.println("TriCount for n = 5 is... " + triCount(5));
Types in Java 8 Primitive Types –byte, short, int, long –float, double –boolean –Char Also some Object types: e.g. “String” But only single items. What.
ECE 454 Computer Systems Programming Memory performance (Part II: Optimizing for caches) Ding Yuan ECE Dept., University of Toronto
PARALLELIZATION OF MULTIPLE BACKSOLVES James Stanley April 25, 2002 Project #2.
Arrays. Background  Programmer often need the ability to represent a group of values as a list List may be one-dimensional or multidimensional  Java.
Arrays. Background  Programmer often need the ability to represent a group of values as a list List may be one-dimensional or multidimensional  Java.
FOR LOOP WALK THROUGH public class NestedFor { public static void main(String [] args) { for (int i = 1; i
2D Arrays A multi dimensional array is one that can hold all the values above. You set them up like this: int[ ][ ] gradeTable = new int[7][5]; With the.
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 7.
Get Longest Run Index (FR) public int getLongestRunIndex(int []values) { int maxRunStart = -1, maxRunLength = 1; int runStart = 0, runLength = 1; for(int.
 CSC111 Quick Revision. Problem Write a java code that read a string, then show a list of options to the user to select from them, where:  L to print.
 Introducing Arrays  Declaring Array Variables, Creating Arrays, and Initializing Arrays  Copying Arrays  Multidimensional Arrays  Search and Sorting.
Array and String.
Arrays 1 ● Java programming language provides a data structure called the array (מערך ), which can store a fixed-size sequential collection of elements.
4-3 Matrix Multiplication Objective: To multiply a matrix by a scalar multiple.
Methods. Creating your own methods Java allows you to create custom methods inside its main body. public class Test { // insert your own methods right.
= y1y1 y2y2 y3y y 1 = = 14 xxx Calculate y 1 : ROW 1 Matrix-Vector multiplication.
Chapter 8 Arrays and the ArrayList Class Arrays of Objects.
AP Computer Science Exam Review Number Systems Binary.
A 2-D Array is a structure that storage space both vertically and horizontally. Thus, the array has both rows and columns. 2-D Arrays are used to create.
Methods Matthew Harrison. Overview ● There are five main aspects of methods... ● 1) Modifiers – public, private ● 2) Method Name ● 3) Parameters ● 4)
Lecture 18: Nested Loops and Two-Dimensional Arrays
תרגול 3 שיטות ומערכים.
12-1 Organizing Data Using Matrices
using System; namespace Demo01 { class Program
Two Dimensional Arrays
Dynamic Array Multidimensional Array Matric Operation with Array
Java Arrays. Array Object An array :a container object holds a fixed number of values of a single type. The length of an array is established when the.
CS 213: Data Structures and Algorithms
Case Study 2 – Marking a Multiple-choice Test
תרגול 1: סביבת העבודה ומבוא ל-Java
תרגול 1: סביבת העבודה ומבוא ל-Java
An Introduction to Java – Part I
הרצאה 7: מחרוזות וחתימה של פונקציה
Data Structures Array - Code.
CS Week 8 Jim Williams, PhD.
תרגול 1: סביבת העבודה ומבוא ל-Java
יסודות מדעי המחשב – תרגול 4
WarmUp 2-3 on your calculator or on paper..
תרגול Introduction to C - Fall Amir Menczel.
Nested Loop Review and Two-Dimensional Arrays
An Introduction to Java – Part I, language basics
Calculate n! Multiply my number by the factorial of the rest of the numbers. if( num > 2 ) return num * factorialR2( num - 1 ); else return 2;
Chapter 8 Multi-Dimensional Arrays
תרגול 4.
תרגול 1: סביבת העבודה ומבוא ל-Java
2. Matrix Algebra 2.1 Matrix Operations.
Data Structures Array - Code.
Section 2.4 Matrices.
Lecture 13: Two-Dimensional Arrays
Determinant of a Matrix
class PrintOnetoTen { public static void main(String args[]) {
Multidimensional array
Module 4 Loops and Repetition 4/7/2019 CSE 1321 Module 4.
Object Oriented Programming
Lets Play with arrays Singh Tripty
Chapter 8 Multidimensional Arrays
Matrices - Operations TRANSPOSE OF A MATRIX If :
Introduction to java Part I By Shenglan Zhang.
3.8 Matrices L Al-zaid Math1101.
Introduction to Matrices
Java Basics – Arrays Should be a very familiar idea
Presentation transcript:

יסודות מדעי המחשב – תרגול 3 מערכים, מחרוזות ומיונים

מהלך התרגול שימושים למערכים (מטריצות) ייצוג char מחרוזות מיון מחרוזות משחקי מצביעים

הכפלת וקטורים = ∑v(1,j)*u(j,1) X הכפלת וקטורים בצורה הנ"ל יתן כתוצאה סקלר (מספר) שהינו סכום מכפלות התאים: v(1,1)*u(1,1) + v(1,2)*u(2,1) + v(1,3)*u(3,1)

הכפלת וקטורים /** * This method calculate vector multiplication ([1xM]*[Mx1]) * @param vector1- An 1xM double array holds the multiplicand vector. * @param vector2- An Mx1 double array holds the multiplier vector. * @return res- A double scalar holds the vector product result. */ public static double VectorMult( double[] vector1, double[] vector2) { int M=vector1.length; double res=0; for (int m=0;m< M;m++) //run in loop on vector values res +=vector1[m]*vector2[m]; } return res;

הכפלת מטריצה בוקטור = ∑v(1,j)*u(j,1) ∑v(2,j)*u(j,1) ∑v(3,j)*u(j,1) X A(1,3) A(1,2) A(1,1) A(2,3) A(2,2) A(2,1) A(3,3) A(3,2) A(3,1) u(1,1) u(2,1) u(3,1) c(1,1) c(2,1) c(3,1) ∑v(1,j)*u(j,1) = ∑v(2,j)*u(j,1) X ∑v(3,j)*u(j,1) הכפלת מטריצה בוקטור בצורה הנ"ל יתן כתוצאה וקטור שבו כל תא הינו סכום מכפלות התאים: c(1,1) = A(1,1)*u(1,1) + A(1,2)*u(2,1) + A(1,3)*u(3,1) c(2,1) = A(2,1)*u(1,1) + A(2,2)*u(2,1) + A(2,3)*u(3,1) c(3,1) = A(3,1)*u(1,1) + A(3,2)*u(2,1) + A(3,3)*u(3,1)

הכפלת מטריצה בוקטור /** * This method calculate matrix by vector multiplication ([NxM]*[Mx1]) * @param matrix- An NxM double array holds the multiplicand matrix * @param vector- An Mx1 double array holds the multiplier vector * @return resVector- The Nx1 double array holds the product result. */ public static double[] MatrixVectorMult( double[][] matrix,double[] vector) { int N= matrix.length; //matrix number of rows int M= matrix[0].length; //matrix number of column double[] resVector= new double[N]; for (int n=0;n< N;n++)// run in loop on matrix rows resVector[n] =VectorMult(matrix[n],vector); } return resVector;

שחלוף מטריצה A(i,j)  A(j,i) Transpose בשחלוף מטריצה, מתבצעת החלפת הערכים בתאי השורות והעמודות כמתואר לעיל

שחלוף מטריצה (Transpose) /** * This method calculate matrix transpose * @param matrix- An NxM double array holds the matrix to be transpose. * @return matrixTranspose- An MxN double array holds matrix transpose. */ private static double[][] MatrixTranspose(double[][] matrix) { double[][] matrixTranspose; int N=matrix.length; int M=matrix[0].length; matrixTranspose= new double[M][N]; for (int n=0;n< N;n++) for(int m=0;m< M;m++) matrixTranspose[m][n]=matrix[n][m]; } return matrixTranspose;

הכפלת מטריצות ∑a(1,j)*b(j,1) ∑a(2,j)*b(j,3) ∑a(3,j)*b(j,2) X = c(1,3) c(1,2) c(1,1) c(2,3) c(2,2) c(2,1) c(3,3) c(3,2) c(3,1) b(1,3) b(1,2) b(1,1) b(2,3) b(2,2) b(2,1) X = ∑a(2,j)*b(j,3) ∑a(3,j)*b(j,2) הכפלת מטריצת NxM במטריצת MxN יתן כתוצאה מטריצת NxN שכל תא בא הוא מכפלת הוקטור שורה ה-i במטריצה הראשונה בוקטור עמודה ה-j במטריצה הראשונה: c(i,j) = ∑a(i,k)*b(k,j) (עבור כל ערכי ה-k האפשריים במטריצה)

הכפלת מטריצות /** * This method calculate matrix multiplication ([NxM]*[MxN]) * @param matrix1- An NxM double array holds the multiplicand matrix * @param matrix2- An MxN double array holds the transpose of the multiplier matrix * @return resMat- The NxN double array holds the product result. */ public static double[][] MatrixMult(double[][] matrix1,double[][] matrix2) { int N=matrix1.length; //multilicand matrix number of rows matrix2=MatrixTranspose(matrix2); double[][] resMat=new double[N][]; for (int i=0;i< N;i++) //run in loop on matrix rows resMat[i]=MatrixVectorMult(matrix1,matrix2[i]); } resMat=MatrixTranspose(resMat); return resMat;

ייצוג char char char1 = ‘b’; char char2 = ‘a’; System.out.print(char1); -> System.out.print ((int) char2); -> System.out.print ((int) char1); -> System.out.print ((char)97); -> System.out.print ((char)(int)char1); -> int i = ‘1’; // i=49 System.out.print (i+1); -> char c = ‘9’; // c=57 System.out.print (c-’0’); -> char A = 65; System.out.print (A); -> A<B<..<Z<a<b<..<z b 97 98 a 50 9 A

מחרוזות (Strings) מחרוזת (String) הינה משתנה מורכב היכול להכיל רצף של תווים. המשתנה מתנהג כמו משתנה מערך בכך שלמעשה מצביע על המחרוזת ששמורה במקום כלשהו בזיכרון. בשונה ממערך, לא ניתן לגשת ישירות למחרוזת ולשנות את התווים האינדיווידואלים. ניתן לאתחל בשתי צורות: String str1 = new String(“Hello “); String str2 = “World”; ניתן לבצע פעולת חיבור בין מחרוזות: String str3 = str1+str2 בנוסף, קיימות פונקציות שונות שניתן להפעיל מתוך המחרוזת כגון: str1.charAt(4) str2.length() str3.indexOf(‘l’)

מיון מחרוזות שימו לב – המחלקה Sort נמצאת בחומר עזר באתר public class sortExample { /** * @param args */ public static void main(String[] args) { String[] strArr = {"g","r","a","e","hello","world","bungee","alligator","java","gray","bun","t", "c","grab"}; char[] charArr = {'g','c','e','a','r','s','z','l'}; System.out.println("printing string array"); printArray(strArr); Sort.strLengthSort(strArr); System.out.println("printing length sorted array"); Sort.stringSort(strArr); System.out.println("printing lexicographicly sorted array"); System.out.println("printing character array"); printArray(charArr); Sort.charSort(charArr); System.out.println("printing sorted character array"); } public static void printArray(String[] arr) { int i; for (i=0;i<arr.length;i++) System.out.println(arr[i]); } public static void printArray(char[] arr) System.out.print(arr[i]); System.out.print("."); System.out.println();   שימו לב – המחלקה Sort נמצאת בחומר עזר באתר