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

Slides:



Advertisements
Similar presentations
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12.
מחרוזות של תווים. מבוא לתכנות למנע"ס - שבוע מספר 5 - מאיר קומר - סמסטר ב' - תשס"ו מחרוזות - Strings Dim s As String s = “hello” s = s & “kita” או s =
מחרוזות נכתב ע " י כרמי גרושקו. כל הזכויות שמורות © 2010 הטכניון, מכון טכנולוגי לישראל 1.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
שאלות ממבחנים. 14 תרגולמבוא למדעי המחשב. כל הזכויות שמורות ©2 תרגיל 1: מטריצות כתבו פונקציהvoid Rotation(int in [N][N], int out [N][N]) אשר מקבלת שני.
תכנות תרגול 9 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
סוגי מידע / משתנים ד " ר אבי רוזנפלד. סוגאורךטווח Boolean1 Bit0,1 Byte1 byte0-255 Char 2 bytes תו Decimal16 bytes0 through +/-79,228,162,514,264,337,593,543,950,335.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא כללי למדעי המחשב תרגול. הבית האדום כתובת : רחוב קוקוריקו 2 הבית הירוק כתובת : רחוב קוקוריקו 4 הבית הצהוב כתובת : רחוב קוקוריקו 1 הבית הורוד כתובת.
תרגילים. גדול, קטן, וממוצע מקובץ Imports System.IO Module Module1 Sub Main() Dim readnum As StreamReader readnum = _ My.Computer.FileSystem.OpenTextFileReader.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
אלגוריתמים, WINDOWS והחיים. מבוא למדעי המחשב - מאיר קומר - סמסטר א '- תשס " ט - שיעור מספר 7 מיוןsort.
מבני בקרה מבוא לתכנות למנע " ס - שבוע מספר 3 - מאיר קומר - סמסטר ב ' - תשס " ו הסתעפות “ אם השמאל ואימנה ואם הימין ואשמאילה ”
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
שימוש במערך דינמי : ArrayList. מאפיינים חשובים בכל LIST יכולת להכניס מידע בלי תלות בטיפוס יכולת למחוק מידע יכולת להוסיף מידע פונקציות נוספות ( מיון, חיפוש.
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
תכנות – שיעור 7. חזרה -מערכים נגדיר בעזרתו קבוצת משתנים כאשר יהיה לנו מספר רב של משתנים זהים נגדיר בעזרתו קבוצת משתנים כאשר יהיה לנו מספר רב של משתנים.
פתרון תרגיל 10. שאלה #1 Module Module1 Sub Main() Dim maarach(9), zoogy(4), ezoogy(5) As Integer Dim i, counter, j As Integer For i = 0 To 9 Console.WriteLine("please.
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
פתרון בוחן הכיתה. שאלה #1 Module Module1 Sub Main() Dim x, z As Integer x = Console.ReadLine() z = Console.ReadLine() If (x = 0) Then Console.WriteLine("Error")
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
פתרון תרגיל 11. שאלה #1 Module Module1 Sub Main() Dim x(10, 10) As Integer Dim i, j As Integer For i = 1 To 10 For j = 1 To 10 x(i, j) = i * j Console.Write("
מערכים מבוא לתכנות למנע"ס - שבוע מספר 8 - מאיר קומר - סמסטר ב' - תשס"ו והנה בעיה כתוב תוכנית אשר תקלוט 36 מספרים ותדפיס כמה מתוכם גדולים יותר מהממוצע.
מבני בקרה לולאות. פקודת CASE Module Module1 Sub Main() Dim input As Char input = Console.ReadLine() Select Case (input) Case "A" Console.WriteLine("A.
יחס סדר חלקי.
אלגוריתמי חיפוש. Brute Force Module Module1 Function BruteForce(ByRef x() As Integer, ByRef item As Integer) As Integer Dim i As Integer For i = 0 To.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
פתרון תרגילים #9. דוגמה פשוטה #1 Module Module1 Sub Main() Dim x As String x = Console.ReadLine For i = 1 To x.Length() - 1 Step 2 Console.WriteLine(x(i))
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 10. אג'נדה שאלות מבחינות חזרה על מימוש stream אפשרי 2.
מערכים דו ממדי ו STRUCTS פונקציות בוליאנית Module Module1 Function Flip(ByVal word1 As String) As Boolean Dim i As Integer For i = 0 To word1.Length()
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבוא למדעי המחשב תרגול 9 – מערכים ומחרוזות, תרגילי חזרה שעת קבלה : יום שני 11:00-12:00 דוא " ל :
פונקציות. פונקציות מוכרות Imports System.Math Module Module1 Sub Main() Dim x As Decimal = Math.Abs(-10.4) Dim y As Decimal Console.WriteLine("I will.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 12. Outline Streams Infinite streams Stream implementation Questions from exams 2.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
מבוא למדעי המחשב הרצאה 11: תכנות רקורסיבי 4 כולל מיון רקורסיבי 1.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
מחסנית ותור Stacks and Queues. מחסנית Stack מחסנית - Stack ADT סוג של מערך מוגבל מהיר מאוד ותופס מעט זיכרון שימוש ב LIFO – LIFO (Last In, First Out)
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
מבוא למדעי המחשב הרצאה 9: תכנות רקורסיבי 2 1. חישוב עצרת: רקורסיית זנב public static int fact (int n){ return factacc(n,1); } public static int factacc.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
1 מבוא למדעי המחשב הרצאה 5: פונקציות. 2 מבוא לפונקציות חלוקה של אלגוריתם לתת משימות: משימה - פונקציה: דוגמאות מציאת המקסימלי מבין שני איברים האינדקס של.
אלגוריתמי חיפוש. Brute Force Module Module1 Function BruteForce(ByRef x() As Integer, ByRef item As Integer) As Integer Dim i As Integer For i = 0 To.
מחרוזות – הטיפוס String
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
מבוא למדעי המחשב לתעשייה וניהול
Formal Specifications for Complex Systems (236368) Tutorial #1
הרצאה 10 פונקציות עם מספר משתנה של פרמטרים
מבוא למדעי המחשב סיבוכיות.
מיונים וחיפושים קרן כליף.
תירגול 14: מבני נתונים דינאמיים
תרגול מס' 7: Memoization Quicksort תרגילים מתקדמים ברקורסיה
נושאים מחרוזות מיון (מיון בועות)
מבוא כללי למדעי המחשב תרגול 4
תרגול 8 תחומי הכרה פונקציות
תיכון אהל שם, רמת גן קורס PHP – הרצאה מס' 10
תרגול Introduction to C - Fall Amir Menczel.
מחסנית ותור Stacks and Queues.
מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.
Presentation transcript:

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

ספריות

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

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

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 דוגמאות של פרוצדורות עבור עבודה עם מערך

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

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

הסרה ממחרוזת 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

הוספה למחרוזת 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

היפוך מחרוזת 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

החלפה במחרוזת 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

חיפוש במחרוזת 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

חלק ממחרוזת 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

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

 פונקציה יכולה להחזיר מערך  דוגמה :  פונקציות 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

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

פתרון 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

פתרון 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

פתרון 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

פתרון 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