דזשייסאַן הירסטשהאָרן: ברוכים הבאים צו וואָך דרייַ, אַלעמען. מיר האָבן אַ פאַרנומען אָבער יקסייטינג אָפּטיילונג פאָרויס פון אונדז. אַזוי ערשטער, ווייַל מיר האָבן געמאכט עטלעכע העאַדווייַ מיט דעם קורס אָבער מיר נאָך האָבן אַ פּלאַץ פון לערנען לינקס צו טאָן, איך בין געגאנגען צו ווייַזן איר גויס עטלעכע רעסורסן אַז זאָל באַווייַזן צו זיין ינקרעדאַבלי נוציק ווי איר ניט בלויז צוגאַנג דיין פּראָבלעם שטעלט, אָבער אויך קיצער אַלע פון דער מאַטעריאַל מיר געבן איר גויס אין לעקטשערז און קורצע הייזלעך און אָפּטיילונג. דעמאָלט מיר ניטאָ געגאנגען צו פאַרברענגען די ערשטער 20 צו 25 מינוט פון אָפּטיילונג געגאנגען איבער גדב, וואָס איר קען אָדער קען ניט האָבן געניצט אין דעם פונט, אָבער עס איז אַ ינקרעדאַבלי נוציק געצייַג אַז וועט העלפן איר דיבאַג דיין מגילה. א פּלאַץ פון איר זאלט ​​האָבן געניצט פּרינטף אין די מיטל פון דיין פּראָגראַם צו רעכענען אויס וואָס אַ בייַטעוודיק יקוואַלד. גדב איז אפילו בעסער ווי פּרינטף און טוט ניט שרויף אַרויף דיין קאָד ווייַל איר לויפן עס אויף אַ עקסעקוטאַבלע טעקע. אַזוי מיר וועט גיין איבער די 10 מערסט נוציק קאַמאַנדז איר דאַרפֿן פֿאַר גדב, און מיר ניטאָ געגאנגען צו גיין אויף אַ געניטונג צוזאַמען אַזוי אין פּראָבלעם שטעלן דרייַ און ווייַטער, איר קענען נוצן גדב צו העלפן דיבאַג דיין מגילה. און לעסאָף, מיר ניטאָ געגאנגען צו גיין איבער עטלעכע סאָרטינג און שאַרף אַלגערידאַמז אַז איר געזען אין לעקציע, און מיר זענען געגאנגען צו פאקטיש קאָד, ניט נאָר פּסעודאָקאָדע, אָבער קאָוד ביינערי זוכן, בלאָז סאָרט, און סעלעקציע סאָרט. אַזוי ערשטער, איך ווילן צו גיין איבער די רעסורסן. דעם איז אַ ברייט רשימה, און עס ס קלענערער פאָנט ווייַל איך האט אַ פּלאַץ צו פּאַסיק אויף דאָ. אבער די וועט ניט נאָר העלפן איר, ווידער, מיט די פּראָבלעם שטעלט און דיידזשעסטינג אינפֿאָרמאַציע איר געלערנט, אָבער באשטימט, קומען ויספרעג צייַט, די וועט זיין ינקרעדאַבלי נוציק. אַזוי ערשטער, די לעקציע הערות. אויב איר גיין צו cs50.net/lectures און מעגילע צו די ספּעציפיש וואָך און טאָג, איר וועט זען אַז עס זענען הערות פֿאַר יעדער לעקציע, וואָס איז ניט פשוט אַ טראַנסקריפּט, אָבער אַ עדיטיד ווערסיע פון וואָס איז געווען פארהוילן אין לעקציע מיט קאָד סניפּאַץ און אנדערע נוציק טידביץ. איך העכסט רעקאָמענדירן געגאנגען איבער די. און דעמאָלט ווי געזונט, עס ס מקור קאָד בנימצא פון יעדער לעקציע. און ווידער, די סליידז וועט אויך זיין בנימצא אָנליין בייַ cs50.net/sections דעם אָוונט. אַזוי רגע זענען די קורצע הייזלעך יעדער וואָך אַז דעקן טעמעס, יוזשאַוואַלי 5-15 מינוט אין לענג. און די אַלעווייַ וועט געבן איר אַ גרויס אָנפאַנגער אויף פאַרשידענע טעמעס. דריט - און דעם איז סאָרט נייַ דעם יאָר - איז study.cs50.net. אויב איר האָבן ניט אָפּגעשטעלט עס אויס, איך העכסט רעקאָמענדירן אַז איר טאָן אַזוי. איר באַקומען צו קלייַבן אַ טעמע. מיר האָבן דאַזאַנז פון סוגיות אויף עס. אַזוי למשל, איר קלייַבן פאַנגקשאַנז. עס גיט איר עטלעכע סליידז און הערות אויף פאַנגקשאַנז. די זענען פאקטיש די סליידז אַז טפס זענען ינקעראַדזשד צו נוצן בעשאַס אונדזער פּרעזאַנטיישאַנז אין אָפּטיילונג. עס ס אויך עצות און טריקס פֿאַר דילינג מיט פאַנגקשאַנז, און עס ס פיר פּראָבלעמס אַז העלפן איר אַרבעט מיט פאַנגקשאַנז. מיר אויך געבן איר לינקס צו די קורץ אויף פאַנגקשאַנז און די צייט אַז פאַנגקשאַנז האָבן קומען אַרויף אין לעקציע. אַזוי study.cs50.net, סאָרט נייַ דעם יאָר, אַ פאַנטאַסטיש מיטל. ווייַטער, איך האב מענטש, וואָס איז די מאַנואַל באַפֿעל אַז איר קענען לויפן אין די באַפֿעל שורה. אַזוי אויב איר האָבן קיין פראגעס וועגן אַ באַפֿעל, פֿאַר בייַשפּיל, ראַנד, וואָס מיר געפּלאָנטערט לעצטע וואָך בעשאַס אָפּטיילונג און איר האָבן מסתּמא געפּלאָנטערט אין דיין פּראָבלעם שטעלן ווען געגאנגען דורך די דזשענערייט קאָד, אָבער אויב איר טיפּ מענטש ראַנד, איר וועט באַקומען די בלאַט אַז דערציילט איר אַלע וועגן ראַנד. עס גיט איר וואָס עס נעמט, די פּאַראַמעטערס עס נעמט, ווי גוט ווי צוריקקומען טיפּ און אַ קורץ באַשרייַבונג פון אַז פֿונקציע. אַזוי טשעק אויס ראַנד. עס קענען זיין אַ ביסל ווערדי און קאַנפיוזינג, אַזוי מאל איך געפינען אַז פשוט גאָאָגלינג וואָס איך ווילן צו וויסן איז דער בעסטער וועג צו געפינען די ענטפער. אַזוי פיר מיט Google. באַקומען גוט בייַ גוגל. עס וועט ווערן דיין בעסטער פרייַנד. ווי ווויל ווי גוגל, אויב איר קענען ניט געפינען עס אויף גוגל, cs50.net/discuss, עס ס די דיסקוסיע פורום. גיכער פאַר אַלץ אויב איר האָבן אַ קשיא, איינער פון דיין 700 + פּירז אויך האט אַז קשיא און קען האָבן געבעטן עס שוין אין די דיסקוטירן גרופּעס און האָבן עס געענטפערט. אַזוי אויב איר האָבן אַ פּראָסט קשיא אָדער איר האָבן אַ קשיא אַז איר טראַכטן אפֿשר אנדערע מענטשן זאל האָבן לויפן אין, טשעק אויס cs50.net/discuss. צום סוף, די לעצטע צוויי, אויב איר ווילן צו רעדן צו אַ פאַקטיש מענטש, אָפיס שעה מאנטיק דורך פרייטאג. עס ס אויך אָנליין אָפיס שעה פֿאַר געשפּרייט סטודענטן. און לעצט אָבער זיכער ניט קלענסטער, מיר, עקסקלאַמיישאַן פונט. איר אַלע האָבן מיין קאָנטאַקט אינפֿאָרמאַציע. אויב איר דאַרפֿן עפּעס, ביטע קיינמאָל קווענקלען צו קאָנטאַקט מיר. שטענדיק פילן פֿרייַ צו טאָן אַזוי. זייער ווייניק פון איר האָבן צוגעגעבן מיר אויף גטשאַט, אַזוי אַז האט שוין דיסאַפּוינינג, אָבער אַלעווייַ אַז וועט טוישן צווישן דעם און ווייַטער אָפּטיילונג. קיין שאלות אַזוי ווייַט אויף די רעסורסן? גרויס. צום סוף, אנדערן צאַפּן פֿאַר באַמערקונגען, sayat.me/cs50. איר קענען געבן מיר Anonymous באַמערקונגען אויף ווי איך בין טאן. אַז איז טאַקע נוציק לעצט וואָך. איך גאַט אַ פּאָר פון באַמערקונגען פון איר גויס רעכט נאָך אָפּטיילונג, פּלוס פון אנדערע סטודענטן וואס וואָטשט עס בעשאַס די וואָך, און עס איז ינקרעדאַבלי נוציק. איך בין געגאנגען צו פּרובירן און שיעור מיין נוצן פון די וואָרט "זיס," אבער איך וועט ווייַזן מיין ענטוזיאַזם און יקסייטמאַנט אין אנדערע וועגן. אבער עס זענען אנדערע נאָך סאַבסטאַנטיוו פעעדבאַקקס, ביידע פּלאַסיז און דעלטאַ. אַזוי ביטע, איך געבן איר גויס באַמערקונגען אויף דיין פּראָבלעם שטעלט. פילן פֿרייַ צו געבן מיר באַמערקונגען אויף מיין לערנען. איך בין דאָ פֿאַר איר גייז. גרויס. אַז איז אַלע איך האָבן פֿאַר דער ערשטער אָפּטיילונג. טוט אַבי ווער האָבן קיין שאלות אַזוי ווייַט? און איך האָבן אַ טאָן פֿאַר די קאָנטראָל צענטער. עקסטענסיאָן סטודענטן האָבן מעססאַגעד מיר זאגן זיי ניטאָ ניט געטינג קיין אַודיאָ, אָבער אַז איז אויס פון מיין מאַכט צו פאַרריכטן. אַזוי אַלעווייַ, אַז געץ ריזאַלווד באַלד. אויב איר 'רע וואַטשינג אָנליין, הי, אָבער איר קענען ניט הערן מיר. אַזוי ערשטער, מיר זענען געגאנגען צו גיין דורך גדב. גדב, ווי איך כינטיד אין פריער, איז אַ דיבאַגינג געצייַג פיל בעסער ווי פּרינטף. אַזוי צו באַקומען סטאַרטעד מיט גדב, איר גויס, אויב איר ווילן צו עפענען אַרויף דיין אַפּפּליאַנסע און נעמען די טעקע אַז איך ימיילד צו איר פריער - דעם טעקע וועט אויך זיין בנימצא אָנליין אין אַ ביסל - און לויפן גדב. / די נאָמען פון דער טעקע. ערשטער, פון קורס, איר האָבן צו צונויפנעמען טעקע ווייַל גדב בלויז אַרבעט אויף עקסעקוטאַבלע טעקעס. אבער אויב איר אלץ ווילן צו אָנהייב גדב, דער ערשטער זאַך איר טאָן, איר לויפן גדב. / קיסר. אַזוי אַז ס די נאָמען פון די פּראָגראַם מיר ניטאָ געגאנגען צו גיין מיט עס רעכט איצט. אַזוי איך בין געגאנגען צו שרייַבן מאַכן קיסר, וואָס וועט געבן מיר אַ עקסעקוטאַבלע טעקע דאָ כיילייטיד אין גרין. און דעמאָלט איך בין געגאנגען צו לויפן גדב. / סיזער. און עס איר גיין. איר זען מיר האָבן עטלעכע טעקסט טעלינג מיר וועגן די ווערסיע פון ​​גדב, געבן מיר עטלעכע וואָראַנטי אינפֿאָרמאַציע, און דעמאָלט מיר האָבן די גדפּ פּינטלעך, וואָס קוקט סאָרט פון ווי אונדזער באַפֿעל שורה פּינטלעך, אָבער איר זען עס ס עפענען פּאַרען, גדב, נאָענט פּאַרען. איידער מיר פאָרזעצן און דיבאַג דעם טעקע אַז איך געשיקט צו איר אַלע, לאָזן ס קוק בייַ עטלעכע נוציק קאַמאַנדז אַזוי מיר האָבן אַ געפיל פון וואָס מיר זענען געגאנגען צו דעקן. די קאַמאַנדז זענען ליסטעד דאָ אין די סדר אין וואָס איך בכלל נוצן זיי. אזוי איך אָנהייבן מיין פּראָגראַם דורך פליסנדיק גבד. / נאָמען פון דעם פּראָגראַם, אין דעם פאַל, קיסר. און דעמאָלט דער ערשטער זאַך איך טאָן 99.9% פון די צייַט איז טיפּ ברעכן מיינען. אַז שטעלט אַ ברעכן פונט אין הויפּט. יסענשאַלי, וואָס איר ניטאָ טאן עס איז די פּראָגראַם איז געגאנגען צו האַלטן בייַ הויפּט אַזוי איר קענען אָנהייבן יגזאַמינינג עס שורה דורך שורה, אלא ווי פליסנדיק אַלע די וועג דורך. איר קענען ברעכן אין פאַרשידענע פונקטן אין דיין קאָד, אָבער הויפּט איז בכלל אַ גוט אָרט צו אָנהייבן. דער ווייַטער באַפֿעל איך לויפן איז לויפן. אַז סטאַרץ די פּראָגראַם פליסנדיק, און אויב איר דאַרפֿן צו קומען באַפֿעל שורה טענות, איר לויפן עס אַז באַפֿעל. לויפן מיט די טענות. אַזוי זינט מיר זענען געגאנגען איבער אַ ווערסיע פון C, וואָס איז די פּראָגראַם איר גייז געשריבן פֿאַר פּסעט צוויי - דעם איינער, פון קורס, האט עטלעכע באַגז אין עס אַז אַלעווייַ מיר וועט געפינען - מיר ניטאָ געגאנגען צו לויפן לויפן מיט עטלעכע באַפֿעל שורה טענות ווייַל קיסר, ווי איר גייז וויסן פּער די פּראָבלעם שטעלן ספּעק, נעמט עטלעכע באַפֿעל שורה טענות. דער ווייַטער פּאָר פון קאַמאַנדז, דער ווייַטער איינער איז פאקטיש גערופן ווייַטער. אַז איינער נעמט איר שורה דורך שורה דורך דיין פּראָגראַם. אַזוי היטטינג N דעמאָלט אַרייַן נעמט איר צו דער ווייַטער שורה, עקסאַקיוטינג די פריערדיקע שורה. שריט ניט נאָר נעמט איר צו דער ווייַטער שורה, אָבער עס נעמט איר ין פאַנגקשאַנז. אַזוי אויב איר האָבן געשריבן אַ פֿונקציע אין דיין קאָד אָדער אויב איר ווילן צו ויספאָרשן אַ צו איך, למשל, איר קענען שלאָגן ס, און אלא ווי געגאנגען צו דער ווייַטער שורה פון דער טעקע אַז איר ניטאָ געגאנגען דורך רעכט איצט, איר וועט פאקטיש שריט אין דעם פונקציאָנירן און זען זייַן קאָד. רשימה ווייזט איר, אין זייער באַניצער פרייַנדלעך פֿאָרמאַט, די 10 אָדער אַזוי שורות אַרום ווו איר איצט זענען אין דיין קאָד אַזוי איר קענען פאקטיש זען די טעקע אלא ווי בעת צו ויסבייַטן צוריק און אַרויס צווישן פאַרשידענע קוקן. דרוק איז ווי פּרינטף, ווי זייַן נאָמען ימפּלייז. אַז ווייזט איר וואָס אַ בייַטעוודיק יקוואַלז. אינפֿאָרמאַציע לאָוקאַלז איז טאַקע נוציק. דעם איז אַ ספּעציעל ווערסיע פון ​​דרוק. אינפֿאָרמאַציע לאָוקאַלז ווייזט איר אַלע פון ​​די היגע וועריאַבאַלז, פּרינץ זיי אַלע אויס פֿאַר איר וואָס זענען איצט בנימצא. אַזוי איך בכלל, אלא ווי בעת צו דרוקן אויס די פיר וועריאַבאַלז אַז איך בין טשיקאַווע וועגן אויב איך בין אין אַ פֿאַר שלייף, פֿאַר למשל, איך נאָר שרייַבן אינפֿאָרמאַציע לאָוקאַלז, און עס וועט ווייַזן מיר וואָס מיין טאָמבאַנק איך יקוואַלז, ווי געזונט ווי די מענגע אַז איך בין ארבעטן אויף יקוואַלז. צום סוף, פאָרזעצן. טייפּינג ברעכן סטאַפּס איר בייַ די ברעכן פונט. איר קענען גיין דורך שורה דורך שורה מיט ווייַטער און שריט. פאָרזעצן לויפט די פּראָגראַם צו אייער ווייַטער ברעכן פונט אָדער ביז קאַמפּלישאַן אויב עס זענען ניט מער ברעכן פונקטן. דיסאַבלע רימוווז ברעכן ווייזט אויב איר באַשלאָסן די ברעכן אין הויפּט איז ינאַפּראָופּרייט, איר ווילן צו שטעלן עס ערגעץ אַנדערש. און לעסאָף ק, פאַרלאָזן, געץ אויס פון גדב. אַזוי דעם פּראָגראַם,. / קיסר, מיר זענען געגאנגען צו קוקן דורך רעכט איצט און מיר זענען געגאנגען צו נוצן גדב צו געפינען די באַגז אין דעם פּראָגראַם. איך געלאפן דעם פּראָגראַם פריער מיט קוק 50, און איך גאַט איינער קרימענ זיך. אלץ עס עקסיסטירט, עס צונויפגעשטעלט, עס פארביי אַ פּלאַץ פון די טעסץ, אָבער פֿאַר עטלעכע סיבה, עס האט ניט פאָרן די פינפט פּרובירן, אויסגעדרייט באַרפאָאָ, אַלע קאַפּס, אין E-די-ו-איך ר ר, אַלע קאַפּס, ניצן דרייַ ווי אַ שליסל. איך גאַט שיין נאָענט. איך גאַט אַוועק דורך איינער בריוו. אַזוי עס ס עטלעכע קליין גרייַז אין דאָ. איך 'ווע געקוקט דורך מיין קאָד. איך קען ניט רעכענען עס אויס. אַלעווייַ, איר גייז קענען העלפן מיר רעכענען אויס וואָס דעם זשוק איז. אַזוי אַז ס די טעות מיר ניטאָ שאַרף פֿאַר. זאל ס מאַך אין גדב. ווידער, איך 'ווע לויפן גדב. / קיסר, אַזוי איצט מיר ניטאָ אין גדב. און וואָס איז דער ערשטער זאַך איך זאָל טאָן? איך 'ווע פּונקט אריין גדב. עמעצער געבן מיר אַ גוט באַפֿעל צו קומען. תּלמיד: ברייק הויפּט. דזשייסאַן הירסטשהאָרן: ברייק הויפּט. פאַנטאַסטיש. זאל ס טיפּ אַז ין איר גייז קענען וואַך אַרויף דאָ אָדער נאָכפאָלגן צוזאמען אויף דיין קאָמפּיוטערס. ברעכן הויפּט, און איר וועט זען אַ ברעכן פונט איז באַשטימט אין - עס גיט מיר עטלעכע טשודנע זיקאָרן אַדרעס, און עס אויך גיט מיר די שורה נומער. אויב איך געווען צו קוקן צוריק אין דעם טעקע, איך וואָלט פאַרשטיין אַז הויפּט געטראפן אויף שורה 21. וואָס זאָל איך לויפן ווייַטער? איז מיין פּראָגראַם פליסנדיק? נומ אַזוי וואָס זאָל איך לויפן ווייַטער? תּלמיד: לויפן. דזשייסאַן הירסטשהאָרן: לויפן. זאָל איך נאָר לויפן לויפן, אָדער זאָל איך שטעלן עטלעכע אנדערע זאכן אין? תּלמיד: לויפן מיט די אַרגומענט. דזשייסאַן הירסטשהאָרן: לויפן מיט די באַפֿעל טענות. און זינט איך בין דיבאַגינג אַ זייער ספּעציפיש פאַל, איך זאָל אַרייַן אַז באַפֿעל שורה אַרגומענט. אַזוי איך וועט טאָן לויפן דרייַ, וואָס איז, ווידער, דער רעזולטאַט איך גאַט פון קוק 50. סטאַרטינג פּראָגראַם. מיר גיין דורך אַ פּאָר פון שורות. איר וועט איצט זען אַז מיר ניטאָ אויף שורה 21. ווי טאָן איך וויסן אַז מיר 'רע אויף שורה 21? ווייַל אויב איר קוק צו די לינק פון מיין וואָקזאַל פֿענצטער, עס עס זאגט שורה 21. און אַז גיט מיר, פאקטיש, די קאָד וואָס איז אין שורה 21. אַזוי איך מיספּאָוק פריער. הויפּט איז ניט אַקטשאַוואַלי אין שורה 21. הויפּט איז אַ פּאָר פון שורות אויבן 21. אָבער בייַ שורה 21, אַז ס ווו מיר ניטאָ ברייקינג. דעם שורה פון קאָד האט ניט נאָך עקסאַקיוטאַד. אַז ס וויכטיק. די שורה איר זען האט ניט שוין עקסאַקיוטאַד נאָך. אַז ס דער ווייַטער שורה פון קאָד איר ניטאָ וועגן צו ויספירן. אַזוי דער ווייַטער שורה, ווי איר גייז זענען מיסטאָמע באַקאַנט מיט, איז דעם צושטאַנד טשעק צו זען אויב איך האָבן אריין אַ באַפֿעל שורה אַרגומענט. און א צו איך, וואָס איז די רגע טייל פון אַז טאן? וואָס איז א צו איך? תּלמיד: טשאַנגינג עס צו אַ ינטאַדזשער. דזשייסאַן הירסטשהאָרן: אנטשולדיגט? תּלמיד: עס ס טשאַנגינג די אַרגומענט צו אַ ינטאַדזשער. דזשייסאַן הירסטשהאָרן: אזוי א צו איך ענדערונגען אַרג וו 1 פון אַ שטריקל צו אַ ינטאַדזשער. און דעמאָלט וואָס ס עס טשעק? תּלמיד: אויב עס איז אַ רגע באַפֿעל שורה אַרגומענט, באַזונדער פון פליסנדיק די פּראָגראַם. דזשייסאַן הירסטשהאָרן: און וואָס ס דער צווייטער העלפט פון דעם באָאָלעאַן אויסדרוק טשעק? דעם טייל איבער דאָ, אַ צו איך? תּלמיד: אויב עס ס נעגאַטיוו. דזשייסאַן הירסטשהאָרן: מאכן זיכער וואָס? תּלמיד: מאכן זיכער עס איז, אין פאַקט, positive. דזשייסאַן הירסטשהאָרן: פּונקט. דעם איז טשעק צו זען אויב עס ס נעגאַטיוו, און אויב עס איז נעגאַטיוו, איך האָבן אַ געפיל דער ווייַטער שורה זאל זיין מיר יעלינג בייַ די באַניצער. אַזוי לאָזן ס שלאָגן סוף צו ויספירן דעם שורה. מיר טאָן ניט זען אַז שורה אַז איר גייז אפֿשר דערוואַרט צו זען יעלינג בייַ די באַניצער און דעמאָלט אומגעקערט, ווייַל דעם שורה האט ניט ויספירן. איך אריין 3. אַזוי איך האט, אין פאַקט, אַרייַן צוויי באַפֿעל שורה טענות, און 3 איז גרעסער ווי נול. אַזוי מיר געזען אַז שורה, מיר עקסאַקיוטאַד, אָבער מיר האבן ניט שריט ין די אויב צושטאַנד. אַזוי איצט, ווייַטער, איך זען איך בין באַשטעטיקן ינט שליסל יקוואַלז א צו איך אַרג וו 1. אַזוי אַז איז מיר שאפן אַ בייַטעוודיק שליסל. אַזוי אויב איך דרוקן אויס שליסל רעכט איצט, ווייַל אַז אַלאַוז איר צו זען די ווערט ין דער בייַטעוודיק, שליסל יקוואַלז 47. אַז ס טשודנע, אָבער פון קורס, אַז ס ווייַל איך האָבן ניט עקסאַקיוטאַד אַז שורה נאָך. אַזוי איצט אויב איך שלאָגן ן, ויספירן אַז שורה, און טאָן דרוקן שליסל, שליסל וועט גלייַך 3, וואָס איז וואָס מיר דערוואַרטן עס צו גלייַך. אַזוי ווידער, אין גדב, די שורה איר זען איר האָבן ניט עקסאַקיוטאַד נאָך. איר האָבן צו שלאָגן N אָדער ס אָדער אַ נומער פון אנדערע קאַמאַנדז צו פאקטיש ויספירן אַז שורה. דרוק שליסל. שליסל ס אין 3. אַזוי ווייַט, אַזוי גוט. שטריקל איז קלאָר טעקסט. זאל ס ויספירן אַז שורה. איך בין געטינג אַ שטריקל פון באַניצער. זאל ס זען אין מיין קוק 50, איך אַרייַן באַרפאָאָ אַלע קאַפּס, אַזוי אַז ס וואָס איך וועט קומען. אויב איך איצט דרוקן קלאָר טעקסט. איר וועט זען עס יקוואַלז אַ שטריקל. עס גיט מיר עטלעכע אנדערע טשודנע העקסאַדעסימאַל נומער, אָבער עס טוט אין פאַקט זאָגן אַז מיין שטריקל איז באַרפאָאָ. אויב איך געוואלט צו זען וואָס שליסל יקוואַלד אין דעם פונט, ווי קען איך טשעק שליסל? תּלמיד: דרוק שליסל. דזשייסאַן הירסטשהאָרן: דרוק שליסל, פּונקט. און פאקטיש, עס ס אַ דורכוועג. אויב איר באַקומען מיד פון טייפּינג דרוקן, איר קענען נאָר טיפּ פּ. אַזוי פּ שליסל טוט דער זעלביקער פּינטלעך זאַך. און ווידער, איך זען עס יקוואַלז 3. אויב איך געוואלט צו געפינען אויס וואָס ביידע שליסל און באַרפאָאָ יקוואַלד אין דער זעלביקער צייַט אָבער איך איז געווען מיד פון טייפּינג יעדער איינער אויס ינדיווידזשואַלי, איך קען טיפּ אינפֿאָרמאַציע לאָוקאַלז. אַז גיט מיר שליסל יקוואַלז 3. קלאָר טעקסט יקוואַלז באַרפאָאָ. עס אויך גיט מיר די צוויי טשודנע דאס בייַ די שפּיץ, דעם בייַטעוודיק איך און דעם בייַטעוודיק N. די זענען פאקטיש יגזיסטינג אין מיין הויפּט פּראָגראַם. מיר האָבן ניט געפּלאָנטערט זיי נאָך, אָבער ווי אַ פאָרויסיקע ווייַזונג, די עקסיסטירן אין מיין פֿאַר שלייף. אַזוי רעכט איצט, זיי גלייַך עטלעכע טשודנע נומערן ווייַל זיי האָבן ניט געווען יניטיאַליזעד נאָך, אָבער זיי טאָן נאָך עקסיסטירן אין זיקאָרן, אַזוי זיי ניטאָ פּונקט שטעלן צו עטלעכע מיסט ווערט. אבער מיר טאָן זען שליסל אין קלאָר טעקסט רעכט עס. אַזוי איך בין געגאנגען צו ויספירן דעם שורה, שורה 34, די פֿאַר שלייף. מיר ניטאָ געגאנגען צו שפּרינגען אין די פֿאַר שלייף דורך היטטינג N. און מיר ניטאָ ין דער פֿאַר שלייף. מיר ניטאָ אין אונדזער ערשטער טשעק. און ווידער, די זאָל סאָרט פון קוקן באַקאַנט צו איר ווייַל דעם איז געווען אַ קיסר פּראָגראַם אַז איז געווען געשריבן, אָבער ווידער, האט עטלעכע סאָרט פון זשוק. און איצט אויב איך טאָן אינפֿאָרמאַציע לאָוקאַלז, ווייַל איך בין ין אַז פֿאַר שלייף, איר וועט זען אַז איך יקוואַלז נול, ווי מיר דערוואַרטן. אַז ס וואָס מיר שטעלן עס צו און יניטיאַליזעד עס צו אין די פֿאַר שלייף. N יקוואַלז 6. אַז אויך מאכט זינען ווייַל מיר שטעלן עס צו די סטרלען פון קלאָר טעקסט. אַזוי איך ווי צו טאָן אינפֿאָרמאַציע לאָוקאַלז אָדער דרוקן צו בייַטעוודיק אָפֿט צו מאַכן זיכער אַז אַלץ איז שטענדיק וואָס איך דערוואַרטן עס צו גלייַך. אין דעם פאַל, אַלץ איז וואָס איך דערוואַרטן עס צו גלייַך. אַזוי לאָזן ס אָנהייבן מאָווינג דורך דעם פֿאַר שלייף. די שורה איך בין אויף איז שורה 36, אויב קלאָר טעקסט איך איז גרעסער ווי א און קלאָר טעקסט איך איז ווייניקער ווי אָדער גלייַך צו ז. איך וויסן מיין פּראָבלעם איז ניט מיט מיין ערשטער בריוו, עס ס מיט די רגע בריוו. אויב מיר קוקן צוריק אין קוק 50, ב גייט צו E פייַן. איך בין גענומען די א און געלאזן עס ווי אַ א, ניט טשאַנגינג עס צו די אזוי עפּעס ס קאַליע מיט די רגע בריוו. אַזוי איך בין געגאנגען צו באַוועגן עס אין אַ רגע. אָבער אויב איך האט ווילן צו קאָנטראָלירן וואָס קלאָר טעקסט איך יקוואַלד אין דעם באַזונדער פאַל, איך טראַכטן עס זאָל זיין וואָס? וואָס זאָל קלאָר טעקסט איך גלייַך אין דעם ערשטער קייַלעכיק דורך די פֿאַר שלייף? תּלמיד: זעראָ? דזשייסאַן הירסטשהאָרן: קלאָר טעקסט פון איך? אַזוי עס זאָל זיין קאפיטאל בי איך, פון קורס, יקוואַלז נול, אָבער קלאָר טעקסט קלאַמער נול פארמאכט קלאַמער יקוואַלז ב ווייַל סטרינגס, ווי מיר געזען לעצט וואָך, זענען מענגע, אַזוי מיר ניטאָ געטינג די ערשטער כאַראַקטער פון אַז. אַזוי ווידער, אויב איך געדרוקט אויס קלאָר טעקסט פון איך, איך טאָן, אין פאַקט, באַקומען די כאַראַקטער בי און אַז ס ציכטיק, רעכט? איך טאָן ניט פאקטיש האָבן קלאָר טעקסט אויך אַז ס ניט איינער פון די וועריאַבאַלז איך שטעלן אָדער יניטיאַליזעד, אָבער איר קענען דרוקן אויס אַ גאַנץ באַלעבאָס פון זאכן אויב איר 'ד ווי צו. אבער לאָזן ס מאַך דורך. אויב קלאָר טעקסט איך איז גרעסער ווי א און קלאָר טעקסט איך איז ווייניקער ווי אָדער גלייַך צו ז, אַז קלאר איז אמת ווייַל מיר האָבן אַ קאפיטאל בי איך בין געגאנגען צו לויפן עטלעכע באַפֿעל אויף עס. מיר געזען אַז מאַט לעצטע וואָך, אַזוי מיר וועט נעמען עס פֿאַר געגעבן אַז עס אַרבעט רעכט לויט צו קוק 50. די געגרייַזלט ברייסאַז, דער ערשטער איינער געוויזן אַז איך איז געווען עקסיטינג די אויב צושטאַנד, די רגע איינער געוויזן אַז איך בין עקסיטינג די פֿאַר שלייף. און אַזוי איצט ווען איך שלאָגן ווייַטער, מיר וועט זען מיר ניטאָ צוריק אין די פֿאַר שלייף ווידער. מיר ניטאָ געגאנגען דורך די פֿאַר שלייף ווידער. זאל ס פאקטיש שריט אין די רגע יטעראַטיאָן פון די פֿאַר שלייף און דרוקן אינפֿאָרמאַציע לאָוקאַלז. אַזוי מיר ניטאָ אין די רגע יטעראַטיאָן פון אונדזער פֿאַר שלייף. איך יקוואַלז 1, וואָס מיר דערוואַרטן. ען יקוואַלז 6, וואָס מיר דערוואַרטן. שליסל יקוואַלז 3, וואָס מיר דערוואַרטן. און קלאָר טעקסט, איר וועט זען, יקוואַלז עאַרפאָאָ איצט, ניט באַרפאָאָ ענימאָר ווייַל אין אונדזער פֿריִערדיקע יטעראַטיאָן, די ב איז פארענדערט צו אַ קאפיטאל י אזוי מיר ניטאָ וועגן צו טרעפן די פּראָבלעם, אַזוי דעם איז ווו מיר ניטאָ געגאנגען צו ונטערטוקנ זיך אין די דיבאַגינג. אָבער טוט אַבי ווער האָבן קיין שאלות וועגן וואָס מיר 'ווע געטאן אַזוי ווייַט? פאַנטאַסטיש. אַזוי מיר ניטאָ וועגן צו ויספירן דעם אויב צושטאַנד, קלאָר טעקסט קלאַמער איך פארשלאסן קלאַמער גרעסער ווי א און קלאָר טעקסט איך ווייניקער ווי אָדער גלייַך צו זי אבער איידער איך גיין אין אַז, ווייַל דעם איז ווו איך וויסן מיין טעות איז, איך ווילן צו פונט אויס קלאָר טעקסט פון אויך אזוי זאל ס שטעלן דרוקן אויס. עס טוט גלייַך די כאַראַקטער א, אַזוי אַז מיינט אַזוי ווייַט, אַלע איז געזונט און גוט. אַזוי איך דערוואַרטן דעם שורה פּער מיין לאָגיק, דעם שורה זאָל זיין אמת. עס ס אַ קאפיטאל בריוו. אבער אויב איך שלאָגן ן, מיר טאָן פאַרשטיין אַז דעם שורה, אין פאַקט, האט ניט ויספירן. איך דזשאַמפּט אַראָפּ צו די אַנדערש אויב. וואָס האט אַז פּאַסירן? תּלמיד: ווייַל איר האָבן אייער צושטאַנד פון קלאָר טעקסט איז גרעסער ווי אַ, ניט גלייַך אָדער גרעסער ווי. דזשייסאַן הירסטשהאָרן: אזוי איך האט מיין קלאָר טעקסט איך איז גרעסער ווי א, ניט גרעסער ווי אָדער גלייַך צו. אַזוי קלאר, די קאפיטאל א האט ניט צינגל דעם אויב צושטאַנד, און מיר האבן ניט שריט אין עס, און מיר האבן ניט טאָן די נייטיק יבעררוק. אַזוי אַז ס עס, פאקטיש. איך פיגיערד אויס מיין זשוק. איך קען גיין צוריק אין מיין מקור טעקע, טוישן עס, און דערהייַנטיקן עס און לויפן קוק 50 ווידער. אבער מיר וועט זען, נאָר פֿאַר פעדאגאגיק ס צוליב, אויב איך האַלטן געגאנגען. די אַנדערש אויב טוט ניט ויספירן אָדער, אָבער וואָס אַנשטאָט יקוואַלז איז די באַפֿעל וואס טוט ניט ענדערן. אַזוי עס ס ניט געביטן בייַ אַלע, און אויב איך דרוק קלאָר טעקסט דאָ, מיר וועט זען געגאנגען דורך אַז פֿאַר שלייף האט ניט, אין פאַקט, טוישן אַז רגע כאַראַקטער בייַ אַלע. עס ס נאָך אַ הויפּט - שטאָט יי אַזוי ווידער, מיר דעבוגגעד אונדזער טעות. מיר איינגעזען אַז עס איז געווען עטלעכע לאָגיק פעלנדיק. און מיר דעבוגגעד עס פאָרויס פון צייַט איידער פאקטיש עקסאַקיוטינג אַז שורה, אָבער איר וואָלט האָבן באמערקט האט מיר נאָר שלאָגן ווייַטער און שפּרינגען צו אַז אַנדערש אויב, אַז מיטל אַז אַז אויב צושטאַנד איז ניט אמת. מיר האבן ניט, אין פאַקט, באַקומען דער רעזולטאַט מיר דערוואַרט. אַזוי דעמאָלט מיר קען האָבן געווען פּראַמפּטיד, האט מיר ניט געווען אַזוי כאַריפעסדיק, צו קוקן בייַ אַז אויב צושטאַנד און טשעק אויב, אין פאַקט, אונדזער צושטאַנד זאָל אָפּשאַצן צו אמת אין דעם קראַנט קאָנטעקסט. אַז ס אַלע פֿאַר דיבאַגינג דעם פּראָגראַם. טוט אַבי ווער האָבן קיין שאלות? וואָס באַפֿעל קען איך שלאָגן צו פאַרלאָזן גדב? קיו און דעמאָלט איך וועט זיין פּראַמפּטיד, פאַרלאָזן סייַ ווי סייַ? יא אָדער ניט. איך וועט שלאָגן יא, און איך וועט האָבן פאַרלאָזן גדב. אַזוי אַז איז געווען אַ שנעל אָנפאַנגער צו גדב. פאקטיש, אין אַ פאַקטיש סצענאַר, איך האט דעם אין אָפיס שעה. איך גדבעד דעם פּינטלעך פּראָגראַם אין אָפיס שעה מיט אַ תּלמיד. און אויב מיר גיין צוריק צו די קאַמאַנדז מיר געזען פריער, מיר געניצט ברעכן הויפּט, ערשטער זאַך מיר האבן. מיר געניצט לויפן מיט באַפֿעל שורה טענות, רגע זאַך מיר האבן. מיר געניצט ווייַטער אַ פּלאַץ צו רירן אונדז דורך שורות. און ווידער, די קורץ ווערסיע פון ווייַטער איז N. אַז ס אין די קלאַמערן אין גרוי אויף די רוק. מיר האבן ניט נוצן שריט, אָבער מיר האבן ניט דאַווקע דאַרפֿן צו פֿאַר דעם פאַל. אבער מיר זאלן נוצן עס אין אַ ביסל שפּעטער אויף הייַנט אויב מיר זענען דיבאַגינג, פֿאַר למשל, ביינערי זוכן ווען ביינערי זוכן איז גערופן אין אַ באַזונדער פונקציאָנירן אָבער עס ס עטלעכע טעות מיט אים. מיר ניטאָ געגאנגען צו ווילן צו טרעטן אין די רופן צו ביינערי זוכן און פאקטיש דיבאַג עס. רשימה מיר האבן ניט נוצן אָדער ווייַל מיר האט אַ גוט געפיל פון אונדזער קאָד, אָבער אויב איך האט ווילן צו באַקומען אַ געפיל פון וואָס קאָד איך איז אַרום, איך קען נאָר נוצן רשימה. דרוק מיר געוויינט, אינפֿאָרמאַציע לאָוקאַלז מיר געוויינט. פאָרזעצן מיר האבן ניט דאַרפֿן צו נוצן אין דעם פאַל, ניט האט מיר דאַרפֿן צו נוצן דיסייבאַל, אָבער מיר האבן נוצן פאַרלאָזן. ווידער, די 10 קאַמאַנדז, פיר זיי. אויב איר פֿאַרשטיין די 10 קאַמאַנדז, איר זאָל זיין באַשטימט פֿאַר דיבאַגינג קיין אַרויסגעבן מיט גדב. אַזוי מיר ניטאָ וועגן צו גיין אויף, ווידער, צו די קרוקס פון אָפּטיילונג הייַנט, געגאנגען איבער די סאָרטינג און שאַרף אַלגערידאַמז. איידער מיר טאָן אַזוי, ווידער, קיין פראגעס, באַמערקונגען, קאַנסערנז פֿאַר גדב? אַזוי איז יעדער יינער געגאנגען צו נוצן גדב גאַנץ ווי פּרינטף? אַזוי יעדער יינער, פֿאַר פּערפּעטויטי ס צוליב, יעדער יינער איז נאָדדינג זייער קאָפּ רעכט איצט, אַזוי איך וועט זען איר אין אָפיס שעה און אַלע די טפס וועט זען איר און זיי וועט זאָגן, ווייַזן מיר ווי צו נוצן גדב, און איר וועט קענען צו ווייַזן זיי, רעכט? טיפּ פון? אפֿשר אַלעווייַ. קיל. אַזוי מיר ניטאָ געגאנגען צו אַריבערפירן אין סאָרטינג און שאַרף. איר וועט זען איך האָבן אַ רשימה שוין אויסגעשטעלט פֿאַר אונדז, אָבער אַז איז ניט געגאנגען צו זיין דער פאַל שטענדיק. אַזוי אין די פּראָבלעם שטעלן באַשרייַבונג פֿאַר פּראָבלעם שטעלן דרייַ, איר האָבן קורצע הייזלעך אַז איר קענען וואַך, און עס פאקטיש פרעגט איר צו היטן די קורצע הייזלעך. אויך אין לעקציע לעצט וואָך, מיר זענען איבער אַ פּלאַץ פון די אַלגערידאַמז, אַזוי איך בין ניט געגאנגען צו פאַרברענגען צייַט אין קלאַס געגאנגען איבער די אַלגערידאַמז ווידער אָדער צייכענונג בילדער פֿאַר ווי די אַלגערידאַמז אַרבעט. ווידער, אַז אינפֿאָרמאַציע איר קענען שייַעך-היטן לעקציע, אָדער אַז אינפֿאָרמאַציע איז קאַפּטשערד אַוצטאַנדינגלי אויף די קורצע הייזלעך פֿאַר די אָנפֿרעגן, אַלע פון וואָס זענען בנימצא אין cs50.net. אַזוי אַנשטאָט, וואָס מיר ניטאָ געגאנגען צו טאָן איז שרייַבן די מגילה. מיר האָבן אַ געפיל, אַ גייַסטיק מאָדעל, פון ווי זיי אַרבעט, און אַזוי וואָס מיר ניטאָ געגאנגען צו טאָן איז קאָוד זיי פֿאַר פאַקטיש. מיר ניטאָ געגאנגען צו ווענדן אַז גייַסטיק מאָדעל, אַז בילד, אויב איר וועט, אין די פאַקטיש קאָד. און אויב איר זענען אַ ביסל צעמישט אָדער האַזי אויף די גייַסטיק מאָדעל, איך טאָוטאַלי פֿאַרשטיין. מיר ניטאָ ניט אַקטשאַוואַלי געגאנגען צו שפרינג צו קאָד סטראַיגהטאַווייַ. אַזוי בשעת דעם פּינטלעך אין דעם רוק פרעגט איר צו קאָד ביינערי זוכן, און פאקטיש, אַ יטערייטיוו ווערסיע פון ביינערי זוכן, דער ערשטער זאַך איך טאַקע ווילן איר צו טאָן איז שרייַבן עטלעכע פּסעודאָקאָדע. אַזוי איר האָבן דעם גייַסטיק מאָדעל פון ווי ביינערי זוכן אַרבעט. נעמען אויס אַ בויגן פון פּאַפּיר אויב איר האָבן איינער גרינג פאַראַנען, אָדער עפענען אַרויף אַ טעקסט רעדאַקטאָר, און איך 'ד ווי יעדער יינער צו שרייַבן. נעמען פיר מינוט צו שרייַבן די פּסעודאָקאָדע פֿאַר ביינערי זוכן. ווידער, טראַכטן וועגן אַז גייַסטיק מאָדעל. איך וועט קומען אַרום אויב איר האָבן שאלות און מיר קענען ציען די בילד אויס. אבער ערשטער, איידער מיר אָנהייב פּראָגראַממינג, איך 'ד ווי צו שרייַבן די פּסעודאָקאָדע פֿאַר ביינערי זוכן אַזוי ווען מיר ונטערטוקנ זיך אין, מיר האָבן עטלעכע ריכטונג ווי צו ווו מיר זאָל קאָפּ. תּלמיד: קענען מיר יבערנעמען די מענגע פון וואַלועס מיר באַקומען איז שוין אויסגעשטעלט? דזשייסאַן הירסטשהאָרן: אזוי פֿאַר ביינערי זוכן צו אַרבעטן - ויסגעצייכנט קשיא - איר האָבן צו נעמען אין אַ אויסגעשטעלט מענגע פון ​​וואַלועס. אַזוי יבערנעמען עס וועט אַרבעט. מיר וועט גיין צוריק צו דעם גליטש. איר וועט זען אין לילאַ די פֿונקציע דעקלאַראַציע איז באָאָל בינאַרי_סעאַרטש ינט ווערט, ינט וואַלועס, ינט N. דעם זאָל קוקן באַקאַנט אויב איר 'ווע שוין אַפּראָוטשט אָדער גאַטאַן דיין הענט גראָב מיט די פּראָבלעם שטעלן. אבער אַז ס אייער פונקציאָנירן דעקלאַראַציע. ווידער, זאָל ניט דאַרפֿן צו זאָרג וועגן אַז פיל אין דעם מאָמענט. וואָס איך טאַקע ווילן איר צו טאָן איז נעמען פיר מינוט צו פּסעודאָקאָדע ביינערי זוכן, און דעמאָלט מיר וועט גיין איבער אַז ווי אַ גרופּע. און איך וועל קומען אַרום. אויב איר האָבן שאלות, פילן פֿרייַ צו כאַפּן דיין האַנט. פארוואס טאָן ניט איר נעמען צוויי מער מינוט צו ענדיקן אַרויף די פּסעודאָקאָדע? איך וויסן דעם קען ויסקומען לעכערלעך אַז מיר ניטאָ ספּענדינג אַזוי פיל צייַט אויף עפּעס אַז ס ניט אפילו פאקטיש אין C, אָבער ספּעציעל פֿאַר די מער טשאַלאַנדזשינג אַלגערידאַמז און פּראָבלעם שטעלט אַז מיר האָבן צו רעכענען אויס, סטאַרטינג אין פּסעודאָקאָדע ניט וועריינג וועגן די סינטאַקס, נאָר וועריינג וועגן די לאָגיק, איז ינקרעדאַבלי נוציק. און אַז וועג, איר ניטאָ ניט סאַלווינג צוויי ינקרעדאַבלי שווער פּראָבלעמס בייַ אַמאָל. איר ניטאָ פּונקט פאָוקיסינג אויף די לאָגיק, און דעמאָלט איר מאַך אין די סינטאַקס. גוט. זאל ס אָנהייב געגאנגען דורך די פּסעודאָקאָדע. איך האב געשריבן אַרויף דאָ, ביינערי זוכן פּסעודאָקאָדע. מיר וועט שרייַבן דעם אויף די ברעט צוזאַמען. אָדער איך וועט שרייַבן עס און איר וועט געבן מיר די פּראַמפּס איך דאַרפֿן. אַזוי קענען אַבי ווער געבן מיר דער ערשטער שורה פון די פּסעודאָקאָדע איר געשריבן פֿאַר ביינערי זוכן? יא, אַני? תּלמיד: בשעת די לענג פון די רשימה איז גרעסער ווי נול. דזשייסאַן הירסטשהאָרן: בשעת לענג פון רשימה גרעסער ווי נול. און ווידער, מיר זען עטלעכע C-קוקן סינטאַקטיקאַל זאכן אויף דאָ. אבער רובֿ פון דעם איז אין ענגליש. האט אַבי ווער האָבן קיין שורה זיי שטעלן איידער דעם אין זייער פּסעוודאָ - קאָד? תּלמיד: באַקומען אַ מענגע פון אויסגעשטעלט נומערן. דזשייסאַן הירסטשהאָרן: איר געשריבן "באַקומען אַ מענגע פון ​​אויסגעשטעלט נומערן. "פּער די פונקציאָנירן דעקלאַראַציע, מיר וועט זיין גייט פארביי אַ מענגע פון ​​אויסגעשטעלט נומערן. תּלמיד: [ינאָדאַבאַל]. דזשייסאַן הירסטשהאָרן: אזוי מיר וועט האָבן אַז. אבער יאָ, אויב מיר האבן ניט האָבן אַז, מיר וואָלט דאַרפֿן צו סאָרט אונדזער מענגע פון נומערן, ווייַל ביינערי זוכן בלויז אַרבעט אויף אויסגעשטעלט ערייז. אַזוי בשעת לענג פון רשימה יקוואַלז נול, איך בין געגאנגען צו שטעלן אין עטלעכע געגרייַזלט ברייסאַז צו מאַכן עס קוקן אַ קליין ביסל מער ווי סי אבער בשעת, מיינט צו מאַפּע אַנטו אַ בשעת שלייף, אַזוי ין דעם בשעת שלייף וואָס טאָן מיר דאַרפֿן צו טאָן פֿאַר ביינערי זוכן? עמעצער אַנדערש וואס האט ניט געגעבן מיר אַ ענטפֿערן נאָך אבער וואס געשריבן דעם? תּלמיד: גיין צו די מיטל פון דער רשימה. דזשייסאַן הירסטשהאָרן: טאָם. גיין צו די מיטל פון דער רשימה. און די נאָכפאָלגן אַרויף קשיא, וואָס טאָן מיר טאָן אַמאָל מיר ניטאָ בייַ די מיטל פון דער רשימה? תּלמיד: טאָן אַ קאָנטראָלירן צי אַז ס די נומער איר ניטאָ קוקן פֿאַר. דזשייסאַן הירסטשהאָרן: ויסגעצייכנט. גיין די מיטל פון דער רשימה און טשעק אויב אונדזער ווערט איז עס - פאַנטאַסטיש. האט אַבי ווער האָבן עפּעס אַנדערש אַז איז אַנדערש ווי דעם? אַז ס פּונקט רעכט. דער ערשטער זאַך מיר טאָן אין ביינערי זוכן איז גיין צו די מיטל פון דער רשימה און טשעק צו זען אויב אונדזער ווערט איז עס. אַזוי איך יבערנעמען אויב אונדזער ווערט איז עס, וואָס טוט מיר טאָן? תּלמיד: מיר צוריקקומען נול [ינאָדאַבאַל]. דזשייסאַן הירסטשהאָרן: יאָ, אויב אונדזער ווערט איז עס, מיר געפונען עס. אַזוי מיר קענען זאָגן עטלעכע וועג, אָבער דעם פונקציע איז דיפיינד, מיר זאָגן די באַניצער מיר געפונען עס. אויב עס ס ניט עס, כאָטש, אַז ס ווו דעם געץ טריקי. אַזוי אויב עס ס ניט עס, עמעצער אַנדערש וואס איז ארבעטן אויף ביינערי זוכן אָדער האט אַ געדאַנק איצט, וואָס טוט מיר טאָן? תּלמיד: פראגע. דזשייסאַן הירסטשהאָרן: יא? תּלמיד: איז די מענגע שוין אויסגעשטעלט? דזשייסאַן הירסטשהאָרן: יא, מיר ניטאָ אַסומינג די מענגע איז שוין אויסגעשטעלט. תּלמיד: אזוי דעמאָלט איר האָבן צו טשעק אויב די ווערט אַז איר זען איז גרעסער ווי די ווערט אַז איר ווילן, איר קענען אַריבערפירן צו די מיטל פון די אנדערע העלפט. דזשייסאַן הירסטשהאָרן: אזוי אויב די מיטל פון די רשימה איז גרעסער ווי וואָס מיר 'רע איר זוכט פֿאַר, דעמאָלט מיר טאָן וואָס? מיר מאַך ווו? תּלמיד: איר ווילן צו מאַך צו די העלפט פון די רשימה מיט נומערן נידעריקער ווי אַז. דזשייסאַן הירסטשהאָרן: אזוי מיר וועט רופן אַז די לינקס. אַזוי אויב מיטל איז גרעסער, מיר קענען זוכן די לינק העלפט פון די רשימה. און דעמאָלט דורך זוכן, וואָס טאָן איך מיינען דורך זוכן? תּלמיד: [ינאָדאַבאַל]. דזשייסאַן הירסטשהאָרן: מיר גיין צו די מיטל. מיר פאקטיש איבערחזרן דעם זאַך. מיר גיין צוריק דורך אונדזער בשעת שלייף. איך וועט געבן איר די לעצט איינער - אַנדערש, אויב, מיטל איז ווייניקער ווי וואָס מיר טאָן, וואָס טוט מיר טאָן דאָ? תּלמיד: גיין צו די רעכט. דזשייסאַן הירסטשהאָרן: זוכן די רעכט. דעם קוקט גוט, אָבער טוט אַבי ווער האָבן עפּעס אַז מיר זאלן זיין פעלנדיק אָדער עפּעס אַנדערש אַז איר שטעלן אין אייער פּסעוודאָ - קאָד? אזוי דעם איז וואָס מיר האָבן אַזוי ווייַט. בשעת די לענג פון די רשימה איז גרעסער ווי נול, מיר ניטאָ געגאנגען צו גיין צו די מיטל פון דער רשימה און טשעק אויב אונדזער ווערט איז עס. אויב די מיטל איז גרעסער, מיר ניטאָ געגאנגען צו זוכן לינקס, אַנדערש אויב די מיטל איז ווייניקער, מיר ניטאָ געגאנגען צו זוכן די רעכט. אַזוי מיר 'ווע אַלע האט עטלעכע פאַמיליעראַטי מיט די טערמינען מיר נוצן אין קאָמפּיוטער וויסנשאַפֿט און די מכשירים מיר האָבן. אבער איר וועט שוין באַמערקן מיר זענען גערעדט אין ענגליש, אָבער מיר געפונען אַ פּלאַץ פון זאכן וואס געווען צו מאַפּע אויף צו מכשירים מיר האָבן אין אונדזער קאָודינג געצייַג ינווענטאַר. אַזוי רעכט אַוועק די פלעדערמויז, מיר ניטאָ ניט געגאנגען צו פאקטיש קאָד נאָך. וואָס טוט מיר זען דאָ אין ענגליש אַז מאַפּס אויף צו זאכן מיר קענען שרייַבן אין C? תּלמיד: בשעת. דזשייסאַן הירסטשהאָרן: בשעת. אַזוי דעם בשעת רעכט דאָ מאַפּס אויף צו וואָס? תּלמיד: אַ בשעת שלייף. דזשייסאַן הירסטשהאָרן: אַ בשעת שלייף? אָדער מיסטאָמע, מער בכלל, אַ שלייף. מיר ווילן צו טאָן עפּעס איבער און איבער. אַזוי מיר ניטאָ געגאנגען צו קאָד אַ שלייף. און מיר שוין וויסן, ווייַל מיר 'ווע געטאן דעם אַ פּאָר פון מאל און מיר האָבן שעפע פון ​​ביישפילן אויס עס, ווי פאקטיש צו שרייַבן דעם אינדעקס פֿאַר אַ שלייף. אַזוי אַז זאָל זיין שיין גרינג. מיר זאָל קענען צו באַקומען אַז סטאַרטעד שיין געשווינד. וואָס אַנדערש טאָן מיר זען אין דאָ? וואָס אנדערע סטראַקטשערז סינטאַקסעס, דאס אַז מיר 'רע באַקאַנט מיט אין C, טאָן מיר שוין האָבן אַ געפיל פון באזירט אַוועק פון די ווערטער מיר געוויינט? יא, אננא? [ינאָדאַבאַל] נאָר קידינג. אננא, גיין פאָרויס. תּלמיד: אויב און אַנדערש. דזשייסאַן הירסטשהאָרן: אויב און אַנדערש - רעכט דאָ. אַזוי וואָס טאָן די קוק ווי? תּלמיד: אַ אויב אַנדערש דערקלערונג. דזשייסאַן הירסטשהאָרן: יאָ, טנאָים, רעכט? אַזוי מיר וועט מיסטאָמע דאַרפֿן צו שרייַבן עטלעכע באדינגונגען. און ווידער, כאָטש אפֿשר קאַנפיוזינג אין ערשטער, מיר בכלל האָבן אַ געפיל איצט פון ווי צו שרייַבן טנאָים און די סינטאַקס פֿאַר באדינגונגען. און אויב מיר טאָן ניט, מיר נאָר קוק אַרויף די סינטאַקס פֿאַר טנאָים, שנייַדן און פּאַפּ אַז, ווייַל מיר וויסן מיר דאַרפֿן אַ צושטאַנד דאָ. קיין אנדערע זאכן מיר זען אַז מאַפּע אַנטו דאס מיר זאלן דאַרפֿן צו טאָן אין C? יאָ, אַלעהאַ? תּלמיד: דאס זאל זיין קלאָר ווי דער טאָג, דורך פּונקט טשעק אויב אַ ווערט יקוואַלז עפּעס. דזשייסאַן הירסטשהאָרן: אזוי ווי טאָן מיר קאָנטראָלירן און - אַזוי גיין צו די מיטל פון דער רשימה און טשעק אויב אונדזער ווערט איז עס? ווי טאָן מיר טאָן אַז אין C? וואָס ס די סינטאַקס פֿאַר אַז? תּלמיד: יקוואַלז, יקוואַלז. דזשייסאַן הירסטשהאָרן: יקוואַלז, יקוואַלז. אַזוי דעם טשעק איז מיסטאָמע געגאנגען צו זיין אַ יקוואַלז, יקוואַלז. אַזוי מיר וועט וויסן מיר דאַרפֿן אַז ערגעץ. און פאקטיש, נאָר אין שרייבן עס, מיר זען די אנדערע זאכן. מיר ניטאָ געגאנגען צו האָבן צו טאָן עטלעכע פאַרגלייַך אָפּערייטערז אין עס - פאַנטאַסטיש. אַזוי עס אַקטשאַוואַלי קוקט ווי, דורך און גרויס, מיר האָבן ניט געשריבן אַ וואָרט פון C קאָד נאָך. אָבער מיר גאַט דער גייַסטיק מאָדעל אַראָפּ דורך לעקטשערז און די קורצע הייזלעך. מיר געשריבן פּסעוודאָ - קאָד ווי אַ גרופּע. און שוין, מיר האָבן 80% אויב ניט 90% פון וואָס מיר דאַרפֿן צו טאָן. איצט, מיר נאָר דאַרפֿן צו קאָד עס, וואָס ווידער, איז אַ ניט-נישטיק פּראָבלעם צו סאָלווע. אָבער בייַ מינדסטער מיר ניטאָ סטאַק אויף די לאָגיק. לפּחות איצט ווען מיר גיין צו אָפיס שעה, איך קענען זאָגן, איך וויסן וואָס איך דאַרפֿן צו טאָן, אָבער קענען איר דערמאָנען מיר פון די סינטאַקס? אָדער אפילו אויב אָפיס שעה זענען ענג, איר קענען גוגל פֿאַר די סינטאַקס, אלא ווי זייַענדיק סטאַק אויף די לאָגיק. און ווידער, אלא ווי טריינג צו סאָלווע די לאָגיק און דער סינטאַקס פּראָבלעמס אַלע בייַ אַמאָל, עס איז אָפט פיל בעסער צו ברעכן די צוויי שווער פּראָבלעמס אַוועק אין צוויי מער מאַנידזשאַבאַל אָנעס און טאָן די פּסעוודאָ - קאָד ערשטער און דעמאָלט קאָד אין סי אַזוי לאָזן ס זען וואָס איך האט פֿאַר די פּסעוודאָ - קאָד פאָרויס פון צייַט. בשעת די לענג פון די רשימה איז גרעסער ווי נול, קוק אין די מיטל פון די רשימה. אויב נומער געפונען אומגעקערט אמת, אַנדערש אויב נומער העכער, זוכן לינקס. אַנדערש אויב נומער נידעריקער, זוכן רעכט, קריק פאַלש. אַזוי אַז קוקט כּמעט יידעניקאַל אויב ניט קימאַט יידעניקאַל צו וואָס מיר געשריבן. פאקטיש, טאָם, וואָס איר האט ערשטער, ברייקינג די מיטל פון דער רשימה און אויב נומער געפונען אין צוויי סטייטמאַנץ איז פאקטיש וואָס איך האבן. איך קאַמביינד זיי עס. איך זאָל האָבן איינגעהערט צו איר די ערשטער מאָל. אַזוי וואָס איז די פּסעוודאָ - קאָד מיר האָבן. אויב איר ווילן צו איצט, נעבעכדיק, גיין צוריק צו אונדזער ערשט פּראָבלעם. זאל ס קאָד בינאַרי.ק. אַזוי מאַכשער אַ יטערייטיוו ווערסיע פון ביינערי זוכן ניצן די ווייַטערדיק פונקציאָנירן דעקלאַראַציע. און איר טאָן ניט דאַרפֿן צו צייכענען עס אַראָפּ נאָר נאָך. איך בין אַקטשאַוואַלי געגאנגען צו עפענען אַרויף רעכט דאָ בינאַרי.ק. אַזוי עס איז די פֿונקציע דעקלאַראַציע אין די מיטן פון די פאַרשטעלן. און איר וועט זען איך גענומען די פּסעוודאָ - קאָד פון אויף מיין זייטן, אָבער כּמעט יידעניקאַל צו וואָס מיר געשריבן, און שטעלן אַז אין פֿאַר איר. אַזוי איצט, לאָזן ס נעמען פינף מינוט צו קאָד דעם פֿונקציע. און ווידער, אויב איר האָבן קיין פראגעס, כאַפּן דיין האַנט, לאָזן מיר וויסן, איך וועט קומען אַרום. תּלמיד: [ינאָדאַבאַל]. דזשייסאַן הירסטשהאָרן: אזוי איך גענומען די ביינערי זוכן דעפֿיניציע בייַ די שפּיץ, אויף שורה 12. אַז ס וואָס איך גאַט פֿאַר מיין רוק. און דעמאָלט אַלע דעם פּסעוודאָ - קאָד איך פּונקט קאָפּיע און פּייסטיד פון די רוק, פּסעוודאָ - קאָד רוק. איך בין נאָך ניט געהער [ינאָדאַבאַל]. אַזוי אויב איר האָבן פאַרטיק דיין ימפּלאַמענטיישאַן, איך ווילן צו קאָנטראָלירן עס. איך ימיילד איר די העלפּערס.ה טעקע פריער אין דעם קלאַס. און עס וועט זיין בנימצא אָנליין ווי געזונט פֿאַר אראפקאפיע פֿאַר מענטשן וואַטשינג דעם אָפּטיילונג צייַט דילייד. און איך נאָר געניצט די דזשאַנעריק פאַרשפּרייטונג קאָד פון פּסעט3. אַזוי איך גענומען פינד.ק, נוצן מיין העלפּערס.ה טעקע אלא ווי די העלפּערס.ה טעקע אַז ס געגעבן אין די פאַרשפּרייטונג קאָד. און איך האט צו מאַכן איינער אנדערע ענדערונג אין פינד.ק גאַנץ ווי פאַך נאָר פשוט זוכן, רופן בינאַרי_סעאַרטש. אַזוי אויב איר ווילן צו פּרובירן דיין קאָד, וויסן אַז אַז איז ווי צו טאָן עס. אין פאַקט, ווען מיר וועט זיין פליסנדיק דעם קאָד רעכט איצט, איך פּונקט געמאכט אַ קאָפּיע פון מיין פּסעט3 וועגווייַזער, ווידער, סוואַפּט אויס די העלפּערס טעקעס און דעמאָלט געמאכט אַז ענדערונג אין פינד.ק צו רופן בינאַרי_סעאַרטש אלא ווי פשוט זוכן. דזשייסאַן הירסטשהאָרן: יא. איר האָבן אַ קשיא? תּלמיד: נעווערמינד. דזשייסאַן הירסטשהאָרן: ניט וועריז. נו, לאָזן ס באַקומען סטאַרטעד. מיר וועלן קאָוד דעם ווי אַ גרופּע. איינער אנדערע טאָן. ווידער, דעם איז, קענען לייכט זיין סוואַפּט אין פֿאַר פּראָבלעם שטעלן דרייַ. איך האָבן מיין העלפּערס.ה טעקע וואָס, אלא ווי די העלפּערס.ה מיר ניטאָ געגעבן, דערקלערט ביינערי זוכן, בלאָז סאָרט, און סעלעקציע סאָרט. און אין פינד.ק איר וועט באַמערקן אויף שורה, וואָס איז אַז, שורה 68, מיר רופן ביינערי זוכן גאַנץ ווי זוכן. אַזוי ווידער, די קאָד אַז איז בנימצא אָנליין אָדער די קאָד אַז איר זענט שאפן רעכט איצט קענען זיין לייכט סוואַפּט אין פֿאַר פּ שטעלן 3 צו קאָנטראָלירן עס. אבער ערשטער, לאָזן ס קאָד ביינערי זוכן. אונדזער פונקציאָנירן דעקלאַראַציע, מיר צוריקקומען אַ באָאָל. מיר נעמען אַ ינטאַדזשער גערופן ווערט. מיר נעמען אַ מענגע פון ​​ינטאַדזשערז גערופן וואַלועס, און מיר נעמען N זיין די גרייס פון דעם מענגע. אויף שורה 10, רעכט דאָ, איך האב שאַרף אַרייַננעמען סטדבאָאָל.ה. טוט אַבי ווער וויסן וואָס אַז ס עס? אַזוי וואָס טוט אַז שורה פון קאָד טאָן? תּלמיד: עס אַלאַוז איר צו נוצן אַ באָאָל צוריקקומען טיפּ. דזשייסאַן הירסטשהאָרן: פּונקט. תּלמיד: אָדער עס ס אַ ביבליאָטעק אַז אַלאַוז צו נוצן אַ באָאָל צוריקקומען טיפּ. דזשייסאַן הירסטשהאָרן: אַזוי דער שאַרף אַרייַננעמען סטדבאָאָל.ה שורה גיט מיר עטלעכע זוך און דעקלעריישאַנז פֿאַר זאכן אַז איך בין ערלויבט צו נוצן אין דעם ביבליאָטעק. אַזוי צווישן די איז געזאגט אַז עס ס דעם טיפּ גערופן באָאָל, און עס קענען זיין אמת אָדער פאַלש. אַזוי אַז ס וואָס אַז שורה טוט. און אויב איך האט ניט האָבן אַז שורה, איך וואָלט באַקומען אין קאָנפליקט פֿאַר שרייבן דעם וואָרט רעכט דאָ, באָאָל, רעכט עס. פּונקט רעכט. אַזוי איך דאַרפֿן אַז אין דעם קאָד. גוט. אזוי דעם, ווידער, איז אַ יטערייטיוו ווערסיע, ניט אַ רעקורסיווע איינער. אַזוי לאָזן אונדז באַקומען סטאַרטעד. זאל ס אָנהייבן מיט דעם ערשטער שורה פון פּסעוודאָ קאָד. און אַלעווייַ, מיר וועלן - אָדער ניט אַלעווייַ. מיר ניטאָ געגאנגען צו גיין אַרום די פּלאַץ. מיר וועט גיין שורה דורך שורה, און איך וועט העלפן איר געשטאַלט אויס די שורה אַז מיר דאַרפֿן צו שרייַבן ערשטער. אַזוי בשעת לענג פון רשימה איז גרעסער ווי נול. זאל ס אָנהייב אין די פראָנט. וואָס שורה זאָל איך שרייַבן דאָ, אין קאָד? תּלמיד: בשעת פּערענטאַסיס N איז גרעסער ווי 0. דזשייסאַן הירסטשהאָרן: בשעת N איז גרויס ווי 0. אַזוי N איז די גרייס פון אַ רשימה, און מיר ניטאָ טשעק אויב - [ינטערפּאָסינג שטימען] דזשייסאַן הירסטשהאָרן: - אנטשולדיגט? תּלמיד: ווי טאָן מיר וויסן אַז N איז די גרייס פון דער רשימה? דזשייסאַן הירסטשהאָרן: נעבעכדיק. פּער די פּסעט באַשרייַבונג, די זוכן און סאָרט פאַנגקשאַנז איר דאַרפֿן צו שרייַבן, N איז די גרייס פון דעם רשימה. איך פארגעסן צו דערקלערן אַז דאָ. אבער יאָ. N איז די גרייס פון די רשימה, אין דעם פאַל. אַזוי בשעת N איז גרעסער ווי 0. גוט. אַז קען באַווייַזן אַ ביסל פּראָבלעמאַטיק כאָטש, אויב דאס גיין אויף. ווייַל מיר וועלן פאָרזעצן צו וויסן די נומער פון דער רשימה איבער דעם פֿונקציע, אָבער זאָגן מיר אָנהייבן אַוועק מיט אַ מענגע פון ​​5 ינטאַדזשערז. און מיר גיין דורך און מיר 'ווע איצט נעראָוד עס אַראָפּ צו אַ מענגע פון ​​2 ינטאַדזשערז. וואָס 2 ינטאַדזשערז איז אַז? די גרייס איז 2 איצט אַז מיר ווילן צו קוק בייַ, אָבער וואָס 2 איז אַז? טוט וואָס מאַכן זינען, אַז קשיא? גוט. איך וועט פרעגן עס ווידער. אַזוי מיר אָנהייבן אַוועק מיט דעם מענגע פון ​​5 ינטאַדזשערז, און N יקוואַלז 5, רעכט? מיר וועט לויפן דורך דאָ. מיר וועט מיסטאָמע טוישן די גרייס, רעכט, ווי דאס גיין אויף. וואָס איז וואָס מיר זאָגן מיר ווילן צו טאָן. מיר טאָן ניט ווילן צו זוכן די פול זאַך ווידער. אַזוי זאָגן מיר טוישן עס צו 2. מיר נעמען העלפט דער רשימה אַז ס מאָדנע. אַזוי נאָר קלייַבן 2. אַזוי איצט N יקוואַלז 2. איך אַנטשולדיקן פֿאַר די נעבעך טרוקן מעקן מאַרקערס. רעכט? און מיר ניטאָ שאַרף דורך די רשימה ווידער מיט אַ רשימה פון גרייס 2. גוט, אונדזער מענגע איז נאָך פון גרייס 5. מיר זאָגן מיר בלויז ווילן צו זוכן 2 ספּאַץ אין עס. אַזוי וואָס 2 ספּאַץ זענען די? טוט וואָס מאַכן זינען? זענען זיי די לינק 2 ספּאַץ? זענען זיי די רעכט 2 ספּאַץ? זענען זיי די מיטל 2 ספּאַץ? מיר האָבן איבערגעבליבענע די פּראָבלעם אַראָפּ, אָבער מיר פאקטיש טאָן ניט וויסן וואָס טייל פון די פּראָבלעם מיר ניטאָ נאָך קוקן בייַ, נאָר דורך בעת די 2 וועריאַבאַלז. אַזוי מיר דאַרפֿן אַ קליין ביסל מער דעמאָלט, בשעת N איז גרעסער ווי 0. מיר דאַרפֿן צו וויסן ווו אַז N איז אין אונדזער פאַקטיש מענגע. אַזוי טוט אַבי ווער האָבן אַ טוישן צו דעם שורה? רובֿ פון דעם שורה איז בישליימעס ריכטיק. איז עס אן אנדער דערצו? קענען מיר ויסבייַטן עפּעס אויס פֿאַר N צו מאַכן דעם שורה אַ ביסל בעסער? מם-הם? תּלמיד: קענען איר ינישאַלייז אַ בייַטעוודיק ווי לענג צו N אַז וועט דעמאָלט זיין געניצט שפּעטער אין די פֿונקציע? דזשייסאַן הירסטשהאָרן: אזוי ינישאַלייז אַ בייַטעוודיק לענג צו ן, און מיר נוצן אַז שפּעטער? אבער דעמאָלט מיר נאָר דערהייַנטיקן לענג און מיר נאָך לויפן אין דעם פּראָבלעם ווו מיר שנייַדן אַראָפּ די לענג פון אונדזער פּראָבלעם, אָבער מיר קיינמאָל וויסן ווו, פאקטיש, אַז לענג מאַפּס אַנטו. תּלמיד: איז ניט אַז געגאנגען צו פּאַסירן שפּעטער ווען איר ניטאָ געזאגט, זוכן לינקס, זוכן רעכט? איר ניטאָ געגאנגען צו גיין צו אַ אַנדערש געגנט פון דיין - דזשייסאַן הירסטשהאָרן: מיר ניטאָ געגאנגען צו גיין צו אַ געגנט, אָבער ווי טאָן מיר וויסן וואָס זענען צו גיין צו? אויב מיר נאָר האָבן די מענגע און דעם ן, ווי טאָן מיר וויסן ווו צו גיין צו אין די מענגע. אין דעם צוריק, יאָ? תּלמיד: צי איר האָבן, ווי, אַ נידעריקער געבונדן און אַ אויבערשטער געבונדן בייַטעוודיק אָדער עפּעס ווי אַז? דזשייסאַן הירסטשהאָרן: גוט. אַזוי דעם איז אן אנדער געדאַנק. אלא ווי נאָר בעכעסקעם שפּור פון די גרייס, מיר האַלטן שפּור פון דער נידעריקער און אויבערשטער געבונדן בייַטעוודיק. אַזוי ווי טאָן מיר רעכענען די גרייס פון אַ נידעריקער געבונדן און אויבערשטן געבונדן? [ינטערפּאָסינג שטימען] דזשייסאַן הירסטשהאָרן: סובטראַקטיאָן. און אויך בעכעסקעם שפּור פון דער נידעריקער געבונדן און אויבערשטן געבונדן צו לאָזן אונדז וויסן, זענען מיר שאַרף די צוויי? זענען מיר שאַרף די צוויי איבער דאָ? זענען מיר שאַרף די מיטל צוויי? מיסטאָמע נישט די מיטל צוויי, ווייַל דעם, אין פאַקט, איז ביינערי זוכן. אבער איצט מיר וועט קענען צו באַקומען די גרייס, אָבער אויך די לימאַץ פון די מענגע. אין עסאַנס, אויב מיר האָבן אונדזער ריז טעלעפאָנירן בוך, מיר רייַסן עס אין העלפט. מיר איצט וויסן ווו אַז קלענערער טעלעפאָנירן בוך איז. אבער מיר ניטאָ ניט אַקטשאַוואַלי ריפּינג די טעלעפאָנירן בוך אין העלפט. מיר נאָך דאַרפֿן צו וויסן ווו די נייַ גווול פון אונדזער פּראָבלעם איז. טוט אַבי ווער האָבן קיין שאלות וועגן אַז? יא? תּלמיד: וואָלט עס אַרבעט דורך שאפן אַ בייַטעוודיק, איך, אַז איר דעמאָלט נאָר יבעררוק די פּאָזיציע פון ​​איך קאָרעוו צו זייַן קראַנט שטעלע, און די לענג, N? דזשייסאַן הירסטשהאָרן: און וואָס איז איך? תּלמיד: ווי איך זייַענדיק ווי סאָרט פון - ווי איר וואָלט ינישאַלייז איך צו זיין דער מיטל לאַגע פון ​​די מענגע. און דעריבער, אויב די ווערט אין שטעלע איך אין די מיטן פון די מענגע אין געפונען צו זיין ווייניקער ווי די ווערט איר דאַרפֿן, איך איצט ווערט די לענג פון די מענגע, פּלוס די ווערט פון איך צעטיילט דורך 2. ווי, זען, איר יבעררוק איך - דזשייסאַן הירסטשהאָרן: רעכט. תּלמיד: - אַרויף צו די - דזשייסאַן הירסטשהאָרן: אזוי איך בין כּמעט בעפיירעש וואָס וועט אַרבעט. אבער די פונט זייַענדיק, איר דאַרפֿן צוויי ברעקלעך פון אינפֿאָרמאַציע דאָ. איר קענען טאָן עס מיט אָנהייב און סוף, אָדער איר קענען טאָן עס מיט גרייס, און דעמאָלט עטלעכע מאַרקער. אבער איר טאָן דאַרפֿן צוויי ברעקלעך פון אינפֿאָרמאַציע דאָ. איר קענען ניט באַקומען דורך מיט נאָר איין. טוט אַז מאכט זינען? אַזוי מיר ניטאָ געגאנגען צו גיין דורך, און מיר ניטאָ געגאנגען צו טאָן [ינאָדאַבאַל] און מאַכן עטלעכע מאַרקערס. אַזוי ווהאַט'ד איר שרייַבן אין דיין קאָד? תּלמיד: איך נאָר געזאגט ינט געבונדן איינער איז גלייַך צו 0. דזשייסאַן הירסטשהאָרן: זאל ס רוף אַז ינט, אָנהייב. תּלמיד: גוט. דזשייסאַן הירסטשהאָרן: וואָס מאכט מער חוש פֿאַר מיר. און? תּלמיד: איך געזאגט, איך טרעפן, ינט סאָף. דזשייסאַן הירסטשהאָרן: ינט סאָף. תּלמיד: איך טרעפן, N מינוס 1, אָדער עפּעס ווי אַז. ווי, די לעצטע עלעמענט. דזשייסאַן הירסטשהאָרן: אַזוי איר געשריבן, ינט אָנהייב יקוואַלז 0, פּינטל - קאָמע, און ינט סאָף יקוואַלז N מינוס 1, פּינטל - קאָמע. אַזוי יסענשאַלי, וואָס מיר ניטאָ טאן דאָ, 0 דער ערשטער שטעלע. און ווי מיר וויסן אין ערייז, זיי טאָן ניט גיין אַרויף צו N, זיי גיין אַרויף צו N מינוס 1. אַזוי מיר האָבן עטלעכע גווול פון אונדזער מענגע. און די ערשט גווול פּאַסירן צו זיין די ערשט גווול פון אונדזער פּראָבלעם. גוט. אַזוי אַז סאָונדס גוט. דעריבער אויב מיר גיין צוריק צו דעם שורה, בשעת לענג פון רשימה איז גרעסער ווי 0, וואָס, אַנשטאָט פון N, זאָל מיר שטעלן אין דאָ? תּלמיד: שרייב סאָף מינוס אָנהייב. דזשייסאַן הירסטשהאָרן: בשעת סאָף מינוס אָנהייב איז גרעסער ווי 0? גוט. און מיר קען, אויב מיר געוואלט צו מאַכן אַז אַ ביסל ניסער, וואָס אַנדערש קען מיר טאָן? אויב מיר געוואלט צו ריין דעם קאָד אַרויף אַ ביסל? ווי קענען מיר באַקומען באַפרייַען פון די 0? דעם איז נאָר אַ נוסח קשיא. עס ס ריכטיק רעכט איצט. תּלמיד: ענדינג טוט ניט גלייַך אָנהייב? דזשייסאַן הירסטשהאָרן: מיר קענען טאָן וואָס? [ינטערפּאָסינג שטימען] תּלמיד: ענדינג איז גרעסער? דזשייסאַן הירסטשהאָרן: יאָ. מיר קענען נאָר טאָן בשעת סאָף איז גרעסער ווי אָנהייב. רעכט. מיר צוגעגעבן אָנהייב צו די אנדערע זייַט פון אַז, און מיר גאַט באַפרייַען פון די 0. אַזוי דעם פּונקט קוקט אַ קליין ביסל רייניקונג. גוט. אַזוי, בשעת לענג פון רשימה איז 0, מיר געשריבן אַז, בשעת סאָף איז גרעסער ווי אָנהייב. מיר ניטאָ געגאנגען צו שטעלן אין אונדזער נייטיק געגרייַזלט ברייסאַז, און דעמאָלט דער ערשטער זאַך מיר ווילן צו טאָן איז קוקן בייַ זיי אין אַ ביסל רשימה. איר? קענען איר געבן מיר די - תּלמיד: אויב פּערענטאַסיס ווערט קוואַדראַט קלאַמער - דזשייסאַן הירסטשהאָרן: אויב קלאַמערן ווערט קוואַדראַט קלאַמער. תּלמיד: ענדינג צעטיילט דורך 2. דזשייסאַן הירסטשהאָרן: ענדינג? תּלמיד: איך זען אַ פּראָבלעם מיט אייער - דזשייסאַן הירסטשהאָרן: גוט. גוט, קוק אין די מיטל. ווי טאָן מיר וויסן וואָס די מיטל איז? יאָ. אַזוי לאָזן מיר אויסמעקן אַז קאָד. ווי טאָן מיר וויסן וואָס די מיטל איז? אין עפּעס, ווען איר האָבן די אָנהייב און די סוף, ווי טאָן איר געפינען די מיטל? תּלמיד: איר דורכשניטלעך. תּלמיד: איר שטעלן זיי צוזאַמען און דעמאָלט - דזשייסאַן הירסטשהאָרן: לייגן זיי צוזאַמען און דעמאָלט? תּלמיד: און איר דורכשניטלעך. טיילן עס דורך 2. דזשייסאַן הירסטשהאָרן: לייגן זיי צוזאַמען און טיילן דורך 2. אַזוי ינט מיטל יקוואַלז? טאָם, איר קענען געבן עס צו מיר? תּלמיד: אנהייב פּלוס סאָף - דזשייסאַן הירסטשהאָרן: אנהייב פּלוס סאָף. תּלמיד: כל, קלאַמער, צעטיילט דורך 2. דזשייסאַן הירסטשהאָרן: כל, אין קלאַמערן, צעטיילט דורך 2. אַזוי אַז גיט מיר די מיטל פון עפּעס, ריכטיק? תּלמיד: איר אויך דאַרפֿן צו קייַלעכיק עס אַרויף. דזשייסאַן הירסטשהאָרן: וואָס טוט איר מיינען, איך דאַרפֿן צו קייַלעכיק עס אַרויף? [ינטערפּאָסינג שטימען] תּלמיד: ווייַל אויב עס ס אַ מאָדנע נומער, דעמאָלט עס ס ווי - דזשייסאַן הירסטשהאָרן: נו, גוט. אַזוי איך קען קייַלעכיק עס אַרויף. אבער אויב עס ס אַ מאָדנע נומער, אַ 5, איך קענען גענומען 1 אַוועק פון די מיטל. אָדער אויב עס ס אַן אפילו נומער, גאַנץ, אַז ס אַ בעסער פאַל. אויב עס ס 4, מיר נאָר האָבן 4, איך קענען נעמען דער ערשטער "מיטל", ציטירן, אַנקוואָוט אָדער די רגע "מיטל" איינער. אָדער וואָלט אַרבעט פֿאַר אַ ביינערי זוכן, אַזוי איך טאָן ניט פאקטיש דאַרפֿן צו קייַלעכיק עס. אבער עס איז איינער אנדערע זאַך איך דאַרפֿן צו קוקן אין דעם שורה. מיר זאלן ניט פאַרשטיין עס נאָך, אָבער מיר וועט קומען צוריק צו עס. ווייַל דעם שורה פאקטיש נאָך באדערפענישן איינער אנדערע זאַך. אבער אַזוי ווייַט, מיר 'ווע געשריבן פיר שורות פון קאָד. מיר 'ווע גאַט אונדזער אָנהייב און סאָף מאַרקערס. מיר האָבן אונדזער בשעת שלייף, וואָס מאַפּס אויף גלייַך צו אונדזער פּסעודאָקאָדע. מיר 'רע איר זוכט אין די מיטל אַז מאַפּס גלייַך אַנטו אונדזער פּסעודאָקאָדע. איך וואָלט זאָגן דעם גייט צו די מיטל פון דער רשימה, דעם שורה פון קאָד. און דעמאָלט, אַמאָל מיר גיין צו די מיטל פון די רשימה, דער ווייַטער זאַך מיר דאַרפֿן צו טאָן איז טשעק אויב אונדזער ווערט איז עס פֿאַר די פּסעודאָקאָדע מיר געשריבן פריער. אַזוי ווי טאָן מיר טשעק אויב אונדזער ווערט איז אין די מיטל פון דער רשימה? איר. פארוואס טאָן ניט איר טאָן דעם? תּלמיד: אויב אונדזער ווערט ס איז אין די מיטל איז גלייַך צו וועלכער מיר שטעלן די - איך מיינען גלייַך גלייַך צו - דזשייסאַן הירסטשהאָרן: עס - גוט. תּלמיד: איך בין נישט זיכער וואָס די בייַטעוודיק מיר 'רע איר זוכט פֿאַר כאָטש, איז ווייַל - [ינטערפּאָסינג שטימען] תּלמיד: [ינאָדאַבאַל]. דזשייסאַן הירסטשהאָרן: פּונקט. פּער די פֿונקציע דעקלאַראַציע, מיר 'רע איר זוכט פֿאַר אַ ווערט. אַזוי מיר ניטאָ שאַרף פֿאַר אַ ווערט אין אַ מענגע פון ​​וואַלועס. אַזוי איר ניטאָ פּונקט רעכט. איר וועט טאָן, אויב עפענען פּאַרען ווערט קלאַמער מיטל פארמאכט קלאַמער יקוואַלז יקוואַלז ווערט, און ין עס וואָס טאָן מיר דאַרפֿן צו טאָן? אויב אונדזער ווערט ס עס, וואָס טאָן מיר דאַרפֿן צו טאָן? [ינטערפּאָסינג שטימען] תּלמיד: צוריק נול. דזשייסאַן הירסטשהאָרן: צוריק אמת. תּלמיד: צוריק אמת. דזשייסאַן הירסטשהאָרן: מיכאל, וואָס טוט דעם שורה טאָן? תּלמיד: [ינאָדאַבאַל] די פּראָגראַם האט לויפן זייַן קורס, און אַז איז איבער, און איר 'ווע וואָס איר דאַרפֿן צו טאָן? דזשייסאַן הירסטשהאָרן: די פּראָגראַם אָדער וואָס? אין דעם פאַל? תּלמיד: די פֿונקציע. דזשייסאַן הירסטשהאָרן: די פֿונקציע. און אַזוי, צו צוריקקומען צו וועלכער גערופן עס און געבן עס די ווערט, אמת. פּונקט רעכט. הויפּט. וואָס ס דעם צוריקקער טיפּ פון הויפּט, מיכאל? תּלמיד: ינט, ינטאַדזשער? דזשייסאַן הירסטשהאָרן: ינט, פּונקט. אַ ינטאַדזשער. אַז איז נאָר אַ קשיא צו מאַכן זיכער איר גייז האָבן שוין אויף שפּיץ פון עס. וואָס טוט עס יוזשאַוואַלי צוריקקומען, אויב אַלע זאכן זענען ארבעטן געזונט? תּלמיד: נול. דזשייסאַן הירסטשהאָרן: נול. פּונקט רעכט. תּלמיד: אויב דעם נאָר קערט אמת, עס ס ניט אינפֿאָרמאַציע זייַענדיק געגעבן וועגן וואָס די - טאַקע, דעם איז נאָר געזאגט אַז אַז ווערט ס ין דער מענגע. דזשייסאַן הירסטשהאָרן: פּונקט. דעם פּראָגראַם איז ניט געבן אינפֿאָרמאַציע פון ווו פּונקט די ווערט איז. עס ס נאָר געזאגט, יא, מיר געפונען עס, אָדער ניט, מיר האבן ניט געפינען עס. אַזוי אויב נומער געפונען, קריק אמת. נו, פאקטיש מיר פּונקט האט אַז טאַקע געשווינד מיט אַז איין שורה פון קאָד. אַזוי איך וועט מאַך אַז שורה פון פּסעודאָקאָדע. תּלמיד: דו זאלסט ניט מיר דאַרפֿן צו טוישן די מענגע? עס זאָל זיין וואַלועס, ניט ווערט, רעכט? דזשייסאַן הירסטשהאָרן: נעבעכדיק. דאַנקען איר. תּלמיד: יאָ. דזשייסאַן הירסטשהאָרן: דעם שורה זאָל זיין וואַלועס. פּונקט רעכט. גוט. אַזוי מיר 'ווע געקוקט אין די מיטל רשימה. אויב נומער געפונען צוריקקומען אמת. קאַנטיניוינג אויף מיט אונדזער פּסעודאָקאָדע, אויב מיטל איז גרעסער, זוכן לינקס. אַזוי איך האט אין דאָ, אויב נומער העכער, זוכן לינקס. קאַנסטאַנטין, קענען איר געבן מיר דעם שורה פון קאָד? תּלמיד: אויב ווערט פון מיטל - דזשייסאַן הירסטשהאָרן: אזוי אויב ווערט - אויב עפענען פּאַרען וואַלועס קלאַמער מיטל נאָענט קלאַמער - תּלמיד: איז קלענערער ווי ווערט? דזשייסאַן הירסטשהאָרן: איז ווייניקער ווי. תּלמיד: ווייניקער ווי ווערט. דזשייסאַן הירסטשהאָרן: ווערט. נו, פאקטיש, איר ווילן צו טשעק אויב די נומער - נעבעכדיק. דעם איז אַ קליין קאַנפיוזינג. אָבער אַנדערש אויב די נומער אין די מיטל פון רשימה איז גרעסער. תּלמיד: אָה, גוט. דזשייסאַן הירסטשהאָרן: איך וועט טוישן אַז. אַנדערש אויב מיטל איז העכער, מיר ווילן צו זוכן לינקס, גוט? און וואָס טאָן מיר טאָן ין דעם אויב צושטאַנד? תּלמיד: קענען איך מאַכן אַ קליין טוישן צו די צושטאַנד, טוישן עס צו אַנדערש אויב? דזשייסאַן הירסטשהאָרן: עלס אויב? גוט. אַזוי דעם קאָד וועט ויספירן וועגן דער זעלביקער. אבער די פייַן זאַך וועגן ניצן אויב, אַנדערש אויב, אַנדערש אויב אָדער אויב, אַנדערש אויב, אַנדערש מיטל אַז בלויז איינער פון די איז געגאנגען צו זיין אָפּגעשטעלט, ניט אַלע דרייַ פון זיי, פּאַטענטשאַלי. און אַז מאכט עס אַ קליין ביסל ניסער אויף די קאָמפּיוטער אַז ס פליסנדיק דיין פּראָגראַם. אַזוי [? קאַנסטאַנטין,?] מיר ניטאָ ין דעם שורה, אַנדערש אויב וואַלועס, קלאַמער מיטל נאָענט קלאַמער איז גרעסער ווי ווערט. וואס טאָן מיר דאַרפֿן צו טאָן? מיר דאַרפֿן צו זוכן די לינק. ווי טאָן מיר טאָן אַז? איך בין געגאנגען צו געבן איר אַ אָנהייב. מיר האָבן די צוויי זאכן גערופן אָנהייב און סאָף. אַזוי וואָס דארף צו פּאַסירן צו די אָנהייב? אויב איר ווילן צו זוכן די לינקס פון די רשימה, מיר באַקומען אונדזער קראַנט אָנהייב. וואס טאָן מיר דאַרפֿן צו טאָן עס? תּלמיד: מיר שטעלן די אָנהייב צו מיטל פּלוס 1. דזשייסאַן הירסטשהאָרן: אזוי אויב מיר ניטאָ שאַרף די לינק? תּלמיד: אנטשולדיגט, מיטל מינוס - אַזוי די סאָף וואָלט זיין מיטן מינוס 1 און אָנהייב - דזשייסאַן הירסטשהאָרן: און וואָס כאַפּאַנז צו די אָנהייב? תּלמיד: עס סטייז דער זעלביקער. דזשייסאַן הירסטשהאָרן: אַזוי דער טייַטש סטייז דער זעלביקער. אויב מיר ניטאָ שאַרף די לינק, מיר ניטאָ ניצן די זעלבע אָנהייב - פּונקט רעכט. און די סאָף? נעבעכדיק, וואָס טוט דער סאָף גלייַך ווידער? תּלמיד: מיטל מינוס 1. דזשייסאַן הירסטשהאָרן: מיטל מינוס 1. איצט, וואָס מינוס 1, ניט נאָר מיטן? תּלמיד: די מיטל איז אויס פון די בילד שוין, ווייַל מיר האט אָפּגעשטעלט אַז עס ס אויס? דזשייסאַן הירסטשהאָרן: אַז ס פּונקט רעכט. די מיטל איז אויס פון דעם בילד. מיר שוין אָפּגעשטעלט די מיטל. אַזוי מיר טאָן ניט וועלן "די מיטל," ציטירן ונקוואָטע, צו פאָרזעצן צו זיין אין די מענגע אַז מיר 'רע איר זוכט. אַזוי דעם איז פאַנטאַסטיש. אַנדערש אויב וואַלועס קלאַמער מיטל איז גרעסער ווי ווערט סאָף יקוואַלז מיטל מינוס 1. דזשעף, וואָס וועגן דעם לעצטע שורה? תּלמיד: אַנדערש. וואַלועס מיטל איז ווייניקער ווי ווערט? דזשייסאַן הירסטשהאָרן: מיר וועט איר ניטאָ געבן מיר אַנדערש. אַזוי אויב איר טאָן ניט געבן מיר - תּלמיד: אזוי דעמאָלט אָנהייב וואָלט זיין מיטל פּלוס 1. דזשייסאַן הירסטשהאָרן: אנהייב יקוואַלז מיטל פּלוס 1, ווידער, פֿאַר דער זעלביקער סיבה אַז קאַנסטאַנטין האט אונדז פריער. און אין די סוף, וואס האט ניט געגעבן מיר אַ שורה פון קאָד נאָך? צוריקקומען פאַלש, אַלעהאַ, וואָס טאָן מיר שרייַבן דאָ? תּלמיד: צוריק פאַלש. דזשייסאַן הירסטשהאָרן: צוריק פאַלש. און מיר דאַרפֿן צו טאָן אַז, ווייַל אויב מיר טאָן ניט געפינען עס, מיר דאַרפֿן צו זאָגן מיר האט ניט געפינען עס. און מיר האט מיר ניטאָ געגאנגען צו קריק אַ באָאָל, אַזוי מיר באשטימט האָבן צו צוריקקומען אַ באָאָל ערגעץ. אַזוי לאָזן ס לויפן דעם קאָד. איך בין אַקטשאַוואַלי געגאנגען צו - אַזוי מיר ניטאָ אין דער וואָקזאַל. מיר וועט קלאָר אונדזער פֿענצטער. זאל ס מאַכן אַלע. מיר געפונען עס ס איינער טעות. עס ס אַ טעות אויף שורה 15, דערוואַרט פּינטל - קאָמע אין די סוף פון די דעקלאַראַציע. אַזוי וואָס האט איך פאַרגעסן? תּלמיד: פּינטל - קאָמע. דזשייסאַן הירסטשהאָרן: פּינטל - קאָמע רעכט אַרויף דאָ. איך טראַכטן אַז איז געווען טאָם ס קאָד. אַזוי טאָם, [ינאָדאַבאַל]. נאָר קידינג. זאל ס טאָן מאַכן אַלע ווידער. תּלמיד: וואָס דראָפּבאָקס Directory זאָל מיר זיין אין פֿאַר דעם? דזשייסאַן הירסטשהאָרן: אַזוי איר קענען נאָר היטן פֿאַר דעם ביסל. אבער ווידער, אויב איר געוואלט צו רירן דעם קאָד אין אייער פּסעט3 Directory צו פּרובירן עס אויס, אַז ס וואָס איך האבן. אויב איר וועט באַמערקן דאָ - נעבעכדיק, גוט קשיא. [? לס,?] איך האָבן אין דאָ די פינד.ק קאָוד פון דעם וואָך ס דיסטראָ קאָד. איך האָבן העלפּערס.ה. איך האָבן אַ מאַכט טעקע אַז איך פאקטיש עדיטיד אַ ביסל צו אַרייַננעמען די נייַ טעקעס מיר ניטאָ שרייבן. אַלע פון ​​אַז קאָד וועט זיין פאַראַנען, ניט די פאַרשפּרייטונג קאָד, אָבער די נייַ מאַכן טעקע, דער נייַ העלפּערס.ה טעקע וועט זיין בנימצא אָנליין פֿאַר אָפּלאָדירן. ווידער, אַזוי די זענען די עקסטרע קאָודז מיר האָבן. אַזוי מאַכן אַלע, פּער דעם שורה, מאכט געפינען, ביינערי, בלאָז סעלעקציע - מאכט אַלע דרייַ פון זיי און קאַמפּיילז אין דעם עקסעקוטאַבלע קאָוד געפינען. אַזוי בכלל, מיר טאָן ניט ווילן צו גלייַך צו טשעקק50. מיר ווילן צו לויפן עטלעכע טעסץ אויף אונדזער אייגן. אָבער פּונקט אַזוי מיר קענען עקספּידייט דעם אַ ביסל, טשעקק50 2013 פּסעט3.פינד וועט פאָרן אין העלפּערס.ק-- מיין שלעכט. איך טאָן ניט האָבן אַז רעכט איצט. אַזוי מיר ניטאָ פאקטיש געגאנגען צו לויפן די קאָד פֿאַר פאַקטיש. וסאַגע.פינד /, איר וויסן וואָס אַז מיטל? תּלמיד: איר דאַרפֿן אַ רגע באַפֿעל שורה אויף עס. דזשייסאַן הירסטשהאָרן: איך דאַרפֿן אַ צווייט באַפֿעל שורה. און פּער די באַשרייַבונג, איך דאַרפֿן צו קומען וואָס מיר 'רע איר זוכט פֿאַר. אַזוי לאָזן ס קוקן פֿאַר 42. מיר וועט האַלטן עס אין אויסגעשטעלט, ווייַל מיר האָבן ניט געשריבן אַ סאָרט פונקציאָנירן נאָך - 42, 43, 44. און קאָנטראָל די האט ניט געפינען די נאָדל אין די כייסטאַק. אַז ס שלעכט. עס ס באשטימט עס. זאל ס פּרובירן עפּעס אַנדערש. אפֿשר עס ס ווייַל איך שטעלן עס אין די אָנהייב. זאל ס טאָן 41, 42, 43. עס מיר גיין. עס געפונען עס. זאל ס לייגן עס אין די סוף איצט, נאָר אַזוי מיר קענען זיין גרונטיק - 40, 41, 42. האט ניט געפינען די נאָדל. אַזוי איך דערמאנט דעם פריער. צום באַדויערן, איך געוואוסט דעם איז געגאנגען צו פּאַסירן. אבער פֿאַר פּעדאַגאָגיקאַל צוועקן, עס ס גוט צו ויספאָרשן עס. עס טוט ניט אַרבעט. פֿאַר עטלעכע סיבה, עס קענען ניט געפינען עס. מיר וויסן וואָס ס אין עס, אָבער מיר זענען ניט געפונען עס. אַזוי איין זאַך מיר געקענט טאָן איז גיין דורך גדב צו געפינען עס, אָבער טוט אַבי ווער, אָן געגאנגען דורך גדב, האָבן אַ געפיל פון ווו מיר סקרוד אַרויף? [? מאַדו? ?] תּלמיד: איך טראַכטן עס זאל זיין ווען סאָף איז גלייַך צו אָנהייב, און עס ס נאָר אַ איין-עלעמענט רשימה. דעמאָלט עס נאָר יגנאָרז עס אָנשטאָט פון פאקטיש טשעק עס. דזשייסאַן הירסטשהאָרן: אַז ס פּונקט רעכט. ווען סאָף יקוואַלז אָנהייב, טאָן מיר נאָך האָבן אַן עלעמענט אין אונדזער רשימה? תּלמיד: יא. דזשייסאַן הירסטשהאָרן: יא, אין פאַקט, מיר האָבן איין און בלויז איינער עלעמענט. און אַז וועט רובֿ מסתּמא פּאַסירן ווען, פּער די קאָד מיר טעסטעד, מיר זענען אין די פראָנט פון די כייסטאַק אָדער בייַ די סוף פון די כייסטאַק. אַז ס ווו אָנהייב און סאָף איז געגאנגען צו גלייַך איינער, מיט ביינערי זוכן. אַזוי אין די צוויי פאלן עס האט ניט אַרבעט, ווייַל סאָף איז גלייַך צו אָנהייב. אבער אויב סאָף איז גלייַך צו אָנהייב, טוט דעם בשעת שלייף ויספירן? עס טוט ניט. און מיר קען האָבן אָפּגעשטעלט אַז ווידער דורך גדב. אַזוי ווי קענען מיר פאַרריכטן דעם קאָד, ווייַל ווען בשעת סאָף איז גלייַך צו אָנהייב, מיר אויך ווילן דעם בשעת שלייף צו לויפן. אַזוי וואָס פאַרריכטן קענען מיר מאַכן צו שורה 18? תּלמיד: [ינאָדאַבאַל] איז גרעסער ווי אָדער גלייַך צו. דזשייסאַן הירסטשהאָרן: עקסאַקטלי רעכט. בשעת סאָף איז גרעסער ווי אָדער גלייַך צו אָנהייב. אַזוי איצט, מיר מאַכן זיכער צו באַקומען אַז ווינקל פאַל בייַ די סוף. און לאָזן ס זען. זאל ס לויפן דעם איינער מער צייַט. זאל ס מאַכן אַלע. ווידער, איר וועט האָבן צו נאָר נאָכפאָלגן צוזאמען דאָ. געפינען 41 דעם צייַט. נאָר האַלטן עס קאָנסיסטענט. געפינען 42. זאל ס לייגן עס אין די אָנהייב - 42, 43, 44. מיר געפונען עס. אַזוי אַז איז געווען טאַקע דער ענדערונג מיר דארף צו מאַכן. וואס איז געווען אַ פּלאַץ פון קאָודינג מיר נאָר האט, ביינערי זוכן. טוט אַבי ווער האָבן קיין שאלות איידער איך מאַך אויף אין שורות מיר געשריבן אין ביינערי זוכן אָדער ווי מיר פיגיערד אויס וואָס מיר האבן רעכענען אויס? איידער מיר מאַך אויף, איך אויך ווילן צו פונט אויס אַז דורך און גרויס, מיר מאַפּט אונדזער פּסעוודאָ - קאָד איינער צו איינער אַנטו אונדזער קאָד. מיר האבן האָבן אַז טריקי זאַך צו רעכענען אויס מיט די אָנהייב און סאָף. אבער האט איר ניט פיגיערד אַז אויס, איר וואָלט האָבן געשריבן שיין פיל די יידעניקאַל קאָד, שפּאָרן פֿאַר די שפּיץ צוויי שורות. און דעמאָלט איר וואָלט האָבן איינגעזען ווען איר געמאכט עס אין טשעקס און קאַסעס אַז איר דאַרפֿן עפּעס אַנדערש. אַזוי אפילו אויב איר האט נאכגעגאנגען אונדזער פּסעוודאָ - קאָד שורה צו שורה, איר וואָלט 'ווע גאַטאַן אַלע אָבער צוויי שורות פון קאָד איר דארף צו שרייַבן. און איך 'ד זיין גרייט צו געוועט אַז איר גייז וואָלט האָבן אַלע פיגיערד אַז אויס שיין געשווינד, אַז איר דארף צו שטעלן עטלעכע סאָרט פון מאַרקער אין עס צו רעכענען אויס ווו איר זענען. אַז ווידער, איז די מאַכט פון טאן פּסעוודאָ - קאָד פאָרויס פון צייַט. אַזוי מיר קענען טאָן די לאָגיק ערשטער, און דעמאָלט מיר קענען זאָרג וועגן דעם סינטאַקס. האט מיר שוין צעמישט וועגן די לאָגיק בשעת טריינג צו שרייַבן דעם קאָד אין C, מיר וואָלט האָבן גאַטאַן אַלע מעסט אַרויף. און דעמאָלט מיר 'ד זיין אַסקינג פראגעס וועגן לאָגיק און סינטאַקס און מעשינג זיי אַלע צוזאַמען. און מיר וואָלט האָבן גאַטאַן פאַרפאַלן אין וואָס קענען געשווינד ווערן אַ זייער שווער פּראָבלעם. אַזוי לאָזן ס מאַך אויף איצט צו סעלעקציע סאָרט. מיר האָבן 20 מינוט לינקס. אַזוי איך האָבן אַ געפיל מיר וועט ניט קענען צו באַקומען דורך אַלע פון ​​סעלעקציע סאָרט און בלאָז סאָרט. אבער לאָזן אונדז בייַ מינדסטער פּרווון צו ענדיקן סעלעקציע סאָרט. אַזוי מאַכשער סעלעקציע סאָרט ניצן די ווייַטערדיק פונקציאָנירן דעקלאַראַציע. ווידער, דעם איז גענומען פון די פּראָבלעם שטעלן באַשרייַבונג. ינט וואַלועס איז בראַקאַץ, איז אַ מענגע פון ​​ינטאַדזשערז. און ינט.ן איז די נומער פון אַז מענגע. סעלעקציע סאָרט איז געגאנגען צו סאָרט דעם מענגע. אַזוי פּער אונדזער גייַסטיק מאָדעל פון סעלעקציע סאָרט, מיר ציען די - ערשטער, מיר גיין דורך דער רשימה דער ערשטער צייַט, געפינען די קלענסטער נומער, לייגן עס אין די אָנהייב, געפינען די רגע קלענסטער נומער, לייגן עס אין די רגע שטעלע אויב מיר ווילן צו סאָרט אין אַסענדינג סדר. איך בין ניט פאָרסינג איר צו שרייַבן פּסעוודאָ - קאָד רעכט איצט. אבער איידער מיר טאָן די קאָד ווי אַ סאָרט אין פינף מינוט, מיר זענען געגאנגען צו שרייַבן פּסעוודאָ - קאָד אַזוי מיר האָבן עטלעכע געפיל פון ווו מיר ניטאָ געגאנגען. אַזוי פּרווון צו שרייַבן פּסעוודאָ - קאָד אויף דיין אייגן. און דעמאָלט פּרווון צו ווענדן אַז פּסעוודאָ - קאָד אין קאָד. מיר וועלן טאָן אַז ווי אַ גרופּע אין פינף מינוט. און פון קורס, לאָזן מיר וויסן אויב איר האָבן קיין שאלות. תּלמיד: אַז עס? דזשייסאַן הירסטשהאָרן: זען ווי ווייַט איר קענען באַקומען אין צוויי מער מינוט. איך פֿאַרשטיין איר וועט ניט קענען צו ענדיקן. אבער מיר וועט גיין איבער דעם ווי אַ גרופּע. איר ניטאָ אַלע קאָודינג אַזוי [ינאָדאַבאַל], אַזוי איך בין נעבעכדיק צו פּויזע וואָס איר ניטאָ טאן. אבער לאָזן ס גיין דורך דעם ווי אַ גרופּע. און ווידער, ביינערי זוכן, איר אַלע געבן מיר איינער אויב ניט מער שורות פון קאָד. דאנק איר פֿאַר אַז. מיר ניטאָ געגאנגען צו טאָן די זעלבע זאַך דאָ, קאָוד צוזאַמען ווי אַ גרופּע. אַזוי סעלעקציע סאָרט - לאָזן ס שרייַבן עטלעכע שנעל פּסעוודאָ - קאָד. פּער גייַסטיק מאָדעל, קענען עמעצער געבן מיר דער ערשטער שורה פון פּסעוודאָ - קאָד, ביטע? וואָס טוט איך ווילן צו טאָן? תּלמיד: בשעת דער רשימה איז אויס פון סדר. דזשייסאַן הירסטשהאָרן: גוט, בשעת די רשימה איז אויס פון סדר. און וואָס טוט איר מיינען "אויס פון סדר?" תּלמיד: בשעת [ינאָדאַבאַל] האט ניט געווען אויסגעשטעלט. דזשייסאַן הירסטשהאָרן: בשעת דער רשימה איז אויס פון סדר, וואָס טוט מיר טאָן? געבן מיר די רגע שורה, ביטע, מארקוס. תּלמיד: אזוי געפינען די ווייַטער קלענסטער נומער. דעם וועט זיין ינדענטעד. דזשייסאַן הירסטשהאָרן: אזוי געפינען די ווייַטער קלענסטער נומער. און דעמאָלט עמעצער אַנדערש? אַמאָל מיר געפינען די ווייַטער קלענסטער נומער, וואָס טוט מיר טאָן? איך בין געגאנגען צו זאָגן געפינען דער קלענסטער נומער. אַז ס וואָס מיר ווילן צו טאָן. אַזוי געפינען די קלענסטער נומער. דעמאָלט וואָס טאָן מיר טאָן? תּלמיד: [ינאָדאַבאַל] צו אָנהייב. דזשייסאַן הירסטשהאָרן: אנטשולדיגט? תּלמיד: אָרט עס אין די אָנהייב פון די רשימה. דזשייסאַן הירסטשהאָרן: אזוי אָרט עס אין די אָנהייב פון די רשימה. און וואָס טאָן מיר טאָן צו די זאַך אַז איז געווען אין די אָנהייב פון דער רשימה, רעכט? מיר ניטאָ אָווועררייטינג עפּעס. אַזוי ווו טאָן מיר לייגן אַז? יאָ, אננא? תּלמיד: וואו דער קלענסטער נומער איז? דזשייסאַן כערשכאָרן: אזוי שטעלן די אָנהייב פון דער רשימה ווו די קלענסטער נומער איז געווען. אַזוי בשעת די רשימה איז אויס פון סדר, געפינען דער קלענסטער נומער, אָרט עס אין די אָנהייב פון די רשימה, שטעלן די אָנהייב פון דער רשימה ווו די קלענסטער נומער איז געווען. מארקוס, קענען איר ריפרייז דעם שורה בשעת די רשימה איז אויס פון סדר? תּלמיד: בשעת די נומערן האָבן ניט געווען אויסגעשטעלט? דזשייסאַן כערשכאָרן: גוט, אַזוי אין סדר צו וויסן אַז די נומערן האָבן ניט געווען אויסגעשטעלט, וואָס טאָן מיר דאַרפֿן צו טאָן? ווי פיל טאָן מיר דאַרפֿן צו גיין דורך דעם רשימה? תּלמיד: אזוי איך טרעפן אַ פֿאַר שלייף, אָדער בשעת, בשעת נומערן אָפּגעשטעלט איז ווייניקער ווי די לענג פון די רשימה? דזשייסאַן כערשכאָרן: גוט, אַז ס גוט. איך טראַכטן איך מיספראַסעד מיין קשיא שוואַך. איך איז געווען פּונקט טריינג צו באַקומען אין מיר ניטאָ געגאנגען צו האָבן צו גיין דורך די גאנצע רשימה. אַזוי בשעת די רשימה איז אויס פון סדר, פֿאַר מיר, איז שווער צו מאַפּע אויף. אבער בייסיקלי, אַז ס ווי איך טראַכטן וועגן דעם. גיין דורך די גאנצע רשימה, געפינען די קלענסטער נומער, אָרט עס אין די אָנהייב - פאקטיש, איר ניטאָ רעכט. זאל ס שטעלן זיי ביידע. אַזוי בשעת די רשימה איז אויס פון סדר, מיר דאַרפֿן צו גיין דורך די גאנצע רשימה אַמאָל, געפינען די קלענסטער נומער, אָרט עס אין די אָנהייב פון די רשימה, שטעלן די אָנהייב פון די רשימה ווו די קלענסטער נומער איז, און דעמאָלט אויב די רשימה איז נאָך אויס פון סדר, מיר 'ווע גאַט צו גיין דורך דעם פּראָצעס ווידער, רעכט? אַז ס וואָס סעלעקציע סאָרט, גרויס, אָ רונטימע פון סעלעקציע סאָרט, ווער עס יז? תּלמיד: N סקווערד. דזשייסאַן כערשכאָרן: N סקווערד. ווייַל ווי מארקוס און איך נאָר איינגעזען דאָ, מיר ניטאָ געגאנגען צו האָבן צו גיין דורך דער רשימה רשימה נומער פון מאל. אַזוי געגאנגען דורך עפּעס פון לענג N N נומער פון מאל איז אין פאַקט N סקווערד. אזוי דעם איז אונדזער פּסעודאָקאָדע. דעם קוקט זייער גוט. טוט אַבי ווער האָבן קיין שאלות וועגן די פּסעודאָקאָדע? ווייַל פאקטיש סעלעקציע סאָרט זאָל מיסטאָמע קומען 12:59, קאָד פון פּסעודאָקאָדע. אַזוי קיין פראגעס וועגן די לאָגיק פון די פּסעודאָקאָדע? ביטע פרעגן עס איצט. סעלעקציע סאָרט - בשעת די רשימה איז אויס פון סדר, מיר ניטאָ געגאנגען צו גיין דורך עס און געפינען די קלענסטער יעדער צייַט און לייגן עס אין די פראָנט. אַזוי בשעת די רשימה איז אויס פון סדר, קענען עמעצער געבן מיר אַז שורה פון קאָד וואס האט ניט געגעבן מיר אַ שורה פון קאָד נאָך, ביטע? עס סאָונדס ווי אַ וואָס? תּלמיד: אַז ס אַ פֿאַר שלייף. דזשייסאַן כערשכאָרן: עס סאָונדס ווי אַ פֿאַר שלייף. גוט, קענען איר געבן מיר די פֿאַר שלייף? פֿאַר - תּלמיד: איך יקוואַלז 0. דזשייסאַן כערשכאָרן: איך אָדער - וואָס זענען מיר פעלנדיק? וואָס גייט רעכט דאָ? תּלמיד: ינט. דזשייסאַן כערשכאָרן: פּונקט. (ינט איך = 0; - תּלמיד: איך