[Powered by Google Translate] [Gözden geçirmek - Problem Set 2] [Zamyla Chan - Harvard Universiteti] [Bu CS50 edir. CS50.TV] Bütün hüquqlar. Salam, hər kəs və gözden geçirmek 2 salamlayıram. Birincisi, mən pset 1 bitirdikdən üçün sizi təbrik etmək istəyirəm. Hesab edirəm ki, siz bəzi bir az çətin ola bilərdi bilirik ki, siz yazırdı ki, ilk kompüter proqramı ola bilərdi, ancaq, siz semestr sonunda geri baxmaq zaman, bu ilin sonunda unutmayın siz pset 1 baxmaq lazımdır və siz ki, "5 dəqiqə. Hey, mən edə bilərdi", deyə bilərsiniz Belə ki, bilir və bu ilin sonunda mütləq olduqca sadə pset 1 tapa bilərsiniz ki, etibar. Amma indi, bu abadlıq, və görülən almaq üçün təbriklər. İndi də tez qeyd biz gözden geçirmek və ət almaq əvvəl. Mən yalnız mən bəzən kifayət qədər vaxt yoxdur ki, tez qeyd etmək istəyirəm bu walkthroughs zamanı problem set bunu hər bir yolla getmək və deyil, yalnız bəlkə həyata 1 və ya 2 cür diqqət Bunu ki, yolları. Amma siz başqa şəkildə bunu qadağan olunur ki, demək deyil. Şeyler çoxsaylı yollarla, kompüter kimi, tez-tez var və belə mütləq mən təqdim edə bilər daha həlli müxtəlif növ istifadə edə bilərsiniz. [Pset 2: Kripto - Zamyla Chan - zamyla@cs50.net] [Pset2 - 0. Suallar bir Bölmə - 1. Caesar - 2. Vigenere] Bütün hüquqlar. Belə ki, problem 2 seçin: Kripto bir əyləncə biridir. Yenə hər pset ilə sual bölmə ilə başlamaq lazımdır sizin təyin tədris fellow ilə bölmələrdə aparılır olacaq. Biz, gözden geçirmek artıq bu yolu getmək niyyətində deyil lakin onlar mütləq siz pset tam kömək edəcək. Yəni problem set ilk hissəsi Caesar edir. Və Sezar kimsə, bir tam olan bir əsas keçiriləcək və onlar təmin edən mətn string şifrelemek edəcək və şifreli bir şey geri verir. Hər kəs A Christmas Story seyr varsa, orada ki, bir misal var. Sonra problem set ikinci hissəsi, Vigenere edir bir daha inkişaf etmiş şifreleme texnikadır. Və biz, mətn parçası encipher olacaq əvəzinə yalnız bir tam olmaqla, biz, həqiqətən, bu kodlar olacaq istifadəçi bizi təmin edəcək bir söz ilə. OK, belə Toolbox bu gün ilk alət faktiki cihaz yenilənməsi olacaq. Müzakirə board biz, kimi şeylər görəcəklər "Niyə bu iş deyil?" "Niyə 50 iş təqdim etmir?" və tez-tez həll sizin cihaz yeniləmək üçün yalnız əslində. Və yalnız cihaz sudo yum-y bir terminal pəncərə çalışır əgər - ki, bəli deyən bir bayrağı var, hər şeyi yeniləmək - yeniləmə, ehtiyac varsa, onda sizin cihaz yeniləyir. Əgər siz artıq cihaz ən son versiyası, əgər bu zərər deyil. Sonra yalnız yeni güncellemeler demək olacaq və siz boyunca iş davam edə bilərsiniz. Amma bu da siz cihaz açmaq hər zaman yerinə yaxşı biz hələ çox istəyirik, çünki - Aracın bu təyinat - bəzən biz bir səhv gəlmək əgər. Beləliklə, siz cihaz ən son versiyası əmin olun və güncellemeniz axır. Bütün hüquqlar. Biz məktubları ilə məşğul olan və dəyişən şeylər enciphering, etdiyiniz Belə ildən biz, həqiqətən, bizim ASCII chart ilə yaxşı dost olmaq istəyirəm olacaq. Tapa əgər çox olanlar, online. Bəlkə öz etmək belə. Ümumiyyətlə, hər məktubu və hər bir sayı və hər bir xarakteri ilə onlara ilə bağlı bir sıra var və belə ki, faktiki məktub yanaşı onların ASCII dəyərləri görmək yaxşı. Bu mütləq problem müəyyən kömək edəcək. Həqiqətən bu problem müəyyən mənə kömək ki, bir şey, həqiqətən, çap idi Mən keçir kimi, mən, həqiqətən, bu barədə çəkmək olardı , yazmaq "Bu orada getmək varsa, sonra ..." Şərti onu çəkmək və onu qeyd edin ASCII masa ilə yaxşı dost olurlar. Sonra biz sərəncamında bir neçə digər alətlər var. Bu dəfə əvəzinə faktiki olaraq onların daxil bütün istifadəçi isteyen biz bir yerdə nə olacaq. Biz bir giriş üçün onlara təklif olacaq lakin biz də yalnız command line arguments istifadə olacaq. Belə ki, onlar öz proqram çalıştırdığınızda, adətən deyirsiniz. / Hello, məsələn, proqram hello.c idi. Amma bu dəfə yerine ki, onlar sonradan sözləri, arqumentlər qoya bilər. Onlar həmçinin onların daxil olaraq bizə keçmək nə və biz istifadə etmək olacaq belə ki, yalnız tam üçün isteyen kənarda hərəkət həm də command line arguments istifadə edərək. Və sonra biz həmçinin çox istifadə bilərsiniz seriallarda və strings, getmək lazımdır. Burada 1 mini ASCII chart yalnız bir misal var. Dediyim kimi, hər məktub, bir sıra uyğun və ki, ilə tanış olun. Bu lazımlı olacaq. Və sonra biz nömrələri ilə məşğul olan bəzi ASCIIMath bunu başlattığınızda - onlara subtracting, əlavə - Bu chart müraciət sonra mütləq yaxşı. Siz ifa ola bilər ki, bir şey - Belə ki, burada bir Sezar parol bir misal var. Bu yalnız bir təkər var. Əsasən, xarici əlifba var və sonra daxili əlifba var. Belə ki, burada olan Sezar parol, lakin 0 düyməsi ilə bir nümunəsidir. Z. qədər Əsasən, A A ilə uzlaşdırılmışdır, B B uyğun, bütün yol Amma sonra biz məsələn, 3 əsas istədiyini deyirlər. A indi D, s aligns ki, biz daxili təkər dönüşümlü olacaq Və bu biz nə olacaq nə mahiyyətcə edir. Biz tam yoxdur, lakin nə biz nə olacaq proqram etmək olunur cür nömrələri müəyyən bizimlə birlikdə əlifba tutulub. Mən əvvəl qeyd etdi ki, biz command line dəlilləri ilə məşğul olmaq üçün olacaq eləcə də tam almaq kimi. Belə bir istifadəçi Caesar proqram run ki, yol söyləyərək edir. / Sezar və sonra sonra bir sıra daxil. Və sayı düyməsi, shift, təmsil necə çox siz Sezar parol daxili təkər fırlanan etmək olacaq dəfə. Və burada bir nümunə oldu. Biz Caesar parol ilə A L olan hərflər daxil edin onda, ey vasitəsilə daxil D 3 dəfə keçdikdə hər məktub, çünki ki, yalnız Mən sizə göstərdi ki, Sükan nümunə kimi. Beləliklə siz daxil olduqda, məsələn, Bu CS50 edir! sonra da məktublar bütün hərəkət olardı. Və Sezar və Vigenere də mühüm şey biz hər hansı qeyri-məktub üzərində keçmək olacaq ki. Belə ki, hər hansı bir boşluq, simvol və s, nömrə, biz onlara eyni saxlamaq olacaq. Biz yalnız bu halda məktublar keçmək olacaq. Siz tam görmək Beləliklə, biz yalnız bizə olan məktublar var biz yalnız məktubları keçmək və məktubları şifrelemek istəyirəm. Etmək üçün ilk şey Belə ki, problem Caesar üçün istifadə 2 müəyyən gördüm ki, Siz terminal bu çalıştırdığınızda Caesar run və sonra bir sıra daxil edilir. Bəs biz nə etmək lazımdır birtəhər əsas almaq və daxil olmaq üçün edir. Və biz elə bu ikinci command line dəlil olacaq görmək istəyirik. İlk. / Sezar olacaq, və növbəti bir əsas nömrə olacaq. Biz C proqramları başlamaq üçün int əsas (void) idi. Belə ki, əvvəl Biz geri peel bir qat bir az olacaq və faktiki bax yerinə əsas funksiyası boşluq keçmək biz həqiqətən 2 parametrləri ilə məşğul olursunuz. Biz argc adlı int və sonra strings bir sıra argv çağırıb. Belə argc, bir tam deyil və bu proqram qəbul arqumentlər sayı təmsil edir. Və sonra argv həqiqətən keçdi mübahisələrin siyahısı. Dəlilləri bütün strings və belə argv strings bir sıra, bir siyahısını təqdim edir. Nin seriallarda bir az danışmaq edək. Diziler mahiyyətcə yeni data strukturu var. Biz iki dəfə ki, ints var biz strings var və indi biz seriallarda var. Diziler, eyni tipli çoxsaylı dəyərlər tuta bilən data strukturları var belə mahiyyətcə, istədiyiniz hər hansı tipli siyahısı. Əslində, bütün 1 dəyişən integers bir siyahısını istəyirdi, sonra növü int dizi olduğunu bir yeni dəyişən yarada bilər. Belə ki, diziler serialın ilk element index 0 olduğunu, yəni sıfır yönümlü edir. Serialın bu nümunə kimi uzunluğu 4,, onda son element, kataloq 3 olardı 1 - 4 edir. Belə sıra yaratmaq, bu kimi bir şey olardı. Bir cüt sıra istədiyini deyirlər. Bu baxmayaraq, veri növü hər hansı bir növü üçün gedir. Bir cüt sıra istəyirəm deyirlər. Siz poçt qutunuza zəng etmək istədiyiniz söyləyin. Hər hansı digər ikiqat başlamaq olardı kimi, , siz ikiqat və sonra adını demək olardı, amma bu dəfə kvadrat mötərizə biz qoymaq və sonra sayı serialın uzunluğu olacaq. Diziler, biz heç uzunluğu dəyişə bilməz Qeyd edək ki, her zaman, neçə qutu müəyyən və seçmək üçün neçə dəyərlər array keçirilməsi davam edir. Belə ki, sıra müxtəlif dəyərlər qurmaq üçün, bu aşağıdakı sözdizimini istifadə etmək olacaq siz Slayd üzərində bax. Siz poçt qutusu index 0, 1.2 müəyyən olunacaq 2.4 poçt qutusu index 1 set, və s. Belə ki, indi biz seriallarda bir az təhlil etdik ki, gəlin argc və argv geri imkan verir. Biz argv indi strings bir sıra olduğunu bilirik. Belə bir istifadəçi keçir zaman - onlar bir proqram çalışan etdiyiniz demək - deyirlər. / salam David Malan, Əgər siz artıq həqiqətən argc və argv nə ilə gəlmək olur proqramı nə olacaq. Belə ki, siz narahat ehtiyac yoxdur. Bu fəzalarında ayrılmış 3 fərqli sözlər görür, çünki bu halda Argc 3 olardı. Və bu halda serialın ilk index olacaq. / Hello, növbəti bir David, növbəti bir Malan. Hər argv arasında nə əlaqələr dərhal görür  serialın və argc edir? Bəli. Biz args.c. nümunə olduğunu nəzərə almaq lazımdır Biz 2 arasında əlaqələr istifadə edə bilərsiniz əgər in nəzər salaq. Burada ləvazımatlı ki, tapa bilərsiniz default ərizə . c faylları açmaq üçün bəzən Emacs edir. Amma biz gedit ilə məşğul istəyirəm, nə edə bilərsiniz sağ C fayl vurun belə ilə açın Properties getmək, sonra default kimi seçin gedit, seçmək və artıq proqram gedit əvəzinə Emacs açılır. Mükəmməldir. Belə ki, burada mən hər command line argument çap etmək istəyirəm ki, bir proqram var. Nə istifadəçi giriş Beləliklə, mən mahiyyətcə yeni xətt onları geri qayıtmaq istəyirəm. Beləliklə, biz bir şey üzərində təkrarlamaq üçün istifadə edə bilərsiniz bir quruluşu var - siz yəqin ki, sizin pset 1-istifadə ki, bir şey? Siz şeyi bir müəyyən sıra ilə getmək istəyirsiniz? Edin >> Loop üçün [tələbə]. Loop üçün. Exactly. Belə ki, loop üçün başlamaq edək. Biz int i = 0 var. Gəlin bir standart başlatma dəyişən başlar. Mən bir set üçün şərt qoyub sonra i + +, orada şeyə gedən demək gedirəm. Bütün hüquqlar. Belə argv proqramı qəbul dəlilləri siyahısı varsa, argv geri düşünür və argc, proqram arqumentlər sayı o argc argv və mahiyyətcə uzunluğu, hüququ, o deməkdir ki, argc dəyəri kimi bir çox dəlilləri kimi olmalıdır edir çünki. Biz argv hər element üzərində təkrarlamaq istəyirəm əgər biz hər zaman bu göstərici ilə argv ildə dəyişən daxil istəyirəm olacaq. Bu doğru, bu ilə təmsil oluna bilər? Burada Bu dəyişən bu halda xüsusi string təmsil çünki bir string array var - nəzərə alsaq ki index da xüsusi string. Biz nə etmək istədiklərini, bu halda biz onu çap etmək istəyirəm, belə ki, printf deyək. İndi argv simli, belə ki, biz orada olan tutucu qoymaq istəyirik. Biz yalnız yaxşı baxmaq üçün yeni xətt istəyirəm. Belə ki, burada biz bir loop üçün var. Biz hələ vəziyyət yoxdur. Beləliklə, mən bu simli çap olacaq hər dəfə sonra, 0 başlayır və serialın ki, xüsusi index edir. Biz sıra elementlərinin çap dayandırmaq istəyirsiniz zaman? Biz Bitirdiğinizde, sağ? Biz serialın sonunda əldə etdiyiniz zaman. Belə ki, serialın uzunluğu keçmiş artıq istəmirəm və biz artıq biz həqiqətən fəal argv müddəti nə tapmaq üçün ehtiyac yoxdur bilirik çünki bizə verilmiş ki, nə var? Argc. Exactly. Beləliklə, biz dəfə bu prosesi argc sayı etmək istəyirəm. Mən doğru kataloq deyiləm. Bütün hüquqlar. İndi args edək. Böyük olan yoxdur səhvlər. Belə ki, yalnız args run bildirin. Bu bizə qaytarmaq üçün nə gedir? Bu, sadəcə geri çap olacaq. "Siz proqram args inputted Mən sizə geri vermək gedirəm." Belə ki, qoy biz sonra foo bar args demək istəyirəm deyirlər. Belə ki, o, bizə geri çap edir. Bütün hüquqlar? Beləliklə, siz argc və argv istifadə edə bilərsiniz necə bir misal var ki argc bilmədən argv müddəti təmsil. Siz serialın uzunluğu kənarda serialların çıxışı ilə heç deyil əmin olun C mütləq sizə bağırmaq edəcək. Siz seqmentasiyası günah deyilən bir şey almaq lazımdır hansı əsasən bir şey daxil olmaq üçün çalışdığınız deyərək, fun, heç vaxt mövcud deyil ki, sizə aid deyil. Belə ki, əmin olun, xüsusilə də sıfır indeksləşdirilməsi ilə, biz istəmirik - Biz uzunluğu 4 bir sıra varsa, məsələn kimi biz sıfır index da, 0-da başlayacaq ki array index 4 yoxdur. Biz 0 başlamaq zaman yalnız loops üçün kimi ikinci təbiət olacaq. Belə ki, yalnız mind ki, saxlamaq. Əgər uzaq kənarda olan bir sıra indeksi daxil olmaq istəmirəm. Beləliklə, biz necə çıxış cür artıq görürük da qəbul olunur ki, command line arguments Siz simli gördüm Lakin argv həqiqətən bir string array edir. Belə ki, hələ faktiki olaraq tam deyil, lakin Sezar biz integers ilə məşğul istəyirəm. Neyse, həqiqətən tam bir string çevirmək bilər ki, bizim üçün yaradılan bir funksiyası var. Biz onlara isteyen olduğunuz də burada biz istifadəçi girişi ilə məşğul deyil əsas burada daxil, belə ki, biz, həqiqətən, reprompt və deyə bilmərəm "Bu etibarlı deyil əgər Oh, demək, məni başqa tam verir." Amma biz hələ doğru istifadə üçün yoxlamaq lazımdır. Caesar onlar yalnız 1 ədəd keçmək üçün icazə verilir və onlar. / Sezar çalıştırmak və sonra onlar bir sıra var. Belə argc müəyyən olmalıdır. Onlar sizə. / Sezar və sonra əsas keçməli ne sayı ola bilər? Argc nədir? >> [Tələbə] 2. >> İki. Exactly. Beləliklə, siz argc 2 əmin etmək istəyirəm. Əks halda siz əsasən proqram run imtina edirlər. Əsas bu, int əsas deyir ki, bir funksiyası var belə sonra uğurlu proqramının sonunda yaxşı təcrübə qaytarılması 0 həmişə. Ki, Belə ki, onlar 3 command line arguments əvəzinə 2 vermək və ya siz kontrol lazımdır nə edəcəyik sonra, məsələn, 1 vermək və sonra heç deyərək 1 qayıtmaq, bu proqramı ilə davam edə bilməz. [Tələbə] yoxdur mətn bir yer ola bilməz. >> Əfv ediniz? [Tələbə] Siz şifrelemek çalışdığınız mətn bir yer ola bilməz. Ah! Biz şifrelemek üçün çalışdığınız, mətn baxımından, əslində sonra gəlir ki, mətn vermək zaman. Belə ki, indi biz yalnız faktiki sayı, komanda arqumentlər kimi qəbul edirik olan Sezar şifreleme üçün faktiki shift. [Tələbə] yalnız 1 argc qarşı niyə 2 lazımdır? 1 ədəd mütləq var. Sağ. Biz argc üçün 2 lazımdır səbəb əvəzinə 1 bir proqram run və deyəndə çünki. / Sezar və ya. / hello, əslində bir command line arqument kimi sayar. Belə ki, o, artıq 1 çəkir və belə sonra 1 əlavə giren edirik. Beləliklə, siz həqiqətən command line arqument bir string giren edirik. Siz istədiyiniz nə Sezar, biz, bir tam həll etmək istəyirik belə ki, bu atoi funksiyası istifadə edə bilərsiniz. Və əsasən, bu simli keçmək və sonra bir tam geri qayıdacaq bu tam o string etmək mümkün olur. Biz kimi printf ya GetString şeylər ilə məşğul olduğunuz zaman İndi xatırlayıram bizə xüsusi kitabxanaları daxildir. Belə ki, ilin əvvəlində biz kimi bir hash tag standart I / O. H, bir şey ilə başlamaq. Yaxşı, atoi, həmin kitabxana biri ərzində deyil belə nə var ki, hüququ kitabxana daxil var. Mən əl funksiyası müzakirə gözden geçirmek 1 geri xatırlayıram. Siz terminal insan yazın və sonra funksiyanı adı izlədi. Belə ki, onun istifadəsinin bütün siyahısını gətirəcək həm də ki, aid olan kitabxana yetişdirmək olacaq. Mən atoi ilə əl funksiyadan istifadə etmək üçün siz ki, tərk edəcəyik və atoi funksiyasından istifadə etmək üçün daxil lazım olan kitabxana anlamaq. Beləliklə, biz əsas var və indi bu düz mətn əldə gəlir və belə həqiqətən təklif yerləşir istifadəçi daxil olacaq ki,. Biz eyni damar belə GetInt və GetFloat məşğul və biz GetString ilə məşğul olmaq üçün olacaq. Isə ya loops mə Lakin bu halda biz istənilən do etmək lazım deyil. GetString mütləq bizə bir string verəcək və biz istifadəçi bizə verir nə şifrelemek olacaq. Belə ki, bu istifadəçi inputted strings bütün doğru olduğunu bilərik. Böyük. Belə ki, sonra bir dəfə əsas var və bir dəfə siz mətn var indi sol nə siz düz metin encipher üçün var. Just tez lingo artıq əhatə etmək, düz metin, istifadəçi verir nə və ciphertext onlara geri edir. Strings Belə ki, məktubu ilə həqiqətən məktubu vasitəsilə getmək etmək biz hər məktub keçmək üçün, çünki, ki strings anlamaq, əgər geri qat qabığı biz növ biz yalnız həqiqətən simvolların siyahısını olduğunu görürük. Bir başqa sonra gəlir. Onlar simvol Diziler, çünki biz seriallarda kimi strings müalicə edə bilər. , Mətn adlı simli belə demək və dəyişən mətn ərzində bu CS50 edir saxlanılır. Sonra index 0 mətn əsaslı T olardı index 1 saat, və s. Olacaq Və sonra seriallarda ilə args.c ildə argc məsələn, biz bir sıra üzərində təkrarlamaq olduğunu gördüm və biz i uzunluğu azdır qədər i əldə = 0 qədər təkrarlamaq idi. Belə ki, biz simli uzunluğu nə həyata figuring bəzi yol lazımdır biz artıq təkrarlamaq olacaq əgər. Neyse yenidən, bizim üçün bir funksiyası baxmayaraq sonradan CS50 də var siz mütləq öz funksiyasını həyata etmək edə bilərsiniz bir simli uzunluğu hesablamaq olar. Amma indi biz simli uzunluğu, belə strlen istifadə olacaq. Siz simli keçmək, sonra sizin simli uzunluğu təmsil bir int qayıdacaqlar. Biz bir string hər xarakter üzərində təkrarlamaq edə bilər necə bir nümunə baxaq və ki, bir şey. Biz nə istəyirik simli hər bir xarakter üzərində təkrarlamaq deyil və nə biz bunu istəyirik, biz 1-hər bir xarakter 1 geri çap biz onun yanında bir şey əlavə istisna olmaqla. Belə ki, loop üçün başlamaq edək. Int i = 0. Biz vəziyyəti üçün yer tərk etmək olacaq. Biz simli sonuna çatana qədər, təkrarlamaq istəyirəm sağ? Beləliklə nə funksiya bizə simli uzunluğu verir? [Işitilemez tələbə cavab] Bu command line dəlilləri uzunluğu var. Amma bir string üçün bizim simli uzunluğu verən funksiyadan istifadə etmək istəyirəm. Belə ki, simli uzunluğu var. Və sonra bu simli keçmək lazımdır. Bu müddəti hesablamaq lazımdır nə string bilmək lazımdır. Belə ki, bu halda biz simli s ilə məşğul olursunuz. Böyük. Beləliklə, biz nə etmək istədiklərini bir-printf bildirin. İndi simvol ilə məşğul istəyirəm. Biz hər bir fərdi xarakter çap etmək istəyirəm. Bir float çap istədiyiniz zaman, siz% f kimi tutucu istifadə edir. Bir int ilə% d istifadə edir. Və eyni, bir xarakteri ilə mən bir xarakter çap etmək gedirəm demək% c istifadə bir dəyişən daxilində saxlanılır var. Belə ki, bu var, nin bu bir müddət və boşluq əlavə edək. Biz hansı xarakter istifadə edir? Biz simli bile hansı xarakter istifadə olacaq. Beləliklə biz, simli ilə bir şey istifadə etmək olacaq amma biz müəyyən karakter daxil etmək istəyirik. Simli yalnız bir sıra əgər Belə ki, necə biz serialların elementləri daxil edə bilərəm? Biz bu kvadratşəkilli mötərizələri var və biz orada indeksi qoydu. Beləliklə, biz kvadrat mötərizə var. Bu halda bizim index biz yalnız i istifadə edə bilərsiniz. Exactly. Belə ki, burada biz bir dot və boşluq ardınca xarakter çap etmək olacaq deyərək edirik və xarakter bizim string s olan İTH məktub olacaq. Mən yalnız saxlamaq üçün gedirəm. Okay. İndi string uzunluğu çalıştırmak üçün gedirəm. Beləliklə, biz OMG adlı simli idi, indi daha vurğuladı oldu. Eynilə, Gəlin biz, həqiqətən, istifadəçi bir string almaq istəyirlər. Biz bunu bilər? Əvvəl, necə bir int əldə etdiniz? Biz GetInt, sağ dedi? Amma bu int deyil, belə GetString edək. Nin string uzunluğu etmək edək. Burada xüsusi tez daxil etməyib. Mən bilmirəm. Burada mənim adını qoymaq üçün gedirəm və s sonra o şeyi bir edə bilərsiniz Hesab edirəm ki, kimi hər məktubu və ya bir şey üçün bir söz təyin yerləşir. Cool. Belə ki, simli uzunluğu var. Beləliklə, biz Caesar geri istəyirik. Biz bir simli üzərində təkrarlamaq necə bir neçə tools var biz hər element daxil necə. Belə ki, indi biz proqram almaq geri bilər. Mən əvvəl ASCII masa, sizin ən yaxşı dostu, qeyd edildiyi kimi, hər məktubu ilə bağlı nömrələrini görmək olacaq. Belə ki, burada bizim düz metin mən gicəlləndirici edirəm deyə! Sonra bu simvol hər bir sayı və Bugün ASCII dəyəri gedir hətta apostrof, hətta kosmik, hətta nida işarəsi, siz mind ki, saxlamaq lazımdır. Belə ki, onların command line arqument daxil istifadəçi 6 ki, bizim əsas deyirlər. 73 ilə təmsil edən mən ilk məktubu, üçün o deməkdir ki, siz 73 + 6 ASCII dəyəri ilə təmsil olunur nə məktubu onlara qayıtmaq istəyirəm. Bu halda ki, 79 olacaq. İndi biz növbəti xarakter getmək istəyirəm. Belə ki, düz metin indeksi 1 yanındakı apostrof olardı. Amma biz yalnız məktubları encipher istəyirəm xatırlayıram. Belə ki, biz, apostrof əslində eyni qalır əmin etmək istəyirəm biz 39 nə 45 dəyişiklik yoxdur ki. Biz apostrof kimi saxlamaq istəyirəm. Beləliklə, biz yalnız məktubları encipher unutmayın istəyirəm biz digər rəmzləri bütün proqram dəyişməz qalır istəyirəm, çünki. Biz istəyirik ki, başqa bir şey kapitallaşma saxlanılmasıdır. Belə ki, bir böyük məktubu zaman, bir böyük kimi qalmaq lazımdır. Lowercases kiçik kimi qalmaq lazımdır. Belə ki, bəzi faydalı funksiyaları yalnız enciphering hərfləri ilə məşğul ola və əşyalar kapitallaşma qorunması saxlamaq bu isalpha, isupper, islower funksiyaları edir. Və bu bir Boolean dəyər qayıtmaq ki, funksiyaları. Əsasən, doğru və ya yalan. Bu böyük deyilmi? Bu alfasayısal mı? Bu əhəmiyyətli bir məktub var. Belə ki, burada siz funksiyasından istifadə necə 3 nümunələridir. Ümumiyyətlə, siz dəyəri həmin funksiyası ilə siz geri olmadığını test edə bilər doğru və ya yalan daxil əsaslanır. Ya encipher bir şey və ya parol və ya böyük s var əmin etmək [Tələbə] yalnız bir az daha çox və necə istifadə o izah edə bilərəmmi? >> Bəli, qəti. Biz geri baxmaq Belə ki, əgər biz burada hüququ, kapital var? Belə ki, biz + 6 O. çünki Ey gedir bilirik ki, Ancaq biz O paytaxtı O. olacaq əmin etmək istəyirəm Belə ki, əsasən, bizim giriş dəyişdirmək gedərək növüdür. O böyük var ya biz bunu həll yolu dəyişdirmək cür iradə belə olub. Beləliklə biz xüsusi indeksi üzrə isupper funksiyasından istifadə əgər, əsl bizim üçün qaytarır ki isupper ("Mən"), belə ki, biz bu üst olduğunu bilirik. Belə ki, o əsasən, sonra biz bir formula daxil olacaq siz Caesar şeyi keçmək üçün istifadə lazımdır ki, o böyük əgər belə sonra əsasən bir az fərqli düstur olmalıdır olacaq kimi kiçik fərqli. Mənada etmək? Bəli. Heç bir narahatlıq. Mən çox mənada etmir hansı bir məktubu, 6 əlavə barədə bir az söhbət biz cür anlamaq istisna olmaqla bu simvol integers ilə əvəz növü var. Biz nə biz istifadə gizli tökmə növü. Biz bir dəyər bulunduğu bir qədər sonra tökmə getmək lazımdır və bir müxtəlif növ çevrilsin o ilk daha. Amma bu pset ilə biz əvəz simvol istifadə cür edə bilərsiniz və onların müvafiq tam dəyəri. Siz sadəcə yalnız bir quotes ilə bir xarakter qablaşdırmaq Beləliklə, əgər, sonra bir tam kimi ilə məşğul olan integers ilə işləmək bilərsiniz. Belə ki, kapital C 67 aiddir. Kiçik f 102 aiddir. Bu dəyərlər bilmək istəyirsinizsə Yenə, sizin ASCII masa oldu. Belə ki, sizə çıxmaq və əlavə edə bilərsiniz necə bəzi nümunələr daxil bildirin, həqiqətən, həqiqətən, bu simvol ilə işləyə bilər necə əvəz istifadə edin. Hesab edirəm ki, ASCIIMath bir tam bir xarakterli əlavə hesablamaq gedir demək və sonra çıxan xarakteri, habelə nəticəsində ASCII dəyəri göstərir. Və burada mən dedi alıram - bu hissəsi ilə we'll məşğul sonra - lakin əsasən, I, istifadəçi bir əsas ilə yanaşı run ASCIIMath demək lazımdır ki alıram və mən əsas sayını olacaq ki alıram ilə biz bu xarakterli əlavə olacaq. Belə ki, burada qeyd edirəm ki, əsas tələb alıram-ci ildən, Mən, mənə 1 şey ötürür tələb edirəm ildən Mən yalnız. / Asciimath və əsas qəbul etmək istəyirəm. Mən argc 2 bərabər tələb gedirəm. O deyil, onda mən 1 qayıtmaq və proqramı çıxış edəcək gedirəm. Mən, əsas ilk command line dəlil olacaq deyil dedi alıram , bu, ikinci olacaq və burada bax Mən tam o açmaq üçün gedirəm. Sonra mən r olacaq bir simvol təyin etmək üçün gedirəm. Dəyişən CHR növü həqiqətən tam edək ki. Mən tam kimi r istifadə edə Ben yolu bu tək quotes ilə encasing edir. Biz bir xarakter üçün tutucu olduğu bizim printf bəyanat geri və sonra tam bir tutucu, karakter CHR təmsil və tam əsas deyil. Və sonra biz nəticə birlikdə 2 əlavə olacaq. Belə ki, biz r əlavə etmək üçün gidiyorsun + əsas nə, və sonra ki, nəticə çap olacaq. Belə nin asciimath edək. Bu günə qədər, buna nin yalnız asciimath run bildirin. Biz həqiqətən bir əsas vermir, çünki Oh, amma bax, bu bir şey deyil. Belə ki, yalnız 1, bizim əsas funksiyası geri zaman, yalnız bizə geri döndü. Beləliklə üzrə əsas süzmək. Biri mənə bir sıra verir. >> [Tələbə] 4. 4. Okay. Belə r 4 Bookmark 118 və ASCII dəyəri uyğun olan v vermək gedir artıb. Belə ki, o, cür mənada ki, edir - Əslində, mən xahiş edə bilərsiniz r + 4 118 əgər r ASCII dəyəri nə düşünürsünüz? Sonra Bəli, r 114-dir. Siz sonra ASCII masa baxmaq əgər, əmin ki, siz r 114 ilə təmsil olunur görəcəksiniz. Belə ki, indi biz simvol integers əlavə edə bilərsiniz ki, bilirik ki, bu olduqca sadə görünür. Biz yalnız biz əvvəl bir misal gördüm kimi simli üzərində təkrarlamaq olacaq. Bir məktub varsa Biz yoxlamaq lazımdır. Əgər, sonra biz əsas nə ilə keçmək lazımdır. Pretty sadə, bu kimi almaq hallar istisna olmaqla, siz z, 122 təmsil, sonra fərqli bir xarakter verir ki, görürük. Biz, həqiqətən, bizim əlifba ərzində qalmaq istəyirəm sağ? Beləliklə, biz ətrafında wrapping növü bir şəkildə anlamaq lazımdır. Siz Zed çatmaq və müəyyən bir sıra artırmaq istədiyiniz zaman, Siz ASCII əlifba bölmə kənarda getmək istəmirəm; siz A. bütün yol geri kesmek istəyirəm Amma siz hələ işin qorunması edirik unutmayın. Belə ki məktublar bilmədən simvol ola bilməz yalnız simvol kimi də dəyişən olacaq deyil. Son pset siz mütləq lazımdır vermədi lakin bir seçim modulus funksiyası istifadə edərək görməmiş pset həyata idi. Amma indi biz, həqiqətən, modulus istifadə etmək lazımdır olacaq belə-in yalnız bu bir az artıq gedək. Əsasən, siz y bölünür x qalan verir x modulo y, zaman. Burada bəzi nümunələridir. Biz 27% 15 var. Ümumiyyətlə, siz mənfi almadan mümkün qədər 27-dən 15-çıxmaq zaman sonra 12 sol üzərində almaq. Belə ki, riyaziyyat kontekstində kimi növ, lakin necə həqiqətən bu istifadə edə bilərəm? Bu, bizim wrapover üçün faydalı olacaq. Bu, yalnız mən 3 qrupa bölmək bütün xahiş deyək. Bəzən qruplar və belə bir şey bunu. Mən "OK, 3 bölmək sizə bütün istəyirəm." Dedi deyə Necə ki, bunu bilər? [Işitilemez tələbə cavab] Bəli, dəqiq. Off sayı. Okay. Həqiqətən bunu edək. Siz başlamaq istəyirsiniz? 1, 2, 3, 4 [tələbələri off sayılması]. Amma unutmayın ... >> [Tələbə] Oh, sorry. Bu həqiqətən yaxşı bir nöqtəyə var. Siz 4, amma biz yalnız 3 qrupa istəyirəm, çünki biz həqiqətən 1 demək istəyirəm. Beləliklə, necə - sonra necə 1 deyə bilər çünki Xeyr, ki, həqiqətən yaxşı bir misal var? 4 və 1 arasında əlaqələr nədir? Yaxşı, 4 mod 3 1. Davam Belə ki, siz 2 olardı. Belə ki, 1, 2, 3, 1, 2, var. Yenə, həqiqətən, 5-ci şəxs istəyirik. Necə 2 əvəzinə 5 deyə bilirsiniz? Siz 5 mod 3 2 deyirlər. Mən artıq sol neçə 3 qrupları görmək istəyirəm, sonra hansı qaydada I. am Və biz, bütün otaq boyu davam edərsə, sonra biz həmişə əslində özümüz üçün mod funksiyası tətbiq etdiyiniz görəcək növ off saymaq. Bu, modulo istifadə edə bilər necə maddi Məsələn daha növü Mən əminəm, çünki bizim ən yəqin ki, prosesi getdi biz off saymaq etdik yerləşir. Modulo hər hansı suallar? O, bu anlayışları anlamaq üçün olduqca əhəmiyyətli olacaq Mən sizə uşaqlar başa əmin etmək istəyirəm. [Tələbə] heç bir qalıq varsa, bu faktiki sayı vermək deyil? Onlardan ilk 3 biri bunu olsaydı, bu, əslində nə onlara olardı və ya onlara olardı [işitilemez] >> Bu yaxşı sual var. Bu modulo heç qalan olduqda - 6 mod 3 belə deyirlər - əslində 0 geri verir. Biz bir az sonra bu barədə danışmaq lazımdır. Bəli Oh, məsələn, 3-cü şəxs - 3 mod 3 həqiqətən 0 lakin o 3 bildirib. Belə ki, məsələn, daxili tutmaq kimi növ var, MOD sonra 0 ise tamam kimi, mən 3-cü şəxs gedirəm. Amma biz 0 sonra nə ilə məşğul edə bilərsiniz necə cür nəzərə almaq lazımdır. Belə ki, indi biz elə hüququ məktubu üçün Zed Xəritəçəkmə yolu var. Belə ki, indi biz bu misallar vasitəsilə getdi sonra biz cür Caesar iş ola bilər necə. Siz 2 əlifbalar görmək və sonra onları keçid oldu. Belə nin cəhd və formula baxımından ifadə edək. Bu formula həqiqətən, spec sizə verilir lakin hər bir dəyişən nə deməkdir vasitəsilə göz edək cür. Bizim son nəticə ciphertext olacaq. Beləliklə, bu deyir ki ciphertext və İTH xarakter bu düz metin və İTH xarakterinə uyğun gedir. Biz həmişə bu şeylər astarlı istəyirəm, çünki O mənada edir. Belə ki, bizim əsas olan ciphertext plus k, bu İTH xarakterli olacaq - Bu mənada edir - və biz bu mod 26 var. Biz Zed zaman geri saxla biz xarakteri nəzərə almaq istəmir, biz bu Mod istədi əlifba ətrafında paketi və növüdür. Zed sonra siz gedin ki, b, doğru sayı c, d, var qədər. Beləliklə, biz bilirik ki, Zed, Zed a, b, c, d, e, f gəlir sonra çünki + 6, bizə f verəcək əgər. Belə ki, biz Zed + 6 Bookmark f vermək gedir bilirəm ki yadda edək. ASCII dəyərlər, z 122 və f 102-dir. Belə ki, biz Caesar formula edilməsi bir yol tapmaq üçün bizə 102 vermək 122 sonra. Biz yalnız bu formula, həqiqətən 24 verir ki, ('z' + 6)% 26 müraciət əgər 122 + 6 128 çünki; 128% 26 24 qalan verir. Amma həqiqətən f demək deyil. Bu mütləq 102 deyil. Bu da əlifbası 6-cı məktub deyil. Belə ki, açıq-aydın, biz tweaking bu bir az bəzi yol lazımdır. Müntəzəm əlifba baxımından, biz z 26 məktub və f 6 olduğunu bilirik. Amma biz kompüter istəyirik, biz 0 index olacaq. Əvəzinə z sayı 26 olan Beləliklə, biz bu sayı 25 demək olacaq bir 0 çünki. Belə ki, indi bu formula müraciət edək. Biz z siz 31 verir, 25 + 6 təmsil var. Və 31 mod 26 qalan kimi 5 verir. Biz f əlifbası 5-ci məktub bilirik ki, Çünki mükəmməl. Amma hələ sağ, f deyil? Bu hələ 102 deyil. Belə ki, bu pset üçün bir problem əlaqələr tapmaq üçün çalışır olunacaq Bu ASCII dəyərlər və əlifba index arasında konvertasiya arasında. Əsasən, nə lazımdır, nə siz ASCII dəyərləri ilə həyata başlamaq istəyirəm lakin sonra elə bir əlifba index o tərcümə etmək istədiyiniz sonra olmalıdır nə məktub hesablamaq - əsasən, onun əlifba index nə olan parol xarakter - o geri ASCII dəyərlərə tərcümə. Siz ASCII masa həyata whip Belə ki, sonra 102, 5, cəhd və arasında əlaqələrin tapmaq demək və ya 122 və 25. Biz command line arguments bizim əsas kazanılmış sonra, biz düz metin kazanılmış etdik biz bu enciphered etdik. İndi biz nə yazmayıb bütün çap edir. Biz bu müxtəlif yollarla bir neçə ola bilər. Biz boyunca getmək kimi Biz nə edə bilər, həqiqətən, çap olunur. Biz simli olan simvol üzərində təkrarlamaq kimi, biz bunu hesablamaq zaman biz sadəcə sağ sonra çap edə bilər. Alternativ olaraq, həmçinin bir sıra saxlayın və simvol bir sıra ola bilər və sonunda bu bütün array üzərində təkrarlamaq və çap. Belə ki, siz üçün bir neçə var. Və% c xarakteri çap üçün tutucu olacaq unutmayın. Belə ki, orada biz Sezar var və indi biz Vigenere geçmek olan Sezar çox oxşar, lakin az daha mürəkkəbdir. Belə ki, mahiyyətcə Vigenere ilə bir söz keçən etmək olacaq edir. Əvəzinə bir sıra Belə ki, bir simli var olacaq və belə ki, söz kimi çıxış edəcək. Sonra adi kimi, istifadəçi bir string üçün tez almaq olacaq və sonra encipher və sonra onları ciphertext geri verir. Dediyim kimi, bu, yerinə sayı müəyyən dəyişkən istisna olmaqla, Sezar çox oxşar sayı həqiqətən xarakterindən xarakteri hər zaman dəyişdirmək niyyətindədir. Keçmək üçün faktiki sayı təmsil etmək üçün klaviatura məktublar təmsil edir. Əgər məsələn bir bir keçid daxil Beləliklə, əgər, o 0 növbədə uyğun olardı. Belə ki, daha əlifba index geri edir. Əgər biz həqiqətən ASCII dəyərləri ilə məşğul olduğunuz gördükdə əgər faydalı ola bilər nə eləcə də məktublar, eləcə də əlifba göstəricisi kimi, bəlkə 25 0 əlifba indeksi göstərir ki, öz ASCII masa tapmaq və ya etmək ki, siz cür əlaqələr z vasitəsilə və ASCII dəyərlər bilərsiniz və eskiz və bəzi nümunələri cəhd tapa bilərsiniz. Eynilə, siz f tərəfindən müəyyən instansiya dəyişkən halda - və bu da kiçik və ya böyük f deyil - o 5 uyğun olardı. Biz bu günə qədər yaxşı nədir? Vigenere üçün formula bir az fərqli. Ümumiyyətlə, siz, yalnız Sezar kimi görmək istisna olmaqla, yerine k biz k index j var. Biz, çünki mahiyyətcə söz uzunluğu i istifadə etdiyiniz üçün bildirək ki, bizim ciphertext müddəti mütləq deyil. Biz sonradan bir az var ki, məsələn, bax bu bir az aydın olacaq. Ümumiyyətlə, siz ohai bir söz ilə proqram run əgər, o, hər dəfə ohai sizin shift olacaq deməkdir. Belə ki, siz söz olan nə mövqe asılı olaraq, Əgər məbləği ilə müəyyən ciphertext xarakter keçmək olacaq. Yenə yalnız Sezar kimi, biz hər şeyi kapitallaşma qorumaq əmin etmək istəyirəm və yalnız encipher məktubları deyil, simvol və ya boşluq. Belə ki, istifadə edə bilər ki, funksiyaları haqqında Caesar geri baxmaq şeyi keçmək və burada proqram üçün müraciət etmək necə qərar verən yol. Belə ki, bu həyata xəritəsi edək. Biz GetString olan istifadəçi kazanılmış etdik ki, bir düz metin var Bu deyərək ... CS50 edir! Sonra ohai bir söz var. Ilk 4 simvol olduqca sadədir. Biz T, o ilə keçdikdə olacaq bilirik ki, h h ilə keçdikdə olacaq, sonra i tərəfindən keçdikdə gedir. Burada bir 0 təmsil görmək belə sonra sonunda dəyər həqiqətən əvvəlki kimi yalnız həmin məktub. Sonra s i keçdikdə. Amma sonra burada bu dövrlər var. Biz sonra bir şey ilə dəyişdirmək deyil ki, encipher istəmirəm və yalnız dəyişməz dövründə çap. [Tələbə] Mən sizə bu keçdikdə bilirik ki, necə başa düşmürəm - harada etdi - >> Oh, sorry. Burada üst burada skript line arqument ohai bax söz olacaq. Və əsasən, siz söz olan simvol üzərində bisiklet edirik. [Tələbə] Beləliklə o eyni dəyişkən olacaq - Belə ki, o əlifba ilə müəyyən uyğundur. [Tələbə] Sağ. Amma CS50 hissəsi haradan əldə etdiniz? Oh. Bu, kimi olduğunuz GetString var "Mənə kodlar bir string verin." [Tələbə] Onlar sizin keçmək üçün arqument vermək olacaq və sonra siz ilk simli üçün xahiş edəcəyik. >> Bəli. Belə ki, onlar proqram çalıştırdığınızda, onlar söz daxil olacaq onların command line arguments, onlar run zaman. Deyil, az sonra bir dəfə onlar həqiqətən 1 verilmiş etdiyiniz işaretlediğinizden və daha sonra bir string üçün onlara təklif olacaq demək, "Mənə bir ip verin." Bu halda siz bu verdiyiniz yerləşir Belə ki, var ... CS50 edir! Beləliklə siz istifadə ohai istifadə və artıq təkrarlamaq olacaq. Burada dövrlər Şifreleme üzərində atlandı edək ki, lakin ohai, növbəti bir bizim mövqe baxımından biz o istifadə etmişdir. Bu halda, 4 var ki, görmək üçün bir az çətindir belə-nin bir az davam edək. Məhz burada mənimlə qalmaq. Sonra sonra müvafiq olaraq o və h tərəfindən tərcümə olunur i və s var. Sonra bir yer, və sonra biz boşluq encipher niyyətində deyil ki, bilirik. Lakin xəbərdarlıq yerine burada bu spot bir gedərək, biz tərəfindən Şifreleme edirik - Burada - Siz görə bilərsiniz əgər mən bilmirəm. Belə ki, siz həqiqətən müəyyən istəyirəm ki, o burada gedir deyil, h burada gedir, bir burada gedir, i o, h, a, i, o, h, a, i., burada gedir Siz nə yoxdur. Siz yalnız söz olaraq mövqe keçmək Siz, həqiqətən, faktiki məktub Şifreleme üçün olacaq bilirik ki, zaman. Bu cür mənada edirmi? Okay. Belə ki, yalnız bəzi xatırlatmaları. Siz yalnız söz növbəti məktub əvvəlcədən əmin etmək istəyirəm Sizin düz metin ilə karakter məktub olsun. Biz o bile Belə deyirlər. Biz növbəti xarakter ki, düz metin və i index Məsələn, bir sıra olduğunu görürük. Başqa bir məktub çatana qədər sonra biz, ğ, bizim söz üçün index inkişaf yoxdur. Yenə, siz də söz əvvəlinə siz panaromik əmin etmək istəyirəm siz sonunda olduğunuzda. Burada biz i bile görürsünüzsə, növbəti bir o olmalıdır. Belə ki, sizin söz əvvəlinə panaromik edə bəzi yol tapmaq istəyirsinizsə Əgər sonunda çatmaq hər zaman. Və yenə, nə operator cür ətrafında wrapping üçün halda faydalıdır? Məsələn off hesablanmasında kimi. [Tələbə] faizi işarəsidir. >> Bəli, modulo olan faiz işarəsi. Belə modulo sizin ohai ildə index üzərində kesmek istədiyiniz zaman burada lazımlı olacaq. Və yalnız bir sürətli ipucu: bir az hesablama off kimi söz üzərində wrapping hesab edin 3 qrup, 4-cü şəxs, orada olduğu halda, dedilər ki, onların sayı 1 olan 4 mod 3 idi. Belə ki, yol cəhd və düşünün. Əgər sonra KJ ci və sonra pi lakin yerdə, düsturu gördüm ki, Siz bu takip əmin etmək istəyirəm. Siz i zəng etmək üçün ehtiyac yoxdur, siz onu j zəng etmək üçün ehtiyac yoxdur amma siz düz metin ilə siz olduğunuz mövqeyi takip əmin etmək istəyirəm həmçinin mövqeyi Açar söz ildə olduğunu o mütləq eyni olacaq çünki. Söz deyil yalnız - Sizin düz metin çox tamamilə müxtəlif uzunluğu ola bilər. Ayrıca, düz metin, nömrələri və simvolları var belə mükəmməl birlikdə uyğun gedən deyil. Bəli. [Tələbə] orada keçmək üçün bir funksiyası vardırmı? Siz kapital A bir dəyişiklik edə bilərmi? >> Bəli, mütləq var. Siz kontrol edə bilərsiniz - Mən bu toupper, bütün 1 söz inanıram. Amma şeyi Şifreleme və mətn qorumaq üçün çalışdığınız zaman, ayrı-ayrı hallarda üçün yaxşı əsasən var. Bu böyük var, onda bu keçmək istəyirəm Sizin formula, siz geri baxmaq zaman go növü üçün necə çünki əvəz nömrələri təmsil edən ASCII yol arasında və faktiki əlifba indeksi, biz əmin etmək istəyirəm istifadə etmək olacaq ki, model bir növ var olacaq. Faktiki model başqa bir qeyd. Siz mütləq nömrələri ilə məşğul olmaq üçün olacaq. Stil nümunəsi olan sehrli ədəd istifadə verməyəsiniz. Istədiyiniz hər zaman shift bir şey istəyirəm demək - Əgər bir şey dəyişkən olacaq olduğunuzda OK, işarə belə, başqa bir spoyler edir müəyyən məbləğ ilə faktiki sayı tərəfindən təmsil çalışırıq lakin keçir və növ daha məntiqli olacaq ASCII dəyəri, istifadə edə bilərsiniz əgər baxın. Başqa bir qeyd: biz düsturlar ilə məşğul olduğunuz Çünki, Sizin TF cür istifadə edilə bilər nə model biləcəklər baxmayaraq, Sizin rəy cür etmək yaxşı məntiq kimi izah "Mən bu model istifadə edirəm ..." və növü üçün şərh müfəssəl şəkildə model izah edir. [Bu gözden geçirmek 2] hər hansı digər məsələlər var, onda mən yalnız bir az burada qalmaq lazımdır. Kripto və gələn üçün təşəkkür: Sizin pset 2 Uğurlar. [Tələbə] təşəkkür edirik. >> Təşəkkür edirik. [Media Offline intro]