Return to Video

פונקציות (גירסת הוידאו)

  • 0:01 - 0:06
    עכשיו בואו נדבר על משהו שאתם משתמשים
    בו כל הזמן: פונקציות.
  • 0:06 - 0:11
    בכל פעם שאתם משתמשים בפקודה
    כמו ()rect או ()fill או ()text
  • 0:11 - 0:14
    אתם בעצם קוראים לפונקציות, והפונקציות
    האלו מציירות מה שאמרתם להן לצייר.
  • 0:15 - 0:21
    מהי פונקציה בעצם? זהו אוסף של קוד שאנחנו
    מקבצים יחד ונתנו לו שם מכיוון שאנחנו רוצים
  • 0:21 - 0:24
    להשתמש בפונקציונאליות של הקוד הזה
    פעמים נוספות בהמשך.
  • 0:24 - 0:29
    תחשבו על ()rect, מה בעצם ()rect עושה?
    היא בסך הכל מצייאת ארבעה קווים נכון?
  • 0:29 - 0:32
    אנחנו יכולים פשוט לעשות את זה עם
    פונקציית ()line נכון?
  • 0:32 - 0:41
    וכאן יש לנו משהו שנראה כמו מלבן.
    אבל אנחנו מבינים שאנחנו בעצם רוצים
    לשרטט ריבוע כמה פעמים, וזה יהיה מאוד מעצבן
  • 0:41 - 0:45
    לעשות את המתמטיקה כל פעם כדי להבין איך
    לצייר קו מפינה אחת לשנייה וכן הלאה.
  • 0:45 - 0:55
    במקום, אנחנו פשוט משתמשים בפונקצייה ()rect,
    והפונקציה הזו יודעת לעשות בדיוק את מה שארבעת
    שורות הקוד האלו עושות, אבל בהרבה פחות קוד.
  • 0:55 - 1:03
    אז זה די מגניב, ו-()rect היא אחת מהפונקציות
    האלו שנעשה בהן שימוש בכל התוכניות שלנו
    כאן באקדמיית קאהן.
  • 1:03 - 1:08
    אבל - אתם יכולים לעשות גם פונקציות משלכם
    על מנת להשתמש בהן בתוכניות.
  • 1:08 - 1:14
    לדוגמא, בואו נגיד שאנחנו עושים תוכנית ואנחנו
    רוצים לצייר את צ׳רצ׳יל הברווזון מספר פעמים -
  • 1:14 - 1:21
    אולי בגלל שאנחנו הולכים לספר את סיפור חייו
    של צ׳רצ׳יל ורוצים להראות אותו בכל גיל בחייו.
  • 1:21 - 1:24
    אז, הנה איך שהקוד שלנו שמצייר את צ׳רצ׳יל
    אמור להתחיל:
  • 1:24 - 1:33
    יש לנו את המשתנים faceX ו-faceY על מנת
    לאחסן את אמצע הפרצוף, ואז אחנו מציירים את
    העיניים והפה ביחס למשתנים האלו.
  • 1:33 - 1:40
    נכון לעכשיו התוכנה רואה את הקוד, והוא לא בתוך
    פונקציה מסויימת - הוא פשוט רץ (מבוצע) והוא רץ
    רק פעם אחת.
  • 1:40 - 1:43
    אוקיי, בואי נהפוך את זה לפונקציה.
  • 1:43 - 1:49
    אנחנו עושים את זה בצורה דומה מאוד לצורה
    שבה אנחנו מסתכלים על משתנים, מכיוון שזה
    בדיוק מה שאנחנו עושים.
  • 1:49 - 1:59
    אז אנחנו אומרים ש"var drawWinston״ -
    ניתן לזה שם יפה, מאוד תיאורי - ואז ״=״, אבל כאן,
    במקום לכתוב מספר או טקסט, אנחנו הולכים
  • 1:59 - 2:11
    לכתוב את המילה פונקציה באנגלית ״function״
    (וודאו שאתם מאייתים נכונה) ואז סוגריים ריקים ״()״
    ואז נפתח ונסגור סוגריים מסולסלים וכמובן נקודה פסיק.
  • 2:11 - 2:17
    אז מה שאנחנו צריכים לעשות זה לשים את כל מה
    שאנחנו רוצים שיהיה בתוך הפונקציה שלנו בתוך
  • 2:17 - 2:27
    הסוגריים המסולסלים. אז אחנו הולכים לקחת
    את כל הקוד הזה, לשים אותו בתוך הפונקציה
    (ליישר אותו כראוי), והנה!
  • 2:27 - 2:34
    עכשיו מה שיש לנו בעצם זה משתנה שמאחסן
    פונקציה - כך שבעצם נתנו שם לבלוק הקוד הזה
  • 2:34 - 2:44
    כך שנוכל להגיד לתוכנית שלנו בכל נקודת
    זמן, היי תריץ את הקוד הזה עם השם שאמרתי לך!.
    אז אנחנו עושים זאת לטובת שימוש חוזר.
  • 2:44 - 2:49
    שימו לב אבל, שאין לנו את ווינסטון יותר!
    איבדנו את ווינסטון! לאן הוא הלך?
  • 2:49 - 2:54
    אוקיי, מה שקרה הוא שברגע שלקחנו את הפונקציה
    הזו והעברנו אותה למקום אחר, אמרנו לתוכנית שלנו
  • 2:54 - 3:01
    ״היי, יש פה מלא קוד שאנחנו רוצים שירוץ
    אחר כך, אבל רק כשאני אומר לך להריץ אותו״
  • 3:01 - 3:09
    אז אנחנו חייבים להגיד לו להריץ את הקוד, מה שאומר
    שאנחנו חייבים לקרוא לפונקציה - בדיוק כפי שאנחנו
    עושים עם ()eclipse או ()rect או ()line.
  • 3:09 - 3:21
    אז אנחנו פושטים כותבים את שם
    הפונקציה 'drawWinston') ואחריה הסוגריים
    שלנו ונקודה פסיק והופה! יש לנו את ווינסטון!
  • 3:21 - 3:30
    אוקיי! אני חושבת שזה מגניב, אבל אתם אולי לא
    תחשבו שזה מגניב מכיוון שכל מה שעשינו הוא לגרום
    לתוכנית לעבוד בדיוק כמו מקודם, קצת מטופש לא?
  • 3:30 - 3:37
    כל הטעם מאחורי פונקציות הוא שאנחנו יכולים
    להשתמש בהם שוב. אז בואו נעשה את זה עכשיו.
    אנחנו יכולים פשוט לשכפל את הקריאה לפונקציה
  • 3:37 - 3:51
    ולשכפל שוב ושוב. אבל זה נראה אותו הדבר.
    זה עובד, זה מצייר את ווינסטון מספר פעמים,
    אבל הבעיה היא שהוא תמיד באותו המקום.
  • 3:51 - 4:00
    אם היה לנו ראיית רנטגן אז היינו יכולים לראת את
    ווינסטון, אבל אין לנו!
  • 4:00 - 4:05
    אבל, אנחנו יכולים לעשות שינוי קטן לפונקציה
    שלנו שאולי כן ייגרום להפרדה כלשהי.
  • 4:05 - 4:13
    אז אתם רואים את faceX ו-faceY - הם
    תמיד 202 ו-208? אנחנו יכולים לשנות אותם בעזרת
    הפונקציה ()random. בוא ניקח random
  • 4:13 - 4:19
    מ-50 עד 350 וזה ייצר מספר בין שני אלה -
    ואנחנו יכולים לעשות את אותו הדבר כאן -
  • 4:19 - 4:30
    וכך כל פעם שהפונקציה נקראת, היא מייצרת
    מספר רנדומלי חדש. אם נעשה ריסטרט,
    נוכל להמשיך לקבל מספרים אקראיים.
  • 4:30 - 4:38
    אם כן, אז אני חושבת שזה מגניב בגלל שזה היה
    יכול להיות הרבה שורות קוד לכתוב אם לא היה
    לנו את זה בפונקציה - וזה גם היה כנראה פי 3 קוד.
  • 4:38 - 4:47
    אבל זה עדיין לא הכי עוזר כמו שזה יכל היה להיות.
    מכיוון שאנחנו כנראה לא רוצים ווינסטון רנדומלי,
    אנחנו כנראה רוצים להיות מסוגלים למקם
    את ווינסטון במקום ספציפי במסך.
  • 4:47 - 4:55
    תישארו איתנו! הסרט הבא מדבר על פונקציות
    שמקבלות סטרינגים טקסטואלים
    ועושות איתם מגוון דברים
Title:
פונקציות (גירסת הוידאו)
Description:

ניתן לצפות בסרטים נוספים בכתובת:
https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
Turkish
Duration:
04:56

Hebrew subtitles

Revisions