[Powered by Google Translate] [סעקשאַן 4] [ווייניקער באַקוועם] [נאַטע האַרדיסאָן] [האַרוואַרד אוניווערסיטעט] [דאס איז קס50.] [CS50.TV] אַלע רעכט, באַגריסן צוריק צו אָפּטיילונג. אין דעם וואָך ס אָפּטיילונג מיר רע געגאנגען צו טאָן אַ פּאָר פון זאכן. מיר רע געגאנגען צו ערשטער ריקאַפּ פּראָבלעם באַשטעטיק 2, וואָס איז דער קיסר און וויגענèרע פּראָבלעם שטעלן. און דעמאָלט מיר רע געגאנגען צו ונטערטוקנ זיך אין קוויז 0 באריכטן און פאַרברענגען אַ קליין ביסל פון צייַט ריקאַפּינג וואָס מיר ווע גערעדט וועגן אין יעדער פון די רעפֿעראַטן אַזוי ווייַט, און מיר וועט אויך טאָן אַ ביסל פּראָבלעמס פון פֿריִערדיקע יאָר ס קוויזיז. אַז וועג איר גייז האָבן אַ גוט וועג צו צוגרייטן פֿאַר וואָס. צו אָנהייבן, איך ווע בוטיד אַרויף אַ פּאָר פון גוט סאַלושאַנז פֿאַר די פֿריִערדיקע פּראָבלעם שטעלן, פּראָבלעם באַשטעטיק 2, אין דעם אָרט. אויב איר גייז אַלע שלאָגן דעם לינק, און אויב איר גיט מיין נאָמען און גיט אויף מיין ערשטער רעוויזיע איר וועט זען קאַעסאַר.ק, וואָס איז פּונקט וואָס איך בין קוקן בייַ. זאל ס רעדן וועגן דעם טאַקע געשווינד. דאס איז נאָר אַ מוסטער לייזונג. דאס איז נישט דאַווקע די גאנץ לייזונג. עס זענען פילע פאַרשידענע וועגן צו שרייַבן דעם, אָבער עס זענען אַ ביסל זאכן וואָס איך געוואלט צו הויכפּונקט אַז איך געזען ווי איך איז געווען גריידינג, פּראָסט מיסטייקס אַז איך טראַכטן דעם לייזונג טוט אַ זייער גוט אַרבעט פון האַנדלינג. דער ערשטער איז ווייל עטלעכע סאָרט פון כעדער באַמערקונג אין די שפּיץ. אויף שורות 1 דורך 7 איר זען די פרטים, וואָס פּונקט דעם פּראָגראַם איז טאן. א גוט נאָרמאַל פיר ווען איר ניטאָ שרייבן C קאָד ראַגאַרדלאַס אויב דיין פּראָגראַם איז קאַנטיינד ין אַ איין טעקע אָדער צי עס ס שפּאַלטן איבער קייפל טעקעס איז צו האָבן עטלעכע סאָרט פון אָריענטינג באַמערקונג אין די שפּיץ. דאס איז אויך פֿאַר מענטשן וואס גיין אויס און שרייַבן קאָד אין די פאַקטיש וועלט. דאס איז ווו זיי וועט שטעלן קאַפּירייט אינפֿאָרמאַציע. ווייטער זענען די # כולל. אויף שורה 16 ​​דאָרט ס דעם # דעפינירן, וואָס מיר וועט קומען צוריק צו אין נאָר אַ ביסל. און דעמאָלט אַמאָל די פֿונקציע סטאַרץ, אַמאָל הויפּט סטאַרץ, ווייַל דעם פּראָגראַם האט שוין אַלע קאַנטיינד אין אַ איין פֿונקציע די זייער ערשטער זאַך אַז כאַפּאַנז-און דאָס איז זייער ידיאָמאַטיש און טיפּיש פון אַ C פּראָגראַם וואָס נעמט אין באַפֿעל שורה טענות-איז אַז עס מיד טשעקס פֿאַר די אַרגומענט ציילן, אַרגק. רעכט דאָ מיר זען אַז דעם פּראָגראַם איז יקספּעקטינג 2 טענות פּונקט. געדענק דאָרט ס אַז ערשטער אַרגומענט אַז ס די ספּעציעל איינער אַז ס 'שטענדיק דער נאָמען פון די פּראָגראַם אַז ס זייַענדיק לויפן, די נאָמען פון די עקסעקוטאַבלע טעקע. און אַזוי וואָס דאָס טוט איז עס פּריווענץ די באַניצער פון פליסנדיק די פּראָגראַם מיט מער אָדער ווייניקערע טענות. די סיבה מיר ווילן צו טשעק פֿאַר דעם רעכט אַוועק איז ווייַל מיר קענען נישט פאקטיש צוטריט דעם אַרגוו מענגע רעכט דאָ רילייאַבלי ביז מיר ווע אָפּגעשטעלט צו זען ווי גרויס עס איז. איינער פון די פּראָסט ערראָרס איך געזען איז מען וואָלט מיד גיין אין און כאַפּן אַרגוו [1]. זיי 'ד כאַפּן די שליסל אַרגומענט אויס פון די מענגע און טאָן די אַ צו איך טשעק אויף עס, און דעריבער זיי 'ד טאָן די פּרובירן פֿאַר אַרגק ווי געזונט ווי דער ווייַטער פּרובירן, צי אָדער נישט דער ערשטער אַרגומענט איז געווען טאַקע אַן ינטעגער אין דער זעלביקער צייַט, און וואָס טוט נישט אַרבעטן ווייַל אין דעם פאַל וואָס עס זענען קיין טענות סאַפּלייד איר וועט זייַן גראַבינג אַן אַרגומענט וואָס איז נישט דאָרט אָדער אַטעמפּטינג צו כאַפּן איינער וואָס איז נישט דאָרט. די אנדערע גרויס זאַך אַז איר זאָל באַמערקן איז אַז איר שטענדיק ווילן צו דרוקן אויס עטלעכע סאָרט פון נוציק טעות אָנזאָג צו די באַניצער צו אָריענט זיי. איך בין זיכער איר ווע אַלע לויפן מגילה ווו אַלע פון ​​אַ פּלוצעמדיק עס קראַשיז, און איר באַקומען דעם לעכערלעך ביסל דיאַלאָג וואָס פּאַפּס אַרויף און זאגט עפּעס כאָראַבלי קריפּטיק און אפֿשר גיט איר אַ טעות קאָד אָדער עפּעס ווי אַז וואָס מאכט קיין זינען. דאס איז ווו איר טאַקע ווילן צו צושטעלן עפּעס נוציק און טאַרגעטעד צו דער באַניצער אַזוי אַז ווען זיי לויפן עס זיי גיין "אָה," פּנים פאלם. "איך וויסן פּונקט וואָס צו טאָן. איך וויסן ווי צו פאַרריכטן דעם." אויב איר טאָן נישט דרוקן אַ אָנזאָג, דעמאָלט איר סוף זיך פאקטיש געלאזן די באַניצער צו גיין ונטערזוכן דיין מקור קאָד צו רעכענען אויס וואָס געגאנגען פאַלש. עס זענען אויך עטלעכע מאל אַז איר וועט נוצן פאַרשידענע טעות קאָודז. דאָ מיר נאָר געניצט איינער צו זאָגן עס איז געווען אַ טעות, עס איז געווען אַ טעות, עס איז געווען אַ טעות. ביגער מגילה, אָפֿט מגילה וואָס זענען גערופן דורך אנדערע מגילה, וועט צוריקקומען עטלעכע סאָרט פון ספּעציעל טעות קאָודז אין פאַרשידענע סינעריאָוז צו פּראָגראַממאַטיקאַללי יבערגעבן וואָס איר וואָלט אַנדערש נאָר נוצן אַ פייַן ענגליש אָנזאָג פֿאַר. קיל. ווי מיר אַרבעט אַראָפּ, איר קענען זען מיר ציען די שליסל אויס. מיר פּרובירן צו זען אויב דער שליסל פיץ. מיר באַקומען אַ אָנזאָג פון דעם באַניצער. די סיבה מיר טאָן עס אין דעם טאָן בשעת שלייף-און דאָס איז עפּעס וואָס מיר וועלן דעקן אין אַ קליין ביסל-אָבער עס טורנס אויס אַז אויב איר דרוקן קאָנטראָל די ווען איר באַקומען וואָס געצטרינג פּינטלעך אויף די וואָקזאַל וואָס אַז פאקטיש טוט איז עס סענדז אַ ספּעציעל כאַראַקטער צו די פּראָגראַם. עס ס גערופן די שרעטל אָדער דער סוף פון טעקע כאַראַקטער. און אין אַז פאַל, אונדזער אָנזאָג שטריקל וועט זייַן נאַל, אַזוי דאָס איז געווען נישט עפּעס מיר אָפּגעשטעלט פֿאַר אין די פּראָבלעם שטעלן זיך. אבער ווי מיר גיין אויף, איצט אַז מיר ווע אנגעהויבן צו רעדן וועגן פּוינטערז און דינאַמיש מעמאָרי אַלאַקיישאַן אויף די קופּע, קאָנטראָלירונג פֿאַר נאַל ווען איר האָט אַ פֿונקציע וואָס זאל צוריקקומען נאַל ווי אַ ווערט איז עפּעס אַז איר וועט וועלן צו באַקומען אין די מידע פון ​​טאן. דאס איז דאָ בפֿרט פֿאַר געמעל. אבער ווען איר טאָן זען געצטרינג אין דער צוקונפֿט, אַזוי פון פּראָבלעם באַשטעטיק 4 אויף, איר וועט וועלן צו האַלטן דעם אין מיינונג. ווידער, דאָס איז ניט אַן אַרויסגעבן פֿאַר פּראָבלעם באַשטעטיק 3 אָדער זינט מיר האבן נישט באדעקט עס נאָך. צום סוף, מיר באַקומען צו דעם טייל ווו מיר באַקומען צו דעם הויפּט ענקריפּשאַן שלייף, און עס זענען אַ פּאָר פון זאכן געגאנגען אויף דאָ. ערשטער, מיר יטעראַטע איבער די גאנצע אָנזאָג שטריקל זיך. דאָ מיר ווע געהאלטן די סטרלען רופן אין דעם צושטאַנד, וואָס אַ נומער פון איר האָבן אנגעוויזן איז ניט אַ גרויס וועג צו גיין. עס טורנס אויס אין דעם פאַל עס ס אויך נישט גרויס, צומ טייל ווייַל מיר רע מאַדאַפייינג די אינהאַלט פון דעם אָנזאָג זיך ין די פֿאַר שלייף, אַזוי אויב מיר האָבן אַ אָנזאָג אַז ס 10 אותיות לאַנג, דער ערשטער צייַט מיר אָנהייב אַז פֿאַר שלייף סטרלען וועט צוריקקומען וואָס? 10. אבער אויב מיר דעמאָלט מאָדיפיצירן אָנזאָג, זאָגן מיר מאָדיפיצירן זייַן 5 כאַראַקטער, און מיר וואַרפן אין אַ \ 0 כאַראַקטער אין די 5 שטעלע, אויף אַ סאַבסאַקוואַנט יטעראַטיאָן סטרלען (אָנזאָג) וועט נישט צוריקקומען וואָס עס האט די זייער ערשטער מאָל מיר יטעראַטעד, אָבער עס וועט אַנשטאָט צוריקקומען 5 ווייַל מיר האט אין אַז נאַל טערמינאַטאָר, און די שטריקל ס לענג איז דיפיינד דורך די שטעלע פון ​​וואָס \ 0. אין דעם פאַל, דאָס איז אַ גרויס וועג צו גיין ווייַל מיר רע מאַדאַפייינג עס אין פּלאַץ. אבער איר באַמערקן אַז דאָס איז פאקטיש סאַפּרייזינגלי פּשוט צו ינקריפּט אויב איר קענען באַקומען די מאַט ריכטיק. אַלע אַז ס 'פארלאנגט איז צו קאָנטראָלירן צי אָדער ניט די בריוו וואָס איר ניטאָ קוקן בייַ איז ופּפּערקאַסע אָדער לאָווערקאַסע. די סיבה מיר נאָר האָבן צו טשעק פֿאַר וואָס און מיר טאָן ניט האָבן צו טשעק פֿאַר דער איז אַלף פאַל איז ווייַל אויב אַ כאַראַקטער איז ופּפּערקאַסע אָדער אויב עס ס לאָווערקאַסע דעמאָלט עס ס באשטימט אַ אַלפאַבעטיק כאַראַקטער, ווייַל מיר טאָן ניט האָבן ופּפּערקאַסע און לאָווערקאַסע דידזשאַץ. די אנדערע זאַך מיר טאָן-און דאָס איז אַ ביסל טריקקי- איז מיר ווע געווארן מאדיפיצירט דער נאָרמאַל קיסר סייפער פאָרמולע אַז מיר געגעבן אין דער פּראָבלעם שטעלן באַשרייַבונג. וואָס ס פאַרשידענע דאָ איז אַז מיר סאַבטראַקטיד אין די ופּפּערקאַסע פאַל הויפּטשטאָט א, און דאַן מיר צוגעגעבן הויפּטשטאָט א צוריק אין בייַ די סוף. איך וויסן אַ ביסל פון איר האָבן געטאן דאָס אין דיין קאָד. האט קיין פון איר טאָן דאָס אין דיין סאַבמישאַנז? איר האט דעם. קענען איר דערקלערן וואָס דאָס טוט, סאַהב? דורך סאַבטראַקטינג עס אויס, ווייַל איר האט אַ מאָד רעכט נאָך אים, איר האָבן צו נעמען עס אויס, אַזוי אַז וועג איר באַקומען [קאָפינג] שטעלע. און דעמאָלט דורך אַדינג עס צוריק שפּעטער איר שיפטיד איבער דער איינער אַז איר געוואלט. יאָ, פּונקט. וואָס סאַהב געזאגט איז געווען אַז ווען מיר ווילן צו לייגן אונדזער אָנזאָג און אונדזער שליסל צוזאַמען און דעמאָלט מאָד אַז, מאָד אַז דורך נומ_לעטטערס, אויב מיר טאָן ניט וואָג אונדזער אָנזאָג אין די צונעמען 0-25 קייט ערשטער, דעמאָלט מיר זאל סוף אַרויף געטינג אַ טאַקע טשודנע נומער ווייַל די וואַלועס אַז מיר רע קוקן אין ווען מיר קוקן אין אָנזאָג [איך], ווען מיר קוקן אין די יטה כאַראַקטער פון אונדזער קלאָר-טעקסט אָנזאָג, איז אַ ווערט ערגעץ אין דעם 65-122 קייט באזירט אויף די אַסקי וואַלועס פֿאַר ופּפּערקאַסע א דורך לאָווערקאַסע ז. און אַזוי ווען מיר מאָד עס ביי 26 אָדער דורך נומ_לעטטערס, זינט וואָס איז געווען אונדזער # דעפינירן בייַ די שפּיץ רעכט אַרויף דאָ, אַז ס 'געגאנגען צו געבן אונדז אַ ווערט אַז ס אין דעם 0-25 קייט, און מיר דאַרפֿן אַ וועג צו דעמאָלט וואָג אַז צוריק אַרויף און באַקומען עס אין די צונעמען אַסקי קייט. די יזיאַסט וועג צו טאָן וואָס איז צו נאָר וואָג אַלץ אַראָפּ אין דעם 0-25 קייט צו אָנהייבן מיט, און דעמאָלט יבעררוק אַלץ צוריק אַרויף אין די סוף. אן אנדער פּראָסט טעות אַז איך געזען מענטשן לויפן אין איז אַז אויב איר טאָן נישט פאקטיש טאָן דעם סקיילינג רעכט אַוועק און איר שטעלן אָנזאָג און שליסל צוזאַמען און איר שטעלן זיי, זאָגן, אין אַ טשאַר בייַטעוודיק, די פּראָבלעם מיט וואָס איז זינט אָנזאָג [איך] איז אַ לעפיערעך גרויס נומער צו אָנהייבן מיט- געדענקען עס ס בייַ מינדסטער 65 אויב עס ס אַ ופּפּערקאַסע כאַראַקטער- אויב איר האָבן אַ גרויס שליסל, זאָגן, עפּעס ווי 100, און איר שטעלן יענע 2 צוזאַמען אין אַ געחתמעט טשאַר איר ניטאָ געגאנגען צו באַקומען אַן לויפן. איר רע געגאנגען צו באַקומען אַ ווערט אַז ס גרעסערע ווי 127, וואָס איז דער גרעסטער ווערט אַז אַ טשאַר בייַטעוודיק קענען האַלטן. ווידער, אַז ס וואָס איר 'ד ווילן צו טאָן אַז סאָרט פון זאַך צו נעמען מיט. עטלעכע מענטשן גאַט אַרום אַז פאַל דורך טאן אַן אויב אַנדערש און טעסטינג צו זען אויב עס וואָלט לויפן איידער טאן אַז, אָבער דעם וועג געץ אַרום אַז. און דעמאָלט אין דעם לייזונג מיר געדרוקט אויס די גאנצע שטריקל בייַ די זייער סוף. אנדערע מענטשן געדרוקט אויס אַ כאַראַקטער אין אַ צייַט. ביידע זענען אָסאַם. אין דעם פונט, טאָן איר גייז האָבן קיין שאלות, קיין באַמערקונגען וועגן דעם? זאכן איר ווי, דאס איר טאָן ניט ווי? איך האט אַ קשיא. אפֿשר איך מיסט עס בעשאַס דיין דערקלערונג, אָבער ווי טוט דעם פּראָגראַם האָפּקען די ספּייסאַז פֿאַר קאַנעקטינג דער שליסל צו די לענג פון די טעקסט? דאס איז נאָר קיסר סייפער. >> אָה, אנטשולדיגט, יאָ. יאָ, מיר וועט זען אַז. אין דער קיסר סייפער מיר גאַט אַרום אַז ווייַל מיר נאָר פליפּט אותיות. מיר נאָר ראָוטייטיד זיי אויב זיי זענען ופּפּערקאַסע אָדער לאָווערקאַסע. איר גייז געפיל שיין גוט וועגן דעם? פילן פֿרייַ צו צייכענען דעם שטוב, נעמען עס, פאַרגלייַכן אים צו וואָס איר גייז געשריבן. באשטימט פילן פֿרייַ צו שיקן שאלות וועגן עס אויך. און ווידער, פאַרשטיין אַז דער ציל דאָ מיט דיין פּראָבלעם שטעלט איז נישט צו באַקומען איר גייז צו שרייַבן גאנץ קאָד פֿאַר דיין פּראָבלעם שטעלט. עס ס אַ לערנען דערפאַרונג. יאָ. צוריק צו דער טאָן בשעת שלייף, אויב עס יקוואַלז נאַל, אַזוי נאַל נאָר מיטל גאָרנישט, זיי נאָר שלאָגן אַרייַן? נאַל איז אַ ספּעציעל טייַטל ווערט, און מיר נוצן נאַל ווען מיר ווילן צו זאָגן מיר האָבן אַ טייַטל בייַטעוודיק וואָס איז פּוינטינג צו גאָרנישט. און אַזוי טיפּיקלי עס מיטל אַז דעם בייַטעוודיק, דעם אָנזאָג בייַטעוודיק איז ליידיק, און דאָ, ווייַל מיר רע ניצן די קס50 ספּעציעל שטריקל טיפּ, וואָס איז די קס50 שטריקל טיפּ? האָט איר געזען וואָס עס איז ווען דוד פּולד צוריק די קאַפּטער אין לעקציע? עס ס אַ פאַנגקי-עס ס אַ טייַטל, רעכט? אָוקיי, יאָ. >> עס ס אַ טשאַר *. און אַזוי טאַקע מיר קען פאַרבייַטן דעם רעכט דאָ מיט טשאַר * אָנזאָג, און אַזוי די געצטרינג פונקציאָנירן, אויב עס טוט נישט הצלחה באַקומען אַ שטריקל פון דעם באַניצער, עס קענען נישט פּאַרס אַ שטריקל, און דער איין פאַל אין וואָס עס קענען נישט פּאַרס אַ שטריקל איז אויב דער באַניצער טייפּס דער סוף פון טעקע כאַראַקטער, די קאָנטראָל ד, וואָס איז נישט עפּעס איר טיפּיקלי טאָן, אָבער אויב אַז כאַפּאַנז דעריבער די פֿונקציע וועט צוריקקומען דעם נאַל ווערט ווי אַ וועג פון זאגן "היי, איך האט ניט באַקומען אַ שטריקל." וואָס וואָלט פּאַסירן אויב מיר טאָן ניט שטעלן אָנזאָג = נאַל, וואָס איז עפּעס וואָס מיר האָבן נישט שוין טאן נאָך? וואָס וואָלט אַז זייַן אַ פּראָבלעם דאָ? ווייַל איך וויסן אַז מיר גערעדט אַ ביסל ביסל אין לעקציע וועגן מעמאָרי ליקס. יאָ, לאָזן ס טאָן אַז, און לאָזן ס זען וואָס כאַפּאַנז. באַסיל ס קשיא איז געווען וואָס כאַפּאַנז אויב מיר טאָן נישט פאקטיש האָבן דעם אָנזאָג = נאַל פּרובירן? זאל ס מעגילע אַרויף צו די שפּיץ. איר גייז קענען באַמערקן דאָס אויס. פאקטיש, איך וועט ראַטעווען עס אין אַ רעוויזיע. דאס וועט זייַן רעוויסיאָן 3. וואָס איר וועט האָבן צו טאָן צו לויפן דעם פּראָגראַם איז איר וועט האָבן צו גיט דעם גאַנג בילדל אַרויף דאָ, און איר וועט האָבן צו לייגן אַן אַרגומענט צו עס. איר וועט האָבן צו געבן אים דעם שליסל אַרגומענט זינט מיר ווילן צו פאָרן אין אַ באַפֿעל שורה אַרגומענט. דאָ איך בין געגאנגען צו געבן אים דעם נומער 3. איך ווי 3. איצט זומינג צוריק אויס, פליסנדיק די פּראָגראַם. עס ס פליסנדיק, קאַמפּיילינג, בנין. דאָ מיר גיין. עס ס ווארטן צו זייַן פּראַמפּטיד. אויב איך טיפּ אין עפּעס ווי העלא-ווו האט אַז גיין? אָה, מיין פּראָגראַם גענומען אויך לאַנג צו לויפן. איך איז געווען דזשאַווינג פֿאַר אויך לאַנג. דאָ עס גייט. איצט איך טיפּ אין העלא. מיר זען אַז עס ענקריפּץ אַפּראָופּרייטלי. איצט וואָס כאַפּאַנז אויב מיר טאָן פּינטלעך געצטרינג צו צוריקקומען נאַל? געדענק, איך געזאגט אַז מיר האבן אַז דורך דרינגלעך קאָנטראָל ד אין דער זעלביקער צייַט. איך וועט מעגילע אַרויף דאָ. מיר וועט לויפן עס ווידער. בנין. עס עס גייט. איצט ווען איך שלאָגן קאָנטראָל די איך גאַט דעם שורה וואָס זאגט אָפּט/סאַנדבאָקס50/בינ/רונ.ש, סעגמענטאַטיאָן שולד. האָט איר גייז געזען אַז איידער? [תּלמיד] פארוואס איז עס קיין->> אנטשולדיגט? [תּלמיד] פארוואס איז עס קיין האַרץ דאַמפּ אין דעם פאַל? די האַרץ דאַמפּ איז-די קשיא איז וואָס איז דאָרט קיין האַרץ דאַמפּ דאָ? די קשיא איז אַז עס קען זייַן, אָבער די האַרץ דאַמפּ איז אַ טעקע אַז געץ סטאָרד אויף די שווער פאָר. אין דעם פאַל מיר ווע פאַרקריפּלט האַרץ דאַמפּס אויף די לויפן סערווער אַזוי אַז מיר טאָן ניט האָבן מענטשן סעג פאָלטינג און בנין אַרויף טאָנס פון האַרץ דאַמפּס. אבער איר זאלט ​​באַקומען איין. האַרץ דאַמפּס זענען די סאָרט פון זאַך וואָס איר קענען אָפֿט דיסייבאַל, און מאל איר טאָן. די סעגמאַנטיישאַן שולד, צו ענטפֿערן דיין פֿראַגע, באַסיל, איז געזאגט אַז מיר געפרוווט צו צוטריט אַ טייַטל וואָס איז געווען ניט שטעלן צו פונט צו עפּעס. געדענק בינקי אין די ווידעא ווען בינקי פרוווט צו גיין צוטריט אַ טייַטל אַז ס 'נישט פּוינטינג צו עפּעס? אין דעם פאַל איך טרעפן טעקניקלי די טייַטל איז פּוינטינג צו עפּעס. עס ס פּוינטינג צו נאַל, וואָס איז טעקניקלי 0, אָבער וואָס איז דיפיינד צו זייַן אין אַ אָפּשניט וואָס איז נישט צוטריטלעך דורך דיין פּראָגראַם, אַזוי איר באַקומען אַ סעגמאַנטיישאַן שולד ווייַל איר ניטאָ ניט אַקסעסינג מעמאָרי אַז ס אין אַ גילטיק אָפּשניט ווי דער קופּע אָפּשניט אָדער די אָנלייגן אָפּשניט אָדער די דאַטן אָפּשניט. קיל. קיין מער פראגעס וועגן קיסר? זאל ס 'מאַך אויף. זאל ס קוק בייַ רעוויסיאָן 2 טאַקע געשווינד. אַז ס וויגענèרע. דאָ אין וויגענèרע מיר וועט גיין דורך דעם איין שיין געשווינד ווייַל, ווידער, וויגענèרע און קיסר זענען גאַנץ ענלעך. כעדער באַמערקונג איז פריער, # דעפינירן איז איידער צו ויסמייַדן ניצן די מאַגיש נומערן. די פייַן זאַך איז זאָגן מיר געוואלט צו באַוועגן צו אַ אַנדערש אלפאבעט אָדער עפּעס ווי אַז. אלא ווי בעת צו גיין מאַניואַלי טוישן אַלע די 26 'ס אין די קאָד מיר קען טוישן דעם צו 27 אָדער פאַלן אים אַראָפּ אויב מיר זענען ניצן פאַרשידענע אַלפאַבעץ, פאַרשידענע שפּראַכן. ווידער, מיר ווע גאַט דעם טשעק פון דער אַרגומענט ציילן, און טאַקע איר קענען כּמעט נעמען דעם ווי אַ מוסטער. שיין פיל יעדער פּראָגראַם איר שרייַבן זאָל האָבן- אויב עס נעמט באַפֿעל שורה טענות-עטלעכע סיקוואַנס פון שורות וואָס לייענט ווי דעם אין די זייער אָנהייב. אַז ס איינער פון די ערשטער מייושעוודיקייַט טעסץ איר ווילן צו טאָן. דאָ וואָס מיר האבן איז מיר געמאכט זיכער אַז די קיווערד איז געווען גילטיק, און וואָס איז געווען די רגע טשעק וואָס מיר האבן. נאָטיץ ווידער אַז מיר אפגעשיידט דעם פון אַרגק און 2. באַמערקונג אַז אין דעם פאַל איין זאַך וואָס מיר האבן צו טאָן איז געווען אַנשטאָט פון ניצן אַ צו איך מיר געוואלט צו וואַלאַדייט די גאנצע שטריקל, און אין סדר צו טאָן וואָס איר פאקטיש האָבן צו גיין כאַראַקטער דורך כאַראַקטער איבער דעם שטריקל. עס ס ניט גוט וועג צו רופן עפּעס אויף עס ווייַל אַפֿילו, פֿאַר בייַשפּיל, אַ צו איך וועל צוריקקומען 0 אויב עס קענען נישט פּאַרס אַן ינטעגער, אַזוי אַז טוט נישט אַפֿילו אַרבעט. ווידער, פייַן אָנזאָג טעלינג דער באַניצער פּונקט וואָס געטראפן. דעריבער דאָ, ווידער, מיר אויך שעפּן די פאַל ווו דער באַניצער טייפּס אין אַ קאָנטראָל די טראַפ כאַראַקטער. און דעמאָלט שאַרלאַט האט אַ קשיא פריער וועגן ווי מיר פירן צו האָפּקען ספּייסאַז אין אונדזער שטריקל דאָ. דאס איז געווען מין פון ענלעך צו וואָס מיר האבן מיט די מיספּאַסע פּראָגראַם אַז מיר האבן אין אָפּטיילונג, און די וועג דאָס געארבעט איז וואָס מיר טראַקט די נומער פון אותיות וואָס מיר 'ד געזען. ווי מיר געגאנגען איבער דער אָנזאָג שטריקל, ווי מיר געגאנגען איבער כאַראַקטער דורך כאַראַקטער, מיר טראַקט די אינדעקס ווי טייל פון אונדזער פֿאַר שלייף, און דאַן מיר אויך טראַקט די נומער פון אותיות, אַזוי ניט-ספּעציעל אותיות, ניט-דידזשאַץ, ניט-ווייַס אָרט אַז מיר 'ד געזען אין די באַזונדער בייַטעוודיק. און דאַן דעם לייזונג מאַדאַפייז די שליסל צו באַקומען אַ פאַקטיש שליסל ינטעגער, און עס טוט וואָס אויף די פליען, רעכט איידער עס דעמאָלט גייט צו ינקריפּט די פאַקטיש אָנזאָג כאַראַקטער. עס זענען עטלעכע סאַלושאַנז וואָס זענען בישליימעס גרויס אויך וואָס וואָלט מאָדיפיצירן דער שליסל אַרויף ווען טעסטינג פֿאַר די שליסל ס גילטיקייַט. אין דערצו צו מאכן זיכער אַז די כאַראַקטער און די קיווערד איז געווען אַ אַלפאַבעטיק כאַראַקטער עס אויך פארקערט אַז אין אַ ינטעגער אין דעם 0-25 קייט צו דעמאָלט האָפּקען ווייל צו טאָן אַז שפּעטער אויף אין דעם פֿאַר שלייף. ווידער, איר זען דאָ דאָס איז טאַקע די פּינטלעך זעלביקער קאָד אַז מיר געניצט אין קיסר אין דעם פונט. איר רע טאן די פּינטלעך זעלבע זאַך, אַזוי די פאַקטיש קונץ איז פיגיערינג אויס ווי צו אומקערן די קיווערד אין אַ ינטעגער. איין זאַך וואָס מיר האבן דאָ וואָס איז אַ ביסל געדיכט איז מיר ריפּיטיד דעם פראַזע, איך טרעפן איר קען רופן עס, 3 באַזונדער מאל אויף שורות 58, 59, און 61. קען עמעצער דערקלערן וואָס פּונקט דעם פראַזע טוט? עס ס אַקסעסינג אַ כאַראַקטער, ווי איר האט געזאגט. יאָ, עס ס [ינאָדאַבאַל] אַ כאַראַקטער אין די קיווערד, און אַזוי עס ס נומער פון אותיות געזען ווייַל איר ניטאָ בלויז מאָווינג צוזאמען די קיווערד אַמאָל איר ווע געזען דעם בריוו, אַזוי אַז ס 'געגאנגען צו יפעקטיוולי האָפּקען ספּייסאַז און שטאָפּן ווי אַז. יאָ, פּונקט. און דעמאָלט אַמאָל איר ווע געזען די קיווערד ליידיק איר נאָר מאָד אַזוי איר מאַך צוריק אַרום. פּונקט. אַז ס אַ גאנץ דערקלערונג. וואָס קעווין האט איז אַז מיר ווילן צו אינדעקס אין די קיווערד. מיר ווילן צו באַקומען די נומ_לעטטערס_סעען כאַראַקטער, אויב איר וועט, אָבער אויב נומ_לעטטערס_סעען יקסידז די לענג פון די קיווערד, די וועג מיר באַקומען צוריק אין די צונעמען קייט איז מיר נוצן די מאָד אָפּעראַטאָר צו יפעקטיוולי ייַנוויקלען אַרום. פֿאַר בייַשפּיל, ווי אין די קורץ, אונדזער קיווערד איז בייקאָן, און עס ס 5 אותיות לאַנג. אבער מיר 'ווע געזען 6 אותיות אין אונדזער קלאָר טעקסט אין דעם פונט און ענקריפּטיד 6. מיר וועלן סוף אַרויף אַקסעסינג די נומ_לעטטערס_סעען, וואָס איז 6, מאָד די לענג פון די קיווערד, 5, און אַזוי מיר וועט באַקומען 1, און אַזוי וואָס מיר וועט טאָן איז מיר וועט צוטריט דער ערשטער כאַראַקטער ין פון אונדזער קיווערד בייַ אַז פונט. אַלע רעכט, קיין פראגעס אויף וויגענèרע איידער מיר מאַך אויף? איר גייז געפיל שיין גוט וועגן דעם? קיל, גרויס. איך ווילן צו מאַכן זיכער אַז איר גייז זענען געטינג די געלעגנהייַט צו זען קאָד אַז מיר טראַכטן קוקט גוט און האָבן די געלעגנהייַט צו לערנען פון אים. דאס איז געגאנגען צו זייַן די לעצטע מיר וועט זייַן ניצן ספּייסאַז פֿאַר די צייַט זייַענדיק, און מיר רע געגאנגען צו יבערגאַנג איצט, און איך בין געגאנגען צו גיין צו cs50.net/lectures אַזוי מיר קענען טאָן אַ קליין ביסל פון ויספרעג באריכטן. דער בעסטער וועג איך טראַכטן צו אָנהייבן טאן ויספרעג באריכטן איז צו קומען צו דעם לעקטורעס בלאַט, cs50.net/lectures, און ונטער יעדער פון די וואָך כעדינגז, אַזוי אויב איך קוק דאָ בייַ וואָך 0, איך זען אַז מיר האָבן אַ רשימה פון סוגיות אַז מיר באדעקט אין וואָך 0. אויב קיין פון די סוגיות ויסקומען אַנפאַמיליער צו איר איר וועט באשטימט וועלן צו גיין צוריק און שייַערן די לעקציע הערות און עפשער אַפֿילו אָפּשעפּן דורך די רעפֿעראַטן, היטן זיי ווידער אויב איר ווילן צו באַקומען אַ פילן פֿאַר וואָס ס 'געגאנגען אויף מיט יעדער פון יענע סוגיות. איך וועל זאָגן אַדדיטיאָנאַללי דעם יאָר איינער פון די קיל רעסורסן מיר ווע גאַט איז די קורצע הייזלעך אַז מיר ווע באשאפן, און אויב איר קוק בייַ וואָך 0, מיר טאָן ניט האָבן אַלע פון ​​די סוגיות באדעקט, אָבער מיר 'ווע גאַט גאַנץ אַ ביסל פון זיי, עטלעכע פון ​​די טריקיער אָנעס, אַזוי וואַטשינג די קורצע הייזלעך ווידער איז אַ גוט וועג צו באַקומען איר אַרויף צו גיכקייַט. אין באַזונדער, איך בין געגאנגען צו שטעלן אין אַ צאַפּן פֿאַר די 3 אויף די דנאָ, זינט איך האט יענע. אבער אויב איר ניטאָ סטראַגאַלינג מיט ביינערי, ביטן, העקס, אַז מין פון שטאָפּן, ביינערי איז אַ גרויס אָרט צו אָנהייבן. אַסקי איז אן אנדער איין אַז ס 'גוט צו מיינונג אויך. איר קענען אַפֿילו היטן מיר בייַ 1.5קס גיכקייַט אויב איך בין געגאנגען אויך פּאַמעלעך פֿאַר איר. זינט עס ס באריכטן, פילן פֿרייַ צו טאָן וואָס. נאָר צו אָנהייב טאַקע געשווינד, מיר רע געגאנגען צו גיין דורך אַ פּאָר פון די ויספרעג פּראָבלעמס נאָר צו געשווינד טשערן דורך די. פֿאַר בייַשפּיל, לאָזן ס קוק בייַ פּראָבלעם 16 אַז איך ווע גאַט רעכט זיך דאָ אויף דעם ברעט. מיר ווע גאַט דעם פאלגענדע כעזשבן אין ביינערי, און מיר ווילן צו ווייַזן קיין אַרבעט. אָוקיי, איך בין געגאנגען צו געבן דעם אַ שאָס. איר גייז זאָל נאָכגיין צוזאמען מיט פּאַפּיר, און מיר וועט טאָן דאָס טאַקע געשווינד. מיר ווילן צו דורכפירן די פאלגענדע כעזשבן אין ביינערי. איך ווע גאַט 00,110,010. און איך בין געגאנגען צו לייגן צו עס 00,110,010. פֿאַר די מאַט דזשיניאַסיז פאלגענדע צוזאמען אין שטוב, דאָס איז יפעקטיוולי מאַלטאַפּלייינג דורך 2. זאל ס אָנהייב. מיר רע געגאנגען צו נאָכפאָלגן די זעלבע דערצו אַלגערידאַם אַז מיר טאָן ווען מיר לייגן דעצימאַל נומערן צוזאַמען. טאַקע דער בלויז חילוק דאָ איז אַז מיר שלייף צוריק אַרום אַמאָל מיר האָבן 1 + 1 אַנשטאָט פון אַמאָל מיר באַקומען צו 10. אויב מיר אָנהייב פון די רעכט, טאַקע געשווינד, וואָס ס דער ערשטער ציפֿער? [תּלמיד] 0. >> [נאַטע ה] 0. גרויס, די רגע ציפֿער? [תּלמיד] 1. [נאַטע ה] איז עס אַ 1? 1 + 1 איז? [תּלמיד] 10. [נאַטע ה] עקסאַקטלי, אַזוי וואָס איז דער ציפֿער וואָס איך שרייַבן רעכט ונטער דעם 2 אָנעס צוגעגעבן צוזאַמען? [תּלמיד] 1, 0, אָדער 0 און דעריבער פירן די 1. [נאַטע ה] 0 און פירן אַ 1, פּונקט. ווייַטער איין אַרויף, באַסיל, איר ניטאָ אַרויף. וואָס ס די דריט? >> [באַסיל] 1. [נאַטע ה] 1, גאנץ. קעווין? [קעווין] 0. >> [נאַטע ה] 0, שאַרלאַט? [שאַרלאַט] 0. >> [נאַטע ה] יאָ, און וואָס טאָן איך טאָן? [תּלמיד] די 1. [נאַטע ה] און וואָס טוט איך טאָן? און דעמאָלט איך פירן די 1. גאנץ, סאַהב? >> [סאַהב] איצט איר האָט 1. [נאַטע ה] און טאָן איך טאָן עפּעס דאָ? [סאַהב] דערנאך פֿאַר דער ווייַטער איינער איר האָט 1 ווייַל איר געפירט איבער 1. [נאַטע ה] גרויס, אַזוי דאָ מיר קענען ענדיקן עס אַרויף. קיל. [תּלמיד] טוט 0 + 0 = 0? 0 + 0 = 0. 1 + 1, ווי איר האט געזאגט, איז 10, אָדער 1, 0, אלא. 10 איז אַ מיסנאָומער ווייַל צו מיר 10 מיטל די נומער 10, און עס ס די מאָדנעקייַט פון ווי מיר רע רעפּריזענטינג עס ווען מיר רע שרייבן עס. מיר פאָרשטעלן די נומער 2 דורך 1, 0, און די נומער 10 איז אַ ביסל אַנדערש. וואָס ס מין פון פייַן וועגן ביינערי איז אַז עס טאַקע ביסט נישט אַז פילע קאַסעס איר דאַרפֿן צו לערנען. עס ס 0 + 0 = 0, 0 + 1 = 1, 1 + 1 איז 0, און דעריבער פירן אַ 1, און דאַן איר קענען זען דאָ אויף די דריט זייַל פון די רעכט מיר האט דעם 1, 1, און 1. און 1 + 1 + 1 איז אַ 1, און איר פירן אן אנדער 1. ווען איר ניטאָ טאן ביינערי דערצו, שיין פּשוט. איך 'ד טאָן אַ פּאָר מער פון די צו מייושעוודיקייַט טשעק אליין איידער איר גיין אין ווייַל דאָס איז מיסטאָמע עפּעס אַז מיר וועט זען אויף די ויספרעג. איצט לאָזן ס טאָן דעם ווייַטער איינער ווי געזונט. זאל ס טאָן פּראָבלעם 17. מיר רע געגאנגען צו בייַטן די פאלגענדע ביינערי נומער צו דעצימאַל. איך ווע גאַט 10100111001. געדענקען אין די ביינערי ווידעא וואָס איך האט איך געגאנגען דורך אַ פּאָר פון ביישפילן, און איך געוויזן ווי אַלץ אַרבעט ווען איר ניטאָ טאן עס אין דעצימאַל. ווען איר ניטאָ ארבעטן אין דעצימאַל פאַרטרעטונג איך טראַכטן מיר רע אין דעם פונט אין אונדזער לעבן אַזוי גלאַט אין עס אַז עס ס שיין גרינג צו גלאָס איבער די מאַקאַניקס פון ווי עס פאקטיש אַרבעט. אבער צו טאָן אַ שנעל ריקאַפּ, אויב איך האָבן דעם נומער 137 דעם טאַקע מיטל-און ווידער, דאָס איז אין דעצימאַל פאַרטרעטונג- די נומער 137 אין דעצימאַל מיטל וואָס איך האָבן 1 X 100 + 3 X 10 + 7 X 1. דאס איז אַלע סטייינג אויף דעם עקראַן. און דעריבער אויב איר קוק אין די נומערן רעכט דאָ, 100, 10 און 1, איר זען אַז זיי ניטאָ פאקטיש אַלע כוחות פון 10. איך האב 10 ², 10 ¹, און 10 צו די נול. מיר האָבן אַ ענלעך סאָרט פון זאַך אין ביינערי, חוץ אַז אונדזער באַזע, ווי מיר רופן עס, איז 2 אַנשטאָט פון 10. די 10s אַז איך געשריבן אַראָפּ דאָ אין די דנאָ, דעם 10 ², 10 ¹, 10 צו דער נול, 10 איז אונדזער באַזע, און די עקספּאָנענט, 0, 1, אָדער 2, איז ימפּלייד דורך די שטעלע פון ​​דער ציפֿער אין דער נומער וואָס מיר שרייַבן. 1, אויב מיר קוקן בייַ אים, דעם 1 איז אין די 2 שטעלע. די 3 איז אין די 1 שטעלע, און די 7 איז אין דעם 0 שטעלע. אַז ס ווי מיר באַקומען די פארשיידענע יקספּאָונאַנץ ווייטער פֿאַר אונדזער באַסעס. ווייַטערדיק אַלע פון ​​דעם וויל-פאקטיש, איר וויסן וואָס? מיר וועט טאָן-ווו האט מיין ופמאַכן קנעפּל גיין? עס עס גייט. איך ליבע דעם ופמאַכן זאַך. ווייַטערדיק דעם איך טראַכטן פֿאַר מיר בייַ מינדסטער די יזיאַסט וועג צו אָנהייבן קאַנווערטינג אַ ביינערי נומער אָדער אַ העקסאַדעסימאַל נומער ווו די באַזע איז 16 און נישט 10 אָדער 2 איז צו גיין פאָרויס און שרייַבן אויס די באַסעס און יקספּאָונאַנץ פֿאַר אַלע פון ​​די נומערן אין מיין ביינערי נומער בייַ די שפּיץ. אויב מיר אָנהייב פון לינקס צו רעכט ווידער, וואָס איז מין פון קאָונטערינטויטיווע, איך וועט טוישן צוריק צו שוואַרץ דאָ, מיר האָבן די 2 צו דעם 0 שטעלע, און דעמאָלט מיר האָבן 2 ¹, 2 ², און דעמאָלט 2 צו די 3, 2 צו די 4, 2 צו די 5, 6, 7, 8, 9, און 10. די נומערן איך ווע געשריבן אויס זענען אַלע די יקספּאָונאַנץ. איך נאָר געשריבן די באַסעס דאָ אין דער ערשטער 3 נאָר פֿאַר פּלאַץ. אין דעם פונט איך בין געגאנגען צו גיין פאָרויס און איך בין פאקטיש געגאנגען צו מעקן די שטאָפּן אַז מיר האבן אין דעצימאַל, אויב אַז ס אָוקיי. איר ווע אַלע גאַט וואָס. יענע פון ​​איר וואַטשינג אָנליין איך בין זיכער וועט זייַן ביכולת צו ריוויינד מיר אויב איר 'ד ווי. סוויטשינג צוריק צו דער פעדער. איצט, וואָס מיר קענען טאָן-אויב איר גייז זענען נישט טאָוטאַלי אַרויף צו גיכקייַט אויף דיין כוחות פון 2, אַז ס טאָוטאַלי קיל. עס כאַפּאַנז. איך פֿאַרשטיין. איך אַמאָל געהאט אַ אַרבעט אינטערוויו ווו איך האט דערציילט איך זאָל וויסן אַלע כוחות פון 2 אַרויף דורך 2 צו דעם 30. עס איז נישט אַ אַרבעט איך גאַט. סייַ ווי סייַ, איר גייז קענען גיין פאָרויס און טאָן די מאַט דאָ, אָבער מיט ביינערי עס טוט ניט טאַקע מאַכן זינען, און אדער טוט עס מאַכן זינען מיט דעצימאַל אָדער העקסאַדעסימאַל אָדער, צו טאָן די מאַט אויס ווו איר האָבן זעראָס. איר קענען זען איך האָבן 0 דאָ, אַ 0 דאָ, 0 דאָ, 0 דאָ, 0 דאָ, 0 דאָ. פארוואס זאל עס נישט מאַכן זינען צו טאָן די פאַקטיש מאַט צו רעכענען די צונעמען מאַכט פון 2 פֿאַר אַז שטעלע? פּונקט, ווי שאַרלאַט האט געזאגט, עס וועט זייַן 0. זאל ווי געזונט ראַטעווען זיך די צייַט אויב קאַלקיאַלייטינג כוחות פון 2 איז נישט דיין שטאַרק פּאַסן. אין דעם פאַל מיר נאָר דאַרפֿן צו רעכענען עס פֿאַר 2 צו דעם 0 וואָס איז-? [תּלמיד] 1. [נאַטע ה] 1, 2 צו די 3 וואָס איז-? [תּלמיד] 8. >> [נאַטע ה] 8. 2 צו די 4? [תּלמיד] 2. איך בין נעבעכדיק, 1. [נאַטע ה] 2 צו די 4 איז 16, פּונקט. 2 צו די 5, קעווין? >> 32. [נאַטע ה] 32, 2 צו די 8? [תּלמיד] 32 X 8, 256. [נאַטע ה] פּערפעקט. און 2 צו די 10? [תּלמיד] 1024. [נאַטע ה] יאָ, 1024. אַמאָל מיר ווע גאַט די נומערן מיר קענען סאַכאַקל זיי אַלע אַרויף. און דאָס איז ווו עס ס טאַקע וויכטיק צו טאָן אַ פּאָר פון זאכן. איינער איז גיין פּאַמעלעך און טשעק דיין אַרבעט. איר קענען זאָגן אַז דאָרט ס אַ 1 אין די סוף פון דעם נומער, אַזוי איך זאָל באשטימט באַקומען אַ מאָדנע נומער ווי מיין רעזולטאַט, ווייַל אַלע די אנדערע אָנעס זענען געגאנגען צו זייַן אַפֿילו נומערן געגעבן אַז עס ס אַ ביינערי נומער. די אנדערע זאַך צו טאָן איז אויב איר באַקומען צו דעם פונט אויף די פּרובירן און איר ווע געשריבן עס אויס דעם ווייַט און איר ניטאָ פליסנדיק אויס פון צייַט קוק בייַ די נומער פון ווייזט אַז דעם פּראָבלעם איז ווערט. דאס פּראָבלעם, ווי איר קענען זען-אויב איך פליפּ צוריק צו מיין לאַפּטאַפּ טאַקע געשווינד- דאָס פּראָבלעם איז ווערט 2 ווייזט, אַזוי דאָס איז נישט דער סאָרט פון דערצו איר זאָל זייַן געגאנגען דורך אויב איר ניטאָ טאַקע געדריקט פֿאַר מאָל. אבער מיר וועט באַשטימען צוריק צו דער יפּאַד, און מיר וועט גיין דורך עס טאַקע געשווינד. איך ווי טאן די קליין נומערן ערשטער ווייַל איך געפֿינען וואָס גרינגער. איך ווי 32 און 8 ווייַל זיי גיין צוזאַמען שיין לייכט, און מיר באַקומען 50. 16 און 1 געץ 17. עס מיר באַקומען 57, און דעמאָלט מיר קענען טאָן די מנוחה פון דעם, אַזוי מיר קענען טאָן 57, 156. קומען אויף. מענטש, געזונט, לאָזן ס זען. מיר האט 57, 256, און 1024. אין דעם פונט, איך 'ד אלא נאָר גיין דורך. איך האב קיין קלו. איך קלאר דאַרפֿן צו לייענען אַרויף אויף דעם. 7, 6, און 4, איר באַקומען 17. 1, 5, 5, 2, 13. דעמאָלט מיר באַקומען 3, און דאַן מיר באַקומען 1. 1337. יסטער יי, אַבי ווער? אַבי ווער דערקענען דעם נומער? קריס אנערקענט דעם נומער. וואָס טוט עס מיינען, קריס? [קריס] ליט. ליט, אַזוי אויב איר קוק אין דעם, עס קוקט ווי ליט. העקער שטאָפּן. וואַך אויס פֿאַר אַז מין פון שטאָפּן אויף די מידטערם אָדער די ויספרעג, אלא. אויב איר זען אַז מין פון שטאָפּן און איר ניטאָ וואַנדערינג "הוה," וואָס זאל פאקטיש מיינען עפּעס. איך טאָן ניט וויסן. דוד לייקס פּאַטינג עס ין עס ס אַ גוט וועג צו מייושעוודיקייַט טשעק עס. ווי אָוקיי, איך קענען זען וואָס ס 'געגאנגען אויף. אַז ס וואָך 0/וועעק 1 שטאָפּן. אויב מיר באַשטימען צוריק צו אונדזער לאַפּטאַפּ איצט, פארגרעסער אויס, און אַ פּאָר פון אנדערע זאכן. עס ס אַסקי, וואָס מיר ווע שוין טאן אַ פּלאַץ פון מיט די פּראָבלעם שטעלט. דעם געדאנק פון הויפּטשטאָט יי וואָס איז וואָס טאַקע? געוואוסט עס ס די דעצימאַל ינטעגער. 65 איז וואָס עס ס מאַפּט צו אין די אַסקי טיש, און אַז ס דעריבער ווי דער קאָמפּיוטער שרייבט עס, און אַז ס ווי מיר ווע שוין געטינג אַוועק מיט פאקטיש שרייבן דער כאַראַקטער הויפּטשטאָט א און דער כאַראַקטער לאָווערקאַסע אַ אין עטלעכע פון ​​די סאַלושאַנז און פּראָבלעם שטעלט אַז איר ווע שוין טאן. א פּאָר פון אנדערע זאכן. מיר ווע גאַט סטייטמאַנץ, בוליאַן אויסדרוקן, באדינגונגען, לופּס, וועריאַבאַלז און פֿעדעם. יענע אַלע ויסקומען צו מאַכן חוש פֿאַר די רובֿ טייל? עטלעכע פון ​​דעם טערמינאָלאָגיע איז אַ ביסל פאַנגקי בייַ מאל. איך ווי צו טראַכטן פון אַ סטאַטעמענט ווי פֿאַר די רובֿ טייל עפּעס אַז ענדס מיט אַ פּינטל - קאָמע. סטייטמאַנץ אַזאַ ווי X = 7, וואָס שטעלט אַ בייַטעוודיק, מאַשמאָעס גערופן X = 7. מאַשמאָעס X איז אויך אַ טיפּ וואָס קענען קראָם די נומער 7, אַזוי עס ס אַ ינט אָדער עפשער אַ לאָזנ שווימען אָדער אַ קורץ אָדער אַ טשאַר, עפּעס ווי אַז. א בוליאַן אויסדרוק איז ניצן די טאָפּל יקוואַלז און די קלאַפּ יקוואַלז אָדער דער ניט יקוואַלז, ווייניקער ווי, גרעסער ווי, ווייניקער ווי אָדער גלייַך צו, אַלע וואָס מין פון שטאָפּן. באדינגונגען דעמאָלט זענען אויב אַנדערש סטייטמאַנץ. איך וואָלט געדענקען אַז איר קענען נישט האָבן אַן אַנדערש אָן אַ קאָראַספּאַנדינג אויב. פּונקט אַזוי, איר קענען נישט האָבן אַן אַנדערש אויב אָן אַ קאָראַספּאַנדינג אויב. לופּס, צוריקרופן די 3 מינים פון לופּס מיר ווע שוין כאַמערינג אין איר פֿאַר די לעצטע פּאָר פון סעקשאַנז און פּראָבלעם שטעלט. ניצן טאָן בשעת ווען איר 'רע געטינג באַניצער אַרייַנשרייַב, ניצן בשעת לופּס ביז אַ באַזונדער צושטאַנד איז אמת, און דעמאָלט ניצן יענע פֿאַר לופּס אויב איר דאַרפֿן צו וויסן וואָס יטעראַטיאָן פון די שלייף איר ניטאָ דערווייַל אויף איז ווי איך טראַכטן וועגן אים. אָדער אויב איר ניטאָ טאן אַ פֿאַר יעדער כאַראַקטער אין אַ שטריקל איך ווילן צו טאָן עפּעס, פֿאַר יעדער עלעמענט אין אַ מענגע איך ווילן צו טאָן עפּעס צו אַז עלעמענט. פֿעדעם און געשעענישן. די מיר האָבן נישט באדעקט אַזוי בפירוש אין C, אָבער געדענקען דעם פון קראַצן. דאס איז דער געדאנק פון בעת ​​פאַרשידענע סקריפּס. דאס איז אויך דעם געדאנק פון בראָדקאַסטינג אַ געשעעניש. עטלעכע מענטשן האבן נישט נוצן בראָדקאַסטינג אין זייער פראיעקטן טכילעס, וואָס איז טאָוטאַלי קיל, אָבער די ביסט 2 פאַרשידענע וועגן פון האַנדלינג דעם גרעסערע אַרויסגעבן גערופן קאָנקוררענסי, וואָס איז ווי טאָן איר באַקומען מגילה צו ויספירן אָדער פּאָנעם ויספירן אין די זעלבע צייַט? פאַרשידענע טאַסקס פליסנדיק בשעת אנדערע טאַסקס זענען אויך פליסנדיק. דאס איז ווי דיין אַפּערייטינג סיסטעם מיינט צו אַרבעטן. דאס איז וואָס אַפֿילו כאָטש, פֿאַר בייַשפּיל, איך ווע גאַט מיין בלעטערער פליסנדיק, איך קענען אויך ווענדן אויף ספּאָטיפי און שפּילן אַ ליד. אַז ס מער פון אַ קאַנסעפּטשואַל זאַך צו פֿאַרשטיין. איך וואָלט נעמען אַ קוק אין די פֿעדעם קורץ אויב איר 'ד ווי צו לערנען מער וועגן וואָס. זאל ס זען, איך גלויבן עס זאל האָבן געווען אַ פּראָבלעם אויף דעם אין איינער פון די. ווידער, איך טראַכטן פֿעדעם און געשעענישן זענען נישט עפּעס וואָס מיר וועלן דעקן אין C נאָר ווייַל עס ס באטייטיק מער שווער ווי אין קראַצן. איר זאָל נישט זאָרג וועגן עס דאָרט, אָבער באשטימט פֿאַרשטיין דעם קאַנסעפּס, פֿאַרשטיין וואָס ס 'געגאנגען אויף. איידער מיר מאַך אויף, קיין פראגעס אויף וואָך 0 מאַטעריאַל? יעדער יינער געפיל שיין גוט? פארשטאנד וועריאַבאַלז און וואָס אַ בייַטעוודיק איז? מאָווינג אויף. וואָך 1. א פּאָר פון זאכן דאָ וואָס זענען נישט דער הויפּט באדעקט אין די ויספרעג באריכטן דאַווקע און אויך זענען מער קאַנסעפּטשואַל זאכן צו טראַכטן וועגן. דער ערשטער איז דעם געדאנק פון וואָס מקור קאָד, קאַמפּיילערז און כייפעץ קאָד זענען. אַבי ווער? באַסיל. איז כייפעץ קאָד-איך מיינען מקור קאָד איז וואָס איר שטעלן אין קלאַנג, און כייפעץ קאָד איז וואָס קלאַנג לייגט אויס אַזוי אַז דיין קאָמפּיוטער קענען לייענען די פּראָגראַם. פּונקט. מקור קאָד איז די C קאָד וואָס איר פאקטיש טיפּ אַרויף. כייפעץ קאָד איז וואָס איר באַקומען אויס פון קלאַנג. עס ס די 0ס און 1ס אין אַז ביינערי פֿאָרמאַט. דעמאָלט וואָס כאַפּאַנז איז ווען איר האָט אַ בינטל פון כייפעץ טעקעס, זאָגן איר ניטאָ קאַמפּיילינג אַ פּרויעקט אָדער אַ פּראָגראַם וואָס ניצט קייפל מקור קאָד טעקעס, וואָס דורך קאַנווענשאַן זענען געגעבן דעם. C טעקע געשפּרייט. אַז ס 'וואָס מיר האָבן קאַעסאַר.ק, וויגענèרע.ק. אויב איר ניטאָ שרייבן דזשאַוואַ מגילה איר געבן זיי די געשפּרייט. דזשאַוואַ. פּיטהאָן מגילה האָבן די געשפּרייט. פּי אָפֿט. אַמאָל איר האָבן קייפל. C טעקעס, איר צונויפנעמען זיי. קלאַנג ספּיץ אויס אַלע דעם ביינערי אָפּפאַל. דעמאָלט ווייַל איר נאָר ווילן 1 פּראָגראַם איר האָבן דער לינקער לינק אַלע פון ​​די כייפעץ טעקעס צוזאַמען אין 1 עקסעקוטאַבלע טעקע. דאס איז אויך וואָס כאַפּאַנז ווען איר נוצן די קס50 ביבליאָטעק, פֿאַר בייַשפּיל. די קס50 ביבליאָטעק איז ביידע אַז. ה כעדער טעקע אַז איר לייענען, אַז # ינקלודעקס50.ה. און דעמאָלט עס ס אויך אַ ספּעציעל ביינערי ביבליאָטעק טעקע אַז ס 'געווען צונויפגעשטעלט וואָס איז 0ס און 1ס, און אַז-ל פאָן, אַזוי אויב מיר גיין צוריק צו אונדזער ספּאַסעס און מיר קוקן טאַקע געשווינד אין וואָס ס 'געגאנגען אויף דאָ ווען מיר קוקן אין אונדזער קלאַנג באַפֿעל, וואָס מיר ווע גאַט איז דאָס איז אונדזער מקור קאָד טעקע רעכט דאָ. די ביסט אַ בינטל פון קאַמפּיילער פלאַגס. און דעמאָלט אין די זייער סוף, די-ל פלאַגס לינק אין די פאַקטיש ביינערי טעקעס פֿאַר די 2 לייברעריז, די קס50 ביבליאָטעק און דעריבער די מאַט ביבליאָטעק. פארשטאנד יעדער טיפּ פון טעקעס 'ציל אין דער זאַמלונג פּראָצעס איז עפּעס איר וועט ווילן צו זייַן ביכולת צו געבן בייַ מינדסטער אַ הויך מדרגה איבערבליק פון. מקור קאָד קומט ין כייפעץ קאָד קומט אויס. כייפעץ קאָד טעקעס לינק צוזאַמען, און איר באַקומען אַ שיין, עקסעקוטאַבלע טעקע. קיל. דאס איז אויך ווו איר קענען באַקומען ערראָרס אין קייפל ווייזט אין דער זאַמלונג פּראָצעס. דאס איז ווו, פֿאַר בייַשפּיל, אויב איר נעמען אויס דעם פֿאַרבינדונג פאָן, די קס50 פאָן, און איר האָפּקען עס אין ספּאַסעס אָדער ווען איר ניטאָ פליסנדיק דיין קאָד, דאָס איז ווו איר וועט באַקומען אַ טעות אין די פֿאַרבינדונג פאַסע, און דער לינקער וועט זאָגן, "היי, איר גערופן אַ פֿונקציע געצטרינג אַז ס אין די קס50 ביבליאָטעק. " "איר דערציילט מיר עס איז געווען אין די קס50 ביבליאָטעק, און איך קען ניט געפֿינען די קאָד פֿאַר אים." אַז ס ווו איר האָבן צו לינק עס אין, און אַז ס באַזונדער פון אַ קאַמפּיילער טעות ווייַל דער קאַמפּיילער איז קוקן בייַ סינטאַקס און אַז מין פון שטאָפּן. עס ס גוט צו וויסן וואָס ס 'געגאנגען אויף ווען. אנדערע זאכן צו וויסן וועגן. איך וואָלט זאָגן איר באשטימט ווילן צו נעמען אַ קוק אין די קורץ אויף טייפּקאַסטינג געטאן דורך יארדאניע צו פֿאַרשטיין וואָס ינץ זענען אונטער די קאַפּטער, וואָס טשאַרס זענען אונטער די קאַפּטער. ווען מיר רעדן וועגן אַסקי און מיר פאקטיש קוקן בייַ די אַסקי טיש, וואָס אַז ס טאן איז געבן אונדז אַן אונטער די קאַפּטער קוקן אין ווי די קאָמפּיוטער פאקטיש רעפּראַזענץ הויפּטשטאָט א און דער ציפֿער 7 און אַ קאָמע, און אַ קשיא צייכן. דער קאָמפּיוטער אויך האט ספּעציעל וועגן צו פאָרשטעלן די נומער 7 ווי אַ ינטעגער. עס האט אַ ספּעציעל וועג צו פאָרשטעלן די נומער 7 ווי אַ פלאָוטינג פונט נומער, און יענע זענען זייער אַנדערש. טיפּעקאַסטינג איז ווי איר זאָגן די קאָמפּיוטער "היי, איך ווילן איר צו בייַטן פון איין פאַרטרעטונג צו אן אנדער פאַרטרעטונג. " פארוואס טאָן ניט מיר נעמען אַ קוק בייַ אַז. איך וואָלט אויך נעמען אַ קוק אין די קורץ אויף לייברעריז און די קורץ אויף קאַמפּיילערז. יענע רעדן וועגן דעם פּראָצעס פון זאַמלונג, וואָס אַ ביבליאָטעק איז, און גיין איבער עטלעכע פון ​​די שאלות וואָס איר זאל באַקומען געפרעגט. שאלות אויף וואָך 1 מאַטעריאַל? זענען דאָרט קיין סוגיות אין דאָ אַז ויסקומען דאָנטינג איר 'ד ווי צו דעקן? איך בין טריינג צו קלאַפּ דורך רובֿ פון די פריער סוגיות אַזוי אַז מיר קענען באַקומען צו פּוינטערז און טאָן אַ קליין ביסל פון רעקורסיאָן. געדאנקען? עפּעס צו דעקן? צייט פֿאַר עטלעכע שאָקאָלאַד אפֿשר? איר גייז זענען ארבעטן דורך אים. איך בין געגאנגען צו האַלטן סיפּינג אויף מיין קאַווע. וואָך 2. גוט רופן, גוט רופן. אין וואָך 2 מיר גערעדט אַ ביסל ביסל מער וועגן פאַנגקשאַנז. אין דער ערשטער ביסל פּראָבלעם שטעלט מיר האט ניט טאַקע שרייַבן קיין פאַנגקשאַנז בייַ אַלע אנדערע ווי וואָס פונקציאָנירן? [תּלמיד] הויפּט. >> הויפּט, פּונקט. און אַזוי מיר ווע געזען די פאַרשידענע קאָסטיומען אַז הויפּט ווערז. עס ס די איין אין וואָס עס נעמט קיין טענות, און מיר נאָר זאָגן פּאָסל אין צווישן די קלאַמערן, און דעמאָלט דאָרט ס די אנדערע איינער ווו מיר טאָן ווילן צו נעמען באַפֿעל שורה טענות, און ווי מיר געזען, אַז ס ווו איר האָבן ינט אַרגק און שטריקל אַרגוו מענגע אָדער איצט אַז מיר ווע פאקטיש יקספּאָוזד שטריקל צו זייַן די טשאַר * אַז עס איז מיר רע געגאנגען צו אָנהייבן שרייבן עס ווי טשאַר * אַרגוו און דעמאָלט בראַקאַץ. אין פּראָבלעם באַשטעטיק 3, איר גייז געזען אַ בינטל פון פאַנגקשאַנז, און איר ימפּלאַמענטאַד אַ בינטל פון פאַנגקשאַנז, ציען, קוק אַרויף, שטופּנ. די פּראָוטאַטייפּס זענען אַלע געשריבן דאָרט פֿאַר איר. וואָס איך געוואלט צו רעדן וועגן דאָ מיט פאַנגקשאַנז טאַקע געשווינד איז אַז עס זענען 3 טיילן צו זיי ווען איר שרייַבן אַ פֿונקציע. איר האָבן צו ספּעציפיצירן די צוריקקומען טיפּ פון די פֿונקציע. איר האָבן צו ספּעציפיצירן אַ נאָמען פֿאַר דעם פֿונקציע, און דאַן איר האָבן צו ספּעציפיצירן דער אַרגומענט רשימה אָדער דער פּאַראַמעטער רשימה. פֿאַר בייַשפּיל, אויב איך געווען צו שרייַבן אַ פֿונקציע צו סאַכאַקל זיך אַ בינטל פון ינטאַדזשערז און דעמאָלט צוריקקומען צו מיר די סאַכאַקל וואָס וואָלט זייַן מיין צוריקקומען טיפּ אויב איך געוואלט צו סאַכאַקל ינטאַדזשערז און דעמאָלט צוריקקומען די סאַכאַקל? דערנאך די נאָמען פון די פֿונקציע. אויב איך גיין פאָרויס און שרייַבן אין גרין, דעם טייל איז די צוריקקומען טיפּ. דעם טייל איז די נאָמען. און דעמאָלט אין צווישן קלאַמערן איז ווו איך געבן די טענות, אָפֿט אַבריוויייטיד ווי אַרגס, מאל גערופן פּאַראַמס פֿאַר פּאַראַמעטערס. און אויב איר האָבן איין, איר נאָר ספּעציפיצירן די איין. אויב איר האָט קייפל איר באַזונדער יעדער איינער מיט אַ קאָמע. און פֿאַר יעדער אַרגומענט איר געבן עס 2 זאכן וואָס זענען-קעווין? [קעווין] איר האָבן צו געבן די טיפּ און דעריבער די נאָמען. און דעריבער די נאָמען, און דער נאָמען איז דער נאָמען וואָס איר ניטאָ געגאנגען צו נוצן צו אָפּשיקן צו אַז אַרגומענט ין די סאַכאַקל פונקציאָנירן, ין די פֿונקציע אַז איר ניטאָ דערווייַל שרייבן. איר טאָן ניט האָבן צו-פֿאַר בייַשפּיל, אויב איך בין געגאנגען צו סאַכאַקל אַרויף, זאָגן, אַ מענגע פון ​​ינטאַדזשערז-וויל טאָן ינט מענגע, און איך וועט געבן זיך עטלעכע געגרייַזלט ברייסאַז דאָרט- דעמאָלט ווען איך פאָרן אַ מענגע צו די סאַכאַקל פֿונקציע איך פאָרן עס אין דער ערשטער שטעלע פון ​​דער אַרגומענט רשימה. אבער די מענגע אַז איך פאָרן אין טוט ניט האָבן צו האָבן דעם נאָמען אַרר. אַרר איז געגאנגען צו זייַן ווי איך אָפּשיקן צו אַז אַרגומענט ין דער גוף פון דער פֿונקציע. די אנדערע זאַך וואָס מיר דאַרפֿן צו נעמען אין חשבון, און דאָס איז אַ ביסל אַנדערש פון פאַנגקשאַנז, אָבער איך טראַכטן עס ס אַ וויכטיק פונט, איז אַז אין C ווען איך בין שרייבן אַ פֿונקציע ווי דעם ווי טאָן איך וויסן ווי פילע עלעמענטן זענען אין דעם מענגע? דאס איז עפּעס פון אַ קונץ קשיא. מיר גערעדט וועגן דעם אַ קליין ביסל אין לעצטע וואָך ס אָפּטיילונג. ווי טאָן איך וויסן די נומער פון עלעמענטן ין אַ מענגע אין C? איז עס אַ וועג? עס טורנס אויס אַז דאָרט ס קיין וועג צו וויסן. איר האָבן צו פאָרן עס אין סעפּעראַטלי. עס איז אַ קונץ אַז איר קענען טאָן אויב איר ניטאָ אין די זעלבע פֿונקציע אין וואָס די מענגע האט שוין דערקלערט, און איר ניטאָ ארבעטן מיט אַ אָנלייגן מענגע. אבער אַז בלויז אַרבעט אויב איר ניטאָ אין די זעלבע פֿונקציע. אַמאָל איר פאָרן אַ מענגע צו אן אנדער פֿונקציע אָדער אויב איר ווע דערקלערט אַ מענגע און איר שטעלן אַז מענגע אויף די קופּע, איר ווע געניצט מאַללאָק  און אַז מין פון שטאָפּן, דעריבער אַלע בעץ זענען אַוועק. דעמאָלט איר פאקטיש האָבן צו פאָרן אַרום אַ ספּעציעל אַרגומענט אָדער אנדערן פּאַראַמעטער טעלינג איר ווי גרויס די מענגע איז. אין דעם פאַל, איך 'ד ווילן צו נוצן אַ קאָמע-אַם נעבעכדיק, עס ס געגאנגען אַוועק די פאַרשטעלן דאָ- און איך 'ד פאָרן אין אנדערן אַרגומענט  און רופן עס ינט לען פֿאַר די לענג. איין זאַך וואָס זאל קומען אַרויף אויף די ויספרעג איז אַסקינג איר צו שרייַבן אָדער מאַכשער אַ באַזונדער פונקציאָנירן גערופן עפּעס. אויב מיר טאָן ניט געבן איר די פּראָוטאַטייפּ, אַזוי דאָס גאנצע זאַך דאָ, דאָס גאנצע באַלאַגאַן איז גערופן די פֿונקציע דערקלערונג אָדער די פֿונקציע פּראָוטאַטייפּ, דאָס איז איינער פון די ערשטער דאס אַז איר וועט וועלן צו נאָגל אַראָפּ אויב עס ס ניט געגעבן צו איר רעכט אַוועק אויף די ויספרעג. די אנדערע קונץ איך ווע געלערנט איז אַז זאָגן מיר טאָן געבן איר אַ פּראָוטאַטייפּ פֿאַר אַ פונקציאָנירן, און מיר זאָגן, "היי, איר ווע גאַט צו שרייַבן עס". ין די געגרייַזלט ברייסאַז אַז איר האָבן אויף די ויספרעג אויב איר באַמערקן אַז עס איז אַ צוריקקומען טיפּ און איר באַמערקן אַז די צוריקקומען טיפּ איז עפּעס אנדערע ווי פּאָסל, וואָס מיטל אַז די פֿונקציע טוט נישט צוריקקומען עפּעס, דעמאָלט איין זאַך איר באשטימט ווילן צו טאָן איז שרייַבן עטלעכע סאָרט פון צוריקקומען סטאַטעמענט בייַ די זייער סוף פון די פֿונקציע. צוריקקומען, און אין דעם פאַל, מיר וועט שטעלן אַ ליידיק ווייַל מיר ווילן צו פּלאָמבירן אין די ליידיק. אבער דעם געץ איר טראכטן אין די רעכט וועג וועגן ווי בין איך געגאנגען צו צוגאַנג דעם פּראָבלעם? און עס דערמאנט איר איר ניטאָ געגאנגען צו האָבן צו צוריקקומען אַ ווערט צו די קאָלער פון די פֿונקציע. יאָ. >> [תּלמיד] טוט נוסח צולייגן ווען מיר רע שרייבן קאָד אויף די ויספרעג? אַזאַ ווי ינדענטיישאַן און אַז מין פון שטאָפּן? >> [תּלמיד] יאָ. ניין, ניט ווי פיל. איך טראַכטן אַ פּלאַץ פון-דעם איז עפּעס מיר וועט דערקלערן אויף די ויספרעג אויף דעם טאָג פון, אָבער טיפּיקלי וועריינג וועגן # כולל און אַז מין פון שטאָפּן, עס ס מין פון אַרויס. [תּלמיד] צי איר דאַרפֿן צו באַמערקן דיין כאַנדריטאַן קאָד? צי איר דאַרפֿן צו באַמערקן דיין כאַנדריטאַן קאָד? קאַמענטינג איז שטענדיק גוט אויב איר ניטאָ באַזאָרגט וועגן פּאַרטיייש קרעדיט אָדער איר ווילן צו יבערגעבן דיין קאַוואָנע צו דער גראַדער. אבער איך, ווידער, וועט דערקלערן אויף די ויספרעג זיך און אויף די ויספרעג טאָג, אָבער איך טאָן ניט גלויבן אַז איר וועט זייַן פארלאנגט צו שרייַבן באַמערקונגען, ניט. טיפּיקלי נישט, אָבער עס ס באשטימט די סאָרט פון זאַך ווו איר קענען יבערגעבן דיין קאַוואָנע, ווי "היי, דאָס איז ווו איך בין געגאנגען מיט אים." און מאל וואָס קענען העלפן מיט פּאַרטיייש קרעדיט. קיל. באַסיל. [באַסיל] וואָס ס די חילוק צווישן דיקלערינג, זאָגן, ינט lang אין די טענות אָדער פּאַראַמעטערס קעגן דיקלערינג אַ בייַטעוודיק ין די פֿונקציע? וואַו, קאַווע געגאנגען אַראָפּ די ווינדפּיפּע. [באַסיל] ווי וואָס דאס מיר וועלן צו שטעלן אין טענות. יאָ, אַז ס אַ גרויס קשיא. ווי טאָן איר קלייַבן וואָס דאס איר ווילן צו שטעלן אין די טענות קעגן וואָס דאס איר זאָל טאָן ין פון די פֿונקציע? אין דעם פאַל מיר אַרייַנגערעכנט ביידע פון ​​די ווי טענות ווייַל זיי ניטאָ עפּעס אַז ווער סע איז געגאנגען צו נוצן די סאַכאַקל פֿונקציע דאַרף צו ספּעציפיצירן יענע זאכן. די סאַכאַקל פונקציאָנירן, ווי מיר גערעדט וועגן, האט קיין וועג פון געוואוסט ווי גרויס די מענגע איז עס געץ פון זייַן קאָלער אָדער ווער סע איז ניצן די סאַכאַקל פונקציאָנירן. עס האט קיין וועג פון געוואוסט ווי גרויס אַז מענגע איז. די סיבה מיר פאָרן אין דעם לענג רעכט דאָ ווי אַן אַרגומענט איז ווייַל אַז ס 'עפּעס אַז מיר רע בייסיקלי טעלינג די קאָלער פון דעם פֿונקציע, ווער סע איז געגאנגען צו נוצן די סאַכאַקל פֿונקציע, "היי, ניט נאָר טאָן איר האָבן צו געבן אונדז אַ מענגע פון ינץ, איר אויך האָבן צו זאָגן אונדז ווי גרויס די מענגע אַז איר ווע געגעבן אונדז איז. " [באַסיל] יענע וועלן ביידע זייַן באַפֿעל שורה טענות? ניין, די זענען פאַקטיש טענות אַז איר וואָלט פאָרן צו די פֿונקציע. לאָזן מיר טאָן אַ נייַ בלאַט דאָ. [באַסיל] ווי נאָמען וואָלט פאָרן- [נאַטע ה] אויב איך האָבן ינט הויפּט (פּאָסל), און איך בין געגאנגען צו שטעלן אין מיין צוריקקומען 0 אַראָפּ דאָ אין די דנאָ, און זאָגן איך ווילן צו רופן די סאַכאַקל פונקציאָנירן. איך ווילן צו זאָגן ינט X = סאַכאַקל (); צו נוצן די סאַכאַקל פונקציאָנירן איך האָבן צו פאָרן אין ביידע די מענגע אַז איך ווילן צו סאַכאַקל אַרויף און די לענג פון די מענגע, אַזוי דאָס איז ווו אַסומינג איך געהאט אַ מענגע פון ​​ינץ, זאָגן איך האט ינט נומבאַז [] = 1, 2, 3, מין פון נוצן אַז כאַקט אַרויף סינטאַקס רעכט דאָרט, דעמאָלט וואָס איך וואָלט טאָן איז אין סאַכאַקל איך וואָלט ווילן צו פאָרן אין ביידע נומבאַז און די נומער 3 צו דערציילן די סאַכאַקל פונקציאָנירן "אָוקיי, דאָ ס דער מענגע איך ווילן איר צו סאַכאַקל." "דאָ ס זייַן גרייס." טוט וואָס מאַכן זינען? טוט וואָס ענטפֿערן דיין קשיא? אין פילע וועגן עס טוט פּאַראַלעל וואָס מיר רע טאן מיט הויפּט ווען מיר האָבן די באַפֿעל שורה טענות. א פּראָגראַם ווי קיסר סייפער, פֿאַר בייַשפּיל, וואָס דארף באַפֿעל שורה טענות וואָלט ניט זייַן ביכולת צו טאָן עפּעס. עס וואָלט ניט וויסן ווי צו ינקריפּט אויב איר האט ניט זאָגן אים וואָס שליסל צו נוצן אָדער אויב איר האט ניט זאָגן אים וואָס שטריקל איר געוואלט צו ינקריפּט. פּראָמפּטינג פֿאַר אַרייַנשרייַב, דאָס איז ווו מיר ווע גאַט 2 פאַרשידענע מעקאַניזאַמז פֿאַר גענומען אַרייַנשרייַב אין פון דעם באַניצער, פֿאַר גענומען אינפֿאָרמאַציע אין פון דעם באַניצער. פֿאַר פּראָבלעם באַשטעטיק 1 מיר געזען דעם געטינט, געצטרינג, געטפלאָאַט וועג פון פּראַמפּטינג פֿאַר אַרייַנשרייַב, און אַז ס גערופן ניצן דעם נאָרמאַל אַרייַנשרייַב טייַך. עס ס אַ ביסל אַנדערש. עס ס עפּעס וואָס איר קענען טאָן אין איין צייַט ווי קעגן צו ווען איר ינוואָוק די פּראָגראַם, ווען איר אָנהייבן די פּראָגראַם פליסנדיק. דער באַפֿעל שורה טענות אַלע זענען ספּעסאַפייד ווען איר אָנהייבן די פּראָגראַם פליסנדיק. מיר ווע שוין מיקסינג די צוויי פון יענע. ווען מיר נוצן טענות צו אַ פֿונקציע, עס ס פיל ווי באַפֿעל שורה טענות צו הויפּט. עס ס ווען איר ינוואָוק די פֿונקציע איר דאַרפֿן צו זאָגן עס וואָס פּונקט עס דאַרף אין סדר צו דורכפירן זייַן טאַסקס. אן אנדער גוט זאַך צו קוקן אין-און איך וועט לאָזן איר קוק אין עס אין דיין ספּער צייַט, און עס איז געווען באדעקט אין די ויספרעג-איז געווען דעם געדאנק פון פאַרנעם און היגע וועריאַבאַלז קעגן גלאבאלע וועריאַבאַלז. צי באַצאָלן ופמערקזאַמקייַט צו וואָס. איצט אַז מיר רע געטינג אויף צו דעם אנדערע שטאָפּן, אין וואָך 3 מיר אנגעהויבן גערעדט וועגן שאַרף און סאָרטינג. שאַרף און סאָרטינג, בייַ מינדסטער אין קס50, איז זייער פיל אַן הקדמה צו עטלעכע פון ​​די מער טעאָרעטיש טיילן פון קאָמפּיוטער וויסנשאַפֿט. די פּראָבלעם פון שאַרף, דער פּראָבלעם פון סאָרטינג זענען גרויס, קאַנאַנאַקאַל פּראָבלעמס. ווי טאָן איר געפֿינען אַ באַזונדער נומער אין אַ מענגע פון ​​ביליאַנז פון ינטאַדזשערז? ווי טאָן איר געפֿינען אַ באַזונדער נאָמען ין אַ טעלעפאָן בוך אַז ס סטאָרד אויף דיין לאַפּטאַפּ? און אַזוי מיר באַקענען דעם געדאנק פון אַסימפּטאָטיק לויפן מאל צו טאַקע קוואַניפיי ווי לאַנג, ווי שווער די פּראָבלעם זענען, ווי לאַנג זיי נעמען צו סאָלווע. אין, איך גלויבן, 2011 ס ויספרעג דאָרט ס אַ פּראָבלעם אַז איך טראַכטן מעריץ קאַווערינג זייער געשווינד, וואָס איז דאָס איינער, פּראָבלעם 12. אָ נישט, עס ס תוו. דאָ מיר רע גערעדט וועגן די פאַסטאַסט מעגלעך לויפן צייַט פֿאַר אַ באַזונדער אַלגערידאַם און דעריבער די סלאָואַסט מעגלעך לויפן צייַט. דאס תוו און אָ ביסט טאַקע נאָר שאָרטקאַץ. זיי ניטאָ נאָטאַטיאָנאַל שאָרטקאַץ פֿאַר זאגן ווי פעסט אין די בעסטער מעגלעך פאַל וועט אונדזער אַלגערידאַם לויפן, און ווי פּאַמעלעך אין די ערגסט מעגלעך פאַל וועט אונדזער אַלגערידאַם לויפן? זאל ס טאָן אַ פּאָר פון די, און די זענען אויך באדעקט אין די קורץ אויף אַסימפּטאָטיק נאָוטיישאַן, וואָס איך העכסט רעקאָמענדירן. זשעקסאן האט אַ טאַקע גוט אַרבעט. מיט ביינערי זוכן, מיר רעדן וועגן ביינערי זוכן ווי זייַענדיק אַ אַלגערידאַם, און מיר יוזשאַוואַלי רעדן וועגן אים אין טערמינען פון זייַן גרויס אָו וואָס איז די גרויס אָ? וואָס איז די סלאָואַסט מעגלעך לויפן צייַט פון ביינערי זוכן? [תּלמיד] ען ²? נאָענט, איך טרעפן ענלעך צו וואָס. עס ס אַ פּלאַץ פאַסטער ווי אַז. [תּלמיד] ביינערי? >> יאָ, ביינערי זוכן. [תּלמיד] עס ס קלאָץ ען. קלאָץ N, אַזוי וואָס טוט קלאָץ N מיינען? עס כאַווז עס יעדער יטעראַטיאָן. פּונקט, אַזוי אין די סלאָואַסט מעגלעך פאַל, זאָגן אויב איר האָבן אַ אויסגעשטעלט מענגע פון אַ מיליאָן ינטאַדזשערז און די נומער איר ניטאָ קוקן פֿאַר איז אָדער די זייער ערשטער עלעמענט אין דער מענגע אָדער די זייער לעצטע עלעמענט אין דער מענגע. געדענקען, דער ביינערי זוכן אַלגערידאַם אַרבעט דורך קוקן אין די מיטל עלעמענט, געזען אויב אַז ס די גלייַכן אַז איר ניטאָ קוקן פֿאַר. אויב עס איז, דעריבער גרויס, איר געפונען עס. אין דער בעסטער מעגלעך פאַל, ווי שנעל טוט ביינערי זוכן לויפן? [סטודענטן] 1. 1, עס ס קעסיידערדיק צייַט, גרויס אָ פון 1. יאָ. [תּלמיד] איך האב אַ קשיא. ווען איר זאָגן קלאָץ פון N, איר מיינען מיט רעספּעקט צו באַזע 2, רעכט? יא, אַזוי אַז ס די אנדערע זאַך. מיר זאָגן קלאָץ ען, און איך טרעפן ווען איך איז געווען אין הויך שולע איך שטענדיק אנגענומען אַז קלאָץ איז באַזע 10. יאָ, אַזוי יאָ, קלאָץ באַזע 2 טיפּיקלי איז וואָס מיר נוצן. ווידער, גיי צוריק צו ביינערי זוכן, אויב איר ניטאָ שאַרף פֿאַר אָדער די עלעמענט אין דער זייער סוף אָדער דער עלעמענט אין דער זייער אָנהייב, ווייַל איר אָנהייב אין דער מיטן און דאַן איר אַוועקוואַרפן וועלכער העלפט טוט נישט טרעפן די קרייטיריאַ אַז איר ניטאָ קוקן פֿאַר, און איר גיין צו דער ווייַטער העלפט און די ווייַטער העלפט און די ווייַטער האַלב. אויב איך בין שאַרף פֿאַר די גרעסטער עלעמענט אין די מיליאָן ינטעגער מענגע איך בין געגאנגען צו האַלווע עס בייַ רובֿ קלאָץ פון 1,000,000 מאל איידער איך לעסאָף פּרובירן און זען וואָס די עלעמענט איך בין קוקן פֿאַר איז אין דעם ביגאַסט אָדער אין דעם העכסטן אינדעקס פון דער מענגע, און וואָס וועט נעמען קלאָץ פון N, קלאָץ פון 1,000,000 מאל. בלאָז סאָרט. צי איר גייז געדענקען די בלאָז סאָרט אַלגערידאַם? קעווין, קענען איר געבן מיר אַ שנעל ריקאַפּ פון וואָס געטראפן אין די בלאָז סאָרט אַלגערידאַם? [קעווין] באַסיקאַללי עס גייט דורך אַלץ אין דער רשימה. עס קוקט אין דער ערשטער צוויי. אויב דער ערשטער איינער איז ביגער ווי די רגע איין עס סוואַפּס זיי. דעמאָלט עס קאַמפּערז רגע און דריט, זעלבע זאַך, סוואַפּס, דריט און פערט, אַלע דער וועג אַראָפּ. ביגער נומערן וועט נאָכפאָלגן אַרויף צו די סוף. און נאָך אָבער פילע לופּס איר ניטאָ געטאן. פּונקט, אַזוי וואָס קעווין האט איז אַז מיר וועט היטן ביגער נומערן בלאָז אַרויף צו די סוף פון די מענגע. פֿאַר בייַשפּיל, טאָן איר גייַסט גיין אונדז דורך דעם בייַשפּיל אויב דאָס איז אונדזער מענגע? [קעווין] איר וועט נעמען 2 און 3. 3 איז ביגער ווי 2, אַזוי איר ויסבייַטן זיי. [נאַטע ה] רעכט, אַזוי מיר ויסבייַטן די, און אַזוי מיר באַקומען 2, 3, 6, 4, און 9. [קעווין] דערנאך איר פאַרגלייַכן די 3 און 6. 3 איז קלענערער ווי 6, אַזוי איר לאָזן זיי, און 6 און 4, איר 'ד ויסבייַטן זיי ווייַל 4 איז קלענערער ווי 6. [נאַטע ה] רעכט, אַזוי איך באַקומען 2, 3, 4, 6, 9. [קעווין] און 9 איז ביגער ווי 6, אַזוי איר לאָזן עס. און איר 'ד גיין צוריק דורך עס ווידער. [נאַטע ה] בין איך געטאן אין דעם פונט? >> [קעווין] נומ און וואָס בין איך ניט געטאן אין דעם פונט? ווייַל עס קוקט ווי מיין מענגע איז אויסגעשטעלט. איך בין קוקן בייַ אים. [קעווין] גייט דורך עס ווידער און מאַכן זיכער אַז עס זענען נישט מער סוואַפּס איידער איר קענען גאָר האַלטן. פּונקט, אַזוי איר דאַרפֿן צו האַלטן געגאנגען דורך און מאַכן זיכער אַז עס זענען קיין סוואַפּס אַז איר קענען מאַכן אין דעם פונט. עס איז טאַקע נאָר מאַזלדיק, ווי איר האט געזאגט, אַז מיר געענדיקט אַרויף בלויז בעת צו מאַכן 1 פאָרן דורך און מיר רע אויסגעשטעלט. אבער צו טאָן דאָס אין די אַלגעמיינע פאַל מיר וועט פאקטיש האָבן צו טאָן דאָס איבער און איבער ווידער. און אין פאַקט, דאָס איז אַ בייַשפּיל פון די בעסטער מעגלעך פאַל, ווי מיר געזען אין די פּראָבלעם. מיר געזען אַז דער בעסטער מעגלעך פאַל איז געווען ען. מיר געגאנגען דורך די מענגע 1 צייַט. וואָס איז די ערגסט מעגלעך פאַל פֿאַר דעם אַלגערידאַם? [קעווין] ען ². און וואָס טוט אַז קוק ווי? וואָס וואָלט אַ מענגע קוק ווי וואָס וואָלט נעמען N ² צייַט? [קעווין] [ינאָדאַבאַל] אויסגעשטעלט. פּונקט, אַזוי אויב איך געהאט די מענגע 9, 7, 6, 5, 2, ערשטער דעם 9 וואָלט בלאָז אַלע די וועג אַרויף. נאָך 1 יטעראַטיאָן מיר 'ד האָבן 7, 6, 5, 2, 9. דעריבער די 7 וואָלט בלאָז אַרויף, 6, 5, 2, 7, 9, און אַזוי אויף און אַזוי אַרויס. מיר 'ד האָבן צו גיין דורך די גאנצע מענגע N מאל, און איר קענען פאקטיש באַקומען אַ ביסל מער גענוי ווי דעם ווייַל אַמאָל מיר ווע אריבערגעפארן דעם 9 אַלע די וועג אַרויף אין זייַן לעצטע מעגלעך שטעלע מיר וויסן אַז מיר קיינמאָל האָבן צו פאַרגלייַכן קעגן אַז עלעמענט ווידער. אַמאָל מיר אָנהייבן באַבלינג די 7 אַרויף מיר וויסן אַז מיר קענען האַלטן אַמאָל די 7 איז רעכט פאר די 9 זינט מיר ווע שוין קאַמפּערד די 9 צו עס. אויב איר טאָן דאָס אין אַ קלוג וועג עס ס נישט באמת, איך טרעפן, אַז פיל מאָל. איר ניטאָ ניט געגאנגען צו פאַרגלייַכן אַלע די מעגלעך [ינאָדאַבאַל] קאַמבאַניישאַנז יעדער איין מאָל איר גיין דורך יעדער יטעראַטיאָן. אבער נאָך, ווען מיר רעדן וועגן דעם אויבערשטער געבונדן מיר זאָגן אַז איר זענט קוקן בייַ N ² קאַמפּעראַסאַנז אַלע די וועג דורך. זאל ס גיין צוריק, און זינט מיר רע סטאַרטינג צו באַקומען אַ ביסל קורץ אויף צייַט איך וואָלט זאָגן איר זאָל באשטימט גיין דורך די מנוחה פון דעם טיש, פּלאָמבירן עס אַלע אויס. טראַכטן פון ביישפילן. טראַכטן פון באַטאָנען ביישפילן. אַז ס 'טאַקע האַנטיק און נוציק צו טאָן. ציען עס אויס. דאס איז דער סאָרט פון טיש אַז ווי איר גיין דורך אין קאָמפּיוטער וויסנשאַפֿט איר זאָל טאַקע אָנהייבן צו וויסן די דורך האַרץ. דאס זענען די מינים פון שאלות איר באַקומען אין ינטערוויוז. די ביסט סאָרץ פון זאכן וואָס זענען גוט צו וויסן, און טראַכטן וועגן יענע ברעג פאלן, טאַקע פיגיערינג אויס ווי צו טראַכטן וועגן געוואוסט אַז פֿאַר בלאָז סאָרט די ערגסט מעגלעך מענגע צו סאָרט מיט וואָס איז איינער וואָס ס אין פאַרקערט סדר. פּאָינטערס. זאל ס רעדן אַ קליין ביסל וועגן פּוינטערז. אין די לעצטע ביסל מינוט מיר האָבן דאָ איך וויסן דעם איז עפּעס צוזאמען מיט טעקע איך / אָ וואָס איז אלא נייַ. ווען מיר רעדן וועגן פּוינטערז די סיבה מיר ווילן צו רעדן וועגן פּוינטערז איז ווייַל, איינער, ווען מיר רע ארבעטן אין C מיר זענען טאַקע בייַ אַ פערלי נידעריק מדרגה קאַמפּערד צו רובֿ מאָדערן פּראָגראַממינג שפּראַכן. מיר רע פאקטיש קענען צו מאַניפּולירן די וועריאַבאַלז אין זכּרון, פיגור אויס ווו זיי ניטאָ פאקטיש ליגן ין אונדזער באַראַן. אַמאָל איר ווע ניטאָ אויף צו נעמען אַפּערייטינג סיסטעם קלאסן איר וועט זען אַז וואָס ס, ווידער, מין פון אַ אַבסטראַקציע. אַז ס 'נישט פאקטיש דער פאַל. מיר ווע גאַט ווירטואַל זכּרון אַז ס כיידינג יענע פרטים פון אונדז. אבער פֿאַר איצט איר קענען יבערנעמען אַז ווען איר האָבן אַ פּראָגראַם, פֿאַר בייַשפּיל, ווען איר אָנהייב פליסנדיק דיין קיסר סייפער פּראָגראַם- איך וועט באַשטימען צוריק צו מיין יפּאַד טאַקע געשווינד- אַז בייַ די זייער אָנהייב דיין פּראָגראַם, אויב איר האָבן, זאָגן, 4 גיגאבייט פון באַראַן אויף דיין לאַפּטאַפּ, איר באַקומען שטעלן באַזונדער דעם פּייַדע, און מיר וועט רופן דעם באַראַן. און עס סטאַרץ אין אַ אָרט מיר רע געגאנגען צו רופן 0, און עס ענדס אין אַ אָרט אַז מיר וועט רופן 4 גיגאבייט. איך טאַקע קענען נישט שרייַבן. מענטש, וואָס איז כאַקט. ווען דיין פּראָגראַם עקסאַקיוץ די אַפּערייטינג סיסטעם קאַרווז אַרויף באַראַן, און עס ספּעסאַפייז פאַרשידענע סעגמאַנץ פֿאַר פאַרשידענע טיילן פון דיין פּראָגראַם צו לעבן ין אַראָפּ דאָ דעם געגנט איז מין פון אַ ניט מענטש ס לאַנד. ווען איר גיין אַרויף אַ ביסל ווייַטער דאָ איר ווע גאַט פאקטיש דער אָרט ווו די קאָד פֿאַר דיין פּראָגראַם לעבן. אַז פאַקטיש ביינערי קאָד, וואָס עקסעקוטאַבלע טעקע פאקטיש געץ לאָודיד אין זכּרון ווען איר לויפן אַ פּראָגראַם, און עס לעבן אין די קאָד אָפּשניט. און ווי דיין פּראָגראַם עקסאַקיוץ די פּראַסעסער קוקט בייַ דעם קאָד אָפּשניט צו רעכענען אויס וואָס איז דער ווייַטער לימעד? וואָס איז דער ווייַטער שורה פון קאָד איך דאַרפֿן צו ויספירן? עס ס אויך אַ דאַטן אָפּשניט, און דאָס איז ווו יענע שטריקל קאַנסטאַנץ באַקומען סטאָרד אַז איר ווע שוין ניצן. און דעמאָלט ווייַטער אַרויף דאָרט ס דעם אָרט גערופן די קופּע. מיר צוטריט זכּרון אין עס דורך ניצן מאַללאָק, און דעריבער צו די זייער שפּיץ פון דיין פּראָגראַם דאָרט ס דעם אָנלייגן, און אַז ס ווו מיר ווע שוין פּלייינג פֿאַר רובֿ פון דער אָנהייב. דאס איז נישט צו וואָג אָדער עפּעס. א פּלאַץ פון דעם איז זייער מאַשין אָפענגיק, אַפּערייטינג סיסטעם אָפענגיק, אָבער דאָס איז לעפיערעך ווי דאס באַקומען טשונקעד אַרויף. ווען איר לויפן אַ פּראָגראַם און איר דערקלערן אַ בייַטעוודיק גערופן X- איך בין געגאנגען צו ציען אנדערן קעסטל אַראָפּ אונטן, און דאָס איז געגאנגען צו זייַן באַראַן ווי געזונט. און איך בין געגאנגען צו קוקן. מיר וועט ציען דזשאַגד שורות צו אָנווייַזן דעם איז נאָר אַ קליין אָפּטיילונג פון באַראַן און ניט אַלע פון ​​אים ווי מיר ציען בייַ די שפּיץ. אויב איך דערקלערן אַ ינטעגער בייַטעוודיק גערופן X, דעמאָלט וואָס איך פאקטיש באַקומען איז אַ מאַפּינג וואָס איז סטאָרד אין די סימבאָל טיש פון מיין פּראָגראַם אַז קאַנעקץ די נאָמען X צו דעם געגנט פון זכּרון וואָס איך ווע ציען רעכט דאָ צווישן די ווערטיקאַל באַרס. אויב איך האָבן אַ שורה פון קאָד אין מיין פּראָגראַם וואָס זאגט X = 7 די פּראַסעסער ווייסט "אָה, אָוקיי, איך וויסן אַז X לעבן אין דעם אָרט אין זכּרון." "איך בין געגאנגען צו גיין פאָרויס און שרייַבן אַ 7 דאָרט". ווי טוט עס וויסן וואָס אָרט דעם איז אין זכּרון? נו, אַז ס אַלע געטאן בייַ צונויפנעמען צייַט. דער קאַמפּיילער נעמט קעיר פון אַלאַקייטינג ווו יעדער פון די וועריאַבאַלז זענען געגאנגען צו גיין און שאפן אַ ספּעציעל מאַפּינג אָדער אלא קאַנעקטינג די דאַץ צווישן אַ סימבאָל און ווו עס ס געגאנגען, אַ בייַטעוודיק ס נאָמען און ווו עס ס געגאנגען צו לעבן אין זכּרון. אבער עס טורנס אויס אַז מיר קענען פאקטיש צוטריט עס אין אונדזער מגילה ווי געזונט. דעם געץ וויכטיק ווען מיר אָנהייבן גערעדט וועגן עטלעכע פון ​​די דאַטן סטראַקטשערז, וואָס איז אַ באַגריף וואָס מיר רע געגאנגען צו באַקענען שפּעטער אויף. אבער פֿאַר איצט, וואָס איר קענען וויסן איז אַז איך קען מאַכן אַ טייַטל צו דעם אָרט, X. פֿאַר בייַשפּיל, איך קענען שאַפֿן אַ טייַטל בייַטעוודיק. ווען מיר מאַכן אַ טייַטל בייַטעוודיק מיר נוצן די שטערן נאָוטיישאַן. אין דעם פאַל, דאָס זאגט איך בין געגאנגען צו שאַפֿן אַ טייַטל צו אַ ינט. עס ס אַ טיפּ נאָר ווי קיין אנדערע. מיר געבן עס אַ בייַטעוודיק ווי י, און דעמאָלט מיר שטעלן עס גלייַך צו די אַדרעס, צו אַן אַדרעס. אין דעם פאַל, מיר קענען שטעלן י צו פונט צו X דורך גענומען דעם אַדרעס פון X, וואָס מיר טאָן מיט דעם אַמפּערסאַנד, און דעמאָלט מיר שטעלן י צו פונט צו עס. וואָס דאָס יסענשאַלי טוט איז אויב מיר קוקן אין אונדזער באַראַן דעם קריייץ אַ באַזונדער בייַטעוודיק. עס ס געגאנגען צו רופן עס י, און ווען דעם שורה פון קאָד עקסאַקיוץ עס ס 'פאקטיש געגאנגען צו שאַפֿן אַ ביסל טייַטל וואָס מיר טיפּיקלי ציען ווי אַ פייַל, און עס שטעלט י צו פונט צו X. יא. [תּלמיד] אויב X איז שוין אַ טייַטל, וואָלט איר נאָר טאָן ינט * י = X אַנשטאָט פון בעת ​​די אַמפּערסאַנד? יא. אויב X איז שוין אַ טייַטל, דעמאָלט איר קענען שטעלן 2 פּוינטערז גלייַך צו יעדער אַנדערער, אין וואָס פאַל י וואָלט נישט פונט צו X, אָבער עס וואָלט פונט צו וועלכער X איז פּוינטינג צו. ליידער, מיר רע אויס פון צייַט. וואָס איך וואָלט זאָגן אין דעם פונט, מיר קענען רעדן וועגן דעם אָפפלינע, אָבער איך וואָלט זאָגן אָנהייבן ארבעטן דורך דעם פּראָבלעם, # 14. איר קענען זען דאָרט ס 'שוין אַ קליין ביסל אָנגעפילט אין פֿאַר איר דאָ. איר קענען זען אַז ווען מיר דערקלערן 2 פּוינטערז, ינט * X און * י, און טאָן אַז פּוינטינג דעם * ווייַטער צו די בייַטעוודיק איז געווען עפּעס וואָס איז געשען לעצטע יאָר. עס טורנס אויס אַז דאָס איז ענלעך צו וואָס מיר רע טאן דעם יאָר. עס טוט נישט ענין ווו איר שרייַבן די * ווען איר ניטאָ דיקלערינג די טייַטל. אבער מיר האָבן געשריבן דעם * ווייַטער צו דעם טיפּ ווייַל וואָס מאכט עס זייער קלאָר אַז איר ניטאָ דיקלערינג אַ טייַטל בייַטעוודיק. איר קענען זען אַז דיקלערינג די 2 פּוינטערז גיט אונדז 2 באָקסעס. דאָ ווען מיר שטעלן X גלייַך צו מאַללאָק וואָס דאָס איז געזאגט איז באַשטעטיקן באַזונדער זכּרון אין די קופּע. דאס קליין קעסטל רעכט דאָ, דעם קרייַז, איז ליגן אויף די קופּע. רענטגענ איז פּוינטינג צו עס. באַמערקונג אַז י איז נאָך נישט פּוינטינג צו עפּעס. צו באַקומען זכּרון-צו קראָם די נומער 42 אין X מיר וואָלט נוצן וואָס נאָוטיישאַן? [תּלמיד] * X = 42. פּונקט, * X = 42. אַז מיטל נאָכפאָלגן די פייַל און וואַרפן 42 אין דאָרט. דאָ ווו מיר שטעלן י און X מיר האָבן י פּוינטינג צו X. ווידער, דאָס איז פּונקט ווי וואָס קעווין האט ווו מיר שטעלן י גלייַך צו X. י איז נישט פּוינטינג צו X. אלא, עס ס פּוינטינג צו וואָס X איז פּוינטינג צו ווי געזונט. און דעמאָלט לעסאָף אין דעם לעצטע קעסטל עס זענען 2 מעגלעך זאכן וואָס מיר געקענט טאָן. איינער איז מיר געקענט זאָגן * X = 13. די אנדערע זאַך איז מיר געקענט זאָגן-אַלעקס, טאָן איר וויסן וואָס מיר קען טאָן דאָ? איר קען זאָגן * X = 13 אָדער- [תּלמיד] איר קען זאָגן ינט וועלכער. [נאַטע ה] אויב דאָס זענען ריפערד צו ווי אַ ינט בייַטעוודיק מיר קען טאָן וואָס. מיר קען אויך זאָגן * י = 13 ווייַל זיי ניטאָ ביידע פּוינטינג צו די זעלבע פּלאַץ, אַזוי מיר קען נוצן אָדער בייַטעוודיק צו באַקומען דאָרט. יאָ. >> [תּלמיד] וואָס וואָלט עס קוק ווי אויב מיר נאָר זאָגן ינט X איז 13? וואָס וואָלט זייַן דיקלערינג אַ נייַ בייַטעוודיק גערופן X, וואָס וואָלט נישט אַרבעטן. מיר 'ד האָבן אַ צונויפשטויס ווייַל מיר דערקלערט X צו זייַן אַ טייַטל אַרויף דאָ. [תּלמיד] אויב מיר נאָר געהאט אַז סטאַטעמענט דורך זיך וואָס וואָלט עס קוק ווי אין טערמינען פון די קרייַז? אויב מיר האט X = 13 דעמאָלט מיר 'ד האָבן אַ קעסטל, און אלא ווי בעת אַ פייַל קומענדיק אויס פון די קעסטל מיר 'ד ציען עס ווי נאָר אַ 13. [תּלמיד] אין דעם קעסטל. אָוקיי. דאנק איר פֿאַר וואַטשינג, און גוט גליק אויף קוויז 0. [CS50.TV]