Presentation is loading. Please wait.

Presentation is loading. Please wait.

מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12.

Similar presentations


Presentation on theme: "מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12."— Presentation transcript:

1 מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12

2 2 תרגיל 1 – הפיכת סדר איברים במערך  נרצה להפוך את סדר הערכים במערך  נראה שני פתרונות 1. שימוש במערך עזר 2. הפיכה בתוך המערך עצמו

3 הפיכת מערך בעזרת מערך עזר 0 1 2 3 4 245 arr 9 7 המערך לפני : 975 arrhelp 2 4 מערך עזר 975 arr 2 4 המערך אחרי :

4 קוד פתרון 1 – מערך עזר Sub Main() Dim arr() As Single = {1, 2, 3, 4, 5, 6} Dim arrhelp(arr.Length()) As Single For i = 0 To arr.Length - 1 arrhelp(i) = arr(arr.Length - i - 1) Next For i = 0 To arr.Length - 1 arr(i) = arrhelp(i) Next For i = 0 To arr.Length - 1 Console.Write(arr(i) & ", ") Next End Sub

5 הפיכת מערך בתוך המערך עצמו ( ללא מערך עזר ) 245 arr 9 7 temp 245 arr 2 7 945 2 7 9 945 2 4 7 975 2 4 5 ההחלפה הסתיימה !

6 6 פתרון 2 – הפיכת סדר איברים במערך עצמו Sub Main() Dim arr() As Single = {1, 2, 3, 4, 5, 6} Dim temp As Single For i = 0 To arr.Length \ 2 temp = arr(arr.Length - 1 - i) arr(arr.Length - 1 - i) = arr(i) arr(i) = temp Next For i = 0 To arr.Length - 1 Console.Write(arr(i) & ", ") Next End Sub שימו לב לגבולות !

7 פתרון 3 – פונקציה להפיכת סדר איברים במערך עצמו Sub swapArray(ByRef arr() As Single) Dim temp As Single For i = 0 To arr.Length \ 2 temp = arr(arr.Length - 1 - i) arr(arr.Length - 1 - i) = arr(i) arr(i) = temp Next End Sub Sub Main() Dim arr() As Single = {1, 2, 3, 4, 5, 6} swapArray(arr) For i = 0 To arr.Length - 1 Console.Write(arr(i) & ", ") Next End Sub

8 ByVal ByRef עם מערכים – זהירות !!! Sub swapArray(ByVal arr() As Single) Dim temp As Single For i = 0 To arr.Length \ 2 temp = arr(arr.Length - 1 - i) arr(arr.Length - 1 - i) = arr(i) arr(i) = temp Next End Sub Sub Main() Dim arr() As Single = {1, 2, 3, 4, 5, 6} swapArray(arr) For i = 0 To arr.Length - 1 Console.Write(arr(i) & ", ") Next End Sub כאשר מעבירים פרמטר של מערך ByVal ומשנים ערכים בתוך המערך, הערכים במערך משתנים גם מחוץ לפונקציה. ( כמובן גם כשנעביר byRef )

9 9 תרגיל 2 – כתיבת פונקציה המרכיבה שני מערכים  פונקציה addArray מרכיבה מערך למערך  אם הם באורך זהה מחזירה מערך שמכיל את סכום המערכים  אם לא מחזירה מערך שמלא ב 1- Function addArray(ByVal arr1() As Integer, ByVal arr2() As Integer) As Integer()

10 10 פתרון תרגיל 2 – כתיבת פונקציה המרכיבה שני מערכים Function addArray(ByVal arr1() As Integer, ByVal arr2() As Integer) As Integer() Dim arrBoth(arr1.Length - 1) As Integer If arr1.Length = arr2.Length Then For i = 0 To arr1.Length - 1 arrBoth(i) = arr1(i) + arr2(i) Next Else For i = 0 To arr1.Length - 1 arrBoth(i) = -1 Next End If Return arrBoth End Function

11 11 המשך פתרון תרגיל 2 – קריאה לפונקציה Sub Main() Dim arrA() As Integer = {1, 2, 3, 4, 5, 6} Dim arrB() As Integer = {10, 20, 30, 40, 50} Dim arrC() As Integer arrC = addArray(arrA, arrB) If (arrC(0) <> -1) Then For i = 0 To arrC.Length - 1 Console.Write(arrC(i) & ", ") Next Else Console.WriteLine("error, arrays different length") End If End Sub


Download ppt "מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12."

Similar presentations


Ads by Google