[Powered by Google Translate] [וואָך 4] [דוד י מאַלאַן] [האַרוואַרד אוניווערסיטעט] [דאס איז קס50.] [CS50.TV] אַלע רעכט, דאָס איז קס50, און דאָס איז די אָנהייב פון וואָך 4, און דאָס איז איינער פון די סלאָואַסט מעגלעך סאָרטינג אַלגערידאַמז. וואָס איינער האט עס אַז מיר נאָר וואָטשט דאָרט? וואָס איז געווען בלאָז סאָרט, אין סדר גרויס אָ (N ^ 2) + סאַכאַקל, און טאַקע מיר זענען נישט די בלויז אָנעס אין דעם וועלט צו ויסקומען צו וויסן וואָס בלאָז סאָרט איז אָדער זייַן פליסנדיק צייַט. טאקע, דאָס איז געווען אַן אינטערוויו מיט עריק שמיט פון גוגל און ערשטע סענאַטאָר באַראַקק אבאמא נאָר אַ ביסל יאָרן צוריק. איצט, סענאַטאָר, איר ניטאָ דאָ אין גוגל, און איך ווי צו טראַכטן פון די פּרעזאַדאַנסי ווי אַ אַרבעט אינטערוויו. איצט, עס ס שווער צו באַקומען אַ אַרבעט ווי פּרעזידענט, און איר ניטאָ געגאנגען דורך די ריגערז איצט. עס ס אויך שווער צו באַקומען אַ אַרבעט אין גוגל. מיר האָבן שאלות, און מיר פרעגן אונדזער קאַנדאַדייץ שאלות, און דעם איין איז פון לערי שווימער. איר גייז טראַכטן איך בין קידינג? עס ס רעכט דאָ. וואָס איז די מערסט עפעקטיוו וועג צו סאָרט אַ מיליאָן 32-ביסל ינטאַדזשערז? [געלעכטער] געזונט- איך בין נעבעכדיק. >> ניט, ניט, ניט, ניט. איך טראַכטן די בלאָז סאָרט וואָלט זייַן דעם אומרעכט וועג צו גיין. קומען אויף, וואס דערציילט אים דעם? לעצטע וואָך צוריקרופן מיר גענומען אַ ברעכן פון קאָד, בייַ מינדסטער פֿאַר אַ טאָג, און אנגעהויבן פאָוקיסינג אויף עטלעכע העכער מדרגה געדאנקען און פּראָבלעם סאַלווינג מער בכלל אין דעם קאָנטעקסט פון שאַרף און סאָרטינג, און מיר באַקענענ עפּעס אַז מיר האבן נישט פּאַטשן דעם נאָמען אויף לעצטע וואָך, אָבער אַסימפּטאָטיק נאָוטיישאַן, די גרויס אָ, די גרויס תוו, און מאל די גרויס טהעטאַ נאָוטיישאַן, און די זענען געווען פשוט וועגן פון דיסקרייבינג די פליסנדיק צייַט פון אַלגערידאַמז, ווי פיל צייַט עס נעמט פֿאַר אַ אַלגערידאַם צו לויפן. און איר זאל צוריקרופן אַז איר גערעדט וועגן די פליסנדיק צייַט אין טערמינען פון די גרייס פון די אַרייַנשרייַב, וואָס מיר בכלל רופן ען, וועלכער דער פּראָבלעם קען זייַן, ווו ען איז די נומער פון מענטשן אין די צימער, די נומער פון בלעטער אין אַ טעלעפאָן בוך, און מיר אנגעהויבן צו שרייַבן זאכן אויס ווי אָ (N ^ 2) אָדער אָ (N) אָדער אָ (N קלאָץ ען), און אַפֿילו ווען די מאַט האט נישט גאַנץ אַרבעט אויס אַזוי בישליימעס און עס איז געווען N ² - N / 2 אָדער עפּעס ווי אַז מיר וואָלט אַנשטאָט נאָר וואַרפן אַוועק עטלעכע פון ​​דער נידעריקער סדר תּנאָים, און די מאָוטאַוויישאַן דאָרט איז אַז מיר טאַקע ווילן אַ סאָרט פון אָביעקטיוו וועג פון יוואַליוייטינג די פאָרשטעלונג פון מגילה אָדער דער פאָרשטעלונג פון אַלגערידאַמז אַז אין די סוף פון די טאָג האט גאָרנישט צו טאָן, פֿאַר בייַשפּיל, מיט דער גיכקייַט פון דיין קאָמפּיוטער הייַנט. פֿאַר בייַשפּיל, אויב איר מאַכשער בלאָז סאָרט, אָדער איר מאַכשער צונויפגיסן סאָרט אָדער סעלעקציע סאָרט אויף הייַנט ס קאָמפּיוטער, אַ 2 גהז קאָמפּיוטער, און איר לויפן עס, און עס נעמט עטלעכע נומער פון סעקונדעס, ווייַטער יאָר דאָרט ס אַ 3 גהז אָדער אַ 4 גהז קאָמפּיוטער, און איר זאל דעמאָלט פאָדערן אַז "וואַו, מיין אַלגערידאַם איז איצט צוויי מאָל ווי שנעל, "ווען אין פאַקט אַז ס 'דאָך נישט דער פאַל. עס ס נאָר די ייַזנוואַרג האט גאַטאַן פאַסטער, אָבער דיין קאָמפּיוטער האט נישט, און אַזוי מיר טאַקע וועלן צו וואַרפן אַוועק זאכן ווי מאַלטאַפּאַלז פון 2 אָדער מאַלטאַפּאַלז פון 3 ווען עס קומט צו דיסקרייבינג ווי פעסט אָדער ווי פּאַמעלעך אַ אַלגערידאַם איז און טאַקע נאָר פאָקוס אויף N אָדער עטלעכע פאַקטאָר דערפון, עטלעכע מאַכט דערפון ווי אין די פאַל פון די סאָרץ פון לעצטע וואָך. און צוריקרופן אַז מיט דער הילף פון צונויפגיסן סאָרט מיר זענען ביכולת צו טאָן אַזוי פיל בעסער ווי בלאָז סאָרט און סעלעקציע סאָרט און אַפֿילו ינסערשאַן סאָרט. מיר גאַט אַראָפּ צו N קלאָץ ען, און ווידער, צוריקרופן אַז קלאָץ N בכלל רעפערס צו עפּעס וואָס וואקסט מער סלאָולי דעמאָלט N, אַזוי N קלאָץ N אַזוי ווייַט איז געווען גוט ווייַל עס איז געווען ווייניקער ווי N ². אבער צו דערגרייכן N קלאָץ N מיט צונויפגיסן סאָרט וואָס איז די גרונט גערמע פון ​​אַ געדאַנק וואָס מיר האבן צו ליווערידזש אַז מיר אויך ליווערידזשד צוריק אין וואָך 0? ווי האט מיר מאַכנ די סאָרטינג פּראָבלעם קלעווערלי מיט צונויפגיסן סאָרט? וואָס איז דער שליסל ינסייט, טאָמער? ווער עס יז בייַ אַלע. אָוקיי, לאָזן ס נעמען אַ שריט צוריק. באַשרייַבן צונויפגיסן סאָרט אין דיין אייגן ווערטער. ווי האט עס אַרבעט? אָוקיי, מיר וועט רודערן צוריק צו וואָך 0. אָוקיי, יאָ. [ינאָדאַבאַל-תּלמיד] אָוקיי, גוט, אַזוי מיר צעטיילט די מענגע פון ​​נומערן אין 2 ברעקלעך. מיר אויסגעשטעלט יעדער פון יענע ברעקלעך, און דאַן מיר מערדזשד זיי, און מיר ווע געזען דעם געדאַנק איידער פון גענומען אַ פּראָבלעם אַז ס דעם גרויס און טשאַפּינג עס אַרויף אין אַ פּראָבלעם אַז ס דעם גרויס אָדער דעם גרויס. צוריקרופן די טעלעפאָן בוך בייַשפּיל. צוריקרופן דעם זיך-קאַונטינג אַלגערידאַם פון וואָכן צוריק, אַזוי צונויפגיסן סאָרט איז סאַמערייזד דורך דעם פּסעודאָקאָדע דאָ. ווען איר ניטאָ געגעבן N עלעמענטן, ערשטער עס איז געווען מייושעוודיקייַט טשעק. אויב N <2 דעמאָלט טאָן ניט טאָן עפּעס בייַ אַלע ווייַל אויב N <2 דעמאָלט N איז דאָך 0 אָדער 1, און אַזוי אויב עס ס אָדער 0 אָדער 1 דאָרט ס 'גאָרנישט צו סאָרט. איר רע געטאן. דיין רשימה איז שוין טריוויאַללי אויסגעשטעלט. אבער אַנדערש אויב איר ווע גאַט 2 אָדער מער יסודות גיין פאָרויס און טיילן זיי אין 2 כאַווז, לינקס און רעכט. סאָרט יעדער פון יענע כאַווז, און דעמאָלט צונויפגיסן די אויסגעשטעלט כאַווז. אבער די פּראָבלעם דאָ איז אַז בייַ ערשטער בליק דעם פילז ווי מיר רע פּונטינג. דאס איז אַ קייַלעכיק דעפֿיניציע אין אַז אויב איך ווע געבעטן איר צו סאָרט די N עלעמענטן און איר ניטאָ טעלינג מיר "אַלע רעכט, פייַן, מיר וועט סאָרט יענע N / 2 און יענע N / 2 יסודות," דעריבער מיין ווייַטער קשיא איז געגאנגען צו זייַן "פיין, ווי טאָן איר סאָרט די N / 2 יסודות?" אבער ווייַל פון די סטרוקטור פון דעם פּראָגראַם, ווייַל עס איז דעם באַזע פאַל, אַזוי צו רעדן, דעם ספּעציעל פאַל וואָס זאגט אויב N איז <עטלעכע פאַרפעסטיקט ווערט ווי 2 צוריקקומען מיד. צי ניט ריספּאַנד מיט וואָס זעלביקער קייַלעכיק ענטפֿערן. דעם פּראָצעס, דעם סיקליסיטי וועט יווענטשאַוואַלי סוף. אויב איך פרעגן איר "סאָרט די N עלעמענטן," און איר זאָגן, "פיין, סאָרט די N / 2," דעמאָלט איר זאָגן, "פיין, סאָרט די N / 4, N / 8, נ/16," יווענטשאַוואַלי איר וועט טיילן דורך אַ גרויס גענוג נומער אַז איר וועט האָבן נאָר 1 עלעמענט לינקס, אין וואָס פונט איר קענען זאָגן, "דאָ, דאָ איז אַ אויסגעשטעלט איין עלעמענט". דעמאָלט דער העלקייַט פון דעם אַלגערידאַם אַרויף דאָ איז צו אַרויספירן פון דעם פאַקט אַז אַמאָל איר האָט אַלע פון ​​די ינדיווידזשואַלי אויסגעשטעלט רשימות, אַלע פון ​​וואָס זענען פון נומער 1, וואָס מיינט צו זייַן אַרויסגעוואָרפן, אַמאָל איר אָנהייב מערדזשינג זיי און מערדזשינג זיי איר בויען אַרויף לעסאָף ווי ראָב האט אין די ווידעא אַ לעסאָף אויסגעשטעלט רשימה. אבער דעם געדאַנק יקסטענדז ווייַט ווייַטער פון סאָרטינג. עס איז דעם געדאַנק עמבעדיד אין דעם פּראָגראַם באקאנט ווי רעקורסיאָן, דער געדאַנק ווערביי איר זענט אַ פּראָגראַם, און צו סאָלווע עטלעכע פּראָבלעם איר רופן זיך, אָדער שטעלן אין דעם קאָנטעקסט פון פּראָגראַממינג שפּראַכן איר זענט אַ פֿונקציע, און אין סדר צו סאָלווע אַ פּראָבלעם, איר די פֿונקציע רופן זיך ווידער און ווידער און ווידער, אָבער איר די פֿונקציע קענען נישט רופן זיך ינפאַנאַטלי פילע מאל. יווענטשאַוואַלי איר האָבן צו דנאָ אויס, אַזוי צו רעדן, און האָבן עטלעכע שווער-קאָדעד באַזע צושטאַנד וואָס זאגט אין דעם פונט האַלטן פאַך זיך אַזוי אַז דער גאנצער פּראָצעס לעסאָף טוט אין פאַקט האַלטן. וואָס טוט דאָס טאַקע מיינען, צו רעקורסע? זאל ס זען, אויב מיר קענען טאָן אַ פּשוט, נישטיק בייַשפּיל מיט, זאָגן, 3 מענטשן מיט מיר אַרויף דאָ אויף בינע, אויב עמעצער איז באַקוועם. 1, קומען אויף אַרויף, 2 און 3. אויב איר 3 ווילן צו קומען אַרויף דאָ. אויב איר ווילן צו שטיין רעכט ווייַטער צו מיר דאָ אין אַ שורה, רעכן אַז דער פּראָבלעם בייַ האַנט איז זייער טריוויאַללי ציילן די נומער פון מענטשן וואס זענען דאָ. אבער פראַנגקלי, איך בין מיד פון אַלע די קאַונטינג ביישפילן. דאס איז געגאנגען צו נעמען עטלעכע מאָל, 1, 2, און פּינטעלע, פּינטעלע, פּינטעלע. עס ס געגאנגען צו נעמען אויף אייביק. איך 'ד אלא נאָר פּונט דעם פּראָבלעם בעסאַכאַקל מיט די הילף פון-וואָס ס אייער נאָמען? סאַראַ. >> סאַראַ, אַלע רעכט. קעלי. >> קעלי און? ווילי. >> ווילי, סאַראַ, קעלי, און ווילי. רעכט איצט איך האב שוין געפרעגט די קשיא דורך עמעצער ווי פילע מענטשן זענען אַרויף אויף דעם בינע, און איך האָבן קיין געדאַנק. דאס איז אַ טאַקע לאַנג רשימה, און אַזוי אַנשטאָט איך בין געגאנגען צו טאָן דעם קונץ. איך בין געגאנגען צו פרעגן דעם מענטש ווייַטער צו מיר צו טאָן רובֿ פון די אַרבעט, און אַמאָל זי איז געטאן טאן רובֿ פון די אַרבעט איך בין געגאנגען צו טאָן דער מינדסטער סומע פון ​​אַרבעט מעגלעך און נאָר לייגן 1 צו וועלכער איר ענטפֿערן איז, אַזוי דאָ מיר גיין. איך ווע שוין געפרעגט ווי פילע מענטשן זענען אויף בינע. ווי פילע מענטשן זענען אויף בינע צו די לינקס פון איר? די לינקס פון מיר? >> אָוקיי, אָבער טאָן ניט אָפּנאַרן. אַז ס 'גוט, אַז ס ריכטיק, אָבער אויב מיר ווילן צו פאָרזעצן דעם לאָגיק לאָזן ס יבערנעמען אַז איר סימילאַרלי ווילן צו פּונט דעם פּראָבלעם צו די לינקס פון איר, אַזוי אלא ווי ענטפֿערן גלייַך גיין פאָרויס און נאָר פאָרן דער באַק. אָה, ווי פילע מענטשן זענען צו די לינקס פון מיר? ווי פילע מענטשן זענען צו די לינקס? 1. [געלעכטער] אָוקיי, אַזוי 0, אַזוי וואָס איצט ווילי האט געטאן איז איר 'ווע אומגעקערט דיין ענטפֿערן דעם ריכטונג געזאגט 0. איצט, וואָס זאָל איר טאָן? >> 1. אָוקיי, אַזוי איר ניטאָ די 1, אַזוי איר זאָגן, "אַלע רעכט, איך בין געגאנגען צו לייגן 1 צו וועלכער ווילי ס ציילן איז געווען, "אַזוי 1 + 0. איר רע איצט 1 אַזוי דיין ענטפער צו די רעכט איז איצט- 1. >> און מייַן וואָלט זייַן 2. גוט, אַזוי איר ניטאָ גענומען די פֿריִערדיקע ענטפֿערן פון 1, אַדינג די מינימאַל סומע פון ​​אַרבעט איר ווילן צו טאָן, וואָס איז +1. איר איצט האָבן 2, און איר דעמאָלט האַנט מיר וואָס ווערט? 3, איך מיינען, אנטשולדיגט, 2. גוט. נו, מיר האט 0 צו די לינקס. דעמאָלט מיר האט 1, און דאַן מיר לייגן 2, און איצט איר ניטאָ כאַנדינג מיר דעם נומער 2, און אַזוי איך בין זאגן, אָוקיי, +1, 3. עס ס טאַקע 3 מענטשן שטייענדיק ווייַטער צו מיר אויף דעם בינע, אַזוי מיר קען האָבן דאָך געטאן דעם זייער ליניערלי, זייער פיל אין די קלאָר ווי דער טאָג שניט, אָבער וואָס האט מיר טאַקע טאָן? מיר גענומען אַ פּראָבלעם פון גרייס 3 טכילעס. מיר דעמאָלט צעבראכן עס אַראָפּ אין אַ פּראָבלעם פון נומער 2, דעמאָלט אַ פּראָבלעם פון נומער 1, און דעמאָלט לעסאָף די באַזע פאַל איז טאַקע, טאַקע, דאָרט ס 'קיין איינער דאָרט, אין וואָס פונט ווילי אומגעקערט יפעקטיוולי אַ שווער-קאָדעד ענטפֿערן אַ פּאָר פון מאל, און די רגע איינער איז געווען דעמאָלט באַבאַלד אַרויף, באַבאַלד אַרויף, באַבאַלד אַרויף, און דעמאָלט דורך אַדינג אין דעם איין נאָך 1 מיר ווע ימפּלאַמענטאַד דעם גרונט געדאַנק פון רעקורסיאָן. איצט, אין דעם פאַל עס האט ניט טאַקע סאָלווע אַ פּראָבלעם קיין מער יפעקטיוולי דעמאָלט מיר ווע געזען אַזוי ווייַט. אבער טראַכטן וועגן די אַלגערידאַמז מיר ווע געטאן אויף בינע אַזוי ווייַט. מיר האט 8 ברעקלעך פון פּאַפּיר אויף די טשאַלקבאָאַרד, אויף ווידעא ווען שאָן איז קוקן פֿאַר די נומער 7, און וואָס האט ער טאַקע טאָן? נו, ער האט ניט טאָן קיין מין פון טיילן און קאַנגקער. ער האט ניט טאָן קיין מין פון רעקורסיאָן. אלא ער נאָר האבן דעם לינעאַר אַלגערידאַם. אבער ווען מיר באַקענענ דער געדאַנק פון אויסגעשטעלט נומערן אויף בינע לעבן לעצטע וואָך דעמאָלט מיר האט דעם ינסטינקט פון געגאנגען צו די מיטל, אין וואָס פונט מיר האבן אַ קלענערער רשימה פון נומער 4 אָדער אנדערן רשימה פון נומער 4, און דעמאָלט מיר האט די פּינטלעך זעלבע פּראָבלעם, אַזוי מיר ריפּיטיד, ריפּיטיד, ריפּיטיד. אין אנדערע ווערטער, מיר רעקורסעד. דאנק איר זייער פיל צו אונדזער 3 וואַלאַנטירז דאָ פֿאַר דעמאַנסטרייטינג רעקורסיאָן מיט אונדז. זאל ס זען אויב מיר קענען נישט מאַכן דעם איצט אַ ביסל מער באַטאָנען, סאַלווינג אַ פּראָבלעם אַז ווידער מיר קען טאָן שיין לייכט, אָבער מיר וועט נוצן עס ווי אַ סטעפּינג שטיין צו ימפּלאַמענינג דעם גרונט געדאַנק. אויב איך ווילן צו צונויפרעכענען די סאַמיישאַן פון אַ בינטל פון נומערן, פֿאַר בייַשפּיל, אויב איר פאָרן אין די נומער 3, איך ווילן צו געבן איר די ווערט פון סיגמאַ 3, אַזוי די סאַכאַקל פון 3 + 2 + 1 + 0. איך ווילן צו באַקומען צוריק דעם ענטפֿערן 6, אַזוי מיר וועט מאַכשער דעם סיגמאַ פונקציאָנירן, דעם סאַמיישאַן פֿונקציע אַז, ווידער, נעמט אין אַרייַנשרייַב, און דאַן קערט די סאַמיישאַן פון וואָס נומער אַלע די וועג אַראָפּ צו 0. מיר קען טאָן דעם שיין פשוט, רעכט? מיר קען טאָן דאָס מיט עטלעכע מין פון לופּינג סטרוקטור, אַזוי לאָזן מיר גיין פאָרויס און באַקומען דעם אנגעהויבן. אַרייַננעמען סטדיאָ.ה. זאל מיר באַקומען זיך אין הויפּט צו אַרבעטן מיט דאָ. זאל ס ראַטעווען דעם ווי סיגמאַ.ק. דעמאָלט איך בין געגאנגען צו גיין אין דאָ, און איך בין געגאנגען צו דערקלערן אַ ינט N, און איך בין געגאנגען צו טאָן די פאלגענדע בשעת דער באַניצער טוט נישט קאָואַפּערייט. בשעת דער באַניצער האט נישט געגעבן מיר אַ positive נומער לאָזן מיר גיין פאָרויס און פּינטלעך זיי פֿאַר N = געטינט, און לאָזן מיר געבן זיי עטלעכע ינסטראַקשאַנז ווי צו וואָס צו טאָן, אַזוי פּרינטף ("Positive ינטעגער ביטע"). נאָר עפּעס לעפיערעך פּשוט ווי דעם אַזוי אַז דורך די צייַט מיר שלאָגן שורה 14 מיר איצט האָבן אַ positive ינטעגער מאַשמאָעס אין ען. איצט לאָזן ס טאָן עפּעס מיט אים. זאל מיר גיין פאָרויס און צונויפרעכענען די סאַמיישאַן, אַזוי ינט סאַכאַקל = סיגמאַ (N). סיגמאַ איז נאָר סאַמיישאַן, אַזוי איך בין נאָר שרייבן עס אין די פאַנסיער וועג. מיר וועט נאָר רופן עס סיגמאַ דאָרט. אַז ס די סאַכאַקל, און איצט איך בין געגאנגען צו דרוקן אויס די רעזולטאַט, פּרינטף ("די סאַכאַקל איז% ד, \ n", סאַכאַקל). און דעמאָלט איך וועט צוריקקומען 0 פֿאַר גוט מאָס. מיר ווע געטאן אַלץ אַז דעם פּראָגראַם ריקווייערז חוץ די טשיקאַווע טייל, וואָס איז צו פאקטיש מאַכשער די סיגמאַ פונקציאָנירן. זאל מיר גיין אַראָפּ דאָ צו די דנאָ, און לאָזן מיר דערקלערן פונקציאָנירן סיגמאַ. עס ס גאַט צו נעמען אַ בייַטעוודיק אַז ס פון טיפּ ינטעגער, און וואָס דאַטן טיפּ טאָן איך ווילן צו צוריקקומען מאַשמאָעס פון סיגמאַ? ינט, ווייַל איך ווילן עס צו גלייַכן מיין עקספּעקטיישאַנז אויף שורה 15. אין דאָ לאָזן מיר גיין פאָרויס און מאַכשער דעם אין אַ שיין סטרייטפאָרווערד וועג. זאל ס גיין פאָרויס און זאָגן ינט סאַכאַקל = 0, און איצט איך בין געגאנגען צו גיין האָבן אַ קליין פֿאַר שלייף דאָ אַז ס 'געגאנגען צו זאָגן עפּעס ווי דעם, פֿאַר (ינט איך = 0; איך <= נומער; איך + +) סאַכאַקל + = איך. און דעמאָלט איך בין געגאנגען צו צוריקקומען סאַכאַקל. איך קען האָבן ימפּלאַמענטאַד דעם אין קיין נומער פון וועגן. איך קען האָבן געניצט אַ בשעת שלייף. איך קען האָבן סקיפּט ניצן די סאַכאַקל בייַטעוודיק אויב איך טאַקע געוואלט צו, אָבער אין קורץ, מיר נאָר האָבן אַ פֿונקציע וואָס אויב איך האט ניט צעדרייט דערקלערט סאַכאַקל איז 0. דעמאָלט עס יטעראַטעס פון 0 אויף אַרויף דורך די נומער, און אויף יעדער יטעראַטיאָן עס מוסיף אַז קראַנט ווערט צו סאַכאַקל און דאַן קערט סאַכאַקל. איצט, עס ס אַ קליין אַפּטאַמאַזיישאַן דאָ. דאס איז מיסטאָמע אַ ווייסטאַד שריט, אָבער אַזוי זייַן עס. אַז ס פייַן פֿאַר איצט. מיר ניטאָ בייַ מינדסטער זייַענדיק גרונטיק און געגאנגען 0 אַלע די וועג אויף אַרויף. ניט זייער שווער און שיין סטרייטפאָרווערד, אָבער עס טורנס אויס אַז מיט די סיגמאַ פונקציאָנירן מיר האָבן די זעלבע געלעגנהייט ווי מיר האבן דאָ אויף בינע. אויף בינע מיר נאָר גערעכנט ווי פילע מענטשן זענען ווייַטער צו מיר, אָבער אַנשטאָט אויב מיר געוואלט צו ציילן די נומער 3 + 2 + 1 אויף אַראָפּ צו 0 מיר קען סימילאַרלי פּונט צו אַ פֿונקציע אַז איך וועט אַנשטאָט באַשרייַבן ווי זייַענדיק רעקורסיווע. דאָ לאָזן ס טאָן אַ שנעל מייושעוודיקייַט קאָנטראָלירן און מאַכן זיכער איך האט ניט צעדרייט. איך וויסן דאָרט ס בייַ מינדסטער איין זאַך אין דעם פּראָגראַם וואָס איך האט טאָן פאַלש. ווען איך שלאָגן אַרייַן בין איך געגאנגען צו באַקומען קיין מין פון יעלינג בייַ מיר? וואָס בין איך געגאנגען צו זייַן יעלד אין וועגן? יאָ, איך Forgot די פּראָוטאַטייפּ, אַזוי איך בין ניצן אַ פֿונקציע גערופן סיגמאַ אויף שורה 15, אָבער עס ס ניט דערקלערט ביז שורה 22, אַזוי איך בעסטער פּראָואַקטיוולי גיין אַרויף דאָ און דערקלערן אַ פּראָוטאַטייפּ, און איך וועט זאָגן ינט סיגמאַ (ינט נומער), און אַז ס עס. עס ס ימפּלאַמענטאַד בייַ די דנאָ. אָדער אן אנדער וועג איך קען סאָלווע דעם, איך קען באַוועגן דעם פֿונקציע אַרויף דאָרט, וואָס איז נישט שלעכט, אָבער בייַ מינדסטער ווען דיין מגילה אָנהייבן צו באַקומען לאַנג, פראַנגקלי, איך טראַכטן דאָרט ס עטלעכע ווערט אין שטענדיק בעת הויפּט בייַ די שפּיץ אַזוי אַז איר אין די לייענער קענען עפענען די טעקע און דעמאָלט תיכף זען וואָס דער פּראָגראַם איז טאן אָן בעת ​​צו זוכן דורך עס קוקן פֿאַר אַז הויפּט פֿונקציע. זאל ס גיין אַראָפּ צו מיין וואָקזאַל פֿענצטער דאָ, פּרובירן מאכן סיגמאַ מאַכן סיגמאַ, און איך סקרוד אַרויף דאָ אויך. ימפּליסאַט דערקלערונג פון פונקציאָנירן געטינט מיטל איך ווע פארגעסן צו טאָן וואָס אַנדערש? [ינאָדאַבאַל-תּלמיד] גוט, אַזוי משמעות אַ פּראָסט גרייַז, אַזוי לאָזן ס שטעלן דעם אַרויף דאָ, קס50.ה, און איצט לאָזן ס גיין צוריק צו מיין וואָקזאַל פֿענצטער. איך וועט קלאָר די פאַרשטעלן, און איך וועט ריראַן מאַכן סיגמאַ. עס מיינט צו האָבן צונויפגעשטעלט. זאל מיר איצט לויפן סיגמאַ. איך וועט טיפּ אין די נומער 3, און איך האט באַקומען 6, אַזוי נישט אַ שטרענג קאָנטראָלירן, אָבער בייַ מינדסטער עס מיינט צו זייַן אַרבעט אין ערשטער בליק, אָבער איצט לאָזן ס טרענען עס באַזונדער, און לאָזן ס פאקטיש ליווערידזש דער געדאַנק פון רעקורסיאָן, ווידער, אין אַ זייער פּשוט קאָנטעקסט אַזוי אַז אין אַ ביסל וואָכן 'צייַט ווען מיר אָנהייבן יקספּלאָרינג פאַנסיער דאַטן סטראַקטשערז ווי ערייז מיר האָבן אן אנדער געצייַג אין די טאָאָלקיט מיט וואָס צו מאַניפּולירן יענע דאַטן סטראַקטשערז ווי מיר וועט זען. דאס איז די יטערייטיוו צוגאַנג, דער שלייף-באזירט צוגאַנג. זאל מיר אַנשטאָט איצט טאָן דעם. זאל מיר אַנשטאָט זאָגן אַז די סאַמיישאַן פון נומער אויף אַראָפּ צו 0 איז טאַקע די זעלבע זאַך ווי נומער + סיגמאַ (נומער - 1). אין אנדערע ווערטער, פּונקט ווי אויף בינע איך פּונטעד צו יעדער פון די מענטשן ווייַטער צו מיר, און זיי אין דרייַ געהאלטן פּונטינג ביז מיר לעסאָף באַטאַמד אויס אין ווילי, וואס האט צו צוריקקומען אַ שווער-קאָדעד ענטפֿערן ווי 0. דאָ איצט מיר רע סימילאַרלי פּונטינג צו סיגמאַ די זעלבע פֿונקציע ווי איז ערידזשנאַלי גערופן, אָבער די שליסל ינסייט דאָ איז וואָס מיר ניטאָ ניט פאַך סיגמאַ ידענטיקאַללי. מיר ניטאָ ניט גייט פארביי אין ען. מיר רע קלאר גייט פארביי אין נומער - 1, אַזוי אַ אַ ביסל קלענערער פּראָבלעם, אַ ביסל קלענערער פּראָבלעם. ליידער, דאָס איז נישט גאַנץ אַ לייזונג נאָך, און איידער מיר פאַרריכטן וואָס זאל זייַן דזשאַמפּינג אויס ווי קלאָר ווי דער טאָג אין עטלעכע פון ​​איר לאָזן מיר גיין פאָרויס און ריראַן מאַכן. עס מיינט צו צונויפנעמען אָוקיי. זאל מיר ריראַן סיגמאַ מיט 6. ווהאָאָפּס, לאָזן מיר ריראַן סיגמאַ מיט 6. מיר ווע געזען דעם פריער, אָלבייט אַקסאַדענאַלי לעצטע מאָל ווי געזונט. פארוואס האט איך באַקומען דעם קריפּטיק סעגמאַנטיישאַן שולד? יאָ. [ינאָדאַבאַל-תּלמיד] עס ס קיין באַזע פאַל, און מער ספּאַסיפיקלי, וואָס מיסטאָמע געטראפן? דאס איז אַ סימפּטאָם פון וואָס אָפּפירונג? זאָגן עס אַ ביסל לאַודער. [ינאָדאַבאַל-תּלמיד] עס ס אַ ינפאַנאַט שלייף יפעקטיוולי, און דער פּראָבלעם מיט ינפאַנאַט לופּס ווען זיי אַרייַנציען רעקורסיאָן אין דעם פאַל, אַ פֿונקציע פאַך זיך, וואָס כאַפּאַנז יעדער צייַט איר רופן אַ פֿונקציע? נו, טראַכטן צוריק צו ווי מיר געלייגט אויס די זכּרון אין אַ קאָמפּיוטער. מיר געזאגט אַז דאָרט ס דעם פּייַדע פון ​​זכּרון גערופן די אָנלייגן אַז ס בייַ די דנאָ, און יעדער צייַט איר רופן אַ פֿונקציע אַ ביסל מער זכּרון געץ שטעלן אויף דעם אַזוי-גערופן אָנלייגן מיט וואָס פונקציאָנירן ס היגע וועריאַבאַלז אָדער פּאַראַמעטערס, אַזוי אויב סיגמאַ רופט סיגמאַ רופט סיגמאַ רופט סיגמאַ  רופט סיגמאַ ווו טוט דעם געשיכטע סוף? נו, עס יווענטשאַוואַלי אָוווערראַנז די גאַנץ סומע פון זכּרון אַז איר האָט פאַראַנען צו דיין קאָמפּיוטער. איר באַדעקן די אָפּשניט וואָס איר ניטאָ געמיינט צו בלייַבן ין, און איר באַקומען דעם סעגמאַנטיישאַן שולד, האַרץ דאַמפּט, און וואָס האַרץ דאַמפּט מיטל איז אַז איך איצט האָבן אַ טעקע גערופן האַרץ וואָס איז אַ טעקע מיט זעראָס און אָנעס אַז פאקטיש אין די צוקונפֿט וועט זייַן דיאַגנאָסטיקאַללי נוצלעך. אויב עס ס ניט קלאָר ווי דער טאָג צו איר ווו דיין באַג איז איר קענען פאקטיש טאָן אַ ביסל פון פאָרענסיק אַנאַליסיס, אַזוי צו רעדן, אויף דעם האַרץ דאַמפּ טעקע, וואָס, ווידער, איז נאָר אַ גאַנץ בינטל פון זעראָס און אָנעס אַז יסענשאַלי רעפּראַזענץ די שטאַט פון דיין פּראָגראַם אין זכּרון דער מאָמענט עס קראַשט אין דעם וועג. די פאַרריכטן דאָ איז אַז מיר קענען נישט נאָר בליינדלי צוריקקומען סיגמאַ, די נומער + סיגמאַ פון אַ ביסל קלענערער פּראָבלעם. מיר דאַרפֿן צו האָבן עטלעכע מין פון באַזע פאַל דאָ, און וואָס זאָל די באַזע פאַל מיסטאָמע זייַן? [ינאָדאַבאַל-תּלמיד] אָוקיי, אַזוי לאַנג ווי די נומער איז positive מיר זאָל פאקטיש צוריקקומען דעם, אָדער שטעלן אן אנדער וועג, אויב נומער איז, זאָגן, <= צו 0 איר וויסן וואָס, איך וועט גיין פאָרויס און צוריקקומען 0, פיל ווי ווילי האט, און אַנדערש, איך בין געגאנגען צו גיין פאָרויס און צוריקקומען דעם, אַזוי עס ס נישט אַז פיל קירצער ווי די יטערייטיוו ווערסיע וואָס מיר וויפּט אַרויף ערשטער ניצן אַ פֿאַר שלייף, אָבער באַמערקן אַז דאָרט ס דעם סאָרט פון עלאַגאַנס צו עס. אַנשטאָט פון אומגעקערט עטלעכע נומער און פּערפאָרמינג אַלע דעם מאַט און אַדינג זאכן אַרויף מיט היגע וועריאַבאַלז איר ניטאָ אַנשטאָט זאגן "אָוקיי, אויב דאָס איז אַ סופּער גרינג פּראָבלעם, ווי די נומער איז <0, לאָזן מיר תיכף צוריקקומען 0. " מיר ניטאָ ניט געגאנגען צו אַרן סופּפּאָרטינג נעגאַטיוו נומערן, אַזוי איך בין געגאנגען צו שווער קאָד די ווערט פון 0. אבער אַנדערש, צו מאַכשער דעם געדאַנק פון סאַמינג אַלע פון ​​די נומערן צוזאַמען איר קענען יפעקטיוולי נעמען אַ קליין בייַסן אויס פון דעם פּראָבלעם, פיל ווי מיר האבן דאָ אויף בינע, דעמאָלט פּונט די מנוחה פון די פּראָבלעם צו דער ווייַטער מענטש, אָבער אין דעם פאַל דער ווייַטער מענטש איז זיך. עס ס אַ ידענטיקאַללי געהייסן פונקציאָנירן. נאָר פאָרן עס אַ קלענערער און קלענערער און קלענערער פּראָבלעם יעדער צייַט, און אַפֿילו כאָטש מיר האָבן ניט גאַנץ פאָרמאַלייזד זאכן אין קאָד דאָ דאָס איז פּונקט וואָס איז געגאנגען אויף אין וואָך 0 מיט די טעלעפאָן בוך. דאס איז פּונקט וואָס איז געגאנגען אויף אין פאַרגאַנגענהייַט וואָכן מיט שאָן און מיט אונדזער דעמאַנסטריישאַנז פון שאַרף פֿאַר נומערן. עס ס גענומען אַ פּראָבלעם און דיוויידינג עס ווידער און ווידער. אין אנדערע ווערטער, דאָרט ס אַ וועג איצט פון איבערזעצן דאָס פאַקטיש וועלט בויען, דאָס העכער מדרגה בויען פון טיילן און קאַנגקער און טאן עפּעס ווידער און ווידער אין קאָד, אַזוי דאָס איז עפּעס מיר וועלן זען ווידער איבער צייַט. איצט, ווי אַ באַזונדער, אויב איר ניטאָ נייַ צו רעקורסיאָן איר זאָל בייַ מינדסטער פֿאַרשטיין איצט וואָס דאָס איז מאָדנע. איך בין געגאנגען צו גיין צו google.com, און איך בין געגאנגען צו זוכן פֿאַר עטלעכע עצות און טריקס אויף רעקורסיאָן, אַרייַן. זאָגן די מענטש ווייַטער צו איר אויב זיי זענען נישט לאַפינג נאָר איצט. האט איר מיינען רעקורסיאָן? האט איר מיינען-אַ, עס מיר גיין. אָוקיי, איצט אַז ס די מנוחה פון אַלעמען. א ביסל יסטער יי עמבעדיד ערגעץ דאָרט אין גוגל. ווי אַ באַזונדער, איינער פון די לינקס מיר שטעלן אויף די קורס ס וועבזייַטל פֿאַר הייַנט איז נאָר דעם גריד פון פארשידענע סאָרטינג אַלגערידאַמז, עטלעכע פון ​​וואָס מיר געקוקט בייַ לעצטע וואָך, אָבער וואָס ס פייַן וועגן דעם וויזשוואַלאַזיישאַן ווי איר פּרובירן צו ייַנוויקלען דיין מיינונג אַרום פארשידענע זאכן שייַכות צו אַלגערידאַמז וויסן אַז איר קענען זייער לייכט איצט אָנהייבן מיט פאַרשידענע טייפּס פון ינפּוץ. די ינפּוץ אַלע ריווערסט, די ינפּוץ מערסטנס אויסגעשטעלט, די ינפּוץ טראַפ און אַזוי אַרויס. ווי איר פּרובירן צו, ווידער, ויסטיילן די זאכן אין אייער מיינונג פאַרשטיין אַז דעם URL אויף דעם קורס ס וועבזייַטל אויף די לעקטורעס בלאַט זאל העלפן איר סיבה דורך עטלעכע פון ​​יענע. הייַנט מיר לעסאָף באַקומען צו סאָלווע דעם פּראָבלעם פון אַ בשעת צוריק, וואָס איז געווען אַז דעם ויסבייַטן פונקציאָנירן נאָר האט נישט אַרבעטן, און וואָס איז געווען די פונדאַמענטאַל פּראָבלעם מיט דעם פֿונקציע ויסבייַטן, דער ציל פון וואָס איז געווען, ווידער, צו וועקסל אַ ווערט דאָ און דאָ אַזאַ וואָס דאָס כאַפּאַנז? דאס האט נישט פאקטיש אַרבעט. פארוואס? יאָ. [ינאָדאַבאַל-תּלמיד] פּונקט, די דערקלערונג פֿאַר דעם בוגגינעסס פשוט געווען ווייַל ווען איר רופן פאַנגקשאַנז אין C און יענע פאַנגקשאַנז נעמען טענות, ווי אַ און ב דאָ, איר זענט גייט פארביי אין קאפיעס פון וועלכער ווערט איר ניטאָ ערלויבעניש צו אַז פונקציאָנירן. איר זענט נישט פּראַוויידינג דער אָריגינעל וואַלועס זיך, אַזוי מיר געזען דעם אין דעם קאָנטעקסט פון בוגגיק, בוגגי3.ק, וואָס געקוקט אַ ביסל עפּעס ווי דעם. צוריקרופן אַז מיר האט X און י ינישאַלייזד צו 1 און 2, ריספּעקטיוולי. מיר דעמאָלט געדרוקט אויס וואָס זיי זענען. איך דעמאָלט קליימד אַז איך איז געווען סוואַפּינג זיי דורך פאַך ויסבייַטן פון X, י. אבער די פּראָבלעם איז געווען אַז די סוואַפּינג געארבעט, אָבער בלויז אין דער פאַרנעם פון די ויסבייַטן פונקציאָנירן זיך. ווי באַלד ווי מיר שלאָגן שורה 40 יענע סוואָפּט וואַלועס זענען ארלנגעווארפן אַוועק, און אַזוי גאָרנישט אין דער אָריגינעל פונקציאָנירן הויפּט איז געווען פאקטיש געביטן בייַ אַלע, אַזוי אויב איר טראַכטן צוריק דעמאָלט ווי צו וואָס דאָס קוקט ווי אין טערמינען פון אונדזער זכּרון אויב דעם לינקס-האַנט זייַט פון די ברעט רעפּראַזענץ- און איך וועט טאָן מיין בעסטער פֿאַר אַלעמען צו זען דעם-אויב דאָס לינקס-האַנט זייַט פון די ברעט רעפּראַזענץ, זאָגן, דיין באַראַן, און די אָנלייגן איז געגאנגען צו וואַקסן אויף אַרויף דעם וועג, און מיר רופן אַ פונקציאָנירן ווי הויפּט, און הויפּט האט 2 היגע וועריאַבאַלז, X און י, לאָזן ס באַשרייַבן יענע ווי X דאָ, און לאָזן ס באַשרייַבן די ווי י דאָ, און לאָזן ס שטעלן אין די וואַלועס 1 און 2, אַזוי דעם דאָ איז הויפּט, און ווען הויפּט רופט די ויסבייַטן פונקציאָנירן די אַפּערייטינג סיסטעם גיט די ויסבייַטן פונקציאָנירן זייַן אייגן סוואַט פון זכּרון אויף די אָנלייגן, זייַן אייגן ראַם אויף די אָנלייגן, אַזוי צו רעדן. עס אויך אַלאַקייץ 32 ביטן פֿאַר די ינץ. עס כאַפּאַנז צו רופן זיי אַ און ב, אָבער אַז ס טאָוטאַלי אַרביטראַריש. עס קען האָבן גערופן זיי וועלכער עס וויל, אָבער וואָס כאַפּאַנז ווען הויפּט רופט ויסבייַטן איז עס נעמט דעם 1, לייגט אַ קאָפּיע דאָרט, לייגט אַ קאָפּיע דאָרט. עס איז 1 אנדערע היגע בייַטעוודיק אין ויסבייַטן, כאָטש, גערופן וואָס? >> טמפּ. טמפּ, אַזוי לאָזן מיר געבן זיך אן אנדער 32 ביטן דאָ, און וואָס האט איך טאָן אין דעם פֿונקציע? איך געזאגט ינט טמפּ געץ אַ, אַזוי אַ האט 1, אַזוי איך האט דאָס ווען מיר לעצט געשפילט מיט דעם בייַשפּיל. דעמאָלט אַ געץ ב, אַזוי בייטן איז 2, אַזוי איצט דעם ווערט 2, און איצט ב געץ טעמפּ, אַזוי טעמפּ איז 1, אַזוי איצט בייטן ווערט דעם. אַז ס גרויס. עס געארבעט. אבער דעמאָלט ווי באַלד ווי די פֿונקציע קערט ויסבייַטן ס זכּרון יפעקטיוולי פארשווינדט אַזוי וואָס עס קענען זייַן ריוזד דורך עטלעכע אנדערע פֿונקציע אין דער צוקונפֿט, און הויפּט איז דאָך גאָר אַנטשיינדזשד. מיר דאַרפֿן אַ וועג פון פאַנדאַמענטאַלי סאַלווינג דעם פּראָבלעם, און הייַנט מיר וועט לעסאָף האָבן אַ וועג פון טאן דעם ווערביי מיר קענען פאָרשטעלן עפּעס גערופן אַ טייַטל. עס טורנס אויס אַז מיר קענען סאָלווע דעם פּראָבלעם ניט דורך גייט פארביי אין קאפיעס פון X און י אָבער אַנשטאָט דורך גייט פארביי אין וואָס, טאָן איר טראַכטן, צו די ויסבייַטן פונקציאָנירן? יאָ, וואָס וועגן דעם אַדרעס? מיר האָבן ניט טאַקע גערעדט וועגן ווענדט אין פיל דעטאַל, אָבער אויב דאָס בלאַקבאָרד רעפּראַזענץ מיין קאָמפּיוטער ס זכּרון מיר קען זיכער אָנהייב נאַמבערינג די ביטעס אין מיין באַראַן און זאָגן דעם איז ביטע # 1, דאָס איז ביטע # 2, ביטע # 3, ביטע # 4, ביטע # ... 2000000000 אויב איך האָבן 2 גיגאבייט פון באַראַן, אַזוי מיר קען זיכער קומען אַרויף מיט עטלעכע אַרביטראַריש נאַמבערינג סכעמע פֿאַר אַלע דעם יחיד ביטעס אין מיין קאָמפּיוטער ס זכּרון. וואָס אויב אַנשטאָט ווען איך רופן ויסבייַטן אלא ווי פאָרן אין קאפיעס פון X און י וואָס טאָן ניט איך אַנשטאָט פאָרן אין די אַדרעס פון X דאָ, דער אַדרעס פון י דאָ, יסענשאַלי די Postal אַדרעס פון X און י ווייַל דעמאָלט ויסבייַטן, אויב ער ס ינפאָרמד פון דעם אַדרעס אין זכּרון פון X און י, דעמאָלט ויסבייַטן, אויב מיר טריינד אים אַ קליין ביסל, ער קען פּאַטענטשאַלי פאָר צו אַז אַדרעס, אַזוי צו רעדן, X, און טוישן די נומער דאָרט, דעמאָלט פאָר צו דעם אַדרעס פון י, טוישן די נומער דאָרט, אַפֿילו בשעת נישט פאקטיש געטינג קאפיעס פון יענע וואַלועס זיך, אַזוי אַפֿילו כאָטש מיר גערעדט וועגן דעם ווי זייַענדיק הויפּט ס זכּרון און דעם ווי זייַענדיק ויסבייַטן ס זכּרון די שטאַרק און די געפערלעך טייל פון C איז אַז קיין פונקציאָנירן קענען פאַרבינדן זכּרון ערגעץ אין די קאָמפּיוטער, און דאָס איז שטאַרק אין אַז איר קענען טאָן זייער פאַנטאַזיע זאכן מיט קאָמפּיוטער מגילה אין סי דאס איז געפערלעך ווייַל איר קענען אויך שרויף זיך זייער לייכט. אין פאַקט, איינער פון די מערסט פּראָסט וועגן פֿאַר מגילה די טעג צו זייַן עקספּלויטאַד נאָך איז פֿאַר אַ פּראָגראַמיסט נישט צו פאַרשטיין אַז ער אָדער זי איז אַלאַוינג אַ דאַטן צו זייַן געשריבן אין אַ אָרט אין זכּרון וואָס איז געווען ניט בדעה. פֿאַר בייַשפּיל, ער אָדער זי דערקלערט אַ מענגע פון ​​גרייס 10 אָבער דעמאָלט אַקסאַדענאַלי פרוווט צו שטעלן 11 ביטעס אין אַז מענגע פון ​​זכּרון, און איר אָנהייב רירנדיק טיילן פון זכּרון אַז ביסט ניט מער גילטיק. נאָר צו קאָנטעקסטואַל דעם, עטלעכע פון ​​איר זאל וויסן אַז ווייכווארג אָפֿט פּראַמפּס איר פֿאַר סיריאַל נומערן אָדער רעגיסטראַציע קיז, פאָטאָשאָפּ און וואָרט און מגילה ווי דעם. עס עקזיסטירן קראַקס, ווי עטלעכע פון ​​איר וויסן, אָנליין ווו איר קענען לויפן אַ ביסל פּראָגראַם, און וווואַלאַ, ניט מער בעטן פֿאַר אַ סיריאַל נומער. ווי איז וואָס ארבעטן? אין פילע פאלן די זאכן זענען פשוט געפונען אין די קאָמפּיוטערס טעקסט סעגמאַנץ אין די קאָמפּיוטער 'ס פאַקטיש זעראָס און אָנעס ווו איז וואָס פונקציאָנירן ווו די סיריאַל נומער איז געבעטן, און איר אָווועררייט אַז פּלאַץ, אָדער בשעת די פּראָגראַם איז פליסנדיק איר קענען רעכענען אויס ווו דער שליסל איז פאקטיש סטאָרד ניצן עפּעס גערופן אַ דעבוגגער, און איר קענען פּלאַצן ווייכווארג וואָס וועג. דאס איז נישט צו זאָגן אַז דאָס איז אונדזער אָביעקטיוו פֿאַר דער ווייַטער פּאָר פון טעג, אָבער עס האט זייער פאַקטיש-וועלט ראַמאַפאַקיישאַנז. אַז איינער כאַפּאַנז צו אַרייַנציען גנייווע פון ​​סאָפטווער, אָבער דאָרט ס אויך קאָמפּראָמיס פון גאנצע מאשינען. אין פאַקט, ווען וועבסיטעס די טעג זענען עקספּלויטאַד און קאַמפּראַמייזד און דאַטן איז ליקט און פּאַסווערדז זענען סטאָלען דאָס זייער אָפֿט דערציילט צו נעבעך פאַרוואַלטונג פון איין ס זכּרון, אָדער, אין דעם פאַל פון דאַטאַבייסיז, דורכפאַל צו ריכטנ זיך אַדווערסעריאַל אַרייַנשרייַב, אַזוי מער אויף אַז אין די וואָכן צו קומען, אָבער פֿאַר איצט נאָר אַ סניק פאָרויסיקע ווייַזונג פון די סאָרט פון שעדיקן אַז איר קענען טאָן דורך נישט גאַנץ פארשטאנד ווי דאס אַרבעט ונטער דער קאַפּטער. זאל ס גיין וועגן פארשטאנד וואָס דאָס איז צעבראכן מיט אַ געצייַג וואָס וועט ווערן מער און מער נוצלעך ווי אונדזער מגילה באַקומען מער קאָמפּליצירט. אזוי ווייַט ווען איר ווע האט אַ באַג אין דיין פּראָגראַם ווי האָט איר ניטאָ וועגן דיבאַגינג עס? וואָס האָבן דיין טעקניקס שוין אַזוי ווייַט, צי געלערנט דורך דיין טף אָדער נאָר זיך-געלערנט? [תּלמיד] פּרינטף. פּרינטף, אַזוי פּרינטף האט מיסטאָמע שוין דיין פרייַנד אין אַז אויב איר ווילן צו זען וואָס ס 'געגאנגען אויף ין פון דיין פּראָגראַם איר נאָר שטעלן פּרינטף דאָ, פּרינטף דאָ, פּרינטף דאָ. דעמאָלט איר לויפן אים, און איר באַקומען אַ גאַנץ בינטל פון שטאָפּן אויף דער עקראַן אַז איר קענען נוצן צו דעמאָלט אַרויסדרינגען וואָס איז פאקטיש געגאנגען אומרעכט אין דיין פּראָגראַם. פּרינטף טענדז צו זייַן אַ זייער שטאַרק זאַך, אָבער עס ס אַ זייער מאַנואַל פּראָצעס. איר האָבן צו שטעלן אַ פּרינטף דאָ, אַ פּרינטף דאָ, און אויב איר שטעלן עס ין פון אַ שלייף איר זאל באַקומען 100 שורות פון רעזולטאַט אַז איר דעמאָלט האָבן צו סיפט דורך. עס ס נישט אַ זייער באַניצער-פרייַנדלעך אָדער ינטעראַקטיוו מעקאַניזאַם פֿאַר דיבאַגינג מגילה, אָבער טאַנגקפאַלי דאָרט יגזיסץ אַלטערנאַטיוועס. עס ס אַ פּראָגראַם, פֿאַר בייַשפּיל, גערופן גדב, די GNU דעבוגגער, וואָס איז אַ ביסל אַרקיין אין ווי איר נוצן עס. עס ס אַ ביסל קאָמפּליצירט, אָבער פראַנגקלי, דאָס איז איינער פון יענע זאכן ווו אויב איר שטעלן אין דעם וואָך און ווייַטער די עקסטרע שעה צו פֿאַרשטיין עפּעס ווי גדב עס וועט ראַטעווען איר מיסטאָמע טענס פון שעה אין די לאַנג לויפן, אַזוי מיט וואָס, לאָזן מיר געבן איר אַ טיזער פון ווי דעם זאַך אַרבעט. איך בין אין מיין וואָקזאַל פֿענצטער. זאל מיר גיין פאָרויס און צונויפנעמען דעם פּראָגראַם, בוגגי3. עס ס שוין אַרויף צו טאָג. זאל מיר לויפן עס פּונקט ווי מיר האבן אַ בשעת צוריק, און טאַקע, עס ס צעבראכן. אבער וואָס איז דאָס? אפֿשר איך סקרוד אַרויף די ויסבייַטן פונקציאָנירן. אפֿשר עס ס 'אַ און ב. איך בין נישט גאַנץ מאָווינג זיי אַרום ריכטיק. זאל מיר גיין פאָרויס און טאָן דעם. אלא ווי נאָר לויפן בוגגי3 לאָזן מיר אַנשטאָט לויפן דעם פּראָגראַם גדב, און איך בין געגאנגען צו זאָגן עס צו לויפן בוגגי3, און איך בין געגאנגען צו אַרייַננעמען אַ באַפֿעל שורה אַרגומענט,-טוי, און מיר וועט שטעלן דעם אין צוקונפֿט פּראָבלעמס בייַ ספּעק צו דערמאָנען. און איצט דעם שוואַרץ און ווייַס צובינד פּאַפּט אַרויף אַז, ווידער, איז אַ ביסל אָוווערוועלמינג בייַ ערשטער ווייַל דאָרט ס אַלע דעם וואָראַנטי אינפֿאָרמאַציע אַראָפּ דאָ, אָבער בייַ מינדסטער דאָרט ס 'עפּעס באַקאַנט. אין די שפּיץ פון די פֿענצטער איז מיין פאַקטיש קאָד, און אויב איך מעגילע אַרויף דאָ לאָזן מיר מעגילע צו די זייער שפּיץ פון מיין טעקע, און טאַקע, דאָרט ס בוגגי3.ק, און באַמערקן בייַ די דנאָ פון דעם פֿענצטער איך האָבן דעם גדב פּינטלעך. דאס איז נישט די זעלבע ווי מיין נאָרמאַל יוחנן האַרוואַרד פּינטלעך. דאס איז אַ פּינטלעך אַז ס 'געגאנגען צו לאָזן מיר צו קאָנטראָל גדב. גדב איז אַ דעבוגגער. א דעבוגגער איז אַ פּראָגראַם וואָס לעץ איר גיין דורך דורכפירונג פון דיין פּראָגראַם שורה ביי שורה ביי שורה, צוזאמען די וועג טאן עפּעס איר ווילן צו די פּראָגראַם, אַפֿילו פאַך פאַנגקשאַנז, אָדער קוקן, מער ימפּאָרטאַנטלי, בייַ פארשידענע בייַטעוודיק ס וואַלועס. זאל ס גיין פאָרויס און טאָן דעם. איך בין געגאנגען צו גיין פאָרויס און דרוקן אין לויפן אין גדב ס פּינטלעך, אַזוי באַמערקן בייַ די דנאָ לינקס פון די פאַרשטעלן איך ווע טייפּט לויפן, און איך ווע שלאָגן אַרייַן, און וואָס האט אַז טאָן? עס ממש געלאפן מיין פּראָגראַם, אָבער איך האט ניט פאקטיש זען פיל גיין אויף דאָ ווייַל איך האב נישט פאקטיש דערציילט די דעבוגגער צו פּויזע בייַ אַ באַזונדער מאָמענט אין צייַט. נאָר טייפּינג לויפן לויפט די פּראָגראַם. איך טאָן נישט פאקטיש זען עפּעס. איך קענען נישט מאַניפּולירן עס. אַנשטאָט לאָזן מיר טאָן דעם. אין דעם גדב פּינטלעך לאָזן מיר אַנשטאָט טיפּ ברעכן, אַרייַן. אַז ס 'ניט וואָס איך מענט צו דרוקן. זאל ס אַנשטאָט טיפּ ברעכן הויפּט. אין אנדערע ווערטער, איך וועלן צו שטעלן עפּעס גערופן אַ ברעאַקפּאָינט, וואָס איז אַפּטלי געהייסן ווייַל עס וועט ברעכן אָדער פּויזע דורכפירונג פון דיין פּראָגראַם אין אַז באַזונדער אָרט. הויפּט איז די נאָמען פון מיין פונקציאָנירן. נאָטיץ אַז גדב איז שיין קלוג. עס פיגיערד אויס אַז הויפּט כאַפּאַנז צו אָנהייבן בעערעך בייַ שורה 18 פון בוגגי3.ק, און דעמאָלט באַמערקן דאָ אין שפּיץ לינקס ב + איז רעכט ווייַטער צו שורה 18. אַז ס דערמאנען מיר וואָס איך האָבן באַשטימט אַ ברעאַקפּאָינט בייַ שורה 18. דאס מאָל ווען איך טיפּ לויפן, איך בין געגאנגען צו לויפן מיין פּראָגראַם אַרויף ביז עס היץ אַז ברעאַקפּאָינט, אַזוי דער פּראָגראַם וועט פּויזע פֿאַר מיר בייַ שורה 18. דאָ מיר גיין, לויפן. גאָרנישט אויס צו האָבן געטראפן, אָבער באַמערקן בייַ דנאָ לינקס סטאַרטינג פּראָגראַם, בוגגי3, ברעאַקפּאָינט 1 אין הויפּט בייַ בוגגי3.ק שורה 18. וואָס קענען איך טאָן איצט? נאָטיץ איך קענען אָנהייבן טייפּינג זאכן ווי דרוקן, ניט פּרינטף, דרוק X, און איצט אַז ס מאָדנע. די $ 1 איז נאָר אַ נייַגעריקייַט, ווי מיר וועט זען יעדער צייַט איר דרוקן עפּעס איר באַקומען אַ נייַ $ ווערט. אַז ס אַזוי אַז איר קענען אָפּשיקן צוריק צו פֿריִערדיקע וואַלועס נאָר אין פאַל, אָבער פֿאַר איצט וואָס דרוקן איז טעלינג מיר איז אַז די ווערט פון X בייַ דעם פונט אין דער געשיכטע איז משמעות 134,514,032. וואָס? ווו האט אַז אַפֿילו קומען פון? [ינאָדאַבאַל-תּלמיד] טאקע, דאָס איז וואָס מיר וועט רופן אַ מיסט ווערט, און מיר 'ווע ניט גערעדט וועגן דעם נאָך, אָבער די סיבה אַז איר ינישאַלייז וועריאַבאַלז איז דאָך אַזוי אַז זיי האָבן עטלעכע ווערט וואָס איר ווילן זיי צו האָבן. אבער די כאַפּן איז צוריקרופן אַז איר קענען דערקלערן וועריאַבאַלז ווי איך האט אַ מאָמענט צוריק אין מיין סיגמאַ בייַשפּיל אָן פאקטיש געבן זיי אַ ווערט. צוריקרופן וואָס איך האט איבער דאָ אין סיגמאַ. איך דערקלערט ן, אָבער וואָס ווערט האט איך געבן עס? קיינער, ווייַל איך געוואוסט אַז אין דער ווייַטער ביסל שורות געטינט וואָלט נעמען קעיר פון די פּראָבלעם פון פּאַטינג אַ ווערט ין פון ען. אבער בייַ דעם פונט אין דער געשיכטע פון ​​שורה 11 און שורה 12 און שורה 13 און שורה 14 איבער יענע עטלעכע שורות וואָס איז די ווערט פון ען? אין C איר נאָר טאָן ניט וויסן. עס ס בכלל עטלעכע מיסט ווערט, עטלעכע גאָר טראַפ - נומער אַז ס לינקס איבער יסענשאַלי פון עטלעכע פֿריִערדיקע פֿונקציע ווייל שוין לויפן, אַזוי ווי דיין פּראָגראַם לויפט צוריקרופן וואָס פונקציאָנירן געץ פונקציאָנירן, פונקציאָנירן, פונקציאָנירן. כל די ראָמען באַקומען שטעלן אויף זכּרון, און דעמאָלט יענע פאַנגקשאַנז צוריקקומען, און פּונקט ווי איך סאַגדזשעסטיד מיט דעם מעקער זייער זכּרון איז יווענטשאַוואַלי ריוזד. נו, עס פּונקט אַזוי כאַפּאַנז אַז דעם בייַטעוודיק X אין דעם פּראָגראַם מיינט צו האָבן קאַנטיינד עטלעכע מיסט ווערט ווי 134514032 פון עטלעכע פֿריִערדיקע פונקציאָנירן, נישט איין אַז איך געשריבן. עס קען זייַן עפּעס וואָס קומט יפעקטיוולי מיט די אַפּערייטינג סיסטעם, עטלעכע פונקציאָנירן ונטער דער קאַפּטער. אָוקיי, אַז ס פייַן, אָבער לאָזן ס איצט שטייַגן צו דער ווייַטער שורה. אויב איך טיפּ "ווייַטער" בייַ מיין גדב פּינטלעך און איך שלאָגן אַרייַן, באַמערקן אַז די כיילייטינג באוועגט אַראָפּ צו שורה 19, אָבער די לאַדזשיקאַל ימפּלאַקיישאַן איז אַז שורה 18 האט איצט פאַרטיק עקסאַקיוטינג, אַזוי אויב איך ווידער טיפּ "דרוק X" איך זאָל איצט זען 1, און טאַקע, איך טאָן. ווידער, די $ שטאָפּן איז אַ וועג פון גדב דערמאנען איר וואָס די געשיכטע פון ​​פּרינץ זענען אַז איר ווע געטאן. איצט לאָזן מיר גיין פאָרויס און דרוקן אויס י, און טאַקע, י איז עטלעכע משוגע ווערט ווי געזונט, אָבער קיין גרויס האַנדלען ווייַל אין שורה 19 מיר רע וועגן צו באַשטימען עס די ווערט 2, אַזוי לאָזן מיר טיפּ "ווייַטער" ווידער. און איצט מיר ניטאָ אויף דער פּרינטף שורה. לאָזן מיר טאָן דרוק X. לאָזן מיר טאָן דרוק י. פראַנגקלי, איך בין געטינג אַ ביסל מיד פון דרוקן דעם. זאל מיר אַנשטאָט טיפּ "אַרויסווייַזן X" און "אַרויסווייַזן י," און איצט יעדער צייַט איך טיפּ אַ באַפֿעל אין די צוקונפֿט איך וועל זייַן רימיינדיד פון וואָס ס X און י, וואָס ס X און י, וואָס ס X און י. איך קענען אויך, ווי אַ באַזונדער, דרוקן אין "אינפֿאָרמאַציע לאָוקאַלז." אינפֿאָרמאַציע איז אַ ספּעציעל באַפֿעל. לאָוקאַלז מיטל עס ווייזט מיר די היגע וועריאַבאַלז. נאָר אין פאַל איך פאַרגעסן אָדער דאָס איז אַ משוגע, קאָמפּליצירט פֿונקציע אַז איך אָדער עמעצער אַנדערש געשריבן אינפֿאָרמאַציע לאָוקאַלז וועט זאָגן איר וואָס זענען אַלע די היגע וועריאַבאַלז ין דעם היגע פֿונקציע אַז איר זאל זאָרגן וועגן אויב איר ווילן צו שטורכען אַרום. איצט, פּרינטף איז וועגן צו ויספירן, אַזוי לאָזן מיר גיין פאָרויס און נאָר טיפּ "ווייַטער". ווייַל מיר ניטאָ אין דעם סוויווע מיר רע נישט פאקטיש געזען עס ויספירן אַראָפּ דאָ, אָבער באַמערקן עס ס געטינג אַ ביסל מאַנגגאַלד דאָ. אבער באַמערקן עס ס אָוווערריידינג די פאַרשטעלן דאָרט, אַזוי עס ס נישט אַ גאנץ פּראָגראַם דאָ, אָבער אַז ס אָוקיי ווייַל איך קענען שטענדיק שטורכען אַרום ניצן דרוק אויב איך ווילן. זאל מיר טיפּ ווייַטער ווידער, און איצט דאָ ס די טשיקאַווע טייל. אין דעם פונט אין די געשיכטע י איז 2, און X איז 1, ווי סאַגדזשעסטיד דאָ, און ווידער, די סיבה דאָס איז אויטאָמאַטיש ווייַזנדיק איצט איז ווייַל איך געניצט די באַפֿעל אַרויסווייַזן X און אַרויסווייַזן י, אַזוי דער מאָמענט איך טיפּ ווייַטער אין טעאָריע X און י זאָל ווערן סוואָפּט. איצט, מיר שוין וויסן אַז ס 'נישט געגאנגען צו זייַן דעם פאַל, אָבער מיר וועט זען אין אַ מאָמענט ווי מיר קענען ונטערטוקנ זיך דיפּער צו רעכענען אויס וואָס אַז ס 'אמת. ווייַטער, און ליידער, י איז נאָך 2 און X איז נאָך 1, און איך קען באַשטעטיקן ווי פיל. דרוק X, דרוק י. טאקע, קיין סוואַפּינג האט פאקטיש געטראפן, אַזוי לאָזן ס אָנהייבן דעם איבער. קלאר ויסבייַטן איז צעבראכן. זאל ס אַנשטאָט טיפּ "לויפן" ווידער. זאל מיר זאָגן יאָ, איך ווילן צו ריסטאַרט עס פון די אָנהייב, אַרייַן. איצט איך בין צוריק אַרויף אין שורה 18. איצט באַמערקן X און י ביסט מיסט וואַלועס ווידער. ווייַטער, ווייַטער, ווייַטער, ווייַטער. אויב איך באַקומען באָרד איך קענען אויך נאָר טיפּ N פֿאַר ווייַטער. איר קענען אַבריוויייט עס צו די שאָרטיסט מעגלעך סיקוואַנס פון אותיות. ויסבייַטן איז איצט צעבראכן. זאל ס ונטערטוקנ זיך אין, אַזוי אַנשטאָט פון טייפּינג ווייַטער, איצט איך בין געגאנגען צו טיפּ שריט אַזוי אַז איך בין סטעפּינג ין פון דעם פֿונקציע אַזוי אַז איך קען גיין דורך עס, אַזוי איך שלאָגן שריט און דעמאָלט אַרייַן. נאָטיץ אַז די כיילייטינג דזשאַמפּס אַראָפּ נידעריקער אין מיין פּראָגראַם צו שורה 36. איצט וואָס זענען די היגע וועריאַבאַלז? אינפֿאָרמאַציע לאָוקאַלז. גאָרנישט נאָר נאָך ווייַל מיר ווע ניט גאַטאַן צו אַז שורה, אַזוי לאָזן ס גיין פאָרויס און זאָגן "ווייַטער". איצט מיר ויסקומען צו האָבן טמפּ, דרוק טמפּ. מיסט ווערט, רעכט? איך טראַכטן אַזוי. ווי וועגן דרוקן אַ, דרוק ב, 1 און 2? אין אַ מאָמענט, ווי באַלד ווי איך טיפּ ווייַטער ווידער טמפּ איז געגאנגען צו נעמען אויף אַ ווערט פון 1, אַלעווייַ, ווייַל טמפּ איז געגאנגען צו זייַן אַסיינד די ווערט פון אַ. איצט לאָזן ס טאָן דרוקן אַ, דרוק ב, אָבער איצט דרוקן טמפּ, און עס ס טאַקע 1. לאָזן מיר טאָן ווייַטער. לאָזן מיר טאָן ווייַטער. איך ווע פאַרטיק די ויסבייַטן פונקציאָנירן. איך בין נאָך ין פון אים אין שורה 40, אַזוי לאָזן מיר דרוקן אַ, דרוק בייטן, און איך טאָן ניט זאָרגן וואָס טמפּ איז. עס קוקט ווי ויסבייַטן איז ריכטיק ווען עס קומט צו סוואַפּינג אַ און ב. אבער אויב איך איצט טיפּ ווייַטער, איך שפּרינגען צוריק צו שורה 25, און פון קורס, אויב איך טיפּ אין X און דרוק י זיי ניטאָ נאָך אַנטשיינדזשד, אַזוי מיר האָבן נישט פאַרפעסטיקט די פּראָבלעם. אבער דיאַגנאָסטיקאַללי איצט טאָמער מיט דעם גדב פּראָגראַם מיר ווע בייַ מינדסטער גאַטאַן איין שריט נעענטער צו פארשטאנד וואָס ס 'געגאנגען אומרעכט אָן בעת ​​צו אָנוואַרפן אונדזער קאָד דורך פּאַטינג אַ פּרינטף דאָ, פּרינטף דאָ, פּרינטף דאָ און דעמאָלט פליסנדיק עס ווידער און ווידער טריינג צו רעכענען אויס וואָס ס געגאנגען פאַלש. איך בין געגאנגען צו גיין פאָרויס און פאַרלאָזן זיך פון דעם בעסאַכאַקל מיט פאַרלאָזן. עס ס געגאנגען צו דעמאָלט זאָגן, "קוויט סייַ ווי סייַ?" יא. איצט איך בין צוריק אין מיין נאָרמאַל פּינטלעך, און איך בין געטאן ניצן גדב. ווי אַ באַזונדער, איר טאָן ניט דאַרפֿן צו נוצן דעם-טוי פאָן. אין פאַקט, אויב איר האָפּקען עס איר באַקומען יסענשאַלי די דנאָ האַלב פון די פאַרשטעלן. אויב איך דעמאָלט טיפּ ברעכן הויפּט און דאַן לויפן איך קען נאָך לויפן מיין פּראָגראַם, אָבער וואָס עס וועט טאָן איז מער טעקסטואַללי נאָר ווייַזן מיר דעם קראַנט שורה איין אין אַ צייַט. דער-טוי, טעקסטשאַוואַל באַניצער צובינד, נאָר ווייזט איר מער פון די פּראָגראַם אין אַמאָל, וואָס איז מיסטאָמע אַ ביסל קאַנסעפּטשואַלי גרינגער. אבער טאַקע, איך קען נאָר טאָן ווייַטער, ווייַטער, ווייַטער, און איך בין געגאנגען צו זען איין שורה אין אַ צייַט, און אויב איך טאַקע ווילן צו זען וואָס ס 'געגאנגען אויף איך קענען טיפּ רשימה און זען אַ גאַנץ בינטל פון ארומיקע שורות. עס ס אַ ווידעא וואָס מיר ווע געבעטן אַז איר וואַך פֿאַר פּראָבלעם שטעלט 3 אין וואָס נייט קאָווערס עטלעכע פון ​​די ינטראַקאַסיז פון גדב, און דאָס איז איינער פון יענע זאכן, האָנעסטלי, ווו עטלעכע ניט-נישטיק פּראָצענט פון איר וועט קיינמאָל פאַרבינדן גדב, און אַז וועט זייַן אַ שלעכט זאַך ווייַל ממש איר וועט סוף אַרויף ספּענדינג מער צייַט שפּעטער דעם זמאַן טשייסינג אַראָפּ באַגז דעמאָלט איר וואָלט אויב איר שטעלן אין אַז האַלב שעה / שעה דעם וואָך און ווייַטער לערנען צו באַקומען באַקוועם מיט גדב. פּרינטף איז דיין פרייַנד. גדב זאָל איצט זייַן דיין פרייַנד. קיין שאלות אויף גדב? און דאָ ס אַ שנעל רשימה פון עטלעכע פון ​​די מערסט שטאַרק און נוצלעך קאַמאַנדז. יאָ. >> קענען איר דרוקן אַ שטריקל? קענען איר דרוקן אַ שטריקל? לעגאַמרע. עס טוט נישט האָבן צו נאָר זייַן ינטאַדזשערז. אויב אַ בייַטעוודיק ס איז אַ שטריקל נאָר טיפּ אין דרוק ס. עס וועט ווייַזן איר וואָס אַז שטריקל בייַטעוודיק איז. [ינאָדאַבאַל-תּלמיד] עס וועט געבן איר די אַדרעס און די שטריקל זיך. עס וועט ווייַזן איר ביידע. און איינער לעצטע זאַך, נאָר ווייַל די ביסט גוט צו וויסן אויך. באַקקטראַסע און ראַם, לאָזן מיר ונטערטוקנ זיך אין דעם איין לעצטע מאָל, זעלביקער פּינטלעך פּראָגראַם מיט גדב. זאל מיר גיין פאָרויס און לויפן די טעקסטשאַוואַל באַניצער צובינד ווערסיע, ברעכן הויפּט. זאל מיר גיין פאָרויס און לויפן ווידער. דאָ איך בין. איצט לאָזן מיר גיין ווייַטער, ווייַטער, ווייַטער, ווייַטער, ווייַטער, שריט, אַרייַן. און איצט רעכן איך בין איצט אין ויסבייַטן דיליבראַטלי, אָבער איך בין ווי "פאַרשילטן, וואָס איז געווען די ווערט פון X?" איך קען נישט טאָן X ענימאָר. איך קען נישט טאָן י ווייַל זיי ניטאָ נישט אין פאַרנעם. זיי ניטאָ נישט אין קאָנטעקסט, אָבער קיין פּראָבלעם. איך קענען טיפּ באַקקטראַסע. וואָס ווייזט מיר אַלע פון ​​דעם פאַנגקשאַנז וואָס האָבן עקסאַקיוטאַד אַרויף צו דעם פונט אין צייַט. נאָטיץ אַז דער איינער אויף די דנאָ, הויפּט, שורות אַרויף מיט הויפּט זייַענדיק אויף דער דנאָ פון אונדזער בילד דאָ. דער פאַקט אַז ויסבייַטן איז אויבן עס שורות אַרויף מיט ויסבייַטן זייַענדיק אויבן עס אין זכּרון דאָ, און אויב איך ווילן צו באַקומען צוריק צו הויפּט טעמפּערעראַלי איך קענען זאָגן "ראַם." וואָס נומער? הויפּט איז ראַם # 1. איך בין געגאנגען צו גיין פאָרויס און זאָגן "ראַם 1." איצט איך בין צוריק אין הויפּט, און איך קענען דרוקן X, און איך קענען דרוקן י, אָבער איך קען נישט דרוקן אַ אָדער ב. אבער איך קענען אויב איך זאָגן, "אָוקיי, וואַרטן אַ מינוט. ווו איז די ויסבייַטן?" זאל מיר גיין פאָרויס און זאָגן "ראַם 0." איצט איך בין צוריק ווו איך ווילן צו זייַן, און ווי אַ באַזונדער, דאָרט ס 'אנדערע קאַמאַנדז אויך, ווי אויב איר ניטאָ טאַקע געטינג באָרד טייפּינג ווייַטער, ווייַטער, ווייַטער, ווייַטער, איר קענען בכלל זאָגן זאכן ווי "ווייַטער 10," און וואָס וועט שריט דורך די ווייַטער 10 שורות. איר קענען אויך שרייַבן "פאָרזעצן" ווען איר טאַקע באַקומען פאסטעכער אַרויף מיט סטעפּינג דורך אים. פאָרזעצן וועט לויפן דיין פּראָגראַם אָן יבעררייַס ביז עס היץ אנדערן ברעאַקפּאָינט, צי אין אַ שלייף אָדער נידעריקער אַראָפּ אין דיין פּראָגראַם. אין דעם פאַל מיר פארבליבן צו די סוף, און דער פּראָגראַם עגזאַטיד נאָרמאַלי. דאס איז אַ פאַנטאַזיע וועג, ערגער פּראָצעס. נאָר דיין פּראָגראַם עגזאַטיד נאָרמאַלי. מער אויף אַז אין דעם ווידעא און אין דיבאַגינג סעשאַנז צו קומען. וואָס איז אַ פּלאַץ. זאל ס נעמען אונדזער 5-מינוט ברעכן דאָ, און מיר וועט צוריקקומען מיט סטרוקץ און טעקעס. אויב איר האָט דייווד אין דעם וואָך ס פּסעט שוין איר וועט וויסן אַז מיר נוצן אין די פאַרשפּרייטונג קאָד, דער מקור קאָד וואָס מיר צושטעלן צו איר ווי אַ סטאַרטינג פונט, עטלעכע נייַ טעקניקס. אין באַזונדער, מיר באַקענענ דעם נייַ קיווערד גערופן סטרוקט, פֿאַר סטרוקטור, אַזוי אַז מיר קענען מאַכן קאַסטאַמייזד וועריאַבאַלז פון סאָרץ. מיר אויך באַקענענ דער געדאנק פון טעקע איך / אָ, טעקע אַרייַנשרייַב און רעזולטאַט, און דאָס איז אַזוי אַז מיר קענען ראַטעווען די שטאַט פון דיין סקראַמבלע ברעט צו אַ טעקע אויף דיסק אַזוי אַז דער לערנען פעלאָוז און איך קענען פֿאַרשטיין וואָס ס 'געגאנגען אויף ין פון דיין פּראָגראַם אָן בעת ​​צו מאַניואַלי שפּילן דאַזאַנז פון גאַמעס פון סקראַמבלע. מיר קענען טאָן דאָס מער אַוטאָמאַטעדלי. דעם געדאַנק פון אַ סטרוקט סאַלווז אַ פערלי קאַמפּעלינג פּראָבלעם. רעכן אַז מיר ווילן צו מאַכשער עטלעכע פּראָגראַם וואָס עפעס האלט שפּור פון אינפֿאָרמאַציע אויף סטודענטן, און סטודענטן זאל האָבן, פֿאַר בייַשפּיל, אַ שייַן, אַ נאָמען און אַ הויז אין אַ פּלאַץ ווי האַרוואַרד, אַזוי די ביסט 3 ברעקלעך פון אינפֿאָרמאַציע מיר ווילן צו האַלטן אַרום, אַזוי לאָזן מיר גיין פאָרויס און אָנהייבן שרייבן אַ ביסל פּראָגראַם דאָ, אַרייַננעמען סטדיאָ.ה. לאָזן מיר טאָן אַרייַננעמען קס50.ה. און דעמאָלט אָנהייבן מיין הויפּט פֿונקציע. איך וועט ניט אַרן מיט קיין באַפֿעלן שורה טענות, און דאָ איך ווילן צו האָבן אַ תּלמיד, אַזוי איך בין געגאנגען צו זאָגן אַ תּלמיד האט אַ נאָמען, אַזוי איך בין געגאנגען צו זאָגן "שטריקל נאָמען." דעמאָלט איך בין געגאנגען צו זאָגן אַ תּלמיד אויך האט אַ שייַן, אַזוי ינט שייַן, און אַ תּלמיד האט אַ הויז, אַזוי איך בין אויך געגאנגען צו זאָגן "שטריקל הויז". דעמאָלט איך וועט סדר די אַ ביסל מער קלינלי ווי דעם. אָוקיי, איצט איך האָבן 3 וועריאַבאַלז מיט וואָס צו פאָרשטעלן אַ תּלמיד, אַזוי "אַ תּלמיד." און איצט איך ווילן צו באַפעלקערן די וואַלועס, אַזוי לאָזן מיר גיין פאָרויס און זאָגן עפּעס ווי "שייַן = 123." נאָמען איז געגאנגען צו באַקומען דוד. זאל ס זאָגן הויז איז געגאנגען צו באַקומען מאַדער, און דעמאָלט איך בין געגאנגען צו טאָן עפּעס אַרביטרעראַלי ווי פּרינטף ("% s, וועמענס שייַן איז% ד, לעבן אין% s. און איצט, וואָס טאָן איך ווילן צו צאַפּן אין דאָ, איינער נאָך די אנדערע? נאָמען, שייַן, הויז; צוריקקומען 0. אָוקיי, סייַדן איך סקרוד אַרויף ערגעץ דאָ איך טראַכטן מיר האָבן אַ שיין גוט פּראָגראַם וואָס סטאָרז איין תּלמיד. פון קורס, דאָס איז נישט אַלע וואָס טשיקאַווע. וואָס אויב איך ווילן צו האָבן 2 סטודענטן? אַז ס 'קיין גרויס האַנדלען. איך קענען שטיצן 2 מענטשן. זאל מיר גיין פאָרויס און הויכפּונקט דעם און גיין אַראָפּ דאָ, און איך קענען זאָגן "שייַן = 456" פֿאַר עמעצער ווי ראָב וואס לעבן אין קירקלאַנד. אָוקיי, וואַרטן, אָבער איך קענען נישט רופן די די זעלבע זאַך, און עס קוקט ווי איך בין געגאנגען צו האָבן צו צייכענען דעם, אַזוי לאָזן מיר זאָגן אַז די וועט זייַן דוד ס וועריאַבאַלז, און לאָזן מיר באַקומען עטלעכע קאפיעס פון די פֿאַר ראָב. מיר וועט רופן די ראָב ס אָבער דאָס איז נישט געגאנגען צו אַרבעטן איצט ווייַל איך האָבן-וואַרטן, לאָזן ס טוישן מיר צו יד1, נאַמע1 און האָוסע1. באַגאַזלענען וועט זייַן 2, 2. איך ווע גאַט צו טוישן דעם דאָ, דאָ, דאָ, דאָ, דאָ, דאָ. וואַרטן, וואָס וועגן טאַמי? זאל ס טאָן דעם ווידער. דאָך אויב איר נאָך טראַכטן דאָס איז אַ גוט וועג פון טאן דעם, עס ס נישט, אַזוי קאָפּיע / פּאַפּ שלעכט. אבער מיר סאַלווד דעם אַ וואָך צוריק. וואָס איז געווען אונדזער לייזונג ווען מיר געוואלט צו האָבן קייפל ינסטאַנסיז פון דער זעלביקער דאַטע טיפּ? [סטודענטן] אַ מענגע. אַ מענגע, אַזוי לאָזן מיר פּרובירן צו ריין דעם אַרויף. זאל מיר מאַכן עטלעכע צימער פֿאַר זיך אין די שפּיץ, און לאָזן מיר אַנשטאָט טאָן דעם דאָ. מיר וועט רופן די מענטשן, און אַנשטאָט איך בין געגאנגען צו זאָגן "ינט ידס," און איך בין געגאנגען צו שטיצן 3 פון אונדז פֿאַר איצט. איך בין געגאנגען צו זאָגן "שטריקל נעמען," און איך וועט שטיצן 3 פון אונדז, און דעמאָלט איך בין געגאנגען צו זאָגן "שטריקל הייזער," און איך בין געגאנגען צו שטיצן 3 פון אונדז. איצט אין דאָ אַנשטאָט פון דוד געטינג זייַן אייגן היגע וועריאַבאַלז מיר קענען באַקומען באַפרייַען פון יענע. אַז פילז גוט אַז מיר רע רייניקונג דעם אַרויף. איך קענען דעריבער זאָגן דוד איז געגאנגען צו זייַן [0] און נעמען [0] און הייזער [0]. און דעמאָלט ראָב מיר קענען סימילאַרלי היט אויף דעם. זאל ס שטעלן דאָס אַראָפּ דאָ, אַזוי ער ס געגאנגען צו אַרביטרעראַלי זייַן ידס [1]. ער ס געגאנגען צו זייַן נעמען [1], און דעמאָלט לאַסטלי, הייזער [1]. נאָך אַ ביסל טידיאַס, און איצט איך האָבן צו רעכענען דעם אויס, אַזוי לאָזן 'ס זאָגן "נעמען [0], שייַן [0], הייזער [0], און לאָזן ס פּלוראַלייז דעם. ידס, ידס, ידס. און ווידער, איך בין טאן עס, אַזוי ווידער, איך בין שוין ריסאָרטינג צו קאָפּיע / פּאַפּ ווידער, אַזוי שאַנסן זענען דאָרט ס אנדערן לייזונג דאָ. איך קענען מיסטאָמע ריין דעם אַרויף ווייַטער מיט אַ שלייף אָדער עפּעס ווי אַז, אַזוי אין קורץ, עס ס אַ ביסל בעסער אָבער נאָך פילז ווי איך בין ריסאָרטינג צו קאָפּיע / פּאַפּ, אָבער אַפֿילו דאָס, איך פאָדערן, איז ניט טאַקע פאַנדאַמענטאַלי די רעכט לייזונג ווייַל וואָס אויב אַמאָל מיר באַשליסן איר וויסן וואָס? מיר טאַקע זאָל האָבן געווען סטאָרינג Email ווענדט פֿאַר דוד און ראָב און אַלעמען אַנדערש אין דעם פּראָגראַם. מיר זאָל אויך קראָם טעלעפאָן נומערן. מיר זאָל אויך קראָם נויטפאַל קאָנטאַקט נומערן. מיר האָבן אַלע די ברעקלעך פון דאַטן וואָס מיר ווילן צו קראָם, אַזוי ווי טאָן איר גיין וועגן טאן וואָס? איר דערקלערן אנדערן מענגע בייַ די שפּיץ, און דאַן איר מאַניואַלי לייגן אַ בליצפּאָסט אַדרעס [0], בליצפּאָסט אַדרעס [1] פֿאַר דוד און ראָב און אַזוי אַרויס. אבער דאָרט ס 'טאַקע נאָר אַ האַשאָרע אַנדערלייינג דעם פּלאַן אַז איך בין ניצן די כּבֿוד סיסטעם צו וויסן אַז [איך] אין יעדער פון די עטלעכע ערייז נאָר אַזוי כאַפּאַנז צו אָפּשיקן צו די זעלבע מענטש, אַזוי [0] אין ידס איז נומער 123, און איך בין געגאנגען צו יבערנעמען וואָס נעמען [0] איז דער זעלביקער מענטש 'ס נאָמען און הייזער [0] איז דער זעלביקער מענטש 'ס הויז און אַזוי אַרויס פֿאַר אַלע פון ​​די פארשידענע ערייז אַז איך מאַכן. אבער באַמערקן אַז דאָרט ס קיין פונדאַמענטאַל לינגקאַדזש צווישן יענע 3 ברעקלעך פון אינפֿאָרמאַציע, שייַן, נאָמען און הויז, אַפֿילו כאָטש די ענטיטי מיר רע טריינג צו מאָדעל אין דעם פּראָגראַם איז נישט ערייז. ערייז זענען נאָר דעם פּראַגראַמאַטיק וועג פון טאן דעם. וואָס מיר טאַקע ווילן צו מאָדעל אין אונדזער פּראָגראַם איז אַ מענטש ווי דוד, אַ מענטש ווי ראָב ין פון וואָס אָדער ענקאַפּסאַלייטינג איז אַ נאָמען און שייַן, און אַ הויז. קענען מיר עפעס אויסדריקן דעם געדאַנק פון ענקאַפּסולאַטיאָן ווערביי אַ מענטש האט אַ שייַן, אַ נאָמען, און אַ הויז און ניט Resort צו טאַקע דעם כאַק ווערביי מיר נאָר צוטרוי אַז קאַנטיקער עפּעס רעפערס צו דער זעלביקער מענטש ענטיטי אין יעדער פון די דיספּעריט ערייז? מיר קענען פאקטיש טאָן דעם. זאל מיר גיין אויבן הויפּט פֿאַר איצט, און לאָזן מיר מאַכן מיין אייגן דאַטן טיפּ פֿאַר טאַקע די ערשטער מאָל. מיר געניצט דעם טעכניק אין סקראַמבלע, אָבער דאָ איך בין געגאנגען צו גיין פאָרויס און שאַפֿן אַ דאַטן טיפּ, און איר וויסן וואָס, איך בין געגאנגען צו רופן עס תּלמיד אָדער מענטש, און איך בין געגאנגען צו נוצן טיפּעדעף פֿאַר דעפינירן אַ טיפּ. איך בין געגאנגען צו זאָגן אַז דאָס איז אַ סטרוקטור, און דאַן דעם סטרוקטור איז געגאנגען צו זייַן פון טיפּ תּלמיד, מיר וועט זאָגן, אַפֿילו כאָטש עס ס אַ ביסל דייטיד איצט פֿאַר מיר. מיר וועט זאָגן "ינט שייַן". מיר וועט זאָגן "שטריקל נאָמען." דעמאָלט מיר וועט זאָגן "שטריקל הויז," אַזוי איצט דורך די סוף פון די ביסל שורות פון קאָד איך האב פּונקט געלערנט קלאַנג אַז עס יגזיסץ אַ דאַטן טיפּ חוץ ינץ, חוץ סטרינגס, חוץ דאַבאַלז, חוץ פלאָוץ. ווי פון דעם מאָמענט אין צייַט שורה 11, עס איז איצט אַ נייַ דאַטן טיפּ גערופן סטודענטן, און איצט איך קענען דערקלערן אַ תּלמיד בייַטעוודיק ערגעץ איך וועלן, אַזוי לאָזן מיר מעגילע אַראָפּ דאָ צו מענטשן. איצט איך קענען באַקומען באַפרייַען פון דעם, און איך קענען גיין צוריק אַראָפּ צו דוד דאָ, און פֿאַר דוד איך קענען פאקטיש זאָגן אַז דוד, מיר קענען ממש נאָמען די בייַטעוודיק נאָך זיך, איז געגאנגען צו זייַן פון טיפּ תּלמיד. דאס זאל קוקן אַ ביסל טשודנע, אָבער דאָס איז נישט אַלע וואָס אַנדערש פון דיקלערינג עפּעס ווי אַ ינט אָדער אַ שטריקל אָדער אַ לאָזנ שווימען. עס פּונקט אַזוי כאַפּאַנז צו ווערן גערופן תּלמיד איצט, און אויב איך ווילן צו שטעלן עפּעס ין פון דעם סטרוקטור איך איצט האָבן צו נוצן אַ נייַ שטיק פון סינטאַקס, אָבער עס ס שיין סטרייטפאָרווערד, david.id = 123, david.name = "דוד" אין הויפּטשטאָט ד, און דאַוויד.האָוסע = "מאַדער," און איצט איך קענען באַקומען באַפרייַען פון דעם שטאָפּן דאָ. נאָטיץ מיר ווע איצט רידיזיינד אונדזער פּראָגראַם אין טאַקע אַ פיל בעסער וועג אין אַז איצט אונדזער פּראָגראַם מירראָרס די פאַקטיש וועלט. עס ס אַ פאַקטיש-וועלט געדאנק פון אַ מענטש אָדער אַ תּלמיד. דאָ מיר האָבן איצט אַ C ווערסיע פון ​​אַ מענטש אָדער מער ספּאַסיפיקלי אַ תּלמיד. ין פון וואָס מענטש זענען די באַטייַטיק טשאַראַקטעריסטיקס, שייַן, נאָמען און הויז, אַזוי ראָב יסענשאַלי ווערט די זעלבע זאַך אַראָפּ דאָ, אַזוי תּלמיד באַגאַזלענען, און איצט rob.id = 456, rob.name = "ראָב". דער פאַקט אַז די בייַטעוודיק איז גערופן ראָב איז סאָרט פון מינינגלאַס. מיר קען האָבן גערופן עס X אָדער י אָדער ז. מיר נאָר געהייסן עס ראָב צו זייַן סעמאַנטיקאַללי קאָנסיסטענט, אָבער טאַקע די נאָמען איז ין פון וואָס פעלד זיך, אַזוי איצט איך האָבן דעם. דאס אויך טוט נישט פילן ווי דער בעסטער פּלאַן אין אַז איך ווע שווער קאָדעד דוד. איך ווע שווער קאָדעד ראָב. און איך נאָך האָבן צו Resort צו עטלעכע קאָפּיע און פּאַפּ יעדער צייַט איך ווילן נייַ וועריאַבאַלז. דערצו, איך האב צו משמעות געבן יעדער פון די וועריאַבאַלז אַ נאָמען, אַפֿילו כאָטש איך 'ד פיל אלא באַשרייַבן די וועריאַבאַלז  מער דזשאַנעריקלי ווי סטודענטן. איצט מיר קענען צונויפגיסן די געדאנקען וואָס האָבן שוין ארבעטן גוט פֿאַר אונדז און אַנשטאָט זאָגן, "איר וויסן וואָס, געבן מיר אַ בייַטעוודיק גערופן סטודענטן, און לאָזן 'ס האָבן עס זייַן פון נומער 3, "אַזוי איצט איך קענען ראַפינירן דעם ווייַטער, באַקומען באַפרייַען פון די מאַניואַלי דערקלערט דוד, און איך קענען אַנשטאָט זאָגן עפּעס ווי סטודענטן [0] דאָ. איך קענען דעריבער זאָגן סטודענטן [0] דאָ, סטודענטן [0] דאָ, און אַזוי אַרויס, און איך קענען גיין אַרום און ריין וואָס אַרויף פֿאַר ראָב. איך קען אויך גיין וועגן איצט אפֿשר אַדינג אַ שלייף און ניצן געצטרינג און געטינט צו פאקטיש באַקומען די וואַלועס פון דעם באַניצער. איך קען גיין וועגן אַדינג אַ קעסיידערדיק ווייַל דאָס איז בכלל שלעכט פיר צו שווער קאָד עטלעכע אַרביטראַריש נומער ווי 3 רעכט דאָ און דעמאָלט נאָר געדענקען אַז איר זאָל שטעלן ניט מער ווי 3 סטודענטן אין עס. עס וואָלט מיסטאָמע זייַן בעסער צו נוצן # דעפינירן בייַ די שפּיץ פון מיין טעקע און פאַקטאָר אַז אויס, אַזוי טאַקע, לאָזן מיר גיין פאָרויס און דזשענעראַלייז דעם. זאל מיר עפענען זיך אַ בייַשפּיל אַז ס צווישן הייַנט ס ביישפילן אין שטייַגן, סטרוקצ1. דאס איז אַ מער גאַנץ פּראָגראַם וואָס ניצט # דעפינירן אַרויף דאָ און זאגט מיר רע געגאנגען צו האָבן 3 סטודענטן דורך פעליקייַט. דאָ איך בין דיקלערינג אַ קלאַס ווערט פון סטודענטן, אַזוי אַ קלאַסצימער פון סטודענטן, און איצט איך בין ניצן אַ שלייף נאָר צו מאַכן דעם קאָד אַ ביסל מער עלעגאַנט, באַפעלקערן די קלאַס מיט דעם באַניצער 'ס אַרייַנשרייַב, אַזוי יטעראַטע פון ​​איך = 0 אויף אַרויף צו סטודענטן, וואָס איז 3. און דעמאָלט איך פּינטלעך דער באַניצער אין דעם ווערסיע  וואָס ס דער תּלמיד ס 'שייַן, און איך באַקומען עס מיט געטינט. וואָס ס דעם תּלמיד 'ס נאָמען, און דעמאָלט איך באַקומען עס מיט געצטרינג. וואָס ס דער תּלמיד ס הויז? איך באַקומען עס מיט געצטרינג. און דעמאָלט בייַ די דנאָ דאָ איך נאָר באַשלאָסן צו טוישן ווי איך בין דרוקן די אויס און צו פאקטיש נוצן אַ שלייף, און וואס בין איך דרוקן? לויט צו די באַמערקונג איך בין דרוקן ווער עס יז אין מאַדער, און אַז ס עס אַזוי ראָב און טאַמי און אַזוי אַרויס-פאקטיש טאַמי ס אין מאַדער. טאַמי און דוד וואָלט זייַן געדרוקט אין דעם פאַל, אָבער ווי איז דאָס ארבעטן? מיר האָבן נישט געזען דעם פֿונקציע פריער, אָבער נעמען אַ טרעפן ווי צו וואָס דאָס טוט. קאַמפּערז סטרינגס. עס ס אַ ביסל ניט-קלאָר ווי דער טאָג ווי עס קאַמפּערז סטרינגס ווייַל עס טורנס אויס אויב עס קערט 0 אַז מיטל די סטרינגס זענען גלייַך. אויב עס קערט אַ -1 אַז מיטל איינער קומט אַלפאַבעטיקלי איידער די אנדערע, און אויב עס קערט +1 אַז מיטל די אנדערע וואָרט קומט אַלפאַבעטיקלי איידער די אנדערע, און איר קענען קוקן אָנליין אָדער בייַ די מענטש בלאַט צו זען פּונקט וועלכע וועג איז וואָס, אָבער אַלע דעם איז איצט טאן איז עס ס זאגן אויב די [איך]. הויז איז גלייַך צו "מאַדער" דעמאָלט גיין פאָרויס און דרוקן אויס אַזוי און אַזוי איז אין מאַדער. אבער דאָ ס 'עפּעס מיר האָבן נישט געזען פאר, און מיר וועט קומען צוריק צו דעם. איך טאָן ניט צוריקרופן אלץ בעת צו טאָן דאָס אין קיין פון מיין מגילה. פֿרייַ איז משמעות ריפערינג צו זכּרון, פריינג זכּרון, אָבער וואָס זכּרון בין איך משמעות פריינג אין דעם שלייף בייַ די דנאָ פון דעם פּראָגראַם? עס קוקט ווי איך בין פריינג אַ מענטש 'ס נאָמען און אַ מענטש 'ס הויז, אָבער וואָס איז וואָס? עס טורנס אויס אַלע די וואָכן וואָס איר ווע שוין ניצן געצטרינג מיר ווע מין פון שוין ינטראָודוסינג אַ באַג אין יעדער איינער פון דיין מגילה. געצטרינג דורך פּלאַן אַלאַקייץ זכּרון אַזוי אַז עס קענען צוריקקומען צו איר אַ שטריקל, ווי דוד, אָדער ראָב, און איר קענען דעמאָלט טאָן וועלכער איר ווילן מיט וואָס שטריקל אין דיין פּראָגראַם ווייַל מיר ווע רעזערווירט די זכּרון פֿאַר איר. די פּראָבלעם איז אַלע דעם צייַט יעדער צייַט איר רופן געצטרינג מיר, די מחברים פון געצטרינג, האָבן שוין אַסקינג די אַפּערייטינג סיסטעם צו געבן אונדז אַ ביסל פון באַראַן פֿאַר דעם שטריקל. געבן אונדז אַ ביסל פון באַראַן פֿאַר דעם ווייַטער שטריקל. געבן אונדז עטלעכע מער באַראַן פֿאַר דעם ווייַטער שטריקל. וואָס איר, די פּראָגראַמיסט, האָבן קיינמאָל שוין טאן איז געבן אונדז אַז זכּרון צוריק, אַזוי פֿאַר די עטלעכע וואָכן אַלע פון ​​די מגילה איר ווע געשריבן האָבן געהאט וואָס ס גערופן אַ זכּרון שפּרינגען ווערביי זיי האַלטן ניצן מער און מער זכּרון יעדער צייַט איר רופן געצטרינג, און אַז ס פייַן. מיר דיליבראַטלי טאָן אַז אין דער ערשטער וואָכן ווייַל עס ס נישט אַז טשיקאַווע צו האָבן צו זאָרג וועגן ווו די שטריקל איז קומענדיק פון. כל איר ווילן איז די וואָרט ראָב צו קומען צוריק ווען דער באַניצער טייפּס עס ין אבער מאָווינג פאָרויס מיר איצט האָבן צו אָנהייבן געטינג מער סאַפיסטאַקייטיד וועגן דעם. קיין צייַט מיר אַלאַקייט זכּרון מיר בעסער יווענטשאַוואַלי האַנט עס צוריק. אַנדערש אין די פאַקטיש וועלט אויף דיין מעק אָדער פּיסי איר זאל האָבן טייל מאָל יקספּיריאַנסט סימפּטאָמס ווו דיין קאָמפּיוטער איז גרינדינג צו אַ אָפּשטעלן יווענטשאַוואַלי אָדער די נאַריש ספּיננינג ברעג פּילקע איז נאָר אַקיאַפּייינג די קאָמפּיוטער 'ס גאַנץ ופמערקזאַמקייַט און איר קענען נישט טאָן זאכן. וואָס קענען זייַן דערקלערט דורך קיין נומער פון באַגז, אָבער צווישן יענע מעגלעך באַגז ביסט דאס גערופן זכּרון ליקס ווערביי עמעצער וואס געשריבן אַז שטיק פון ווייכווארג איר ניטאָ ניצן האט נישט געדענקען צו פֿרייַ זכּרון אַז ער אָדער זי געבעטן די אַפּערייטינג סיסטעם פֿאַר, נישט ניצן געצטרינג, ווייַל אַז ס אַ קס50 זאַך, אָבער ניצן ענלעך פאַנגקשאַנז וואָס פרעגן די אַפּערייטינג סיסטעם פֿאַר זכּרון. אויב איר אָדער זיי שרויף אַרויף און קיינמאָל פאקטיש צוריקקומען אַז זכּרון אַ סימפּטאָם פון וואָס קענען זייַן אַז אַ פּראָגראַם סלאָוז און סלאָוז און סלאָוז אַראָפּ סייַדן איר געדענקען צו רופן פּאָטער. מיר וועט קומען צוריק צו ווען און וואָס איר וואָלט רופן פּאָטער, אָבער לאָזן ס גיין פאָרויס נאָר פֿאַר גוט מאָס און פּרובירן פליסנדיק דעם באַזונדער פּראָגראַם. דאס איז געווען גערופן סטרוקצ1, אַרייַן. זאל מיר גיין פאָרויס און לויפן סטרוקצ1, 123, דוד מאַדער, 456, ראָב קירקלאַנד, 789, טאַמי מאַדער, און מיר זען דוד ס אין מאַדער, טאַמי ס אין מאַדער. דאס איז נאָר אַ קליין מייושעוודיקייַט טשעק אַז די פּראָגראַם איז ארבעטן. איצט, ליידער, דעם פּראָגראַם איז אַ ביסל פראַסטרייטינג אין אַז איך האט אַלע וואָס אַרבעט, איך טייפּט אין 9 פאַרשידענע סטרינגס, שלאָגן אַרייַן, האט דערציילט וואס איז געווען אין מאַדער, נאָך דאָך איך געוואוסט וואס איז געווען אין מאַדער שוין ווייַל איך טייפּט עס. עס וואָלט זייַן בייַ מינדסטער פייַן אויב דעם פּראָגראַם איז מער ווי אַ דאַטאַבאַסע און עס פאקטיש געדענקט וואָס איך האָבן טייפּט אין אַזוי איך קיינמאָל ווידער האָבן צו אַרייַנשרייַב די תּלמיד רעקאָרדס. אפֿשר עס ס ווי אַ רעגיסטראַריאַל סיסטעם. מיר קענען טאָן דעם ניצן דעם טעכניק באקאנט ווי טעקע איך / אָ, טעקע אַרייַנשרייַב און רעזולטאַט, אַ זייער דזשאַנעריק וועג פון זאגן קיין צייַט איר ווילן צו לייענען טעקעס אָדער שרייַבן טעקעס איר קענען טאָן דאָס מיט אַ געוויסע שטעלן פון פאַנגקשאַנז. זאל מיר גיין פאָרויס און עפענען דעם בייַשפּיל סטרוקצ2.ק, וואָס איז כּמעט יידעניקאַל, אָבער לאָזן ס זען וואָס עס איצט טוט. אין די שפּיץ פון דער טעקע איך דערקלערן אַ קלאַס פון סטודענטן. איך דעמאָלט באַפעלקערן די קלאַס מיט דעם באַניצער 'ס אַרייַנשרייַב, אַזוי יענע שורות פון קאָד זענען פּונקט ווי פריער. דעריבער אויב איך מעגילע אַראָפּ דאָ איך דרוק אַלעמען וואס איז אין מאַדער אַרביטרעראַלי ווי פריער, אָבער דאָס איז אַ טשיקאַווע נייַ שטריך. די שורות פון קאָד ביסט נייַ, און זיי פאָרשטעלן עפּעס דאָ, טעקע, אַלע קאַפּס, און עס האט * אין דאָ ווי גוט. זאל מיר באַוועגן דעם איבער דאָ, אַ * איבער דאָ ווי גוט. דאס פונקציאָנירן מיר האָבן נישט געזען פאר, פאָפּען, אָבער עס מיטל טעקע עפענען, אַזוי לאָזן ס אָפּשעפּן דורך די, און דאָס איז עפּעס מיר וועט קומען צוריק צו אין צוקונפֿט פּסעץ, אָבער דעם שורה דאָ יסענשאַלי עפענען אַ טעקע גערופן דאַטאַבאַסע, און עס ספּאַסיפיקלי עפענען עס אין אַזאַ אַ וועג וואָס עס קענען טאָן וואָס צו עס? [ינאָדאַבאַל-תּלמיד] רעכט, אַזוי "ד" נאָר מיטל עס ס טעלינג די אַפּערייטינג סיסטעם עפענען דעם טעקע אין אַזאַ אַ וועג אַז איך קענען שרייַבן צו עס. איך טאָן נישט וועלן צו לייענען עס. איך טאָן נישט וועלן צו נאָר קוק אין עס. איך ווילן צו טוישן עס און לייג שטאָפּן פּאַטענטשאַלי צו אים, און דער טעקע איז געגאנגען צו זייַן גערופן דאַטאַבאַסע. דאס קען זייַן גערופן עפּעס. דאס קען זייַן דאַטאַבאַסע.טקסט. דאס קען זייַן. דב. דאס קען זייַן אַ וואָרט ווי פו, אָבער איך אַרביטרעראַלי אויסדערוויילט צו נאָמען דער טעקע דאַטאַבאַסע. דאס איז אַ ביסל מייושעוודיקייַט טשעק אַז מיר וועט קומען צוריק צו אין גרויס פּרט איבער צייַט, אויב פפּ, פֿאַר טעקע טייַטל, טוט ניט גלייַך נאַל אַז מיטל אַלע איז געזונט. לאַנג דערציילונג קורץ, פאַנגקשאַנז ווי פאָפּען מאל פאַרלאָזן. אפֿשר דער טעקע טוט נישט עקזיסטירן. אפֿשר איר ניטאָ אויס פון דיסק פּלאַץ. אפֿשר איר טאָן ניט האָבן דערלויבעניש צו אַז טעקע, אַזוי אויב פאָפּען קערט נאַל עפּעס שלעכט געטראפן. קאָנווערסעלי, אויב פאָפּען טוט נישט צוריקקומען נאַל אַלע איז געזונט און איך קענען אָנהייבן שרייבן צו דעם טעקע. דאָ ס אַ נייַ קונץ. דאס איז אַ פֿאַר שלייף אַז ס יטעראַטינג איבער יעדער פון מיין סטודענטן, און דאָס קוקט אַזוי ענלעך צו וואָס מיר ווע געטאן פריער, אָבער דעם פֿונקציע איז אַ קוזינע פון ​​פּרינטף גערופן פפּרינטף פֿאַר טעקע פּרינטף, און באַמערקן עס ס אַנדערש אין בלויז 2 וועגן. איינער, עס סטאַרץ מיט F אַנשטאָט פון פּ, אָבער דעמאָלט זייַן ערשטער אַרגומענט איז משמעות וואָס? [סטודענטן] טעקע. >> עס ס אַ טעקע. דאס זאַך גערופן פפּ, וואָס מיר וועט יווענטשאַוואַלי רייצנ באַזונדער וואָס אַ טעקע טייַטל איז, אָבער פֿאַר איצט פפּ פשוט רעפּראַזענץ דער טעקע אַז איך האָבן געעפנט, אַזוי פפּרינטף דאָ איז געזאגט דרוקן דעם באַניצער 'ס שייַן צו דער טעקע, נישט צו די פאַרשטעלן. דרוק דעם באַניצער 'ס נאָמען צו דער טעקע, נישט צו די פאַרשטעלן, די הויז צו דער טעקע, נישט צו די פאַרשטעלן, און דעמאָלט אַראָפּ דאָ, דאָך, נאָענט די טעקע, און דעמאָלט אַראָפּ דאָ פֿרייַ דעם זכּרון. דער בלויז חילוק צווישן דעם ווערסיע 2 און ווערסיע 1 איז די הקדמה פון פאָפּען און דעם טעקע מיט * און דעם געדאנק פון פפּרינטף, אַזוי לאָזן ס זען וואָס דער סוף רעזולטאַט איז. זאל מיר גיין אין מיין וואָקזאַל פֿענצטער. זאל מיר לויפן סטרוקצ2, אַרייַן. קוקט ווי אַלע איז געזונט. זאל ס ריראַן סטרוקצ2. 123, דוד מאַדער, 456, ראָב קירקלאַנד, 789, טאַמי מאַדער, אַרייַן. קוקט ווי עס ביכייווד די זעלבע, אָבער אויב איך איצט טאָן לס מעלדונג וואָס טעקע איז אין דאָ צווישן אַלע מיין קאָד, דאַטאַבאַסע, אַזוי לאָזן ס עפענען אַז, געדיט פון דאַטאַבאַסע, און קוק אין וואָס. עס ס נישט די סעקסיעסט פון טעקע פֿאָרמאַטירונגען. עס טאַקע איז איין שטיק פון דאַטן שורה פּער שורה פּער שורה, אָבער יענע פון ​​איר וואס נוצן עקססעל אָדער קסוו טעקעס, קאָמע אפגעשיידט וואַלועס, איך קען זיכער האָבן געניצט פפּרינטף צו אַנשטאָט אפֿשר טאָן עפּעס ווי דעם אַזוי אַז איך קען פאקטיש שאַפֿן דעם עקוויוואַלענט פון אַ עקססעל טעקע דורך סעפּערייטינג זאכן מיט קאָמעס, ניט נאָר נייַ שורות. אין דעם פאַל אויב איך האט אַנשטאָט געניצט קאָמעס אַנשטאָט פון נייַ שורות איך קען ממש עפענען דעם דאַטאַבאַסע טעקע אין עקססעל אויב איך אַנשטאָט געמאכט עס קוק ווי דעם. אין קורץ, איצט אַז מיר האָבן די מאַכט צו שרייַבן צו טעקעס מיר קענען איצט אָנהייבן פּערסיסטינג דאַטן, בעכעסקעם עס אַרום אויף דיסק אַזוי אַז מיר קענען האַלטן אינפֿאָרמאַציע אַרום ווידער און ווידער. נאָטיץ אַ פּאָר פון אנדערע זאכן וואָס זענען איצט אַ ביסל מער באַקאַנט. אין דער שפּיץ פון דעם C טעקע מיר האָבן אַ טיפּעדעף ווייַל מיר געוואלט צו שאַפֿן אַ דאַטן טיפּ אַז רעפּראַזענץ אַ וואָרט, אַזוי דעם טיפּ איז גערופן וואָרט, און ין פון דעם סטרוקטור עס ס אַ ביסל פאַנסיער איצט. וואָס איז אַ וואָרט געמאכט אַרויף פון משמעות אַ מענגע? וואָס איז אַ וואָרט פּונקט ינטויטיוולי? עס ס אַ מענגע פון ​​אותיות. עס ס אַ סיקוואַנס פון אותיות צוריק צו צוריק צו צוריק. אותיות אין אַלע קאַפּס כאַפּאַנז צו זייַן מיר אַרביטרעראַלי זאָגן די מאַקסימום לענג פון קיין וואָרט אין דעם ווערטערבוך וואָס מיר רע ניצן פֿאַר סקראַמבלע. פארוואס טאָן איך האָבן אַ +1? די נאַל כאַראַקטער. צוריקרופן ווען מיר האט די באַנאַנאַגראַמס בייַשפּיל מיר דארף אַ ספּעציעל ווערט אין די סוף פון די וואָרט אין סדר צו האַלטן שפּור פון ווו ווערטער פאקטיש געענדיקט, און ווי די פּראָבלעם שטעלן באַשרייַבונג זאגט דאָ מיר רע אַסאָוסיייטינג מיט אַ געגעבן וואָרט אַ בוליאַן ווערט, אַ פאָן, אַזוי צו רעדן, אמת אָדער פאַלש. האָט איר געפונען דעם וואָרט שוין, ווייַל מיר פאַרשטיין מיר טאַקע דאַרפֿן אַ וועג פון רימעמבערינג ניט בלויז וואָס אַ וואָרט איז אין סקראַמבלע אָבער צי אָדער ניט איר, דער מענטש, האָבן געפונען עס אַזוי אַז אויב איר טאָן געפֿינען די וואָרט "די" איר קענען ניט נאָר טיפּ די, אַרייַן, די, אַרייַן, די, אַרייַן און באַקומען 3 פונקטן, 3 פונקטן, 3 פונקטן, 3 פונקטן. מיר ווילן צו זייַן ביכולת צו בלאַקליסט וואָס וואָרט דורך באַשטעטיקן אַ באָאָל צו אמת אויב איר ווע שוין געפונען עס, און אַזוי אַז ס וואָס מיר ענקאַפּסאַלייטיד עס אין דעם סטרוקטור. איצט, אַראָפּ דאָ אין סקראַמבלע דאָרט ס דעם אנדערע סטרוקט גערופן ווערטערבוך. ניטאָ דאָ איז די וואָרט טיפּעדעף ווייַל אין דעם פאַל מיר דארף צו ענקאַפּסאַלייט דער געדאַנק פון אַ ווערטערבוך, און אַ ווערטערבוך כּולל אַ גאַנץ בינטל פון ווערטער, ווי ימפּלייד דורך דעם מענגע, און ווי פילע פון ​​יענע ווערטער זענען דאָרט? נו, וועלכער דעם בייַטעוודיק גערופן גרייס זאגט. אבער מיר נאָר דאַרפֿן איין ווערטערבוך. מיר טאָן ניט דאַרפֿן אַ דאַטן טיפּ גערופן ווערטערבוך. מיר נאָר דאַרפֿן איינער פון זיי, אַזוי עס טורנס אויס אין C אַז אויב איר טאָן ניט זאָגן טיפּעדעף, איר נאָר זאָגן סטרוקט, דעמאָלט ין די געגרייַזלט ברייסאַז איר שטעלן דיין וועריאַבאַלז, דעמאָלט איר שטעלן די נאָמען. דאס איז דיקלערינג איינער בייַטעוודיק גערופן ווערטערבוך וואָס קוקט ווי דעם. דורך קאַנטראַסט, די שורות זענען שאפן אַ ריוזאַבאַל דאַטן סטרוקטור גערופן וואָרט אַז איר קענען מאַכן קייפל קאפיעס פון, פּונקט ווי מיר באשאפן קייפל קאפיעס פון סטודענטן. וואָס טוט דעם לעסאָף לאָזן אונדז צו טאָן? זאל מיר גיין צוריק אין, לאָזן ס זאָגן, אַ סימפּלער בייַשפּיל פון סימפּלער מאל, און לאָזן מיר עפענען זיך, לאָזן ס זאָגן, קאָמפּאַרע1.ק. די פּראָבלעם דאָ אין האַנט איז צו פאקטיש שאָלעכץ צוריק די שיכטע פון ​​אַ שטריקל און אָנהייב גענומען אַוועק די טריינינג ווהעעלס ווייַל עס טורנס אויס אַז אַ שטריקל אַלע דעם צייַט איז ווי מיר צוגעזאגט אין וואָך 1 טאַקע נאָר אַ ניקקנאַמע, אַ סינאָנים פון די קס50 ביבליאָטעק פֿאַר עפּעס וואָס קוקט אַ ביסל מער קריפּטיק, טשאַר *, און מיר 'ווע געזען דעם שטערן פריער. מיר געזען עס אין דעם קאָנטעקסט פון טעקעס. זאל ס איצט זען וואָס מיר ווע שוין כיידינג דעם פּרט פֿאַר עטלעכע צייַט איצט. דאָ איז אַ טעקע גערופן קאָמפּאַרע1.ק, און עס משמעות פרעגט דער באַניצער פֿאַר 2 סטרינגס, ס און ג, און דעמאָלט עס פרוווט צו פאַרגלייַכן יענע סטרינגס פֿאַר יקוואַלאַטי אין שורה 26, און אויב זיי ניטאָ גלייַך עס זאגט, "איר טייפּט די זעלבע זאַך," און אויב זיי ניטאָ ניט גלייַך עס זאגט, "איר טייפּט פאַרשידענע זאכן." זאל מיר גיין פאָרויס און לויפן דעם פּראָגראַם. זאל מיר גיין אין מיין מקור וועגווייַזער, מאַכן אַ קאָמפּאַרע1. עס צונויפגעשטעלט אָוקיי. זאל מיר לויפן קאָמפּאַרע1. איך וועט פארגרעסער אין, אַרייַן. זאָגן עפּעס. העלא. איך וועט זאָגן עפּעס ווידער. העלא. איך באשטימט האט נישט טיפּ פאַרשידענע זאכן. זאל מיר פּרובירן דאָס ווידער. ביי ביי. באשטימט ניט אַנדערש, אַזוי וואָס ס געגאנגען אויף דאָ? נו, וואָס איז טאַקע זייַענדיק קאַמפּערד אין שורה 26? [ינאָדאַבאַל-תּלמיד] יא, אַזוי עס טורנס אויס אַז אַ שטריקל, דאַטן טיפּ, איז מין פון אַ ווייַס ליגן. א שטריקל איז אַ טשאַר *, אָבער וואָס איז אַ טשאַר *? א טשאַר *, ווי זיי זאָגן, איז אַ טייַטל, און אַ טייַטל איז יפעקטיוולי אַן אַדרעס, אַ סאַכאַקל אָרט אין זכּרון, און אויב איר פּאַסירן צו האָבן טייפּט אין אַ וואָרט ווי העלא, צוריקרופן פון פאַרגאַנגענהייַט דיסקוסיעס פון סטרינגס דאָס איז ווי די וואָרט העלא. געדענקען אַז אַ וואָרט ווי העלא קענען זייַן רעפּריזענטיד ווי אַ מענגע פון ​​אותיות ווי דעם און דעריבער מיט אַ ספּעציעל כאַראַקטער אין די סוף גערופן די נאַל כאַראַקטער, ווי די \ דינאָוץ. וואָס איז פאקטיש אַ שטריקל? נאָטיץ אַז דאָס איז קייפל טשאַנגקס פון זכּרון, און אין פאַקט, דער סוף פון עס איז נאָר באַוווסט אַמאָל איר קוק דורך די גאנצע שטריקל קוקן פֿאַר די ספּעציעל נאַל כאַראַקטער. אבער אויב דאָס איז אַ פּייַדע פון ​​זכּרון פון מיין קאָמפּיוטער ס זכּרון, לאָזן ס אַרביטרעראַלי זאָגן אַז דאָס שטריקל נאָר גאַט מאַזלדיק, און עס גאַט געשטעלט בייַ די זייער אָנהייב פון מיין קאָמפּיוטער ס באַראַן. דאס איז ביטע 0, 1, 2, 3, 4, 5, 6 ... ווען איך זאָגן עפּעס ווי געצטרינג און איך טאָן שטריקל s = געצטרינג וואָס ס 'טאַקע זייַענדיק אומגעקערט? פֿאַר די פאַרגאַנגענהייַט עטלעכע וואָכן, וואָס ס 'טאַקע זייַענדיק סטאָרד אין s איז ניט דעם שטריקל פּער סיי, אָבער אין דעם פאַל וואָס ס זייַענדיק סטאָרד איז די נומער 0 ווייַל וואָס געצטרינג פאקטיש טוט איז עס טוט נישט פיזיקלי צוריקקומען אַ שטריקל. וואָס טוט ניט אַפֿילו טאַקע מאַכן קאַנסעפּטשואַל זינען. וואָס עס טוט צוריקקומען איז אַ נומער. אַז נומער איז די אַדרעס פון העלא אין זכּרון, און שטריקל s דעריבער, אויב מיר שאָלעכץ צוריק דעם שיכטע, שטריקל טוט ניט טאַקע עקזיסטירן. עס ס נאָר אַ סימפּלאַפיקיישאַן אין די קס50 ביבליאָטעק. דאס טאַקע איז עפּעס גערופן טשאַר *. טשאַר מאכט זינען ווייַל וואָס ס אַ וואָרט, ווי העלא? נו, עס ס אַ סעריע פון ​​טשאַרס, אַ סעריע פון ​​אותיות. טשאַר * מיטל די אַדרעס פון אַ כאַראַקטער, אַזוי וואָס טוט עס מיינען צו צוריקקומען אַ שטריקל? א פייַן, פּשוט וועג פון אומגעקערט אַ שטריקל איז אלא ווי פּרובירן צו רעכענען אויס ווי איך צוריקקומען צו 5 אָדער 6 פאַרשידענע ביטעס לאָזן מיר צוריקקומען צו דעם אַדרעס פון וואָס ביטע? דער ערשטער איינער. אין אנדערע ווערטער, לאָזן מיר געבן איר די אַדרעס פון אַ כאַראַקטער אין זכּרון. אַז ס וואָס טשאַר * רעפּראַזענץ, די אַדרעס פון איין איין כאַראַקטער אין זכּרון. רופן אַז בייַטעוודיק ס. סטאָר אין s אַז באַזונדער אַדרעס, וואָס איך אַרביטרעראַלי געזאגט איז 0, נאָר צו האַלטן דאס פּשוט, אָבער אין פאַקט עס ס 'בכלל אַ ביגער נומער. וואַרטן אַ מינוט. אויב איר ניטאָ בלויז געבן מיר דעם אַדרעס פון דער ערשטער כאַראַקטער, ווי טאָן איך וויסן וואָס דער אַדרעס איז פון די רגע כאַראַקטער, די דריט, דער פערט און די פינפט? [ינאָדאַבאַל-תּלמיד] איר נאָר וויסן ווו די סוף פון די שטריקל איז דורך וועג פון דעם האַנטיק קונץ, אַזוי ווען איר נוצן עפּעס ווי פּרינטף, וואָס פּרינטף ממש נעמט ווי זייַן אַרגומענט, צוריקרופן אַז מיר נוצן דעם% s פּלאַסעהאָלדער, און דאַן איר פאָרן אין די בייַטעוודיק אַז ס סטאָרינג אַ שטריקל. וואָס איר ניטאָ טאַקע גייט פארביי איז דער אַדרעס פון דער ערשטער כאַראַקטער פון וואָס שטריקל. פּרינטף דעריבער ניצט אַ פֿאַר שלייף אָדער אַ בשעת שלייף אויף באקומען אַז אַדרעס, פֿאַר בייַשפּיל, 0, אַזוי לאָזן מיר טאָן דעם איצט, פּרינטף ("% s \ n", s); ווען איך רופן פּרינטף ("% s \ n", s); וואָס איך בין טאַקע פּראַוויידינג פּרינטף מיט איז דער אַדרעס פון דער ערשטער כאַראַקטער אין ס, וואָס אין דעם אַרביטראַריש פאַל איז ה ווי טוט פּרינטף וויסן וואָס פּונקט צו אַרויסווייַזן אויף די פאַרשטעלן? דער מענטש וואס ימפּלאַמענטאַד פּרינטף ימפּלאַמענטאַד אַ בשעת שלייף אָדער אַ פֿאַר שלייף וואָס זאגט טוט דעם כאַראַקטער גלייַך די ספּעציעל נאַל כאַראַקטער? אויב נישט, דרוק עס. ווי וועגן דעם איין? אויב נישט דרוקן עס, דרוק עס, דרוק עס, דרוק עס. אָה, דאָס איינער איז ספּעציעל. האַלטן דרוקן און צוריקקומען צו דעם באַניצער. און אַז ס 'ממש אַלע אַז ס' שוין געשעעניש ונטער דער קאַפּטער, און אַז ס אַ פּלאַץ צו קיצער אין דער ערשטער טאָג פון אַ קלאַס, אָבער פֿאַר איצט עס ס טאַקע דעם בנין בלאָק פון פארשטאנד אַלץ אַז ס 'שוין געגאנגען אויף ין פון אונדזער קאָמפּיוטער ס זכּרון, און יווענטשאַוואַלי מיר וועט רייצנ דעם באַזונדער מיט אַ ביסל הילף פון איינער פון אונדזער פריינט אין סטאַנפאָרד. פּראָפעסאָר ניק פּאַרלאַנטע אין סטאַנפאָרד האט געטאן דעם ווונדערלעך ווידעא סיקוואַנס פון אַלע סאָרץ פון פאַרשידענע שפּראַכן וואָס באַקענענ דאָס ביסל קלייַמאַטיאָן כאַראַקטער בינקי. דער קול איר ניטאָ וועגן צו הערן אין נאָר אַ ביסל רגע סניק פאָרויסיקע ווייַזונג איז אַז פון אַ סטאַנפאָרד פּראָפעסאָר, און איר ניטאָ געטינג בלויז 5 אָדער 6 סעקונדעס פון דעם רעכט איצט, אָבער דאָס איז דער טאָן אויף וואָס מיר וועט פאַרענדיקן הייַנט און נעמען אויף מיטוואך. איך געבן איר פּוינטער ון מיט בינקי, די פאָרויסיקע ווייַזונג. [♪ מוזיק ♪] [פּראַפעסער פּאַרלאַנטע] היי, בינקי. וועקן זיך. עס ס צייַט פֿאַר טייַטל שפּאַס. [בינקי] וואָס ס וואָס? לערנען וועגן פּוינטערז? אָה, גודי! מיר וועלן זען איר אויף מיטוואך. [CS50.TV]