[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.38,0:00:05.75,Default,,0000,0000,0000,,עכשיו בואו נדבר על משהו שאתם משתמשים\Nבו כל הזמן: פונקציות. Dialogue: 0,0:00:05.75,0:00:10.75,Default,,0000,0000,0000,,בכל פעם שאתם משתמשים בפקודה\Nכמו ()rect או ()fill או ()text Dialogue: 0,0:00:10.75,0:00:14.00,Default,,0000,0000,0000,,אתם בעצם קוראים לפונקציות, והפונקציות\Nהאלו מציירות מה שאמרתם להן לצייר. Dialogue: 0,0:00:14.54,0:00:20.64,Default,,0000,0000,0000,,מהי פונקציה בעצם? זהו אוסף של קוד שאנחנו\Nמקבצים יחד ונתנו לו שם מכיוון שאנחנו רוצים Dialogue: 0,0:00:20.64,0:00:23.64,Default,,0000,0000,0000,,להשתמש בפונקציונאליות של הקוד הזה\Nפעמים נוספות בהמשך. Dialogue: 0,0:00:23.64,0:00:28.58,Default,,0000,0000,0000,,תחשבו על ()rect, מה בעצם ()rect עושה?\Nהיא בסך הכל מצייאת ארבעה קווים נכון? Dialogue: 0,0:00:28.58,0:00:31.58,Default,,0000,0000,0000,,אנחנו יכולים פשוט לעשות את זה עם\Nפונקציית ()line נכון? Dialogue: 0,0:00:31.58,0:00:40.97,Default,,0000,0000,0000,,וכאן יש לנו משהו שנראה כמו מלבן.\Nאבל אנחנו מבינים שאנחנו בעצם רוצים\Nלשרטט ריבוע כמה פעמים, וזה יהיה מאוד מעצבן Dialogue: 0,0:00:40.58,0:00:44.97,Default,,0000,0000,0000,,לעשות את המתמטיקה כל פעם כדי להבין איך\Nלצייר קו מפינה אחת לשנייה וכן הלאה. Dialogue: 0,0:00:44.97,0:00:54.97,Default,,0000,0000,0000,,במקום, אנחנו פשוט משתמשים בפונקצייה ()rect,\Nוהפונקציה הזו יודעת לעשות בדיוק את מה שארבעת\Nשורות הקוד האלו עושות, אבל בהרבה פחות קוד. Dialogue: 0,0:00:54.97,0:01:02.75,Default,,0000,0000,0000,,אז זה די מגניב, ו-()rect היא אחת מהפונקציות\Nהאלו שנעשה בהן שימוש בכל התוכניות שלנו\Nכאן באקדמיית קאהן. Dialogue: 0,0:01:02.75,0:01:07.53,Default,,0000,0000,0000,,אבל - אתם יכולים לעשות גם פונקציות משלכם\Nעל מנת להשתמש בהן בתוכניות. Dialogue: 0,0:01:07.53,0:01:13.98,Default,,0000,0000,0000,,לדוגמא, בואו נגיד שאנחנו עושים תוכנית ואנחנו\Nרוצים לצייר את צ׳רצ׳יל הברווזון מספר פעמים - Dialogue: 0,0:01:13.98,0:01:20.78,Default,,0000,0000,0000,,אולי בגלל שאנחנו הולכים לספר את סיפור חייו\Nשל צ׳רצ׳יל ורוצים להראות אותו בכל גיל בחייו. Dialogue: 0,0:01:20.78,0:01:24.24,Default,,0000,0000,0000,,אז, הנה איך שהקוד שלנו שמצייר את צ׳רצ׳יל\Nאמור להתחיל: Dialogue: 0,0:01:24.24,0:01:32.77,Default,,0000,0000,0000,,יש לנו את המשתנים faceX ו-faceY על מנת\Nלאחסן את אמצע הפרצוף, ואז אחנו מציירים את\Nהעיניים והפה ביחס למשתנים האלו. Dialogue: 0,0:01:32.77,0:01:39.70,Default,,0000,0000,0000,,נכון לעכשיו התוכנה רואה את הקוד, והוא לא בתוך\Nפונקציה מסויימת - הוא פשוט רץ (מבוצע) והוא רץ\Nרק פעם אחת. Dialogue: 0,0:01:39.70,0:01:43.34,Default,,0000,0000,0000,,אוקיי, בואי נהפוך את זה לפונקציה. Dialogue: 0,0:01:43.34,0:01:49.34,Default,,0000,0000,0000,,אנחנו עושים את זה בצורה דומה מאוד לצורה\Nשבה אנחנו מסתכלים על משתנים, מכיוון שזה\Nבדיוק מה שאנחנו עושים. Dialogue: 0,0:01:49.34,0:01:58.96,Default,,0000,0000,0000,,אז אנחנו אומרים ש"var drawWinston״ -\Nניתן לזה שם יפה, מאוד תיאורי - ואז ״=״, אבל כאן,\Nבמקום לכתוב מספר או טקסט, אנחנו הולכים Dialogue: 0,0:01:58.96,0:02:10.96,Default,,0000,0000,0000,,לכתוב את המילה פונקציה באנגלית ״function״\N(וודאו שאתם מאייתים נכונה) ואז סוגריים ריקים ״()״\Nואז נפתח ונסגור סוגריים מסולסלים וכמובן נקודה פסיק. Dialogue: 0,0:02:10.96,0:02:16.79,Default,,0000,0000,0000,,אז מה שאנחנו צריכים לעשות זה לשים את כל מה\Nשאנחנו רוצים שיהיה בתוך הפונקציה שלנו בתוך Dialogue: 0,0:02:16.79,0:02:26.79,Default,,0000,0000,0000,,הסוגריים המסולסלים. אז אחנו הולכים לקחת\Nאת כל הקוד הזה, לשים אותו בתוך הפונקציה\N(ליישר אותו כראוי), והנה! Dialogue: 0,0:02:26.79,0:02:33.50,Default,,0000,0000,0000,,עכשיו מה שיש לנו בעצם זה משתנה שמאחסן\Nפונקציה - כך שבעצם נתנו שם לבלוק הקוד הזה Dialogue: 0,0:02:33.50,0:02:43.96,Default,,0000,0000,0000,,כך שנוכל להגיד לתוכנית שלנו בכל נקודת\Nזמן, היי תריץ את הקוד הזה עם השם שאמרתי לך!.\Nאז אנחנו עושים זאת לטובת שימוש חוזר. Dialogue: 0,0:02:43.96,0:02:48.77,Default,,0000,0000,0000,,שימו לב אבל, שאין לנו את ווינסטון יותר!\Nאיבדנו את ווינסטון! לאן הוא הלך? Dialogue: 0,0:02:48.77,0:02:54.20,Default,,0000,0000,0000,,אוקיי, מה שקרה הוא שברגע שלקחנו את הפונקציה\Nהזו והעברנו אותה למקום אחר, אמרנו לתוכנית שלנו Dialogue: 0,0:02:54.20,0:03:01.07,Default,,0000,0000,0000,,״היי, יש פה מלא קוד שאנחנו רוצים שירוץ\Nאחר כך, אבל רק כשאני אומר לך להריץ אותו״ Dialogue: 0,0:03:01.07,0:03:09.40,Default,,0000,0000,0000,,אז אנחנו חייבים להגיד לו להריץ את הקוד, מה שאומר\Nשאנחנו חייבים לקרוא לפונקציה - בדיוק כפי שאנחנו\Nעושים עם ()eclipse או ()rect או ()line. Dialogue: 0,0:03:09.40,0:03:21.07,Default,,0000,0000,0000,,אז אנחנו פושטים כותבים את שם\Nהפונקציה 'drawWinston') ואחריה הסוגריים\Nשלנו ונקודה פסיק והופה! יש לנו את ווינסטון! Dialogue: 0,0:03:21.07,0:03:29.67,Default,,0000,0000,0000,,אוקיי! אני חושבת שזה מגניב, אבל אתם אולי לא\Nתחשבו שזה מגניב מכיוון שכל מה שעשינו הוא לגרום\Nלתוכנית לעבוד בדיוק כמו מקודם, קצת מטופש לא? Dialogue: 0,0:03:29.67,0:03:37.10,Default,,0000,0000,0000,,כל הטעם מאחורי פונקציות הוא שאנחנו יכולים\Nלהשתמש בהם שוב. אז בואו נעשה את זה עכשיו.\Nאנחנו יכולים פשוט לשכפל את הקריאה לפונקציה Dialogue: 0,0:03:37.10,0:03:50.90,Default,,0000,0000,0000,,ולשכפל שוב ושוב. אבל זה נראה אותו הדבר.\Nזה עובד, זה מצייר את ווינסטון מספר פעמים,\Nאבל הבעיה היא שהוא תמיד באותו המקום. Dialogue: 0,0:03:50.90,0:03:59.63,Default,,0000,0000,0000,,אם היה לנו ראיית רנטגן אז היינו יכולים לראת את\Nווינסטון, אבל אין לנו! Dialogue: 0,0:03:59.63,0:04:04.84,Default,,0000,0000,0000,,אבל, אנחנו יכולים לעשות שינוי קטן לפונקציה\Nשלנו שאולי כן ייגרום להפרדה כלשהי. Dialogue: 0,0:04:04.84,0:04:12.93,Default,,0000,0000,0000,,אז אתם רואים את faceX ו-faceY - הם\Nתמיד 202 ו-208? אנחנו יכולים לשנות אותם בעזרת\Nהפונקציה ()random. בוא ניקח random Dialogue: 0,0:04:12.93,0:04:18.53,Default,,0000,0000,0000,,מ-50 עד 350 וזה ייצר מספר בין שני אלה -\Nואנחנו יכולים לעשות את אותו הדבר כאן - Dialogue: 0,0:04:18.53,0:04:30.13,Default,,0000,0000,0000,,וכך כל פעם שהפונקציה נקראת, היא מייצרת\Nמספר רנדומלי חדש. אם נעשה ריסטרט,\Nנוכל להמשיך לקבל מספרים אקראיים. Dialogue: 0,0:04:30.13,0:04:38.40,Default,,0000,0000,0000,,אם כן, אז אני חושבת שזה מגניב בגלל שזה היה\Nיכול להיות הרבה שורות קוד לכתוב אם לא היה\Nלנו את זה בפונקציה - וזה גם היה כנראה פי 3 קוד. Dialogue: 0,0:04:38.40,0:04:47.24,Default,,0000,0000,0000,,אבל זה עדיין לא הכי עוזר כמו שזה יכל היה להיות.\Nמכיוון שאנחנו כנראה לא רוצים ווינסטון רנדומלי,\Nאנחנו כנראה רוצים להיות מסוגלים למקם\Nאת ווינסטון במקום ספציפי במסך. Dialogue: 0,0:04:47.24,0:04:55.44,Default,,0000,0000,0000,,תישארו איתנו! הסרט הבא מדבר על פונקציות\Nשמקבלות סטרינגים טקסטואלים\Nועושות איתם מגוון דברים