site map who made it ?
   .ניתן לשלוח להן פרמטרים והן יכולות להחזיר ערכים. C פועלות בצורה דומה לפונקציות בשפת Tcl-פרוצדורות ב

 : הסינטקס להגדרת פרוצדורה
proc name argList body

מרגע שנוצרה פרוצדורה, מעמדה הוא כשל כל פקודה מובנית בשפה. ניתן לקרוא לה בשמה בצירוף ארגומנטים ולהשתמש בערך המוחזר לצורך השמה. ברירת המחדל של הערך המוחזר מפרוצדורה היא התוצאה של הפקודה .return האחרונה בגוף הפרוצדורה. על-מנת להחזיר ערך אחר ניתן להשתמש בפקודת 
  .בכל מקום אחר בפרוצדורה יגרום ליציאה מהפרוצדורה והחזרת הערך המצוין return-שימוש ב
:הדוגמא הבאה תמחיש את הדרכים השונות לשימוש בפרוצדורות 

proc sum_proc {a b} {
    return [expr $a + $b]
}

proc magnitude {num} {
    if {$num > 0} {
        return $num
    } 
    set num [expr $num * (-1)]
    return $num
}

set num1 12
set num2 14
set sum [sum_proc $num1 $num2]

puts "The sum is $sum"
puts "The magnitude of 3 is [magnitude 3]"
puts "The magnitude of -2 is [magnitude -2]"

==> The sum is 26
==> The magnitude of 3 is 3
==> The magnitude of -2 is 2

בדוגמא נוצרות שתי פרוצדורות, הראשונה מחזירה סכום של שני ארגומנטים והשניה מחזירה ערך מוחלט. אחרי הגדרת . .הפרוצדורות מוגדרים שלושה משתנים גלובליים כאשר האחרון מהם מקבל את הערך המוחזר של פרוצדורת הסכום
.כדי לשערך את ערכם של המשתנים expr-הפונקציות משתמשות בפקודת ה

בפרוצדורה השניה ניתן  לראות דוגמא ליצירת משתנים בתוך גוף הפרוצדורה. משתנים אלה הם מקומיים בלבד ולא יהיה   : global-ניתן לגשת אליהם מרגע סיום הפרוצדורה. על מנת לגשת למשתנים גלובליים יש להשתמש ב


proc dumb_proc {} {
    set myvar 4
    puts "The value of the local variable is $myvar"
    global myglobalvar
    puts "The value of the global variable is $myglobalvar"
}

set myglobalvar 79
dumb_proc

==> The value of the local variable is 4
==> The value of the global variable is 79

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

 

 
< המדריך
פרוצדורות
פרוצדורות - דוגמאות
לעמוד הבא
למעלה
לעמוד הקודם