
הטקסט המלא של הדקות הראשונות בהרצאה «Sending Arguments to a Function» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מתקדמים בנושא הפונקציות ומגיעים למצב בו פונקציה מקבלת פרמטר. מה זה אומר? בואו קודם כל נבנה איזושהי פונקציה שמדפיסה איזושהי הודעה print, בוא נניח Hello.
עכשיו כל מה שאנחנו רוצים לעשות זה to print Hello על המסך, ובוא נניח שזה איזושהי כותרת שאנחנו רוצים לבצע, אז אנחנו יכולים לעשות איזה עוד כמה דברים פה, נניח בואו נדפיס כזה דבר לפני ובואו נדפיס כזה דבר אחרי, ויש לנו פונקציה שעושה איזו הדפסה מסוימת של איזושהי כותרת בצורה כזאת,
נניח ככה. אוקיי, אנחנו קוראים לה print Hello, מריצים ואנחנו רואים את הכותרת הזאת שאנחנו רוצים להציג על המסך. מה הבעיה עם הפונקציה הזאת שבכל מה שהיא יודעת לעשות כל פעם שנקרא לה היא יודעת להדפיס רק לא על המסך אבל מה קורה אם אנחנו רוצים שהפונקציה הזאת שכתבנו ולקח לנו זמן לכתוב אותה תוכל להדפיס כל מיני כותרות שונות אז
לא הגיוני שעבור כל כותרת שנרצה להדפיס נבנה פונקציה אחרת לדוגמה print welcome ופשוט היא תדפיס את הכותרת שלה וממש לא יהיה ריל לעשות דבר כזה, לא יהיה ממשי לעשות דבר כזה בתוכנית, ולמרות שזה כרגע עובד, print welcome, אנחנו רואים שיש לנו Hello ו-Welcome, שתי כותרות שונות, זה לא כזה דבר נכון לבצע, כי מה קורה אם יש
לנו, לא יודע, 40 כותרות שונות שאנחנו רוצים בכל מיני מקומות בתוכנית? לא נבנה 40 פונקציות רק בשביל הקונספט הזה. אז הפונקציה שאנחנו בונים יכולה לקבל משתנים או פרמטרים.
הדבר הנכון זה לקרוא לזה Argument. ארגומנט זה המשתנה שהפונקציה מקבלת והיא מקבלת אותו לסוגריים שלה, ממש כאילו שאנחנו פותחים משתנה רגיל. אז אם אנחנו רוצים לבנות פונקציה כזאת בצורה נכונה, לא נשכפל את זה וגם לא נקרא לה print Hello, נקרא לה print Header ונשלח את ההדר לסוגריים String Header
ואז אנחנו יכולים כאן להציג את ההדר, בואו נרווח פה את הילדות האלה וכעת כאשר אנחנו רוצים לקרוא לפונקציה בואו ניפטר מכל הקריאות הקודמות האלה אנחנו כותבים print header וכשאנחנו פותחים סוגריים אנחנו צריכים להביא לפונקציה את אותו ערך שהיא מצפה לקבל.
הפונקציה הזאת מצפה לקבל משתנה שנקרא header אבל היא מצפה לקבל משתנה אחד מכרוז T ושימו לב שכעת יש לי שגיאה אם אני אנסה לשלוח 123 תהיה לי שגיאה אם אני אנסה לשלוח 123.456 תהיה לי שגיאה כי כל אלה טיפוסים אחרים.
מה שאני צריך לשלוח זה רק סטרינג. בואו נשלח לה Hello ובואו ניקח את אותה פונקציה בדיוק ובואו נשלח לה Welcome. נריץ והנה יש לנו פונקציה אחת שמסוגלת לעשות את כל מה שמקודם עשינו בעזרת שתי פונקציות.
הנקודה היא פונקציה יכולה לקבל משתנים לסוגריים והמשתנים האלה נקראים ארגומנטים, ואנחנו נאלצים עכשיו לשלוח לה את המשתנים האלה, אנחנו בעצם רוצים לשלוח לה כי זה מה שהיא מצפה לקבל, כי היא צריכה לעבוד איתם.
האם פונקציה יכולה לקבל כמה משתנים? בהחלט. בואו נבנה פונקציה שמציגה average והפונקציה תקבל int, בואו נקרא לו num1,