1 / 11

מבוא למדעי המחשב לתעשייה וניהול

הרצאה 12. מבוא למדעי המחשב לתעשייה וניהול. דוגמאות ותרגול נוסף במערך חד ממדי. תרגיל 1 – הפיכת סדר איברים במערך. נרצה להפוך את סדר הערכים במערך נראה שני פתרונות שימוש במערך עזר הפיכה בתוך המערך עצמו. 0 1 2 3 4. 2. 4. 5. 9. 7. arr. 9. 9. 7. 7. 5. 5. 2. 2. 4.

kevlyn
Download Presentation

מבוא למדעי המחשב לתעשייה וניהול

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. הרצאה 12 מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי

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

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

  4. קוד פתרון 1 – מערך עזר SubMain() Dim arr() AsSingle = {1, 2, 3, 4, 5, 6} Dimarrhelp(arr.Length()) AsSingle Fori = 0 Toarr.Length - 1 arrhelp(i) = arr(arr.Length - i - 1) Next Fori = 0 Toarr.Length - 1 arr(i) = arrhelp(i) Next Fori = 0 Toarr.Length - 1 Console.Write(arr(i) & ", ") Next EndSub

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

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

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

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

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

  10. פתרון תרגיל 2 –כתיבת פונקציה המרכיבה שני מערכים FunctionaddArray(ByVal arr1() AsInteger, ByVal arr2() AsInteger) AsInteger() DimarrBoth(arr1.Length - 1) AsInteger If arr1.Length = arr2.Length Then Fori = 0 To arr1.Length - 1 arrBoth(i) = arr1(i) + arr2(i) Next Else Fori = 0 To arr1.Length - 1 arrBoth(i) = -1 Next EndIf ReturnarrBoth EndFunction

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

More Related