[Powered by Google Translate] [סעקשאַן 5 - מער באַקוועם]
[ראָב באָוודען - האַרוואַרד אוניווערסיטעט]
[דאס איז קס50. - CS50.TV]
>> ווי איך געזאגט אין מיין בליצפּאָסט, עס זענען אַ פּלאַץ פון זאכן איר קענען נוצן
אנדערע ווי די אַפּפּליאַנסע צו פאקטיש טאָן די פּראָבלעם שטעלט.
מיר רעקאָמענדירן איר טאָן עס אין די אַפּפּליאַנסע נאָר ווייַל דעמאָלט מיר קענען מער לייכט העלפן איר
און מיר וויסן ווי אַלץ איז געגאנגען צו אַרבעטן.
אבער ווי איין בייַשפּיל פון ווו איר קענען טאָן זאכן אויב, זאָגן, איר טאָן נישט האָבן צוטריט
צו אַ אַפּפּליאַנסע אָדער איר ווילן צו אַרבעטן אין די וויסנשאַפֿט צענטראַל קעלער -
וואָס פאקטיש זיי האָבן די אַפּפּליאַנסע אויך -
אויב איר ווילן צו אַרבעטן ערגעץ.
איין בייַשפּיל איז האָט איר געזען / געהערט פון סש?
סש איז בייסיקלי נאָר ווי פאַרבינדן צו עפּעס.
פאקטיש, רעכט איצט איך בין סשעד אין די אַפּפּליאַנסע.
איך קיינמאָל אַרבעט גלייַך אין די אַפּפּליאַנסע.
דאָ איז די אַפּפּליאַנסע, און אויב איר קוק אַראָפּ דאָ איר זען דעם IP אַדרעס.
איך קיינמאָל אַרבעט אין די אַפּפּליאַנסע זיך;
איך שטענדיק קומען איבער צו אַ יטערמ2 פֿענצטער / וואָקזאַל פֿענצטער.
איר קענען סש צו אַז IP אַדרעס, סש jharvard@192.168.129.128.
איך געדענקען אַז נומער זייער לייכט ווייַל עס ס אַזאַ אַ פייַן מוסטער.
אבער וואָס וועט פרעגן מיר פֿאַר מיין פּאַראָל, און איצט איך בין אין די אַפּפּליאַנסע.
בייסיקלי, בייַ דעם פונט, אויב איר געעפנט אַרויף אַ וואָקזאַל ין פון די אַפּפּליאַנסע זיך,
דעם צובינד, אָבער איר וואָלט נוצן עס, איז פּונקט דער זעלביקער
ווי די צובינד איך בין ניצן איבער דאָ אָבער איצט איר ניטאָ סשעד.
איר טאָן ניט האָבן צו סש צו די אַפּפּליאַנסע.
איין בייַשפּיל פון אן אנדער אָרט איר קען סש צו איז איך בין שיין זיכער איר האָט דורך פעליקייַט -
טאַקע. ביגער.
אַלע פון ​​איר זאָל האָבן דורך פעליקייַט פאַס אַקאַונץ אויף די פאַס סערווערס.
פֿאַר מיר, איך וואָלט סש צו rbowden@nice.fas.harvard.edu.
עס ס געגאנגען צו פרעגן איר וואָס דער ערשטער צייַט, און איר זאָגן יאָ.
מייַן Password איז נאָר געגאנגען צו זייַן מיין פאַס פּאַראָל.
און אַזוי איצט, איך בין סשעד צו דעם פייַן סערווערס, און איך קענען טאָן עפּעס איך ווילן אויף דאָ.
א פּלאַץ פון קלאסן איר זאל נעמען, ווי 124, זענען געגאנגען צו האָבן איר צופֿעליקער שטאָפּן צו דאָ
צו פאקטיש פאָרלייגן דיין פּראָבלעם שטעלט.
אבער זאָגן איר טאָן נישט האָבן צוטריט צו דיין אַפּפּליאַנסע.
דעמאָלט איר קענען טאָן זאכן, ווי אויף דאָ עס וועט זאָגן -
דאס איז נאָר אונדזער אָפּטיילונג פון שאלות.
עס וועט פרעגן איר צו טאָן דאָס אין די אַפּפּליאַנסע.
אַנשטאָט איך וועט נאָר טאָן עס אויף די סערווער.
איך בין געגאנגען צו אַנזיפּ אַז.
די פּראָבלעם איז געגאנגען צו זייַן אַז איר ניטאָ געניצט צו ניצן עפּעס ווי געדיט
אָדער וועלכער ין פון די אַפּפּליאַנסע.
איר ניטאָ ניט געגאנגען צו האָבן אַז אויף דעם פאַס סערווער.
עס ס אַלע נאָר געגאנגען צו זייַן דעם טעקסטשאַוואַל צובינד.
אַזוי איר קען יעדער איינער, פּרובירן צו לערנען אַ טעקסט רעדאַקטאָר אַז זיי טאָן האָבן.
זיי האָבן נאַנאָ.
נאַנאָ איז יוזשאַוואַלי שיין גרינג צו נוצן.
איר קענען נוצן דיין אַראָוז און טיפּ נאָרמאַלי.
אַזוי אַז ס 'נישט שווער.
אויב איר ווילן צו באַקומען טאַקע פאַנטאַזיע איר קענען נוצן עמאַקס,
וואָס איך מיסטאָמע זאָל נישט האָבן געעפנט ווייַל איך טאָן ניט אַפֿילו וויסן ווי צו נאָענט עמאַקס.
קאָנטראָל רענטגענ, קאָנטראָל C? יאָ.
אָדער איר קענען נוצן ווים, וואָס איז וואָס איך נוצן.
און אַזוי יענע זענען דיין אָפּציעס.
אויב איר טאָן נישט וועלן צו טאָן וואָס, איר קענען אויך, אויב איר קוק בייַ manual.cs50.net--
טאַקע.
אויף אַ פּיסי, איר קענען סש ניצן קיט,
וואָס איר ניטאָ געגאנגען צו האָבן צו אָפּלאָדירן סעפּעראַטלי.
אויף אַ מעק, איר קענען נאָר דורך פעליקייַט נוצן טערמינאַל אָדער איר קענען אראפקאפיע יטערמ2,
וואָס איז ווי אַ פייַן, פאַנטאַזיע טערמינאַל.
אויב איר גיין צו manual.cs50.net איר וועט זען אַ לינק צו נאָטעפּאַד + +,
וואָס איז וואָס איר קענען נוצן אויף אַ פּיסי.
עס לעץ איר ספטפּ פון נאָטעפּאַד + +, וואָס איז בייסיקלי סש.
וואָס דאָס וועט לאָזן איר טאָן איז רעדאַגירן דיין טעקעס לאָוקאַלי,
און דעריבער ווען איר ווילן צו ראַטעווען זיי, עס וועט ראַטעווען צו ניסע.פאַס,
ווו איר קענען דעריבער לויפן זיי.
און דער עקוויוואַלענט אויף אַ מעק איז געגאנגען צו זייַן טעקסטווראַנגלער.
אַזוי עס לעץ איר טאָן די זעלבע זאַך.
עס לעץ איר רעדאַגירן טעקעס לאָוקאַלי און היט זיי צו ניסע.פאַס,
ווו איר קענען דעריבער לויפן זיי.
אַזוי אויב איר ניטאָ אלץ סטאַק אָן אַ אַפּפּליאַנסע, איר האָבן די אָפּציעס
צו נאָך טאָן דיין פּראָבלעם שטעלט.
די איין פּראָבלעם איז געגאנגען צו זייַן אַז איר ניטאָ ניט געגאנגען צו האָבן די קס50 ביבליאָטעק
ווייַל ניסע.פאַס טוט נישט דורך פעליקייַט האָבן אַז.
איר קענען אָדער אראפקאפיע די קס50 ביבליאָטעק -
איך טאָן ניט טראַכטן איך דאַרפֿן אַז בייַ דעם פונט.
איר קענען אָדער אראפקאפיע די קס50 ביבליאָטעק און קאָפּי עס איבער צו ניסע.פאַס,
אָדער איך טראַכטן אין דעם פונט מיר טאָן ניט נוצן עס ענימאָר סייַ ווי סייַ.
אָדער אויב מיר טאָן, איר קענען פֿאַר די צייַט זייַענדיק פאַרבייַטן עס מיט
די ימפּלעמענטאַטיאָנס פון די פאַנגקשאַנז אין די קס50 ביבליאָטעק סייַ ווי סייַ.
אַזוי אַז זאָל נישט זייַן אַז פיל פון אַ ריסטריקשאַן.
און אַז ס וואָס.
>> איך וועט גיין צוריק צו דער אַפּפּליאַנסע איצט; מיר וועט טאָן אַלץ אין די אַפּפּליאַנסע.
קוקן בייַ אונדזער אָפּטיילונג פון פראגעס, אין די אָנהייב, ווי איך געזאגט אין מיין בליצפּאָסט,
מיר האָבן צו רעדן וועגן דעם איין קליין איר האבן געמיינט צו היטן.
מיר האָבן די רעדירעקטינג & פּייפּס און די דרייַ פראגעס.
>> צו וואָס טייַך טאָן פאַנגקשאַנז ווי פּרינטף שרייַבן דורך פעליקייַט?
אַזוי טייַך. וואָס איז אַ טייַך?
א טייַך איז בייסיקלי ווי עס ס נאָר עטלעכע -
עס ס נישט אַפֿילו אַ מקור פון 1ס און 0ס.
דער טייַך עס ס אַסקינג פֿאַר דאָ איז נאָרמאַל אויס.
און אַזוי נאָרמאַל אויס איז אַ טייַך אַז ווען איר שרייַבן צו אים,
עס אויס אויף די פאַרשטעלן.
נאָרמאַל אויס, דורך טייַך, עס מיטל איר נאָר שרייַבן 1ס און 0ס צו אים,
און די אנדערע סוף פון נאָרמאַל אויס נאָר לייענט פון וואָס טייַך.
עס ס נאָר אַ שטריקל פון 1ס און 0ס.
איר קענען שרייַבן צו סטרימז אָדער איר קענען לייענען פון סטרימז
דיפּענדינג אויף וואָס די טייַך פאקטיש איז.
די אנדערע צוויי פעליקייַט סטרימז ביסט נאָרמאַל אין און נאָרמאַל טעות.
נאָרמאַל אין איז ווען איר טאָן געצטרינג, עס ס ווארטן פֿאַר איר צו אַרייַנשרייַב שטאָפּן.
אַזוי עס ווארטן פֿאַר איר, עס ס פאקטיש ווארטן אויף נאָרמאַל אין,
וואָס איז טאַקע וואָס איר באַקומען ווען איר טיפּ אין די קלאַוויאַטור.
איר רע טייפּינג אין נאָרמאַל ין
נאָרמאַל טעות איז בייסיקלי עקוויוואַלענט צו נאָרמאַל אויס,
אָבער עס ס ספּעשאַלייזד אין אַז ווען איר דרוקן צו נאָרמאַל טעות,
איר ניטאָ געמיינט צו נאָר דרוקן טעות אַרטיקלען צו אַז
אַזוי איר קענען דיפערענטשיייט צווישן רעגולער אַרטיקלען געדרוקט צו די פאַרשטעלן
קעגן טעות אַרטיקלען דיפּענדינג אויף צי זיי געגאנגען צו נאָרמאַל אויס אָדער נאָרמאַל טעות.
טעקעס אויך.
נאָרמאַל אויס, נאָרמאַל אין, און נאָרמאַל טעות זענען נאָר ספּעציעל סטרימז,
אָבער טאַקע קיין טעקע, ווען איר עפענען אַ טעקע, עס ווערט אַ טייַך פון ביטעס
ווו איר קענען נאָר לייענען פון וואָס טייַך.
איר, פֿאַר די רובֿ טייל, קענען נאָר טראַכטן פון אַ טעקע ווי אַ טייַך פון ביטעס.
אַזוי וואָס סטרימז טאָן זיי שרייַבן צו דורך פעליקייַט? נאָרמאַל אויס.
>> וואָס ס די חילוק צווישן> און >>?
האט ווער עס יז היטן די ווידעא פארויס? אָוקיי.
> איז געגאנגען צו זייַן ווי איר רידערעקט אין טעקעס,
און >> איז אויך געגאנגען צו רידערעקט רעזולטאַט אין טעקעס,
אָבער עס ס אַנשטאָט געגאנגען צו צוגעבן צו דער טעקע.
פֿאַר בייַשפּיל, לאָזן ס זאָגן איך פּאַסירן צו האָבן דיקט רעכט דאָ,
און דער נאָר שטאָפּן ין פון דיקט איז קאַץ, קאַץ, הונט, פיש, הונט.
איינער באַפֿעל אַז איר האָבן אין די באַפֿעל שורה איז קאַץ,
וואָס איז נאָר געגאנגען צו דרוקן וואָס ס אין אַ טעקע.
אַזוי ווען איך זאָגן קאַץ דיקט, עס ס געגאנגען צו דרוקן קאַץ, קאַץ, הונט, פיש, הונט. אַז ס אַלע קאַץ טוט.
אַז מיטל אַז עס געדרוקט צו נאָרמאַל אויס קאַץ, קאַץ, הונט, פיש, הונט.
אויב איך אַנשטאָט ווילן צו רידערעקט אַז צו אַ טעקע, איך קענען נוצן> און רידערעקט עס צו וועלכער דער טעקע איז.
איך וועט רופן די טעקע טעקע.
אַזוי איצט אויב איך עלעס, איך וועט זען איך האָבן אַ נייַ טעקע גערופן טעקע.
און אויב איך עפענען עס אַרויף, עס ס געגאנגען צו האָבן פּונקט וואָס קאַץ שטעלן בייַ די באַפֿעל שורה.
אַזוי איצט אויב איך טאָן אַז ווידער, דעמאָלט עס ס געגאנגען צו רידערעקט דער רעזולטאַט אין טעקע,
און איך בין געגאנגען צו האָבן די זעלבע פּינטלעך זאַך.
אַזוי טעקניקלי, עס גאָר אָוווערראָוד וואָס מיר האבן.
און מיר וועט זען אויב איך טוישן דיקט, איך גענומען אויס הונט.
איצט אויב מיר קאַץ דיקט אין טעקע ווידער, מיר רע געגאנגען צו האָבן די נייע ווערסיע מיט הונט אַוועקגענומען.
אַזוי עס גאָר אָוווערריידז עס.
אַנשטאָט, אויב מיר נוצן >>, עס ס געגאנגען צו צוגעבן טעקע.
איצט, עפן טעקע, מיר זען מיר האָבן פּונקט די זעלבע זאַך געדרוקט צוויי מאָל
ווייַל עס איז דאָרט אַמאָל, דעריבער מיר אַפּפּענדעד צו דער אָריגינעל.
אַזוי אַז ס וואָס> און >> טאָן.
טוט דער ווייַטער איינער פרעגן - עס טוט נישט פרעגן וועגן אים.
>> די אנדערע איין אַז מיר האָבן איז <, וואָס אויב> רעדירעקץ נאָרמאַל אויס,
<איז געגאנגען צו זייַן רידערעקט נאָרמאַל ין
זאל ס זען אויב מיר האָבן אַ בייַשפּיל.
איך קענען שרייַבן איין פאַקטיש שנעל.
זאל ס נעמען קיין טעקע, העללאָ.ק.
לעפיערעך סטרייטפאָרווערד טעקע.
איך בין נאָר געטינג אַ שטריקל און דעמאָלט דרוקן "העלא" וועלכער די שטריקל איך נאָר אריין איז געווען.
אַזוי מאַכן העלא און דעמאָלט. / העלא.
איצט עס ס פּראַמפּטינג מיר צו אַרייַן עפּעס,
וואָס מיטל עס ס ווארטן אויף זאכן צו זייַן אריין אין נאָרמאַל ין
אַזוי אַרייַן וועלכער איך ווילן אין נאָרמאַל ין מיר רע נאָר געגאנגען צו זאָגן העלא, ראָב!
דעמאָלט עס ס דרוקן צו נאָרמאַל אויס העלא, ראָב!
אויב איך טאָן. / העלא און דעמאָלט רידערעקט,
פֿאַר איצט איר קענען בלויז רידערעקט פון אַ טעקע.
אַזוי אויב איך שטעלן אין עטלעכע טעקע, טקסט, און איך שטעלן ראָב,
אויב איך לויפן העלא און דעמאָלט רידערעקט דער טעקע טקסט אין. / העלא, עס ס געגאנגען צו זאָגן העלא, ראָב! מיד.
ווען עס ערשטער געץ צו געצטרינג און עס ס ווארטן אויף נאָרמאַל אין,
נאָרמאַל אין איז ניט מער ווארטן אויף די קלאַוויאַטור פֿאַר דאַטן צו באַקומען אריין.
אַנשטאָט, מיר האָבן רידערעקטיד נאָרמאַל אין צו לייענען פון דער טעקע טקסט.
און אַזוי עס ס געגאנגען צו לייענען פון דער טעקע טקסט, וואָס איז נאָר די שורה ראָב,
און דעמאָלט עס ס געגאנגען צו דרוקן העלא, ראָב!
און אויב איך געוואלט, איך קען אויך טאָן. / העלא <טקסט
און דעמאָלט דער נאָרמאַל אויס אַז עס ס דרוק, וואָס איז העלא, ראָב!,
איך קענען רידערעקט אַז אין זייַן אייגן טעקע.
איך וועט נאָר רופן די טעקע העלא - קיין, איך וועט ניט, ווייַל אַז ס די עקסעקוטאַבלע - טקסט2.
איצט, טקסט2 איז געגאנגען צו האָבן די רעזולטאַט פון. / העלא <טקסט, וואָס איז געגאנגען צו זייַן העלא, ראָב!
>> שאלות?
>> אָוקיי. אַזוי דעמאָלט דאָ מיר האָבן רערנ - ליניע.
פּייפּס זענען די לעצטע אַפּאַראַט פון רידערעקשאַן.
>> טאַקע. איך טרעפן איינער מער אַפּאַראַט פון רידערעקשאַן איז אויב אַנשטאָט פון> איר טאָן 2>,
אַז ס רידערעקטינג נאָרמאַל טעות.
אַזוי אויב עפּעס געגאנגען צו נאָרמאַל טעות, עס וואָלט נישט באַקומען שטעלן אין טקסט2.
אבער באַמערקן אויב איך טאָן 2>, דעמאָלט עס ס נאָך דרוקן העלא, ראָב! צו די באַפֿעל שורה
ווייַל איך בין בלויז רידערעקטינג נאָרמאַל טעות, איך בין נישט רידערעקטינג נאָרמאַל אויס.
נאָרמאַל טעות און נאָרמאַל אויס זענען פאַרשידענע.
אויב איר געוואלט צו פאקטיש שרייַבן צו נאָרמאַל טעות,
דעמאָלט איך קען טוישן דעם צו זייַן פפּרינטף צו סטדערר.
אַזוי פּרינטף, דורך פעליקייַט, פּרינץ צו נאָרמאַל אויס.
אויב איך ווילן צו דרוקן צו נאָרמאַל טעות מאַניואַלי, דעמאָלט איך האָבן צו נוצן פפּרינטף
און ספּעציפיצירן וואָס איך ווילן צו דרוקן צו.
אויב אַנשטאָט איך האט פפּרינטף סטדאָוט, דעמאָלט אַז ס בייסיקלי עקוויוואַלענט צו פּרינטף.
אבער פפּרינטף צו נאָרמאַל טעות.
אַזוי איצט, אויב איך רידערעקט דעם אין טקסט2, העלא, ראָב! איז נאָך געטינג געדרוקט אין די באַפֿעל שורה
זינט עס ס געטינג געדרוקט צו נאָרמאַל טעות און איך בין נאָר רידערעקטינג נאָרמאַל אויס.
אויב איך איצט רידערעקט נאָרמאַל טעות, איצט עס האט נישט באַקומען געדרוקט, און טקסט2 איז געגאנגען צו זייַן העלא, ראָב!
אַזוי איצט, איר קענען דרוקן דיין פאַקטיש ערראָרס צו נאָרמאַל טעות
און דרוק דיין רעגולער אַרטיקלען צו נאָרמאַל אויס.
און אַזוי ווען איר לויפן דיין פּראָגראַם, איר קענען לויפן עס ווי. / העלא דעם טיפּ מיט די 2>
אַזוי אַז אייער פּראָגראַם איז געגאנגען צו לויפן נאָרמאַלי,
אָבער קיין טעות אַרטיקלען וואָס איר באַקומען איר קענען קאָנטראָלירן שפּעטער אין דיין טעות קלאָץ,
אַזוי ערראָרס, און דעמאָלט קוק שפּעטער און דיין ערראָרס טעקע וועט האָבן קיין ערראָרס אַז געטראפן.
>> שאלות?
>> די לעצטע איינער איז רער, וואָס איר קענען טראַכטן פון ווי גענומען דעם נאָרמאַל אויס פון איין באַפֿעל
און מאכן עס דער נאָרמאַל אין פון דער ווייַטער באַפֿעל.
אַ בייַשפּיל דאָ איז ווידערקאָל איז אַ באַפֿעל שורה זאַך
וואָס איז נאָר געגאנגען צו ווידערקאָל וועלכער איך שטעלן ווי זייַן אַרגומענט. איך וועל ניט שטעלן קוואָטעס.
עקאָו בלאַ, בלאַ, בלאַ איז נאָר געגאנגען צו דרוקן בלאַ, בלאַ, בלאַ.
פריער, ווען איך געזאגט איך געהאט צו שטעלן ראָב אין אַ טקסט טעקע
ווייַל איך קענען בלויז רידערעקט טקסט טעקעס, אַנשטאָט, / אויב איך ווידערקאָל ראָב
און דעמאָלט רער עס אין. / העלא, וואָס וועט אויך טאָן די זעלבע טיפּ פון זאַך.
דאס איז גענומען דער רעזולטאַט פון דעם באַפֿעל, ווידערקאָל ראָב,
און ניצן עס ווי די אַרייַנשרייַב פֿאַר. / העלא.
איר קענען טראַכטן פון אים ווי ערשטער רידערעקט ווידערקאָל ראָב אין אַ טעקע
און דעמאָלט אַרייַנשרייַב אין. / העלא אַז טעקע וואָס איז געווען נאָר אָוטפּוטטעד.
אבער עס נעמט די צייַטווייַליק טעקע אויס פון די בילד.
>> שאלות אויף וואָס?
>> דער ווייַטער קשיא איז געגאנגען צו אַרייַנציען דעם.
וואָס רערנ - ליניע קען איר נוצן צו געפֿינען די נומער פון יינציק נעמען אין אַ טעקע גערופן נאַמעס.טקסט?
די קאַמאַנדז מיר רע געגאנגען צו ווילן צו נוצן דאָ זענען יינציק, אַזוי וניק, און דעמאָלט קלאָזעט.
איר קענען טאָן מענטש וניק צו פאקטיש קוק אין וואָס וואָס טוט,
און עס ס נאָר געגאנגען צו פילטער שכייניש ריכטן שורות פון די אַרייַנשרייַב.
און מענטש קלאָזעט איז געגאנגען צו דרוקן די נעוולינע, וואָרט, און ביטע קאַונץ פֿאַר יעדער טעקע.
און די לעצטע איינער מיר רע געגאנגען צו ווילן צו נוצן איז סאָרט,
וואָס איז געגאנגען צו נאָר סאָרט שורות פון טקסט טעקע.
אויב איך מאַכן עטלעכע טקסט טעקע, נאַמעס.טקסט, און עס ס ראָב, טאַמי, יוסף, טאַמי, יוסף, רדזש, ראָב,
וואָס איך ווילן צו טאָן דאָ איז געפֿינען די נומער פון יינציק נעמען אין דעם טעקע.
אַזוי וואָס זאָל דער ענטפֿערן זייַן? >> [תּלמיד] 4. >> יאָ.
עס זאָל זייַן 4 זינט ראָב, טאַמי, יוסף, רדזש זענען די בלויז יינציק נעמען אין דעם טעקע.
דער ערשטער שריט, אויב איך נאָר טאָן וואָרט ציילן אויף נאַמעס.טקסט,
דאָס איז פאקטיש טעלינג מיר אַלץ.
דאס איז פאקטיש דרוק - לאָזן ס זען, מענטש קלאָזעט - נעוולינעס, ווערטער, און ביטע ציילן.
אויב איך נאָר זאָרגן וועגן שורות, דעמאָלט איך קען נאָר טאָן קלאָזעט-ל נאַמעס.טקסט.
אַזוי אַז ס שריט 1.
אבער איך טאָן נישט וועלן צו קלאָזעט-ל נאַמעס.טקסט ווייַל נאַמעס.טקסט נאָר כּולל אַלע די נעמען,
און איך ווילן צו פילטער אויס קיין ניט-יינציק אָנעס.
אַזוי אויב איך טאָן וניק נאַמעס.טקסט, וואָס טוט ניט גאַנץ געבן מיר וואָס איך ווילן
ווייַל די דיופּלאַקייטיד נעמען זענען נאָך דאָרט.
פארוואס איז וואָס? פארוואס איז וניק ניט טאן וואָס איך וועלן?
[תּלמיד] די דופּליקאַטן זענען נישט [ינאָדאַבאַל] >> יאָ.
געדענקען די מענטש בלאַט פֿאַר וניק זאגט פילטער שכייניש ריכטן שורות.
זיי ניטאָ ניט שכייניש, אַזוי עס וועט נישט פילטער זיי.
אויב איך סאָרט זיי ערשטער, סאָרט נאַמעס.טקסט איז געגאנגען צו שטעלן אַלע די דופּליקאַט שורות צוזאַמען.
אַזוי איצט סאָרט נאַמעס.טקסט איז וואָס.
איך בין געגאנגען צו ווילן צו נוצן וואָס ווי די אַרייַנשרייַב צו וניק, וואָס איז | וניק.
וואָס גיט מיר יוסף, רדזש, ראָב, טאַמי,
און איך ווילן צו נוצן וואָס ווי די אַרייַנשרייַב צו קלאָזעט-ל,
וואָס איז געגאנגען צו געבן מיר 4.
ווי עס זאגט דאָ, וואָס רערנ - ליניע קען איר נוצן?
איר קענען טאָן אַ פּלאַץ פון זאכן ווי ניצן אַ סעריע פון ​​קאַמאַנדז
ווו איר נוצן די רעזולטאַט פון איין באַפֿעל ווי די אַרייַנשרייַב צו דער ווייַטער באַפֿעל.
איר קענען טאָן אַ פּלאַץ פון זאכן, אַ פּלאַץ פון קלוג זאכן.
>> שאלות?
אָוקיי.
אַז ס עס פֿאַר פּייפּס און רידערעקשאַן.
>> איצט מיר גיין אויף צו די פאַקטיש שטאָפּן, די קאָודינג שטאָפּן.
ין פון דעם פּדף, איר וועט זען דעם באַפֿעל,
און איר וועט ווילן צו לויפן דעם באַפֿעל אין דיין אַפּפּליאַנסע.
ווגעט איז די באַפֿעל פֿאַר נאָר געטינג עפּעס פון די אינטערנעט, בייסיקלי,
אַזוי ווגעט און דעם URL.
אויב איר געגאנגען צו דעם URL אין אייער בלעטערער, ​​עס וואָלט אראפקאפיע אַז טעקע.
איך נאָר קליקט אויף אים, אַזוי עס דאַונלאָודיד דער טעקע פֿאַר מיר.
אבער שרייבן ווגעט פון וואָס זאַך ין פון די וואָקזאַל
איז נאָר געגאנגען צו אָפּלאָדירן עס אין דיין וואָקזאַל.
איך האָבן סעקטיאָנ5.זיפּ, און איר וועט וועלן צו אַנזיפּ סעקטיאָנ5.זיפּ,
וואָס איז געגאנגען צו געבן איר אַ טעקע גערופן סעקטיאָנ5,
וואָס איז געגאנגען צו האָבן אַלע פון ​​די טעקעס מיר רע געגאנגען צו זייַן ניצן הייַנט ין פון עס.
ווי די מגילה 'טעקע נעמען פֿאָרשלאָגן, זיי ניטאָ אַ ביסל וואָגן,
אַזוי דיין מיסיע איז צו רעכענען אויס וואָס ניצן גדב.
טוט אַלעמען האָבן זיי דאַונלאָודיד / וויסן ווי צו באַקומען זיי דאַונלאָודיד
אין זייער אַפּפּליאַנסע? אָוקיי.
>> פליסנדיק ./בוגגי1, עס וועט זאָגן סעגמענטאַטיאָן שולד (האַרץ דאַמפּט),
וואָס קיין צייַט איר באַקומען אַ סעגפאַולט, עס ס אַ שלעכט זאַך.
אונטער וואָס צושטאנדן טאָן איר באַקומען אַ סעגפאַולט?
[תּלמיד] דערעפערענסינג אַ נאַל טייַטל. >> יאָ. אַזוי וואָס איז איין בייַשפּיל.
דערעפערענסינג אַ נאַל טייַטל איר ניטאָ געגאנגען צו באַקומען אַ סעגפאַולט.
וואָס אַ סעגפאַולט מיטל איז איר ניטאָ רירנדיק זכּרון איר זאָל נישט זייַן רירנדיק.
אַזוי דערעפערענסינג אַ נאַל טייַטל איז רירנדיק אַדרעס 0,
און בייסיקלי, אַלע קאָמפּיוטערס נאָוואַדייַס זאָגן אַז אַדרעס 0 איז זכּרון איר זאָל נישט זייַן רירנדיק.
אַזוי אַז ס וואָס דערעפערענסינג אַ נאַל טייַטל רעזולטאַטן אין אַ סעגפאַולט.
ווען איר פּאַסירן צו נישט ינישאַלייז אַ טייַטל, דעמאָלט עס האט אַ מיסט ווערט,
און אַזוי ווען איר פּרובירן צו דערעפערענסע עס, אין אַלע ליקעליהאָאָד איר ניטאָ רירנדיק זכּרון
אַז ס אין די מיטל פון ינ ערגעצ ניט.
אויב איר פּאַסירן צו באַקומען מאַזלדיק און די מיסט ווערט
געטראפן צו פונט צו ערגעץ אויף דעם אָנלייגן אָדער עפּעס,
דעריבער ווען איר דערעפערענסע אַז טייַטל וואָס איר האָט נישט ינישאַלייזד,
גאָרנישט וועט גיין פאַלש.
אבער אויב עס ס פּוינטינג צו, זאָגן, ערגעץ צווישן דעם אָנלייגן און די קופּע,
אָדער עס ס פּוינטינג נאָר צו ערגעץ אַז האט נישט שוין געניצט דורך דיין פּראָגראַם נאָך,
דעמאָלט איר ניטאָ רירנדיק זכּרון איר זאָל נישט זייַן רירנדיק און איר סעגפאַולט.
ווען איר שרייַבן אַ רעקורסיווע פונקציאָנירן און עס רעקורסעס אויך פילע מאל
און דיין אָנלייגן וואקסט אויך גרויס און דעם אָנלייגן קאַליידז אין זאכן
אַז עס זאָל נישט זייַן קאַליידינג מיט, איר ניטאָ רירנדיק זכּרון איר זאָל נישט זייַן רירנדיק,
אַזוי איר סעגפאַולט.
וואָס איז וואָס אַ סעגפאַולט איז.
>> עס ס אויך די זעלבע סיבה וואָס אויב איר האָבן אַ שטריקל ווי -
לאָזן ס גיין צוריק צו די פֿריִערדיקע פּראָגראַם.
אין העללאָ.ק--אַם נאָר געגאנגען צו מאַכן עפּעס אַנדערש.
טשאַר * s = "העלא וועלט!";
אויב איך נוצן * s = עפּעס אָדער ס [0] = 'רענטגענ';
אַזוי מאַכן העלא,. / העלא, וואָס האט אַז סעגפאַולט?
פארוואס האט דעם סעגפאַולט?
וואָס וואָלט איר דערוואַרטן צו פּאַסירן?
אויב איך האט פּרינטף ("% s \ n", s); וואָס וואָלט איר דערוואַרטן צו זייַן געדרוקט?
[תּלמיד] רענטגענ העלא. >> יאָ.
די פּראָבלעם איז אַז ווען איר דערקלערן אַ שטריקל ווי דעם,
ס איז אַ טייַטל אַז ס 'געגאנגען צו גיין אויף די אָנלייגן,
און וואָס ס איז פּוינטינג צו איז דאָס שטריקל וואָס איז קאַנטיינד אין לייענען-בלויז זכּרון.
אַזוי נאָר דורך דעם נאָמען, לייענען-בלויז זכּרון, איר זאָל באַקומען די געדאַנק
אַז אויב איר פּרובירן צו טוישן וואָס ס אין לייענען-בלויז זכּרון,
איר ניטאָ טאן עפּעס איר זאָל נישט זייַן טאן מיט זכּרון און איר סעגפאַולט.
דאס איז פאקטיש אַ גרויס חילוק צווישן טשאַר * ס און טשאַר ס [].
אַזוי טשאַר ס [], איצט דעם שטריקל איז געגאנגען צו זייַן שטעלן אויף די אָנלייגן,
און די אָנלייגן איז ניט לייענען-בלויז, וואָס מיטל אַז דאָס זאָל אַרבעטן בישליימעס פייַן.
און עס טוט.
געדענק אַז ווען איך טאָן טשאַר * s = "העלא וועלט!", ס זיך איז אויף דעם אָנלייגן
אָבער ס פונקטן צו ערגעץ אַנדערש, און אַז ערגעץ אַנדערש כאַפּאַנז צו זייַן לייענען-נאָר.
אבער טשאַר ס [] איז נאָר עפּעס אויף דעם אָנלייגן.
אַזוי אַז ס אן אנדער בייַשפּיל פון אַ סעגפאַולט געשעעניש.
>> מיר געזען אַז ./בוגגי1 ריזאַלטיד אין אַ סעגפאַולט.
אין טעאָריע, איר זאָל נישט קוקן אין בוגגי1.ק מיד.
אַנשטאָט, מיר וועט קוקן אין עס דורך גדב.
נאָטיץ אַז ווען איר באַקומען סעגמענטאַטיאָן שולד (האַרץ דאַמפּט),
איר באַקומען דעם טעקע איבער דאָ גערופן האַרץ.
אויב מיר לס-ל, מיר וועט זען אַז האַרץ איז יוזשאַוואַלי אַ שיין גרויס טעקע.
דאס איז די נומער פון ביטעס פון דער טעקע, אַזוי עס קוקט ווי עס ס 250-עפּעס קילאבייט.
די סיבה פֿאַר דעם איז אַז וואָס די האַרץ דאַמפּ פאקטיש איז
איז ווען אייער פּראָגראַם קראַשיז, די שטאַט פון זכּרון פון דיין פּראָגראַם
נאָר געץ קאַפּיד און פּייסטיד אין דעם טעקע.
עס געץ דאַמפּט אין אַז טעקע.
דעם פּראָגראַם, בשעת עס איז געווען פליסנדיק, געטראפן צו האָבן אַ זכּרון באַניץ פון אַרום 250 קילאבייט,
און אַזוי אַז ס וואָס גאַט דאַמפּט אין דעם טעקע.
איצט איר קענען קוקן אין אַז טעקע אויב מיר טאָן גדב בוגגי1 האַרץ.
מיר קענען נאָר טאָן גדב בוגגי1, און אַז וועט נאָר אָנהייב אַרויף גדב קעסיידער,
ניצן בוגגי1 ווי זייַן אַרייַנשרייַב טעקע.
אבער אויב איר טאָן גדב בוגגי1 האַרץ, דעריבער עס ס ספּאַסיפיקלי געגאנגען צו אָנהייבן אַרויף גדב
דורך קוקן בייַ אַז האַרץ טעקע.
און איר געזאגט בוגגי1 מיטל גדב ווייסט אַז אַז האַרץ טעקע קומט פון די בוגגי1 פּראָגראַם.
אַזוי גדב בוגגי1 האַרץ איז געגאנגען צו מיד ברענגען אונדז
צו ווו די פּראָגראַם געטראפן צו פאַרענדיקן.
מיר זען דאָ פּראָגראַם טערמאַנייטיד מיט סיגנאַל 11, סעגמענטאַטיאָן שולד.
מיר פּאַסירן צו זען אַ שורה פון פֿאַרזאַמלונג, וואָס מיסטאָמע איז נישט זייער נוציק.
אבער אויב איר טיפּ בט אָדער באַקקטראַסע, אַז ס 'געגאנגען צו זייַן די פֿונקציע
וואָס גיט אונדז די רשימה פון אונדזער קראַנט אָנלייגן ראָמען.
אַזוי באַקקטראַסע. עס קוקט ווי מיר נאָר האָבן צוויי אָנלייגן ראָמען.
דער ערשטער איז אונדזער הויפּט אָנלייגן ראַם,
און די רגע איז די אָנלייגן ראַם פֿאַר דעם פֿונקציע אַז מיר פּאַסירן צו זייַן אין,
וואָס קוקט ווי מיר נאָר האָבן די פֿאַרזאַמלונג קאָד פֿאַר.
אַזוי לאָזן ס גיין צוריק אין אונדזער הויפּט פֿונקציע,
און צו טאָן וואָס מיר קענען טאָן ראַם 1, און איך טראַכטן מיר קענען אויך טאָן אַראָפּ,
אָבער איך כּמעט קיינמאָל טאָן אַראָפּ - אָדער אַרויף. יאָ.
אַרויף און אַראָפּ. אַרויף ברענגט איר אַרויף איינער אָנלייגן ראַם, אַראָפּ ברענגט איר אַראָפּ אַ אָנלייגן ראַם.
איך טענד צו קיינמאָל נוצן אַז.
איך נאָר ספּאַסיפיקלי זאָגן ראַם 1, וואָס איז גיין צו די ראַם מיטן נאָמען 1.
ראַם 1 איז געגאנגען צו ברענגען אונדז אין הויפּט אָנלייגן ראַם,
און עס זאגט רעכט דאָ די שורה פון קאָד מיר פּאַסירן צו זייַן בייַ.
אויב מיר געוואלט אַ פּאָר מער שורות פון קאָד, מיר קענען זאָגן רשימה,
און אַז ס 'געגאנגען צו געבן אונדז אַלע די שורות פון קאָד אַרום אים.
די שורה מיר סעגפאַולטעד בייַ איז געווען 6:
אויב (סטרקמפּ ("קס50 ראַקס", אַרגוו [1]) == 0).
אויב עס איז נישט קלאָר ווי דער טאָג נאָך, איר קענען באַקומען עס גלייַך פון דאָ נאָר דורך טראכטן וואָס עס סעגפאַולטעד.
אבער מיר קענען נעמען עס איין שריט ווייַטער און זאָגן, "פארוואס וואָלט אַרגוו [1] סעגפאַולט?"
זאל ס דרוק אַרגוו [1], און עס קוקט ווי עס ס 0קס0, וואָס איז די נאַל טייַטל.
מיר רע סטרקמפּינג קס50 ראַקס און נאַל, און אַזוי אַז ס 'געגאנגען צו סעגפאַולט.
און וואָס איז אַרגוו [1] נאַל?
[תּלמיד] ווייַל מיר האבן נישט געבן עס קיין באַפֿעלן-שורה טענות.
יאָ. מיר האט ניט געבן עס קיין באַפֿעלן-שורה טענות.
אַזוי ./בוגגי1 איז בלויז געגאנגען צו האָבן אַרגוו [0] זייַן ./בוגגי1.
עס ס ניט געגאנגען צו האָבן אַ אַרגוו [1], אַזוי אַז ס 'געגאנגען צו סעגפאַולט.
אבער אויב, אַנשטאָט, איך טאָן נאָר קס50, עס ס געגאנגען צו זאָגן איר באַקומען אַ ד
ווייַל אַז ס וואָס עס ס געמיינט צו טאָן.
קוקן בייַ בוגגי1.ק, עס ס געמיינט צו דרוקן "איר באַקומען אַ ד" -
אויב אַרגוו [1] איז נישט "קס50 ראַקס", "איר באַקומען אַ ד", אַנדערש "איר באַקומען אַ א!"
אַזוי אויב מיר ווילן אַ א, מיר דאַרפֿן דאָס צו פאַרגלייַכן ווי אמת,
וואָס מיטל אַז עס קאַמפּערז צו 0.
אַזוי אַרגוו [1] דאַרף צו זייַן "קס50 ראַקס".
אויב איר ווילן צו טאָן אַז אויף די באַפֿעל שורה, איר דאַרפֿן צו נוצן \ צו אַנטלויפן די פּלאַץ.
אַזוי קס50 \ ראַקס און איר באַקומען אַ א!
אויב איר טאָן ניט טאָן די באַקסלאַש, וואָס טוט דאָס נישט אַרבעטן?
[תּלמיד] עס ס צוויי פאַרשידענע טענות. >> יאָ.
אַרגוו [1] איז געגאנגען צו זייַן קס50, און אַרגוו [2] איז געגאנגען צו זייַן ראַקס. אָוקיי.
>> איצט ./בוגגי2 איז געגאנגען צו סעגפאַולט ווידער.
אַנשטאָט פון עפן עס מיט זייַן האַרץ טעקע, מיר וועט נאָר עפענען אַרויף בוגגי2 גלייַך,
אַזוי גדב בוגגי2.
איצט אויב מיר נאָר לויפן אונדזער פּראָגראַם, דעריבער עס ס געגאנגען צו זאָגן פּראָגראַם באקומען סיגנאַל סיגסעגוו,
וואָס איז די סעגפאַולט סיגנאַל, און דאָס איז ווו עס געטראפן צו פּאַסירן.
קוקן בייַ אונדזער באַקקטראַסע, מיר זען אַז מיר זענען אין די פֿונקציע אָה_נאָ,
וואָס איז גערופן דורך די פֿונקציע דינגקי, וואָס איז גערופן דורך די פֿונקציע בינקי,
וואָס איז גערופן דורך הויפּט.
מיר קענען אויך זען די טענות צו די פאַנגקשאַנז.
דער אַרגומענט צו דינגקי און בינקי איז געווען 1.
אויב מיר רשימה די פֿונקציע אָה_נאָ, מיר זען אַז אָה_נאָ איז נאָר טאן טשאַר ** s = נאַל;
* S = "בום";
וואָס וואָלט אַז פאַרלאָזן?
[תּלמיד] איר קענען נישט דערעפערענסע די נאַל טייַטל? >> יאָ.
דאס איז נאָר געזאגט ס איז נאַל, ראַגאַרדלאַס אויב אַז כאַפּאַנז צו זייַן אַ טשאַר **,
וואָס, דיפּענדינג אויף ווי איר טייַטשן עס, עס קען זייַן אַ טייַטל צו אַ טייַטל צו אַ שטריקל
אָדער אַ מענגע פון ​​סטרינגס.
עס ס ס איז נאַל, אַזוי * ס איז דערעפערענסינג אַ נאַל טייַטל,
און אַזוי דאָס איז געגאנגען צו קראַך.
דאס איז איינער פון די קוויקיסט וועגן איר קענען עפשער סעגפאַולט.
עס ס נאָר דיקלערינג אַ נאַל טייַטל און מיד סעגפאַולטינג.
אַז ס וואָס אָה_נאָ איז טאן.
אויב מיר גיין אַרויף איין ראַם, דעמאָלט מיר רע געגאנגען צו באַקומען אין די פֿונקציע אַז גערופן אָה_נאָ.
איך דאַרפֿן צו טאָן אַז אַראָפּ.
אויב איר טאָן ניט אַרייַן אַ באַפֿעל און איר נאָר שלאָגן אַרייַן ווידער,
עס וועט נאָר איבערחזרן די פֿריִערדיקע באַפֿעל אַז איר געלאפן.
מיר זענען אין ראַם 1.
ליסטינג דעם ראַם, מיר זען דאָ איז אונדזער פונקציאָנירן.
איר קענען שלאָגן רשימה ווידער, אָדער איר קענען טאָן רשימה 20 און עס וועט רשימה מער.
די פֿונקציע דינגקי זאגט אויב איך איז 1, דאַן גיין צו די אָה_נאָ פונקציאָנירן,
אַנדערש גיין צו די סלינקי פונקציאָנירן.
און מיר וויסן איך איז 1 ווייַל מיר פּאַסירן צו זען אַרויף דאָ
אַז דינגקי איז גערופן מיט דעם אַרגומענט 1.
אָדער איר קענען נאָר טאָן דרוק איך און עס וועט זאָגן איך איז 1.
מיר זענען דערווייַל אין דינגקי, און אויב מיר גיין אַרויף אנדערן ראַם, מיר וויסן מיר וועט סוף אַרויף אין בינקי.
אַרויף. איצט מיר ניטאָ אין בינקי.
ליסטינג דעם פֿונקציע - די רשימה פון פריער העלפט שנייַדן מיך אַוועק -
עס אנגעהויבן אַוועק ווי אויב איך איז 0, דעמאָלט מיר רע געגאנגען צו רופן עס אָה_נאָ, אַנדערש רופן דינגקי.
מיר וויסן איך איז געווען 1, אַזוי עס גערופן דינגקי.
און איצט מיר רע צוריק אין הויפּט, און הויפּט איז נאָר געגאנגען צו זייַן ינט איך = ראַנד ()% 3;
וואָס איז נאָר געגאנגען צו געבן איר אַ טראַפ - נומער וואָס איז אָדער 0, 1, אָדער 2.
עס ס געגאנגען צו רופן בינקי מיט וואָס נומער, און עס וועט צוריקקומען 0.
קוקן בייַ דעם,
נאָר גיין דורך די פּראָגראַם מאַניואַלי אָן פליסנדיק עס מיד,
איר וואָלט שטעלן אַ ברעכן פונט אין הויפּט, וואָס מיטל אַז ווען מיר לויפן די פּראָגראַם
דיין פּראָגראַם לויפט אַרויף ביז עס היץ אַ ברעכן פונט.
אַזוי פליסנדיק די פּראָגראַם, עס וועט לויפן און דעמאָלט עס וועט שלאָגן די הויפּט פֿונקציע און האַלטן פליסנדיק.
איצט מיר רע ין פון הויפּט, און שריט אָדער ווייַטער איז געגאנגען צו ברענגען אונדז צו דער ווייַטער שורה פון קאָד.
איר קענען טאָן שריט אָדער ווייַטער.
היטטינג ווייַטער, איצט איך האט שוין שטעלן צו ראַנד ()% 3, אַזוי מיר קענען דרוקן די ווערט פון איך,
און עס וועט זאָגן איך איז 1.
איצט עס טוט ענין צי מיר נוצן ווייַטער אָדער שריט.
איך טרעפן עס מאַטערד אין די פֿריִערדיקע איין, אָבער מיר וואָלט ווילן צו נוצן ווייַטער.
אויב מיר נוצן שריט, מיר שריט אין דעם פֿונקציע, וואָס מיטל קוקן בייַ די פאַקטיש זאַך
אַז ס געשעעניש ין פון בינקי.
אויב מיר נוצן ווייַטער, דעריבער עס מיטל גיין איבער די פֿונקציע
און נאָר גיין צו דער ווייַטער שורה פון קאָד אין אונדזער הויפּט פֿונקציע.
רעכט דאָ אויף דעם שורה, איך געווען בייַ ווו עס האט ראַנד ()% 3;
אויב איך האט שריט, עס וואָלט גיין אין די ימפּלאַמענטיישאַן פון ראַנד
און קוק אין וואָס ס געשעעניש דאָרט, און איך קען שריט דורך די ראַנד פונקציאָנירן.
אבער איך טאָן ניט זאָרגן וועגן דעם ראַנד פונקציאָנירן.
איך נאָר וועלן צו גיין צו די ווייַטער שורה פון קאָד אין הויפּט, אַזוי איך נוצן ווייַטער.
אבער איצט איך טאָן זאָרגן וועגן די בינקי פונקציאָנירן, אַזוי איך ווילן צו שריט אין וואָס.
איצט איך בין אין בינקי.
דער ערשטער שורה פון קאָד איז געגאנגען צו זאָגן אויב (איך == 0), איך נעמען אַ שריט,
מיר זען מיר סוף אַרויף בייַ דינגקי.
אויב מיר רשימה זאכן, מיר זען אַז עס אָפּגעשטעלט איז איך = 0.
איך איז נישט גלייַך צו 0, אַזוי עס געגאנגען צו די אַנדערש צושטאַנד,
וואָס איז געגאנגען צו רופן דינגקי (איך).
איר זאל באַקומען צעמישט.
אויב איר נאָר קוק אין די שורות גלייַך, איר זאל טראַכטן אויב (איך == 0),
אָוקיי, דאַן איך גענומען אַ שריט און איצט איך בין בייַ דינגקי (איך),
איר זאל טראַכטן אַז מוזן מיינען איך = 0 אָדער עפּעס.
נומ עס נאָר מיטל אַז עס ווייסט עס קענען שטעקן גלייַך צו די שורה דינגקי (איך).
ווייַל איך איז נישט 0, דער ווייַטער שריט איז נישט געגאנגען צו סוף בייַ די אַנדערש.
אַנדערש איז נישט אַ שורה עס ס געגאנגען צו האַלטן בייַ.
עס ס נאָר געגאנגען צו גיין צו די ווייַטער שורה עס קענען פאקטיש ויספירן, וואָס איז דינגקי (איך).
סטעפּינג אין דינגקי (איך), מיר זען אויב (איך == 1).
מיר טאָן וויסן איך = 1, אַזוי ווען מיר שריט, מיר וויסן מיר רע געגאנגען צו סוף אַרויף אין אָה_נאָ
ווייַל איך = 1 רופט די פֿונקציע אָה_נאָ, וואָס איר קענען שריט אין,
וואָס איז געגאנגען צו שטעלן טשאַר ** s = צו נאַל און מיד "בום".
און דעמאָלט פאקטיש קוקן בייַ די ימפּלאַמענטיישאַן פון בוגגי2,
דעם, איך איז נאָר געטינג אַ טראַפ - נומער - 0, 1, אָדער 2 - פאַך בינקי,
וואָס אויב איך איז 0 עס רופט אָה_נאָ, אַנדערש עס רופט דינגקי, וואָס קומט אַרויף דאָ.
אויב איך איז 1, רופן אָה_נאָ, אַנדערש רופן סלינקי, וואָס קומען אַרויף דאָ,
אויב איך איז 2, רופן אָה_נאָ.
איך טאָן ניט אַפֿילו טראַכטן עס איז אַ וועג -
טוט ווער עס יז זען אַ וועג פון מאכן דעם אַ פּראָגראַם וואָס וועט ניט סעגפאַולט?
ווייַל סייַדן איך בין פעלנדיק עפּעס, אויב איך איז 0, איר וועט תיכף סעגפאַולט,
אַנדערש איר גיין צו אַ פֿונקציע וואָס אויב איך איז 1 איר סעגפאַולט,
אַנדערש איר גיין צו אַ פֿונקציע ווו אויב איך איז 2 איר סעגפאַולט.
אַזוי קיין ענין וואָס איר טאָן, איר סעגפאַולט.
>> איך טרעפן איין וועג פון פיקסיר עס וואָלט זייַן אַנשטאָט פון טאן טשאַר ** s = נאַל,
איר קען מאַללאָק פּלאַץ פֿאַר אַז שטריקל.
מיר קען טאָן מאַללאָק (סיזעאָף) - סיזעאָף וואָס?
[תּלמיד] (טשאַר) * 5? >> טוט דעם ויסקומען רעכט?
איך בין אַסומינג דאָס וועט אַרבעטן אויב איך פאקטיש געלאפן אים, אָבער עס ס נישט וואָס איך בין קוקן פֿאַר.
קוק אין דער טיפּ פון ס. זאל ס לייגן ינט *, אַזוי ינט * X.
איך וואָלט טאָן מאַללאָק (סיזעאָף (ינט)).
אָדער אויב איך געוואלט אַ מענגע פון ​​5, איך וואָלט טאָן (סיזעאָף (ינט) * 5);
וואָס אויב איך האָבן אַ ינט **?
וואָס וואָלט איך מאַללאָק?
[תּלמיד] גרייס פון די טייַטל. >> יאָ. (סיזעאָף (ינט *));
זעלבע זאַך אַראָפּ דאָ.
איך ווילן (סיזעאָף (טשאַר *));
דאס איז געגאנגען צו אַלאַקייט פּלאַץ פֿאַר די טייַטל אַז פונקטן צו "בום".
איך טאָן ניט דאַרפֿן צו אַלאַקייט פּלאַץ פֿאַר "בום" זיך
ווייַל דאָס איז בייסיקלי עקוויוואַלענט צו וואָס איך געזאגט פריער
פון טשאַר * X = "בום".
"בום" שוין יגזיסץ. עס כאַפּאַנז צו עקסיסטירן אין די לייענען-בלויז געגנט פון זכּרון.
אבער עס שוין יגזיסץ, וואָס מיטל דעם שורה פון קאָד, אויב ס איז אַ טשאַר **,
דעמאָלט * ס איז אַ טשאַר * און איר ניטאָ באַשטעטיקן דעם טשאַר * צו פונט צו "בום".
אויב איך געוואלט צו קאָפּיע "בום" אין ס, דאַן איך וואָלט דאַרפֿן צו אַלאַקייט פּלאַץ פֿאַר ס.
איך וועט טאָן * s = מאַללאָק (סיזעאָף (טשאַר) * 5);
פארוואס 5?
פארוואס ניט 4? עס קוקט ווי "בום" איז 4 אותיות. >> [תּלמיד] די נאַל כאַראַקטער.
יאָ. אַלע פון ​​דיין סטרינגס זענען געגאנגען צו דאַרפֿן די נאַל כאַראַקטער.
איצט איך קענען טאָן עפּעס ווי סטרקאַט - וואָס איז די פֿונקציע פֿאַר קאַפּיינג אַ שטריקל?
[תּלמיד] קפּי? >> סטרקפּי.
מענטש סטרקפּי.
אַזוי סטרקפּי אָדער סטרנקפּי.
סטרנקפּי איז אַ ביסל סאַפער זינט איר קענען ספּעציפיצירן פּונקט ווי פילע אותיות,
אָבער דאָ עס טוט נישט ענין ווייַל מיר וויסן.
אַזוי סטרקפּי און קוק אין די טענות.
דער ערשטער אַרגומענט איז אונדזער דעסטיניישאַן.
די רגע אַרגומענט איז אונדזער מקור.
מיר רע געגאנגען צו צייכענען אין אונדזער דעסטיניישאַן * ס די טייַטל "בום".
פארוואס זאל איר ווילן צו טאָן דאָס מיט אַ סטרקפּי אַנשטאָט פון פּונקט וואָס מיר האבן פריער
פון * s = "בום"?
עס איז אַ סיבה איר זאל וועלן צו טאָן דאָס, אָבער וואָס איז אַז סיבה?
[תּלמיד] אויב איר ווילן צו טוישן עפּעס אין "בום". >> יאָ.
איצט איך קענען טאָן עפּעס ווי ס [0] = 'רענטגענ';
ווייַל ס פונקטן צו דער קופּע און אַז פּלאַץ אויף די קופּע אַז ס איז פּוינטינג צו
איז אַ טייַטל צו מער פּלאַץ אויף די קופּע, וועלכע איז סטאָרינג "בום".
אַזוי דעם קאָפּיע פון ​​"בום" איז זייַענדיק סטאָרד אין די קופּע.
עס זענען טעקניקלי צוויי קאפיעס פון "בום" אין אונדזער פּראָגראַם.
עס ס דער ערשטער איין אַז ס נאָר געגעבן דורך דעם "בום" שטריקל קעסיידערדיק,
און די רגע קאָפּיע פון ​​"בום", סטרקפּי באשאפן די קאָפּיע פון ​​"בום".
אבער די קאָפּיע פון ​​"בום" איז זייַענדיק סטאָרד אויף די קופּע, און די קופּע איר ניטאָ פֿרייַ צו טוישן.
דער קופּע איז ניט לייענען-נאָר, אַזוי אַז מיטל אַז ס [0]
איז געגאנגען צו לאָזן איר טוישן די ווערט פון "בום".
עס ס געגאנגען צו לאָזן איר טוישן יענע אותיות.
>> שאלות?
אָוקיי.
>> מאָווינג אויף צו בוגגי3, לאָזן ס גדב בוגגי3.
מיר נאָר לויפן עס און מיר זען מיר באַקומען אַ סעגפאַולט.
אויב מיר באַקקטראַסע, עס זענען נאָר צוויי פאַנגקשאַנז.
אויב מיר גיין אַרויף אין אונדזער הויפּט פֿונקציע, מיר זען וואָס מיר סעגפאַולטעד אין דעם ליניע.
אַזוי נאָר קוקן אין דעם שורה, פֿאַר (ינט שורה = 0; פגעץ דעם שטאָפּן טוט ניט גלייַך נאַל;
שורה + +).
אונדזער פֿריִערדיקע ראַם האט גערופן _יאָ_פגעץ.
איר וועט זען אַז אַ פּלאַץ מיט געבויט-אין C פאַנגקשאַנז,
אַז ווען איר באַקומען די סעגפאַולט, עס וועט זייַן טאַקע קריפּטיק פונקציאָנירן נעמען
ווי דעם _יאָ_פגעץ.
אבער אַז ס 'געגאנגען צו פאַרבינדן צו דעם פגעץ רופן.
ערגעץ ין דאָ, מיר זענען סעגפאַולטינג.
אויב מיר קוקן אין די טענות צו פגעץ, מיר קענען דרוקן באַפער.
זאל ס דרוקן ווי אַ - אָה, ניט.
דרוק איז נישט געגאנגען צו אַרבעט פּונקט ווי איך ווילן עס צו.
זאל ס קוק בייַ די פאַקטיש פּראָגראַם.
באַפער איז אַ כאַראַקטער מענגע. עס ס אַ כאַראַקטער מענגע פון ​​128 אותיות.
אַזוי ווען איך זאָגן דרוק באַפער, עס ס געגאנגען צו דרוקן יענע 128 אותיות,
וואָס איך טרעפן איז וואָס איז דערוואַרט.
וואָס איך איז געווען קוקן פֿאַר איז דרוקן דעם אַדרעס פון באַפער,
אָבער וואָס טוט ניט טאַקע זאָגן מיר פיל.
אַזוי ווען איך פּאַסירן צו זאָגן אַרויף דאָ X באַפער, עס ווייזט מיר 0קסבפפפפ090,
וואָס, אויב איר געדענקען פון פריער אָדער עטלעכע פונט, אָקסבפפפף טענדז צו זייַן אַ אָנלייגן-יידישע געגנט.
די אָנלייגן טענדז צו אָנהייבן ערגעץ נאָר אונטער 0קסק000.
נאָר דורך געזען דעם אַדרעס, איך וויסן אַז באַפער איז געשעעניש אויף דעם אָנלייגן.
רעסטאַרטינג מיין פּראָגראַם, לויפן, אַרויף, באַפער מיר געזען איז געווען דעם סיקוואַנס פון אותיות
וואָס זענען שיין פיל מינינגלאַס.
דערנאך דרוק טעקע, וואָס טוט טעקע קוק ווי?
[תּלמיד] נאַל. >> יאָ.
טעקע איז אַן פון טיפּ טעקע *, אַזוי עס איז אַ טייַטל,
און די ווערט פון וואָס טייַטל איז נאַל.
אַזוי פגעץ איז געגאנגען צו פּרובירן צו לייענען פון וואָס טייַטל אין אַ ומדירעקט וועג,
אָבער אין סדר צו צוטריט אַז טייַטל, עס האט צו דערעפערענסע עס.
אָדער, אין סדר צו צוטריט וואָס עס זאָל זייַן פּוינטינג צו, עס דערעפערענסעס עס.
אַזוי עס ס דערעפערענסינג אַ נאַל טייַטל און עס סעגפאַולץ.
איך קען האָבן ריסטאַרטיד עס דאָרט.
אויב מיר ברעכן אין אונדזער הויפּט פונט און לויפן,
דער ערשטער שורה פון קאָד איז טשאַר * פילענאַמע = "נאָנעקסיסטענט.טקסט";
וואָס זאָל געבן אַ שיין גרויס אָנצוהערעניש ווי צו וואָס דעם פּראָגראַם פיילז.
טייפּינג ווייַטער ברענגט מיר צו דעם ווייַטער שורה, ווו איך עפענען דעם טעקע,
און דעמאָלט איך תיכף באַקומען אין אונדזער שורה, ווו אַמאָל איך שלאָגן ווייַטער, עס ס געגאנגען צו סעגפאַולט.
טוט ווער עס יז וועלן צו וואַרפן אויס אַ סיבה וואָס מיר זאל זייַן סעגפאַולטינג?
[תּלמיד] טעקע טוט נישט עקזיסטירן. >> יאָ.
דאס איז געמיינט צו זייַן אַ אָנצוהערעניש
אַז ווען איר ניטאָ עפן אַ טעקע איר דאַרפֿן צו קאָנטראָלירן אַז די טעקע פאקטיש יגזיסץ.
אַזוי דאָ, "נאָנעקסיסטענט.טקסט";
ווען מיר פאָפּען פילענאַמע פֿאַר לייענען, מיר דעמאָלט דאַרפֿן צו זאָגן
אויב (טעקע == נאַל) און זאָגן פּרינטף ("טעקע טוט נישט עקסיסטירן!"
אָדער - בעסער נאָך - פילענאַמע); צוריקקומען 1;
אַזוי איצט מיר טשעק צו זען אויב עס ס נאַל
איידער פאקטיש ממשיך און טריינג צו לייענען פון וואָס טעקע.
מיר קענען רימייק עס נאָר צו זען אַז וואָס אַרבעט.
איך בדעה צו אַרייַננעמען אַ נייַ שורה.
אַזוי איצט נאָנעקסיסטענט.טקסט טוט נישט עקזיסטירן.
איר זאָל שטענדיק טשעק פֿאַר דעם סאָרט פון זאַך.
איר זאָל שטענדיק טשעק צו זען אויב פאָפּען קערט נאַל.
איר זאָל שטענדיק טשעק צו מאַכן זיכער אַז מאַללאָק טוט נישט צוריקקומען נאַל,
אָדער אַנדערש איר סעגפאַולט.
>> איצט בוגגי4.ק.
פליסנדיק. איך בין געסינג דעם איז ווארטן פֿאַר אַרייַנשרייַב אָדער עפשער ינפאַנאַט לופּינג.
יא, עס ס ינפאַנאַט לופּינג.
אַזוי בוגגי4. עס קוקט ווי מיר רע ינפאַנאַט לופּינג.
מיר קענען ברעכן אין הויפּט, לויפן אונדזער פּראָגראַם.
אין גדב, ווי לאַנג ווי די אַבריווייישאַן איר נוצן איז אַנאַמביגיאַוואַס
אָדער ספּעציעל אַבריווייישאַנז אַז זיי צושטעלן פֿאַר איר,
דעמאָלט איר קענען נוצן N צו נוצן ווייַטער אַנשטאָט פון בעת ​​צו דרוקן אויס ווייַטער אַלע די וועג.
און איצט אַז איך ווע שלאָגן N אַמאָל, איך קען נאָר שלאָגן אַרייַן צו האַלטן געגאנגען ווייַטער
אַנשטאָט פון בעת ​​צו שלאָגן N אַרייַן, N אַרייַן, N אַרייַן.
עס קוקט ווי איך בין אין עטלעכע מין פון פֿאַר שלייף אַז ס באַשטעטיקן מענגע [איך] צו 0.
עס קוקט ווי איך בין קיינמאָל ברייקינג אויס פון דעם פֿאַר שלייף.
אויב איך דרוק איך, אַזוי איך איז 2, דעמאָלט איך וועט גיין ווייַטער.
איך וועט דרוקן איך, איך איז 3, דעמאָלט איך וועט גיין ווייַטער.
איך וועט דרוקן איך און איך איז 3. ווייַטער, דרוק איך, איך איז 4.
פאקטיש, דרוק סיזעאָף (מענגע), אַזוי גרייס פון מענגע איז 20.
אבער עס קוקט ווי דאָרט ס עטלעכע ספּעציעל גדב באַפֿעל פֿאַר געגאנגען ביז עפּעס כאַפּאַנז.
עס ס ווי באַשטעטיקן אַ צושטאַנד אויף די ווערט פון די בייַטעוודיק. אבער איך טאָן ניט געדענקען וואָס עס איז.
אַזוי אויב מיר האַלטן געגאנגען -
וואָס זענען איר געזאגט? וואָס האט איר ברענגען אַרויף?
[תּלמיד] טוט אַרויסווייַזן איך לייג - >> יאָ. אַזוי אַרויסווייַזן איך קענען העלפן.
אויב מיר נאָר אַרויסווייַזן איך, עס וועט שטעלן אַרויף דאָ וואָס די ווערט פון איך איז
אַזוי איך טאָן ניט האָבן צו דרוקן עס אויס יעדער צייַט.
אויב מיר נאָר האַלטן געגאנגען ווייַטער, מיר זען 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5.
עפּעס איז געגאנגען טעראַבלי פאַלש, און איך איז זייַענדיק באַשטעטיק צו 0.
קוקן בייַ בוגגי4.ק, מיר זען אַלע וואָס כאַפּאַנז איז ינט מענגע [5];
פֿאַר (איך = 0; איך <= סיזעאָף (מענגע); איך + +)
מענגע [איך] = 0;
וואָס טאָן מיר זען אַז ס אומרעכט דאָ?
ווי אַ אָנצוהערעניש, ווען איך איז טאן די גדב בוגגי4 - לאָזן ס ברעכן הויפּט, לויפן -
איך האט דרוק סיזעאָף (מענגע) נאָר צו זען וואָס דער צושטאַנד איז ווו איך זאָל לעסאָף ברעכן אויס.
ווו בין איך? האט איך לויפן?
איך האט ניט דערקלערן נאָך.
אַזוי דרוק סיזעאָף (מענגע) און אַז ס 20,
וואָס איז דערוואַרט זינט מיין מענגע איז פון גרייס 5 און עס ס פון 5 ינטאַדזשערז,
אַזוי די גאנצע זאַך זאָל זייַן 5 * סיזעאָף (ינט) ביטעס, ווו סיזעאָף (ינט) טענדז צו זייַן 4.
אַזוי סיזעאָף (מענגע) איז 20.
וואָס זאָל דאָס זייַן?
[תּלמיד] צעטיילט דורך סיזעאָף (ינט). >> יאָ, / סיזעאָף (ינט).
עס קוקט ווי דאָרט ס נאָך אַ פּראָבלעם דאָ. איך טראַכטן דאָס זאָל נאָר זייַן <
זינט עס ס שיין פיל שטענדיק <און קיינמאָל <=.
איצט לאָזן ס טראַכטן וועגן וואָס דאָס איז פאקטיש צעבראכן.
טוט ווער עס יז האָבן געסאַז וואָס איז געווען איך באַשטעטיק צו 0 דורך יעדער יטעראַטיאָן פון די שלייף?
דער בלויז זאַך ין פון דאָ אַז ס געשעעניש איז אַז מענגע [איך] איז זייַענדיק שטעלן צו 0.
אַזוי עפעס, דעם שורה פון קאָד איז קאָזינג אונדזער ינט איך צו זייַן שטעלן צו 0.
[תּלמיד] קען עס זייַן ווייַל עס ס אָוווערריידינג דעם זכּרון פון דעם טייל פון איך
ווען עס מיינט עס 'ס דער ווייַטער עלעמענט פון מענגע? >> [באָוודען] יא.
ווען מיר רע געגאנגען ווייַטער פון די סוף פון אונדזער מענגע,
עפעס אַז פּלאַץ אַז מיר רע אָוווערריידינג איז אָוווערריידינג די ווערט פון איך.
און אַזוי אויב מיר קוקן אין בוגגי4, ברעכן הויפּט, לויפן,
לאָזן ס דרוקן דעם אַדרעס פון איך.
עס קוקט ווי עס ס בפפפפ124.
איצט לאָזן ס דרוקן דעם אַדרעס פון מענגע [0]. 110.
וואָס וועגן [1]? 114.
[2], 118.
11ק, 120. מענגע [5] איז בפפפ124.
אַזוי מענגע [5] האט דער זעלביקער אַדרעס ווי איך, וואָס מיטל וואָס מענגע [5] איז איך.
אויב זיי האָבן די זעלבע אַדרעס, זיי זענען די זעלבע זאַך.
אַזוי ווען מיר שטעלן מענגע [5] צו 0, מיר זענען באַשטעטיקן איך צו 0.
און אויב איר טראַכטן וועגן דעם אין טערמינען פון די אָנלייגן,
ינט איך איז דערקלערט ערשטער, וואָס מיטל איך געץ עטלעכע פּלאַץ אויף די אָנלייגן.
דעמאָלט מענגע [5] איז אַלאַקייטיד, אַזוי דעמאָלט 20 ביטעס זענען אַלאַקייטיד אויף דעם אָנלייגן.
אַזוי איך געץ אַלאַקייטיד ערשטער, דעריבער די 20 ביטעס באַקומען אַלאַקייטיד.
אַזוי איך כאַפּאַנז רעכט פאר די מענגע,
און ווייַל פון דעם וועג, ווי איך געזאגט לעצטע וואָך, ווו טעקניקלי דעם אָנלייגן וואקסט אַראָפּ,
ווען איר אינדעקס אין אַ מענגע, מיר זענען געראַנטיד אַז די 0 שטעלע אין דער מענגע
שטענדיק כאַפּאַנז איידער דער ערשטער שטעלע אין דער מענגע.
דאס איז מין פון ווי איך געצויגן עס לעצטע וואָך.
נאָטיץ אַז בייַ די דנאָ מיר האָבן אַדרעס 0 און בייַ די שפּיץ מיר האָבן אַדרעס מאַקס.
די אָנלייגן איז שטענדיק גראָוינג אַראָפּ.
זאל ס זאָגן מיר אַלאַקייט איך.
מיר אַלאַקייט ינטעגער איך, וואָס מיטל לאָזן ס נאָר זאָגן אַרויף דאָ ינטעגער איך געץ אַלאַקייטיד.
דעמאָלט מיר אַלאַקייט אונדזער מענגע פון ​​5 ינטאַדזשערז, וואָס מיטל וואָס ונטער אַז,
זינט דעם אָנלייגן איז גראָוינג אַראָפּ, יענע 5 ינטאַדזשערז באַקומען אַלאַקייטיד.
אבער ווייַל פון ווי ערייז אַרבעט, מיר רע געראַנטיד אַז דער ערשטער שטעלע אין דער מענגע
שטענדיק האט אַן אַדרעס ווייניקער ווי די רגע זאַך אין די מענגע.
אַזוי מענגע שטעלע 0 שטענדיק האט צו פּאַסירן ערשטער אין זכּרון,
וועראַז מענגע שטעלע 1 האט צו פּאַסירן נאָך אַז
און מענגע שטעלע 2 האט צו פּאַסירן נאָך אַז,
וואָס מיטל וואָס מענגע שטעלע 0 וואָלט פּאַסירן ערגעץ אַראָפּ דאָ,
מענגע שטעלע 1 וואָלט פּאַסירן אויבן אַז
ווייַל מאָווינג אַרויף מיטל העכער ווענדט זינט די מאַקסימום אַדרעס איז אַרויף דאָ.
אַזוי מענגע [0] אַראָפּ דאָ, מענגע [1] אַרויף דאָ, מענגע [2] אַרויף דאָ, מענגע [3] אַרויף דאָ.
נאָטיץ ווי איידער מיר אַלאַקייטיד ינטעגער איך אַלע די וועג אַרויף דאָ,
ווי מיר מאַך ווייַטער און ווייַטער אין אונדזער מענגע, מיר זענען געטינג נעענטער און נעענטער צו אונדזער ינטעגער איך.
עס פּונקט אַזוי כאַפּאַנז אַז מענגע [5], וואָס איז איינער שטעלע ווייַטער פון אונדזער מענגע,
איז פּונקט ווו ינטעגער איך געטראפן צו זייַן אַלאַקייטיד.
אַזוי אַז ס די פונט ווו מיר פּאַסירן צו זייַן היטטינג די פּלאַץ אויף די אָנלייגן
וואָס איז געווען אַלאַקייטיד פֿאַר ינטעגער איך, און מיר רע באַשטעטיקן אַז צו 0.
>> אַז ס ווי וואָס אַרבעט. שאלות? יאָ.
[תּלמיד] קיינמאָל מיינונג. אָוקיי.
[תּלמיד] ווי טאָן איר ויסמייַדן די סאָרט פון ערראָרס?
די סאָרט פון ערראָרס? דו זאלסט נישט נוצן C ווי דיין פּראָגראַממינג שפּראַך.
ניצן אַ שפּראַך וואָס האט מענגע גווול קאָנטראָלירונג.
ווי לאַנג ווי איר ניטאָ אָפּגעהיט, איר נאָר דאַרפֿן צו ויסמייַדן געגאנגען פאַרגאַנגענהייַט די גווול פון דיין מענגע.
[תּלמיד] אזוי דאָ ווען מיר געגאנגען פאַרגאַנגענהייַט די גווול פון דיין מענגע -
[באָוודען] אַז ס ווו דאס אָנהייבן געגאנגען פאַלש. >> [תּלמיד] אָה, אָוקיי.
ווי לאַנג ווי איר בלייַבן ין דער זכּרון אַלאַקייטיד פֿאַר דיין מענגע, איר ניטאָ פייַן.
אבער C טוט קיין טעות קאָנטראָלירונג. אויב איך טאָן מענגע [1000], עס וועלן גערן נאָר מאָדיפיצירן וועלכער כאַפּאַנז -
עס גייט צו דער אָנהייב פון די מענגע, דעמאָלט עס גייט 1000 שטעלעס נאָך און שטעלט עס צו 0.
עס טוט ניט טאָן קיין קאָנטראָלירונג אַז אָה, דאָס טוט נישט פאקטיש האָבן 1000 דאס אין עס.
1000 איז וועג ווייַטער פון וואָס איך זאָל זייַן טשאַנגינג,
וועראַז דזשאַוואַ אָדער עפּעס איר וועט באַקומען מענגע אויס פון גווול אינדעקס
אָדער אינדעקס אויס פון גווול אויסנאַם.
אַז ס וואָס אַ פּלאַץ פון העכער מדרגה שפּראַכן האָבן די זאכן
ווו אויב איר גיין ווייַטער פון די גווול פון די מענגע, איר פאַרלאָזן
אַזוי אַז איר קענען נישט טוישן זאכן פון ונטער איר
און דאַן דאס גיין פיל ערגער ווי נאָר געטינג אַן אויסנאַם
געזאגט אַז איר געגאנגען ווייַטער פון די סוף פון די מענגע.
[תּלמיד] און אַזוי זאָל מיר האָבן נאָר געביטן דעם <= צו נאָר <? >> [באָוודען] יאָ.
עס זאָל זייַן <סיזעאָף (מענגע) / סיזעאָף (ינט);
זינט סיזעאָף (מענגע) איז 20, אָבער מיר נאָר ווילן 5. >> [תּלמיד] רעכט.
מער שאלות? אָוקיי.
>> [תּלמיד] איך האב אַ קשיא. >> יאָ.
[תּלמיד] וואָס איז די פאַקטיש מענגע בייַטעוודיק?
[באָוודען] ווי וואָס איז מענגע?
מענגע זיך איז אַ סימבאָל.
עס איז נאָר די אַדרעס פון די אָנהייב פון דעם 20 ביטעס וואָס מיר זענען רעפעראַנסינג.
איר קענען טראַכטן פון אים ווי אַ טייַטל, אָבער עס איז אַ קעסיידערדיק טייַטל.
ווי באַלד ווי דאס באַקומען צונויפגעשטעלט, די בייַטעוודיק מענגע טוט נישט עקסיסטירן ענימאָר.
[תּלמיד] אזוי ווי טוט עס געפֿינען די גרייס פון מענגע?
גרייס פון מענגע רעפערס צו די גרייס פון וואָס בלאָק אַז אַז סימבאָל רעפערס צו.
ווען איך טאָן עפּעס ווי פּרינטף ("% פּ \ ען", מענגע);
לאָזן ס לויפן עס.
וואָס האט איך נאָר טאָן אומרעכט?
מענגע 'מענגע' דערקלערט דאָ.
אָה, אַרויף דאָ.
קלאַנג איז קלוג, און עס כאַפּאַנז צו באַמערקן אַז איך דערקלערט די מענגע ווי 5 עלעמענטן
אָבער איך בין ינדעקסינג אין שטעלע 1000.
עס קענען טאָן אַז ווייַל די ביסט נאָר קאַנסטאַנץ.
עס קענען נאָר גיין אַזוי ווייַט אין נאָוטיסינג אַז איך בין געגאנגען ווייַטער פון די גווול פון די מענגע.
אבער באַמערקן פריער ווען מיר האט איך זייַן פאַלש,
עס קענען נישט עפשער באַשליסן ווי פילע וואַלועס איך קען נעמען אויף,
אַזוי עס קענען נישט באַשליסן אַז איך איז געגאנגען ווייַטער פון די סוף פון די מענגע.
אַז ס נאָר קלאַנג זייַענדיק קלוג.
>> אבער איצט מאַכן בוגגי4. אַזוי וואָס אַנדערש בין איך טאן אומרעכט?
ימפּליסיטלי דיקלערינג ביבליאָטעק פֿונקציע 'פּרינטף'.
איך בין געגאנגען צו ווילן צו # אַרייַננעמען <סטדיאָ.ה>.
אָוקיי. איצט פליסנדיק בוגגי4.
פּרינטינג די ווערט פון די מענגע ווי איך האט דאָ, דרוק עס ווי אַ טייַטל
פּרינץ עפּעס וואָס קוקט ווי דעם - בפב8805ק - וואָס איז עטלעכע אַדרעס
אַז ס אין די אָנלייגן-יידישע געגנט.
מענגע זיך איז ווי אַ טייַטל, אָבער עס איז נישט אַ פאַקטיש טייַטל,
זינט אַ רעגולער טייַטל מיר קענען טוישן.
מענגע איז נאָר עטלעכע קעסיידערדיק. דער 20 בלאַקס פון זכּרון אָנהייבן בייַ אַדרעס 0קסבפב8805ק.
אַזוי בפב8805ק דורך דעם אַדרעס +20--אָדער איך טרעפן -20 -
איז אַלע פון ​​די זכּרון אַלאַקייטיד פֿאַר דעם מענגע.
מענגע, די בייַטעוודיק זיך איז נישט סטאָרד ערגעץ.
ווען איר ניטאָ קאַמפּיילינג, דער קאַמפּיילער - האַנט כוואַליע אין עס -
אָבער דער קאַמפּיילער וועט נאָר נוצן ווו עס ווייסט מענגע צו זייַן.
עס ווייסט ווו אַז מענגע סטאַרץ,
און אַזוי עס קענען שטענדיק נאָר טאָן דאס אין טערמינען פון אָפסעץ פון אַז אָנהייב.
עס טוט נישט דאַרפֿן אַ בייַטעוודיק זיך צו פאָרשטעלן מענגע.
אבער ווען איך טאָן עפּעס ווי ינט * פּ = מענגע; איצט פּ איז אַ טייַטל וואָס ווייזט צו וואָס מענגע,
און איצט פּ פאקטיש טוט עקסיסטירן אויף דעם אָנלייגן.
איך בין פֿרייַ צו טוישן פּ. איך קענען טאָן פּ = מאַללאָק.
אַזוי עס ערידזשנאַלי שפּיציק צו מענגע; איצט עס ווייזט צו עטלעכע פּלאַץ אויף די קופּע.
איך קען נישט טאָן מענגע = מאַללאָק.
אויב קלאַנג איז קלוג, עס וועט שרייַען בייַ מיר רעכט אַוועק די פלעדערמויז.
פאקטיש, איך בין שיין זיכער גקק וואָלט טאָן דעם אויך.
אַזוי מענגע טיפּ 'ינט [5]' איז נישט אַססיגנאַבלע.
איר קענען נישט באַשטימען עפּעס צו אַ מענגע טיפּ
ווייַל מענגע איז נאָר אַ קעסיידערדיק.
עס איז אַ סימבאָל וואָס באַווייַזן יענע 20 ביטעס. איך קען נישט טוישן עס.
>> [תּלמיד] און ווו איז די גרייס פון דעם מענגע סטאָרד?
[באָוודען] עס ס נישט סטאָרד ערגעץ. עס ס ווען עס ס קאַמפּיילינג.
אַזוי ווו איז די גרייס פון מענגע סטאָרד?
איר קענען נאָר נוצן סיזעאָף (מענגע) ין פון די פֿונקציע אַז די מענגע איז דערקלערט זיך.
אַזוי אויב איך טאָן עטלעכע פונקציאָנירן, פו, און איך טאָן (ינט מענגע [])
פּרינטף ("% ד \ ען", סיזעאָף (מענגע));
און דעמאָלט אַראָפּ דאָ איך רופן פו (מענגע);
ין פון דעם פֿונקציע - לאָזן ס לויפן עס.
דאס איז קלאַנג זייַענדיק קלוג ווידער.
עס ס טעלינג מיר אַז סיזעאָף אויף מענגע פונקציאָנירן פּאַראַמעטער
וועט צוריקקומען גרייס פון 'ינט *'.
דאס וואָלט זייַן אַ טעות אויב עס ס נישט וואָס איך געוואלט צו פּאַסירן.
זאל ס 'פאקטיש קער אַוועק ווערראָר.
ווארענונג. וואָרנינגז זענען פייַן.
עס וועט נאָך צונויפנעמען ווי לאַנג ווי עס האט אַ ווארענונג.
. / אַ.אָוט איז געגאנגען צו דרוקן 4.
די ווארענונג וואָס איז געווען דזשענערייטאַד איז אַ קלאָר גראדן פון וואָס געגאנגען פאַלש.
דאס ינט מענגע איז נאָר געגאנגען צו דרוקן סיזעאָף (ינט *).
אפילו אויב איך שטעלן מענגע [5] אין דאָ, עס ס נאָך נאָר געגאנגען צו דרוקן סיזעאָף (ינט *).
אַזוי ווי באַלד ווי איר פאָרן עס אין אַ פֿונקציע, די דיסטינגקשאַן צווישן ערייז און פּוינטערז
איז נאַנאַגזיסטאַנט.
דאס כאַפּאַנז צו זייַן אַ מענגע וואָס איז דערקלערט אויף דעם אָנלייגן,
אָבער ווי באַלד ווי מיר פאָרן וואָס ווערט, אַז 0קסבף בלאַ, בלאַ, בלאַ אין דעם פֿונקציע,
דעמאָלט דעם טייַטל פונקטן צו אַז מענגע אויף דעם אָנלייגן.
אַזוי אַז מיטל וואָס סיזעאָף בלויז אַפּלייז אין די פֿונקציע אַז די מענגע האט דערקלערט,
וואָס מיטל אַז ווען איר זענט קאַמפּיילינג דעם פֿונקציע,
ווען קלאַנג גייט דורך דעם פֿונקציע, עס זעט מענגע איז אַ ינט מענגע פון ​​נומער 5.
אַזוי דעמאָלט עס זעט סיזעאָף (מענגע). נו, אַז ס 20.
אַז ס 'פאקטיש ווי סיזעאָף בייסיקלי אַרבעט פֿאַר כּמעט אַלע פאלן.
סיזעאָף איז נישט אַ פֿונקציע; עס ס אַ אָפּעראַטאָר.
איר טאָן ניט רופן די סיזעאָף פונקציאָנירן.
סיזעאָף (ינט), דער קאַמפּיילער וועט נאָר איבערזעצן אַז צו 4.
גאַט עס? אָוקיי.
>> [תּלמיד] אזוי וואָס איז די חילוק צווישן סיזעאָף (מענגע) אין הויפּט און אין פו?
דאס איז ווייַל מיר רע געזאגט סיזעאָף (מענגע), וואָס איז פון טיפּ ינט *,
וועראַז די מענגע אַראָפּ דאָ איז ניט פון טיפּ ינט *, עס ס אַ ינט מענגע.
>> [תּלמיד] אזוי אויב איר האט דעם פּאַראַמעטער אין מענגע [] אַנשטאָט פון ינט * מענגע,
וואָלט וואָס מיינען אַז איר קען נאָך טוישן מענגע ווייַל איצט עס ס אַ טייַטל?
[באָוודען] ווי דעם? >> [תּלמיד] יאָ. קענען איר ענדערן מענגע ין די פֿונקציע איצט?
[באָוודען] איר קען טוישן מענגע אין ביידע פאלן.
אין ביידע פון ​​די קאַסעס איר זענט פֿרייַ צו זאָגן מענגע [4] = 0.
[תּלמיד] אבער קענען איר מאַכן מענגע פונט צו עפּעס אַנדערש?
[באָוודען] טאַקע. יאָ. אין יעדער פאַל - >> [תּלמיד] יאָ.
[באָוודען] די דיסטינגקשאַן צווישן מענגע [] און אַ ינט * מענגע, עס איז גאָרניט.
איר קענען אויך באַקומען עטלעכע מולטידימענסיאָנאַל מענגע אין דאָ
פֿאַר עטלעכע באַקוועם סינטאַקס, אָבער עס ס נאָך נאָר אַ טייַטל.
דאס מיטל אַז איך בין פֿרייַ צו טאָן מענגע = מאַללאָק (סיזעאָף (ינט)); און איצט פונט ערגעץ אַנדערש.
אבער פּונקט ווי ווי דעם אַרבעט אויף אייביק און שטענדיק,
טשאַנגינג דעם מענגע דורך מאכן עס פונט צו עפּעס אַנדערש
טוט נישט טוישן דעם מענגע אַראָפּ דאָ ווייַל עס ס אַ קאָפּיע פון ​​דעם אַרגומענט,
עס ס נישט אַ טייַטל צו אַז אַרגומענט.
און פאקטיש, פּונקט ווי מער אָנווייַז אַז עס ס 'פּונקט דער זעלביקער -
מיר שוין געזען וואָס דרוקן מענגע פּרינץ -
וואָס אויב מיר דרוקן דעם אַדרעס פון די מענגע אָדער די אַדרעס פון די אַדרעס פון די מענגע
צו אָדער פון יענע?
זאל ס איגנאָרירן דאָס איין.
אָוקיי. דאס איז פייַן. עס ס איצט פליסנדיק. / אַ.אָוט.
פּרינטינג מענגע, דעמאָלט דרוקן די אַדרעס פון די מענגע, זענען די זעלבע זאַך.
מענגע נאָר טוט נישט עקזיסטירן.
עס ווייסט ווען איר ניטאָ דרוקן מענגע, איר ניטאָ דרוקן די סימבאָל וואָס רעפערס צו יענע 20 ביטעס.
פּרינטינג די אַדרעס פון די מענגע, געזונט, מענגע טוט נישט עקזיסטירן.
עס טוט נישט האָבן אַן אַדרעס, אַזוי עס נאָר פּרינץ די אַדרעס פון יענע 20 ביטעס.
ווי באַלד ווי איר צונויפנעמען אַראָפּ, ווי אין דיין צונויפגעשטעלט בוגגי4. / אַ.אָוט,
מענגע איז נאַנאַגזיסטאַנט.
פּאָינטערס עקזיסטירן. ערייז טאָן ניט.
די בלאַקס פון זכּרון רעפּריזענטינג די מענגע נאָך עקזיסטירן,
אָבער די בייַטעוודיק מענגע און וועריאַבאַלז פון וואָס טיפּ טאָן ניט עקזיסטירן.
יענע זענען ווי די הויפּט דיפעראַנסיז צווישן ערייז און פּוינטערז
ביסט ווי באַלד ווי איר מאַכן פונקציאָנירן רופט, עס איז קיין חילוק.
אבער ין פון די פֿונקציע אַז די מענגע זיך איז דערקלערט, סיזעאָף אַרבעט דיפערענטלי
זינט איר ניטאָ דרוקן די גרייס פון די בלאַקס אַנשטאָט פון די גרייס פון דער טיפּ,
און איר קענען נישט טוישן עס ווייַל עס ס אַ סימבאָל.
פּרינטינג די זאַך און די אַדרעס פון די זאַך פּרינץ די זעלבע זאַך.
און אַז ס 'שיין פיל עס.
[תּלמיד] קען איר זאָגן אַז איינער מער צייַט?
איך זאל האָבן מיסט עפּעס.
פּרינטינג מענגע און אַדרעס פון מענגע פּרינץ די זעלבע זאַך,
וועראַז אויב איר דרוקן אַ טייַטל קעגן די אַדרעס פון די טייַטל,
די איין זאַך פּרינץ די אַדרעס פון וואָס איר ניטאָ פּוינטינג צו,
די אנדערע פּרינץ די אַדרעס פון די טייַטל אויף דעם אָנלייגן.
איר קענען טוישן אַ טייַטל; איר קענען נישט טוישן אַ מענגע סימבאָל.
און סיזעאָף טייַטל איז געגאנגען צו דרוקן די גרייס פון וואָס טייַטל טיפּ.
אַזוי ינט * פּ סיזעאָף (פּ) איז געגאנגען צו דרוקן 4,
אָבער ינט מענגע [5] דרוק סיזעאָף (מענגע) איז געגאנגען צו דרוקן 20.
[תּלמיד] אזוי ינט מענגע [5] וועט דרוקן 20? >> יא.
אַז ס וואָס ין פון בוגגי4 ווען עס געניצט צו זייַן סיזעאָף (מענגע)
דאָס איז געווען טאן איך <20, וואָס איז נישט וואָס מיר געוואלט.
מיר וועלן איך <5. >> [תּלמיד] אָוקיי.
[באָוודען] און דעמאָלט ווי באַלד ווי איר אָנהייב גייט פארביי אין די פאַנגקשאַנז,
אויב מיר האט ינט * פּ = מענגע;
ין פון דעם פֿונקציע, מיר קענען בייסיקלי נוצן פּ און מענגע אין פּונקט דער זעלביקער וועגן,
אַחוץ פֿאַר די סיזעאָף פּראָבלעם און די טשאַנגינג פּראָבלעם.
אבער פּ [0] = 1; איז די זעלבע ווי געזאגט מענגע [0] = 1;
און ווי באַלד ווי מיר זאָגן פו (מענגע); אָדער פו (פּ);
ין פון די פו פונקציאָנירן, דאָס איז די זעלבע רופן צוויי מאָל.
עס איז קיין חילוק צווישן די צוויי רופט.
>> אַלעמען גוט אויף וואָס? אָוקיי.
מיר האָבן 10 מינוט.
>> מיר וועט פּרובירן צו באַקומען דורך דעם העקער טיפּער פּראָגראַם,
דעם וועבזייַטל, וואָס זענען געקומען אויס לעצטע יאָר אָדער עפּעס.
עס ס נאָר געמיינט צו זייַן ווי איר טיפּ ראַנדאַמלי און עס פּרינץ אויס -
וועלכער טעקע עס כאַפּאַנז צו האָבן לאָודיד איז וואָס עס קוקט ווי איר ניטאָ טייפּינג.
עס קוקט ווי עטלעכע מין פון אַפּערייטינג סיסטעם קאָד.
אַז ס וואָס מיר ווילן צו מאַכשער.
איר זאָל האָבן אַ ביינערי עקסעקוטאַבלע געהייסן האַקקער_טיפּער
וואָס נעמט אין אַ איין אַרגומענט, דער טעקע צו "העקער טיפּ".
פליסנדיק די עקסעקוטאַבלע זאָל קלאָר די פאַרשטעלן
און דעמאָלט דרוקן אויס איין כאַראַקטער פון די דורכגעגאנגען-אין טעקע יעדער צייַט דער באַניצער דריקט אַ שליסל.
אַזוי וועלכער שליסל איר דריקן, עס זאָל וואַרפן אַוועק און אַנשטאָט דרוקן אַ כאַראַקטער פון דער טעקע
וואָס איז דער אַרגומענט.
איך וועט שיין פיל זאָגן איר וואָס די זאכן מיר רע געגאנגען צו דאַרפֿן צו וויסן זענען.
אבער מיר ווילן צו טשעק אויס די טערמיאָס ביבליאָטעק.
איך האב קיינמאָל געניצט דעם ביבליאָטעק אין מיין גאַנץ לעבן, אַזוי עס האט זייער מינימאַל צוועקן.
אבער דאָס איז געגאנגען צו זייַן די ביבליאָטעק מיר קענען נוצן צו וואַרפן אַוועק די כאַראַקטער איר שלאָגן
ווען איר זענט טייפּינג אין נאָרמאַל ין
אַזוי האַקקער_טיפּער.ק, און מיר רע געגאנגען צו ווילן צו # אַרייַננעמען <סטדיאָ.ה>.
קוקן בייַ די מענטש בלאַט פֿאַר טערמיאָס - אַם געסינג עס ס וואָקזאַל אַס אָדער עפּעס -
איך טאָן ניט וויסן ווי צו לייענען עס.
קוקן בייַ דעם, עס זאגט צו אַרייַננעמען די 2 טעקעס, אַזוי מיר וועט טאָן וואָס.
>> ערשטער זאַך ערשטער, מיר ווילן צו נעמען אין אַ איין אַרגומענט, וואָס איז די טעקע מיר זאָל עפענען.
אַזוי וואָס טאָן איך ווילן צו טאָן? ווי טאָן איך טשעק צו זען איך האָבן אַ איין אַרגומענט?
[תּלמיד] אויב אַרגק יקוואַלז עס. >> [באָוודען] יאָ.
אַזוי אויב (אַרגק! = 2) פּרינטף ("באַניץ:% s [טעקע צו עפענען]").
אַזוי איצט אויב איך לויפן דעם אָן ערלויבעניש אַ רגע אַרגומענט - אָה, איך דאַרפֿן די נייַ שורה -
איר וועט זען עס זאגט באַניץ:. / האַקקער_טיפּער,
און דעריבער די רגע אַרגומענט זאָל זייַן דער טעקע איך ווילן צו עפענען.
איצט וואָס טאָן איך טאָן?
איך ווילן צו לייענען פון דעם טעקע. ווי טאָן איך לייענען פון אַ טעקע?
[תּלמיד] איר עפענען עס ערשטער. >> יאָ.
אַזוי פאָפּען. וואָס טוט פאָפּען קוק ווי?
[תּלמיד] פילענאַמע. >> [באָוודען] פילענאַמע איז געגאנגען צו זייַן אַרגוו [1].
[תּלמיד] און דעמאָלט וואָס איר ווילן צו טאָן מיט אים, אַזוי דער - >> [באָוודען] יאָ.
אַזוי אויב איר האט ניט געדענקען, איר קען נאָר טאָן מענטש פאָפּען,
ווו עס ס געגאנגען צו זייַן אַ קאָנסט טשאַר * דרך ווו דרך איז פילענאַמע,
קאָנסט טשאַר * מאָדע.
אויב איר פּאַסירן צו נישט געדענקען וואָס מאָדע איז, דעריבער איר קענען קוקן פֿאַר מאָדע.
ין פון מענטש בלעטער, די צעהאַקן כאַראַקטער איז וואָס איר קענען נוצן צו זוכן פֿאַר זאכן.
אַזוי איך טיפּ / מאָדע צו זוכן פֿאַר מאָדע.
ען און ען ביסט וואָס איר קענען נוצן צו ציקל דורך די זוכן שוועבעלעך.
דאָ עס זאגט דער אַרגומענט מאָדע פונקטן צו אַ שטריקל
אָנהייב מיט איינער פון די פאלגענדע סיקוואַנסיז.
אַזוי ר, עפֿן טעקסט טעקע פֿאַר לייענען. אַז ס וואָס מיר ווילן צו טאָן.
פֿאַר לייענען, און איך ווילן צו קראָם אַז.
די זאַך איז געגאנגען צו זייַן אַ טעקע *. איצט וואָס טאָן איך ווילן צו טאָן?
געבן מיר אַ רגע.
אָוקיי. איצט וואָס טאָן איך ווילן צו טאָן?
[תּלמיד] קוק אויב עס ס נאַל. >> [באָוודען] יאָ.
קיין צייַט איר עפענען אַ טעקע, מאַכן זיכער אַז איר ניטאָ הצלחה קענען צו עפענען עס.
>> איצט איך ווילן צו טאָן אַז טערמיאָס שטאָפּן ווו איך ווילן צו ערשטער לייענען מיין קראַנט סעטטינגס
און ראַטעווען יענע אין עפּעס, דעמאָלט איך ווילן צו טוישן מיין סעטטינגס
צו וואַרפן אַוועק קיין כאַראַקטער וואָס איך טיפּ,
און דעמאָלט איך ווילן צו דערהייַנטיקן יענע סעטטינגס.
און דעמאָלט אין די סוף פון די פּראָגראַם, איך ווילן צו טוישן צוריק צו מיין אָריגינעל סעטטינגס.
אַזוי די סטרוקט איז געגאנגען צו זייַן פון טיפּ טערמיאָס, און איך בין געגאנגען צו ווילן צוויי פון יענע.
דער ערשטער איינער איז געגאנגען צו זייַן מיין קוררענט_סעטטינגס,
און דעריבער זיי ניטאָ געגאנגען צו זייַן מיין האַקקער_סעטטינגס.
ערשטער, איך בין געגאנגען צו ווילן צו ראַטעווען מיין קראַנט סעטטינגס,
דעמאָלט איך בין געגאנגען צו ווילן צו דערהייַנטיקן האַקקער_סעטטינגס,
און דעמאָלט וועג אין די סוף פון מיין פּראָגראַם, איך ווילן צו צוריקקומען צו קראַנט סעטטינגס.
אַזוי שפּאָרן קראַנט סעטטינגס, די וועג וואָס אַרבעט, מיר מענטש טערמיאָס.
מיר זען אַז מיר האָבן דעם ינט טקסעטאַטטר, ינט טקגעטאַטטר.
איך פאָרן אין אַ טערמיאָס סטרוקט דורך זייַן טייַטל.
די וועג דאָס וועט קוק איז - ייוו שוין פארגעסן וואָס די פֿונקציע איז גערופן.
קאָפּי און פּאַפּ עס.
אַזוי טקגעטאַטטר, דעמאָלט איך ווילן צו פאָרן אין די סטרוקט אַז איך בין שפּאָרן די אינפֿאָרמאַציע אין,
וואָס איז געגאנגען צו זייַן קוררענט_סעטטינגס,
און דער ערשטער אַרגומענט איז די טעקע דעסקריפּטאָר פֿאַר די זאַך איך ווילן צו ראַטעווען די אַטראַביוץ פון.
וואָס דער טעקע דעסקריפּטאָר איז איז ווי קיין מאָל איר עפענען אַ טעקע, עס געץ אַ טעקע דעסקריפּטאָר.
ווען איך פאָפּען אַרגוו [1], עס געץ אַ טעקע דעסקריפּטאָר וואָס איר זענט רעפעראַנסינג
ווען איר ווילן צו לייענען אָדער שרייַבן צו עס.
אַז ס 'נישט דער טעקע דעסקריפּטאָר איך ווילן צו נוצן דאָ.
עס זענען דרייַ טעקע דעסקריפּטאָרס איר האָבן דורך פעליקייַט,
וואָס זענען נאָרמאַל אין, נאָרמאַל אויס, און נאָרמאַל טעות.
דורך פעליקייַט, איך טראַכטן עס ס נאָרמאַל אין איז 0, נאָרמאַל אויס איז 1, און נאָרמאַל טעות איז 2.
אַזוי וואָס טאָן איך ווילן צו טוישן די סעטטינגס פון?
איך ווילן צו טוישן די סעטטינגס פון ווען איך שלאָגן אַ כאַראַקטער,
איך ווילן עס צו וואַרפן אַז כאַראַקטער אַוועק אַנשטאָט פון דרוקן עס צו די פאַרשטעלן.
וואָס טייַך - נאָרמאַל אין, נאָרמאַל אויס, אָדער נאָרמאַל טעות -
ריספּאַנדז צו זאכן ווען איך דרוקן בייַ די קלאַוויאַטור? >> [תּלמיד] סטאַנדאַרד ין >> יאָ.
אַזוי איך קענען אָדער טאָן 0 אָדער איך קענען טאָן סטדין.
איך בין געטינג די קוררענט_סעטטינגס פון נאָרמאַל ין
>> איצט איך ווילן צו דערהייַנטיקן יענע סעטטינגס,
אַזוי ערשטער איך וועט קאָפּיע אין האַקקער_סעטטינגס וואָס מיין קוררענט_סעטטינגס זענען.
און ווי סטרוקץ אַרבעט איז עס וועט נאָר נאָכמאַכן.
דאס קאפיעס אַלע פון ​​די פעלדער, ווי איר וואָלט דערוואַרטן.
>> איצט איך ווילן צו דערהייַנטיקן עטלעכע פון ​​די פעלדער.
קוקן בייַ טערמיאָס, איר וואָלט האָבן צו לייענען דורך אַ פּלאַץ פון דעם
נאָר צו זען וואָס איר וואָלט ווילן צו קוקן פֿאַר,
אָבער די פלאַגס איר ניטאָ געגאנגען צו ווילן צו קוקן פֿאַר ביסט ווידערקאָל,
אַזוי עקאָו עקאָו אַרייַנשרייַב אותיות.
ערשטער איך וועלן צו שטעלן - ייוו שוין פארגעסן וואָס די פעלדער זענען.
דאס איז וואָס די סטרוקט קוקט ווי.
אַזוי אַרייַנשרייַב מאָדעס איך טראַכטן מיר ווילן צו טוישן.
מיר וועט קוקן אין די לייזונג צו מאַכן זיכער אַז ס וואָס מיר ווילן צו טוישן.
מיר ווילן צו טוישן לפלאַג אין סדר צו פאַרמייַדן נידינג צו קוק דורך אַלע די.
מיר ווילן צו טוישן היגע מאָדעס.
איר וואָלט האָבן צו לייענען דורך דאָס גאנצע זאַך צו פֿאַרשטיין ווו אַלץ געהערט
אַז מיר ווילן צו טוישן.
אבער עס ס 'ין פון היגע מאָדעס ווו מיר רע געגאנגען צו ווילן צו טוישן וואָס.
אַזוי האַקקער_סעטטינגס.קק_למאָדע איז וואָס עס ס גערופן.
ק_לפלאַג.
דאס איז ווו מיר באַקומען אין ביטוויסע אָפּערייטערז.
מיר רע מין פון אויס פון צייַט, אָבער מיר וועט גיין דורך עס פאַקטיש שנעל.
דאס איז ווו מיר באַקומען אין ביטוויסע אָפּערייטערז,
ווו איך טראַכטן איך געזאגט איינער צייַט לאַנג צוריק אַז ווען איר אָנהייב דילינג מיט פלאַגס,
איר ניטאָ געגאנגען צו זייַן ניצן ביטוויסע אָפּעראַטאָר אַ פּלאַץ.
יעדער ביסל אין די פאָן קאָראַספּאַנדז צו עטלעכע סאָרט פון נאַטור.
אַזוי דאָ, דעם פאָן האט אַ בינטל פון פאַרשידענע זאכן, ווו אַלע פון ​​זיי מיינען עפּעס אַנדערש.
אבער וואָס איך ווילן צו טאָן איז נאָר דרייַ אַוועק די ביסל וואָס קאָראַספּאַנדז צו עקאָו.
אַזוי צו ווענדן אַז אַוועק איך טאָן & = ¬ עקאָו.
פאקטיש, איך טראַכטן עס ס ווי טעטשאָ אָדער עפּעס. איך בין נאָר געגאנגען צו קאָנטראָלירן ווידער.
איך קענען טערמיאָס עס. עס ס נאָר עקאָו.
עקאָו איז געגאנגען צו זייַן אַ איין ביסל.
¬ עקאָו איז געגאנגען צו מיינען אַלע ביטן זענען באַשטימט צו 1, וואָס מיטל אַלע פלאַגס זענען באַשטימט צו אמת
אַחוץ פֿאַר די עקאָו ביסל.
דורך סאָף מיין היגע פלאַגס מיט דעם, עס מיטל אַלע פלאַגס וואָס זענען דערווייַל שטעלן צו אמת
וועט נאָך זייַן שטעלן צו אמת.
אויב מיין עקאָו פאָן איז באַשטימט צו אמת, דאַן דעם איז דאַווקע שטעלן צו פאַלש אויף די עקאָו פאָן.
אַזוי דעם שורה פון קאָד נאָר טורנס אַוועק די עקאָו פאָן.
די אנדערע שורות פון קאָד, איך וועט נאָר נאָכמאַכן זיי אין די אינטערעס פון צייַט און דעריבער דערקלערן זיי.
אין די לייזונג, ער האט געזאגט 0.
עס ס מיסטאָמע בעסער צו בפירוש זאָגן סטדין.
>> נאָטיץ אַז איך בין אויך טאן עקאָו | יקאַנאָן דאָ.
יקאַנאָן רעפערס צו עפּעס באַזונדער, וואָס מיטל קאַנאַנאַקאַל מאָדע.
וואָס קאַנאַנאַקאַל מאָדע מיטל איז יוזשאַוואַלי ווען איר ניטאָ טייפּינג אויס די באַפֿעלן שורה,
נאָרמאַל אין טוט נישט פּראָצעס עפּעס ביז איר שלאָגן נעוולינע.
אַזוי ווען איר טאָן געצטרינג, איר טיפּ אַ בינטל פון זאכן, דעריבער איר שלאָגן נעוולינע.
אַז ס ווען עס ס געשיקט צו נאָרמאַל ין
אַז ס די פעליקייַט.
ווען איך קער אַוועק קאַנאַנאַקאַל מאָדע, איצט יעדער איין כאַראַקטער איר דריקן
איז וואָס געץ פּראַסעסט, וואָס איז יוזשאַוואַלי מין פון שלעכט ווייַל עס ס פּאַמעלעך צו פּראָצעס די זאכן,
וואָס איז וואָס עס ס 'גוט צו באַפער עס אין גאנצע שורות.
אבער איך ווילן יעדער כאַראַקטער צו זייַן פּראַסעסט
זינט איך טאָן ניט ווילן עס צו וואַרטן פֿאַר מיר צו שלאָגן נעוולינע
איידער עס פּראַסעסאַז אַלע די אותיות איך ווע שוין טייפּינג.
דאס טורנס אַוועק קאַנאַנאַקאַל מאָדע.
דאס שטאָפּן נאָר מיטל ווען עס פאקטיש פּראַסעסאַז אותיות.
דאס מיטל פּראָצעס זיי מיד; ווי באַלד ווי איך בין טייפּינג זיי, פּראָצעס זיי.
און דאָס איז די פֿונקציע וואָס איז אַפּדייטינג מיין סעטטינגס פֿאַר נאָרמאַל אין,
און טקסאַ מיטל טאָן עס רעכט איצט.
די אנדערע אָפּציעס זענען וואַרטן ביז אַלץ וואָס איז דערווייַל אויף די טייַך איז פּראַסעסט.
וואָס טוט ניט טאַקע ענין.
נאָר רעכט איצט טוישן מיין סעטטינגס צו זייַן וועלכער איז דערווייַל אין האַקקער_טיפּער_סעטטינגס.
איך טרעפן איך גערופן עס האַקקער_סעטטינגס, אַזוי לאָזן ס טוישן וואָס.
טוישן אַלץ צו האַקקער_סעטטינגס.
>> איצט בייַ די סוף פון אונדזער פּראָגראַם מיר רע געגאנגען צו ווילן צו צוריקקומען
צו וואָס איז דערווייַל ין פון נאָרמאַל_סעטטינגס,
וואָס איז געגאנגען צו נאָר קוק ווי & נאָרמאַל_סעטטינגס.
נאָטיץ איך האָבן נישט געביטן קיין פון מיין נאָרמאַל_סעטטינגס זינט ערידזשנאַלי געטינג עס.
דעריבער צו נאָר טוישן זיי צוריק, איך פאָרן זיי צוריק אין די סוף.
דאס איז געווען די דערהייַנטיקן. אָוקיי.
>> איצט ין פון דאָ איך וועט נאָר דערקלערן די קאָד אין די אינטערעס פון צייַט.
עס ס נישט אַז פיל קאָד.
מיר זען מיר לייענען אַ כאַראַקטער פון דער טעקע. מיר גערופן עס F.
איצט איר קענען מענטש פגעטק, אָבער ווי פגעטק איז געגאנגען צו אַרבעט
איז נאָר עס ס געגאנגען צו צוריקקומען די כאַראַקטער וואָס איר נאָר לייענען אָדער עאָף,
וואָס קאָראַספּאַנדז צו דער סוף פון דער טעקע אָדער עטלעכע טעות געשעעניש.
מיר זענען לופּינג, ממשיך צו לייענען אַ איין כאַראַקטער פון דער טעקע,
ביז מיר ווע לויפן אויס פון אותיות צו לייענען.
און בשעת מיר רע טאן אַז, מיר וואַרטן אויף אַ איין כאַראַקטער פון נאָרמאַל ין
יעדער איין מאָל איר טיפּ עפּעס בייַ די באַפֿעל שורה,
אַז ס לייענען אין אַ כאַראַקטער פון נאָרמאַל ין
דעמאָלט פּוטטשאַר איז נאָר געגאנגען צו שטעלן די טשאַר מיר לייענען זיך דאָ פון דער טעקע צו נאָרמאַל אויס.
איר קענען מענטש פּוטטשאַר, אָבער עס ס נאָר פּאַטינג צו נאָרמאַל אויס, עס ס דרוקן אַז כאַראַקטער.
איר קען אויך נאָר טאָן פּרינטף ("% C", C); זעלביקער געדאַנק.
אַז ס 'געגאנגען צו טאָן דעם פאַרנעם פון אונדזער אַרבעט.
>> די לעצטע זאַך מיר רע געגאנגען צו ווילן צו טאָן איז נאָר פקלאָסע אונדזער טעקע.
אויב איר טאָן ניט פקלאָסע, אַז ס אַ זכּרון רינען.
מיר ווילן צו פקלאָסע דער טעקע מיר ערידזשנאַלי געעפנט, און איך טראַכטן אַז ס עס.
אויב מיר מאַכן אַז, איך שוין גאַט פּראָבלעמס.
זאל ס זען.
וואָס האט עס באַקלאָגנ זיך וועגן?
דערוואַרט 'ינט' אָבער אַרגומענט איז פון טיפּ 'סטרוקט _יאָ_פילע *'.
מיר וועט זען אויב אַז מעשים.
נאָר ערלויבט אין ק99. אַוגה. אָוקיי, מאַכן האַקקער_טיפּער.
איצט מיר באַקומען מער נוצלעך דיסקריפּשאַנז.
אַזוי נוצן פון אַנדיקלערד יידענטאַפייער 'נאָרמאַל_סעטטינגס'.
איך האט ניט רופן עס נאָרמאַל_סעטטינגס. איך גערופן עס קוררענט_סעטטינגס.
אַזוי לאָזן ס טוישן אַלע פון ​​וואָס.
איצט גייט פארביי אַרגומענט.
איך וועט מאַכן דעם 0 פֿאַר איצט.
אָוקיי. . / האַקקער_טיפּער קפּ.ק.
איך אויך האט נישט קלאָר די פאַרשטעלן אין די אָנהייב.
אבער איר קענען קוקן צוריק צו די לעצטע פּראָבלעם שטעלן צו זען ווי איר קלאָר די פאַרשטעלן.
עס ס נאָר דרוקן עטלעכע אותיות
בשעת דעם איז טאן וואָס איך ווילן צו טאָן.
אָוקיי.
און טראכטן וועגן וואָס דאָס דארף צו זייַן 0 אַנשטאָט פון סטדין,
וואָס זאָל זייַן # דעפינירן 0,
דאָס איז קאַמפּליינינג אַז -
פאר ווען איך געזאגט אַז דאָרט ס טעקע דעסקריפּטאָרס אָבער דעמאָלט איר אויך האָבן דיין טעקע *,
אַ טעקע דעסקריפּטאָר איז נאָר אַ איין ינטעגער,
וועראַז אַ טעקע * האט אַ גאַנץ בינטל פון שטאָפּן פארבונדן מיט אים.
די סיבה מיר דאַרפֿן צו זאָגן 0 אַנשטאָט פון סטדין
איז אַז סטדין איז אַ טעקע * וואָס ווייזט צו די זאַך וואָס איז רעפעראַנסינג טעקע דעסקריפּטאָר 0.
אַזוי אַפֿילו אַרויף דאָ ווען איך טאָן פאָפּען (אַרגוו [1], איך בין געטינג אַ טעקע * צוריק.
אבער ערגעץ אין אַז טעקע * איז אַ זאַך קאָראַספּאַנדינג צו דער טעקע דעסקריפּטאָר פֿאַר אַז טעקע.
אויב איר קוק אין דער מענטש בלאַט פֿאַר עפענען, אַזוי איך טראַכטן איר וועט האָבן צו טאָן מענטש 3 עפענען - נאָופּ -
מענטש 2 עפענען - יאָ.
אויב איר קוק אין די בלאַט פֿאַר עפענען, עפענען איז ווי אַ נידעריקער-מדרגה פאָפּען,
און עס ס אומגעקערט די פאַקטיש טעקע דעסקריפּטאָר.
פאָפּען טוט אַ בינטל פון שטאָפּן אויף שפּיץ פון עפענען,
וואָס אַנשטאָט פון אומגעקערט נאָר אַז טעקע דעסקריפּטאָר קערט אַ גאַנץ טעקע * טייַטל
ין פון וואָס איז אונדזער ביסל טעקע דעסקריפּטאָר.
אַזוי נאָרמאַל אין רעפערס צו דער טעקע * זאַך,
וועראַז 0 רעפערס צו נאָר דער טעקע דעסקריפּטאָר נאָרמאַל אין זיך.
>> שאלות?
[לאַפס] בלו דורך וואָס.
אַלע רעכט. מיר רע געטאן. [לאַפס]
>> [CS50.TV]