1 / 18

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

הרצאה 8. מבוא למדעי המחשב לתעשייה וניהול. החלפת ערכים - תזכורת. תוכנית מחשב למשחק קלפים " טאקי " ... הניחו קלף "החלף": יש להחליף את מספר הקלפים שיש לכל שחקן. ראינו: Module Module1 Sub Main() Dim a, b As Integer a = 8 b = 2

christmas
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. הרצאה 8 מבוא למדעי המחשב לתעשייה וניהול

  2. החלפת ערכים - תזכורת • תוכנית מחשב למשחק קלפים "טאקי" ... • הניחו קלף "החלף": יש להחליף את מספר הקלפים שיש לכל שחקן. ראינו: ModuleModule1 Sub Main() Dim a, b AsInteger a = 8 b = 2 Console.WriteLine("a is {0} and b is {1} ", a, b) Dim temp AsInteger temp = a a = b b = temp Console.WriteLine("a is {0} and b is {1} ", a, b) EndSub EndModule

  3. פונקציה Swap – הצעה 1 ModuleModule1 Sub Swap(ByVal first AsInteger, ByVal second AsInteger) Dim temp AsInteger temp = first first = second second = temp Console.WriteLine("The first variable is now " & first) Console.WriteLine("The second variable is now " & second) EndSub Sub Main() Dim x AsInteger = 4 Dim y AsInteger = 5 Swap(x, y) Console.WriteLine("x is now " & x) Console.WriteLine("y is now " & y) EndSub EndModule

  4. פונקציה Swap – הצעה 2 משתנים גלובליים ModuleModule1 Dim x AsInteger = 4 Dim y AsInteger = 5 Sub Swap() Dim temp AsInteger temp = x x = y y = temp Console.WriteLine("The first variable is now " & x) Console.WriteLine("The second variable is now " & y) EndSub Sub Main() Swap() Console.WriteLine("X is now " & x) Console.WriteLine("y is now " & y) Console.ReadKey() EndSub EndModule

  5. byVal , byRef

  6. פונקציה Swap – הצעה 3 byRef ModuleModule1 Sub Swap(ByRef first AsInteger, ByRef second AsInteger) Dim temp AsInteger temp = first first = second second = temp Console.WriteLine("The first variable is now " & first) Console.WriteLine("The second variable is now " & second) EndSub Sub Main() Dim x AsInteger = 4 Dim y AsInteger = 5 Swap(x, y) Console.WriteLine("X is now " & x) Console.WriteLine("y is now " & y) Console.ReadKey() EndSub EndModule

  7. פונקציות function

  8. פונקציה - Function • "פונקציה" (Function) היא אוסף של פקודות המבצעות מטלה ומחזירות ערך • השגרה מתחילה ב Function nameOfSub() As returnType • ומסתיימת ב End Function • באמצע יופיעו הפקודות המרכיבות את השגרה. • והחזרה של ערך, באחד משני הדרכם: • return xxxx • nameOfSub = xxxx • נשתמש ב Function כאשר יש צורך באיגוד של מספר פקודות ביחד ויש צורך במתן משוב לאחר ביצוע הפקודות

  9. פונקציה עם החזרת ערך ModuleModule1 FunctionAskAddTwo() AsInteger Dim x AsInteger x = Console.ReadLine() Return x + 2 EndFunction Sub Main() Dim x AsInteger x = AskAddTwo() Console.WriteLine("X is now " & x) Console.ReadKey() EndSub EndModule

  10. פונקציה עם החזרת ערךוהעברת פרמטר ModuleModule1 FunctionPlusTwo(ByVal first AsInteger) AsInteger Return first + 2 EndFunction Sub Main() Dim x AsInteger x = PlusTwo(5) Console.WriteLine("X is now " & x) Dim y AsInteger y = PlusTwo(2) + PlusTwo(7) Console.WriteLine("Y is " & y) Console.ReadKey() EndSub EndModule

  11. פונקציה עם החזרת ערךוהעברת כמה פרמטרים ModuleModule1 Functionmult(ByValfirst AsInteger, ByVal second AsInteger, ByVal third AsInteger) AsInteger Return first * second + third * first EndFunction Sub Main() Dim x, y, z AsInteger z = 3 x = 4 y = 5 Console.WriteLine("What??? " & mult(z, x, y)) Console.WriteLine("What??? " & mult(x, y, z)) Console.ReadKey() EndSub EndModule

  12. סברוטינהadd – משיעור קודם ModuleModule1 Sub Add(ByVal x AsInteger, ByVal y AsInteger) Dim sum AsInteger sum = x + y Console.WriteLine("The sum is " & sum) EndSub Sub Main() Dima AsInteger = 20, b AsInteger = 15 Add(a, b) 'Console.WriteLine("The sum is " & sum)אי אפשר לעשות את זה. Console.ReadKey() EndSub EndModule

  13. פונקציה add – שיפור ModuleModule1 Function Add(ByVal x AsInteger, ByVal y AsInteger) AsInteger Dim sum AsInteger sum = x + y Return sum EndFunction Sub Main() Dim res AsInteger Dima AsInteger = 20, b AsInteger = 15 res = Add(a, b) Console.WriteLine("The sum of {0} and {1} is {2}" ,a,b,res) res = Add(a, b) + 20 Console.WriteLine("The sum of {0},{1} and 20 is {2}", a,b,res) Console.ReadKey() EndSub EndModule

  14. דוגמא נוספת – החזרת ערך ללא שימוש ב return ModuleModule1 PublicFunction print(ByVal x AsInteger, ByVal y AsInteger) AsString print = "Good morning " & x + y EndFunction Sub Main() DimiAsInteger, j AsInteger, stAsString Fori = 1 To 10 j = 2 st = print(i, j) Console.WriteLine(st) 'Console.WriteLine(print(i, j)) Next Console.ReadKey() EndSub EndModule

  15. פונקציה המקבלת מספרn ומחזירה n! ModuleModule1 FunctionAtzeret(ByVal first AsInteger) AsInteger Dim product AsInteger = 1 DimiAsInteger Fori = 2 To first product *= i Next Return product EndFunction Sub Main() Console.WriteLine("What??? " & Atzeret(5)) Console.ReadKey() EndSub EndModule

  16. פונקציה המקבלת שני מספרים ומחזירה את הראשון בחזקת השני ModuleModule1 FunctionChezkat(ByVal first AsInteger, ByVal second AsInteger) AsInteger Dim product AsInteger = 1 DimiAsInteger Fori = 1 To second product *= first Next Return product EndFunction Sub Main() Console.WriteLine("What??? " & Chezkat(2, 3)) Console.WriteLine("What??? " & Chezkat(4, 2)) Console.WriteLine("What??? " & Chezkat(10, 3)) Console.ReadKey() EndSub EndModule

  17. פונקציה המקבלת ציון מספרי ומחזירה ציון במחרוזת ModuleModule1 Function Grade(ByVal first AsDecimal) AsString Dim answer AsString = "Better next time" If (first < 100 And first > 90) Then Return"Meule" ElseIf (first <= 90 And first > 80) Then Return"Tov Meod" EndIf Return answer EndFunction Sub Main() Dim x AsString x = Grade(85) Console.WriteLine("x is now " & x) Console.WriteLine("x is now " & Grade(40)) EndSub EndModule

  18. סיכום המושגים "מקבלת" "מחזירה" • כאשר נאמר שפונקציה או סברוטינה "מקבלת" – הכוונה לפרמטר (ארגומנט) • אין הכוונה שיבוצע קלט בתוך הסברוטינה/ פונקציה . • יש לבצע קלט בתוך סברוטינה/ פונקציה אך ורק אם נאמר בפירוש. • כאשר נאמר שפונקציה "מחזירה" – הכוונה להחזרה באמצעות ארגומנט • אין הכוונה שיבוצע פלט בתוך הפרוצדורה. • יש לבצע פלט בתוך הפרוצדורה אך ורק אם נאמר בפירוש.

More Related