[מוזיק פּלייינג] דוד י מאַלאַן: אַלע רעכט. דאס איז קס50 און דעם איז די אָנהייב פון וואָך 2. און איר וועט צוריקרופן אַז איבער די פאַרגאַנגענהייַט פּאָר פון וואָכן, מיר ווע שוין ינטראָודוסינג קאָמפּיוטער וויסנשאַפֿט און, אין דרייען, פּראָגראַממינג. און מיר אנגעהויבן די געשיכטע דורך וועג פון קראַצן, אַז גראַפיקאַל שפּראַך פון MIT ס מידיאַ לאַב. און דעריבער רובֿ לעצטנס, לעצטע וואָך, האט מיר פאָרשטעלן אַ היגהער-- אַ נידעריקער-מדרגה שפּראַך באקאנט ווי C, עפּעס אַז ס ריין טעקסטשאַוואַל. און, טאַקע, לעצטע מאָל מיר יקספּלאָרד ין אַז קאָנטעקסט אַ נומער פון קאַנסעפּס. דאס, צוריקרופן, איז געווען די זייער ערשטער פּראָגראַם מיר געקוקט בייַ. און דעם פּראָגראַם, גאַנץ נאָר, פּרינץ אויס, "העלא, וועלט." אבער עס ס אַזוי פיל סימינג מאַגיש געגאנגען אויף. עס ס דעם #ינקלודע מיט די ווינקל בראַקאַץ. עס ס ינט. עס ס (פּאָסל). עס ס קלאַמערן, געגרייַזלט ברייסאַז, האַלב-קאָלאָנס, און אַזוי פיל מער. און אַזוי, צוריקרופן אַז מיר באַקענענ קראַצן אַזוי אַז מיר קען, יידילי, זען פאַרגאַנגענהייַט אַז סינטאַקס, די שטאָפּן אַז ס טאַקע נישט אַלע אַז ינטעללעקטואַללי טשיקאַווע אָבער פרי אויף איז, לעגאַמרע, אַ ביסל טריקי צו ייַנוויקלען דיין מיינונג אַרום. און, טאַקע, איינער פון די מערסט פּראָסט דאס פרי אויף אין אַ פּראָגראַממינג קלאַס, ספּעציעל פֿאַר יענע ווייניקער באַקוועם, איז צו באַקומען פרוסטראַטעד דורך און טריפּט אַרויף דורך זיכער סינטאַקטיק ערראָרס, ניט צו דערמאָנען לאַדזשיקאַל ערראָרס. און אַזוי צווישן אונדזער צילן הייַנט, אַקטשאַוואַלי, וועט זייַן צו יקוויפּ איר מיט עטלעכע פּראָבלעם-סאַלווינג טעקניקס פֿאַר ווי צו בעסער סאָלווע פּראָבלעמס זיך אין די פאָרעם פון דיבאַגינג. און איר וועט צוריקרופן, אויך, אַז דער סוויווע אַז מיר באַקענענ לעצטע מאָל איז געווען גערופֿן קס50 ייד. דאס איז וועב-באזירט ווייכווארג אַז אַלאַוז איר צו פּראָגראַם אין די וואָלקן, אַזוי צו רעדן, בשעת בעכעסקעם אַלע פון ​​דיין טעקעס צוזאַמען, ווי מיר ווידער וועט הייַנט. און צוריקרופן אַז מיר רעוויסיטעד די סוגיות דאָ, צווישן זיי פֿעיִקייטן, און לופּס, און וועריאַבאַלז, און באָאָלעאַן אויסדרוקן, און באדינגונגען. און אַקשלי אַ ביסל מער אַז מיר איבערגעזעצט פֿון דער וועלט פון קראַצן צו דער וועלט פון סי אבער די פונדאַמענטאַל בנין בלאַקס, אַזוי צו רעדן, זענען טאַקע נאָך דער זעלביקער לעצט וואָך. אין פאַקט, מיר טאַקע נאָר האט אַ פאַרשידענע רעטעניש שטיק, אויב איר וועט. אָנשטאָט אַז לילאַ ראַטעווען בלאָק, מיר אַנשטאָט האט פּרינטף, וואָס איז דעם פֿונקציע אין C אַז אַלאַוז איר צו דרוקן עפּעס און פֿאָרמאַט עס אויף דער עקראַן. מיר באַקענענ דער קס50 ביבליאָטעק, ווו איר האָבן איצט בייַ דיין באַזייַטיקונג געט_טשאַר, און געט_ינט, און געט_סטרינג, און אַ ביסל אנדערע פֿעיִקייטן ווי געזונט, דורך וואָס איר קענען באַקומען ינפּוט פֿון דעם באַניצער 'ס אייגן קלאַוויאַטור. און מיר אויך גענומען אַ קוק בייַ זאכן ווי טהעסע- באָאָל, און טשאַר, און טאָפּל, לאָזנ שווימען, ינט, לאָנג_לאָנג שטריקל. און דאָרט ס אַפֿילו אנדערע דאַטן טייפּס אין סי אין אנדערע ווערטער, ווען איר דערקלערן אַ בייַטעוודיק צו קראָם עטלעכע ווערט, אָדער ווען איר ינסטרומענט אַ פֿונקציע וואָס קערט עטלעכע ווערט, איר קענען ספּעציפיצירן וואָס טיפּ פון ווערט אַז איז. איז עס אַ שטריקל, ווי אַ סיקוואַנס פון אותיות? איז עס אַ נומער, ווי אַ ינטאַדזשער? איז עס אַ Floating פונט ווערט, אָדער די ווי? אַזוי אין C, ניט ענלעך קראַצן, מיר אַקטשאַוואַלי אנגעהויבן צו ספּעציפיצירן וואָס מין פון דאַטן מיר זענען אומגעקערט אָדער ניצן. אבער, פון קורס, מיר אויך געלאָפֿן זיך עטלעכע פונדאַמענטאַל לימאַץ פון קאַמפּיוטינג. און אין באַזונדער, דעם שפּראַך C, צוריקרופן אַז מיר גענומען אַ קוק בייַ ינטעגער לויפן, די פאַקט אַז אויב איר נאָר האָבן אַ ענדלעך סומע פון ​​זכּרון אָדער, ספּעסיפיקאַללי, אַ ענדלעך נומער פון ביטן, איר קענען נאָר ציילן אַזוי הויך. און אַזוי מיר געקוקט אין דעם בייַשפּיל דאָ ווערביי אַ טאָמבאַנק אין אַן אַעראָפּלאַן,, אַקטואַללי, אויב פליסנדיק לאַנג גענוג וואָלט לויפן און רעזולטאַט אין אַ ווייכווארג אַ פאַקטיש גשמיות פּאָטענציעל טעות. מיר אויך געקוקט אין Floating פונט ימפּרעסיסיאָן, די פאַקט אַז מיט בלויז אַ ענדלעך נומער פון ביטן, צי עס ס 32 אָדער 64, איר קענען נאָר ספּעציפיצירן אַזוי פילע נומערן נאָך אַ דעצימאַל פונט, נאָך וואָס איר אָנהייבן צו באַקומען ימפּרעסיסע. אַזוי פֿאַר בייַשפּיל, איינער-דריט אין די וועלט דאָ, אין אונדזער מענטש וועלט, מיר וויסן איז נאָר אַ Infinite נומער פון 3S נאָך די דעצימאַל פונט. אבער אַ קאָמפּיוטער קענען נישט דאַווקע פאָרשטעלן אַ Infinite נומער פון נומערן אויב איר נאָר לאָזן עס עטלעכע ענדלעך סומע פון ​​אינפֿאָרמאַציע. אזוי ניט נאָר האט מיר יקוויפּ איר מיט גרעסער מאַכט אין טערמינען פון ווי איר זאל אויסדריקן זיך אין אַ קלאַוויאַטור אין טערמינען פון פּראָגראַממינג, מיר אויך באגרענעצט וואָס איר קענען אַקטשאַוואַלי טאָן. און טאַקע, באַגז און מיסטייקס קענען שטיי פון די מינים פון ישוז. און טאַקע, צווישן די טעמעס הייַנט זענען געגאנגען צו זיין סוגיות ווי דיבאַגינג און אַקשלי קוקן ונטער דער קאַפּטער אין ווי זאכן זענען באַקענענ לעצטע וואָך זענען אַקטשאַוואַלי ימפּלאַמענאַד אַזוי אַז איר בעסער פֿאַרשטיין ביידע די קייפּאַבילאַטיז פון און די לימיטיישאַנז פון אַ שפּראַך ווי סי און אין פאַקט, מיר וועט שאָלעכץ צוריק די Layers פון די סימפּלאַסט פון דאַטן סטרוקטור, עפּעס גערופֿן אַ מענגע, וואָס קראַצן כאַפּאַנז צו רופן אַ "רשימה." עס ס אַ קליין ביסל אַנדערש אין אַז קאָנטעקסט. און דעמאָלט מיר וועט אויך באַקענען איינער פון די ערשטער פון אונדזער פעלד-ספּעציפיש פּראָבלעמס אין קס50, די וועלט פון קריפּטאָגראַפי, די קונסט פון סקראַמבאַלינג אָדער אין סיפערינג אינפֿאָרמאַציע אַזוי אַז איר קענען שיקן סוד אַרטיקלען און דעקאָדע סוד אַרטיקלען צווישן צוויי מענטשן, א און בי אַזוי איידער מיר יבערגאַנג צו אַז נייע וועלט, זאל ס פּרובירן צו יקוויפּ איר מיט עטלעכע טעקניקס מיט וואָס איר קענען עלימינירן אָדער רעדוצירן לפּחות עטלעכע פון די פרוסטראַטיאָנס אַז איר האָבן מיסטאָמע געפּלאָנטערט איבער די פאַרגאַנגענהייַט וואָך אַליין. אין פאַקט, פאָרויס פון איר זענען סוטש-- עטלעכע פון דיין ערשטער פּראָבלעמס אין סי און שאַנסן זענען, אויב איר ניטאָ ווי מיר, די ערשטער מאָל איר פּרובירן צו דרוקן אויס אַ פּראָגראַם, אַפֿילו אויב איר טראַכטן לאַדזשיקלי די פּראָגראַם איז שיין פּשוט, איר זאל זייער געזונט שלאָגן אַ וואַנט, און די קאַמפּיילער איז נישט געגאנגען צו קאָואַפּערייט. מאַכן אָדער קלאַנג איז ניט געגאנגען צו אַקטשאַוואַלי טאָן דיין בידדינג. און וואָס זאל אַז זייַן? נו, לאָזן ס נעמען אַ קוק בייַ, טאָמער, אַ פּשוט פּראָגראַם. איך בין געגאנגען צו גיין פאָרויס און ראַטעווען דעם אין אַ טעקע דיליבראַטלי גערופֿן בוגגי0.ק, ווייַל איך וויסן עס צו זייַן פלאַוועד אין שטייַגן. אבער איך זאל נישט פאַרשטיין אַז אויב דעם איז דער ערשטער אָדער רגע אָדער דריט פּראָגראַם אַז איך בין טאקע מאכן זיך. אַזוי איך בין געגאנגען צו גיין פאָרויס און טיפּ אויס, ינט הויפּט (פּאָסל). און דעמאָלט ין פון מיין געגרייַזלט ברייסאַז, אַ זייער באַקאַנט ( "העלא, וואָרלד-- באַקקסלאַש, ען ") - און אַ האַלב-צווייפּינטל. איך ווע ווערן דער טעקע. איצט איך בין געגאנגען צו גיין אַראָפּ צו מיין וואָקזאַל פֿענצטער און טיפּ מאַכן בוגגי0, ווייַל, ווידער, די נאָמען פון דער טעקע הייַנט איז בוגגי0.ק. אַזוי איך טיפּ מאַכן בוגגי0, קומען. און, טאַקע, גאַש, צוריקרופן פון לעצטע מאָל אַז קיין טעות אַרטיקלען איז אַ גוט זאַך. אַזוי קיין רעזולטאַט איז אַ גוט זאַך. אבער דאָ איך האָבן קלאר עטלעכע נומער פון מיסטייקס. אַזוי דער ערשטער שורה פון רעזולטאַט נאָך טייפּינג מאַכן בוגגי0, צוריקרופן, איז קלאַנג ס פאַירלי ווערבאָסע רעזולטאַט. ונטער דער קאַפּטער, קס50 ייד איז קאָנפיגורעד צו נוצן אַ גאַנץ בינטל פון אָפּציעס מיט דעם קאַמפּיילער אַזוי אַז איר טאָן ניט האָבן צו טראַכטן וועגן זיי. און אַז ס אַלע אַז ערשטער שורה מיטל אַז סטאַרץ מיט קלאַנג. אבער נאָך אַז, די פּראָבלעמס אָנהייבן צו מאַכן זייער אויסזען. בוגגי0.ק אויף שורה 3, כאַראַקטער 5, עס איז אַ גרויס, רויט טעות. וואס איז דאס? ימפּליסאַטלי דיקלערינג ביבליאָטעק פֿונקציע פּרינטף מיט טיפּ ינט (קאָנסט טשאַר *, ...) [-ווערראָר]. איך מיינען, עס זייער געשווינד געץ זייער אַרקיין. און אוודאי, אין ערשטער בליק, מיר וואָלט ניט דערוואַרטן איר צו פֿאַרשטיין די ינטייערטי פון אַז אָנזאָג. און אַזוי איינער פון די לעקציעס פֿאַר הייַנט איז געגאנגען צו זייַן צו פּרובירן צו באַמערקן פּאַטערנז, אָדער ענלעך זאכן, צו ערראָרס איר זאל האָבן געפּלאָנטערט אין דער פאַרגאַנגענהייַט. אַזוי לאָזן ס רייצנ זיך באַזונדער בלויז די ווערטער אַז קוקן באַקאַנט. די גרויס, רויט טעות איז קלאר סימבאָליש פון עפּעס ווייל אומרעכט. ימפּליסאַטלי דיקלערינג ביבליאָטעק פונקציאָנירן פּרינטף. אַזוי אַפֿילו אויב איך טאָן ניט גאַנץ פֿאַרשטיין וואָס ימפּליסאַטלי דיקלערינג ביבליאָטעק פֿונקציע מיטל, דער פּראָבלעם שורלי דערציילט צו פּרינטף יז. און דער מקור פון וואָס אַרויסגעבן האט צו טאָן מיט דיקלערינג עס. דיקלערינג אַ פֿונקציע איז מענשאַנינג עס פֿאַר די ערשטער מאָל. און מיר געניצט די טערמינאָלאָגיע לעצט וואָך פון דיקלערינג אַ פֿונקציע 'ס פּראָוטאַטייפּ, אָדער מיט איין שורה אין די שפּיץ פון דיין אייגן טעקע אָדער אין אַ אַזוי-גערופֿן כעדער טעקע. און אין וואָס טעקע האט מיר זאָגן לעצטע וואָך אַז פּרינטף איז ציטירן, ונקוואָטע, דערקלערט? אין וואָס טעקע איז זייַן פּראָוטאַטייפּ? אזוי אויב איר צוריקרופן, די זייער ערשטער זאַך איך טייפּט, כּמעט יעדער פּראָגראַם לעצט טימע-- און אַקסאַדענאַלי אָקאָרשט סטאַרטעד טייפּינג מיסעלפ-- איז געווען דעם איין הערע-- האַש-- #ינקלודע <סטיאָ-- פֿאַר ינפּוט / אָוטפּוט-- פּונקט ה און טאַקע, אויב איך איצט ראַטעווען דעם טעקע, איך בין געגאנגען צו גיין פאָרויס און קלאָר מיין פאַרשטעלן, וואָס איר קענען טאָן דורך טייפּינג קלאָר, אָדער איר קענען האַלטן קאָנטראָל ל, נאָר צו קלאָר דיין וואָקזאַל פֿענצטער נאָר צו עלימינירן עטלעכע קלאַטער. איך בין געגאנגען צו גיין פאָרויס און שייַעך-טיפּ מאַכן בוגגי0, קומען. און וווואַלאַ, איך נאָך זען אַז לאַנג באַפֿעל פֿון קלאַנג, אָבער דאָרט ס קיין טעות אָנזאָג דאָס מאָל. און טאַקע, אויב איך טאָן ./בוגגי0, פּונקט ווי לעצטע מאָל, ווו פּונקט מיטל דעם דירעקטארי סלאַש נאָר מיטל, דאָ קומט דער נאָמען פון דעם פּראָגראַם און אַז נאָמען פון דעם פּראָגראַם איז בוגגי0, קומען, "העלא, וועלט." איצט, ווי זאל איר האָבן גלינד דעם לייזונג אָן דאַווקע רעקאַגנייזינג ווי פילע ווערטער ווי איך האט, אַוואַדע, בעת געטאן דעם פֿאַר אַזוי פילע יאָרן? נו, פאַרשטיין פּער דער ערשטער פּראָבלעם שטעלן, מיר באַקענען איר צו אַ באַפֿעל אַז קס50 ס אייגן שטעקן געשריבן גערופֿן העלפּ50. און טאַקע, C טוט באַשרייַבונג פֿאַר די פּראָבלעם שטעלן ווי צו ווי צו נוצן דעם. אבער העלפּ50 איז יסענשאַלי אַ פּראָגראַם וואס קס50 ס שטעקן געשריבן אַז אַלאַוז איר צו לויפן אַ באַפֿעל אָדער לויפן אַ פּראָגראַם, און אויב איר טאָן ניט פֿאַרשטיין זייַן פּראָדוקציע, צו פאָרן זייַן רעזולטאַט צו העלפּ50, אין וואָס פונט די ווייכווארג אַז דער קורס ס שטעקן געשריבן וועט קוקן אין דיין פּראָגראַם ס פּראָדוקציע שורה דורך שורה, כאַראַקטער דורך כאַראַקטער. און אויב מיר, די שטעקן, דערקענען די טעות אָנזאָג אַז איר ניטאָ יקספּיריאַנסינג, מיר וועלן פּרובירן צו אַרויסרופן איר מיט עטלעכע מליצות שאלות, מיט עטלעכע עצה, פיל ווי אַ טף אָדער אַ CA אָדער זיך וואָלט טאָן אין מענטש בייַ אָפיס שעה. אַזוי קוקן צו העלפּ50 אויב איר טאָן ניט דאַווקע דערקענען אַ פּראָבלעם. אבער טאָן ניט פאַרלאָזנ זיך עס צו פיל ווי אַ קוליע. אַוואַדע פּרובירן צו פֿאַרשטיין זייַן פּראָדוקציע און דעריבער לערנען פון עס אַזוי אַז נאָר אַמאָל אָדער צוויי מאָל טאָן איר אלץ לויפן העלפּ50 פֿאַר אַ באַזונדער טעות אָנזאָג. נאָך וואָס, איר זאָל זייַן בעסער יקוויפּט זיך צו רעכענען אויס וואָס עס אַקשלי איז. זאל ס טאָן איינער אנדערע דאָ. זאל מיר גיין פאָרויס, און אין אנדערן טעקע מיר וועט רופן דעם בוגגי1.ק. און אין דעם טעקע איך בין געגאנגען צו דעליבעראַטעלי-- אָבער פאַרהיטן אַז איך טאָן ניט פֿאַרשטיין וואָס גרייַז איך ווע געמאכט. איך בין געגאנגען צו גיין פאָרויס און טאָן טהיס-- #ינקלודע, זינט איך ווע געלערנט מיין לעקציע פֿון אַ מאָמענט צוריק. ינט הויפּט (פּאָסל), ווי איידער. און דעמאָלט אין דאָ איך בין געגאנגען צו טאָן שטריקל ס - געט_סטרינג. און צוריקרופן פון לעצטע מאָל וואָס דעם מיטל, היי, קאָמפּיוטער, געבן מיר אַ בייַטעוודיק, רוף עס s, און מאַכן דעם טיפּ פון וואָס בייַטעוודיק אַ שטריקל אַזוי איך קענען קראָם איינער אָדער מער ווערטער אין עס. און דעמאָלט אויף די רעכט-האַנט זייַט פון די גלייַך צייכן איז געט_סטרינג, וואָס איז אַ פונקציאָנירן אין די קס50-ביבליאָטעק וואָס טוט פּונקט אַז. עס געץ אַ פֿונקציע און דעמאָלט הענט עס פון רעכט צו לינקס. אזוי דעם גלייַך צייכן טוט נישט מיינען "יקוואַלז" ווי מיר זאל טראַכטן אין מאַט. עס מיטל אַסיינמאַנט פון רעכט צו לינקס. אַזוי דעם מיטל, נעמען די שטריקל פון דער באַניצער און קראָם עס ין פון ס. איצט לאָזן ס נוצן עס. זאל מיר גיין פאָרויס איצט און ווי אַ צווייט שורה, לאָזן מיר גיין פאָרויס און זאָגן "העלא" - נישט "וועלט," אָבער "העלא,% ס-- וואָס איז אונדזער פּלאַסעהאָלדער, קאָמע ס, וואָס איז אונדזער בייַטעוודיק, און דעמאָלט אַ האַלב-צווייפּינטל. אַזוי אויב איך האט ניט שרויף אַרויף צו פיל דאָ, דעם קוקט ווי ריכטיק קאָד. און מיין ינסטינגקץ איצט זענען צו צונויפנעמען עס. דער טעקע איז געהייסן בוגגי1.ק. אַזוי איך בין געגאנגען צו טאָן מאַכן בוגגי1, קומען. און צירעווען-עס, אויב עס איז נישט אַפֿילו מער ערראָרס ווי איידער. איך מיינען, דאָרט ס 'מער טעות אַרטיקלען עס וואָלט ויסקומען ווי פאַקטיש שורות אין דעם פּראָגראַם. אבער די טאַקעאַווייַ דאָ איז, אַפֿילו אויב איר 'רע אָוווערכוועלמד מיט צוויי אָדער דרייַ אָדער פיר מער טעות אַרטיקלען, פאָקוס שטענדיק אויף די זייער ערשטער פון יענע אַרטיקלען. איר זוכט אין די שפּיץ-רובֿ איינער, סקראָללינג צוריק אַרויף ווי דאַרפֿן זייַן. אזוי דאָ איך טייפּט מאַכן בוגגי1. דאָ ס וואָס קלאַנג רעזולטאַט ווי דערוואַרט. און דאָ ס דער ערשטער רויט טעות. נוצן פון ונדעקלאַרעד identifier שטריקל, האט איך מיינען נאָרמאַל אין? אַזוי נאָרמאַל אין איז אַקשלי עפּעס אַנדערש. עס רעפערס צו דער באַניצער ס קלאַוויאַטור, יסענשאַלי. אבער אַז ס 'נישט וואָס איך מענט. איך מענט שטריקל, און איך מענט געט_סטרינג. אַזוי וואָס איז עס אַז איך פֿאַרגעסן צו טאָן דאָס מאָל? וואָס ס פעלנדיק דעם מאָל? איך האב מיין #ינקלודע, אַזוי איך האָבן צוטריט צו פּרינטף. אבער וואָס טאָן איך נישט האָבן צוטריט צו נאָר נאָך? גוט, נאָר ווי לעצטע מאָל, איך דאַרפֿן צו זאָגן די קאַמפּיילער קלאַנג וואָס די פֿעיִקייטן זענען. געט_סטרינג טוט ניט קומען מיט סי און אין באַזונדער, עס טוט ניט קומען אין דער כעדער טעקע,. עס אַנשטאָט קומט אין עפּעס די שטעקן געשריבן, וואָס איז אַ אַנדערש טעקע נאָמען אָבער אַפּטלי געהייסן. אַזוי נאָר דורך אַדינג אַז איין שורה פון קאָדע-- צוריקרופן פון לעצטע מאָל אַז ווען קלאַנג ראַנז, עס ס געגאנגען צו קוקן אין מיין קאָד שפּיץ צו דנאָ, לינקס צו רעכט. עס ס געגאנגען צו באַמערקן, טאַקע, איר ווילן. זאל מיר גיין און געפֿינען אַז, ווו נאָר עס איז אויף די סערווער, קאָפּיע און פּאַפּ עס, יסענשאַלי, אין די שפּיץ פון דיין אייגן טעקע אַזוי אַז אין דעם פונט אין די געשיכטע, שורה 1, די מנוחה פון די פּראָגראַם קענען, טאַקע, נוצן קיין פון די פֿעיִקייטן דערין, צווישן זיי געט_סטרינג. אַזוי איך בין געגאנגען צו איגנאָרירן די מנוחה פון יענע ערראָרס, ווייַל איך, טאַקע, כאָשעד אַז בלויז דער ערשטער איינער אַקטשאַוואַלי מאַטערד. און איך בין געגאנגען צו גיין פאָרויס און ריראַן, נאָך שפּאָרן מיין טעקע מאַכן בוגגי1. און וווואַלאַ, עס האט ווערק. און אויב איך טאָן ./בוגגי1 און דרוקן אין, פֿאַר א שטייגער, זאַמילאַ, איך איצט וועט באַקומען העלא, זאַמילאַ, אַנשטאָט פון העלא, וועלט. אלעס אין ארדענונג. אזוי די טאַקעאַווייַס דאָ דעריבער זענען צו, איינער, פּרובירן צו גלעאַן ווי פיל ווי איר קענען פון די טעות אַרטיקלען אַליין, קוקן בייַ עטלעכע פון ​​די רעקאַגנייזאַבאַל ווערטער. באַרינג אַז, נוצן העלפּ50 פּער די פּראָבלעם שטעלן באַשרייַבונג. אבער באַרינג אַז, אויך, שטענדיק קוקן אין די שפּיץ טעות בלויז, לפּחות טכילעס, צו זען וואָס אינפֿאָרמאַציע עס זאל טאקע טראָגן. אבער עס טורנס אויס דאָרט ס אַפֿילו מער פונקטיאָנאַליטי געבויט אין די קס50 ביבליאָטעק צו העלפן איר פרי אויף אין די זמאַן און פרי אויף אין פּראָגראַממינג רעכענען אויס וואָס ס געגאנגען אומרעכט. אַזוי לאָזן ס טאָן אן אנדער בייַשפּיל דאָ. איך בין געגאנגען צו רופן דעם בוגגי2, וואָס, ווידער, איז געגאנגען צו זיין פלאַוועד אויס פון די טויער, דורך פּלאַן. און איך בין געגאנגען צו גיין פאָרויס און טאָן #ינקלודע. און דעמאָלט איך בין געגאנגען צו טאָן ינט הויפּט (פּאָסל). און דעמאָלט איך בין געגאנגען צו טאָן אַ פֿאַר שלייף. פֿאַר (ינט איך _ 0. איך איז ווייניקער ווי אָדער גלייַך צו 10. איך ++, און דעמאָלט אין געגרייַזלט ברייסאַז, איך בין געגאנגען צו דרוקן אויס נאָר אַ האַשטאַג סימבאָל דאָ און אַ נייַ שורה כאַראַקטער. אַזוי מיין קאַוואָנע מיט דעם פּראָגראַם איז גאַנץ נאָר צו יטעראַטע 10 מאל און אויף יעדער יטעראַטיאָן פון וואָס שלייף יעדער צייַט דורך די ציקל, דרוקן אויס אַ האַשטאַג, אַ האַשטאַג, אַ האַשטאַג. איינער פּער שורה ווייַל איך האָבן די נייַ שורה דאָרט. און צוריקרופן אַז די פֿאַר שלייף, פּער לעצטע וועעק-- און איר וועט באַקומען מער באַקאַנט מיט די סינטאַקס דורך ניצן עס מיט פיר איידער לאָנג-- דעם גיט מיר אַ בייַטעוודיק געהייסן איך און שטעלט עס צו 0. דאס ינגקראַמאַנץ איך אויף יעדער יטעראַטיאָן דורך 1. אַזוי איך גייט צו 1-2 צו 3. און דעמאָלט דעם צושטאַנד אין די מיטן צווישן די האַלב-קאָלאָנס געץ אָפּגעשטעלט אויף יעדער יטעראַטיאָן צו מאַכן זיכער אַז מיר זענען נאָך ין קייט. אַזוי איך ווילן צו יטעראַטע 10 מאל, אַזוי איך האָבן סאָרט פון זייער ינטויטיוולי נאָר שטעלן 10 ווי מיין אויבערשטער געבונדן דאָרט. און נאָך, ווען איך לויפן דעם, נאָך קאַמפּיילינג עס מיט מאַכן בוגגי2-- און עס טוט צונויפנעמען קעשורע. אזוי איך טאָן ניט האָבן אַ סינטאַקס טעות דעם מאָל. זאל מיר גיין פאָרויס איצט און לויפן בוגגי2, קומען. און איצט מעגילע אַרויף. און לאָזן מיר פאַרגרעסערן די גרייס פון די פֿענצטער. איך ויסקומען צו האָבן 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. אַזוי עס ס 11 האַשטאַגס, אַפֿילו כאָטש איך קלאר שטעלן 10 ין פון דעם שלייף. איצט, עטלעכע פון ​​איר זאל זען מיד וואָס די טעות איז ווייַל, טאַקע, דעם איז נישט אַ זייער שווער טעות צו מאַכן. אבער עס ס 'זייער קאַמאַנלי געמאכט זייער פרי אויף. וואָס איך ווילן צו פונט אויס, כאָטש, איז, ווי זאל איך רעכענען דעם אויס? נו, עס טורנס אויס אַז די קס50-ביבליאָטעק קומט מיט ניט בלויז געט_סטרינג און געט_ינט און געט_פלאָאַט און אנדערע פֿעיִקייטן. עס אויך קומט מיט אַ ספּעציעל פונקציאָנירן גערופֿן עפּרינטף, אָדער, טעות פּרינטף. און עס יגזיסץ סאָוללי צו מאַכן עס אַ קליין ביסל גרינגער פֿאַר איר ווען דיבאַגינג אייער קאָד צו נאָר דרוק אַ טעות אָנזאָג אויף דעם עקראַן און וויסן ווו עס געקומען פון. אַזוי פֿאַר בייַשפּיל, איין זאַך איך זאל טאָן דאָ מיט דעם פֿונקציע איז טהיס-- עפּרינטף, און דעמאָלט איך בין געגאנגען צו גיין פאָרויס און זאָגן איך איז איצט% איך, באַקקסלאַש, ען. און איך בין געגאנגען צו צאַפּן אין די ווערט פון איך. און אַרויף שפּיץ, ווייַל דעם איז אין די קס50 ביבליאָטעק, איך בין געגאנגען צו גיין פאָרויס און אַרייַננעמען אַזוי איך האָבן צוטריט צו דעם פֿונקציע. אבער לאָזן ס באַטראַכטן וואָס שורה 9 איז געמיינט צו זיין טאן. איך בין געגאנגען צו ויסמעקן דעם יווענטשאַוואַלי. דעם האט גאָרנישט צו טאָן מיט מיין אָווועראַרטשינג ציל. אבער עפּרינטף, טעות פּרינטף, איז נאָר מענט צו געבן מיר עטלעכע דיאַגנאָסטיק אינפֿאָרמאַציע. ווען איך לויפן מיין פּראָגראַם, איך ווילן צו זען דעם אויף דעם עקראַן טעמפּערעראַלי ווי געזונט נאָר צו פֿאַרשטיין וואס טוט זיך. און, טאַקע, אויף יעדער יטעראַטיאָן דאָ פון שורה 9 איך ווילן צו זען, וואָס איז די ווערט פון איך? וואָס איז די ווערט פון איך? וואָס איז די ווערט פון איך? און, אַלעווייַ, איך זאָל בלויז זען אַז אָנזאָג, אויך, 10 מאל. אַזוי לאָזן מיר גיין פאָרויס און רעקאָמפּילע מיין פּראָגראַם, ווי איך האָבן צו טאָן קיין צייַט איך מאַכן אַ טוישן. ./בוגגי2. און נאָוו-- קעשורע. עס ס אַ פּלאַץ מער געגאנגען אויף. אַזוי לאָזן מיר מעגילע אַרויף אין אַ אַפֿילו ביגער פֿענצטער. און איר וועט זען אַז יעדער פון די האַשטאַגס איז נאָך דרוקן. אבער אין צווישן יעדער פון זיי איז איצט דעם דיאַגנאָסטיק רעזולטאַט פֿאָרמאַטירט ווי גייט. דער נאָמען פון מיין פּראָגראַם דאָ איז בוגגי2. דער נאָמען פון דער טעקע איז בוגגי2.ק. די שורה נומער פון וואָס דעם איז געווען געדרוקט איז שורה 9. און דעריבער צו דער רעכט פון וואָס איז די טעות אָנזאָג אַז איך בין יקספּעקטינג. און וואָס ס פייַן וועגן דעם איז אַז איצט איך טאָן ניט האָבן צו דאַווקע ציילן אין מיין קאָפּ וואָס מיין פּראָגראַם איז טאן. איך קענען זען אַז אויף דעם ערשטער יטעראַטיאָן איך איז 0, דעמאָלט 1, דעמאָלט 2, דעמאָלט 3, דעמאָלט 4, דעמאָלט 5, דעמאָלט 6, דעמאָלט 7, דעמאָלט 8, דעמאָלט 9, דעמאָלט 10. אַזוי וואַרטן אַ מינוט. וואָס ס 'געגאנגען אויף דאָ? איך נאָך ויסקומען צו זיין קאַונטינג ווי בדעה אַרויף צו 10. אבער ווו האט איך אָנהייבן? 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10. אַזוי 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- די 11 פינגער איז ינדיקאַטיוו פון די פּראָבלעם. איך ויסקומען צו האָבן גערעכנט ינקערעקטלי אין מיין שלייף. אלא ווי גיין 10 יטעראַטיאָנס, איך בין סטאַרטינג בייַ 0, איך בין סאָף בייַ און דורך 10. אבער ווייַל, ווי אַ קאָמפּיוטער, איך בין סטאַרטינג קאַונטינג בייַ 0, איך זאָל זיין קאַונטינג אַרויף צו, אָבער נישט דורך, 10. און אַזוי די פאַרריכטן, איך יווענטשאַוואַלי איינגעזען דאָ, איז איינער פון צוויי זאכן. איך קען זייער נאָר זאָגן ציילן אַרויף צו ווייניקער ווי 10. אַזוי 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, וואָס איז, טאַקע, ריכטיק, אַפֿילו כאָטש עס סאָונדס אַ ביסל פאַלש. אָדער איך קען טאָן ווייניקער ווי אָדער גלייַך צו 9, אַזוי לאַנג ווי איך אָנהייבן בייַ 0. אָדער אויב איר טאַקע טאָן ניט ווי אַז, איר קענען ציילן אַרויף דורך 10 אָבער אָנהייבן בייַ 1. אָבער ווידער, דעם פּונקט איז נישט אַז פּראָסט. אין פּראָגראַממינג-- אָלבייט נישט אַזוי פיל אין סקראַטטש-- אָבער אין פּראָגראַממינג אין C און אנדערע שפּראַכן, ווי דזשאַוואַסקריפּט און פּיטהאָן און אנדערע, עס ס ' נאָר זייער פּראָסט פֿאַר אונדזער דיסקוסיע פון ​​ביינערי צו נאָר אָנהייבן קאַונטינג אין די לאָואַסט נומער איר קענען, וואָס איז 0. אלעס אין ארדענונג. אַזוי אַז ס עפּרינטף. און ווידער, איצט אַז איך ווע פיגורעד אויס מיין פּראָבלעם, און איך בין געגאנגען צו גיין צוריק צו 0 דורך ווייניקער ווי 10, איך בין געגאנגען צו גיין אין און ויסמעקן עפּרינטף. עס זאָל ניט זיין דאָרט ווען איך שיף מיין קאָד אָדער פאָרלייגן מיין קאָד אָדער ווייַזן עס צו ווער עס יז אַנדערש. עס ס טאַקע נאָר מענט צו ווערן געניצט טעמפּערעראַלי. אבער איצט איך ווע פאַרפעסטיקט דעם באַזונדער פּראָבלעם ווי געזונט. נו, לאָזן ס טאָן איינער מער בייַשפּיל דאָ אַז איך בין געגאנגען צו בייַטש אַרויף ווי גייט. איך בין געגאנגען צו גיין פאָרויס און #ינקלודע. $ 50 און איך בין געגאנגען צו גיין פאָרויס און #ינקלודע. און איך בין געגאנגען צו ראַטעווען דעם טעקע ווי בוגגי3.ק. און איך בין געגאנגען צו גיין פאָרויס און דערקלערן ינט הויפּט (פּאָסל). און דעמאָלט ין פון דאָרט איך בין געגאנגען צו טאָן ינט איך _ - איך ווילן צו מאַכשער אַ פּראָגראַם מיט אַ געט_נעגאַטיווע_ינט. דאס איז נישט אַ פֿונקציע אַז יגזיסץ נאָך. אַזוי מיר רע געגאנגען צו מאַכשער עס אין נאָר אַ מאָמענט. אבער מיר רע געגאנגען צו זען וואָס עס ס וואָגן בייַ ערשטער פאָרן. און אַמאָל איך ווע גאַטאַן אַ ינט פון דעם באַניצער, איך בין נאָר געגאנגען צו דרוקן% איך איז אַ נעגאַטיוו ינטאַדזשער, באַקקסלאַש, ען, קאָמע, איך. אין אנדערע ווערטער, אַלע איך ווילן דעם פּראָגראַם צו טאָן איז באַקומען אַ נעגאַטיוו ינט פֿון דער באַניצער און דעמאָלט דרוקן אויס אַז אַזאַ און אַזאַ איז אַ נעגאַטיוו ינט. איצט איך דאַרפֿן צו ינסטרומענט דעם פֿונקציע. אזוי שפּעטער אין מיין טעקע, איך בין געגאנגען צו גיין פאָרויס און דערקלערן אַ פֿונקציע גערופֿן געט_נעגאַטיווע_ינט (פּאָסל) - און מיר וועט קומען צוריק צו וואָס אַז שורה מיטל ווידער אין אַ מאָמענט-- ינט N; דאָ-- טאָן די פאָללאָווינג-- פּרינטף N איז :. און דעמאָלט איך בין געגאנגען צו טאָן ן - געט_ינט, און טאָן דאָס בשעת N איז גרעסער ווי 0. און דעמאָלט צוריקקומען N ;. אַזוי דאָרט ס אַ פּלאַץ געגאנגען אויף אין דעם אָבער גאָרניט פון וואָס מיר האבן נישט קוק בייַ לעצט וואָך, לפּחות בעקיצער. אזוי אויף שורה 10 דאָ איך ווע דערקלערט אַ פֿונקציע גערופֿן געט_נעגאַטיווע_ינט, און איך ווע שטעלן (פּאָסל), אין קלאַמערן, די סיבה ווייל דעם טוט ניט נעמען אַ ינפּוט. איך בין נישט פּאַסינג עפּעס צו דעם פֿונקציע. איך בין נאָר געטינג עפּעס צוריק פון עס. און וואָס איך בין כאָופּינג צו באַקומען צוריק איז אַ ינטאַדזשער. עס איז קיין דאַטן טיפּ אין C גערופֿן נעגאַטיווע_ינט. עס ס נאָר ינט, אַזוי עס ס 'געגאנגען צו זיין אויף אונדז צו מאַכן זיכער אַז די ווערט אַז ס אַקשלי אומגעקערט איז נישט בלויז אַ ינט אָבער איז אויך נעגאַטיוו. אויף שורה 12 איך בין דיקלערינג אַ בייַטעוודיק גערופֿן n און מאכן עס פון טיפּ ינט. און דעמאָלט אין שורה 13 דורך 18 איך בין טאן עפּעס בשעת עפּעס איז אמת. איך בין געגאנגען פאָרויס און דרוקן N איז, צווייפּינטל, און דעמאָלט אַ פּלאַץ, ווי אַ פּינטלעך פֿאַר די באַניצער. איך בין דעמאָלט פאַך געט_ינט און סטאָרינג זייַן אַזוי-גערופֿן צוריקקומען ווערט אין אַז בייַטעוודיק ען. אבער איך בין געגאנגען צו האַלטן טאן דעם בשעת N איז גרעסער ווי 0. אין אנדערע ווערטער, אויב דער באַניצער גיט מיר אַ ינט און אַז נומער איז גרעסער ווי 0, ערגאָו, בעפיירעש, איך בין געגאנגען צו נאָר האַלטן רעפּראָמפּטינג דער באַניצער, האַלטן רעפּראָמפּטינג, דורך פאָרסינג זיי צו קאָואַפּערייט און געבן מיר אַ נעגאַטיוו ינט. און אַמאָל N איז אַקטשאַוואַלי נעגאַטיווע-- רעכן דער באַניצער לעסאָף טייפּס -50, דעמאָלט דעם בשעת שלייף איז ניט מער אמת ווייַל -50 איז נישט גרעסער ווי 0. אזוי מיר ברעכן אויס פון וואָס שלייף לאַדזשיקלי און צוריקקומען ן. אבער דאָרט ס איין אנדערע זאַך איך האָבן צו טאָן. און איך קענען נאָר טאָן דאָס דורך קאַפּיינג און פּאַסטינג איין שורה פון קאָד אין די שפּיץ פון דער טעקע. איך דאַרפֿן צו לערנען קלאַנג, אָדער צוזאָג צו קלאַנג, בפֿירוש אַז איך וועל, טאַקע, גיין און ינסטרומענט דעם פֿונקציע געט_נעגאַטיווע_ינט. עס זאל נאָר זייַן נידעריקער אין דער טעקע. ווידער, צוריקרופן אַז קלאַנג לייענט דאס שפּיץ צו דנאָ, לינקס צו רעכט, אַזוי איר קענען נישט רופן אַ פֿונקציע אויב קלאַנג טוט ניט וויסן עס ס 'געגאנגען צו עקסיסטירן. איצט, ליידער, דעם פּראָגראַם, ווי עטלעכע פון ​​איר זאל האָבן באמערקט, איז שוין וואָגן. זאל מיר גיין פאָרויס און מאַכן בוגגי3. עס קאַמפּיילז, אַזוי מיין פּראָבלעם איצט איז ניט אַ סינטאַקס טעות, ווי אַ טעקסטשאַוואַל טעות עס ס אַקטשאַוואַלי געגאנגען צו זיין אַ לאַדזשיקאַל טעות אַז איך ווע דיליבראַטלי געמאכט ווי אַ געלעגנהייט צו שריט דורך וואָס ס 'געגאנגען אויף. איך בין געגאנגען צו גיין פאָרויס איצט און לויפן בוגגי3. און איך בין געגאנגען צו גיין פאָרויס און ניט קאָואַפּערייט. איך בין געגאנגען צו געבן עס די נומער 1. עס האט ניט ווי עס, אַזוי עס ס פּראַמפּטינג מיר ווידער. ווי וועגן 2? 3? 50? קיינער פון יענע זענען אַרבעט. ווי וועגן -50? און דער פּראָגראַם מיינט צו אַרבעטן. זאל מיר פּרובירן עס אַמאָל מער. זאל מיר פּרובירן -1, מיינט צו אַרבעטן. זאל מיר פּרובירן -2, מיינט צו אַרבעטן. זאל מיר פּרובירן 0. כאַ, אַז ס פאַלש. איצט, מיר 'רע ווייל אַ קליין פּעדאַנטיק דאָ. אבער עס ס ', טאַקע, די פאַל אַז 0 איז ניט בעפיירעש אדער נעגאַטיוו. און אַזוי די פאַקט אַז מיין פּראָגראַם איז אַזוי צו זאָגן: אַז 0 איז אַ נעגאַטיוו ינטאַדזשער, אַז ס 'נישט טעקניקלי ריכטיק. איצט, וואָס איז עס טאן דעם? נו, עס זאל זיין קלאָר ווי דער טאָג. און, טאַקע, די פּראָגראַם איז מענט צו ווערן פאַירלי פּשוט אַזוי מיר האָבן עפּעס צו ויספאָרשן. אבער לאָזן ס באַקענען אַ דריט דיבאַגינג טעכניק דאָ גערופֿן דעבוג50. אַזוי דעם איז אַ פּראָגראַם וואָס מיר ווע נאָר Created דעם יאָר גערופֿן דעבוג50 וואָס וועט לאָזן איר צו נוצן וואָס ס גערופֿן אַ געבויט-אין גראַפיקאַל דעבוגגער אין קס50 ייד. און אַ דעבוגגער איז נאָר אַ פּראָגראַם וואָס בכלל לעץ איר לויפן דיין פּראָגראַם אָבער שריט דורך שריט דורך שריט, שורה דורך שורה דורך שורה, פּאָזינג, פּאָקינג אַרום, קוקן בייַ וועריאַבאַלז אַזוי אַז דער פּראָגראַם טוט ניט נאָר קלאַפּ פאַרגאַנגענהייַט איר און געשווינד דרוקן עפּעס אָדער נישט דרוקן עפּעס. עס גיט איר אַ געלעגנהייט, בייַ מענטשלעך גיכקייַט, צו ינטעראַקט מיט אים. און צו טאָן דאָס, איר נאָר טאָן די ווייַטערדיק. נאָך קאַמפּיילינג דיין קאָד, וואָס איך שוין האבן, בוגגי3, איר גיין פאָרויס און לויפן דעבוג50 ./בוגגי. אַזוי פיל ווי העלפּ50 האט איר לויפן העלפּ50 און דעמאָלט דער באַפֿעל, דעבוג50 האט איר לויפן דעבוג50 און דעריבער די נאָמען פון די באַפֿעל. איצט היטן וואָס כאַפּאַנז אויף מיין פאַרשטעלן, אויף די רעכט-האַנט זייַט אין באַזונדער. ווען איך שלאָגן ראַן, אַלע פון ​​די פּלוצעמדיק דעם רעכט-האַנט טאַפליע אָפּענס אַרויף אויף דעם עקראַן. און דאָרט ס אַ פּלאַץ געגאנגען אויף בייַ ערשטער בליק. אבער עס ס נישט אויך פיל צו זאָרג וועגן נאָך. דאס איז ווייַזונג מיר אַלץ וואָס ס 'געגאנגען אויף ין פון מיין פּראָגראַם רעכט איצט און דורך די קנעפּלעך אַרויף שפּיץ איז דעריבער אַלאַוינג מיר צו שריט דורך מיין קאָד לעסאָף שריט דורך שריט דורך שריט. אָבער נישט נאָר נאָך. נאָטיץ וואָס כאַפּאַנז. אין מיין וואָקזאַל פֿענצטער איך בין ווייל פּראַמפּטיד פֿאַר ען. און איך בין געגאנגען צו גיין פאָרויס און קאָואַפּערייט דעם צייַט און דרוקן אין -1. און אָלבייט אַ ביסל קריפּטיקאַללי, -1 איז אַ נעגאַטיוו ינטאַדזשער, ווי געריכט. און דעמאָלט קינד עגזאַטיד מיט סטאַטוס 0 גדבסערווער עקסיטינג. גדב, נו דעבוגגער, איז דער נאָמען פון די אַנדערלייינג ווייכווארג אַז ימפּלאַמאַנץ דעם דעבוגגער. אבער אַלע דעם טאַקע מיטל, די דעבוגגער געגאנגען אַוועק ווייַל מיין פּראָגראַם פאַרלאָזן און אַלע איז געזונט. אויב איך ווילן צו באמת דיבאַג מיין פּראָגראַם, איך האָבן צו פּרעעמפּטיוועלי זאָגן דעבוג50, ווו טאָן איך ווילן צו אָנהייבן סטעפּינג דורך מיין קאָד? און טאָמער די סימפּלאַסט וועג צו טאָן אַז איז ווי גייט. אויב איך האָווער איבער די רינע פון ​​מיין רעדאַקטאָר דאָ, אַזוי טאַקע נאָר אין די סיידבאַר דאָ, צו די לינקס פון די שורה נומער, באַמערקן אַז אויב איך נאָר גיט אַמאָל, איך שטעלן אַ ביסל רויט פּונקט. און אַז ביסל רויט פּונקט, ווי אַ האַלטן צייכן, מיטל, היי, דעבוג50, פּויזע דורכפירונג פון מיין קאָד רעכט דאָרט ווען איך לויפן דעם פּראָגראַם. אַזוי לאָזן ס טאָן אַז. זאל מיר גיין פאָרויס און לויפן מיין פּראָגראַם ווידער מיט דעבוג50 ./בוגגי3, קומען. און איצט, באַמערקן, עפּעס פאַרשידענע האט געשען. איך בין נישט ווייל פּראַמפּטיד נאָך אין מיין וואָקזאַל פֿענצטער פֿאַר עפּעס, ווייַל איך האב נישט גאַטאַן דאָרט נאָך אין מיין פּראָגראַם. נאָטיץ אַז אויף שורה 8 וואָס איז איצט כיילייטיד, און עס ס אַ קליין פייַל בייַ לינקס צו זאָגן, איר זענט פּאָזד דאָ. דעם שורה פון קאָד, שורה 8, האט נישט נאָך עקסאַקיוטאַד. און וואָס ס טשיקאַווע, אויב איך קוק איבער דאָ אויף די רעכט-האַנט זייַט, באַמערקן אַז איך איז אַ היגע בייַטעוודיק, היגע אין דעם זינען אַז עס ס 'ין די איצטיקע פֿונקציע. און זייַן ווערט, משמעות דורך ניט ויסצאָלן, און סאָרט פון קאַנוויניאַנטלי, איז 0. אבער איך האט ניט טיפּ 0. וואָס נאָר כאַפּאַנז צו זייַן זייַן ניט ויסצאָלן ווערט אין דעם מאָמענט. אַזוי לאָזן מיר גיין פאָרויס און טאָן דעם איצט. זאל מיר גיין פאָרויס און אויף די שפּיץ רעכט דאָ, איך בין געגאנגען צו גיין פאָרויס און גיט דעם ערשטער ייקאַן וואָס מיטל שריט איבער וואָס מיטל טאָן ניט האָפּקען עס אָבער שריט איבער דעם ליניע פון ​​קאָד, עקסאַקיוטינג עס צוזאמען דעם וועג. און איצט, באַמערקן, מיין פּינטלעך האט נאָר געביטן. וואָס איז וואָס? איך ווע דערציילט דעבוג50, לויפן דעם שורה פון קאָד. וואָס טוט דעם שורה פון קאָד טאָן? פּראַמפּס מיר פֿאַר אַ ינט. אקעי. זאל מיר קאָואַפּערייט. זאל מיר גיין פאָרויס איצט און טיפּ -1, קומען. און איצט באַמערקן וואָס האט געביטן. אויף די רעכט-האַנט זייַט, מיין היגע בייַטעוודיק איך איז אנגעוויזן ווי ווייל -1 איצט. און עס ס נאָך פון טיפּ ינט. און באַמערקן, אויך, מייַן אַזוי-גערופֿן רופן אָנלייגן, ווו האט איך פּויזע? מיר וועט רעדן מער וועגן דעם אין דער צוקונפֿט. אבער די רופן אָנלייגן נאָר רעפערס צו וואָס פֿעיִקייטן זענען איצט אין באַוועגונג. רעכט איצט עס ס נאָר הויפּט. און רעכט איצט די בלויז היגע בייַטעוודיק איז איך מיט אַ ווערט פון 1. און ווען איך לעסאָף שריט איבער דעם ליניע דאָ, מיט אַז זעלביקער ייקאַן אין שפּיץ רעכט, -1 איז אַ נעגאַטיוו ינטעגער. איצט עס ס 'פּאָזינג איבער אַז געגרייַזלט בראַסע. זאל ס לאָזן עס טאָן זייַן זאַך. איך שריט איבער אַז שורה, און וווואַלאַ. אַזוי ניט אַלע אַז טעראַבלי ענלייטנינג נאָך, אָבער עס האט לאָזן מיר פּויזע און טראַכטן דורך לאַדזשיקלי וואָס דעם פּראָגראַם איז טאן. אבער וואָס איז געווען ניט די עראָוניאַס פאַל. זאל ס טאָן דעם ווידער ווי גייט. איך בין געגאנגען צו לאָזן אַז ברעאַקפּאָינט אויף שורה 8 מיט די רויט פּונקט. איך בין געגאנגען צו ריראַן דעבוג50. עס ס אויטאָמאַטיש פּאָזד דאָ. אבער דאָס מאָל, אַנשטאָט פון סטעפּינג איבער דעם שורה, לאָזן מיר אַקטשאַוואַלי גיין ין פון געט_נעגאַטיווע_ינט און רעכענען אויס, וואָס איז עס אַקסעפּטינג 0 ווי אַ גילטיק ענטפֿערן? אזוי אַנשטאָט פון געבן אַ קליק שריט איבער. איך בין געגאנגען צו גיין פאָרויס און גיט שריט אין. און באַמערקן אַז די ליניע 8 אַז ס איצט כיילייטיד איצט פּלוצלינג ווערט שורה 17. איצט, עס ס נישט אַז די דעבוגגער האט סקיפּט שורות 14 און 15 און 16. עס ס נאָר עס ס גאָרנישט צו ווייַזן איר דאָרט. יענע זענען נאָר דיקלערינג וועריאַבאַלז, און דעמאָלט דאָרט ס די וואָרט דו זאלסט און דעמאָלט אַן עפענען געגרייַזלט בראַסע. דער בלויז פונקטיאָנאַל שורה אַז ס זאַפטיק טאַקע איז דאָס איינער דאָ, 17. און אַז ס ווו מיר ווע פּאָזד אויטאָמאַטיש. אַזוי פּרינטף ( "n.is:") ;, אַזוי אַז האט נישט געשען נאָך. אַזוי לאָזן ס גיין פאָרויס און גיט שריט איבער. איצט מיין פּינטלעך, טאַקע, געביטן צו ( "ן איז:"). איצט געט_ינט, איך בין נישט געגאנגען צו אַרן סטעפּינג אין, ווייַל אַז פֿונקציע איז געווען געמאכט דורך קס50 אין דער ביבליאָטעק. עס ס מאַשמאָעס ריכטיק. אַזוי איך בין געגאנגען צו גיין פאָרויס און סאָרט פון קאָואַפּערייט דורך געבן עס אַ ינט, אָבער נישט אַ נעגאַטיוו ינט. אַזוי לאָזן מיר גיין פאָרויס און שלאָגן 0. און איצט וואָס כאַפּאַנז דאָ ווען איך באַקומען אַראָפּ צו שורה 21? איך ווע ניט יטעראַטעד ווידער. איך טאָן ניט ויסקומען צו זייַן סטאַק אין וואָס שלייף. אין אנדערע ווערטער, דעם געל באַר האט ניט האַלטן געגאנגען אַרום, און אַרום, און אַרום. איצט, וואָס איז וואָס? נו, ן, וואָס איז N רעכט איצט? איך קענען קוקן אין די היגע וועריאַבאַלז אין די דעבוגגער. N איז 0. אַלע רעכט, וואָס איז געווען מיין צושטאַנד? 20-- שורה 20 איז, געזונט, 0 איז גרעסער ווי 0. אַז איז נישט אמת. 0 איז נישט גרעסער ווי 0. און אַזוי איך רייסט אויס פון דעם. און אַזוי אַז ס וואָס אויף שורה 21, אויב איך אַקטשאַוואַלי פאָרזעצן, איך בין געגאנגען צו צוריקקומען 0, אַפֿילו כאָטש איך זאָל האָבן פֿאַראַכט 0 ווי ניט אַקטשאַוואַלי ווייל נעגאַטיוו. אַזוי איצט, איך טאָן ניט טאַקע אַפֿילו זאָרגן וועגן די דעבוגגער. גאַט עס, איך טאָן ניט דאַרפֿן צו וויסן וואָס מער איז געגאנגען אויף. אַזוי איך בין געגאנגען צו גיין פאָרויס און נאָר גיט די שפּיל קנעפּל, און לאָזן דעם ענדיקן אַרויף. איצט, איך ווע איינגעזען אַז מיין זשוק איז משמעות אויף שורה 20. אַז ס 'מיין לאַדזשיקאַל טעות. און אַזוי וואָס טאָן איך ווילן צו טאָן צו טוישן דעם? אויב די פּראָבלעם איז אַז איך בין נישט קאַטשינג 0, עס ס נאָר אַ לאַדזשיקאַל טעות. און איך קענען זאָגן בשעת N איז גרעסער ווי אָדער גלייַך צו 0, האַלטן פּראַמפּטינג דער באַניצער ווידער און ווידער. אַזוי, ווידער, פּשוט גרייַז, טאָמער אַפֿילו קלאָר ווי דער טאָג ווען איר האט געזען מיר שרייַבן עס נאָר אַ ביסל מינוט צוריק. אבער די טאַקעאַווייַ דאָ איז אַז מיט דיבאַג 50, און מיט דיבאַגינג ווייכווארג מער בכלל, איר האָבן דעם נייַ געפֿונען מאַכט צו גיין דורך אייער אייגן קאָד, קוק דורך אַז רעכט האַנט טאַפליע וואָס דיין וועריאַבאַלז וואַלועס זענען. אַזוי איר טאָן ניט דאַווקע האָבן צו נוצן עפּעס ווי איר עפּרינטף צו דרוקן יענע וואַלועס. איר קענען טאקע זען זיי וויזשוואַלי אויף דעם עקראַן. איצט, ווייַטער פון דעם, עס ס כדאי צו באמערקן אַז דאָרט ס אן אנדער טעכניק אַז ס אַקשלי סופּער פּראָסט. און איר זאל ווונדער וואָס דעם קליין באָכער דאָ האט שוין זיצן אויף די בינע. אַזוי דאָרט ס דעם טעכניק, בכלל באקאנט ווי גומע קאַטשקע דיבאַגינג, וואָס טאַקע איז נאָר אַ צאַוואָע צו די פאַקט אַז אָפֿט ווען פּראָוגראַמערז זענען שרייבן קאָד, זיי ניטאָ ניט דאַווקע קאַלאַבערייטינג מיט אנדערע, אָדער ארבעטן אין אַ שערד סוויווע. זיי ניטאָ סאָרט פון אין שטוב. אפֿשר עס ס שפּעט בייַ נאַכט. זיי ניטאָ טריינג צו רעכענען אויס עטלעכע זשוק אין זייער קאָד. און זיי ניטאָ נאָר ניט געזען עס. און דאָרט ס קיין רומייט. עס איז קיין טף. עס איז קיין CA אַרום. כל זיי האָבן אויף זייער פּאָליצע איז דאָס קליין גומע דוקקי. און אַזוי גומע קאַטשקע דיבאַגינג איז נאָר דעם פאַרבעטונג צו טראַכטן פון עפּעס ווי נאַריש ווי דעם ווי אַ פאַקטיש באַשעפעניש, און אַקשלי גיין דורך אייער קאָד ווערבאַללי צו דעם ינאַנאַמאַט כייפעץ. אַזוי, פֿאַר בייַשפּיל, אויב דאָס איז מיין בייַשפּיל הערע-- און צוריקרופן אַז פריער די פּראָבלעם איז געווען דאָס, אויב איך ויסמעקן דעם ערשטער שורה פון קאָד, און איך גיין פאָרויס און מאַכן וואָגן 0 ווידער, צוריקרופן אַז איך געהאט די טעות אַרטיקלען דאָ. אַזוי דער געדאַנק דאָ, לעכערלעך כאָטש איך פילן אין דער מאָמענט טאן דעם פּובליקלי, איז אַז טעות. גוט, אַזוי מיין פּראָבלעם איז אַז איך ווע ימפּליסאַטלי דערקלערט אַ ביבליאָטעק פֿונקציע. און אַז ביבליאָטעק פֿונקציע איז פּרינטף. דעקלאַרע-- גוט, דערקלערן דערמאנט מיר פון פּראָוטאַטייפּס. אַז מיטל איך דאַרפֿן צו אַקטשאַוואַלי זאָגן די קאַמפּיילער אין שטייַגן וואָס די פֿונקציע קוקט ווי. ווארט א מינוט. איך האט ניט האָבן נאָרמאַל יאָ.ה. א גרויסן דאנק. אזוי נאָר דעם פּראָצעס אָפ-- איר טאָן ניט דאַרפֿן צו אַקטשאַוואַלי האָבן אַ קאַטשקע. אבער דעם געדאַנק פון גיין זיך דורך דיין אייגן קאָד אַזוי אַז איר אַפֿילו הערן זיך, אַזוי אַז איר פאַרשטיין אָומישאַנז אין דיין אייגן רימאַרקס, איז בכלל דער געדאַנק. און, טאָמער מער לאַדזשיקלי, ניט אַזוי פיל מיט אַז איינער אָבער די מער ינוואַלווד בייַשפּיל מיר נאָר האט אין וואָגן 3.ק, איר זאל גיין זיך דורך אים ווי גייט. אַזוי אַלע רעכט, גומע דוקקי, DDB, אויב איר וועט. דאָ מיר האָבן אין מיין הויפּט פֿונקציע, איך בין פאַך באַקומען נעגאַטיוו ינט. און איך בין געטינג די צוריקקומען ווערט. איך בין סטאָרינג עס אויף דער לינקער זייַט אויף שורה 8 אין אַ בייַטעוודיק געהייסן איך. גוט, אָבער וואַרטן, ווי האט אַז באַקומען אַז ווערט? זאל מיר קוקן אין די פֿונקציע אין שורה 12. אין שורה 12, מיר האָבן באַקומען נעגאַטיוו ינט. טוט ניט נעמען קיין ינפּוץ, טוט צוריקקומען אַ ינט, קעשורע. איך דערקלערן אויף שורה 14 אַ בייַטעוודיק ען. עס ס געגאנגען צו קראָם אַ ינטעגער. אַז ס וואָס איך ווילן. אַזוי טאָן די ווייַטערדיק בשעת N יס-- לאָזן מיר ופמאַכן וואָס די פאַרריכטן איך שוין געמאכט. אַזוי בשעת N איז גרעסער ווי 0, דרוקן אויס N איז, קעשורע. און דעמאָלט רופן באַקומען ינט סטאָרד אין ען. און דעמאָלט טשעק אויב N איז 0, N איז נאָט-- דאָרט עס איז. אַזוי, ווידער, איר טאָן ניט דאַרפֿן די פאַקטיש קאַטשקע. אבער נאָר גיין זיך דורך אייער קאָד ווי אַ גייסטיקער געניטונג וועט אָפֿט העלפן איר פאַרשטיין וואָס ס 'געגאנגען אויף, ווי קעגן צו נאָר טאן עפּעס ווי דעם, סטערינג בייַ דעם עקראַן, און נישט גערעדט זיך דורך עס, וואָס האָנעסטלי איז נישט קימאַט ווי אַ עפעקטיוו טעכניק. אזוי עס איר האָבן עס, אַ נומער פון פאַרשידענע טעקניקס פֿאַר אַקטשאַוואַלי דיבאַגינג אייער קאָד און דערגייונג שולד, אַלע פון ​​וואָס זאָל זייַן מכשירים אין דיין טאָאָלקיט אַזוי אַז איר ניטאָ ניט שפּעט בייַ נאַכט, ספּעציעל, איר ניטאָ אין דער דיינינג האַללס, אָדער בייַ אָפיס שעה, באַנגינג דיין קאָפּ קעגן די וואַנט, טריינג צו סאָלווע עטלעכע פּראָבלעם. פאַרשטיין אַז עס זענען ווייכווארג מכשירים. עס זענען גומע קאַטשקע מכשירים. און עס ס אַ גאַנץ שטעקן פון שטיצן ווארטן צו לייַען אַ האַנט. אַזוי איצט, אַ וואָרט אויף דער פּראָבלעם שטעלט, און אויף וואָס מיר ניטאָ כאָופּינג איר באַקומען אויס פון זיי, און ווי מיר גיין וועגן יוואַליוייטינג. פּער דעם קורס ס סילאַבאַס, קס50 ס פּראָבלעם שטעלט זענען עוואַלואַטעד אויף פיר ערשטיק אַקסעס, אַזוי צו ספּעאַק-- פאַרנעם, קערעקטנאַס, פּלאַן, און סטיל. און פאַרנעם נאָר רעפערס צו ווי פיל פון די שטיק האָבן איר ביטאַן אַוועק? ווי פיל פון אַ פּראָבלעם האָבן איר האט? וואָס מדרגה פון מי האָבן איר ארויסגעוויזן? קערעקטנאַס איז, טוט די פּראָגראַם אַרבעט ווי עס ס געמיינט צו פּער קס50 באַשרייַבונג ווען איר צושטעלן זיכער ינפּוץ אָדער זיכער אַוטפּוץ קומען צוריק? פּלאַן איז די מערסט סאַבדזשעקטיוו פון זיי. און עס ס דער איינער וואָס וועט נעמען די לאָנגעסט צו לערנען און די לאָנגעסט צו לערנען, אין אַזוי ווייַט ווי עס בוילז אַראָפּ צו, ווי געזונט געשריבן איז דיין קאָד? עס ס איין זאַך צו נאָר דרוקן די ריכטיק אַוטפּוץ אָדער צוריקקומען די רעכט וואַלועס. אבער זענען איר טאן עס ווי עפפיסיענטלי ווי מעגלעך? זענען איר טאן עס צעטיילן און קאַנגקער, אָדער ביינערי זוכן ווי מיר וועט באַלד זען אַז מיר האבן צוויי וואָכן צוריק מיט די טעלעפאָנירן בוך? זענען דאָרט בעסער וועגן צו סאָלווע די פּראָבלעם ווי איר איצט האָבן דאָ? אַז ס אַ געלעגנהייט פֿאַר בעסער פּלאַן. און דעמאָלט סטילע-- ווי שיין איז דיין קאָד? איר וועט באַמערקן אַז איך בין שיין באַזונדער וועגן ינדענטינג מיין קאָד, און מאכן זיכער מיין וועריאַבאַלז זענען ריזאַנאַבלי געהייסן. ן, בשעת קליין, איז אַ גוט נאָמען פֿאַר אַ נומער, איך פֿאַר אַ קאַונטינג ינטאַדזשער, ס פֿאַר אַ שטריקל. און מיר קענען האָבן מער בייַטעוודיק נעמען נוסח. סטיל איז נאָר ווי גוט טוט דיין קאָד קוקן? און ווי ליינעוודיק איז עס? און איבער צייַט, וואָס אייער טאַס און טפס וועט טאָן אין דעם קורס איז צושטעלן איר מיט וואָס מין פון קוואַליטאַטיווע באַמערקונגען אַזוי אַז איר באַקומען בעסער אין יענע פאַרשידן אַספּעקץ. און אין טערמינען פון ווי מיר אָפּשאַצן יעדער פון די אַקסעס, עס ס טיפּיקלי מיט זייער ווייניק באַקאַץ אַזוי אַז איר, בכלל, באַקומען אַ געפיל פון ווי גוט איר ניטאָ טאן. און, טאַקע, אויב איר באַקומען אַ כעזשבן אויף קיין פון יענע אַקסעס-- קערעקטנאַס, פּלאַן און סטיל עספּעסיאַללי-- אַז נומער וועט בכלל זיין צווישן 1 און 5. און, ממש, אויב איר ניטאָ געטינג 3 ס אין די אָנהייב פון די זמאַן, דעם איז אַ זייער גוט זאַך. עס מיטל עס ס נאָך צימער פֿאַר פֿאַרבעסערונג, וואָס איר וואָלט האָפענונג פֿאַר אין גענומען אַ קלאַס פֿאַר די ערשטער מאָל. עס ס אַלעווייַ עטלעכע ביסל פון סטעליע צו וואָס איר ניטאָ אַספּיירינג צו ריטשינג. און אַזוי געטינג 3 ס אויף די ערליאַסט ברעקלעך, אויב נישט עטלעכע 2 ס און 4 ס, איז, טאַקע, אַ גוט זאַך. עס ס געזונט ין קייט, געזונט ין עקספּעקטיישאַנז. און אויב דיין מיינונג איז ראַסינג, וואַרטן אַ מינוט, דרייַ אויס פון פינף. אַז ס 'טאַקע אַ 6 אויס פון 10. אַז ס 60%. מיין גאָט, אַז ס אַ עף ס 'איז נישט. עס ס ניט, אין פאַקט, אַז. אלא, עס ס אַ געלעגנהייט צו פֿאַרבעסערן איבער די לויף פון די זמאַן. און אויב איר ניטאָ געטינג עטלעכע פּאָאָרס, די ביסט אַ געלעגנהייט צו נעמען מייַלע פון ​​אָפיס שעה, אַוואַדע סעקשאַנז און אנדערע רעסורסן. בעסטער איז אַ געלעגנהייט, טאַקע, צו זיין שטאָלץ פון פּונקט ווי ווייַט איר ווע קומען איבער די לויף פון די זמאַן. אזוי טאָן פאַרשטיין, אויב גאָרנישט אַנדערש, דרייַ איז גוט. און עס אַלאַוז פּלאַץ פֿאַר גראָוט איבער צייַט. ווי צו ווי יענע אַקסעס זענען ווייטיד, ריאַליסטיקלי איר ניטאָ געגאנגען צו פאַרברענגען רובֿ פון דיין צייַט געטינג זאכן צו אַרבעט, לאָזן אַליין ריכטיק. און אַזוי קערעקטנאַס טענדז צו זייַן ווייטיד די רובֿ, ווי מיט דעם מולטיפּליקאַטיווע פאַקטאָר פון דרייַ. פּלאַן איז אויך וויכטיק, אָבער עפּעס אַז איר טאָן ניט דאַווקע פאַרברענגען אַלע פון ​​יענע שעה אויף טריינג צו באַקומען זאכן נאָר צו אַרבעטן. און אַזוי עס ס ווייטיד אַ ביסל מער לייטלי. און דעריבער נוסח איז ווייטיד דער מינדסטער. כאָטש עס ס קיין ווייניקער וויכטיק פונדאַמענטאַללי, עס ס נאָר, טאָמער, די יזיאַסט זאַך צו טאָן רעכט, מימיקינג די יגזאַמפּאַלז מיר טאָן אין לעקציע און אָפּטיילונג, מיט דאס נייסלי ינדענטעד, און קאַמענטאַד, און אַזוי אַרויס איז צווישן די יזיאַסט זאכן צו טאָן און באַקומען רעכט. אַזוי ווי אַזאַ, פאַרשטיין אַז יענע זענען פּוינץ וואָס זענען לעפיערעך גרינג צו אָנכאַפּן. און איצט אַ וואָרט אויף טהיס-- אַקאַדעמיק ערלעכקייַט. אזוי פּער די קורס ס סילאַבאַס, איר וועט זען אַז דער קורס האט גאַנץ אַ ביסל פון שפּראַך אַרום דעם. און די קורס נעמט די אַרויסגעבן פון אַקאַדעמיק ערלעכקייַט גאַנץ עמעס. מיר האָבן די דיסטינגקשאַן, פֿאַר בעסער אָדער פֿאַר ערגער, ווייל געשיקט יעדער יאָר מער סטודענטן פֿאַר דיסאַפּלאַנערי קאַמף ווי רובֿ קיין אנדערע דאָך, אַז איך בין אַווער פון. דאס איז נישט דאַווקע ינדיקאַטיוו פון די פאַקט אַז קס סטודענטן, אָדער קס50 סטודענטן, זענען קיין ווייניקער ערלעך ווי דיין קלאַסמייץ. אבער דער פאַקט אַז אין דעם וועלט, ילעקטראַניקאַלי, מיר נאָר האָבן טעקנאַלאַדזשיקאַל מיטל פון דיטעקטינג דעם. עס איז וויכטיק צו אונדז פֿאַר יוישער אַריבער די סאָרט וואָס מיר טאָן דיטעקט דעם, און הייבן די אַרויסגעבן ווען מיר זען זאכן. און פּונקט צו מאָלן אַ בילד, און טאַקע צו העלפן עפּעס ווי דעם זינקען אין, די זענען די נומערן פון סטודענטן איבער דער פאַרגאַנגענהייַט 10 יאר וואָס האָבן שוין ינוואַלווד אין עטלעכע אַזאַ ישוז פון אַקאַדעמיק ערלעכקייַט, מיט עטלעכע 32 סטודענטן פֿון פאַלן 2015, וואָס איז צו זאָגן אַז מיר טאָן נעמען דער ענין זייער עמעס. און, לעסאָף, די נומערן קאַמפּאָוז, רובֿ לעצטנס, וועגן 3%, 4% אָדער אַזוי פון דעם סאָרט. אַזוי פֿאַר די סופּער מערהייַט פון סטודענטן עס מיינט אַז די שורות זענען קלאָר. אבער טאָן האַלטן דעם אין מיינונג, דער הויפּט שפּעט בייַ נאַכט ווען סטראַגאַלינג מיט עטלעכע לייזונג צו אַ פּראָבלעם שטעלן, אַז עס זענען מעקאַניזאַמז פֿאַר געטינג זיך בעסער שטיצן ווי איר זאל טראַכטן, אַפֿילו אין אַז שעה. פאַרשטיין אַז ווען מיר באַקומען תּלמיד סאַבמישאַנז, מיר קרייַז פאַרגלייַכן יעדער סאַבמישאַן דעם יאָר קעגן יעדער סאַבמישאַן לעצטע יאָר, קעגן יעדער סאַבמישאַן פון 2007, און זינט, קוקן בייַ, ווי געזונט, קאָד ריפּאַזאַטאָריז אָנליין, דיסקוסיע גרופּעס, אַרבעט זייטלעך. און מיר דערמאָנען דעם, טאַקע, אַלע פֿאַר די צוליב פון פול אַנטפּלעקונג, אַז אויב עמעצער אַנדערש קענען געפֿינען עס אָנליין, אַוואַדע, אַזוי קענען מיר דעם קורס. אבער, טאַקע, די גייסט פון די לויף בוילז אַראָפּ צו דעם פּונקט אין די סילאַבאַס. עס טאַקע איז נאָר, זייַן גלייַך. און אויב מיר האבן צו פּראָטים אויף וואָס מיט נאָר אַ ביסל מער לשון, פאַרשטיין אַז די עסאַנס פון אַלע אַרבעט אַז איר פאָרלייגן צו דעם קורס מוזן זייַן דיין אייגן. אבער ין אַז, עס זענען זיכער אַפּערטונאַטיז, און ענקערידזשמאַנט, און פּעדאַגאַדזשיקאַל ווערט אין אויסגעדרייט צו אָטהערס-- זיך, די טפס, די קאַס, די טאַס, און אנדערע אין דער קלאַס, פֿאַר שטיצן, לאָזן אַליין Friends און ראָאָממאַטעס וואס האָבן געלערנט קס און פּראָגראַממינג איידער. און אַזוי עס איז אַ פּענסיע פֿאַר אַז. און דער גענעראַל הערשן פון גראָבער פינגער איז טהיס-- ווען אַסקינג פֿאַר הילף, איר מייַ ווייַזן אייער קאָד צו אנדערע, אָבער איר מייַ ניט מיינונג זייערער. אַזוי אַפֿילו אויב איר ניטאָ אין אָפיס שעה, אָדער אין די ד זאַל, אָדער ערגעץ אַנדערש ארבעטן אויף עטלעכע שטיק שטעלן, ארבעטן אַלאָנגסייד אַ פרייַנד, וואָס איז טאָוטאַלי פייַן, אין די סוף פון די טאָג דיין אַרבעט זאָל לעסאָף געהערן צו יעדער פון איר ריספּעקטיוולי, און נישט זייַן עטלעכע קאַלאַבערייטיוו מי, אַחוץ פֿאַר די לעצט פּרויעקט ווו עס ס ערלויבט און ינקעראַדזשד. פאַרשטיין אַז אויב איר זענען סטראַגאַלינג מיט עפּעס און דיין פרייַנד נאָר כאַפּאַנז צו זיין בעסער אין דעם דעמאָלט איר, אָדער בעסער בייַ אַז פּראָבלעם ווי איר, אָדער אַ ביסל ווייַטער פאָרויס ווי איר, עס ס טאָוטאַלי גלייַך צו ווענדן צו דיין פרייַנד און זאָגן, היי, טאָן איר גייַסט קוקן אין מיין קאָד דאָ, העלפּינג מיר אָרט וואָס מיין אַרויסגעבן איז? און, אַלעווייַ, אין די אינטערעס פון פּעדאַגאַדזשיקאַל ווערט אַז פרייַנד טוט נישט נאָר זאָגן, טאַקע, טאָן דעם, אָבער אלא, וואָס זענען איר פעלנדיק אויף שורה 6, אָדער עפּעס ווי אַז? אבער די לייזונג איז ניט פֿאַר די פרייַנד ווייַטער צו איר צו זאָגן, אָה, געזונט, דאָ, לאָזן מיר ציען דעם אַרויף, און ווייַזן מיין לייזונג צו איר. אַזוי אַז איז די שורה. איר ווייַזן אייער קאָד צו אנדערע, אָבער איר מייַ ניט קוק זייערער, ​​אונטער צו די אנדערע קאַנסטריינץ אין די לויף ס סילאַבאַס. אַזוי טאָן האַלטן אין מיינונג דעם אַזוי גערופֿן באַדויערן פּונקט אין די לויף ס סילאַבאַס ווי געזונט, וואָס אויב איר טוען עטלעכע אַקט אַז איז ניט גלייַך, אָבער ברענגען עס צו די ופמערקזאַמקייַט פון די לויף ס קאָפּ ין 72 שעה, די לויף מייַ אָנטאָן היגע סאַנגשאַנז אַז מייַ אַרייַננעמען אַ ונסאַטיספאַקטאָרי אָדער פאַילינג מיינונג פֿאַר די אַרבעט דערלאנגט. אבער דער קורס וועט נישט אָפּשיקן די ענין פֿאַר ווייַטער דיסאַפּלאַנערי קאַמף, אַחוץ אין קאַסעס פון ריפּיטיד אקטן. אין אנדערע ווערטער, אויב איר טאָן מאַכן עטלעכע נאַריש, ספּעציעל שפּעט נאַכט, באַשלוס אַז די ווייַטער מאָרגן אָדער צוויי טעג שפּעטער, איר וועקן אַרויף און פאַרשטיין, וואָס איז געווען איך טראכטן? איר טאָן אין קס50 האָבן אַ ווענטיל פֿאַר פיקסיר אַז פּראָבלעם און אָונינג אַרויף צו אים, אַזוי אַז מיר וועט טרעפן איר אַפנ האַלבנ וועג און האַנדלען מיט אים אין אַ ענין וואָס איז ביידע בילדונגקרייז און ווערטפול פֿאַר איר, אָבער נאָך פּיונאַטיוו אין עטלעכע וועג. און איצט, צו נעמען די ברעג אַוועק, דעם. [ווידעא פּלייבאַק] [מוזיק פּלייינג] [סוף פּלייבאַק] דוד י מאַלאַן: אַלע רעכט, מיר זענען צוריק. און איצט מיר קוקן אין איינער פון די ערשטער פון אונדזער פאַקטיש וועלט דאָומיינז אין קס50, די קונסט פון קריפּטאָגראַפי, די קונסט פון שיקן און באקומען סוד אַרטיקלען, ענקריפּטיד אַרטיקלען אויב איר וועט, וואָס קענען בלויז זייַן דעסיפערעד אויב איר האָבן עטלעכע שליסל ינגרידיאַנט אַז די סענדער האט ווי געזונט. אזוי צו מאָטיווירן דעם מיר וועט נעמען אַ קוק אין דעם זאַך דאָ, וואָס איז אַ בייַשפּיל פון אַ סוד דעקאָדער רינג אַז קענען ווערן געניצט אין סדר צו רעכענען אויס וואָס אַ סוד אָנזאָג אַקטשאַוואַלי איז. אין פאַקט, צוריק אין די טאָג אין מיינונג שולע, אויב איר אלץ געשיקט סוד אַרטיקלען צו עטלעכע פרייַנד אָדער עטלעכע ענגשאַפט אין קלאַס, איר זאל האָבן געדאַנק איר זענען ווייל קלוג דורך אויף דיין שטיק פון פּאַפּיר טשאַנגינג, ווי, א צו ב, און ב צו C, און C צו די, און אַזוי אַרויס. אבער איר זענען אַקטשאַוואַלי ענקריפּטינג דיין אינפֿאָרמאַציע, אַפֿילו אויב עס איז געווען אַ קליין נישטיק, איז ניט אַז שווער פֿאַר די לערער צו פאַרשטיין, נו, אויב איר נאָר טוישן ב צו א און C צו בייטן, איר אַקטשאַוואַלי רעכענען אויס וואָס דער אָנזאָג איז געווען, אָבער איר זענען אין סיפערינג אינפֿאָרמאַציע. איר זענען נאָר טוען עס נאָר, פיל ווי ראַלפיע דאָ אין אַ באַרימט פֿילם אַז plays שיין פיל אַד נאַוסעום יעדער ווינטער. [ווידעא פּלייבאַק] -בע עס באקאנט צו אַלע אַז ראַלף פּאַרקער איז כירביי באשטימט אַ מיטגליד פון די ביסל יתום אַני סוד רינג און איז ענטייטאַלד צו אַלע די אַנערז און Benefits געשעעניש טהערעטאָ. -סיגנעד, קליין יתום אַני, טאָמבאַנק-געחתמעט פּיער אנדערע, אין טינט. אַנערז און Benefits, שוין אין די עלטער פון נייַן. [שאַוטינג] -נו. זאל ס באַקומען אויף מיט אים. איך טאָן ניט דאַרפֿן אַלע וואָס דזשאַז וועגן סמאַגאַלערז און פּייראַץ. -ליסטען מאָרגן נאַכט פֿאַר די קאַנקלודינג פּאַסירונג פון די שוואַרץ פּיראַט שיף. איצט, עס ס צייַט פֿאַר אַני ס סוד אָנזאָג פֿאַר איר מיטגלידער פון דער סוד רינג. געדענקען, קידס, נאָר מיטגלידער פון אַני ס סוד רינג קענען דעקאָדע אַני ס סוד אָנזאָג. געדענקען, אַני איז דיפּענדינג אויף איר. שטעלן דיין פּינס צו ב 2. דאָ איז דער אָנזאָג. 12, 11-- -איך בין אין מיין ערשטער סוד באַגעגעניש. -14, 11, 18, 16. -פּיעררע איז געווען אין גרויס קול הייַנט בייַ נאַכט. איך קען זאָגן אַז הייַנט בייַ נאַכט 'ס אָנזאָג איז טאַקע וויכטיק. -3, 25, אַז ס אַ אָנזאָג פון אַני זיך. געדענקען, טאָן ניט זאָגן ווער עס יז. -90 סעקונדעס שפּעטער, איך בין אין די בלויז צימער אין דעם הויז ווו אַ יינגל פון נייַן קען זיצן אין פּריוואַטקייט און דעקאָדע. אַהאַ, ב! איך געגאנגען צו די ווייַטער, י דער ערשטער וואָרט איז זייַן. ד, עס איז געווען קומענדיק גרינגער איצט, ו, 25-- -אָה, ​​קומען אויף, ראַלפיע, איך גאַטאַ גיין! -י'לל זייַן רעכט אַראָפּ, מאַ! דזשי וויז! -ט, אָ, זיין זיכער טאָ-- זייַן זיכער צו וואָס? וואָס איז געווען קליין יתום אַני טריינג צו זאָגן? זייט זיכער צו וואָס? -ראַלפיע, אַנדי האט גאַט צו גיין, וועט איר ביטע קומען אויס? -אַלע רעכט, מאַ! איך וועט זיין רעכט אויס! -איך איז געטינג נעענטער איצט. די שפּאַנונג איז געווען שרעקלעך. וואָס איז עס? דער גורל פון די פּלאַנעט מייַ הענגען אין די וואָג. -ראַלפיע! אַנדי ס גאַטאַ גיין! -י'לל זייַן רעכט אויס, פֿאַר געשריגן הויך! -אַלמאָסט דאָרט, מיין Fingers פלעוו, מיין מיינונג איז געווען אַ שטאָל טראַפּ, יעדער פּאָרע וויבראַטעד. עס איז געווען כּמעט קלאָר, יאָ, יאָ, יאָ. -בע זיכער צו טרינקען דיין אָוואַלטינע. אָוואַלטינע? א קרוממי געשעפט? זון פון אַ צויג. [סוף פּלייבאַק] דוד י מאַלאַן: גוט, אַזוי וואָס איז געווען אַ זייער לאַנג וועג פון ינטראָודוסינג קריפּטאָגראַפי, און אויך אָוואַלטינע. אין פאַקט, פון דעם אַלט אַדווערט דאָ, וואָס איז אָוואַלטינע אַזוי גוט? עס איז אַ קאַנסאַנטרייטאַד יקסטראַקשאַן פון צייַטיק גערשטן מאַלץ, ריין קרימי קו ס מילך, און ספּעשלי צוגעגרייט קאַקאַאָ, צוזאַמען מיט נאַטירלעך פאָספאַטידעס און וויטאַמינס. עס איז ווייַטער באַפֿעסטיקטע מיט נאָך וויטאַמינס ב און די, יום. און איר קענען נאָך באַקומען עס, משמעות, אויף אַמאַזאָן, ווי מיר האבן דאָ. אבער די מאָוטאַוויישאַן דאָ איז צו פאָרשטעלן קריפּטאָגראַפי, ספּעסיפיקאַללי אַ טיפּ פון קריפּטאָגראַפי געקענט ווי סוד שליסל קריפּטאָגראַפי. און ווי דער נאָמען סאַגדזשעס, די גאנצע זיכערהייַט פון אַ סוד שליסל קריפּטאָ סיסטעם, אויב איר וועט, אַ מעטאַדאַלאַדזשי פֿאַר פּונקט סקראַמבאַלינג אינפֿאָרמאַציע צווישן צוויי מענטשן, איז אַז בלויז די אָפּשיקער און בלויז די באַקומער וויסן אַ סוד קיי-- עטלעכע ווערט, עטלעכע סוד פראַזע, עטלעכע סוד נומער, אַז אַלאַוז זיי צו ביידע ינקריפּט און דעקריפּט אינפֿאָרמאַציע. און קריפּטאָגראַפי, טאַקע, איז נאָר דעם פון וואָך 0. עס ס אַ פּראָבלעם ווו עס ס ינפּוץ, ווי די פאַקטיש אָנזאָג אין ענגליש אָדער וועלכער שפּראַך אַז איר ווילן צו שיקן צו עמעצער אין קלאַס, אָדער אַריבער דער אינטערנעץ. עס איז עטלעכע רעזולטאַט, וואָס איז געגאנגען צו זיין די סקראַמבאַלד אָנזאָג אַז איר ווילן די באַקומער צו באַקומען. און אַפֿילו אויב עמעצער אין דער מיטן נעמט עס אויך, איר טאָן ניט וועלן זיי צו דאַווקע קענען צו דעקריפּט עס, ווייַל ין פון דעם שוואַרץ קעסטל, אָדער אַלגערידאַם, איז עטלעכע מעקאַניזאַם, עטלעכע שריט דורך שריט ינסטראַקשאַנז, פֿאַר גענומען אַז ינפּוט און קאַנווערטינג עס אין די רעזולטאַט, אין אַלעווייַ אַ זיכער וועג. און, אין פאַקט, עס איז עטלעכע וואָקאַבולאַרי אין דעם וועלט ווי גייט. פּליין טעקסט איז דער וואָרט אַ קאָמפּיוטער געלערנטער וואָלט נוצן צו באַשרייַבן די ינפּוט אָנזאָג, ווי די ענגליש אָדער וועלכער שפּראַך איר אַקטשאַוואַלי ווילן צו שיקן צו עטלעכע אנדערע מענטש. און דעריבער דער סיפערטעקסט איז די שטופּנ זיך צו די ענסיפערעד, אָדער ינקריפּטיד, ווערסיע דערפון. אבער דאָרט ס איין אנדערע ינגרידיאַנט דאָ. עס ס איין אנדערע ינפּוט צו סוד שליסל קריפּטאָגראַפי. און אַז איז דער שליסל זיך, וואָס איז, בכלל, ווי מיר וועט זען, אַ נומער, אָדער בריוו, אָדער וואָרט, וועלכער די אַלגערידאַם עס איז אַקטשאַוואַלי יקספּעקץ. און ווי טאָן איר דעקריפּט אינפֿאָרמאַציע? ווי טאָן איר ונסקראַמבלע עס? נו, איר נאָר פאַרקערט די אַוטפּוץ און די ינפּוץ. אין אנדערע ווערטער, אַמאָל עמעצער נעמט אייער ינקריפּטיד אָנזאָג, ער אָדער זי נאָר האט צו וויסן אַז זעלביקער שליסל. זיי האָבן באקומען די סיפערטעקסט. און דורך פּלאַגינג די צוויי ינפּוץ אין די קריפּטאָ סיסטעם, די אַלגערידאַם, דעם שוואַרץ קעסטל, אויס זאָל קומען דער אָריגינעל פּלאַינטעקסט. און אַזוי אַז ס די זייער הויך מדרגה קוק וואס קריפּטאָגראַפי איז אַקשלי אַלע וועגן. אזוי לאָזן 'ס באַקומען דאָרט. זאל ס איצט קוק ונטער די קאַפּטער פון עפּעס מיר ווע שוין גענומען פֿאַר געגעבן פֿאַר די פאַרגאַנגענהייַט וואָך, און פֿאַר דעם סעסיע הערע-- די שטריקל. אַ שטריקל אין די סוף פון די טאָג איז נאָר אַ סיקוואַנס פון אותיות. עס זאל זיין העלא וועלט, אָדער העלא זאַמילאַ, אָדער וועלכער. אבער וואָס טוט אַז מיינען צו זייַן אַ סיקוואַנס פון אותיות? אין פאַקט, די קס50 ביבליאָטעק גיט אונדז אַ דאַטן טיפּ גערופֿן שטריקל. אבער עס איז אַקטשאַוואַלי ניט אַזאַ זאַך ווי אַ שטריקל אין סי עס טאַקע איז נאָר אַ סיקוואַנס פון כאַראַקטער, כאַראַקטער, כאַראַקטער, כאַראַקטער, צוריק, צו צוריק, צו צוריק צו צוריק, צו צוריק ין פון דיין קאָמפּיוטער ס זכּרון, אָדער באַראַן. און מיר וועט קוקן דיפּער אין אַז אין די צוקונפֿט ווען מיר קוקן אין זיקאָרן זיך, און די יוטאַלאַזיישאַן, און די טרעץ אַז זענען ינוואַלווד. אבער לאָזן ס באַטראַכטן די שטריקל זאַמילאַ. אַזוי נאָר די נאָמען פון די מענטשלעך דאָ, זאַמילאַ, וואָס איז אַ סיקוואַנס פון אותיות, ז-א-ב-י-ל-א. און איצט לאָזן ס רעכן אַז זאַמילאַ ס נאָמען איז ווייל סטאָרד ין פון אַ קאָמפּיוטער פּראָגראַם. נו, עס שטייט צו סיבה אַז מיר זאָל זייַן ביכולת צו קוקן אין יענע אותיות ינדיווידזשואַלי. אזוי איך בין נאָר געגאנגען צו ציען אַ ביסל קעסטל אַרום זאַמילאַ ס נאָמען דאָ. און עס איז די פאַל אין C אַז ווען איר האָבן אַ שטריקל, ווי זאַמילאַ-- און אפֿשר אַז שטריקל האט קומען צוריק פון אַ פֿונקציע ווי באַקומען שטריקל, איר קענען אַקטשאַוואַלי מאַניפּולירן עס כאַראַקטער דורך כאַראַקטער. איצט, דאָס איז גערמאַנע פֿאַר די שמועס אין האַנט, ווייַל אין קריפּטאָגראַפי אויב איר ווילן צו טוישן א צו ב, און ב צו C, און C צו די, און אַזוי אַרויס, איר דאַרפֿן צו קענען צו קוקן אין די יחיד אותיות אין אַ שטריקל. איר דאַרפֿן צו קענען צו טוישן די ז צו עפּעס אַנדערש, די א צו עפּעס אַנדערש, די ב צו עפּעס אַנדערש, און אַזוי אויף. און אַזוי מיר דאַרפֿן אַ וועג, פּראָגראַממאַטיקאַללי, אַזוי צו רעדן, אין C צו זייַן ביכולת צו טוישן און קוק אין יחיד אותיות. און מיר קענען טאָן דעם ווי גייט. זאל מיר גיין קאָפּ צוריק אין קס50 ייד. און לאָזן מיר גיין פאָרויס און שאַפֿן אַ נייַ טעקע אַז איך וועט רופן דעם צייַט סטרינג0, ווי אונדזער ערשטער אַזאַ לעמאָשל, פּונקט C. און איך בין געגאנגען צו גיין פאָרויס און בייַטש עס אַרויף ווי גייט. אזוי אַרייַננעמען קס50.ה, און דעמאָלט אַרייַננעמען נאָרמאַל יאָ.ה, וואָס איך בין כּמעט שטענדיק געגאנגען צו זיין ניצן אין מיין מגילה, לפּחות טכילעס. ינט הויפּט פּאָסל, און דעמאָלט אין דאָ איך בין געגאנגען צו טאָן סטרינגס געץ באַקומען שטריקל. און דעמאָלט איך בין געגאנגען צו גיין פאָרויס און טאָן דעם. איך ווילן צו גיין פאָרויס און, ווי אַ מייושעוודיקייַט טשעק, נאָר זאָגן, העלא, פּראָצענט ס, האַלב-צווייפּינטל, מאכט שטריקל 0. Uh טאַקע, וואָס האט איך טאָן דאָ? אָה, איך האט ניט צאַפּן עס אין. אזוי לעקציע געלערנט, אַז איז נישט ינטענשאַנאַל. אַזוי טעות, מער פּראָצענט קאַנווערזשאַנז ווי דאַטן טענות. און דעם איז ווו, אין שורה 7-- גוט, אַזוי איך האָבן, ציטירן ונקוואָטע, אַז ס מיין שטריקל צו פּרינטף. איך ווע גאַט אַ פּראָצענט צייכן. אבער איך בין פעלנדיק די רגע אַרגומענט. איך בין פעלנדיק די קאָמע ס, וואָס איך האט האָבן אין פֿריִערדיקע יגזאַמפּאַלז. אַזוי אַ גוט געלעגנהייט צו פאַרריכטן איינער מער גרייַז, אַקסאַדענאַלי. און איצט לאָזן מיר לויפן סטרינג0, טיפּ אין זאַמילאַ. קעשורע, העלא זאַמילאַ. אַזוי מיר ווע לויפן דעם מין פון פּראָגראַם אַ ביסל אַנדערש מאָל איצט. אבער לאָזן ס טאָן עפּעס אַ ביסל אַנדערש דעם צייַט. אָנשטאָט פּונקט דרוקן זאַמילאַ ס גאַנץ נאָמען אויס מיט פּרינטף, זאל ס טאָן עס כאַראַקטער דורך כאַראַקטער. איך בין געגאנגען צו נוצן אַ פֿאַר שלייף. און איך בין געגאנגען צו געבן זיך אַ קאַונטינג בייַטעוודיק, גערופֿן איך. און איך בין געגאנגען צו האַלטן יטעראַטינג, אַזוי לאַנג ווי איך איז ווייניקער ווי די לענג פון ס. עס טורנס אויס, מיר האבן נישט טאָן דאָס לעצטע מאָל, אַז C קומט מיט אַ פֿונקציע גערופֿן סטערלינג. צוריק אין די טאָג, און אין אַלגעמיין נאָך ווען ימפּלאַמענינג פֿעיִקייטן, יומאַנז וועט אָפֿט קלייַבן זייער סוקסינקט נעמען אַז מין פון געזונט ווי וואָס איר ווילן, אַפֿילו כאָטש עס ס ' פעלנדיק אַ ביסל וואַולז אָדער אותיות. אזוי סטערלינג איז די נאָמען פון אַ פֿונקציע וואָס נעמט אַן אַרגומענט צווישן קלאַמערן אַז זאָל זיין אַ שטריקל. און עס נאָר קערט אַ ינטאַדזשער, די לענג פון וואָס שטריקל. אזוי דעם פֿאַר שלייף אויף שורה 7 איז געגאנגען צו אָנהייבן קאַונטינג בייַ איך יקוואַלז 0. עס ס געגאנגען צו ינקראַמאַנט איך אויף יעדער יטעראַטיאָן דורך 1, ווי מיר ווע שוין טאן אַ ביסל מאל. אבער עס ס 'געגאנגען צו נאָר טאָן דעם אַרויף ביז די פונט ווען איך איז די לענג פון די שטריקל זיך. אַזוי דעם איז אַ וועג פון, לעסאָף, יטעראַטינג איבער די אותיות אין די שטריקל ווי איז גייט. איך בין געגאנגען צו דרוקן אויס נישט אַ גאַנץ שטריקל, אָבער פּראָצענט C, אַ איין כאַראַקטער נאכגעגאנגען דורך אַ נייַ שורה. און דעמאָלט איך בין געגאנגען צו גיין פאָרויס, און איך דאַרפֿן צו זאָגן איך ווילן צו דרוקן ITH כאַראַקטער פון ס. אַזוי אויב איך איז די בייַטעוודיק אַז ינדיקייץ דער אינדעקס פון דעם שטריקל, ווו איר זענט אין עס, איך דאַרפֿן צו זייַן ביכולת צו זאָגן, געבן מיר דעם ITH כאַראַקטער פון ס. און C האט אַ וועג פון טאן דעם מיט קוואַדראַט בראַקאַץ. איר נאָר זאָגן די נאָמען פון די שטריקל, וואָס אין דעם פאַל איז ס. דעמאָלט איר נוצן קוואַדראַט בראַקאַץ, וואָס זענען יוזשאַוואַלי נאָר אויבן דיין צוריקקומען אָדער קום שליסל אויף די קלאַוויאַטור. און דעמאָלט איר שטעלן די אינדעקס פון די כאַראַקטער אַז איר ווילן צו דרוקן. אזוי די אינדעקס איז געגאנגען צו זיין אַ נומבער-- 0, אָדער 1, אָדער 2, אָדער 3, אָדער פּונקט, פּונקט, פּונקט, עטלעכע אנדערע נומער. און מיר ענשור אַז עס ס 'געגאנגען צו זיין די רעכט נומער, ווייַל איך אָנהייבן קאַונטינג בייַ 0. און דורך ניט ויסצאָלן, די ערשטער כאַראַקטער אין אַ שטריקל איז דורך צוזאַמענפאָר 0. און די רגע כאַראַקטער איז קאַנטיקער 1. און די דריט כאַראַקטער איז קאַנטיקער 2. און איר טאָן נישט וועלן צו גיין צו ווייַט, אָבער מיר וועלן נישט ווייַל מיר רע געגאנגען צו בלויז ינקראַמאַנט איך ביז עס יקוואַלז די לענג פון די שטריקל. און אין וואָס פונט, דעם פֿאַר שלייף וועט האַלטן. אַזוי לאָזן מיר גיין פאָרויס און ראַטעווען דעם פּראָגראַם, און לויפן מאַכן שטריקל 0. אבער איך סקרוד אַרויף. ימפּליסאַטלי דיקלערינג ביבליאָטעק פֿונקציע סטערלינג מיט טיפּ אַזאַ און סוטש-- איצט, דעם סאָונדס באַקאַנט. אבער עס ס ניט פּרינטף. און עס ס ניט באַקומען שטריקל. איך האט נישט שרויף אַרויף אין די זעלבע וועג דעם מאָל. אבער באַמערקן אַראָפּ דאָ אַ ביסל אַראָפּ ווייַטער, אַרייַננעמען די כעדער סטרינג.ה, בפֿירוש צושטעלן די דעקלאַראַציע פֿאַר סטערלינג. אזוי עס איז אַקטשאַוואַלי אַ קלו אין עס. און טאַקע עס טורנס אויס עס ס אנדערן כעדער טעקע וואָס מיר ווע נישט געניצט אין קלאַס נאָך, אָבער עס ס צווישן די בנימצא צו איר, גערופֿן סטרינג.ה. און אין אַז טעקע, סטרינג.ה איז סטערלינג דערקלערט. אַזוי לאָזן מיר גיין פאָרויס און ראַטעווען דעם, מאַכן שטריקל 0-- פייַן, קיין טעות אַרטיקלען דעם מאָל. ./סטרינג0 זאַמילאַ, און איך בין וועגן צו שלאָגן קומען, אין וואָס פונט געצטרינג איז געגאנגען צו קריק די שטריקל, לייגן עס אין ס. דעמאָלט אַז פֿאַר שלייף איז געגאנגען צו יטעראַטע איבער ד ס אותיות איין אין אַ צייַט, און פאַרקויפט זיי איינער פּער שורה, ווייַל איך האט אַז באַקקסלאַש N אין די סוף. אַזוי איך קען דורכלאָזן אַז באַקקסלאַש ן, און דעמאָלט נאָר דרוקן זאַמילאַ אַלע אין די זעלבע שורה, Effectively רעימפּלעמענטינג פּרינטף, וואָס איז ניט אַלע אַז נוצלעך. אבער אין דעם פאַל, איך ווע ניט געטאן אַז. איך 'ווע אַקטשאַוואַלי געדרוקט איין כאַראַקטער אין אַ צייַט, איינער פּער שורה, אַזוי אַז מיר אַקשלי זען די ווירקונג. אבער איך זאָל טאָן איינער זאַך דאָ. און מיר וועט קומען צוריק צו דעם אין אַ צוקונפֿט וואָך. עס טורנס אויס אַז דעם קאָד איז פּאַטענטשאַלי וואָגן. עס טורנס אויס אַז באַקומען שטריקל און עטלעכע אנדערע פֿעיִקייטן אין לעבן טאָן ניט דאַווקע שטענדיק צוריקקומען וואָס איר ניטאָ יקספּעקטינג. מיר וויסן פון קלאַס לעצטע מאָל אין דעם אַז באַקומען שטריקל איז געמיינט צו צוריקקומען אַ שטריקל. אבער וואָס אויב דער באַניצער טייפּס אויס אַזאַ אַ לאַנג וואָרט, אָדער פּאַראַגראַף, אָדער עסיי אַז עס ס נאָר ניט גענוג זכּרון אין די קאָמפּיוטער צו פּאַסיק עס. ווי, וואָס אויב עפּעס גייט פאַלש ונטער דער קאַפּטער? עס זאל ניט פּאַסירן אָפֿט, אָבער עס קען פּאַסירן אַמאָל אין אַ בשעת, זייער זעלטן. און אַזוי עס טורנס אויס אַז באַקומען שטריקל און פֿעיִקייטן ווי עס טאָן ניט דאַווקע שטענדיק צוריקקומען סטרינגס. זיי זאל צוריקקומען עטלעכע טעות ווערט, עטלעכע סענטינעל ווערט אַזוי צו רעדן, אַז ינדיקייץ אַז עפּעס האט ניטאָ אומרעכט. און איר וואָלט נאָר וויסן דעם פון ווייל געלערנט עס אין קלאַס איצט, אָדער ווייל לייענען עטלעכע מער דאַקיומענטיישאַן. עס טורנס אויס אַז באַקומען שטריקל קענען צוריקקומען אַ ווערט גערופֿן נאַל. נאַל איז אַ ספּעציעל ווערט אַז מיר וועט קומען צוריק צו אין אַ צוקונפֿט וואָך. אבער פֿאַר איצט, נאָר וויסן אַז אויב איך ווילן צו זיין טאַקע געהעריק אין מאָווינג פאָרויס ניצן באַקומען שטריקל, איך זאָל ניט נאָר רופן עס, און בליינדלי נוצן זייַן צוריקקומען ווערט, טראַסטינג אַז עס ס אַ שטריקל. איך זאָל ערשטער זאָגן, היי, וואַרטן אַ מינוט, נאָר גיינ ווייַטער אויב ס טוט ניט גלייַך נאַל, ווו נאַל, ווידער, איז נאָר עטלעכע ספּעציעל ווערט. און עס ס די בלויז ספּעציעל ווערט איר דאַרפֿן צו זאָרג וועגן פֿאַר באַקומען שטריקל. באַקומען שטריקל איז אָדער געגאנגען צו צוריקקומען אַ שטריקל אָדער נאַל. און דעם עקסקלאַמיישאַן פונט יקוואַלז צייכן איר זאל וויסן פון אפֿשר מאַט קלאַס אַז איר זאל ציען אַ גלייַך צייכן מיט אַ שורה דורך אים צו אָנווייַזן ניט גלייַך. אַז ס 'נישט בכלל אַ כאַראַקטער איר קענען דרוקן אויף אייער קלאַוויאַטור. און אַזוי אין רובֿ פּראָגראַממינג שפּראַכן, ווען איר ווילן צו זאָגן ניט גלייַך, איר נוצן אַ עקסקלאַמיישאַן פונט, אַנדערש באקאנט ווי קלאַפּ. אזוי איר זאָגן קלאַפּ יקוואַלז, וואָס מיטל נישט יקוואַלז, לאַדזשיקלי. עס ס נאָר ווי עס ס 'נישט אַ גרעסער ווי, אָדער גלייַך צו, אָדער ווייניקער ווי אָדער גלייַך צו שליסל אויף דיין קלאַוויאַטור וואָס טוט עס אַלע אין איין סימבאָל. אַזוי אַז ס וואָס, אין פאַרגאַנגענהייַט יגזאַמפּאַלז, איר האט אַ עפענען קאַנטיקער, און דעמאָלט אַ גלייַך צייכן, אין סדר צו טאָן גרעסער ווי אָדער, זאָגן, ווייניקער ווי. אזוי וואָס ס די טאַקעאַווייַ דאָ? דאס איז נאָר אַ וועג איצט פון ינטראָודוסינג דעם סינטאַקס, דעם שטריך, יטעראַטינג איבער יחיד אותיות אין אַ שטריקל. און פּונקט ווי יענע קוואַדראַט בראַקאַץ לאָזן איר צו באַקומען בייַ זיי, באַטראַכטן די קוואַדראַט בראַקאַץ ווי מין פון כינטינג בייַ דעם אַנדערלייינג פּלאַן, ווערביי יעדער כאַראַקטער ין פון אַ שטריקל איז מין פון באַקסט אין ערגעץ ונטער די קאַפּטער אין דיין קאָמפּיוטער ס זכּרון. אבער לאָזן ס מאַכן אַ וואַריאַנט פון דעם. עס טורנס אויס אַז דעם פּראָגראַם איז ריכטיק. אזוי פּער קס50 ס אַקסעס פֿאַר יוואַליוייטינג קאָד, דאָס איז ריכטיק איצט. ספּעציעל איצט אַז איך בין קאָנטראָלירונג פֿאַר נאַל, דעם פּראָגראַם זאָל קיינמאָל קראַך. און איך נאָר וויסן אַז פון דערפאַרונג. אבער דאָרט ס 'גאָרנישט אַנדערש אַז מיר קענען טאַקע גיין אומרעכט דאָ. אבער עס ס ניט זייער געזונט-דיזיינד, ווייַל לאָזן ס גיין צוריק צו באַסיקס. ערשטער, פּרינסיפּלעס-- וואָס טוט אַ פֿאַר שלייף טאָן? א פֿאַר שלייף טוט דרייַ זאכן. עס יניטיאַליזעס עטלעכע ווערט, אויב איר פרעגן עס צו. עס טשעקס אַ צושטאַנד. און דעמאָלט נאָך יעדער יטעראַטיאָן, נאָך יעדער ציקל, עס ינגקראַמאַנץ עטלעכע ווערט, אָדער וואַלועס, דאָ. אזוי וואָס טוט אַז מיינען? מיר ינישאַלייז איך צו 0. מיר קאָנטראָלירן און מאַכן זיכער איך איז ווייניקער ווי די לענג פון ס, וואָס איז ז-א-ב-י-ל-א, אַזוי וואָס איז ווייניקער ווי 6. און, טאַקע, 0 ווי ווייניקער ווי 6. מיר דרוקן אויס ז פון זאַמילאַ ס נאָמען. דעמאָלט מיר ינקראַמאַנט איך 0-1. מיר דעמאָלט טשעק, איז 1 ווייניקער ווי די לענג פון ס? די לענג פון s איז 6. יא, עס איז. אַזוי מיר דרוקן אַ אין זאַמילאַ ס נאָמען, ז. מיר ינקראַמאַנט איך פֿון 0, צו 1, צו 2. מיר דעמאָלט טשעק, איז 2 ווייניקער ווי די לענג פון זאַמילאַ ס נאָמען. 6- אַזוי 2 איז ווייניקער ווי 6. יא, לאָזן ס דרוקן אויס איצט עם אין זאַמילאַ ס נאָמען, די דריט כאַראַקטער. דער שליסל דאָ איז אַז אויף יעדער יטעראַטיאָן פון די געשיכטע, איך בין קאָנטראָלירונג, איז איך ווייניקער ווי די לענג פון זאַמילאַ? אבער די כאַפּן איז אַז סטערלינג איז נישט אַ פאַרמאָג. יענע פון ​​איר וואס האָבן פּראָוגראַמד איידער אין ז'אבא אָדער אנדערע שפּראַכן זאל וויסן די לענג פון אַ שטריקל איז אַ פאַרמאָג, נאָר עטלעכע לייענען בלויז ווערט. אין C אין דעם פאַל, אויב דאָס איז אַ פֿונקציע וואָס איז ממש קאַונטינג די נומער פון אותיות אין זאַמילאַ יעדער מאָל מיר רופן אַז פונקציאָנירן. יעדער מאָל איר פרעגן די קאָמפּיוטער צו נוצן סטערלינג, עס ס גענומען אַ קוק בייַ זאַמילאַ, און געזאגט ז-א-ב-י-ל-א, 6. און עס קערט 6. די ווייַטער צייַט איר רופן עס ין אַז פֿאַר שלייף, עס ס געגאנגען צו קוקן אין זאַמילאַ ווידער, זאָגן ז-א-ב-י-ל-א, 6. און עס ס 'געגאנגען צו צוריקקומען 6. אזוי וואָס ס נאַריש וועגן דעם פּלאַן? וואָס איז מיין קאָד נישט אַ 5 אויס פון 5 פֿאַר פּלאַן רעכט איצט, אַזוי צו רעדן? נו, איך בין אַסקינג אַ קשיא אַננעסאַסעראַלי. איך בין טאן מער אַרבעט ווי איך דאַרפֿן צו. אַזוי אַפֿילו כאָטש דער ענטפער איז ריכטיק, איך בין אַסקינג די קאָמפּיוטער, וואָס איז די לענג פון זאַמילאַ ווידער, און ווידער, און ווידער, און ווידער? און אַז ענטפֿערן איז קיינמאָל געגאנגען צו טוישן. עס ס שטענדיק געגאנגען צו זייַן 6. אזוי אַ בעסער לייזונג ווי דעם וואָלט זייַן דעם ווייַטער ווערסיע. זאל מיר גיין פאָרויס און לייגן עס אין אַ באַזונדער טעקע גערופֿן סטרינג1.ק, נאָר צו האַלטן עס באַזונדער. און עס טורנס אויס אין אַ פֿאַר שלייף, איר קענען טאקע דערקלערן קייפל וועריאַבאַלז אין אַמאָל. אַזוי איך בין געגאנגען צו האַלטן איך און שטעלן אים צו 0. אבער איך בין אויך געגאנגען צו לייגן אַ קאָמע, און זאָגן, געבן מיר אַ בייַטעוודיק געהייסן ן, וועמענס ווערט יקוואַלז די שטריקל לענג פון ס. און איצט, ביטע מאַכן מיין צושטאַנד אַזוי לאַנג ווי איך איז ווייניקער ווי ן. אַזוי אין דעם וועג, די לאָגיק איז יידעניקאַל אין די סוף פון די טאָג. אבער איך בין רימעמבערינג די ווערט 6, אין דעם פאַל. וואָס איז די לענג פון זאַמילאַ ס נאָמען? און איך בין פּאַטינג עס בייַ ן. און איך בין נאָך קאָנטראָלירונג די צושטאַנד יעדער צייַט. איז 0 ווייניקער ווי 6? איז 1 ווייניקער ווי 6? איז 2 ווייניקער ווי 6, און אַזוי אַרויס? אבער איך בין נישט אַסקינג די קאָמפּיוטער ווידער, און ווידער, וואָס ס די לענג פון זאַמילאַ ס נאָמען? וואָס ס די לענג פון זאַמילאַ ס נאָמען? וואָס ס די לענג פון דעם זאַמילאַ ס נאָמען? איך בין ממש רימעמברינג אַז ערשטער און נאָר ענטפֿערן אין דעם רגע בייַטעוודיק ען. אזוי דעם איצט וואָלט זיין ניט בלויז ריכטיק, אָבער אויך געזונט-דיזיינד. איצט, וואָס וועגן נוסח? איך ווע געהייסן מיין וועריאַבאַלז שיין געזונט, איך וואָלט זאָגן. זיי ניטאָ סופּער סוקסינקט רעכט איצט. און אַז ס טאָוטאַלי פייַן. אויב איר נאָר האָבן איין שטריקל אין אַ פּראָגראַם, איר זאל ווי געזונט רופן עס ס פֿאַר שטריקל. אויב איר נאָר האָבן איינער בייַטעוודיק פֿאַר קאַונטינג אין אַ פּראָגראַם, איר זאל ווי געזונט רופן עס איך. אויב איר האָבן אַ לענג, ן איז סופּער פּראָסט ווי געזונט. אבער איך האב נישט קאַמענטאַד קיין פון מיין קאָד. איך ווע ניט ינפאָרמעד די רעאַדער-- צי אַז ס 'מיין טף, אָדער טאַ, אָדער נאָר קאָללעאַגוע-- וואָס איז געמיינט צו זייַן געגאנגען אויף אין דעם פּראָגראַם. און אַזוי צו באַקומען גוט נוסח, וואָס איך וואָלט ווילן צו טאָן איז טהיס-- עפּעס ווי פרעגן באַניצער פֿאַר ינפּוט. און איך קען רירייט דעם קיין נומער פון וועגן. מאַכן זיכער ס-- מאַכן זיכער באַקומען שטריקל אומגעקערט אַ שטריקל. און דעמאָלט אין הערע-- און דעם איז טאָמער די מערסט וויכטיק קאָממענט-- יטעראַטע איבער די אותיות אין s איינער בייַ אַ מאָל. און איך קען נוצן קיין ברירה פון ענגליש שפּראַך דאָ צו באַשרייַבן יעדער פון די טשאַנגקס פון קאָד. נאָטיץ אַז איך האָבן ניט שטעלן אַ באַמערקונג אויף יעדער ליניע פון ​​קאָד, טאַקע נאָר אויף די טשיקאַווע אָנעס, די אָנעס אַז האָבן עטלעכע טייַטש אַז איך זאל ווילן צו מאַכן סופּער קלאָר צו עמעצער לייענען מיין קאָד. און וואָס זענען איר פאַך באַקומען שטריקל פרעגן באַניצער פֿאַר ינפּוט? אַפֿילו אַז איינער איז ניט דאַווקע אַלע אַז דיסקריפּטיוו. אבער עס העלפּס דערציילן אַ געשיכטע, ווייַל די רגע שורה אין די געשיכטע איז, מאַכן זיכער באַקומען שטריקל אומגעקערט אַ שטריקל. און די דריטע שורה אין די געשיכטע איז, יטעראַטע איבער די אותיות אין s איינער בייַ אַ מאָל. און איצט נאָר פֿאַר גוט מאָס, איך בין געגאנגען צו גיין פאָרויס און לייגן איינער מער באַמערקן אַז פּונקט זאגט דרוקן איך-טיייטש כאַראַקטער אין ס. איצט, וואָס האָבן איך געטאן אין די סוף פון די טאָג? איך האָבן צוגעגעבן עטלעכע ענגליש ווערטער אין די פאָרעם פון באַמערקונגען. די צעהאַקן צעהאַקן סימבאָל מיטל, היי, קאָמפּיוטער דאָס איז פֿאַר די מענטש, נישט פֿאַר איר, די קאָמפּיוטער. אַזוי זיי ניטאָ איגנאָרירט לאַדזשיקלי. זיי ניטאָ נאָר דאָרט. און, טאַקע, קס50 ייד ווייזט זיי ווי גרוי, ווי ווייל נוצלעך, אָבער ניט שליסל צו די פּראָגראַם. נאָטיץ וואָס איר קענען איצט טאָן. צי איר וויסן C פּראָגראַממינג אָדער ניט, איר קענען נאָר שטיין צוריק אין דעם פּראָגראַם, און אָפּשעפּן די באַמערקונגען. בעט באַניצער פֿאַר ינפּוט, מאַכן זיכער באַקומען שטריקל אומגעקערט אַ שטריקל, יטעראַטע איבער די אותיות אין ס איין אין אַ צייַט, דרוק די כאַראַקטער איך-סטן כאַראַקטער אין ס-- איר טאָן ניט אַפֿילו האָבן צו קוקן בייַ די קאָד צו פֿאַרשטיין וואָס דעם פּראָגראַם טוט. און, בעסער נאָך, אויב איר זיך קוקן בייַ דעם פּראָגראַם אין אַ וואָך אָדער צוויי, אָדער אַ חודש, אָדער אַ יאָר, איר אויך טאָן ניט האָבן צו גלאָצן בייַ דעם קאָד, טריינג צו געדענקען, וואָס איז געווען איך טריינג צו טאָן מיט דעם קאָד? איר ווע דערציילט זיך. איר ווע דיסקרייבד עס פֿאַר זיך, אָדער עטלעכע קאָלעגע, אָדער טאַ, אָדער טף. און אַזוי דעם וואָלט איצט זייַן ריכטיק, און גוט פּלאַן, און לעסאָף גוט נוסח ווי געזונט. אַזוי טאָן האַלטן אַז אין מיינונג. אַזוי דאָרט ס איין אנדערע זאַך איך בין געגאנגען צו טאָן דאָ אַז קענען איצט אַנטדעקן פּונקט וואָס ס געגאנגען אויף ונטער דער קאַפּטער. אַזוי דאָרט ס דעם שטריך אין C, און אנדערע שפּראַכן, גערופֿן טיפּעקאַסטינג אַז יעדער ימפּליסאַטלי אָדער בפֿירוש אַלאַוז איר צו בייַטן פֿון איין דאַטן טיפּ צו אן אנדער. מיר ווע שוין דילינג אַזוי ווייַט הייַנט מיט סטרינגס. און סטרינגס זענען אותיות. אבער צוריקרופן פון וואָך 0, וואָס זענען אותיות? אותיות זענען נאָר אַ אַבסטראַקציע אויף שפּיץ פון נומבערס-- דעצימאַל נומערן, און דעצימאַל נומערן זענען טאַקע נאָר אַ אַבסטראַקציע אויף שפּיץ פון ביינערי נומערן, ווי מיר Defined עס. אזוי אותיות זענען נומערן. און נומערן זענען אותיות, נאָר דיפּענדינג אויף די קאָנטעקסט. און עס טורנס אויס אַז ין פון אַ קאָמפּיוטער פּראָגראַם, קענען איר ספּעציפיצירן ווי איר ווילן צו קוקן בייַ די ביטן ין פון וואָס פּראָגראַם? ריקאָל פון וואָך 0 אַז מיר האבן אַססיי, וואָס איז נאָר דעם קאָד מאַפּינג אותיות צו נומערן. און מיר געזאגט, הויפּטשטאָט א איז 65. קאַפּיטאַל בייטן איז 66, און אַזוי אַרויס. און באַמערקן, מיר יסענשאַלי האָבן טשאַרס אויף די שפּיץ רודערן דאָ, ווי C וואָלט רופן זיי, אותיות, און דעמאָלט ינץ אויף די רגע רודערן. און עס טורנס אויס איר קענען בייַטן סימלאַסלי צווישן די צוויי, טיפּיקלי. און אויב מיר ווילן צו טאָן דעם דיליבראַטלי, מיר זאל וועלן צו מאַכנ זיך עפּעס ווי דעם. מיר זאל וועלן צו בייַטן אויבערשטער פאַל צו נידעריקער פאַל, אָדער נידעריקער פאַל צו אויבערשטער פאַל. און עס טורנס אויס דאָרט ס אַקשלי אַ מוסטער דאָ מיר קענען אַרומנעמען אין נאָר אַ מאָמענט. אבער לאָזן ס קוק ערשטער אין אַ בייַשפּיל פון טאן דעם בפֿירוש. איך בין געגאנגען צו גיין צוריק אין קס50 ייד. איך בין געגאנגען צו שאַפֿן אַ טעקע גערופֿן אַססיי 0.ק. און איך בין געגאנגען צו גיין פאָרויס און לייגן מיין נאָרמאַל יאָ.ה אין די שפּיץ, ינט הויפּט פּאָסל אין די שפּיץ פון מיין פונקציאָנירן. און דעמאָלט איך בין נאָר געגאנגען צו טאָן די פאָללאָווינג-- אַ פֿאַר שלייף פֿון איך יקוואַלז, לאָזן 'ס זאָגן, 65. און דעמאָלט איך איז געגאנגען צו זיין ווייניקער ווי 65, פּלוס 26 אותיות אין די Alphabet. אַזוי איך וועט לאָזן די קאָמפּיוטער טאָן די מאַט פֿאַר מיר עס. און דעמאָלט ין דעם שלייף, וואָס בין איך געגאנגען צו דרוקן? % C איז% איך באַקקסלאַש ן. און איצט איך ווילן צו צאַפּן אין צוויי וואַלועס. איך ווע טעמפּערעראַלי שטעלן קשיא מאַרקס דאָרט צו פאַרבעטן די קשיא. איך ווילן צו יטעראַטע פון ​​65 פאָרויס פֿאַר 26 אותיות פון די Alphabet, דרוק אויס אויף יעדער יטעראַטיאָן אַז כאַראַקטער ס ינטאַגראַל עקוויוואַלענט. אין אנדערע ווערטער, איך ווילן צו יטעראַטע איבער 26 נומערן דרוקן וואָס די אַסקי כאַראַקטער איז, די בריוו, און וואָס די קאָראַספּאַנדינג נומער יס-- טאַקע נאָר רעקרעאַטינג די טשאַרט פון אַז רוק. אַזוי וואָס זאָל די קשיא מאַרקס זיין? נו, עס טורנס אויס אַז די רגע איינער זאָל נאָר זיין די בייַטעוודיק איך. איך ווילן צו זען אַז ווי אַ נומער. און די מיטל אַרגומענט דאָ, איך קענען זאָגן די קאָמפּיוטער צו מייַכל אַז ינטעגער איך ווי אַ כאַראַקטער, אַזוי ווי צו פאַרבייַטן עס דאָ פֿאַר פּראָצענט סי אין אנדערע ווערטער, אויב איך, די מענטשלעך פּראָגראַמיסט, וויסן די ביסט נאָר נומערן אין די סוף פון די טאָג. און איך וויסן אַז 65 זאָל מאַפּע צו עטלעכע כאַראַקטער. מיט דעם יקספּליסאַט געשטאַלט, מיט אַ פּאַרענטהעסיס, די נאָמען פון די דאַטן טיפּ איר ווילן צו גער צו, און אַ פֿאַרמאַכט פּאַרענטהעסיס, איר קענען דערציילן די קאָמפּיוטער, היי, קאָמפּיוטער, גער דעם ינטעגער צו אַ טשאַר. אַזוי ווען איך לויפן דעם פּראָגראַם נאָך קאַמפּיילינג, לאָזן ס זען וואָס איך געט-- מאַכן אַססיי 0. צירעווען עס, וואָס האט איך טאָן אומרעכט דאָ? נוצן פון ונדעקלאַרעד identifier, אַלע רעכט, נישט ינטענשאַנאַל, אָבער לאָזן ס זען אויב מיר קענען נישט סיבה דורך דעם. אַזוי שורה פיווע-- אַזוי איך האט נישט באַקומען זייער ווייַט איידער סקרוינג אַרויף. דאס איז בסדר. אַזוי שורה 5 פֿאַר איך יקוואַלז 65-- איך זען. אזוי געדענקען אַז אין C, ניט ענלעך עטלעכע שפּראַכן אויב איר האָבן פריערדיק פּראָגראַממינג דערפאַרונג, איר האָבן צו דערציילן די קאָמפּיוטער, ניט ענלעך קראַצן, וואָס טיפּ פון בייַטעוודיק עס איז. און איך Forgot אַ שליסל פראַזע דאָ. אין שורה פינף, איך ווע אנגעהויבן ניצן איך. אבער איך האב נישט דערציילט C וואָס דאַטן טיפּ עס איז. אזוי איך בין געגאנגען צו גיין אין דאָ און זאָגן, אַה, מאַכן עס אַ ינטאַדזשער. איצט איך בין געגאנגען צו גיין פאָרויס און רעקאָמפּילע. וואָס פאַרפעסטיקט אַז. ./אַססיי0 קום, אַז ס מין פון קיל. ניט נאָר איז עס יבער שנעל צו פרעגן די קאָמפּיוטער דעם קשיא, אלא ווי קוקן עס אַרויף אויף אַ גליטש, עס געדרוקט אויס איינער פּער שורה, א איז 65, בייטן איז 66, אַלע דער וועג דאָוונ-- זינט איך האט דעם 26 טימעס-- צו די אותיות ז, וואָס איז 90. און, אין פאַקט, אַ ביסל מער ינטעליגענט וואָלט האָבן שוין פֿאַר מיר נישט צו רעלי אויף די קאָמפּיוטער צו לייגן 26. איך קען האָבן נאָר געטאן 90 ווי געזונט, אַזוי לאַנג ווי איך טאָן ניט מאַכן די זעלבע גרייַז צוויי מאָל. איך ווילן צו גיין אַרויף דורך ז, ניט נאָר אַרויף דורך י. אזוי אַז ס אַ יקספּליסאַט געשטאַלט. עס טורנס אויס אַז דעם איז נישט אַפֿילו נייטיק. זאל מיר גיין פאָרויס און ריראַן דעם קאַמפּיילער, און ריראַן אַססיי 0. עס טורנס אויס אַז C איז שיין קלוג. און פּרינטף, אין באַזונדער, איז שיין קלוג. אויב איר נאָר פאָרן אַ איך צוויי מאָל פֿאַר ביידע פּלאַסעהאָלדערס, פּרינטף וועט פאַרשטיין, טאַקע, געזונט איך וויסן איר געגעבן מיר אַ ינטעגער-- עטלעכע נומער, ווי 65, אָדער 90, אָדער וועלכער. אבער איך זען אַז איר ווילן מיר צו פֿאָרמאַט אַז נומער ווי אַ כאַראַקטער. און אַזוי פּרינטף קענען ימפּליסאַטלי וואַרפן די ינט צו אַ טשאַר פֿאַר איר ווי געזונט. אַזוי אַז ס 'נישט אַ פּראָבלעם בייַ אַלע. אבער באַמערקן, ווייַל פון דעם עקוויוואַלענסע מיר קענען טאקע טאָן דעם ווי געזונט. זאל מיר גיין פאָרויס און מאַכן איין אנדערע ווערסיע פון ​​טהיס-- אַססיי 1.ק. און אַנשטאָט פון יטעראַטינג איבער ינטאַדזשערז, קענען טאַקע קלאַפּ דיין מיינונג דורך יטעראַטינג איבער אותיות. אויב אַ טשאַר C געץ הויפּטשטאָט א, איך ווילן צו גיין פאָרויס און טאָן דאָס, אַזוי לאַנג ווי C איז ווייניקער ווי אָדער גלייַך צו הויפּטשטאָט ז און אויף יעדער יטעראַטיאָן איך ווילן צו ינקראַמאַנט C, איך קענען איצט אין מיין פּרינטף שורה דאָ זאָגן, פּראָצענט C איז פּראָצענט איך ווידער, קאָמע סי און איצט, איך קענען גיין די אנדערע ריכטונג, קאַסטינג די כאַראַקטער בפֿירוש צו אַ ינטאַדזשער. אַזוי, ווידער, וואָס וואָלט איר טאָן דעם? עס ס אַ ביסל טשודנע צו סאָרט פון ציילן אין טערמינען פון אותיות. אבער אויב איר פֿאַרשטיין וואָס ס געגאנגען אויף ונטער דער קאַפּטער, עס ס טאַקע קיין מאַגיש. איר 'רע נאָר אַזוי צו זאָגן: היי, קאָמפּיוטער געבן מיר אַ בייַטעוודיק געהייסן C פון טיפּ טשאַר. יניטיאַליזע עס צו הויפּטשטאָט יי און באַמערקן איין ציטירט ענין. פֿאַר אותיות אין C, צוריקרופן פון לעצטע וואָך, איר נוצן איין קוואָטעס. פֿאַר סטרינגס, פֿאַר ווערטער, קרעם, איר נוצן טאָפּל קוואָטעס. קעשורע, קאָמפּיוטער, האַלטן טאן דעם, אַזוי לאַנג ווי די כאַראַקטער איז ווייניקער ווי אָדער גלייַך צו ז. און איך וויסן פון מיין אַססיי טיש אַז אַלע פון די אַססיי קאָודז זענען קאַנטיגיואַס. עס ס קיין גאַפּס. אַזוי עס ס נאָר אַ דורך ז, צעשיידט איין נומער יעדער. און דעמאָלט איך קענען ינקראַמאַנט אַ טשאַר, אויב איך טאַקע ווילן. אין די סוף פון די טאָג, עס ס נאָר אַ נומער. איך וויסן דעם. אַזוי איך קען נאָר אָננעמען צו לייגן 1 צו אים. און דעמאָלט דעם מאָל, איך דרוק C, און דעריבער די ינטאַגראַל עקוויוואַלענט. און איך טאָן ניט אַפֿילו דאַרפֿן די יקספּליסאַט געשטאַלט. איך קענען לאָזן פּרינטף און די קאָמפּיוטער געשטאַלט דאס אויס, אַזוי אַז איצט אויב איך לויפן מאַכן אַססיי1./אַססיי1, איך באַקומען די פּינטלעך זעלבע זאַך ווי גוט. אַרויסגעוואָרפן פּראָגראַם, טהאָוגה-- קיין איינער איז געגאנגען צו אַקטשאַוואַלי שרייַבן ווייכווארג אין סדר צו רעכענען אויס, וואָס איז געווען די נומער וואָס מאַפּס צו א, אָדער ב, אָדער ז? איר 'רע נאָר געגאנגען צו גוגל עס, אָדער קוק עס אַרויף אָנליין, אָדער קוק עס אַרויף אויף אַ רוק, אָדער די ווי. אַזוי ווו טוט דעם אַקטשאַוואַלי באַקומען נוציק? נו, רעדן פון אַז רוק, באַמערקן עס ס אַ פאַקטיש מוסטער דאָ צווישן ופּפּערקאַסע און לאָווערקאַסע וואָס איז געווען ניט אַקסאַדענטאַל. נאָטיץ אַז הויפּטשטאָט א איז 65. לאָווערקאַסע אַ איז 97. און ווי ווייַט אַוועק איז נידעריקער פאַל אַ? אַזוי 65 איז ווי פילע טריט אַוועק פון 97? אַזוי 97 מינוס 65 איז 32. אזוי הויפּטשטאָט א איז 65. אויב איר לייגן 32 צו אַז, איר באַקומען לאָווערקאַסע אַ. און, עקוויוואַלענטלי, אויב איר אַראָפּרעכענען 32, איר באַקומען צוריק צו הויפּטשטאָט אַ-- זעלביקער מיט ב צו קליין ב, גרויס C צו קליין C. כל פון די גאַפּס זענען 32 באַזונדער. איצט, דעם וואָלט ויסקומען צו לאָזן אונדז צו טאָן עפּעס ווי מייקראָסאָפֿט וואָרט, אָדער Google דאָקס שטריך, ווו איר קענען סעלעקטירן אַלץ און דעמאָלט זאָגן, טוישן אַלע צו לאָווערקאַסע, אָדער טוישן אַלע צו אויבערשטער פאַל, אָדער טוישן נאָר דער ערשטער וואָרט פון אַ זאַץ צו אויבערשטער פאַל. מיר קענען טאקע טאָן עפּעס ווי אַז זיך. זאל מיר גיין פאָרויס און ראַטעווען אַ טעקע דאָ גערופֿן קאַפּאַטאַלייז 0.ק. און לאָזן ס גיין פאָרויס און בייַטש אַרויף אַ פּראָגראַם וואָס טוט פּונקט אַז ווי גייט. אזוי אַרייַננעמען די קס50 ביבליאָטעק. און אַרייַננעמען נאָרמאַל איך / אָ. און איך וויסן דעם איז קומענדיק באַלד. אַזוי איך בין געגאנגען צו לייגן עס אין עס שוין, סטרינג.ה, אַזוי איך האָבן צוטריט צו זאכן ווי סטערלינג, און דעמאָלט ינט הויפּט פּאָסל, ווי געוויינטלעך. און דעמאָלט איך בין געגאנגען צו גיין פאָרויס און טאָן סטרינגס געץ באַקומען שטריקל, נאָר צו באַקומען אַ שטריקל פון דעם באַניצער. און דעמאָלט איך בין געגאנגען צו טאָן מיין מייושעוודיקייַט טשעק. אויב שטריקל טוט ניט גלייַך נאַל, דעמאָלט עס ס 'זיכער צו גיינ ווייַטער. און וואָס טאָן איך ווילן צו טאָן? איך בין געגאנגען צו יטעראַטע פון ​​איך יקוואַלז 0, און ן אַרויף צו די שטריקל לענג פון ס. און איך בין געגאנגען צו טאָן דעם אַזוי לאַנג ווי איך איז ווייניקער ווי N, און איך פּלוס פּלוס. אַזוי ווייַט, איך בין טאַקע נאָר באַראָוינג געדאנקען פון פריער. און איצט איך בין געגאנגען צו פאָרשטעלן אַ צווייַג. אַזוי טראַכטן צוריק צו קראַצן, ווו מיר האבן יענע Forks אין דעם וועג, און לעצטע וואָך אין סי איך בין געגאנגען צו זאָגן דעם, אויב די איך-טיייטש כאַראַקטער אין ס איז גרעסער ווי אָדער גלייַך צו נידעריקער פאַל אַ, אַנד-- אין קראַצן איר וואָלט ממש זאָגן און, אָבער אין C איר זאָגן אַמפּערסאַנד, אַמפּערסאַנד-- און די איך-טיייטש כאַראַקטער אין ס איז ווייניקער ווי אָדער גלייַך צו נידעריקער פאַל ז, זאל ס טאָן עפּעס טשיקאַווע. זאל ס אַקטשאַוואַלי דרוקן אויס אַ כאַראַקטער מיט קיין נעוולינע וואָס איז דער כאַראַקטער אין די שטריקל, די איך-טיייטש כאַראַקטער אין די שטריקל. אבער לאָזן ס גיין פאָרויס און אַראָפּרעכענען 32 פון עס. אַנדערש אויב די כאַראַקטער אין די שטריקל וואָס מיר 'רע איר זוכט איז נישט צווישן ביסל אַ און קליין ז, גיין פאָרויס און נאָר געדרוקט עס אויס אַנטשיינדזשד. אַזוי מיר ווע באַקענענ דעם בראַקקעטעד נאָוטיישאַן פֿאַר אונדזער סטרינגס צו באַקומען אין די איך-סטן כאַראַקטער אין די שטריקל. איך 'ווע צוגעגעבן עטלעכע קאַנדישאַנאַל לאָגיק, ווי קראַצן אין לעצט וואָך ס וואָך איין, ווו איך בין נאָר ניצן מיין פונדאַמענטאַל שכל פון וואָס ס געגאנגען אויף ונטער דער קאַפּטער. איז די איך-טיייטש כאַראַקטער פון ס גרעסער ווי אָדער גלייַך צו אַ? ווי, איז עס 97, אָדער 98, אָדער 99, און אַזוי אַרויס? אבער איז עס אויך ווייניקער ווי אָדער גלייַך צו די ווערט פון לאָווערקאַסע z? און אויב אַזוי, וואָס טוט דעם שורה מיינען? 14, דאָס איז סאָרט פון די גערמע פון ​​די גאנצע געדאַנק, קאַפּאַטאַלייז די בריוו דורך נאָר סאַבטראַקטינג 32 פון עס, אין דעם פאַל, ווייַל איך וויסן, פּער אַז טשאַרט, ווי מיין נומערן זענען רעפּריזענטיד. אַזוי לאָזן ס גיין פאָרויס און לויפן דעם, נאָך קאַמפּיילינג קאַפּאַטאַלייז 0.ק, און לויפן קאַפּאַטאַלייז 0. זאל ס דרוקן אין עפּעס ווי זאַמילאַ אין אַלע לאָווערקאַסע קומען. און איצט מיר האָבן זאַמילאַ אין אַלע ופּפּערקאַסע. זאל ס דרוקן אין ראָב אין אַלע לאָווערקאַסע. זאל ס פּרובירן דזשייסאַן אין אַלע לאָווערקאַסע. און מיר האַלטן געטינג די געצווונגען קאַפּיטאַליזיישאַן. עס ס אַ מינערווערטיק זשוק אַז איך מין פון האט ניט ריכטנ זיך. נאָטיץ מיין נייַ פּינטלעך איז סאָף אַרויף אויף די זעלבע שורה ווי זייערע נעמען, וואָס Feels אַ ביסל מעסי. אַזוי איך בין געגאנגען צו גיין דאָ, און טאקע אין די סוף פון דעם פּראָגראַם דרוקן אויס אַ נעוולינע כאַראַקטער. אַז ס אַלע. מיט פּרינטף, איר טאָן ניט דאַרפֿן צו פאָרן אין וועריאַבאַלז אָדער פֿאָרמאַט קאָד. איר קענען ממש נאָר דרוקן עפּעס ווי אַ נעוולינע. אַזוי לאָזן ס גיין פאָרויס און מאַכן קאַפּאַטאַלייז 0 ווידער, ריראַן עס, זאַמילאַ. און איצט עס ס אַ קליין פּריטיער. איצט, מיין פּינטלעך איז אויף זייַן אייגן נייַ שורה. אַזוי אַז ס אַלע פייַן און גוט. אזוי אַז ס אַ גוט בייַשפּיל. אבער איך טאָן ניט אַפֿילו דאַווקע דאַרפֿן צו שווער קאָד די 32. ווייסט וואס? איך קען סייַ-- איך טאָן ניט אלץ געדענקען וואָס דער חילוק איז. אבער איך וויסן אַז אויב איך האָבן אַ נידעריקער פאַל בריוו, איך יסענשאַלי ווילן צו אַראָפּרעכענען אַוועק וועלכער די דיסטאַנסע איז צווישן קליין אַ און גרויס א, ווייַל אויב איך יבערנעמען אַז אַלע פון ​​די אנדערע אותיות זענען די זעלבע, אַז זאָל באַקומען די אַרבעט געטאן. אבער גאַנץ ווי טאָן אַז, איר וויסן וואָס? עס ס אנדערן וועג נאָך. אויב אַז ס קאַפּאַטאַלייז 1.ק-- אויב איך געווען צו שטעלן אַז אין אַ באַזונדער טעקע. זאל ס טאָן קאַפּאַטאַלייז 2.ק ווי גייט. איך בין געגאנגען צו טאַקע ריין דעם אַרויף דאָ. און אַנשטאָט פון אַפֿילו געהאט צו וויסן אָדער זאָרגן וועגן די נידעריק מדרגה ימפּלאַמענטיישאַן דעטאַילס, איך בין אָנשטאָט נאָר געגאנגען צו דרוקן אַ כאַראַקטער, ציטירן ונקוואָטע, פּראָצענט C, און דעמאָלט רופן אן אנדער פֿונקציע אַז יגזיסץ אַז נעמט אַן אַרגומענט, וואָס איז אַ כאַראַקטער, ווי דעם. עס טורנס אויס אין C, עס ס אן אנדער פֿונקציע רופן צו אויבערשטער, וואָס ווי זייַן נאָמען סאַגדזשעסץ נעמט אַ כאַראַקטער און מאכט עס צו זייַן אויבערשטער פאַל עקוויוואַלענט, און דעמאָלט קערט עס אַזוי אַז פּרינטף קענען צאַפּן עס אין עס. און אַזוי צו טאָן דעם, כאָטש, איך דאַרפֿן צו פאָרשטעלן איינער אנדערע טעקע. עס טורנס אויס דאָרט ס אן אנדער טעקע אַז איר וואָלט נאָר וויסן פון קלאַס, אָדער אַ לערנבוך, אָדער אַן אָנליין דערמאָנען, גערופֿן C טיפּע.ה. אַזוי אויב איך שטעלן אַז אַרויף צווישן מיין כעדער טעקעס, און איצט שייַעך-צונויפנעמען דעם פּראָגראַם, קאַפּיטאַליזע2, ./קאַפּיטאַליזע2 קומען. זאל ס דרוקן אין זאַמילאַ אין אַלע לאָווערקאַסע, נאָך אַרבעט די זעלבע. אבער איר וויסן וואָס? עס טורנס אויס אַז צו אויבערשטער האט עטלעכע אנדערע פונקטיאָנאַליטי. און לאָזן מיר באַקענען דעם באַפֿעל דאָ, סאָרט פון אָקווערדלי געהייסן, אָבער מענטש פֿאַר מאַנואַל. עס טורנס אויס אַז רובֿ לינוקס קאָמפּיוטערס, ווי מיר זענען ניצן הערע-- לינוקס אָפּערייטינג סיסטעמ-- האָבן אַ באַפֿעל גערופֿן מענטש, וואָס זאגט, היי, קאָמפּיוטער, געבן מיר די קאָמפּיוטער ס מאַנואַל. וואָס טאָן איר ווילן צו קוק אַרויף אין אַז מאַנואַל? איך ווילן צו קוקן אַרויף די פֿונקציע גערופֿן צו אויבערשטער, קומען. און עס ס אַ קליין קריפּטיק צו לייענען מאל. אבער באַמערקן מיר ניטאָ אין די לינוקס פּראָגראַמיסט ס מאַנואַל. און עס ס אַלע טעקסט. און באַמערקן אַז דאָרט ס די נאָמען פון די פֿונקציע אַרויף דאָ. עס טורנס אויס עס האט אַ קוזינע גערופֿן צו נידעריקער, וואָס טוט די פאַרקערט. און באַמערקן אונטער סינאַפּסיס, צו נוצן דעם פונקציאָנירן דער מענטש בלאַט, אַזוי צו רעדן, איז טעלינג מיר אַז איך דאַרפֿן צו אַרייַננעמען C טיפּע.ה. און איך געוואוסט אַז פון פיר. דאָ, עס ס ווייַזונג מיר די צוויי פּראָוטאַטייפּס פֿאַר די פֿונקציע, אַזוי אַז אויב איך אלץ ווילן צו נוצן דעם איך וויסן וואָס זיי נעמען ווי ינפּוט, און וואָס זיי צוריקקומען ווי רעזולטאַט. און דעריבער אויב איך לייענען די באַשרייַבונג, איך זען אין מער דעטאַל וואָס די פֿונקציע טוט. אבער מער ימפּאָרטאַנטלי, אויב איך קוק אונטער צוריקקומען ווערט, עס זאגט דער ווערט אומגעקערט איז וואָס פון די קאָנווערטעד בריוו, אָדער C, די אָריגינעל ינפּוט, אויב די קאַנווערזשאַן איז ניט מעגלעך. אין אנדערע ווערטער, צו אויבערשטער וועט פּרובירן צו בייַטן אַ בריוו צו אויבערשטער פאַל. און אויב אַזוי, עס ס געגאנגען צו צוריקקומען עס. אבער אויב עס קענען ניט פֿאַר עטלעכע רעאַסאָנ-- אפֿשר עס ס 'שוין אויבערשטער פאַל, אפֿשר עס ס אַ עקסקלאַמיישאַן פונט אָדער עטלעכע אנדערע פּונקטואַטיאָנ-- עס ס נאָר געגאנגען צו צוריקקומען דער אָריגינעל C, וואָס מיטל איך קענען מאַכן מיין קאָד בעסער דיזיינד ווי גייט. איך טאָן ניט דאַרפֿן אַלע פון די צירעווען שורות פון קאָד. אַלע די שורות איך'ווע נאָר כיילייטיד קענען זייַן קאַלאַפּסט אין נאָר איינער פּשוט שורה, וואָס איז טהיס-- פּרינטף פּראָצענט C צו אויבערשטער ז קלאַמער איך. און דעם וואָלט זיין אַ בייַשפּיל פון בעסער פּלאַן. וואָס ינסטרומענט אין 7 אָדער 8 שורות פון קאָד, וועלכער עס איז געווען איך נאָר אויסגעמעקט, ווען איר קענען אַנשטאָט ייַנבראָך אַלע פון ​​אַז לאָגיק און באַשלוס מאכן אין איין איין שורה, 13 איצט, אַז רילייז אויף אַ ביבליאָטעק פונקטיאָנ-- אַ פֿונקציע וואָס קומט מיט C, אָבער אַז טוט פּונקט וואָס איר ווילן עס צו טאָן. און, פראַנקלי, אַפֿילו אויב עס האט ניט קומען מיט C, איר קען מאַכשער עס זיך, ווי מיר ווע געזען, מיט באַקומען נעגאַטיוו ינט און באַקומען positive ינט לעצטע וואָך ווי געזונט. דעם קאָד איצט איז פיל מער ליינעוודיק. און, טאַקע, אויב מיר מעגילע אַרויף, קוק ווי פיל מער סאָליד דעם ווערסיע פון ​​מיין פּראָגראַם איז. עס ס אַ ביסל שפּיץ שווער איצט, מיט אַלע די כולל. אבער אַז ס 'גוט, ווייַל איצט איך בין שטייענדיק אויף די פּלייצעס פון פּראָוגראַמערז איידער מיר. און ווער סע עס איז געווען וואס ימפּלאַמענטאַד צו אויבערשטער טאַקע האט מיר אַ טויווע, פיל ווי סע ימפּלאַמענאַד סטערלינג טאַקע האט מיר אַ טויווע עטלעכע מאָל צוריק. און אַזוי איצט מיר האָבן אַ בעסער פּלאַן פּראָגראַם אַז ימפּלאַמאַנץ די פּינטלעך זעלביקער לאָגיק. גערעדט פון Stirling, לאָזן מיר גיין פאָרויס און טאָן דעם. זאל מיר גיין פאָרויס און ראַטעווען דעם טעקע ווי סטירלינג.ק. און עס טורנס אויס, מיר קענען שאָלעכץ צוריק איין אנדערע שיכטע שיין נאָר איצט. איך בין געגאנגען צו גיין פאָרויס און בייַטש אַרויף אן אנדער פּראָגראַם אין הויפּט דאָ אַז נאָר שייַעך-ימפּלאַמאַנץ שטריקל לענג ווי גייט. אַזוי דאָ ס אַ שורה פון קאָד וואָס געץ מיר אַ שטריקל פון דעם באַניצער. מיר האַלטן ניצן דעם ווידער און ווידער. זאל מיר געבן זיך אַ בייַטעוודיק געהייסן N פון טיפּ ינט אַז סטאָרז אַ נומער. און לאָזן מיר גיין פאָרויס און טאָן די ווייַטערדיק לאָגיק. בשעת די ען-טה כאַראַקטער אין ס טוט ניט גלייַך באַקקסלאַש 0, גיין פאָרויס און ינקראַמאַנט ן. און דעמאָלט דרוקן אויס פּרינטף פּראָצענט איך ן. איך פאָדערן אַז דעם פּראָגראַם דאָ, אָן פאַך שטריקל לענג, Figures אויס די לענג פון אַ שטריקל. און די מאַגיש איז אין גאנצן ענקאַפּסאַלייטיד אין שורה 8 דאָ מיט וואָס קוקט ווי נייַ סינטאַקס, דעם באַקקסלאַש 0 אין איין ציטירט. אבער וואָס איז וואָס? נו, באַטראַכטן וואָס ס 'שוין געגאנגען אויף אַלע דעם מאָל. און ווי אַ באַזונדער איידער איך פאַרגעסן, פאַרשטיין אויך, אַז אין דערצו צו די מענטש בלעטער אַז קומען מיט אַ טיפּיש לינוקס סיסטעם ווי קס50 ייד, פאַרשטיין אַז מיר, די קורס ס שטעקן, האָבן אויך געמאכט אַ וועבזייַטל ווערסיע פון דעם זעלבן געדאַנק גערופֿן reference.cs50.net, וואָס האט אַלע פון ​​די זעלבע מענטש בלעטער, אַלע פון ​​אַז זעלביקער דאַקיומענטיישאַן, ווי ווויל ווי אַ קליין קעסטל אין די שפּיץ אַז אַלאַוז איר צו בייַטן אַלע פון ​​די פאַירלי אַרקיין שפּראַך אין ווייניקער באַקוועם מאָדע, ווו מיר, די לערנען שטעקן, האָבן ניטאָ דורך און פּרובירן צו פאַרפּאָשעטערן עטלעכע פון ​​די שפּראַך צו האַלטן דאס פאָקוסעד אויף די געדאנקען, און נישט עטלעכע פון ​​די טעטשניקאַליטיעס. אַזוי האַלטן אין מיינונג, reference.cs50.net ווי אן אנדער מיטל ווי געזונט. אבער וואָס טוט שטריקל לענג אַרבעט אין די וועג איך פּראָפּאָסעד אָקאָרשט? דאָ ס זאַמילאַ ס נאָמען ווידער. און דאָ ס זאַמילאַ ס נאָמען באַקסט אין, ווי איך האַלטן טאן, צו מאָלן אַ בילד פון אים ווייל, טאַקע, נאָר אַ סיקוואַנס פון אותיות. אבער זאַמילאַ טוט נישט עקסיסטירן אין יסאָלאַטיאָן אין אַ פּראָגראַם. ווען איר שרייַבן און לויף אַ פּראָגראַם, איר 'רע ניצן אייער מעק אָדער דיין פּיסי ווי זיקאָרן, אָדער באַראַן אַזוי צו רעדן. און איר קענען טראַכטן פון דיין קאָמפּיוטער ווי בעת גורל פון גיגאבייט פון זכּרון די טעג. און אַ גיג מיטל ביליאַנז, אַזוי ביליאַנז פון ביטעס. אבער לאָזן ס ריוויינד אין צייַט. און רעכן אַז מיר 'רע ניצן אַ טאַקע אַלט קאָמפּיוטער אַז בלויז האט 32 ביטעס פון זכּרון. איך קען, אויף מיין קאָמפּיוטער עקראַן, נאָר ציען דעם אויס ווי גייט. איך קען נאָר זאָגן אַז מיין קאָמפּיוטער האט אַלע פון ​​דעם זכּרון. און דאָס איז ווי אַ שטעקן פון זכּרון, אויב איר צוריקרופן אונדזער בילד פון לעצטע מאָל. און אויב איך נאָר צעטיילן דעם אין גענוג מאל, איך פאָדערן אַז איך האָבן 32 ביטעס פון זכּרון אויף דעם עקראַן. איצט, אין פאַקט, איך קען בלויז ציען אַזוי ווייַט אויף דעם עקראַן דאָ. אַזוי איך בין געגאנגען צו גיין פאָרויס, און נאָר דורך קאַנווענשאַן, ציען מיין קאָמפּיוטער ס זכּרון ווי אַ גריד, ניט נאָר ווי איינער גלייַך שורה. ספּעסיפיקאַללי, איך פאָדערן איצט אַז דעם גריד, דעם 8 דורך 4 גריד, נאָר רעפּראַזענץ אַלע 32 ביטעס פון זיקאָרן פאַראַנען אין מיין מעק, אָדער בנימצא אין מיין פּיסי. און זיי ניטאָ ראַפּינג אויף צו צוויי שורות, נאָר ווייַל עס Fits מער אויף דעם עקראַן. אבער דאָס איז דער ערשטער ביטע. דאס איז די רגע בייט. דאס איז דער דריט בייט. און דאָס איז די 32 בייט. אָדער, אויב מיר טראַכטן ווי אַ קאָמפּיוטער געלערנטער, דאָס איז ביטע 0, 1, 2, 3, 31. אזוי איר האָבן 0-31, אויב איר אָנהייבן קאַונטינג בייַ 0. אזוי אויב מיר נוצן אַ פּראָגראַם אַז קאַללס באַקומען שטריקל, און מיר באַקומען אַ שטריקל פון דעם מענטש ווי איך האט גערופֿן זאַמילאַ, ז-א-ב-י-ל-א, ווי אין די וועלט טוט די קאָמפּיוטער האַלטן שפּור פון וואָס בייט, וואָס פּייַדע פון ​​זכּרון, געהערט צו וואָס שטריקל? אין אנדערע ווערטער, אויב מיר גיינ ווייַטער צו טיפּ אן אנדער נאָמען אין די קאָמפּיוטער, ווי דעם אַנדי, פאַך באַקומען שטריקל אַ צווייט מאָל, א-ן-ד-איך האט צו סוף אַרויף אין די קאָמפּיוטער ס זכּרון ווי געזונט. אבער וויאזוי? נו, עס טורנס אויס אַז ונטער דער קאַפּטער, וואָס C טוט ווען סטאָרינג סטרינגס אַז דער מענטש טייפּס אין, אָדער אַז קומען פֿון עטלעכע אנדערע מקור, איז עס דעלינעאַטעס דער סוף פון זיי מיט אַ ספּעציעל טשאַראַקטער-- באַקקסלאַש 0, וואָס איז נאָר אַ ספּעציעל וועג פון זאגן 80 ביטן אין אַ רודערן. אזוי אַ-- דעם איז די נומער 97 צוריקרופן. אַזוי עטלעכע מוסטער פון 8 ביטן רעפּראַזענץ דעצימאַל נומער 97. דאס באַקקסלאַש 0 איז ממש די נומער 0, אַ.ק.אַ. נול, ען-ו-ל, ניט ענלעך פריער, ען-ו-ל-ל, וואָס מיר גערעדט וועגן. אבער פֿאַר איצט, נאָר וויסן אַז דעם באַקקסלאַש 0 איז נאָר 80 ביטן אין אַ רודערן. און עס ס נאָר דעם שורה אין די זאַמד וואָס זאגט עפּעס צו די לינקס געהערט צו איין שטריקל, אָדער איינער דאַטן טיפּ. און עפּעס צו די רעכט געהערט צו עפּעס אַנדערש. אַנדי ס נאָמען, מינווייל, וואָס נאָר וויזשוואַלי כאַפּאַנז צו ייַנוויקלען אויף צו די אנדערע שורה, אָבער אַז ס נאָר אַן עסטעטיש דעטאַל, סימילאַרלי איז נול טערמאַנייטיד. עס איז אַ שטריקל פון אַ א-ן-ד-איך אותיות, פּלוס 1/5 סוד כאַראַקטער, אַלע 0 ביטן, אַז נאָר דעמאַרקאַטעס דער סוף פון אַנדי 'ס נאָמען ווי געזונט. און אויב מיר רופן באַקומען שטריקל אַ דריט מאָל אין די קאָמפּיוטער צו באַקומען אַ שטריקל ווי מאַריאַ, ב-א-ר-איך-א, סימאַלערלי איז מאַריאַ ס נאָמען נול טערמאַנייטאַד מיט באַקקסלאַש 0. דאס איז פונדאַמענטאַללי פאַרשידענע פון ווי אַ קאָמפּיוטער וואָלט טיפּיקלי קראָם אַ ינטעגער, אָדער אַ לאָזנ שווימען, אָדער אנדערע דאַטע טייפּס נאָך, ווייַל צוריקרופן, אַ ינטאַדזשער איז יוזשאַוואַלי 32 ביטן, אָדער 4 ביטעס, אָדער אפֿשר אַפֿילו 64 ביטן, אָדער אַכט ביטעס. אבער פילע פּרימיטיוועס אין אַ קאָמפּיוטער אין אַ פּראָגראַממינג שפּראַך האָבן אַ פאַרפעסטיקט נומער פון בייטן ונטער דער האָאָד-- אפֿשר 1, אפֿשר 2, אפֿשר 4, אפֿשר 8. אבער סטרינגס, דורך פּלאַן, האָבן אַ דינאַמיש נומער פון אותיות. איר טאָן ניט וויסן אין שטייַגן, ביז דער מענטש טייפּס אין ז-א-ב-י-ל-א, אָדער ב-א-ר-איך-א, אָדער אַ-ן-ד-איך. איר טאָן ניט וויסן ווי פילע מאל דער באַניצער איז געגאנגען צו שלאָגן די קלאַוויאַטור. דעריבער, איר טאָן ניט וויסן ווי פילע אותיות אין שטייַגן איר 'רע געגאנגען צו דאַרפֿן. און אַזוי C נאָר מין פון בלעטער ווי אַ סוד ברעאַדקרומב ונטער דער קאַפּטער אין די סוף פון די שטריקל. נאָך סטאָרינג ז-א-ב-י-ל-א אין זכּרון, עס אויך נאָר לייגט די עקוויוואַלענט פון אַ פּעריאָד. אין די סוף פון אַ זאַץ, עס לייגט 80 ביטן, אַזוי ווי צו געדענקען ווו זאַמילאַ הייבט און ענדס. אזוי וואָס ס די קשר, דעריבער, צו דעם פּראָגראַם? דעם פּראָגראַם דאָ, סטערלינג, איז נאָר אַ מעקאַניזאַם פֿאַר געטינג אַ שטריקל פֿון דעם באַניצער, שורה 6. שורה 7, איך דערקלערן אַ בייַטעוודיק גערופֿן n און שטעלן עס גלייַך צו 0. און דעמאָלט אין שורה 8, איך נאָר געבעטן די קשיא, בשעת די ען-טיייטש כאַראַקטער טוט ניט גלייַך אַלע 0 ביצ-- אין אנדערע ווערטער, טוט ניט גלייַך דעם ספּעציעל כאַראַקטער, באַקקסלאַש 0, וואָס איז געווען נאָר אַז ספּעציעל נול טשאַראַקטער-- גיין פאָרויס און נאָר ינקראַמאַנט ן. און האַלטן טאן עס, און האַלטן טאן עס, און האַלטן טאן עס. און אַזוי אַפֿילו כאָטש אין די פאַרגאַנגענהייַט מיר ווע געניצט איך, עס ס בישליימעס פייַן סעמאַנטיקאַללי צו נוצן ן, אויב איר ניטאָ נאָר טריינג צו ציילן דעם צייַט דיליבראַטלי, און נאָר ווילן צו רופן עס ן. אַזוי דעם נאָר האלט אַסקינג די קשיא, איז די ען-טיייטש כאַראַקטער פון ס אַלע 0 ס? אויב ניט, קוקן צו דער ווייַטער קוק, קוקן צו דער ווייַטער, קוק צו דער ווייַטער, קוקן צו דער ווייַטער. אבער ווי באַלד ווי איר זען באַקקסלאַש 0, דעם לאָאָפּ-- שורה 9 דורך 11-- סטאַפּס. איר ברעכן אויס פון די בשעת שלייף, געלאזן ין פון וואָס בייַטעוודיק N אַ גאַנץ ציילן פון אַלע פון ​​די אותיות אין די שטריקל איר געזען, דערמיט דרוקן עס אויס. אַזוי לאָזן ס פּרובירן דעם. זאל מיר גיין פאָרויס און, אָן ניצן די Stirling פֿונקציע, אָבער נאָר ניצן מיין אייגן כאָומגראָון ווערסיע דאָ גערופֿן Stirling, לאָזן מיר גיין פאָרויס און לויפן Stirling, טיפּ אין עפּעס ווי זאַמילאַ, וואָס איך וויסן אין שטייַגן איז זעקס אותיות. זאל ס זען אויב עס אַרבעט. טאקע, עס ס זעקס. זאל ס פּרובירן מיט ראָב, דרייַ אותיות, דרייַ אותיות ווי געזונט, און אַזוי אַרויס. אַזוי אַז ס אַלע אַז ס 'געגאנגען אויף ונטער דער קאַפּטער. און באַמערקן דעם קאַנעקשאַנז, דעמאָלט, מיט דער ערשטער וואָך פון קלאַס, ווו מיר גערעדט וועגן עפּעס ווי אַבסטראַקציע, וואָס איז נאָר דעם לייערינג פון געדאנקען, אָדער קאַמפּלעקסיטי, אויף שפּיץ פון יקערדיק פּרינסאַפּאַלז. דאָ, מיר רע סאָרט פון קוקן ונטער דער קאַפּטער פון Stirling, אַזוי צו רעדן, צו רעכענען אויס, ווי וואָלט עס זיין ימפּלאַמענאַד? און מיר קען שייַעך-ינסטרומענט עס זיך. אבער מיר ניטאָ קיינמאָל ווידער געגאנגען צו שייַעך-ינסטרומענט סטערלינג. מיר 'רע נאָר געגאנגען צו נוצן סטערלינג אין סדר צו אַקטשאַוואַלי באַקומען עטלעכע סטרינגס לענג. אבער עס ס ניט מאַגיש ונטער דער קאַפּטער. אויב איר וויסן אַז ונטער די קאַפּטער, אַ שטריקל איז נאָר אַ סיקוואַנס פון אותיות. און אַז סיקוואַנס פון אותיות אַלע קענען זיין נומעריקלי גערעדט מיט קאַנטיקער 0, קאַנטיקער 1, קאַנטיקער 2, און איר וויסן אַז אין די סוף פון אַ שטריקל איז אַ ספּעציעל כאַראַקטער, איר קענען רעכענען אויס ווי צו טאָן רובֿ עפּעס אין אַ פּראָגראַם, ווייַל אַלע עס בוילז אַראָפּ צו איז לייענען און שרייבן זכּרון. אַז איז, טשאַנגינג און איר זוכט בייַ זכּרון, אָדער מאָווינג זאכן אַרום אין זכּרון, דרוקן דאס אויף דעם עקראַן, און אַזוי אַרויס. אַזוי לאָזן ס איצט נוצן דעם נעוופאָונד שכל פון וואָס סטרינגס אַקטשאַוואַלי ביסט ונטער דער קאַפּטער, און שאָלעכץ צוריק איין אנדערע שיכטע וואָס אַרויף ביז איצט מיר ווע שוין יגנאָרינג בעסאַכאַקל. אין באַזונדער, קיין מאָל מיר 'ווע ימפּלאַמענטאַד אַ פּראָגראַם, מיר 'ווע האט דעם שורה פון קאָד נעבן די שפּיץ דיקלערינג הויפּט. און מיר ווע ספּעסיפיעד ינט הויפּט פּאָסל. און אַז פּאָסל ין די קלאַמערן האט שוין געזאגט אַלע דעם מאָל אַז הויפּט זיך טוט ניט נעמען קיין טענות. קיין ינפּוט אַז הויפּט איז געגאנגען צו באַקומען פון דעם באַניצער האט צו קומען פון עטלעכע אנדערע מעקאַניזאַם, ווי באַקומען ינט, אָדער באַקומען לאָזנ שווימען, אָדער באַקומען שטריקל, אָדער עטלעכע אנדערע פֿונקציע. אבער עס טורנס אויס אַז ווען איר שרייַבן אַ פּראָגראַם, איר קענען אַקטשאַוואַלי ספּעציפיצירן אַז דעם פּראָגראַם וועט נעמען ינפּוץ פון די מענטש בייַ די באַפֿעלן שורה זיך. אין אנדערע ווערטער, אַפֿילו כאָטש מיר אַזוי ווייַט האָבן שוין פליסנדיק נאָר ./העללאָ העלא אָדער ענלעך מגילה, אַלע פון ​​די אנדערע מגילה אַז מיר ווע שוין ניצן, אַז מיר זיך האט נישט שרייַבן, האָבן שוין גענומען, עס מיינט, באַפֿעלן שורה אַרגומענצ-- זאכן ווי מאַכן. איר זאָגן עפּעס ווי מאַכן, און דעמאָלט אַ רגע וואָרט. אָדער קלאַנג, איר זאָגן קלאַנג, און דעמאָלט אַ צווייט וואָרט, דער נאָמען פון אַ טעקע. אָדער אַפֿילו רם אָדער קפּ, ווי איר זאל האָבן געזען אָדער געניצט שוין צו באַזייַטיקן אָדער קאָפּיע טעקעס. כל פון יענע נעמען אַזוי גערופֿן באַפֿעלן שורה אַרגומענצ-- נאָך ווערטער בייַ די וואָקזאַל פּינטלעך. אבער אַרויף ביז איצט, מיר זיך האָבן ניט געהאט דעם לוקסוס פון גענומען ינפּוט פון די באַניצער ווען ער אָדער זי אַקשלי ראַנז דער פּראָגראַם זיך בייַ די באַפֿעל שורה. אבער מיר קענען טאָן אַז דורך שייַעך-דיקלערינג הויפּט מאָווינג פאָרויס, ניט ווי בעת פּאָסל אין קלאַמערן, אָבער די צוויי טענות ינסטעאַד-- דער ערשטער אַ ינטאַדזשער, און די רגע עפּעס נייַ, עפּעס וואָס מיר רע געגאנגען צו רופן אַ מענגע, עפּעס ענלעך אין גייסט צו וואָס מיר געזען אין סקראַטטש ווי אַ רשימה, אָבער אַ מענגע פון ​​סטרינגס, ווי מיר וועט באַלד זען. אבער לאָזן ס זען דעם דורך וועג פון בייַשפּיל, איידער מיר ויסטיילן פּונקט וואָס אַז מיטל. אַזוי אויב איך גיין אין קס50 ייד דאָ, איך ווע ניטאָ פאָרויס און דערקלערט אין אַ טעקע געהייסן אַרגוו0.ק די ווייַטערדיק טעמפּלאַטע. און באַמערקן די בלויז זאַך אַז ס אַנדערש אַזוי ווייַט איז אַז איך ווע געביטן פּאָסל צו ינט אַרגק שטריקל אַרגוו עפענען קאַנטיקער, נאָענט קאַנטיקער. און באַמערקן פֿאַר איצט, עס ס גאָרנישט ין פון יענע בראַקאַץ. עס ס קיין נומער. און דאָרט ס קיין איך, אָדער ן, אָדער קיין אנדערע בריוו. איך בין נאָר ניצן די קוואַדראַט בראַקאַץ פֿאַר איצט, פֿאַר סיבות מיר וועט קומען צוריק צו אין נאָר אַ מאָמענט. און איצט וואָס איך בין געגאנגען צו טאָן איז דעם. אויב אַרגק יקוואַלז יקוואַלז 2-- און צוריקרופן אַז יקוואַלז יקוואַלז איז די יקוואַלאַטי אָפּעראַטאָר קאַמפּערינג די לינק און רעכט פֿאַר יקוואַלאַטי. עס ס ניט די אַסיינמאַנט אָפּעראַטאָר, וואָס איז די איין גלייַך צייכן, וואָס מיטל קאָפּיע פון די רעכט צו די לינקס עטלעכע ווערט. אויב אַרגק יקוואַלז יקוואַלז 2, איך ווילן צו זאָגן, פּרינטף, העלא, פּערסענץ, נייַ שורה, און דעמאָלט צאַפּן ינ-- און דאָ ס דער נייַ טריקק-- אַרגוו קאַנטיקער 1, פֿאַר סיבות אַז מיר וועט קומען צוריק צו אין אַ מאָמענט. אַנדערש אויב אַרגק טוט ניט גלייַך 2, איר וויסן וואָס? זאל ס נאָר גיין פאָרויס און, ווי געוויינטלעך, דרוקן אויס העלא וועלט מיט קיין סאַבסטיטושאַן. אזוי עס וואָלט ויסקומען אַז אויב אַרגק, וואָס שטייט פֿאַר אַרגומענט ציילן, יקוואַלז 2, איך בין געגאנגען צו דרוקן אויס העלא עפּעס אָדער אנדערע. אַנדערש, דורך ניט ויסצאָלן, איך בין געגאנגען צו דרוקן העלא וועלט. אַזוי וואָס טוט דעם הייסן? נו, לאָזן מיר גיין פאָרויס און ראַטעווען דעם טעקע, און דעמאָלט טאָן מאַכן אַרגוו0, און דעמאָלט ./אַרגוו0, קומען. און עס זאגט העלא וועלט. איצט, וואָס איז וואָס? נו, עס טורנס אויס עניטיים איר לויפן אַ פּראָגראַם בייַ די באַפֿעל שורה, איר זענט פילונג אין וואָס מיר וועט בכלל רופן אַן אַרגומענט וועקטאָר. אין אנדערע ווערטער, אויטאָמאַטיש די קאָמפּיוטער, די אַפּערייטינג סיסטעם, איז געגאנגען צו האַנט צו דיין פּראָגראַם זיך אַ רשימה פון אַלע פון ​​די ווערטער אַז דער מענטש טייפּט בייַ די פּינטלעך, אין פאַל איר די פּראָגראַמיסט ווילן צו טאָן עפּעס מיט וואָס אינפֿאָרמאַציע. און אין דעם פאַל, דער נאָר וואָרט איך ווע טייפּט אין די פּינטלעך איז ./אַרגוו0. און אַזוי די נומער פון טענות אַז איז ווייל דורכגעגאנגען צו מיין פּראָגראַם איז נאָר איינער. אין אנדערע ווערטער, די אַרגומענט ציילן, אַנדערש באקאנט ווי אַרגק דאָ ווי אַ ינטאַדזשער, איז נאָר איינער. איינער, פון קורס, טוט ניט גלייַך צוויי. און אַזוי דאָס איז וואָס פּרינץ, העלא וועלט. אבער לאָזן מיר נעמען דעם ערגעץ. זאל מיר זאָגן, אַרגוו0. און דעמאָלט ווי וועגן מאַריאַ? און דעמאָלט שלאָגן קומען. און באַמערקן וואָס מאַדזשיקאַלי כאַפּאַנז דאָ. איצט, אַנשטאָט פון העלא וועלט, איך האב געביטן די נאַטור פון דעם פּראָגראַם דורך גענומען די איינגאבע נישט פֿון באַקומען שטריקל אָדער עטלעכע אנדערע פֿונקציע, אָבער פֿון, משמעות, מיין באַפֿעל זיך, וואָס איך ערידזשאַנאַלי טייפּט אין. און איך קענען שפּילן דעם שפּיל ווידער דורך טשאַנגינג עס צו סטעליאָס, פֿאַר בייַשפּיל. און איצט איך זען אן אנדער נאָמען נאָך. און דאָ, איך זאל זאָגן אַנדי. און איך זאל זאָגן זאַמילאַ. און מיר קענען שפּילן דעם שפּיל אַלע טאָג לאַנג, נאָר פּלאַגינג אין פאַרשידענע וואַלועס, אַזוי לאַנג ווי איך צושטעלן פּונקט צוויי ווערטער אין די פּינטלעך, אַזאַ אַז אַרגק, מיין אַרגומענט ציילן, איז 2. צי איך זען אַז נאָמען פּלאַגד אין פּרינטף, פּער דעם צושטאַנד דאָ? אַזוי מיר ויסקומען צו האָבן איצט די יקספּרעסיוו פיייקייַט פון גענומען ינפּוט פון אנדערן מעקאַניזאַם, פֿון די אַזוי-גערופֿן באַפֿעל שורה, אלא ווי בעת צו וואַרטן ביז דער באַניצער ראַנז די פּראָגראַם, און דעמאָלט פּינטלעך אים אָדער איר ניצן עפּעס ווי באַקומען שטריקל. אַזוי וואָס איז דאָס? אַרגק, ווידער, איז נאָר אַ ינטאַדזשער, די נומער פון וואָרדס-- אַרגומענצ-- אַז דער באַניצער צוגעשטעלט אין די פּינטלעך, אין דער וואָקזאַל פֿענצטער, כולל די פּראָגראַם 'ס נאָמען. אזוי אונדזער ./אַרגוו0 איז, Effectively, די פּראָגראַם 'ס נאָמען, אָדער ווי איך לויפן דעם פּראָגראַם. אַז קאַונץ ווי אַ וואָרט. אַזוי אַרגק וואָלט זיין 1. אבער ווען איך שרייַבן סטעליאָס, אָדער אַנדי, אָדער זאַמילאַ, אָדער מאַריאַ, אַז מיטל די אַרגומענט ציילן איז צוויי. און אַזוי איצט דאָרט ס צוויי ווערטער דורכגעגאנגען אין. און באַמערקן, מיר קענען פאָרזעצן דעם לאָגיק. אויב איך אַקטשאַוואַלי זאָגן עפּעס ווי זאַמילאַ טשאַן, אַ פול נאָמען, דערמיט פּאַסינג דרייַ טענות אין גאַנץ, איצט עס זאגט דער ניט ויסצאָלן ווידער, ווייַל, פון קורס, 3 טוט נישט גלייַך 2. און אַזוי אין דעם וועג, טאָן איך האָבן צוטריט דורך אַרגוו דעם נייַ אַרגומענט אַז מיר קען טעקניקלי רופן עפּעס מיר ווילן. אבער דורך קאַנווענשאַן, עס ס אַרגוו און אַרגק, ריספּעקטיוולי. אַרגוו, אַרגומענט וועקטאָר, איז מין פון אַ סינאָנים פֿאַר אַ פּראָגראַממינג שטריך אין C גערופֿן אַ מענגע. אַ מענגע איז אַ רשימה פון ענלעך וואַלועס צוריק צו צוריק, צו צוריק, צו צוריק. אין אנדערע ווערטער, אויב איינער איז רעכט דאָ אין באַראַן, דער ווייַטער איינער איז רעכט ווייַטער צו אים, און רעכט ווייַטער צו אים. זיי ניטאָ ניט אַלע איבער דעם אָרט. און אַז יענער סצענאַר, ווו זאכן זענען אַלע איבער דער אָרט אין זכּרון, קענען אַקטשאַוואַלי זיין אַ שטאַרק שטריך. אבער מיר וועט קומען צוריק צו אַז ווען מיר רעדן וועגן פאַנסיער דאַטן סטראַקטשערז. פֿאַר איצט, אַ מענגע איז נאָר אַ פּייַדע פון ​​קאַנטיגיואַס זכּרון, יעדער פון וועמענס יסודות זענען צוריק צו צוריק, צו צוריק, צו צוריק, און בכלל דער זעלביקער טיפּ. אזוי אויב איר טראַכטן וועגן, פֿון אַ מאָמענט צוריק, וואָס איז אַ שטריקל? נו, אַ שטריקל, ווי זאַמילאַ, ז-א-ב-י-ל-א, איז, טעקניקלי, נאָר אַ מענגע. עס ס אַ מענגע פון ​​אותיות. און אַזוי אויב מיר טאַקע ציען דעם, ווי איך האט פריער, ווי אַ פּייַדע פון ​​זכּרון, עס טורנס אויס אַז יעדער פון די אותיות נעמט זיך אַ בייט. און דעמאָלט דאָרט ס אַז ספּעציעל סענטינעל כאַראַקטער, די באַקקסלאַש 0, אָדער אַלע אַכט 0 ביטן, אַז דעמאַרקאַטעס די סוף פון אַז שטריקל. אזוי אַ שטריקל, עס טורנס אויס, ציטירן ונקוואָטע שטריקל, איז נאָר אַ מענגע פון ​​טשאַראַ-- טשאַר ווייל אַ פאַקטיש דאַטן טיפּ. און איצט אַרגוו, מעאַנווהילע-- לאָזן ס גיין צוריק צו דער פּראָגראַם. אַרגוו, אַפֿילו כאָטש מיר זען די וואָרט שטריקל דאָ, איז נישט אַ שטריקל זיך. אַרגוו, אַרגומענט וועקטאָר, איז אַ מענגע פון ​​סטרינגס. אַזוי נאָר ווי איר קענען האָבן אַ מענגע פון אותיות, איר קענען האָבן העכער מדרגה, אַ מענגע פון ​​סטרינגס-- אַזוי, פֿאַר בייַשפּיל, ווען איך טייפּט אָקאָרשט ./אַרגוו0 אַרגוו0, פּלאַץ ז-א-ב-י-ל-א, איך קליימד אַז אַרגוו האט צוויי סטרינגס אין יט-- ./אַרגוו0, און ז-א-ב-י-ל-א. אין אנדערע ווערטער, אַרגק איז 2. וואָס איז וואָס? נו, Effectively, וואָס ס 'געגאנגען אויף איז אַז יעדער פון די סטרינגס איז, פון קורס, אַ מענגע פון ​​אותיות ווי איידער, יעדער פון וועמענס אותיות נעמט זיך איינער ביטע. און טאָן ניט צעמישן די פאַקטיש 0 אין דער פּראָגראַם 'ס נאָמען מיט די 0, וואָס מיטל אַלע 80 ביץ. און זאַמילאַ, דערווייַל, איז נאָך אויך אַ מענגע פון ​​אותיות. אזוי אין די סוף פון די טאָג, עס טאַקע קוקט ווי דעם ונטער דער קאַפּטער. אבער אַרגוו, דורך נאַטור פון ווי הויפּט מעשים, אַלאַוז מיר צו ייַנוויקלען אַלע פון ​​דעם אַרויף אין, אויב איר וועט, אַ ביגער מענגע אַז, אויב מיר אַ ביסל איבער פאַרפּאָשעטערן וואָס די בילד קוקט ווי און טאָן ניט גאַנץ ציען עס צו וואָג אַרויף דאָרט, דעם מענגע איז נאָר פון גרייס 2, דער ערשטער עלעמענט פון וואָס כּולל אַ שטריקל, די רגע עלעמענט פון וואָס כּולל אַ שטריקל. און, אין דרייַ, אויב איר מין פון Zoom אין אויף יעדער פון יענע סטרינגס, וואָס איר זען ונטער דער קאַפּטער איז אַז יעדער שטריקל איז נאָר אַ מענגע פון ​​אותיות. איצט, נאָר ווי מיט סטרינגס, מיר זענען ביכולת צו באַקומען צוטריט צו דעם איך-טיייטש כאַראַקטער אין אַ שטריקל ניצן אַז קוואַדראַט קאַנטיקער נאָוטיישאַן. סימילאַרלי, מיט ערייז אין אַלגעמיין, קענען מיר נוצן קוואַדראַט קאַנטיקער נאָוטיישאַן צו באַקומען אין קיין נומער פון סטרינגס אין אַ מענגע? פֿאַר בייַשפּיל, לאָזן מיר גיין פאָרויס און טאָן דעם. זאל מיר גיין פאָרויס און שאַפֿן אַרגוו1.ק, וואָס איז אַ ביסל אַנדערש דעם צייַט. אָנשטאָט קאָנטראָלירונג פֿאַר אַרגק2, איך בין געגאנגען צו אַנשטאָט טאָן דעם. פֿאַר ינט איך באַקומען 0, איך איז ווייניקער ווי אַרגק, איך פּלוס פּלוס, און דעמאָלט דרוקן אויס ין פון דעם, פּראָצענט ס, נייַ שורה, און דעמאָלט אַרגוו קלאַמער איך. אַזוי אין אנדערע ווערטער, איך בין נישט דילינג מיט יחיד אותיות אין דעם מאָמענט. אַרגוו, ווי ימפּלייד דורך די ליידיק קוואַדראַט ברייסאַז צו די רעכט פון די נאָמען אַרגוו, מיטל אַרגוו איז אַ מענגע פון ​​סטרינגס. און אַרגק איז נאָר אַ ינט. דעם שורה דאָ, 6, איז אַזוי צו זאָגן: שטעלן איך גלייַך צו 0. ציילן אַלע די וועג אַרויף צו, אָבער ניט כולל, אַרגק. און דעמאָלט אויף יעדער יטעראַטיאָן, דרוקן אויס אַ שטריקל. וואָס שטריקל? די איך-טיייטש שטריקל אין אַרגוו. אַזוי וועראַז איידער איך איז געווען ניצן די קוואַדראַט קאַנטיקער נאָוטיישאַן צו באַקומען אין די ITH כאַראַקטער אין אַ שטריקל, איצט איך בין ניצן די קוואַדראַט קאַנטיקער נאָוטיישאַן צו באַקומען אין די ITH שטריקל אין אַ מענגע. אַזוי עס ס מין פון איין שיכטע אויבן, קאַנסעפּטשואַלי. און אַזוי וואָס ס 'ציכטיק וועגן דעם פּראָגראַם איצט, אויב איך צונויפנעמען אַרגוו1, און דעמאָלט טאָן ./אַרגוו1, און דעמאָלט טיפּ אין עפּעס ווי FOO באַר באַז, וואָס זענען די דרייַ ניט ויסצאָלן ווערטער אַז אַ קאָמפּיוטער געלערנטער ריטשאַז פֿאַר קיין צייַט ער אָדער זי דאַרף עטלעכע פּלאַסעהאָלדער ווערטער, און שלאָגן קומען, יעדער פון יענע ווערטער, כולל די פּראָגראַם 'ס נאָמען, וואָס איז אין אַרגוו בייַ דער ערשטער אָרט, ענדס אַרויף ווייל געדרוקט איין אין אַ צייַט. און אויב איך טוישן דעם, און איך זאָגן עפּעס ווי אַרגוו1 זאַמילאַ טשאַן, מיר באַקומען אַלע דרייַ פון יענע ווערטער, וואָס איז אַרגוו0, אַרגוו1, אַרגוו2, ווייַל אין דעם פאַל אַרגק, דער ציילן, איז 3. אבער וואָס ס ציכטיק איז אויב איר פֿאַרשטיין אַז אַרגוו איז נאָר אַ מענגע פון ​​סטרינגס, און איר פאַרשטיין אַז אַ שטריקל איז אַ מענגע פון ​​אותיות, מיר קענען אַקטשאַוואַלי מין פון נוצן דעם קוואַדראַט קאַנטיקער נאָוטיישאַן קייפל מאל צו קלייַבן אַ שטריקל, און דעמאָלט קלייַבן אַ כאַראַקטער אין די שטריקל, דייווינג אין דיפּער ווי גייט. אין דעם בייַשפּיל, לאָזן מיר גיין פאָרויס און רופן דעם אַרגוו2.ק. און אין דעם בייַשפּיל, לאָזן מיר גיין פאָרויס און טאָן די פאָללאָווינג-- פֿאַר ינט איך באַקומען 0, איך איז ווייניקער ווי אַרגק, איך פּלוס פּלוס, נאָר ווי איידער. אַזוי אין אנדערע וואָרדס-- און איצט דעם איז געטינג קאָמפּליצירט גענוג. דעמאָלט איך בין געגאנגען צו זאָגן יטעראַטע איבער סטרינגס אין אַרגוו, ווי אַ באַמערקונג צו זיך. און דעמאָלט איך בין געגאנגען צו האָבן אַ נעסטעד פֿאַר שלייף, וואָס איר מיסטאָמע האָבן געטאן, אָדער געהאלטן טאן, אין סקראַטטש, ווו איך בין געגאנגען צו זאָגן ינט-- איך בין נישט געגאנגען צו נוצן איך ווידער, ווייַל איך טאָן נישט וועלן צו שאָטן, אָדער סאָרט פון אָווועררייט די יגזיסטינג איך. איך בין געגאנגען צו, אַנשטאָט, זאָגן דזש, ווייַל אַז ס 'מיין גיין צו בייַטעוודיק נאָך איך, ווען איך בין נאָר טריינג צו ציילן פּשוט נומערן. פֿאַר דזש געץ 0-- און אויך, ען, איז געגאנגען צו באַקומען די הינטערבאָרט לענג פון אַרגוו קאַנטיקער איך, אַזוי לאַנג ווי דזש איז ווייניקער ווי עם, דזש פּלוס פּלוס, טאָן די ווייַטערדיק. און דאָ ס דער טשיקאַווע טייל. דרוק אויס אַ כאַראַקטער און אַ נייַ שורה, פּלאַגינג אין אַרגוו קאַנטיקער איך, קאַנטיקער j. גוט, אַזוי לאָזן מיר לייגן עטלעכע באַמערקונגען דאָ. יטעראַטע איבער אותיות אין איצטיקן שטריקל, דרוק J-טיייטש כאַראַקטער אין איך-טיייטש שטריקל. אַזוי איצט, לאָזן ס באַטראַכטן וואָס די באַמערקונגען מיינען. יטעראַטע איבער די סטרינגס אין אַרגוו-- ווי פילע סטרינגס זענען אין אַרגוו, וואָס איז אַ מענגע? אַרגק פילע, אַזוי איך בין יטעראַטינג פון איך גלייַך 0 אַרויף צו אַרגק. מינווייל, ווי פילע אותיות זענען אין די איך-טיייטש שטריקל אין אַרגוו? נו, צו באַקומען אַז ענטפֿערן, איך נאָר רופן שטריקל לענג אויף דעם קראַנט שטריקל איך זאָרגן וועגן, וואָס איז אַרגוו קלאַמער איך. און איך בין געגאנגען צו טעמפּערעראַלי קראָם אַז ווערט אין ן, נאָר פֿאַר קאַטשינג צוועקן, צו געדענקען עס פֿאַר עפעקטיווקייַט. און דעמאָלט איך בין געגאנגען ינישאַלייז דזש צו 0, האַלטן געגאנגען אַזוי לאַנג ווי דזש איז ווייניקער ווי ן, און אויף יעדער יטעראַטיאָן ינקראַמאַנט j. און דעמאָלט אין דאָ, פּער מיין באַמערקונג אויף שורה 12, דרוקן אויס אַ כאַראַקטער, נאכגעגאנגען דורך אַ נייַ שורה, ספּעסיפיקאַללי אַרגוו קלאַמער איך גיט מיר די איך-טיייטש שטריקל אין אַרגוו-- אַזוי דער ערשטער וואָרט, די צווייט וואָרט, די דריט וואָרט, וועלכער. און דעמאָלט דזש דייווז אין דיפּער, און געץ מיר די דזש-טיייטש כאַראַקטער פון וואָס וואָרט. און אַזוי, אין ווירקונג, איר קענען מייַכל אַרגוו ווי אַ מאַלטי-דימענשאַנאַל, ווי אַ צוויי-דימענשאַנאַל, מענגע, ווערביי יעדער וואָרט מין פון קוקט ווי דעם אין דיין מיינונג ס אויג, און יעדער כאַראַקטער איז מין פון קאַמפּאָוזד אין אַ זייַל, אויב אַז העלפּס. אין פאַקט, ווען מיר רייצנ זיך דעם באַזונדער אין צוקונפֿט וואָכן, עס ס געגאנגען צו זייַן אַ ביסל מער sophisticated ווי אַז. אבער איר קענען טאַקע טראַכטן פון וואָס, פֿאַר איצט, ווי נאָר דאָס צוויי-דימענשאַנאַל מענגע, ווערביי איין מדרגה פון עס איז אַלע פון ​​די סטרינגס. און דעריבער אויב איר ונטערטוקנ זיך אין דיפּער, איר קענען באַקומען אין די יחיד אותיות דערין דורך ניצן דעם נאָוטיישאַן דאָ. אזוי וואָס איז די נעץ ווירקונג? זאל מיר גיין פאָרויס און מאַכן אַרגוו2-- צירעווען עס. איך געמאכט אַ גרייַז דאָ. ימפּליסאַטלי דיקלערינג די ביבליאָטעק פונקציאָנירן סטערלינג. אַזוי אַלע דעם מאָל, עס ס טאָמער צונעמען אַז מיר 'רע סאָרט פון פינישינג פּונקט ווו מיר אנגעהויבן. איך סקרוד אַרויף, ימפּליסאַטלי דיקלערינג ביבליאָטעק פונקציאָנירן סטערלינג. גוט, וואַרטן אַ מינוט. איך געדענקען אַז, ספּעציעל זינט עס ס רעכט דאָ. איך דאַרפֿן צו אַרייַננעמען סטרינג.ה אין דעם ווערסיע פון ​​די פּראָגראַם. זאל מיר גיין פאָרויס און אַרייַננעמען סטרינג.ה, ראַטעווען וואָס, גיין פאָרויס און רעקאָמפּילע אַרגוו2. און איצט, דאָ מיר גיין, מאַכן אַרגוו2, קומען. און כאָטש עס ס אַ ביסל קריפּטיק בייַ ערשטער בליק, באַמערקן אַז, טאַקע, וואָס איז געדרוקט איז פּונקט אַרגוו2. אבער אויב איך טיפּ עטלעכע ווערטער נאָך דעם פּינטלעך, ווי אַרגוו2 זאַמילאַ טשאַן, קומען, אויך אַ ביסל קריפּטיק בייַ ערשטער בליק. אבער אויב מיר מעגילע צוריק אַרויף, ./אַרגוו2 ז-א-ב-י-ל-אַ C-ה-א-ן. אַזוי מיר ווע יטעראַטעד איבער יעדער וואָרט. און, אין דרייַ, מיר 'ווע יטעראַטעד איבער יעדער כאַראַקטער ין אַ וואָרט. איצט, נאָך אַלע פון ​​דעם, פאַרשטיין אַז עס ס איין אנדערע דעטאַל מיר ווע שוין מין פון יגנאָרינג דעם גאַנץ צייַט. מיר נאָר טיזד באַזונדער וואָס הויפּט ס ינפּוץ קענען זייַן? וואָס וועגן הויפּט ס פּראָדוקציע? כל פון דעם צייַט, מיר ווע שוין נאָר קאַפּיינג און פּאַסטינג די וואָרט ינט אין פראָנט פון הויפּט, כאָטש איר מייַ זען אָנליין, מאל ינקערעקטלי אין עלטערע ווערסיעס פון C און זאַמלערס, אַז זיי זאָגן פּאָסל, אָדער גאָרנישט בייַ אַלע. אבער, טאַקע, פֿאַר די ווערסיע פון C אַז מיר 'רע ניצן, C 11, אָדער 2011, פאַרשטיין אַז עס זאָל זיין ינט. און עס זאָל יעדער זייַן פּאָסל אָדער אַרגק און אַרגוו דאָ. אבער וואָס ינט הויפּט? וואָס איז עס אַקשלי אומגעקערט? נו, עס טורנס אויס אַלע פון ​​דעם צייַט, קיין מאָל איר ווע געשריבן אַ פּראָגראַם הויפּט איז שטענדיק אומגעקערט עפּעס. אבער עס ס 'שוין טאן אַזוי בעסאָד. אַז עפּעס איז אַ ינט, ווי שורה 5 סאַגדזשעסץ. אבער וואָס ינט? נו, עס ס דעם צוזאַמענפאָר אין פּראָגראַממינג, ווערביי אויב גאָרנישט האט ניטאָ אומרעכט און אַלע איז געזונט, מגילה און פֿעיִקייטן בכלל רעטורנ-- עפּעס קאָונטערינטויטיוועלי-- 0. 0 בכלל סיגניפיעס אַלע איז געזונט. אַזוי אַפֿילו כאָטש איר טראַכטן פון עס ווי פאַלש אין פילע קאַנטעקסץ, עס אַקשלי בכלל מיטל אַ גוט זאַך מינווייל, אויב אַ פּראָגראַם קערט 1, אָדער נעגאַטיוו 1, אָדער 5, אָדער נעגאַטיוו 42, אָדער קיין ניט-0 ווערט, אַז בכלל סיגניפיעס אַז עפּעס האט ניטאָ אומרעכט. אין פאַקט, אויף דיין אייגן מעק אָדער פּיסי, איר זאל האָבן אַקטשאַוואַלי געזען אַ טעות אָנזאָג, ווערביי עס זאגט עפּעס אָדער אנדערע, טעות קאָד נעגאַטיוו 42, אָדער טעות קאָד 23, אָדער עפּעס ווי אַז. אַז נומער איז בכלל נאָר אַ אָנצוהערעניש צו די פּראָגראַמיסט, אָדער די פירמע אַז געמאכט די ווייכווארג, וואָס זענען פאַלש און וואָס, אַזוי אַז זיי קענען קוקן דורך זייער דאַקיומענטיישאַן אָדער קאָד, און רעכענען אויס וואָס די טעות אַקטשאַוואַלי מיטל. עס ס בכלל נישט נוצלעך צו אונדז סוף ניצערס. אבער ווען הויפּט קערט 0, אַלע איז געזונט. און אויב איר טאָן ניט ספּעציפיצירן וואָס הויפּט זאָל צוריקקומען, עס וועט נאָר אויטאָמאַטיש צוריקקומען 0 פֿאַר איר. אבער אומגעקערט עפּעס אַנדערש איז אַקטשאַוואַלי נוצלעך. אין דעם לעצט פּראָגראַם, לאָזן מיר גיין פאָרויס און רופן דעם עקסיט.ק, און פאָרשטעלן די לעצטע פון ​​הייַנט ס טעמעס, באקאנט ווי אַ טעות קאָד. זאל מיר גיין פאָרויס און אַרייַננעמען אונדזער באַקאַנט טעקעס אַרויף שפּיץ, טאָן ינט הויפּט. און דאָס מאָל, לאָזן 'ס טאָן ינט אַרגק, שטריקל אַרגוו, און מיט מיין בראַקאַץ צו מיינען אַז עס ס אין די מענגע. און דעריבער לאָזן מיר נאָר טאָן אַ מייושעוודיקייַט טשעק. דאס מאָל, אויב אַרגק טוט ניט גלייַך 2, דעמאָלט איר וויסן וואָס? פאַרגעסן עס. איך בין געגאנגען צו זאָגן אַז, היי, באַניצער, איר זענט פעלנדיק באַפֿעלן שורה אַרגומענט באַקקסלאַש ן. און דעמאָלט אַז ס עס. איך ווילן צו אַרויסגאַנג. איך בין געגאנגען צו פּרעעמפּטיוועלי, און פּרימאַטשורלי טאַקע, קריק עפּעס אנדערע ווי די נומער 1. די גיין צו ווערט פֿאַר די ערשטער טעות אַז קענען פּאַסירן איז 1. אויב איר האָבן עטלעכע אנדערע עראָוניאַס סיטואַציע אַז זאל פּאַסירן, איר זאל זאָגן צוריקקומען 2 אָדער צוריקקומען 3, אָדער אפֿשר אַפֿילו נעגאַטיוו 1 אָדער נעגאַטיוו 2. דאס זענען נאָר אַרויסגאַנג קאָודז וואָס זענען, בכלל, בלויז נוצלעך צו די פּראָגראַמיסט, אָדער די פירמע אַז ס שיפּינג די ווייכווארג. אבער דער פאַקט אַז עס ס נישט 0 איז וואָס ס וויכטיק. אַזוי אויב אין דעם פּראָגראַם, איך ווילן צו גאַראַנטירן אַז דעם פּראָגראַם בלויז אַרבעט אויב דער באַניצער גיט מיר מיט אַן אַרגומענט ציילן פון צוויי, די נאָמען פון די פּראָגראַם, און עטלעכע אנדערע וואָרט, איך קענען דורכפירן ווי פיל ווי גייט, שרייַען בייַ דעם באַניצער מיט פּרינטף אַזוי צו זאָגן: פעלנדיק באַפֿעלן שורה אַרגומענט, צוריקקומען 1. אַז וועט נאָר מיד פאַרלאָזן דעם פּראָגראַם. נאָר אויב אַרגק יקוואַלז 2 וועט מיר באַקומען אַראָפּ דאָ, אין וואָס פונט איך בין געגאנגען צו זאָגן, העלא פּראָצענט ס, באַקקסלאַש ן, אַרגוו1. אין אנדערע ווערטער, איך בין ניט געגאנגען נאָך אַרגוו 0, וואָס איז נאָר די נאָמען פון דעם פּראָגראַם. איך ווילן צו דרוקן אויס העלא, קאָמע, די רגע וואָרט אַז דער מענטש טייפּט. און אין דעם פאַל אויף שורה 13, אַלע איז געזונט. איך וויסן אַז אַרגק איז 2 לאַדזשיקלי פון דעם פּראָגראַם. איך בין געגאנגען צו גיין פאָרויס און צוריקקומען 0. ווי אַ באַזונדער, האַלטן אין מיינונג אַז דאָס איז אמת אין קראַצן ווי געזונט. לאָגיקאַללי, איך קען טאָן דעם און ענקאַפּסאַלייט די שורות פון קאָד אין דעם אַנדערש פּונקט דאָ. אבער אַז ס 'סאָרט פון אַננעסאַסעראַלי ינדענטינג מיין קאָד. און איך ווילן צו מאַכן סופּער קלאָר אַז קיין ענין וואָס, דורך ניט ויסצאָלן, העלא עפּעס וועט באַקומען געדרוקט, אַזוי לאַנג ווי דער באַניצער קאָואַפּערייץ. אזוי עס ס 'זייער פּראָסט צו נוצן אַ צושטאַנד, נאָר אַ אויב, צו כאַפּן עטלעכע עראָוניאַס סיטואַציע, און דעמאָלט אַרויסגאַנג. און דעריבער, אַזוי לאַנג אַלע איז געזונט, נישט האָבן אַ אַנדערש, אָבער נאָר האָבן די קאָד אַרויס אַז אויב, ווייַל עס ס עקוויוואַלענט אין דעם באַזונדער פאַל, לאַדזשיקלי. אזוי איך בין אומגעקערט 0, נאָר צו בפֿירוש באַטייַטן אַלע איז געזונט. אויב איך איבערגעהיפּערט די צוריקקומען 0, עס וואָלט ווערן אויטאָמאַטיש אנגענומען פֿאַר מיר. אבער איצט אַז איך בין אומגעקערט איינער אין לפּחות דעם פאַל, איך בין געגאנגען צו, פֿאַר גוט מאָס און קלעריטי, צוריקקומען 0 אין דעם פאַל. אַזוי איצט לאָזן מיר גיין פאָרויס און מאַכן אַרויסגאַנג, וואָס איז אַ גאנץ סעגוע צו נאָר לאָזן. אבער מאַכן אַרויסגאַנג, און לאָזן מיר גיין פאָרויס און טאָן ./עקסיט, קומען. און דער פּראָגראַם יעלד בייַ מיר, פעלנדיק באַפֿעלן שורה אַרגומענט. גוט, לאָזן מיר קאָואַפּערייט. זאל מיר אַנשטאָט טאָן ./עקסיט, דוד, קומען. און איצט עס זאגט, העלא דוד. און איר וואָלט ניט נאָרמאַלי זען דעם. אבער עס טורנס אויס אַז עס ס אַ ספּעציעל וועג אין לינוקס צו אַקטשאַוואַלי זען מיט וואָס אַרויסגאַנג קאָד אַ פּראָגראַם עגזאַטיד. מאל אין אַ גראַפיקאַל וועלט ווי מעק אַס אָדער פֿענצטער, איר נאָר זען די נומערן ווען אַ טעות אָנזאָג פּאַפּס אַרויף אויף דער עקראַן און די פּראָגראַמיסט ווייזט איר וואָס נומער. אבער אויב מיר ווילן צו זען וואָס די טעות אָנזאָג איז, מיר קענען טאָן עס הערע-- אַזוי ./עקסיט, קומען, דרוקן פעלנדיק באַפֿעלן שורה אַרגומענט. אויב איך איצט טאָן ווידערקאָל $ ?, וואָס איז ראַדיקיאַלאַסלי קריפּטיק קוקן. אבער $? איז די מאַדזשיקאַל ינקאַנטאַטיאָן וואָס זאגט, היי, קאָמפּיוטער, זאָגן מיר וואָס די פֿריִערדיקע פּראָגראַם ס אַרויסגאַנג קאָד איז געווען. און איך שלאָגן קומען. איך זען 1, ווייַל אַז ס וואָס איך דערציילט מיין הויפּט פֿונקציע צו קריק. מינווייל, אויב איך טאָן ./עקסיט דוד, און שלאָגן קום, איך זען, העלא דוד. און אויב איך איצט טאָן ווידערקאָל $ ?, איך זען העלא 0. און אַזוי דעם וועט אַקשלי זייַן ווערטפול אינפֿאָרמאַציע אין דעם קאָנטעקסט פון די דעבוגגער, ניט אַזוי פיל אַז איר, דער מענטש, וואָלט זאָרגן. אבער די דעבוגגער און אנדערע מגילה מיר וועט נוצן דעם זמאַן וועט אָפֿט קוק אין אַז נומער, אַפֿילו כאָטש עס ס סאָרט פון פאַרבאָרגן אַוועק סייַדן איר קוק פֿאַר עס, צו באַשליסן צי אָדער ניט אַ פּראָגראַם ס דורכפירונג איז געווען ריכטיק אָדער פאַלש. און אַזוי אַז ברענגט אונדז צו דעם, אין די סוף פון די טאָג. מיר סטאַרטעד הייַנט דורך איר זוכט אין דיבאַגינג, און אין קער בייַ די קורס זיך, און דעמאָלט מער ינטערעסטינגלי, טעקניקלי ונטער דער קאַפּטער אין וואָס סטרינגס זענען, וואָס לעצט וואָך מיר נאָר גענומען פֿאַר געגעבן, און אוודאי האט זיי פֿאַר געגעבן אין קראַצן. מיר דעמאָלט געקוקט בייַ ווי מיר קענען צוטריט יחיד אותיות אין אַ שטריקל, און דעמאָלט ווידער גענומען אַ העכער מדרגה קוקן בייַ זאכן, קוקן בייַ ווי וועלל-- אויב מיר ווילן צו באַקומען בייַ יחיד יסודות אין אַ רשימה ווי ביניען, קענען ניט מיר טאָן אַז מיט קייפל סטרינגס? און מיר קענען מיט באַפֿעלן שורה טענות. אבער דעם בילד דאָ פון פּונקט באָקסעס איז דעמאָנסטראַטיווע פון ​​דעם גענעראַל געדאַנק פון אַ מענגע, אָדער אַ רשימה, אָדער אַ וועקטאָר. און דיפּענדינג אויף די קאָנטעקסט, אַלע פון ​​די ווערטער מיינען אַ ביסל אַנדערש זאכן. אַזוי אין C, מיר 'רע נאָר געגאנגען צו רעדן וועגן אַ מענגע. און אַ מענגע איז אַ פּייַדע פון זיקאָרן, יעדער פון וועמען ס עלעמענטן זענען קאַנטיגיואַס, צוריק, צו צוריק, צו צוריק, צו צוריק. און יענע עלעמענטן זענען, בכלל, פון דער זעלביקער דאַטע טיפּ, כאַראַקטער, כאַראַקטער, כאַראַקטער, כאַראַקטער, אָדער שטריקל, שטריקל, שטריקל, שטריקל, אָדער ינט, ינט, ינט, וועלכער עס איז מיר ניטאָ טריינג צו קראָם. אבער אין די סוף פון די טאָג, דאָס איז וואָס עס קוקט ווי קאַנסעפּטשואַלי. איר 'רע גענומען דיין קאָמפּיוטער ס זיקאָרן אָדער באַראַן. און איר ניטאָ קאַרווינג עס אויס אין ידענטיקאַללי סייזד באָקסעס, אַלע פון ​​וואָס זענען צוריק, צו צוריק, צו צוריק צו צוריק אין דעם וועג. און וואָס ס פייַן וועגן דעם געדאַנק, און די פאַקט אַז מיר קענען אויסדריקן וואַלועס אין דעם וועג מיט דעם ערשטער פון אונדזער דאַטן סטראַקטשערז אין דער קלאַס, מיטל מיר קענען אָנהייבן צו סאָלווע פּראָבלעמס מיט קאָד וואָס זענען געקומען אַזוי ינטויטיוולי אין וואָך 0. איר וועט צוריקרופן די טעלעפאָנירן בוך לעמאָשל, ווו מיר געניצט אַ צעטיילן און קאַנגקער, אָדער אַ ביינערי זוכן אַלגערידאַם, צו דרייען דורך אַ גאנצער בינטל פון נעמען און נומערן. אבער מיר אנגענומען, צוריקרופן, אַז אַז טעלעפאָנירן בוך איז שוין אויסגעשטעלט, אַז עמעצער אַנדערש האט שוין פיגורעד אָוט-- געגעבן אַ רשימה פון נעמען און נומבערס-- ווי צו אַלפאַבעטיזע זיי. און איצט אַז אין C מיר, אויך, האָבן די פיייקייַט צו לייגן דאס אויס, נישט פֿיזיש אין אַ טעלעפאָנירן בוך אָבער כמעט אין אַ קאָמפּיוטער ס זיקאָרן, וועט מיר קענען ווייַטער וואָך צו באַקענען ווידער טהיס-- דער ערשטער פון אונדזער דאַטן סטראַקטשערז אין אַ אַררייַ-- אבער מער ימפּאָרטאַנטלי, פאַקטיש קאָמפּיוטער וויסנשאַפֿט אַלגערידאַמז ימפּלאַמענטאַד אין קאָד, מיט וואָס מיר קענען קראָם דאַטן אין סטראַקטשערז ווי דעם, און דעמאָלט אָנהייבן צו מאַניפּולירן עס, און צו אַקטשאַוואַלי סאָלווע פּראָבלעמס מיט עס, און צו בויען אויף שפּיץ פון אַז, לעסאָף, מגילה אין C, אין פּיטהאָן, אין דזשאַוואַסקריפּט, קוועריינג דאַטאַבייסיז מיט סקל? און מיר וועט זען וואָס אַלע פון ​​די פאַרשידענע געדאנקען ינטערלאַק. אבער פֿאַר איצט, צוריקרופן אַז די פעלד אַז מיר באַקענענ הייַנט איז געווען דעם זאַך דאָ, און די וועלט פון קריפּטאָגראַפי. און צווישן די ווייַטער פּראָבלעמס איר זיך וועט סאָלווע איז די קונסט פון קריפּטאָגראַפי, סקראַמבאַלינג און דע-סקראַמבאַלינג אינפֿאָרמאַציע, און סיפערינג און דעסיפערינג טעקסט, און אַסומינג לעסאָף אַז איר איצט וויסן וואָס איז ונטער דער קאַפּטער אַזוי אַז ווען איר זען אָדער באַקומען אַ אָנזאָג ווי דעם, איר זיך קענען דעסיפער עס. אַלע דעם, און מער ווייַטער צייַט. [ווידעא פּלייבאַק] -מאָווער נאָר אנגעקומען. איך בין געגאנגען צו גיין באַזוכן זייַן קאָלעגע פּראָפעסאָר. יאָ. הי. עס ס איר. וואַרטן! דוד. איך בין נאָר טריינג צו רעכענען אויס וואָס געשען צו איר. ביטע, עפּעס קען העלפן. איר זענען זיין קאָלעגע רומייט, זענען נישט איר? איר זענען דאָרט מיט אים ווען ער פאַרטיק די קס50 פּרויעקט? [מוזיק פּלייינג] -אַז איז קס50. איך ליבע דעם אָרט. -עאַט אַרויף. מיר רע געגאנגען אויס פון געשעפט. [סוף פּלייבאַק]