Tip:
Highlight text to annotate it
X
[Powered by Google Translate] [קס50 ביבליאָטעק]
[נאַטע האַרדיסאָן] [האַרוואַרד אוניווערסיטעט]
[דאס איז קס50. CS50.TV]
די קס50 ביבליאָטעק איז אַ נוציק געצייַג וואָס מיר האָבן אינסטאַלירן אויף די אַפּפּליאַנסע
צו מאַכן עס גרינגער פֿאַר איר צו שרייַבן מגילה אַז פּינטלעך ניצערס פֿאַר אַרייַנשרייַב.
אין דעם ווידעא, מיר וועט ציען צוריק דעם פאָרהאַנג און קוק אין וואָס פּונקט איז אין די קס50 ביבליאָטעק.
>> אין דעם ווידעא אויף C לייברעריז, מיר רעדן וועגן ווי איר # אַרייַננעמען כעדערז טעקעס
פון דער ביבליאָטעק אין דיין מקור קאָד,
און דאַן איר לינק מיט אַ ביינערי ביבליאָטעק טעקע בעשאַס די פֿאַרבינדונג לבֿנה
פון דער זאַמלונג פּראָצעס.
די כעדער טעקעס ספּעציפיצירן די צובינד פון דער ביבליאָטעק.
וואָס איז, זיי דעטאַל אַלע פון די רעסורסן אַז די ביבליאָטעק האט פאַראַנען פֿאַר איר צו נוצן,
ווי פונקציאָנירן דעקלעריישאַנז, קאַנסטאַנץ, און דאַטן טייפּס.
די ביינערי ביבליאָטעק טעקע כּולל די ימפּלאַמענטיישאַן פון דער ביבליאָטעק,
וואָס איז צונויפגעשטעלט פון דער ביבליאָטעק ס 'כעדער טעקעס און די ביבליאָטעק ס. C מקור קאָד טעקעס.
>> די ביינערי ביבליאָטעק טעקע איז נישט זייער טשיקאַווע צו קוקן בייַ זינט עס ס, געזונט, אין ביינערי.
אַזוי, לאָזן ס נעמען אַ קוק אין די כעדער טעקעס פֿאַר די ביבליאָטעק אַנשטאָט.
אין דעם פאַל, דאָרט ס נאָר איין כעדער טעקע גערופן קס50.ה.
מיר ווע אינסטאַלירן עס אין דער באַניצער אַרייַננעמען Directory
צוזאמען מיט די אנדערע סיסטעם לייברעריז 'כעדער טעקעס.
>> איינער פון די ערשטער זאכן איר וועט באַמערקן איז אַז קס50.ה # כולל כעדער טעקעס פון אנדערע לייברעריז -
לאָזנ שווימען, לימאַץ, נאָרמאַל באָאָל, און נאָרמאַל ליב.
ווידער, פאלגענדע דער פּרינציפּ פון נישט ריינווענטינג די ראָד,
מיר ווע געבויט די קס0 ביבליאָטעק ניצן מכשירים אַז אנדערע צוגעשטעלט פֿאַר אונדז.
>> דער ווייַטער זאַך איר וועט זען אין די ביבליאָטעק איז אַז מיר דעפינירן אַ נייַ טיפּ גערופן "שטריקל."
דאס שורה טאַקע נאָר קריייץ אַ אַליאַס פֿאַר די טשאַר * טיפּ,
אַזוי עס טוט נישט מאַדזשיקאַלי ימביו די נייַ שטריקל טיפּ מיט אַטראַביוץ
קאַמאַנלי פארבונדן מיט שטריקל אַבדזשעקס אין אנדערע שפּראַכן,
אַזאַ ווי לענג.
די סיבה מיר ווע געטאן דעם איז צו שילד נייַ פּראָוגראַמערז פון די גאָרי פרטים
פון פּוינטערז ביז זיי ניטאָ גרייט.
>> דער ווייַטער טייל פון די כעדער טעקע איז די דערקלערונג פון דעם פאַנגקשאַנז
אַז די קס50 ביבליאָטעק גיט צוזאמען מיט דאַקיומענטיישאַן.
נאָטיץ די מדרגה פון דעטאַל אין די באַמערקונגען דאָ.
דאס איז סופּער וויכטיק אַזוי אַז מען וויסן ווי צו נוצן די פאַנגקשאַנז.
מיר דערקלערן, אין דרייַ, פאַנגקשאַנז צו פּינטלעך דער באַניצער און צוריקקומען טשאַרס, דאַבאַלז, פלאָוץ, ינץ,
לאַנג לאָנגס, און סטרינגס, ניצן אונדזער אייגן שטריקל טיפּ.
ווייַטערדיק דער פּרינציפּ פון אינפֿאָרמאַציע כיידינג,
מיר האָבן שטעלן אונדזער דעפֿיניציע אין אַ באַזונדער. C ימפּלאַמענטיישאַן טעקע - קס50.ק--
ליגן אין דער באַניצער מקור וועגווייַזער.
מיר ווע צוגעשטעלט אַז טעקע אַזוי אַז איר קענען נעמען אַ קוק בייַ אים,
לערנען פון אים, און רעקאָמפּילע עס אויף פאַרשידענע מאשינען אויב איר ווילט,
אַפֿילו כאָטש מיר טראַכטן עס ס 'בעסער צו אַרבעטן אויף די אַפּפּליאַנסע פֿאַר דעם סאָרט.
סייַ ווי סייַ, לאָזן ס נעמען אַ קוק בייַ אים איצט.
>> די פאַנגקשאַנז געטטשאַר, געטדאָובלע, געטפלאָאַט, געטינט, און געטלאָנגלאָנג
זענען אַלע געבויט אויף שפּיץ פון די געצטרינג פונקציאָנירן.
עס טורנס אויס אַז זיי אַלע נאָכגיין יסענשאַלי דער זעלביקער מוסטער.
זיי נוצן אַ בשעת שלייף צו פּינטלעך דער באַניצער פֿאַר איין שורה פון אַרייַנשרייַב.
זיי צוריקקומען אַ ספּעציעל ווערט אויב דער באַניצער ינפּוץ אַ ליידיק שורה.
זיי פּרווון צו פּאַרס דער באַניצער ס אַרייַנשרייַב ווי די צונעמען טיפּ,
זייַן עס אַ טשאַר, אַ טאָפּל, אַ לאָזנ שווימען, אאז"ו ו
און דעריבער זיי אָדער צוריקקומען דער רעזולטאַט אויב די אַרייַנשרייַב איז הצלחה פּאַרסט
אָדער זיי רעפּראָמפּט דעם באַניצער.
>> אין אַ הויך גלייַך, עס איז גאָרנישט טאַקע טריקי דאָ.
איר זאל האָבן געשריבן סימילאַרלי סטראַקטשערד קאָד זיך אין דער פאַרגאַנגענהייַט.
טאָמער די מערסט קריפּטיק-קוקן טייל איז די ססקאַנף רופן אַז פּאַרסעס דער באַניצער ס אַרייַנשרייַב.
ססקאַנף איז טייל פון די אַרייַנשרייַב פֿאָרמאַט באַניצער משפּחה.
עס לעבן אין נאָרמאַל יאָ.ה, און זייַן אַרבעט איז צו פּאַרס אַ C שטריקל,
לויט צו אַ באַזונדער פֿאָרמאַט, סטאָרינג דער פּאַרסע רעזולטאַטן אין בייַטעוודיק
צוגעשטעלט דורך די קאָלער.
זינט די אַרייַנשרייַב פֿאָרמאַט באַניצער פאַנגקשאַנז זענען זייער נוצלעך, וויידלי געניצט פאַנגקשאַנז
וואָס זענען נישט סופּער ינטואַטיוו בייַ ערשטער,
מיר וועט גיין איבער ווי ססקאַנף אַרבעט.
>> דער ערשטער אַרגומענט צו ססקאַנף איז אַ טשאַר * - אַ טייַטל צו אַ כאַראַקטער.
פֿאַר די פֿונקציע צו אַרבעטן רעכט,
אַז כאַראַקטער זאָל זייַן דער ערשטער כאַראַקטער פון אַ C שטריקל,
טערמאַנייטיד מיט די נאַל \ 0 כאַראַקטער.
דאס איז די שטריקל צו פּאַרס
די רגע אַרגומענט צו ססקאַנף איז אַ פֿאָרמאַט שטריקל,
טיפּיקלי דורכגעגאנגען אין ווי אַ שטריקל קעסיידערדיק,
און איר זאל האָבן געזען אַ שטריקל ווי דעם איידער ווען ניצן פּרינטף.
א פּראָצענט צייכן אין די פֿאָרמאַט שטריקל ינדיקייץ אַ באַניצער ספּעסיפיער.
דער כאַראַקטער מיד פאלגענדע אַ פּראָצענט צייכן,
ינדיקייץ די C טיפּ אַז מיר ווילן ססקאַנף צו בייַטן צו.
אין געטינט, איר זען אַז עס איז אַ% ד און אַ% C.
דאס מיטל וואָס ססקאַנף וועט פּרובירן צו אַ דעצימאַל ינט - דער% ד - און אַ טשאַר - דער% C.
פֿאַר יעדער באַניצער ספּעסיפיער אין דעם פֿאָרמאַט שטריקל,
ססקאַנף יקספּעקץ אַ קאָראַספּאַנדינג אַרגומענט שפּעטער אין זייַן אַרגומענט רשימה.
אַז אַרגומענט מוזן פונט צו אַ אַפּראָופּרייטלי טייפּט אָרט
אין וואָס צו קראָם דער רעזולטאַט פון דעם באַניצער.
>> די טיפּיש וועג פון טאן דעם איז צו שאַפֿן אַ בייַטעוודיק אויף דעם אָנלייגן איידער די ססקאַנף רופן
פֿאַר יעדער נומער וואָס איר ווילן צו פּאַרס פון די שטריקל
און דאַן נוצן דעם אַדרעס אָפּעראַטאָר - די אַמפּערסאַנד - צו פאָרן פּוינטערז
צו יענע וועריאַבאַלז צו די ססקאַנף רופן.
איר קענען זען אַז אין געטינט מיר טאָן פּונקט דעם.
רעכט פאר די ססקאַנף רופן, מיר דערקלערן אַ ינט גערופן ען און אַ טשאַר רופן C אויף דעם אָנלייגן,
און מיר פאָרן פּוינטערז צו זיי אין די ססקאַנף רופן.
פּאַטינג די וועריאַבאַלז אויף דעם אָנלייגן איז בילכער איבער ניצן פּלאַץ אַלאַקייטיד
אויף די קופּע מיט מאַללאָק, זינט איר ויסמייַדן די אָוווערכעד פון די מאַללאָק רופן,
און איר טאָן ניט האָבן צו זאָרג וועגן ליקינג זכּרון.
אותיות נישט פּרעפיקסעד דורך אַ פּראָצענט צייכן טאָן נישט פּינטלעך באַניצער.
אלא זיי נאָר לייגן צו די פֿאָרמאַט באַשרייַבונג.
>> פֿאַר בייַשפּיל, אויב דעם פֿאָרמאַט שטריקל אין געטינט געווען אַ% ד אַנשטאָט,
ססקאַנף וואָלט קוקן פֿאַר דעם בריוו אַ נאכגעגאנגען דורך אַ ינט,
און בשעת עס וואָלט פּרווון צו בייַטן די ינט, עס וואָלט ניט טאָן עפּעס אַנדערש מיט די אַ.
דער בלויז אויסנאַם צו דעם איז ווהיטעספּאַסע.
ווייַס פּלאַץ אותיות אין די פֿאָרמאַט שטריקל גלייַכן קיין סומע פון ווהיטעספּאַסע -
אַפֿילו קיינער בייַ אַלע.
אַזוי, אַז ס וואָס די באַמערקונג דערמאנט עפשער מיט לידינג און / אָדער טריילינג ווהיטעספּאַסע.
אַזוי, בייַ דעם פונט עס קוקט ווי אונדזער ססקאַנף רופן וועט פּרובירן צו פּאַרס דער באַניצער ס אַרייַנשרייַב שטריקל
דורך קאָנטראָלירונג פֿאַר מעגלעך לידינג ווהיטעספּאַסע,
נאכגעגאנגען דורך אַ ינט וואָס וועט זייַן קאָנווערטעד און סטאָרד אין דער ינט בייַטעוודיק N
נאכגעגאנגען דורך עטלעכע סומע פון ווהיטעספּאַסע, און נאכגעגאנגען דורך אַ כאַראַקטער
סטאָרד אין די טשאַר בייַטעוודיק C.
>> וואָס וועגן די צוריקקומען ווערט?
ססקאַנף וועט פּאַרס דער אַרייַנשרייַב שורה פון אָנהייב צו ענדיקן,
סטאָפּפּינג ווען עס ריטשאַז דער סוף אָדער ווען אַ כאַראַקטער אין דעם אַרייַנשרייַב
טוט ניט גלייַכן אַ פֿאָרמאַט כאַראַקטער אָדער ווען עס קענען נישט מאַכן אַ באַניצער.
עס ס צוריקקומען ווערט איז געניצט צו איין ווען עס פארשטאפט.
אויב עס פארשטאפט, ווייַל עס ריטשט די סוף פון די אַרייַנשרייַב שטריקל
איידער מאכן קיין קאַנווערזשאַנז און איידער פיילינג צו גלייַכן טייל פון די פֿאָרמאַט שטריקל,
דעריבער די ספּעציעל קעסיידערדיק עאָף איז אומגעקערט.
אַנדערש, עס קערט די נומער פון מצליח קאַנווערזשאַנז,
וואָס קען זייַן 0, 1, אָדער 2, זינט מיר ווע געבעטן פֿאַר צוויי קאַנווערזשאַנז.
אין אונדזער פאַל, מיר ווילן צו מאַכן זיכער אַז דער באַניצער טייפּט אין אַ ינט און בלויז אַ ינט.
>> אַזוי, מיר ווילן ססקאַנף צו צוריקקומען 1. זען וואָס?
אויב ססקאַנף אומגעקערט 0, דעמאָלט קיין קאַנווערזשאַנז זענען געמאכט,
אַזוי דער באַניצער טייפּט עפּעס אנדערע ווי אַ ינט אין די אָנהייב פון די אַרייַנשרייַב.
אויב ססקאַנף קערט 2, דעמאָלט דער באַניצער האט רעכט טיפּ עס אין בייַ די אָנהייב פון די אַרייַנשרייַב,
אָבער זיי דעמאָלט טייפּט אין עטלעכע ניט-ווהיטעספּאַסע כאַראַקטער דערנאָכדעם
זינט דער% C באַניצער סאַקסידאַד.
וואַו, אַז ס 'גאַנץ אַ לאַנג דערקלערונג פֿאַר איין פֿונקציע רופן.
סייַ ווי סייַ, אויב איר ווילן מער אינפֿאָרמאַציע אויף ססקאַנף און זייַן סיבלינגז,
טשעק אויס די מענטש בלעטער, גוגל, אָדער ביידע.
עס זענען גורל פון פֿאָרמאַט שטריקל אָפּציעס,
און די קענען ראַטעווען איר אַ פּלאַץ פון מאַנואַל אַרבעט ווען טריינג צו פּאַרס סטרינגס אין סי
>> די לעצט פונקציאָנירן אין דער ביבליאָטעק צו קוקן אין איז געצטרינג.
עס טורנס אויס אַז געצטרינג איז אַ טריקי פונקציאָנירן צו שרייַבן רעכט,
אַפֿילו כאָטש עס מיינט ווי אַזאַ אַ פּשוט, פּראָסט אַרבעט.
פארוואס איז דאָס דער פאַל?
נו, לאָזן ס טראַכטן וועגן ווי מיר רע געגאנגען צו קראָם די שורה וואָס דער באַניצער טייפּס ין
זינט אַ שטריקל איז אַ סיקוואַנס פון טשאַרס,
מיר זאל וועלן צו קראָם עס אין אַ מענגע אויף דעם אָנלייגן,
אָבער מיר וואָלט דאַרפֿן צו וויסן ווי לאַנג די מענגע איז געגאנגען צו זייַן ווען מיר דערקלערן עס.
פּונקט אַזוי, אויב מיר ווילן צו לייגן עס אויף די קופּע,
מיר דאַרפֿן צו פאָרן צו מאַללאָק די נומער פון ביטעס מיר ווילן צו רעזערוו,
אָבער דעם איז אוממעגלעך.
מיר האָבן קיין געדאַנק ווי פילע טשאַרס דער באַניצער וועט טיפּ אין
איידער דער באַניצער פאקטיש טוט טיפּ זיי.
>> א נאיוו לייזונג צו דעם פּראָבלעם איז צו נאָר רעזערוו אַ גרויס פּייַדע פון פּלאַץ, זאָגן,
אַ בלאָק פון 1000 טשאַרס פֿאַר דעם באַניצער 'ס אַרייַנשרייַב,
אַסומינג אַז דער באַניצער וואָלט קיינמאָל טיפּ אין אַ שטריקל וואָס לאַנג.
דאס איז אַ שלעכט געדאַנק פֿאַר צוויי סיבות.
ערשטער, אַסומינג אַז ניצערס טיפּיקלי טאָן ניט טיפּ אין סטרינגס אַז לאַנג,
איר קען וויסט אַ פּלאַץ פון זכּרון.
אויף מאָדערן מאשינען, דאָס זאל ניט זייַן אַן אַרויסגעבן אויב איר טאָן דעם
אין איין אָדער צוויי אפגעזונדערט ינסטאַנסיז,
אָבער אויב איר ניטאָ גענומען באַניצער ס אַרייַנשרייַב אין אַ שלייף און סטאָרינג פֿאַר שפּעטער נוצן,
איר קענען געשווינד זויגן אַרויף אַ טאָן פון זכּרון.
אַדדיטיאָנאַללי, אויב דער פּראָגראַם איר ניטאָ שרייבן איז פֿאַר אַ קלענערער קאָמפּיוטער -
אַ מיטל ווי אַ סמאַרטפאָנע אָדער עפּעס אַנדערש מיט לימיטעד זכּרון -
דעם לייזונג וועט גרונט פּראָבלעמס אַ פּלאַץ פאַסטער.
די רגע, מער ערנסט סיבה צו ניט טאָן דעם איז אַז עס בלעטער דיין פּראָגראַם שפּירעוודיק
צו וואָס ס גערופן אַ באַפער לויפן באַפאַלן.
אין פּראָגראַממינג, אַ באַפער איז זכּרון געניצט צו טעמפּערעראַלי קראָם אַרייַנשרייַב אָדער רעזולטאַט דאַטן,
וואָס אין דעם פאַל איז אונדזער 1000-טשאַר פאַרשפּאַרן.
א באַפער לויפן אַקערז ווען דאַטן איז געשריבן פאַרגאַנגענהייַט די סוף פון די בלאָק.
>> פֿאַר בייַשפּיל, אויב אַ באַניצער פאקטיש טוט טיפּ אין מער ווי 1000 טשאַרס.
איר זאל האָבן איבערגעלעבט דעם אַקסאַדענאַלי ווען פּראָגראַממינג מיט ערייז.
אויב איר האָבן אַ מענגע פון 10 ינץ, גאָרנישט סטאַפּס איר פון טריינג צו לייענען אָדער שרייַבן
דער 15 ינט.
עס זענען קיין קאַמפּיילער וואָרנינגז אָדער ערראָרס.
די פּראָגראַם נאָר בלאַנדערז גלייַך פאָרויס און אַקסעססעס די זכּרון
ווו עס מיינט די 15 ינט וועט זייַן, און דאָס קענען אָווועררייט דיין אנדערע וועריאַבאַלז.
אין די ערגסט פאַל, איר קענען אָווועררייט עטלעכע פון דיין פּראָגראַם ס ינערלעך
קאָנטראָל מעקאַניזאַמז, קאָזינג דיין פּראָגראַם צו פאקטיש ויספירן פאַרשידענע ינסטראַקשאַנז
ווי איר בדעה.
>> איצט, עס ס נישט פּראָסט צו טאָן דעם אַקסאַדענאַלי,
אָבער דאָס איז אַ פערלי פּראָסט טעכניק וואָס שלעכט גייז נוצן צו ברעכן מגילה
און שטעלן בייזע קאָד אויף אנדערע מענטשן ס קאָמפּיוטערס.
דעריבער, מיר קענען נישט נאָר נוצן אונדזער נאיוו לייזונג.
מיר דאַרפֿן אַ וועג צו פאַרמייַדן אונדזער מגילה פון זייַענדיק שפּירעוודיק
צו אַ באַפער לויפן באַפאַלן.
צו טאָן דאָס, מיר דאַרפֿן צו מאַכן זיכער אַז אונדזער באַפער קענען וואַקסן ווי מיר לייענען
מער אַרייַנשרייַב פון דעם באַניצער.
די לייזונג? מיר נוצן אַ קופּע אַלאַקייטיד באַפער.
זינט מיר קענען רעסיזע עס ניצן די רעסיזע די רעאַללאָק פונקציאָנירן,
און מיר האַלטן שפּור פון צוויי נומערן - דער אינדעקס פון דער ווייַטער ליידיק שפּעלטל אין די באַפער
און די לענג אָדער קאַפּאַציטעט פון די באַפער.
מיר לייענען אין טשאַרס פון דעם באַניצער איין אין אַ צייַט ניצן די פגעטק פונקציאָנירן.
דער אַרגומענט די פגעטק פונקציאָנירן נעמט - סטדין - איז אַ דערמאָנען צו דער נאָרמאַל אַרייַנשרייַב שטריקל,
וואָס איז אַ פּרעקאָננעקטעד אַרייַנשרייַב קאַנאַל וואָס איז געניצט צו אַריבערפירן דעם באַניצער 'ס אַרייַנשרייַב
פון די וואָקזאַל צו די פּראָגראַם.
>> ווען דער באַניצער טייפּס אין אַ נייַ כאַראַקטער, מיר טשעק צו זען אויב די אינדעקס
פון דער ווייַטער פֿרייַ שפּעלטל פּלוס 1 איז גרעסער ווי די קאַפּאַציטעט פון די באַפער.
די +1 קומט אין ווייַל אויב דער ווייַטער פֿרייַ אינדעקס איז 5,
דעמאָלט אונדזער באַפער ס לענג מוזן זייַן 6 דאַנק צו 0 ינדעקסינג.
אויב מיר 'ווע לויפן אויס פון פּלאַץ אין די באַפער, דעמאָלט מיר פּרווון צו רעסיזע עס,
דאַבלינג עס אַזוי אַז מיר שנייַדן אַראָפּ אויף די נומער פון מאל אַז מיר רעסיזע
אויב דער באַניצער איז טייפּינג אין אַ טאַקע לאַנג שטריקל.
אויב די שטריקל האט גאַטאַן אויך לאַנג אָדער אויב מיר לויפן אויס פון קופּע זכּרון,
מיר פֿרייַ אונדזער באַפער און צוריקקומען נאַל.
>> צום סוף, מיר צוגעבן די טשאַר צו די באַפער.
אַמאָל דער באַניצער היץ אַרייַן אָדער צוריקקומען, סיגנאַלינג אַ נייַ שורה,
אָדער די ספּעציעל טשאַר - קאָנטראָל די - וואָס סיגנאַלז אַ סוף פון אַרייַנשרייַב,
מיר טאָן אַ טשעק צו זען אויב דער באַניצער פאקטיש טייפּט אין עפּעס בייַ אַלע.
אויב נישט, מיר צוריקקומען נאַל.
אַנדערש, ווייַל אונדזער באַפער איז מיסטאָמע גרעסערע ווי מיר דאַרפֿן,
אין די ערגסט פאַל עס ס כּמעט צוויי מאָל ווי גרויס ווי מיר דאַרפֿן
זינט מיר טאָפּל יעדער צייַט מיר רעסיזע,
מיר מאַכן אַ נייַ קאָפּיע פון דעם שטריקל ניצן נאָר די סומע פון פּלאַץ אַז מיר דאַרפֿן.
מיר לייגן אַן עקסטרע 1 צו די מאַללאָק רופן,
אַזוי אַז עס ס 'פּלאַץ פֿאַר די ספּעציעל נאַל טערמינאַטאָר כאַראַקטער - די \ 0,
וואָס מיר צוגעבן צו דעם שטריקל אַמאָל מיר צייכענען אין די מנוחה פון די אותיות,
ניצן סטרנקפּי אַנשטאָט פון סטרקפּי
אַזוי אַז מיר קענען ספּעציפיצירן פּונקט ווי פילע טשאַרס מיר ווילן צו קאָפּיע.
סטרקפּי קאפיעס ביז עס היץ אַ \ 0.
דעמאָלט מיר פֿרייַ אונדזער באַפער און צוריקקומען די קאָפּיע צו די קאָלער.
>> ווער געוואוסט אַזאַ אַ פּשוט-סימינג פונקציאָנירן קען זייַן אַזוי קאָמפּליצירט?
איצט איר וויסן וואָס גייט אין די קס50 ביבליאָטעק.
>> מייַן נאָמען איז נאַטע האַרדיסאָן, און דאָס איז קס50.
[CS50.TV]