PracticU

פונקציה - Function

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח משחקים יוניטי - Unity - שפת #C › פונקציה - Function
מילון מושגים:
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
אופרטור - סימן בקוד שמבצע פעולה על ערכים, כמו חיבור, השוואה או פעולה לוגית.

פונקציה - Function
פונקציה היא קטע קוד בעל שם, שאפשר לקרוא לו מכל מקום בתוכנית במקום לכתוב אותו שוב ושוב. כך מפרידים את הלוגיקה לחלקים ברורים.
הגדרה וקריאה
1. פונקציה פשוטה: void printHello() לא מחזירה ערך, ובכל קריאה היא מריצה את הקוד שבתוכה, למשל הדפסה ולולאה.
2. קריאה: הפונקציה נקראת בשמה עם סוגריים. כשהקריאה מגיעה, הקוד נכנס לפונקציה, רץ, וחוזר למקום הקריאה וממשיך משם.
פרמטרים וערך מוחזר
1. פרמטרים: בהגדרה מציינים את הסוגים והשמות, למשל int number1, int number2. בקריאה שולחים ערכים בפועל, שנקראים ארגומנטים. אם לא שולחים מספיק ארגומנטים, המהדר מציין שחסר ארגומנט.
2. ערך מוחזר: במקום void כותבים סוג, למשל int, והפונקציה מחזירה ערך בעזרת return. כך אפשר לשמור את התוצאה במשתנה, למשל int sum = calculateSum(2, 6);.
שרשור מחרוזות
האופרטור + מחבר מחרוזות. כשהביטוי מתחיל במחרוזת, גם מספרים שמחוברים אחריה נכללים כטקסט. להמרה של מספר למחרוזת משתמשים ב-ToString().
תרגיל
להדפיס את לוח הכפל בעשר שורות, כשכל שורה מכפילה את מספר השורה. המרצה לא בודק את התרגיל, והוא נועד לוודא שההבנה של הפונקציות, הלולאות והמשתנים מספיקה.
אחרי השיעור אפשר להגדיר פונקציה עם פרמטרים, לקרוא לה ולקבל ממנה ערך.
השיעור הבא בקורס: עקרונות תכנות מונחה עצמים - Unity OOP

פרקי ההרצאה: פונקציה - Function

  1. 00:00

    מה זו פונקציה ולמה משתמשים בה

  2. 00:42

    הגדרת פונקציה ו-void כערך חוזר

  3. 01:46

    קריאה לפונקציה מכמה מקומות בקוד

  4. 02:27

    סדר ביצוע הקוד כשנכנסים לפונקציה

  5. 03:51

    פרמטרים וארגומנטים לפונקציה

  6. 05:50

    החזרת ערך מפונקציה עם return

  7. 07:14

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

תמלול ההרצאה: פונקציה - Function

הטקסט המלא של הדקות הראשונות בהרצאה «פונקציה - Function» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

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

  2. 00:35

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

  3. 01:09

    סוג של הערך המוחזר מהפונקציה אני לא אכנס לזה כרגע אני רק רוצה להגיד שאם אני לא רוצה להחזיר שום ערך אני כותב void ואז אני נותן את השם של הפונקציה נניח הדוגמה הבסיסית ביותר שאני יכול לתת כרגע print hello כן מזכיר לנו משהו אבל לא בדיוק void print סוגריים פתח וסגור במקרה הזה וסוגריים מסולסלים ופה אני יכול פשוט לקרוא לפרינט הלו ועכשיו

  4. 01:52

    הפונקציה הזאת היא לא מאוד יעילה כן אבל לצורך ההדגמה הבסיסית ביותר של מה זה הפונקציה אז הנה יש לי פה הגדרתי את פרינט הלו ואני יכול בכל שלב שהוא בתוך הקוד שלי לקרוא לפונקציה הזאת אני יכול למשל פה לקרוא לפרינט הלואו ואני יכול פה לקרוא לפרינט הלואו זאת אומרת אני לא מוגבל בקטע הזה ודבר

  5. 02:24

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

  6. 02:43

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

  7. 03:31

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

  8. 03:51

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

  9. 04:24

    מצפה לקבל איזה סוגים אינט אינט אחד אינט אינט שתיים ומה שהפונקציה הזאת תעשה פרינט אינט אחד פלוס אינט שתיים. כן הפונקציה הזאת גם כן לא מאוד גאונית אבל בשביל להדגים את הנושא של הפרמטרים עכשיו הדבר האחרון שאני אעשה פה זה print sum של 2 ו-6 היא מצפה לקבל שני אינטג'רים וזה מה שאני שולח לה אם אני לא אשלח לה שני אינטג'רים

  10. 05:09

    אז קבל הודעה there is no argument given that corresponds to the correct int 2. אוקיי הוא אומר לי לא שלחת את הארגיומנט שני אוקיי ושוב חידוד קל כאשר אני מגדיר את הפונקציה ובתוך הפונקציה אלה נקראים פרמטרים כאשר אני קורא לה ואני שולח את הערכים הערכים האלה הם הארגומנטים שאני שולח כפרמטרים הפונקציה

  11. 05:39

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

  12. 06:25

    ואני לא רוצה שזה יחזיר לי כלום אני רוצה שזה יחזיר לי משהו אז במקרה הזה בוא נעשה שפשוט מחזיר לי את הסכום אז אם זה מחזיר לי סכום שהוא אינטג'ר אז הריטרן טייפ שלי הוא אינטג'ר וגם נשנה את השם לקלקולייט סאם ופה איך אני מחזיר ערך למי שקרא לי אני עושה פה ריטרן ואז אינט 1 פלוס אינט 2 אוקיי

  13. 06:35

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

  14. 07:20

    אז הפונקציה הזאת מחזירה לי אינטג'ר כמו שאמרנו ביטויים מחזירים אז הפונקציה מחזירה כלומר אני יכול להגדיר פה int sum שווה calculate sum של 2 ו6 אוקיי ואז שוב לצורך ההדגמה print sum בוא נריץ את זה וההדפסה נשארה 8 אותו דבר אבל פה ההדפסה היא מחוץ לפונקציה הפונקציה שלי המתודה המתוד קלקולייט סאם מחזירה לי בעצם את הסכום של שתיים ושש אוקיי מפה אני רוצה

  15. 08:14

    היה דבר נוסף שרציתי דבר אחרון כן

לקורס המלא: קורס פיתוח משחקים ביוניטי

ההרצאה הקודמת: Array - Enum

ההרצאה הבאה: עקרונות תכנות מונחה עצמים - Unity OOP

הרצאות קשורות מקורסים אחרים

  • What is a Function
  • פונקציה Scalar - עם פרמטרים
  • Asynchronous - xxxAsync Function
  • שפת JavaScript - פונקציה רגילה

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב