1 / 25

תרגול 4

תרגול 4. היום בתרגול: הגשת עבודות TextDiff מערך חד- מימדי מחרוזות מערך דו מימדי. הורדת textdiff ופתיחתו. בחירת קבצים להשוואה ע"י textdiff. דוגמא למציאת שינויים ע"י textdiff. דוגמא לשני קבצים זהים ב- textdiff. מערך חד-מימדי.

Download Presentation

תרגול 4

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. תרגול 4

  2. היום בתרגול: • הגשת עבודות • TextDiff • מערך חד-מימדי • מחרוזות • מערך דו מימדי

  3. הורדת textdiff ופתיחתו

  4. בחירת קבצים להשוואה ע"יtextdiff

  5. דוגמא למציאת שינויים ע"י textdiff

  6. דוגמא לשני קבצים זהים ב-textdiff

  7. מערך חד-מימדי • מערך הינו מבנה זיכרון המכיל מספר ערכים מאותו טיפוס, גודל המערך נקבע כאשר הוא נוצר (בזמן ריצה) ולאחר מכן הוא קבוע. • אילו טיפוסים אנו מכירים?

  8. מערך - מאפיינים • משתנה שאינו פרימיטיבי • מבנה מסודר של ערכים. • לכל ערך יש מקום. • כל איברי המערך הם מאותו סוג. • מערך יכול להכיל כל טיפוס פרימיטיביוכן טיפוסים שאינם פרימיטיביים כפי שנלמד בהמשך

  9. הצורך במערך • יש צורך לשמור מספר גדול של משתנים מאותו סוג. • זהו מבנה מאורגן המאגד בתוכו קבוצה גדולה של ערכים שניתן לעבור עליהם באופן שיטתי.

  10. תרגילים – מערך חד מימדי • תרגיל 1: כתבו תוכנית אשר קולטת 5 מספרים שלמים מהמשתמש לתוך מערך, ומדפיסה את האיבר המינימאלי, המקסימאלי את סכום האיברים של המערך ואת ממוצעם.

  11. תרגילים – מערך חד מימדי • תרגיל 1 - פתרון: • publicstaticvoid main(String[] args) { • Scanner sc = new Scanner(System.in); • int [] arr = newint[5]; • System.out.println("Please enter 5 numbers:"); • for (int i = 0; i < 5; i++) • arr[i] = sc.nextInt(); • int min = arr[0], max = arr[0], sum = 0; • for ( int i = 0; i < 5; i++){ • sum += arr[i]; • if (min > arr[i]) • min = arr[i]; • if (max < arr[i]) • max = arr[i]; • } • System.out.println("Min value is: " + min ); • System.out.println("Max value is: " + max ); • System.out.println("Summary of al numbers is: " + sum ); • System.out.println("Average of all numbers is: " + sum/5.0 ); • }

  12. תרגילים – מערך חד מימדי • תרגיל 2: מציאת מספרים משותפים: נתונות שתי רשימות של מספרי זהות של סטודנטים עבור שתי מחלקות באוניברסיטה. רוצים למצוא אם קיים סטודנט הרשום בשתי המחלקות. כתבו תוכנית המאתחלת שני מערכים עם תוכן הרשימות ואשר כותבת למסך את מס' ת.ז. של כל הסטודנטים הרשומים בשתי המחלקות. ניתן להניח כי בכל מחלקה יש 5 סטודנטים. int arr1[]={12,15,5,88,234}; int arr2[]={234,4,567,5,88};

  13. תרגילים – מערך חד מימדי • תרגיל 2 - פתרון: • publicstaticvoid main(String[] args) { • int arr1[]={12,15,5,88,234}; • int arr2[]={234,4,567,5,88}; • for (int i = 0; i < arr1.length; i++){ • for (int j = 0; j < arr2.length; j++){ • if (arr1[i] == arr2[j]) • System.out.println(arr1[i]); • } • } • }

  14. מחרוזות הקדמה מחרוזת (String) היא מחלקה המייצגת טקסט (רצף של תווים). מיספור אינדקס התווים במחרוזת מתחיל מ 0 ונגמר באורך המחרוזת פחות 1. String "abcd"Index 0123

  15. מחרוזות פונקציות של מחרוזת: length() – מחזיר את אורך המחרוזת. charAt(i) – מחזיר את התו במקום ה-i במחרוזת. substring(i,j) – מחזיר את תת-מחרוזת החל מאינדקס i ועד אינדקס j (לא כולל את j). substring(i) – מחזיר את תת-מחרוזת החל מאינדקס i ועד הסוף. equals(String other) – בודק שוויון בין 2 מחרוזות.

  16. מחרוזות דוגמה עליכם לכתוב תוכנית המגדירה מחרוזת ומדפיסה את המחרוזת ההפוכה שלה. לדוגמא: עבור המחרוזת Hello יודפס על המסך המחרוזת olleH.

  17. פתרון publicstatic void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Please enter string: "); String data = sc.next(); String rev = new String(); for (int j=data.length()-1; j>=0; j=j-1) { rev = rev + data.charAt(j); } System.out.println(rev); }

  18. תרגילים – מערך דו מימדי • תרגיל 1: השלימו את התוכנית הבאה כך שמערך a יועתק למערך c. public class Copy2dArray{ publicstaticvoid main(String[] args){ int[][] a = {{1,3,2},{5,6,7},{4,1,2}}; int[][] c; } //main }

  19. תרגילים – מערך דו מימדי • תרגיל 1 - פתרון: public class Copy2dArray{ publicstaticvoid main(String[] args){ int[][] a = {{1,3,2},{5,6,7},{4,1,2}}; int[][] c; //Create the 2dArray row by row c = newint[3][]; int i,j; for ( i=0 ; i < 3; i = i+1) c[i] = newint[3]; for ( i=0; i < 3; i = i+1) for (j=0 ; j < 3; j = j+1) c[i][j] = a[i][j]; } //main }

  20. תרגילים – מערך דו מימדי • תרגיל 2: השלימו את התוכנית הבאה כך שמערך a יועתק למערך c. public class Copy2dArray{ publicstaticvoid main(String[] args){ int[][] a = {{1,3},{5,6,7},{4}}; int[][] c; } //main }

  21. תרגילים – מערך דו מימדי • תרגיל 2 - פתרון: public class Copy2dArray{ publicstaticvoid main(String[] args){ int[][] a = {{1,3},{5,6,7},{4}}; int[][] c; //Create the 2dArray row by row c = newint[a.length][]; int i,j; for ( i=0 ; i < c.length; i = i+1) c[i] = newint[a[i].length]; for ( i=0; i < c.length; i = i+1) for (j=0 ; j < c[i].length ; j = j+1) c[i][j] = a[i][j]; } //main }

  22. תרגילים – מערך דו מימדי • תרגיל 3: כתבו תוכנית אשר תגדיר מערך מגודל 13*13 אשר ייצג את לוח הכפל ולאחר מכן תדפיס אותו למסך

  23. תרגילים – מערך דו מימדי public class MultiplicationTable { publicstaticvoid main(String[] arg) { finalint ROW = 13; finalint COLUMN = 13; int[][] mat = newint[ROW][COLUMN]; for (int i=0; i < ROW; i=i+1) for (int j=0; j < COLUMN; j=j+1) mat[i][j] = i*j; //prints the matrix for (int i=0; i < ROW; i=i+1) { for (int j=0; j < COLUMN; j=j+1) System.out.print(mat[i][j]+"\t"); System.out.println(); } } //main } //class • תרגיל 3 - פתרון:

  24. תרגילים – מערך דו מימדי • תרגיל 4: כתבו תוכנית המגדירה 2 מטריצות a,b בגודל 4X4, ומגדירה מטריצה c אשר תהיה חיבור המטריצות. תזכורת: חיבור מטריצות הינו החיבור של איברים מתאימים במטריצות (כלומר האיבר במקום ה-i,j במטריצה א' עם האיבר במקום ה-i,j במטריצה ב'). לדוגמא:

  25. תרגילים – מערך דו מימדי • תרגיל 4 - פתרון: // Adds two matrices public class Add{ publicstaticvoid main(String[] args){ int[][] a ={{1,4,-2,3},{-1,2,5,3},{9,10,-94,12},{0,1,-5,3}}; int[][] b ={{2,-4,5, 3},{7,9,-7,6},{12,-5,3,6},{-4,2,1,12}}; int[][] c; c = newint[a.length][a[0].length]; for (int i = 0 ;i<a.length;i=i+1) for (int j =0;j< a[i].length;j= j+1) c[i][j] = a[i][j] + b[i][j]; } //main } //class Add

More Related