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

Preview:

DESCRIPTION

הרצאה 7. מבוא למדעי המחשב לתעשייה וניהול. סברוטינות subroutines. שימוש חוזר בקטעי קוד ומודולריות. מניע 1: נניח שכתבנו קטע קוד המבצע מטלה מסוימת למשל - מציאת מינימום, חישוב ממוצע, הדפסה, קריאת קלט רוצים לחזור על אותה המטלה יותר מפעם אחת (לאו דווקא ברצף) האם חייבים לכתוב שוב את אותו הקוד? - PowerPoint PPT Presentation

Citation preview

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

7הרצאה

סברוטינות subroutines

ומודולריות קוד בקטעי חוזר שימוש 1מניע:

מסוימת מטלה המבצע קוד קטע שכתבנו נניח , , , קלט - קריאת הדפסה ממוצע חישוב מינימום מציאת למשל

אחת מפעם יותר המטלה אותה על לחזור רוצים) ברצף) דווקא לאו

? הקוד אותו את שוב לכתוב חייבים האם 2מניע:

, סדר למען משמעות בעלי לחלקים הקוד את לחלק רוצים , נוחה כתיבה נוחה קריאה

?

subroutineשגרה -

Subשגרה - ( " המבצעות( subroutineשגרה" פקודות של אוסף היא

מטלה ב מתחילה השגרה

Sub nameOfSub() ב ומסתיימת

End Sub. השגרה את המרכיבות הפקודות יופיעו באמצע

ב פקודות Subנשתמש מספר של באיגוד צורך יש כאשרביחד

הפקודות איןו ביצוע לאחר משוב במתן צורך

Subל 1דוגמאModule Module1

Sub Print() Console.WriteLine("Im in the sub") End Sub

Sub Main() Print() Console.WriteLine("Im in main") Print() Console.ReadKey() End Sub

End Module

Subל 2דוגמאModule Module1

Sub Print() Console.WriteLine("Im in the sub") End Sub

Sub Main()

For i As Integer = 0 To 9 Print() Next Console.ReadKey() End Sub

End Module

Module Module1

Sub AddNumbers()

Dim first As Integer

Dim second As Integer

Dim answer As Integer

Console.WriteLine("Please type a number")

first = Console.ReadLine()

Console.WriteLine("Please type another number")

second = Console.ReadLine()

answer = first + second

Console.WriteLine("The total is " & answer)

End Sub

Sub Main()

AddNumbers()

Console.ReadKey()

End Sub

End Module

Sub ל 3דוגמא

פרמטר- Sub ל 4דוגמא העברתModule Module1

Sub Print(ByVal x As Integer) Console.WriteLine("Im in the sub, number " & x) End Sub

Sub Main() Dim a As Integer = 1 Print(a) a = 2 Print(a) Console.ReadKey() End Sub

End Module

פרמטרים- Sub ל 5דוגמא כמה העברתModule Module1

Sub Add(ByVal x As Integer, ByVal y As Integer)

Dim sum As Integer

sum = x + y

Console.WriteLine("The sum is " & sum)

End Sub

Sub Main()

Add(2, 3)

Dim a As Integer = 20, b As Integer = 15

Add(a, b)

'Console.WriteLine("The sum is " & sum) אפשר איזה את .לעשות

Console.ReadKey()

End Sub

End Module

משתנים של הגדרה תחומי בקוד שונים במקומות משתנים להגדיר ניתן

( המשתנה איפה ההגדרה תחום על משפיע ההגדרה מיקוםמוכר(

( מקומי (localמשתנה שמוכר שגרה רקמשתנה מסוימתבתוך בתוך בתוך ) Subמגדירים (Functionאו

( גלובלי (globalמשתנה התוכנית חלקי בכל שמוכר משתנה , בתוך לא המודול בתוך בתוך ) Subמגדירים לא וגם

Function)

Module Module1

Dim b As Integer

Sub mySub()

Dim a As Integer = 6

a = a + 1

b = 5

'c = 87

End Sub

Sub Main()

Dim c As Integer

c = c * 2

b = 8

Console.WriteLine(b)

mySub()

'a = 4 +2

Console.WriteLine(b)

End Sub

End Module

Sub ל 6דוגמא הגדרה תחומי

Module Module1

Public Sub print(ByVal j As Integer)

Console.WriteLine("Good morning" & j)

End Sub

Sub Main()

Dim i As Integer

For i = 1 To 10

print(i)

Next

Console.ReadKey()

End Sub

End Module

Sub ל 7דוגמא

Module Module1

Public Sub print(ByVal j As Integer, ByVal k As Integer)

Console.WriteLine("Good morning " & j + k)

End Sub

Sub Main()

Dim i As Integer, j As Integer

For i = 1 To 10

j = 2

print(i, j)

Next

Console.ReadKey()

End Sub

End Module

!Sub ל 8דוגמא המשתנים- של הגדרה לתחומי לב שימו

עד שלמדנו מה לתרגול דוגמאותכה...

Dim x As Integer

Dim IsSpace As Boolean = False

x = Console.Read()

  While x <> AscW(vbCr)

If x = AscW(" ") Then

'If Not (IsSpace) Then

If IsSpace = False Then

IsSpace = True

Console.Write(ChrW(x))

End If

Else

Console.Write(ChrW(x))

IsSpace = False

End If

  x = Console.Read()

End While

: ממחרוזת רווחים הורדת

Dim x As Integer

Dim result, val As Integer

x = Console.Read()

val = x - AscW(0)

result = result + val * 1

x = Console.Read()

val = x - AscW(0)

result = result + val * 10

Console.WriteLine("the reversed number is " & result)

: ספרות היפוך

: ' ... י פיבונאצ סדרת מתמטיקה קצת' י פיבונאצ   סדרת הראשונים  שאיבריה הסדרה -1היא , 1ו

קודמיו שני לסכום שווה בה אחר איבר וכל

Dim a As Integer = 0, b As Integer = 1, i As Integer, n As Integer

Console.WriteLine("Enter a even n")

n = Console.ReadLine()

Console.WriteLine(a)

Console.WriteLine(b)

If n Mod 2 = 0 Then

For i = 1 To (n - 2) / 2

a = a + b

Console.WriteLine(a)

b = a + b

Console.WriteLine(b)

Next

Else

Console.WriteLine("n has to be even")

End If

: ' י פיבונאצ סדרת

Dim num, guess As Integer

Dim RandomClass As New Random()

num = RandomClass.Next(1, 100)

Do

Console.WriteLine("Please try to guess the number")

guess = Console.ReadLine()

If (guess > num) Then

Console.WriteLine("You guessed too high")

ElseIf (guess < num) Then

Console.WriteLine("You guessed too low")

Else

Console.WriteLine("You got it")

End If

Loop While (num <> guess)

 

: ניחוש משחק

Dim b As Integer = 2, i As Integer = 3

?'iו bהאם חיוני לקבוע את ערכי

Dim degel_Int As Integer = 0

Randomize()

b = CInt(Rnd() * 60 + 10)

Console.WriteLine(b)

For i = 2 To b - 1

If b Mod i = 0 Then

degel_Int = 1

End IfNext

If degel_Int = 0 Then

Console.WriteLine("yes")

Else

Console.WriteLine("no")

End If

הוא אקראי מספר האם:) א ) ראשוני

Dim b As Integer = 2, i As Integer = 3

Dim degel As Boolean = False

Randomize()

b = CInt(Rnd() * 60 + 10)

Console.WriteLine(b)

For i = 2 To b - 1

If b Mod i = 0 Then

degel = True

End If

Next

If degel = False Then 'using a Boolean degel

'If Not (degel) Then 'this does the same as the line above

Console.WriteLine("yes")

Else

Console.WriteLine("no")

End If

הוא אקראי מספר האם:) ב ) ראשוני

Dim a As Integer = 1, i As Integer = 0, n As Integer = 0

Randomize()

n = Int(8 * Rnd())

If n > 0 Then

For i = 1 To n

a = a * i

Next

End If

Console.WriteLine("the factorial of " & n & "is: " & a)

: אקראי מספר של עצרת

Recommended