דאַג לויד: אַלע רעכט. אַזוי איצט לאָזן ס מאַכנ אַ טאַקע גרויס טעמע, פֿעיִקייטן. אַזוי ווייַט אין דעם קורס, אַלע די מגילה אַז מיר ווע שוין שרייבן האָבן שוין געשריבן ין פון הויפּט. זיי ניטאָ שיין פּשוט מגילה. איר טאָן ניט דאַרפֿן צו האָבן אַלע די צווייגן און דאס געגאנגען אויף. מיר קענען נאָר פּאַסיק עס אַלע ין פון הויפּט און עס טוט ניט באַקומען טעראַבלי אָוווערוועלמינג. אבער ווי די קורס גייט אויף און ווי איר אָנהייבן צו אַנטוויקלען מגילה ינדיפּענדאַנטלי, זיי ניטאָ מיסטאָמע געגאנגען צו אָנהייבן צו באַקומען אַ פּלאַץ מער ווי 10 אָדער 15 שורות. איר זאל באַקומען הונדערטער אָדער טויזנטער אָדער טענס פון טויזנטער פון שורות פון קאָד. און עס ס טאַקע ניט אַז משוגע אַ געדאַנק. ווי אַזאַ, עס ס מיסטאָמע ניט אַ גוט געדאַנק צו האַלטן אַלץ ין פון הויפּט. עס קענען באַקומען אַ ביסל שווער צו געפינען וואָס איר ניטאָ קוקן פֿאַר אויב איר טאָן אַז. גליק, כאָטש C, און שיין פיל יעדער אנדערע פּראָגראַממינג שפּראַך אַז זאל אַרבעטן מיט, אַלאַוז אונדז צו שרייַבן פֿעיִקייטן. און איך בין נאָר געגאנגען צו נעמען אַ שנעל באַזונדער דאָ צו דערמאָנען אַז פֿעיִקייטן איז איין געגנט פון קאָמפּיוטער וויסנשאַפֿט. און איר וועט זען פילע מער פון זיי אין פאַרשידן פּוינץ איבער די לויף און אויב איר פאָרזעצן אויף. ווו עס ס אַ פּלאַץ פון סינאָנימס פֿאַר די זעלבע וואָרט. אזוי מיר רופן די פֿעיִקייטן. אבער איר זאל אויך הערן זיי רעפעררעד צו ווי פּראָוסידזשערז, אָדער מעטהאָדס, דער הויפּט, אויב איר ווע אלץ געטאן קיין כייפעץ אָריענטאַד פּראָגראַממינג בעפאָרע-- און טאָן ניט זאָרג אויב איר האָבן ניט, ניט אַ גרויס דעאַל-- אָבער אין קאָנטראָלירן אָריענטיד שפּראַכן זענען אָפט גערופֿן מעטהאָדס. מאל זיי ניטאָ גערופֿן סובראָוטינעס. אבער זיי טאַקע אַלע אָפּשיקן צו די זעלבע גרונט געדאַנק. זאל ס זען וואָס אַז געדאַנק איז. וואָס איז אַ פֿונקציע? נו אַ פֿונקציע איז טאַקע גאָרנישט מער ווי אַ שוואַרץ קעסטל. א שוואַרץ קעסטל וואָס האט אַ סכום פון נול אָדער מער ינפּוץ און אַ איין רעזולטאַט. אַזוי פֿאַר בייַשפּיל, דעם זאל זיין אַ פֿונקציע. דאס איז אַ פֿונקציע גערופֿן פונק. און עס נעמט דרייַ ינפּוץ אַ, ב, און C. און אינעווייניק אַז שוואַרץ קעסטל, מיר טאָן נישט וויסן פּונקט וואָס עס טוט, אָבער עס פּראַסעסאַז די ינפּוץ אין עטלעכע וועג און דעמאָלט עס גיט אַ איין רעזולטאַט, אין דעם פאַל, ז. איצט צו מאַכן עס אַ ביסל ווייניקער אַבסטראַקט, מיר קען זאָגן אַז אפֿשר מיר האָבן אַ פֿונקציע גערופֿן לייגן אַז נעמט דרייַ ינפּוץ אַ, b, און C און פּראַסעסאַז די פּראָדוקציע אין עטלעכע וועג ין די שוואַרץ קעסטל צו פּראָדוצירן אַ איין רעזולטאַט. אַזוי אין דעם פאַל, אויב לייגן נעמט 3, 6, און 7. ערגעץ ין די לייגן פֿונקציע, מיר וואָלט דערוואַרטן זיי צו זיין מוסיף צוזאַמען צו פּראָדוצירן די רעזולטאַט, וואָס איז 3 פּלוס 6 פּלוס 7 אָדער 16. סימילאַרלי, איר האָבן אַ פֿונקציע גערופֿן לאַנג וואָס נעמט צוויי ינפּוץ, אַ און ב, פּראַסעסאַז זיי אין עטלעכע וועג אַזאַ אַז דער רעזולטאַט פון די פֿונקציע איז דער פּראָדוקט פון די צוויי ינפּוץ. די צוויי ינפּוץ געמערט צוזאַמען. 4 און 5 ווייל דורכגעגאנגען אין לאַנג, עפּעס כאַפּאַנז, דער רעזולטאַט מיר דערוואַרטן איז 20. וואָס טאָן מיר רופן עס אַ שוואַרץ קאַסטן? נו אויב מיר זענען נישט שרייבן די פֿעיִקייטן זיך, וואָס מיר ווע געטאן גאַנץ אַ ביסל אַזוי ווייַט קס50. מיר ווע געזען דרוקן F, למשל, וואָס איז אַ פֿונקציע אַז מיר האבן ניט שרייַבן זיך, אָבער מיר טאָן נוצן אַלע די צייַט. אויב מיר זענען ניט שרייבן די פֿעיִקייטן זיך, מיר טאָן ניט טאַקע דאַרפֿן צו וויסן ווי עס ס אַקטשאַוואַלי ימפּלאַמענאַד אונטער די קאַפּטער. אזוי למשל די שוואַרץ קעסטל איך נאָר געוויזן איר פֿאַר קייפל, לאַנג א, ב קען זיין דעפינעד-- און דאָס איז נאָר עטלעכע פּסעודאָקאָדע-- קען זיין Defined ווי רעזולטאַט אַ מאל ב. אַז מאַכן זינען, רעכט. אויב מיר האָבן אַ פֿונקציע גערופֿן לאַנג וואָס נעמט צוויי ינפּוץ. מיר וואָלט דערוואַרטן אַז דער רעזולטאַט וואָלט זיין די צוויי ינפּוץ געמערט צוזאַמען, אַ מאָל ב. אבער לאַנג קען אויך זיין ימפּלאַמענאַד ווי דעם, מיר האָבן אַ טאָמבאַנק בייַטעוודיק צו באַקומען שטעלן ין פון לאַנג צו 0. און דעמאָלט מיר איבערחזרן דעם פּראָצעס ב מאל לייגן אַ צו טאָמבאַנק. למשל, אויב מיר מערן 3 אַ דורך 5 ב, מיר געקענט זאָגן שטעלן טאָמבאַנק צו 0, איבערחזרן פינף מאל, לייגן 3 צו טאָמבאַנק. אַזוי מיר אָנהייבן בייַ 0 און דעמאָלט מיר טאָן דעם פינף מאל 3, 6, 9, 12, 15. עס ס דער זעלביקער רעזולטאַט. מיר נאָך באַקומען 3 מאל 5 נאָר די ימפּלאַמענטיישאַן איז אַנדערש. אַז ס וואָס מיר מיינען ווען מיר זאָגן אַ שוואַרץ קעסטל. עס נאָר מיטל מיר טאָן ניט טאַקע זאָרגן ווי עס ס ימפּלאַמענטאַד אונטער די קאַפּטער ווי לאַנג ווי דער רעזולטאַט איז וואָס מיר דערוואַרטן. אין פאַקט, אַז ס טייל פון די אָפּמאַך פון ניצן פֿעיִקייטן, דער הויפּט פֿעיִקייטן אַז אנדערע שרייַבן. די נאַטור איז שטענדיק געגאנגען צו זיין טיפּיש, אַנפּרידיקטאַבאַל באזירט אויף די נאָמען פון די פֿונקציע. און אַז ס וואָס עס ס טאַקע וויכטיק ווען איר שרייַבן פֿעיִקייטן אָדער ווען אנדערע מענטשן שרייַבן פֿעיִקייטן אַז איר זאל נוצן, אַז די פֿעיִקייטן האָבן קלאָר, לעפיערעך קלאָר ווי דער טאָג נעמען, און זענען געזונט דאַקיאַמענטאַד. וואָס איז אַוואַדע די פאַל פֿאַר פונקציאָנירן ווי דרוק F. אַזוי וואָס טאָן מיר נוצן פֿעיִקייטן? נו ווי איך געזאגט פריער, אויב מיר שרייַבן אַלע פון ​​אונדזער קאָד ין פון הויפּט זאכן קענען באַקומען טאַקע קאַמבערסאַם און טאַקע קאָמפּליצירט. פֿעיִקייטן לאָזן אונדז די פיייקייַט צו אָרגאַניזירן זאכן און ברעכן זיך אַ זייער קאָמפּליצירט פּראָבלעם זיך אַ פּלאַץ מער מאַנידזשאַבאַל סאַב פּאַרץ. פֿעיִקייטן אויך לאָזן אונדז צו פאַרפּאָשעטערן די קאָודינג פּראָצעס. עס ס אַ פּלאַץ גרינגער צו דיבאַג אַ 10 שורה פֿונקציע קעגן אַ 100 שורה פֿונקציע אָדער אַ 1.000 שורה פֿונקציע. אויב מיר נאָר האָבן צו דיבאַג קליין ברעקלעך אין אַ צייַט, אָדער שרייַבן קליין ברעקלעך אין די צייַט, עס מאכט אַז פּראָגראַממינג דערפאַרונג אַ פּלאַץ בעסער. צוטרוי מיר אויף אַז איינער. לאַסטלי, אויב מיר שרייַבן פֿעיִקייטן מיר קענען רייוז די פאַרשידן פּאַרץ. פֿעיִקייטן קענען זיין ריסייקאַלד. זיי קענען זיין געניצט אין איין פּראָגראַם אָדער אנדערן. איר ווע שוין געשריבן די פֿונקציע, אַלע איר דאַרפֿן צו טאָן איז זאָגן אַז פּראָגראַם ווו צו געפֿינען אַז פֿונקציע. מיר ווע שוין ריסייקלינג און ניצן דרוק ו פֿאַר איבער 40 יאר. אבער עס איז געווען בלויז געשריבן איין מאָל. שיין נוציק, רעכט. אַלע רעכט. אַזוי פֿעיִקייטן זענען גרויס. מיר וויסן אַז. איצט לאָזן ס אָנהייבן שרייבן זיי. זאל ס אָנהייבן געטינג זיי אין אונדזער מגילה. אין סדר צו טאָן אַז, דער ערשטער זאַך מיר טאָן איז דערקלערן די פֿונקציע. ווען איר דערקלערן אַ פֿונקציע וואָס איר ניטאָ בייסיקלי טאן איז טעלינג די קאַמפּיילער, היי, פּונקט אַזוי איר וויסן, איך בין געגאנגען צו זיין שרייבן אַ פֿונקציע שפּעטער אויף און דאָ ס וואָס עס ס געגאנגען צו קוקן ווי. די סיבה פֿאַר דעם איז ווייַל זאַמלערס קענען טאָן עטלעכע טשודנע זאכן אויב זיי זען אַ סכום פון סימבאָלס אַז זיי ניטאָ ניט באַקאַנט מיט. אַזוי מיר נאָר געבן די קאַמפּיילער אַ קאָפּ אַרויף, איך בין קריייטינג אַ פֿונקציע און עס ס 'געגאנגען צו טאָן דעם. פֿונקציע דעקלעריישאַנז בכלל אויב איר ניטאָ אָרגאַנייזינג אייער קאָד אין אַ וועג אַז אנדערע וועט קענען צו פֿאַרשטיין און מאַכן נוצן פון, איר בכלל ווילן צו שטעלן אַלע פון דיין פונקציאָנירן דעקלעריישאַנז ביי די זייער שפּיץ פון אייער קאָד, רעכט איידער איר אָנהייבן שרייבן הויפּט אַפֿילו. און קאַנוויניאַנטלי, עס ס אַ זייער נאָרמאַל פאָרעם אַז יעדער פֿונקציע דעקלאַראַציע גייט. זיי אַלע שיין פיל קוק ווי דעם. עס זענען דרייַ פּאַרץ צו אַ פֿונקציע דעקלאַראַציע, צוריקקומען טיפּ, נאָמען, און אַרגומענט רשימה. איצט די צוריקקומען טיפּ איז וואָס מין פון בייַטעוודיק די פֿונקציע וועט רעזולטאַט. אַזוי למשל, אויב מיר טראַכטן צוריק אַ מינוט צוריק צו די מאַלטאַפּלייינג צוויי נומערן פונקציאָנירן, וואָס טאָן מיר דערוואַרטן אויב מיר מערן אַ ינטאַדזשער דורך אַ ינטאַדזשער דער רעזולטאַט וועט זיין מיסטאָמע אַ ינטאַדזשער, רעכט. געמערט צוויי ינטאַדזשערז צוזאַמען, איר באַקומען אַ ינטעגער. אזוי די צוריקקומען טיפּ פון אַז פונקציאָנירן וואָלט זיין ינט. נאמען איז וואָס איר ווילן צו רופן דיין פֿונקציע. דאס איז מיסטאָמע דער קלענסטער וויכטיק טייל פון די פֿונקציע דעקלאַראַציע, אין טערמינען פון פונקטיאָנאַליטי. אבער איז טאקע מיסטאָמע איינער פון די מערסט וויכטיק פּאַרץ פון די פֿונקציע דעקלאַראַציע אין טערמינען פון געוואוסט וואָס די פֿונקציע אַקטשאַוואַלי טוט. אויב איר נאָמען דיין פֿונקציע ו אָדער ג אָדער ה אָדער מיסטעריע אָדער עפּעס ווי אַז, איר ניטאָ מיסטאָמע געגאנגען צו באַקומען אַ ביסל טריפּט אַרויף טריינג צו געדענקען וואָס די פֿעיִקייטן טאָן. אַזוי עס ס וויכטיק צו געבן דיין פונקציאָנירן ס מעאַנינגפול נעמען. לאַסטלי, אַרגומענט רשימה איז די קאָמע צעשיידט רשימה פון אַלע די ינפּוץ צו דיין פֿונקציע, יעדער פון וואָס האט אַ טיפּ און אַ נאָמען. אַזוי ניט בלויז טאָן איר האָבן צו ספּעציפיצירן וואָס טיפּ פון בייַטעוודיק די פֿונקציע וועט רעזולטאַט, איר אויך ווילן צו ספּעציפיצירן וואָס טיפּ און טייפּס פון וועריאַבאַלז די פונקציאָנירן וועט זיין אַקסעפּטינג ווי ינפּוץ. אַזוי לאָזן ס טאָן אַ בייַשפּיל דאָ. זאל ס נאָר נעמען אַ קוק אין אַ מער באַטאָנען איינער. אַזוי דאָ ס אַ בייַשפּיל פון אַ פֿונקציע דעקלאַראַציע פֿאַר אַ פֿונקציע אַז וואָלט לייגן צוויי ינטאַדזשערז צוזאַמען. די סאַכאַקל פון צוויי ינטאַדזשערז איז געגאנגען צו זייַן אַ ינטאַדזשער ווי געזונט, ווי מיר נאָר דיסקאַסט. און אַזוי די צוריקקומען טיפּ, דאָ אין גרין, וואָלט זיין ינט. אַז נאָר דערציילט אונדז אַז לייגן צוויי ינץ איז געגאנגען צו, אין די סוף פון די טאָג, פּראָדוקציע, אָדער שפּייַען עס צוריק אויס צו אונדז, אַ ינטאַדזשער. געגעבן וואָס דעם פֿונקציע טוט מיר ווילן צו געבן אים אַ מעאַנינגפול נאָמען. לייג צו צוויי ינץ מיינט צונעמען, קאַנסידערינג מיר ניטאָ גענומען צוויי ינטאַדזשערז ווי ינפּוץ און אַלעווייַ אַדינג זיי צוזאַמען. עס זאל זיין אַ ביסל פון אַ קאַמבערסאַם נאָמען און פראַנקלי דעם פֿונקציע איז מיסטאָמע ניט נייטיק זינט מיר האָבן די דערצו אָפּעראַטאָר, אויב איר צוריקרופן פון אונדזער דיסקוסיע פון ​​אָפּערייטערז, ביז אַהער. אבער לאָזן ס נאָר זאָגן פֿאַר צוליב פון אַרגומענט אַז דעם פֿונקציע איז נוצלעך און אַזוי מיר וועט רופן עס לייגן צוויי ינץ. לאַסטלי, דעם פֿונקציע נעמט צוויי ינפּוץ. יעדער פון וואָס איז אַ ינטאַדזשער. אַזוי מיר האָבן דעם קאָמע צעשיידט רשימה פון ינפּוץ. איצט מיר בכלל ווילן צו געבן אַ נאָמען צו יעדער פון זיי אַזוי אַז זיי קענען ווערן געניצט ין די פֿונקציע. די נעמען זענען ניט טעראַבלי וויכטיק. אין דעם פאַל, מיר טאָן ניט דאַווקע האָבן קיין טייַטש אַטאַטשט צו זיי. אַזוי מיר קענען נאָר רופן זיי אַ און ב. אַז ס טאָוטאַלי פייַן. אויב אָבער, איר געפינען זיך אין אַ סיטואַציע ווו די נעמען פֿון די וועריאַבאַלז זאל אַקטשאַוואַלי זיין וויכטיק, איר זאל וועלן צו רופן זיי עפּעס אנדערע ווי אַ און ב צו געבן זיי עפּעס מער סימבאַליקאַלי מעאַנינגפול. אבער אין דעם פאַל, מיר טאָן ניט טאַקע וויסן עפּעס אַנדערש וועגן די פֿונקציע. מיר נאָר ווילן צו לייגן צוויי ינטאַדזשערז. אַזוי מיר וועט נאָר רופן די ינטאַדזשערז א און ב. אַז ס איין משל. וואָס טאָן ניט איר נעמען אַ רגע צו טראַכטן וועגן דעם איין, ווי וואָלט איר שרייַבן אַ פֿונקציע דעקלאַראַציע פֿאַר אַ פֿונקציע אַז מאַלטאַפּלייז צוויי Floating פונט נומערן? צי איר געדענקען וואָס אַ Floating פונט נומער איז? וואָס וואָלט דעם פֿונקציע דעקלאַראַציע קוקן ווי? איך אַקטשאַוואַלי רעקאָמענדירן איר פּויזע די ווידעא דאָ און נעמען ווי פיל צייַט איר דאַרפֿן. טראַכטן וועגן וואָס דעם פֿונקציע דעקלאַראַציע וואָלט זיין? וואָס וואָלט דער צוריקקער טיפּ זיין? וואָס וואָלט אַ מעאַנינגפול נאָמען זיין? וואָס וואָלט דער ינפּוץ זיין? אזוי וואָס טאָן ניט איר פּויזע די ווידעא דאָ און שרייב-אַרויף אַ פֿונקציע דעקלאַראַציע פֿאַר אַ פֿונקציע וואָס וואָלט מערן צוויי Floating פונט נומערן צוזאַמען. אַלעווייַ איר פּאָזד די ווידעא. אַזוי לאָזן ס נעמען אַ קוק אין אַ משל פון איין מעגלעך דעקלאַראַציע. לאָזנ שווימען לאַנג צוויי רעאַלס לאָזנ שווימען רענטגענ, לאָזנ שווימען י. דער פּראָדוקט פון צוויי Floating פונט נומערן, וואָס צוריקרופן זענען ווי מיר פאָרשטעלן פאַקטיש נומערן אָדער נומערן מיט דעצימאַל וואַלועס אין C, איז געגאנגען צו זיין אַ Floating פונט נומער. ווען איר מערן אַ דעצימאַל דורך אַ דעצימאַל, איר ניטאָ מיסטאָמע געגאנגען צו באַקומען אַ דעצימאַל. איר ווילן צו געבן אים אַ באַטייַטיק נאָמען. מערן צוויי רעאַלס מיינט פייַן. אבער איר קען טאַקע רופן עס לאַנג צוויי פלאָאַץ, אָדער לאַנג פלאָאַץ. עפּעס ווי אַז, ווי לאַנג ווי עס געגעבן עטלעכע פאַקטיש טייַטש צו וואָס דעם שוואַרץ קעסטל איז געגאנגען צו טאָן. און ווידער, אין דעם פאַל, מיר טאָן ניט ויסקומען צו האָבן קיין טייַטש אַטאַטשט די נעמען פון די וועריאַבאַלז מיר ניטאָ פּאַסינג אין, אַזוי מיר נאָר רופן זיי רענטגענ און י. איצט אויב איר רופן זיי עפּעס אַנדערש, אַז ס טאָוטאַלי פייַן. אין פאַקט, אויב איר האט דעם דעקלאַראַציע אָנשטאָט ניצן דאַבאַלז אָנשטאָט פון פלאָאַץ, אויב איר צוריקרופן אַז דאַבאַלז זענען אַ אַנדערש וועג צו מער דווקא ספּעציפיצירן פאַקטיש נומערן אָדער Floating פונט וועריאַבאַלז. אַז ס טאָוטאַלי פייַן אויך. יעדער איינער פון די וואָלט זיין פייַן. אין פאַקט, עס זענען עטלעכע פאַרשידענע קאַמבאַניישאַנז פון וועגן צו דערקלערן דעם פֿונקציע. אבער די זענען צוויי שיין גוט אָנעס. מיר ווע דערקלערט אַ פֿונקציע, אַז ס גרויס. מיר ווע דערציילט די קאַמפּיילער וואָס עס איז, וואָס מיר רע געגאנגען צו זייַן טאן. איצט לאָזן ס אַקטשאַוואַלי שרייַבן אַז פֿונקציע. זאל ס געבן עס אַ דעפֿיניציע, אַזוי אַז ין די שוואַרץ קעסטל פּרידיקטאַבאַל אָפּפירונג איז געשעעניש. אין פאַקט, מיר זענען מאַלטאַפּלייינג צוויי פאַקטיש נומערן צוזאַמען, אָדער אַדינג נומערן צוזאַמען, אָדער טאן וועלכער עס איז וואָס מיר געבעטן אונדזער פֿונקציע צו טאָן. אַזוי אין פאַקט, לאָזן ס פּרובירן און דעפינירן מערן צוויי רעאַלס וואָס מיר נאָר גערעדט וועגן אַ רגע צוריק. איצט דער אָנהייב פון אַ פֿונקציע דעפֿיניציע קוקט כּמעט פּונקט דער זעלביקער ווי אַ פֿונקציע דעקלאַראַציע. איך האָבן ביידע פון ​​זיי דאָ. אין די שפּיץ איז די פֿונקציע דעקלאַראַציע, טיפּ, נאָמען, קאָמע צעשיידט אַרגומענט רשימה, פּינטל-קאָמע. די פּינטל-קאָמע ינדיקייץ אַז וואָס איז אַ פֿונקציע דעקלאַראַציע. דער אָנהייב פון די פֿונקציע דעפֿיניציע קוקט כּמעט פּונקט די זעלבע, טיפּ, נאָמען, קאָמע צעשיידט אַרגומענט רשימה, קיין פּינטל-קאָמע, עפענען געגרייַזלט בראַסע. די עפענען געגרייַזלט בראַסע, פּונקט ווי מיר ווע שוין טאן מיט הויפּט, מיטל אַז מיר זענען איצט אָנהייב צו דעפינירן וואָס כאַפּאַנז ין די שוואַרץ קעסטל וואָס מיר ווע באַשלאָסן צו רופן לאַנג צוויי רעאַלס. דאָ איז איין וועג צו ינסטרומענט עס. מיר געקענט זאָגן, מיר קען דערקלערן אַ נייַ בייַטעוודיק פון טיפּ לאָזנ שווימען גערופֿן פּראָדוקט און באַשטימען אַז בייַטעוודיק צו די ווערט רענטגענ מאל י. און דעמאָלט צוריקקומען פּראָדוקט. וואָס טוט צוריקקומען מיינען דאָ. נו צוריקקומען איז די וועג מיר אָנווייַזן אַז ס ווי מיר ניטאָ פּאַסינג די פּראָדוקציע צוריק אויס. אַזוי צוריקקומען עפּעס, איז די זעלבע ווי, דעם איז דער רעזולטאַט פון די שוואַרץ קעסטל. אַזוי אַז ס ווי איר טאָן עס. דאָ ס אנדערן וועג צו ינסטרומענט עס. מיר קען נאָר צוריקקומען רענטגענ מאל י. רענטגענ איז אַ לאָזנ שווימען. י איז אַ לאָזנ שווימען. אַזוי רענטגענ מאל און איז אויך אַ לאָזנ שווימען. מיר טאָן ניט אַפֿילו דאַרפֿן צו שאַפֿן אנדערן בייַטעוודיק. אַזוי אַז ס אַ אַנדערש וועג צו ינסטרומענט די פּינטלעך זעלביקער שוואַרץ קעסטל. איצט נעמען אַ מאָמענט, פּויזע די ווידעא ווידער, און פּרובירן און דעפינירן לייגן צוויי ינץ, וואָס איז די אנדערע פֿונקציע אַז מיר גערעדט וועגן אַ מאָמענט צוריק. ווידער דאָ, איך ווע שטעלן די פֿונקציע דעקלאַראַציע, און אַזוי די פּינטל-קאָמע, און אַן אָפֿן געגרייַזלט בראַסע און אַ פֿאַרמאַכט געגרייַזלט בראַסע צו אָנווייַזן ווו מיר וועט פּלאָמבירן אין די אינהאַלט פון לייגן צוויי ינץ, אַזוי אַז מיר דעפֿינירן די באַזונדער אָפּפירונג ין די שוואַרץ קעסטל. אַזוי פּויזע די ווידעא. און נעמען ווי פיל צייַט ווי איר דאַרפֿן צו פּרובירן און דעפינירן אַ ימפּלאַמענטיישאַן פון לייגן צוויי ינץ, אַזאַ אַז ווען די פֿונקציע אַוטפּוץ אַ ווערט, עס טוט, אין פאַקט, צוריקקומען די סאַכאַקל פון די צוויי ינפּוץ. אַזוי נאָר ווי די פֿריִערדיקע לעמאָשל, עס זענען עטלעכע פאַרשידענע וועגן אַז איר קען מאַכשער לייגן צוויי ינץ. דאָ ס איינער. אין דאָ אין מאַראַנץ איך'ווע נאָר האט עטלעכע קאָממענצ-- איך ווע נאָר צוגעגעבן עטלעכע באַמערקונגען צו אָנווייַזן וואָס ס געשעעניש אויף יעדער ליניע פון ​​קאָד. אַזוי איך דערקלערן אַ בייַטעוודיק גערופֿן סאַכאַקל פון טיפּ ינט. איך זאָגן סאַכאַקל יקוואַלז אַ פּלוס ב. אַז ס ווו מיר רע טאַקע טאן די אַרבעט אַדינג אַ און ב צוזאַמען. און איך צוריקקומען סאַכאַקל. און אַז מאכט זינען ווייַל סאַכאַקל איז אַ בייַטעוודיק פון טיפּ ינט. און וואָס ס די דאַטן טיפּ אַז דאָס פֿונקציע דערציילט מיר עס ס געגאנגען צו רעזולטאַט? ינט. אזוי איך בין אומגעקערט סאַכאַקל, וואָס איז אַ ינטאַדזשער בייַטעוודיק. און אַז מאכט זינען געגעבן וואָס מיר ווע דערקלערט און Defined אונדזער פֿונקציע צו טאָן. איצט איר קענען אויך דעפֿינירן די פֿונקציע דעם וועג, ינט סאַכאַקל יקוואַלז אַ פּלוס ב-- האָפּקען אַז ערשטער סטעפּ-- און דעריבער, צוריקקומען סאַכאַקל. איצט איר געקענט האָבן אויך ימפּלאַמענאַד עס דעם וועג, וואָס איך העכסט טאָן נישט רעקאָמענדירן. דאס איז שלעכט נוסח פֿאַר איין זאַך און טאַקע שלעכט פּלאַן, אָבער עס טוט, אין פאַקט, אַרבעט. אויב איר נעמען דעם קאָד, וואָס איז ינט לייגן שלעכט אַדער פּונקט C, און נוצן עס. עס אַקשלי טוט לייגן צוויי ינטאַדזשערז צוזאַמען. עס ס אַ זייער נעבעך ימפּלאַמענטיישאַן פון דעם באַזונדער נאַטור. אבער עס טוט אַרבעט. עס ס נאָר דאָ צו אילוסטרירן די פונט אַז מיר טאָן ניט טאַקע זאָרג וואָס כאַפּאַנז ין די שוואַרץ קעסטל, ווי לאַנג ווי עס האט דער רעזולטאַט אַז מיר דערוואַרטן. דעם איז אַ שוואַך דיזיינד שוואַרץ קעסטל. אבער אין די סוף די טאָג, עס טוט נאָך רעזולטאַט די סאַכאַקל פון אַ פּלוס ב. אַלע רעכט. אַזוי מיר ווע דערקלערט פֿעיִקייטן. און מיר ווע Defined פֿונקציע. אַזוי אַז ס טאַקע גוט. איצט לאָזן ס אָנהייבן צו נוצן די פֿעיִקייטן אַז מיר'ווע דערקלערט און מיר ווע Defined. צו רופן אַ פונקטיאָנ-- עס ס אַקטשאַוואַלי שיין עאַסי-- אַלע איר דאַרפֿן צו טאָן איז פאָרן עס צונעמען טענות, טענות פון די דאַטן טיפּ אַז עס יקספּעקץ, און דעמאָלט באַשטימען די צוריקקומען ווערט פון וואָס פונקציאָנירן און טהיס-- אַנטשולדיקן מע-- באַשטימען די צוריקקומען ווערט פון וואָס פונקציאָנירן צו עפּעס פון די ריכטיק טיפּ. אַזוי לאָזן ס האָבן אַ קוק אין דעם אין פיר אין אַ טעקע גערופֿן אַדער 1 פּונקט C, וואָס איך האב אין מיין קס50 ייד. אזוי דאָ איז אַדער 1 פּונקט C. אין די אָנהייב איר זען איך האָבן מיין כולל, פונט אַרייַננעמען, נאָרמאַל יאָ, און קס50 פּונקט ה. און דעמאָלט איך האָבן מיין פונקציאָנירן דעקלאַראַציע. דעם איז ווו איך בין טעלינג די קאַמפּיילער איך בין געגאנגען צו זיין שרייבן אַ פֿונקציע גערופֿן לייגן צוויי ינץ. עס ס געגאנגען צו רעזולטאַט אַ ינטעגער טיפּ בייַטעוודיק. אַז ס וואָס דעם טייל איז רעכט דאָ. און דעמאָלט איך האָבן צוויי ינפּוץ צו עס אַ און ב, יעדער פון וואָס איז אַ ינטאַדזשער. ין פון הויפּט, איך פרעגן די באַניצער פֿאַר ינפּוט דורך געזאגט, געבן מיר אַ ינטעגער. און זיי זענען פּראַמפּטיד צו פאַרגעסן ינט, וואָס איז אַ פֿונקציע אַז איז ינקלודעד אין די קס50 ביבליאָטעק. און אַז געץ סטאָרד אין רענטגענ, אַ ינטאַדזשער בייַטעוודיק. דעמאָלט מיר פּינטלעך זיי פֿאַר אן אנדער ינטעגער. מיר באַקומען אן אנדער ינטעגער און קראָם אַז אין י. און דעריבער, דאָ אויף שורה 28, איז ווו מיר מאַכן אונדזער פֿונקציע רופן. מיר זענען געזאגט, ינט ז יקוואַלז שטעלן 2 ינץ רענטגענ קאָמע י. צי איר זען וואָס דאָס מאכט זינען? רענטגענ איז אַ ינטאַדזשער טיפּ בייַטעוודיק און י איז אַ ינטאַדזשער טיפּ בייַטעוודיק. אַזוי אַז ס גוט. אַז מאַכן חוש מיט וואָס אונדזער פֿונקציע דעקלאַראַציע אויף שורה 17 קוקט ווי. די קאָמע צעשיידט ינפּוט רשימה יקספּעקץ צוויי ינטאַדזשערז, א און ב. אין אַז פאַל, מיר קענען רופן זיי וועלכער מיר ווילן. עס נאָר יקספּעקץ צוויי ינטאַדזשערז. און רענטגענ איז אַ ינטאַדזשער און י איז אַ ינטאַדזשער. אַז מעשים. און מיר וויסן אַז פֿונקציע איז געגאנגען צו רעזולטאַט אַ ינטאַדזשערז ווי געזונט. און אַזוי מיר זענען סטאָרינג די רעזולטאַט פון די פֿונקציע, לייגן צוויי ינץ, אין אַ ינטאַדזשער טיפּ בייַטעוודיק, וואָס מיר ניטאָ פאַך מיט. און דעמאָלט מיר קענען זאָגן, די סאַכאַקל פון פּראָצענט איך און פּראָצענט איך איז פּראָצענט איך. X, י און ז ריספּעקטיוולי פילונג אין די פּראָצענט איך ס. וואָס איז דער דעפֿיניציע פון לייגן צוויי ינץ קוקן ווי? עס ס שיין פּשוט. עס ס איינער פון די אָנעס מיר נאָר געזען אַ רגע צוריק, ינט סאַכאַקל יקוואַלז אַ פּלוס ב צוריקקומען סאַכאַקל. טוט דעם אַרבעט? זאל ס ראַטעווען די טעקע. און דעמאָלט אַראָפּ דאָ אויף מיין וואָקזאַל איך בין געגאנגען צו מאַכן אַדער 1, און איך קלאָר מיין עקראַן. איך בין געגאנגען צו Zoom אין ווייַל איך וויסן עס ס אַ ביסל שווער צו זען. אַזוי מיר צונויפנעמען דעם פּראָגראַם ווי אַדער 1. אַזוי מיר קענען טאָן פּונקט צעהאַקן אַדער 1. געבן מיר אַ ינטעגער, 10. געבן מיר אן אנדער ינטעגער, 20. די סאַכאַקל פון 10 און 20 איז 30. אַזוי מיר געמאכט אַ מצליח פֿונקציע רופן. איר קענען לויפן די פֿונקציע ווידער, נעגאַטיוו 10, 17 סאַכאַקל פון נעגאַטיוו 10 און 17 איז 7. דעם פֿונקציע אַרבעט. עס האט די נאַטור אַז מיר דערוואַרטן עס צו. און אַזוי מיר ווע געמאכט אַ מצליח פֿונקציע, דעפֿיניציע, דעקלאַראַציע, און אַ מצליח פֿונקציע רופן. פּאָר פאַרשיידן פּוינץ וועגן פֿעיִקייטן איידער מיר פאַרענדיקן דעם אָפּטיילונג. ריקאָל פון אונדזער דיסקוסיע פון ​​דאַטן טייפּס, ביז אַהער, אַז פֿעיִקייטן קענען מאל נעמען קיין ינפּוץ. אויב אַז ס דער פאַל, מיר דערקלערן די פֿונקציע ווי בעת אַ פּאָסל אַרגומענט רשימה. צי איר צוריקרופן וואָס די מערסט פּראָסט פֿונקציע מיר ווע געזען אַזוי ווייַט אַז נעמט אַ פּאָסל אַרגומענט רשימה איז? עס ס הויפּט. ריקאָל אויך אַז פֿונקציע מאל דו זאלסט נישט אַקטשאַוואַלי האָבן אַ רעזולטאַט. אין אַז פאַל, מיר דערקלערן די פֿונקציע ווי בעת אַ פּאָסל צוריקקומען טיפּ. זאל ס פאַרענדיקן דעם אָפּטיילונג דורך טאַקלינג אַ פיר פּראָבלעם. אזוי דאָ ס די פּראָבלעם געלייגט אויס. איך ווילן איר צו שרייַבן אַ פֿונקציע גערופֿן גילטיק דרייַעק. וואָס דעם פֿונקציע זאָל טאָן איז נעמען דרייַ פאַקטיש נומערן אַז פאָרשטעלן די לענגקטס פון די דרייַ זייטן פון אַ דרייַעק ווי זייַן פּאַראַמעטערס, אָדער זייַן טענות, אָדער זייַן ינפּוצ-- אנדערן שטעלן פון סינאָנימס אַז איר זאל טרעפן. דעם פֿונקציע זאָל אָדער רעזולטאַט אמת אָדער פאַלש דיפּענדינג אויף צי די דרייַ לענגקטס זענען טויגעוודיק פון מאכן אַ דרייַעק. צי איר געדענקען די דאַטן טיפּ אַז מיר געוויינט צו אָנווייַזן אמת אָדער פאַלש? איצט ווי טאָן איר ינסטרומענט דעם? געזונט וויסן עס זענען אַ פּאָר כּללים וועגן טרייאַנגגאַלז וואָס זענען אַקטשאַוואַלי נוצלעך צו וויסן. א דרייַעק קענען נאָר האָבן זייטן מיט positive לענג. וואָס מאכט זינען. איר 'רע מיסטאָמע געזאגט, דוה. די אנדערע זאַך צו טאָן כאָטש, איז אַז די סאַכאַקל פון די לענגקטס פון קיין צוויי זייטן פון די דרייַעק האט צו זיין גרעסער ווי די לענג פון די דריט זייַט. אַז ס אַקשלי אמת. איר קענען ניט האָבן אַ דרייַעק פון זייטן 1, 2 און 4, למשל, ווייַל 1 פּלוס 2 איז נישט גרעסער ווי 4. אַזוי יענע זענען די כּללים וואָס באַשליסן צי אָדער ניט די דרייַ ינפּוץ קענען קאָנסעיוואַבלי פֿאָרמירן אַ דרייַעק. אזוי נעמען אַ פּאָר פון מינוט און דערקלערן און דעמאָלט דעפינירן דעם פֿונקציע גערופֿן גילטיק דרייַעק, אַזאַ אַז עס אַקשלי האט די נאַטור ספּעסיפיעד דאָ. עס וועט רעזולטאַט אמת אויב די דרייַ זייטן זענען טויגעוודיק פון קאַמפּרייזינג אַ דרייַעק, און פאַלש אַנדערש גרייט צו זען ווי איר האט? דאָ ס איינער ימפּלאַמענטיישאַן פון גילטיק דרייַעק. עס ס ניט די בלויז איין. יאָורס זאל בייַטן אַ ביסל. אָבער דאָס איינער טוט, אין פאַקט, האָבן די נאַטור אַז מיר דערוואַרטן. מיר דערקלערן אונדזער פונקציאָנירן אין די זייער שפּיץ, באָאָל גילטיק דרייַעק לאָזנ שווימען רענטגענ לאָזנ שווימען און שווימען מיט. אַזוי ווידער, דעם פֿונקציע נעמט דרייַ פאַקטיש נומערן ווי זייַן טענות, Floating פונט ווערט וועריאַבאַלז, און אַוטפּוץ אַ אמת אָדער פאַלש ווערט, וואָס איז אַ באָאָלעאַן, צוריקרופן. אַזוי אַז ס וואָס די צוריקקומען טיפּ איז באָאָל. דעמאָלט מיר דעפינירן די פֿונקציע. ערשטער זאַך מיר טאָן איז טשעק צו מאַכן זיכער אַז אַלע פון ​​די זייטן זענען positive. אויב רענטגענ איז ווייניקער ווי אָדער גלייַך צו 0, אָדער אויב י איז גלייַך צו 0, אָדער אויב זי איז ווייניקער ווי אָדער גלייַך צו 0, וואס קענען ניט עפשער זיין אַ דרייַעק. זיי טאָן ניט האָבן positive זייטן. און אַזוי מיר קענען צוריקקומען פאַלש אין אַז סיטואַציע. ווייַטער, מיר טשעק צו מאַכן זיכער אַז יעדער פּאָר פון ינפּוץ איז גרעסער ווי די דריט איין. אַזוי אויב רענטגענ פּלוס און איז ווייניקער ווי אָדער גלייַך צו ז, אָדער אויב רענטגענ פּלוס זי איז ווייניקער ווי אָדער גלייַך צו י, אָדער אויב י פּלוס זי איז ווייניקער ווי אָדער גלייַך צו רענטגענ, אַז אויך קענען ניט זיין אַ גילטיק דרייַעק. אַזוי מיר צוריקקומען פאַלש ווידער. אַסומינג מיר פּאַסט ביידע פון ​​די טשעקס כאָטש, דעמאָלט מיר קענען צוריקקומען אמת. ווייַל די דרייַ זייטן זענען טויגעוודיק פון רעטורנינג-- פון קריייטינג אַ גילטיק דרייַעק. און אַז ס עס. איר ווע איצט דערקלערט און Defined. און איר זאל זיין ביכולת צו איצט נוצן און רופן דעם פֿונקציע. גרויס אַרבעט. איך בין דאַג לויד. דאס איז קס50.