Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

2 ספריות

3 3  הרבה מטלות חוזרות על עצמם בתכניות שונות  מיון מערך  מציאת מילה במחרוזת  וכו '  מפתחי שפות תכנות וסביבות פיתוח מתחשבים בזה ומספקים אוספים של פרוצדורות שמבצעות את הפעולות האלו  אוספים אלה מכונים ספריות ( באנגלית : libraries)  את הפרוצדורות בספריות מחלקים לפי נושאים :  Math  Console  וכו ' רעיון של ספריות

4 פרוצדורות עבור עבודה עם מערך

5 5  מיון מערך Sort -  הפיכה - Reverse Module Module1 Sub Main() Dim x() As Integer = {1, 7, 5, 50, -1} Array.Sort(x) Array.Reverse(x) For i = 0 To x.Length - 1 Console.Write(x(i) & " ") Next Console.ReadKey() End Sub End Module דוגמאות של פרוצדורות עבור עבודה עם מערך

6 פרוצדורות עבור עבודה עם מחרוזת

7 דוגמאות של פרוצדורות עבור עבודה עם מחרוזת  Remove  Insert  StrReverse  Replace  IndexOf  SubString

8 הסרה ממחרוזת Remove  Remove(start, count ) מסירה count תווים החל מהמקום start  ומחזירה את המחרוזת החדשה Module Module1 Sub Main() Dim str As String = "This is my string" Dim str2 As String str2 = str.Remove(0, 8) Console.WriteLine(str2) Console.WriteLine(str) Console.ReadKey() End Sub End Module

9 הוספה למחרוזת Insert  Insert(start, str) מוסיפה את המחרוזת str החל מהמקום start  ומחזירה את המחרוזת החדשה Module Module1 Sub Main() Dim str As String = "This is my string" Dim newStr As String = str.Insert(11, "nice ") Console.WriteLine(newStr) Console.WriteLine(str) Console.ReadKey() End Sub End Module

10 היפוך מחרוזת StrReverse  StrReverse(str) הופכת את המחרוזת str  ומחזירה את המחרוזת החדשה Module Module1 Sub Main() Dim str As String = "This is my string" Dim newStr As String = StrReverse(str) Console.WriteLine(newStr) Console.WriteLine(str) Console.ReadKey() End Sub End Module

11 החלפה במחרוזת Replace  Replace(str1, str2) מחליפה את המחרוזת str1 במחרוזת str2  ומחזירה את המחרוזת החדשה Module Module1 Sub Main() Dim str As String = "If u can imagine it, u can do it" Console.WriteLine(str.Replace("u", "you")) Console.ReadKey() End Sub End Module

12 חיפוש במחרוזת IndexOf  IndexOf(str) מחזירה מיקום של מחרוזת str במחרוזת  אם לא נמצא, מחזירה -1  IndexOf(str, start) מחזירה מיקום של המחרוזת str אחרי ( וכולל ) מיקום start במחרוזת  אם לא נמצא מחזיר -1 Module Module1 Sub Main() Dim s As String = "one book on a table" Dim start As Integer = -1 While True start = s.IndexOf("on", start + 1) If start = -1 Then Exit While Console.WriteLine("Found {0} at {1}", "on", start) End While Console.ReadKey() End Sub End Module

13 חלק ממחרוזת SubString  SubString(start, count ) מייצרת מחרוזת חדשה של count תווים החל מהמקום start Module Module1 Sub Main() Dim str As String Console.WriteLine("Please enter a string") str = Console.ReadLine() Dim pos As Integer = str.IndexOf("a") str = str.Substring(pos + 1, 5) Console.WriteLine("the five letters after a are:" & str) End Sub End Module

14 פונקציה שמחזירה מערך

15  פונקציה יכולה להחזיר מערך  דוגמה :  פונקציות Split(ch) ו Split(chs) מפצלת את המחרוזת str. הן משתמשות בתו ch או בתווים במערך chs כסימני הפרדה. Module Module1 Sub Main() Dim str As String = "This;is,my;;string" Dim sep() As Char = {";", ","} Console.WriteLine("There are {0} parts in {1}", _ str.Split(sep).Length, str) Console.WriteLine("There are {0} parts in {1}", _ str.Split(",").Length, str) Console.ReadKey() End Sub End Module

16 דוגמה נוספת  יש לכתוב פונקציה המקבלת בתור פרמטרים שני מערכים של מספרים ממוינים לפי סדר עולה של המספרים ומחזירה מערך ממוין שכולל את כל המספרים של שני המערכים.  קיימות שתי גרסאות של הבעיה :  מותר להשתמש ב Array.Sort  אסור להשתמש ב Array.Sort  כי עבור מערכים גדולים, Array.Sort יכולה להיות אטית מדי  נרצה לשים איברים בסדר נכון מיד ( ללא צורך למיין אחר כך )

17 פתרון 1 (אם מותר להשתמש ב Array.Sort) Module Module1 Function Merge(ByVal arr1() As Integer, ByVal arr2() As Integer) _ As Integer() Dim res(arr1.Length + arr2.Length - 1) As Integer For i = 0 To res.Length - 1 If i < arr1.Length Then res(i) = arr1(i) Else res(i) = arr2(i - arr1.Length) End If Next Array.Sort(res) Return res End Function Sub Main() Dim a() As Integer = {1, 3, 5, 7} Dim b() As Integer = {2, 4, 6, 8} Dim c() As Integer = Merge(a, b) For i = 0 To c.Length - 1 Console.Write(c(i) & " ") Next Console.ReadKey() End Sub End Module

18 פתרון 2 (אם אסור להשתמש ב Array.Sort) Function Merge(ByVal arr1() As Integer, ByVal arr2() As Integer) _ As Integer() Dim res(arr1.Length + arr2.Length - 1) As Integer Dim pos1 = 0, pos2 = 0, pos As Integer = 0 While pos1 < arr1.Length And pos2 < arr2.Length If arr1(pos1) < arr2(pos2) Then res(pos) = arr1(pos1) : pos1 += 1 Else res(pos) = arr2(pos2) : pos2 += 1 End If pos += 1 End While For i = pos1 To arr1.Length - 1 res(pos) = arr1(i) : pos += 1 Next For i = pos2 To arr2.Length - 1 res(pos) = arr2(i) : pos += 1 Next Return res End Function

19 פתרון 3 (אם אסור להשתמש ב Array.Sort) Function LastEl(ByVal arr() As Integer) Return arr(arr.Length - 1) End Function Function MergeSmallLarge(ByVal arr1() As Integer, ByVal arr2() As Integer) _ As Integer() Dim res(arr1.Length + arr2.Length - 1) As Integer Dim pos1 = 0, pos2 = 0, pos As Integer = 0 While pos1 < arr1.Length If arr1(pos1) < arr2(pos2) Then res(pos) = arr1(pos1) : pos1 += 1 Else res(pos) = arr2(pos2) : pos2 += 1 End If pos += 1 End While For i = pos2 To arr2.Length - 1 res(pos) = arr2(i) : pos += 1 Next Return res End Function Function Merge(ByVal arr1() As Integer, ByVal arr2() As Integer) As Integer() If LastEl(arr1) < LastEl(arr2) Then Return MergeSmallLarge(arr1, arr2) Return MergeSmallLarge(arr2, arr1) End Function

20 פתרון 4 (אם אסור להשתמש ב Array.Sort) Function Merge(ByVal arr1() As Integer, ByVal arr2() As Integer) _ As Integer() Dim res(arr1.Length + arr2.Length - 1) As Integer Dim pos1 = 0, pos2 = 0, pos As Integer = 0 While pos1 < arr1.Length Or pos2 < arr2.Length Dim el1, el2 As Integer If pos1 < arr1.Length Then el1 = arr1(pos1) _ Else el1 = arr2(pos2) + 1 If pos2 < arr2.Length Then el2 = arr2(pos2) _ Else el2 = arr1(pos1) + 1 If el1 < el2 Then res(pos) = el1 : pos1 += 1 Else res(pos) = el2 : pos2 += 1 End If pos += 1 End While Return res End Function


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

Similar presentations


Ads by Google