[Powered by Google Translate] DAVID J. MALAN: Bütün hüququ. Bu CS50, bu həftə iki sonu. Bu vaxt sabah ətrafında ac olmaq üçün gözləmək, biz olacaq bilirik ki, kiçik bir qrup sabah, cümə axşamı, 1:15 PM kimi çağırmaq. Siz RSVP istəyirsinizsə bu URL burada var. Space məhdud, belə ki, forma zaman doldurdu əgər bağışla edin bu doldurun. Maraq ola bilər ki, baxmayaraq başqa bir URL budur. Belə ki, yalnız bir ay haqqında, kurs mövcud olacaq bütün daha geniş edX vasitəsilə İnternet insanlar olacaq vasitəsilə əslində, çox fəal zamanı məşğul birlikdə təqib edə. Onlar CS50 Aracı və CS50 müzakirə və ən istifadə olacaq biz artıq bu dövr istifadə edilmişdir ki, müxtəlif proqram alətlər. Və biz bu il bir təcrübə kimi etmək istədiyiniz təşəbbüslərin bir biz digər danışıq dilinə tərcümə edə bilər və yalnız nə qədər content görmək olur yazılı dil. Bu layihədə iştirak maraq, elə ola bilər Belə ki, əgər biz əlbəttə nin İngilis transkriptleri və Altyazı təmin edəcək mühazirə və şort və seminarlar və bölmə və kimi - siz sərbəst danışmaq və ya sərbəst bir başqa dildə yazmaq, biz ki, Bu layihə sizə cəlb sevgi, elə siz bir və ya daha çox almaq videos, siz çox yaxşı bildiyiniz bir dil onları tərcümə. Siz interface hissi vermək üçün, bu web-based istifadəçi interfeysi var biz əsasən bu kimi bir UI yaradacaq istifadə lazımdır ki,. Bu mənə bir Halloween əvvəl tədris edilmişdir. Və bu zaman ştamplara yanında qara orada sağ, Əgər gün mənim ağız həyata gələn müxtəlif şeyi görəcəksiniz. Və sonra aşağıda, bəzi digər dilinə tərcümə edə bilərsiniz. Harita bu halda, İngilis arasında dəqiq nə və, İspan deyirlər. Belə ki, əslində bir çox istifadəçi dostu aracıdır. Siz klaviatura qısa yolları ilə çox asanlıqla sürətli irəli geri bilər. Bu təcrübə iştirak etmək istəyirəm və söz var ki, əgər görüldü və orada insanlar potensial minlərlə oxumaq, hiss edin iştirak etmək üçün pulsuz. İndi biz bir çox bazar ertəsi olan kitten haqqında bir söz, göndərdik deyə scary göndər. Bölmələr gəlir kimi ofis saat gəlir və kimi, dərk edin Kursun dizayn çox tələbələr əməkdaşlıq üçün çox və birlikdə problem dəstləri və problemləri iş danışır. Və həqiqətən xətti yalnız iş siz nəticədə yenə aşağı gəlir təqdim etməlidir öz olmalıdır. Və kifayət qədər vicdanla, var - ofis saat, bu tamamilə normal var - Bəzi söhbət etmək - bu, tamamilə, hətta gözlənilən oldu Sizə gələn dostlar. O bir mövzu ilə mübarizə və sizin kimi danışırsınızsa, oh, yaxşı imkan Mənə mən yazdığı kodu bəzi xəttinin bir fikir verir. Bu gözəl deyil. Bu olur. Və öyrənmə prosesi ilə, mən hesab edirəm ki, çox əlverişli edir. Baş növ üzərində əyilmiş zaman xətt, təkrar keçdiyi olur Harada burada ki, çox çox saniyə və ya dəqiqə həqiqətən var dostunuz üçün bir Açma imkan olmuşdur. Və əlbəttə, hər şeyi e-poçt və Dropbox vasitəsilə mübadiləsi almaq zaman kimi, çox xətt var. Belə ki, bütün vasitələrlə, rahat və dostları ilə söhbət təşviq hiss və psets və daha çox haqqında sinif yoldaşları. Və yalnız nə sonda təqdim həqiqətən olmalıdır bilirik ki, Sizin yaradılışınızda və başqası məhsul. Belə ki, cuddly canlılar eyni damar, siz bilər Bu adam burada bilirik. Belə ki, bu il bir horrifically cheesy film. Hər kəs burada Spaceballs görüldü? Bütün hüquqlar. Burada yaxşı bir sıra edir. Belə ki, bu son nəticədə bu gün tətbiq bizim gözəl akademik yolu Kriptoqrafiya anlayışı. Gələcək olan pset 2, üçün etki alanı xüsusi problemləri və belə bir gec sabah gecə, Kriptoqrafiya dünyaya dalış edən edir informasiya şifreleyerek və ya Scrambling sənətidir. Bu nəticədə təhlükəsizlik dünyasına aiddir. İndi təhlükəsizlik ən üçün bizə kifayət qədər dünyəvi mexanizmlərinin formasında gəlir. Bizim bütün istifadəçi adı və parol var. Və hamımız çox güman ki, çox pis adı və parol var. Parolu çox saytlarda eyni deyil ki, yəqin deyil ən yaxşı ideya, biz semestr sonuna doğru müzakirə edəcəyik kimi. Sizin haqqında - heç bir zarafat - Parolu yapışqan qeyd yazılı Əgər çox mütləq ən yaxşı dizayn lakin çox ümumi deyil ki, monitor, fenomen. Siz parol şifrelemek üçün Kriptoqrafiya istifadə edirsinizsə və onlar xüsusilə həssas. Siz gizli sözü malik ağıllı super olan olduğunuz hesab əgər sabit parol bütün var ki, sürücü lakin haradasa sənədləşdirilməsi heç bir baxmaq olacaq ki, bir qovluq var ki, çox çox deyil təhlükəsiz mexanizmi. Və nə pset 2 təqdim edəcək Kriptoqrafiya bu incəsənət və parol kimi şeylər ki, məlumat Scrambling bütün daha təhlükəsiz. Belə ki, bir çox qeyri-real-dünya bu çox real dünya problem həvəsləndirmək ssenari, mənə bu burada bizim sevimli kliplər biri ilə tanış edək film, Spaceballs. [Video playback] -Kask, siz şeytan, nə olub? Əgər qızım nə edirlər? Mənə parlaq gənc plastik cərrah, Dr Philip təqdim etmək üçün icazə Bütün ildə Schlotkin ən böyük burun iş adamı Kainat və Beverly Hills. -Sizin əlihəzrət. -Burun iş? Mən başa düşmürəm. O, artıq bir burun iş idi oldu. Bu şirin 16 olub. -Xeyr, siz nə deyil. Bu, çox çox pis. Siz hava qalxan məni birləşməsi vermir varsa, Dr Schlotkin olacaq onun köhnə burun qızı geri verir. -Xeyr! Harada ki, əldə etdiniz? -Bütün hüququ. Mən deyim. Mən deyim. -Xeyr, baba, no. Siz olmalıdır. -You're sağ, əziz. Mən sizin yeni burun kaçırırsınız. Amma nə olursa olsun onlara birləşməsi demək deyil. -Çox yaxşı. Dr Schlotkin, sizin ən pis edin. -Mənim zövq. -Xeyr! Gözləyin, gözləyin. Mən deyim. Mən deyim. -Mən bunu bilirdik. Bütün hüquqları, mənə ver. -Birləşməsi biridir. -Biri. -Biri. -İki. -İki. -İki. -Üç -Üç. -Üç. -Four. -Four. -Four. -Beş -Beş. -Beş. -Yaxşı birləşməsi bir, iki, üç, dörd, beş deyil. Mən heç həyatımda eşitdim stupidest birləşməsi var. Bu axmaq onun baqaj var ki şey növü var. Əlahəzrət, sizə təşəkkür edirəm. -Nə oldu? -Mən divar off çıxdı. -Xeyr, olmadı. Siz bütün film söndürülür. Mən səhv düyməni basdı olmalıdır. -Yaxşı, geri qoydu. Film geri qoyun. -Bəli, efendim. Bəli, efendim. Nin, Erna getmək edək. , Gretchen gel. Əlbəttə, mən hələ bu size faturalamamızdan lazımdır bilirik. -Bəli, bu iş idi? Qapısı harada? -Bu əfəndim işləmişdir. Biz birləşməsi var. -Böyük. İndi biz planet Druidia təzə hava hər keçən nəfəs bilər. Birləşməsi nədir? -Bir, iki, üç, dörd, beş. -Bir, iki, üç, dörd, beş? -Bəli. -Bu gözəl. Mən baqaj eyni birləşməsi var. Dərhal gediş üçün Spaceball 1 hazırlayın. -Bəli, efendim. -Və baqaj haqqında birləşməsi dəyişir. -Ow! [END video playback] DAVID J. MALAN: İndi bütün görməlisiniz inanılmaz film. Belə ki, burada kontekstində etibarsız data imkanı gəlir ki, bu şifrelemek və dırmaşma üçün. Və bu, məsələn, şifrəli mesaj nümunəsidir. Bu, həqiqətən, İngilis bir şey deyir. Amma aydın tam aydın deyil. Biz ayrı tease üçün bu gün tam dairə gəlmək lazımdır nə gizli burada mesaj. Lakin kompüter real dünyada, hər şeyi hətta güc kimi baxmaq deyil İngilis ifadələr ola bilər. Məsələn, bu və ya standart Linux və ya Mac tapa bilər nə Bir müddət sonra bir dəfə idi ki, bir fayl Unix kompüter parol fayl çağırıb. Hal-hazırda, bu, başqa yerlərə köçüb oldu. Bir sistemi doğru yerdə baxmaq Lakin, siz yalnız görürsünüz istifadəçi adı və ya sistem digər insanların, amma görürsünüz bir onların parol şifreli versiyası. Həqiqətən, orada söz crypt aşağıdakı məhsulları şifrəli olduğunu göstərir. Bu zahirən təsadüfi məktublar və simvollar və nömrələr seriyası və s yalnız adətən bəzi gizli bilerek şifresi çözülen bilər - gizli bir söz, gizli nömrəsini. Və həqiqətən, Kriptoqrafiya nəticədə sonunda aşağı sənətinin bəzi etibar sort və başqasına deyil ki, bir şey bilmədən. Biz bu gün bir az daha ətraflı araşdırmaq lazımdır və pset gəlmək. İndi pass / uğursuzluqla bir söz. Belə ki, xüsusilə, siz bəzi pset 1, cihaz daxil dived, həmçinin özünüz üçün bir çox yeni dünya ki, frustrations həyata keçirilir və qarışıqlıq və yalnız texniki çətinliklər gözlənilir var. Xüsusilə yalnız çox yeni var olduğu ilk pset, yalnız əldə ls və cd və yeni mühit bütün bu gizli əmrləri ilə tanış olmuşlar. Və faktiki material və özü proqramlaşdırma ayrı deyil. Belə ki, mövcud olan ofis saat əlbəttə var ki, bu da həyata dəstəyi quruluşu. Bölmə bu gələn bazar günü başlayacaq. Siz yalnız hiss edirsinizsə Lakin ən əsası, bu deyil sizin üçün dünya, həqiqətən, yalnız vaxt deyil bilirik. Və bir sinif alaraq mənə il əvvəl bu imkan yox idi uğursuz / keçmək, vicdanla, mən hətta sinif ayaq qoymuşuq ki, heç vaxt. Və siz qədər bu qədər dəyişmək demək, kurs beşinci Bazar ertəsi bilər. İndi kənarında etdiyiniz Belə ki, əgər həyata ki, daha çox baş bəzi digər daxil sular ümumiyyətlə, əlbəttə yalnız keçmək / uğursuz dəyişən hesab edirsiniz. Yenə şeyi alaraq Harvard burada, həqiqətən, bu mədəniyyət yoxdur hər kəs həqiqətən nail olmaq və ya overachieve istəyir bəri uğursuz / keçmək. Amma səmimi, bu həyata bir şey çalışan gözəl bir yoldur ki, güc sizə tanış olmalıdır. Və bəlkə də, çox gözəl əksər hallarda bunu çıxacağıq Sizin sürpriz çox. Və daha konkret olaraq, mən nə adətən uğursuz / keçmək nə düşünürsünüz sizi olduğunuz halda, siz pset 0 təcrübəli ola bilər xüsusən 10 saat, 15 saat, 25 saat bir pset daxil - və yalnız tarpıltı edirik divar qarşı baş, və bu, gecə gec super əldə edir lakin, yol 90% kimi pset qəbul etdik Siz yalnız bir şey anlamaq bilməz bilirik - siz sort bilərsiniz, həqiqətən, bu kimi bir sinif kənarında off edir uğursuz / keçmək məsud tamam demək, mən mükəmməl deyil bilirik. Amma bu mənim ass off işləmişdir. Mən bunu başa Ü ilə olduqca xoşbəxt deyiləm. Və bu keçid üçün ümidlərini / bilməyəcəyik. Belə ki, nəzərə ki, saxlamaq yoxdur. Bütün hüquqlar. Harvard Universiteti Wi-Fi istifadə üçün mübarizə edən sizin bilmeleri ki, ətrafında üzən bir CS50 SSID var ki, Wi-Fi bağlantısı üçün daha yaxşı şans ola bilər. Cəhd istəyirsinizsə - Bu üçün Onu bir az ironik var daha sürətlə bu qoşulma və heç bir yaxşı bize bildirin - səkkiz çünki bir, iki, üç, dörd, beş, bütün yolu səkkiz edir beş daha təhlükəsiz. Siz Wi-Fi parol lazımdır Belə ki, kabelsiz burada CS50 qoşulmaq. Bir, iki, üç, dörd, beş, altı, yeddi, səkkiz. Siz hələ aralıq keçid məsələlər varsa CS50 üzrə poçt, müzakirə və biz bu yer üçün bilirik ki, səlahiyyətləri imkan olacaq. Bütün hüquqlar. Xüsusilə fan oğlanlar ya qızlar olan sizin üçün çox sürətli bir iltifat, hər şeyi Apple. Mən geri bir neçə il qədər qazılmış, burada ilock.c bu faylı idi, yalnız cür daha konkret və daha mürəkkəb etmək daha əsas C bəzi biz yazılı olduğunuz proqramlar. Mən ilock.c, bu fayl açdı. Bu gün üçün mühazirələr səhifə mövcud deyil. Sol tərəfində, siz funksiyaları uzun bir siyahısını görmək. Belə ki, bu yazan yoldaş, funksiyaları bir çox qədər yazdı yalnız əsas çoxdur. O, burada kitabxana bütün dəstə istifadə. Və biz vasitəsilə scrolling başlamaq əgər, nə bu əslində isə çox ilk inanıram, orijinal iPhone üçün çat. Orijinal iPhone jailbreak istəyirdi zaman, hansı untether deməkdir o AT & T və həqiqətən bu xüsusi proqram və şeylər ki, Apple insanlar istəmədi - də, kimsə onlar istifadə edə bilər dəqiq necə anlamaq üçün vaxt Apple proqram proqram qüsurlar, səhvlər, bugs. Və beləliklə ilock.c anadan olmuşdur. Bu bir kompüter üzrə tərtib edilmiş və bir iPhone üzərində yüklü əgər USB kabel, demək vasitəsilə bilgisayarınıza bağlı, bu sizə verəcək iPhone və qoy inzibati və ya kök güzəştlər siz olduqca çox etmək istədiyiniz hər hansı. Və bu maraqlı pişik və siçan Apple arasında oyun və orada olub onlar kimi xüsusilə dünyanın qalan, bir çox şirkətlər kimi, kilidləmək üçün cəhd onların məhsulları aşağı yalnız onlar niyyətində nə ilə edə bilərsiniz ki,. Amma bu kimi insanların sayəsində və aşağı səviyyəli onların anlaşma məlumat və bu halda, C proqramlaşdırma və tanış yapıları bir çox biz oynamağa başlamışdır etdik ki, siz həqiqətən Leverage edə bilərlər Siz uyğun və bəzi korporativ şəxs mütləq görmək qaydada hardware. Belə ki, məsələn, mən bütün bu nə heç bir fikrim yoxdur. Amma GetVersion olduqca sadə səslənir. Və bu şəxs yazırdı ki, bir funksiyası kimi görünür. Bir arqument kimi tam bir növ al, bir şey geri deyil, vəziyyətdə olarsa, şərt, əgər burada loop üçün və bir ilə loop görünür qırmaq və birtəhər versiyası nömrələri aiddir. Biz aşağı diyirləyin varsa - Bu açar sözlər, bir çox yeni olacaq və orada baxmayaraq bir burada funksiyaları bütün çox biz görməmişəm və heç üzərində görmək bilər dövr kurs - Günün sonunda, biz olduğunuz eyni qaydalar və məntiq aşağıdakı İndiyədək ilə oynayır. Belə ki, bu sizin iPhone 3s ya 4s və ya tezliklə 5s, bu gün, çat çox köhnə lakin biz etdik ki, bütün çox bu dünyada əldə edir bilirik ki, daxil dived. Belə nin bir az daha sadə misal nəzər salaq. Bu, yalnız bəzi sintaksis ilə isidilmiş və həmçinin bəzi digər məlumatlar almaq üçün Bu səbəbdən biz danışdı sonra, lakin həqiqətən C. görmədim ki növü fayl positive1.c çağırıb. Və üst şərh başına, bu, yalnız istifadəçi təmin tələb müsbət nömrəsini. Belə ki, istifadəçi interaktiv üçün gözəl bir do-isə loop, bir misal var Əgər bir şey etmək üçün istifadəçi demək lazımdır proqramları. Onlar əməkdaşlıq yoxdur, siz onlara fəğan və ya giriş rədd edirlər. Istifadəçi var point halda, mən 24 qədər uzun yolu xətləri 19 etmək gedirəm Mənə bir müsbət sayı verilmir. İndi burada bu detal line 18-də, niyə mən bu bütün yuxarıda n bəyan etməyib loop tikinti kimi sağ line 22 Növbəti qarşı harada həqiqətən n almaq üçün qayğı? Evet? [Işitilemez] DAVID J. MALAN: Bəli, belə daxilində bu məsələ. Və layman müddəti ilə, əhatə dairəsi nə aid deyil? Evet? [Işitilemez] DAVID J. MALAN: Siz Qaraçuxurlu bir az danışmaq olarmı? HOPARLÖR 1: Müəyyən bir dəyişən edə bilərsiniz harada. DAVID J. MALAN: Perfect. Müəyyən bir dəyişən daxil edə bilərsiniz. Və ümumiyyətlə, thumb qayda belə uzaq olmuşdur ki, bəzi həcmi dəyişən siz gördüm ki, ən son qıvrım aşırma ilə müəyyən edilir. Və bu halda, mən, line 22-n elan səhv etmişdir, əgər ki line iş olardı. Mən int almaq olardı və mən line 22 dəyişən n onu qoymaq olardı. Lakin kodu xətt indi söhbət alıram nə heç bir fikrim yoxdur ki? 25 Belə ki, bu halda, kənarda qalır, çünki, o cümlədən, 24 çıxır bu qıvrım aşırma edir. Belə ki, çox asanlıqla sadəcə elan edərək bir az bir narahatlıq və bit lakin həll funksiyası özü dəyişən xaricində. İndi biz bu gün sonra görəcəksiniz, bir addım irəli getmək olar. Və hətta bir az tənbəl ala bilər - və bu, ümumiyyətlə, tövsiyə edilə bilməz - lakin hətta tənbəl almaq və dəyişən qlobal qoymaq, belə deyil, danışmaq bilər daxilində fəaliyyət deyil, daxili bir loop, ancaq fayl özü xaricində Mən line 15-də burada olduğu kimi funksiyaları bütün siz yazdıq. Ancaq bu, ümumiyyətlə, sonra qaşqabağını töküb üzünü olunur. Biz rəftar kimi, bu bəzən digər problemlərin həllini həyata nəticədə bax. Beləliklə, biz bu kimi tərk edəcəyik. Amma bu yalnız özümüzü ifadə başlamaq üçün yenidən əgər in görək az fərqli. Belə ki, bu proqram, yalnız aydın olmaq, positive1 edir. Mənə burada davam və mənim terminal pəncərə daxil edin positive1 etmək edək. Tamam tərtib edir. Mən daxil edib positive1 çalıştırmak üçün gedirəm. Mənə bir müsbət tam vermək tələb edir. Mən -1 demək lazımdır. Bu iş yox idi. 0, 99, iş görünür. Bəlkə ən ciddi test. Amma ən azı biz doğru yolda olduğunuzu gözəl ağlı başında olma çek var. Belə ki, indi mənə irəli getmək və bu versiyası iki açıq bildirin. Və artıq müxtəlif nədir? Eyni şey həyata keçirir. Amma aydın fərqli bu dəfə kimi nə jumping var? Bəli, yaşıl bu bool. Gedit, bool kimi tanınan yaşıl bu söz qeyd edir bir veri növü deyil. Bu C. bütün versiyasını üçün inşa gəlmək deyil bir daxil lazımdır xüsusi kitabxana. Bizim halda, mən CS50 kitabxana daxil ki, biz bool girmə imkanı vardır. Amma line 18, biz şükür adlanan burada bir Boolean dəyəri görünür. Mən bu bir şey deyilən bilərdi. Amma yalnız cür bəzi semantik mənasını çatdırmaq üçün minnətdar çağırıb. Belə ki, ilkin line 18-də, mən yəqin minnətdar deyiləm, çünki Şükür Boolean dəyər line 18 yalan üçün başlatılmış olunur. Və sonra mən yalnız nə 23 vasitəsilə xətləri 21 burada etdik ki, sonra görünür cür mənim məntiq yeniden yazılmış. Heç bir funksional müxtəlif olur. Istifadəçi təmin edib int daha çox olsa line 22, indi mən yoxlamaq 0, sonra sadəcə doğru təşəkkür dəyəri dəyişir. Və mən ona görə edirsiniz? Line 25 Görünür, mən vəziyyəti yoxlamaq üçün gedirəm, çünki. Şükür yalan isə bu loop edin. Bir az, çünki Mən versiya bir alternativ kimi bu təklif az daha asan, bəlkə də. Bu İngilis əsaslandırılmış bir az çoxdur. Şükür yalan isə şükür deyil və ya isə Belə ki, aşağıdakı. Və bu zaman da, mən yəqin istifadəçi tipli nə yadda vecimə deyil çünki bildiriş heç dəyişən n var. Yəni əslində, mən - orada bir az ağ yalan. Biz altına almaq bir Funksional, proqram bir az fərqli Mən n nə xatırlayaraq deyiləm çünki. Amma burada nümayiş etdirmək istəyirdi çox ki, biz və GetInt gördüm baxmayaraq GetString indiyədək belə bir bərabər Qeydiyyat sağ tərəfdən istifadə olunur biz ciddi lazım deyil ki, dəyəri, texniki, xatırlayıram. Hər hansı səbəbdən yalnız dəyəri saxlamaq üçün qayğı yoxdur, siz yalnız mənə dəyəri yoxlamaq üçün, biz sadəcə GetInt açıq kimi yazmaq olar ki, qeyd paren, yaxın paren. Deyirdik olduğunuz kimi funksiyası, bir dəyər geri gedir. Bu int geri vermək olacaq. Mən 99 yazın zaman belə əqli GetInt, bu baş hesab sayı 99 qaytarır. Və konseptual, mənim kodu əslində bu kimi olsa var. 99 0-dən həqiqətən böyük Belə ki, onda şükür doğru olur. İndi təşəkkür edirəm çünki sonra line 25 ooh həyata keçirir, biz tamamlayın. Və line 26, biz sadəcə demək, nə bu, müsbət tam üçün thanks ola oldu. İndi belə danışmaq, burada kiçik sintaktik şəkər nə edək. Biz bu üçüncü və son variance Bu xətt 25 təmizləmək bilər Gəlin görmək positive3 edir. Belə ki, indi nə kodu xətt yalnız fark? Bəli, belə ki, 25. Və biz, həqiqətən, yalnız hələ bu oyun görməmişəm etdik. Amma biz nə işarə edən bazar ertəsi günü ünlem bax etdi? Belə ki, ya inkar deyil. Belə bir Boolean dəyəri almaq və onun dəyəri çevirmek. True yalan olur. Asma doğru olur. Belə ki, bu, mən təklif edirəm, bir yol bir az daha asan hətta Mən hələ yalan təşəkkür başlamaq çünki kodu yazmaq. Mən hələ də aşağıdakı. Vaxt gələndə mən doğru təşəkkür seçin. Amma indi siz həqiqətən yalnız şifahi sağ bu kodu tərcümə edə bilərsiniz minnətdar deyil isə. Bang və ya ünlem, belə deyil, anlayışı bildirir Çünki isə minnətdar deyil. Belə ki, yenə biz özlüyündə hər hansı yeni anlayışlar təqdim edilməmişdir. Biz Not ifa zaman geri Booleans danışdı etdik. Amma biz yalnız bizim kodu yazılı başlaya bilərsiniz indi həyata bir çox müxtəlif yolları. Sizə yol anlamaq üçün mübarizə cür etdiyiniz Belə xüsusilə pset1, əgər bir proqram yazmaq, bahis heç bir olmalıdır olacaq siz uğurlar istəyirik, çünki sizə ola bilər ki, həllərin sayı. Məsələn, bu proqramlar da sadə üçün yalnız üç edir. Bütün hüquqlar. İndi bazar ertəsi geri, biz geri dəyərləri ilə bu qeyd buraxdı. Belə ki, ilk dəfə üçün, biz yalnız əsas yoxdur ki, bir proqram yazıb bu da burada yazmışdır ki, onun öz xüsusi funksiyası var. Belə ki, 34 vasitəsilə line 31, mən bir kub funksiyasını həyata etdik. Bu kompleks deyil. Bu halda, yalnız bir dəfə bir dəfə deyil. Amma nə bu barədə mühüm bir şəklində daxil alaraq edirəm ki, Mən bir dəfə bir dəfə şəklində çıxış qaytarılması alıram. İndi mən zəng etmək üçün, mən printf tək ilə istifadə çox kimi, imkanı var kub funksiyası zəng bu funksiya. Və kub funksiya bəzi daxil edir. Və kub funksiya bəzi çıxış qaytarır. Və əksinə, printf yalnız bir şey idi. Bu barədə qayğı ki, bir şey qaytarmayıb - baxmayaraq, kimi kənara, bir dəyər geri edir. Siz yalnız ümumiyyətlə bilməz. Printf yalnız bir şey idi. Bu ekran çap bir yan təsiri var idi. Burada əksinə olaraq, biz, kub funksiyası olan həqiqətən bir şey qaytarır. Beləliklə, bu adətən - bu ilə tanış olanlar üçün bu, olduqca sadə bir fikirdir. Lakin giriş keçən və əldə bu fikri olanlar az tanış üçün geri nəticələr isə yalnız bir şey super sadə edək. Rahat hər kəs qısa səhnəyə gəlir? Siz, həmçinin sizə bir kamera ilə rahat olmalıdır. Bəli. OK, sizin adınız nədir? KEN: Ken. DAVID J. MALAN: Ken. Bütün hüquqlar, Ken. Qədər Hadi. Belə ki Ken burada növ bir funksiyası olacaq. Və nin irəli getmək və bunu bildirin. Bir az xülya almaq edək. Siz cavab gözəl. Mərkəzi mərhələ xoş gəlmisiniz. Bütün hüquqlar. Nin bura düyməsini basın edək. Bütün hüquqlar. Belə ki, burada müasir Kara Tahta var. Və nə mən məsələn, əsas funksiyası var. Mən əlimdə bir iPad yoxdur. Yaxşı, həqiqətən, demək olmaz - Mən, həqiqətən, necə xatırlamıram. Mən, həqiqətən, yaxşı yazı yoxdur. Və buna görə də mən sizə, mənim üçün ekranda bir şey çap etmək istəyirəm. Mən əsas proqram olan edirəm. Mən sizə gedirəm mənim toyuq danışıq bu yazı bu demək və sonra giriş keçən. Bu həyata baxmayaraq ki, səfeh, bir funksiyalarının anlayışı və zəng funksiyası və bu funksiyanı həqiqətən sonunda aşağı qaytarılması. Mən əsas deyiləm. Mən yalnız ekranda ("bir") printf yazıblar. Bu proqram çalışan alıram. Və ya bir parametr - Və tezliklə printf adlı olur kimi, bir arqument edir bəzən - ikiqat quotes arasında. Burada ki, mübahisə edir. Mən Ken üçün keçən alıram. İndi o yəqin il əvvəl bir sıra yazılı bir qara qutu deyil yalnız ekranda şeyi çap bilir. Belə ki, həyata. Bu pis deyil. Belə ki, çox yaxşı. Belə ki, indi Ken icra edilir. Mənə bir şey geri əl ehtiyac varmı? Beləliklə, biz belə uzaq gördüm deyil. Yenə printf həqiqətən bir sıra qayıtmaq deyil. Amma biz onu istifadə heç etdik çünki indi ki, ignore olacaq. Belə ki Ken üçün ki. Və indi əsas icra qayıdır - əsas kod ki line çünki yenə proqram nəzarət edir printf, icra edilir. Və biz digər xətləri var hər hansı icra yol haqqında gedin. Bütün hüquqlar. Belə ki, indi-nin bir az fərqli Məsələn edək. Burada bu dəfə ilk burada ekran sil bildirin. Və bu zaman, biz cubing funksiyası edəcəyik. Amma bu dəfə mən bir çıxış dəyər gözləyirik. Belə nin irəli getmək və bunu bildirin. Belə ki, indi deyir ki kodu bir xətti x = kub (x). Yəni əslində let's - kodu, geri, xətti bu kimi görünür. x = kub (x). Belə ki, necə bu iş gedir? Belə nin irəli getmək və daha bir ağ verək. Mən bu anda ildə x dəyəri aşağı indi yazmaq gedirəm zaman, bu, sadə saxlamaq üçün, 2, deyək etmək olur. Mən, bir kağız parçası 2 dəyəri yazıblar mənim dəyər x olan. Mən Ken üçün əl. KEN: Mən yalnız cavab yazmaq? DAVID J. MALAN: Bəli, yalnız cavab yazmaq imkan verir. Okay. İndi mənə bir şey qayıtmaq üçün var. Belə ki, - mükəmməl. Segue Nice. Belə ki, indi o, bu halda, 8 dəyəri mənə geri verir. Mən bunu nə etməliyəm? Yaxşı, həqiqətən, gəlin görək. Bu hüququ alın. Mən bu ilə gedirəm? İndi bu dəyəri almaq və həqiqətən o, onu saxlamaq üçün gedirəm yaddaş eyni bit. Ancaq xəbərdarlıq, burada mübarizə cür edirəm. Ü Mən, həqiqətən, x dəyəri yazmaq, çünki mən bir az qarışıq Ben? Nə mən yalnız etdik kağız parçası Ken fiziki tərəfdən Çünki ki x olan dəyəri 2, idi. And olsun ki, nə dəqiq deyil. Belə ki, siz bir funksiyası zəng zaman, siz bir dəlil keçmək çıxır ki, "salam dünya" kimi və ya siz istəyirik, ümumiyyətlə, 2 kimi bir dəlil keçmək ki, dəlil surəti keçən. Və mən burada 2 saylı aşağı yazmış və Ken onu yalnız o olmalıdır Mən hələ bir yerdə dəyəri 2 surəti var deməkdir. Həqiqətən, indi dəyəri 8 geri kazanılmış etdik ki, mən geri getmək lazımdır, çünki Mən bir sayı 2 olduğu RAM və faktiki 8 yazın. Belə ki, görmə sözün keçən bu anlayışı xatırlamaq dəyəri surəti. Ken onun şey yoxdur geri bir şey mənə Hands - bu halda, 8 kimi bir dəyəri. Və sonra mən ki, dəyəri bir şey varsa, mən ətrafında saxlamaq istəyirik. Belə ki, bütün bu uzun əvvəl bütün çox tanış olacaq. Burada bu demo üçün çox Ken təşəkkür edirik. Bütün hüquqlar. Çox yaxşı. Belə ki, son nəticədə funksiyası bəzi aid necə edək biz burada bunu etdik ki, zəng. Mənə irəli getmək və burada cubing Məsələn bizə geri gətirmək imkan verir. Və biz, həqiqətən, bu da qəbul başlamaq istəyirsinizsə, biz olacaq fark sayı x qəbul edilir ki, faktı nəzərə etmək burada həqiqətən funksiyası keçdi olunur nə fərqlidir. Belə ki, yenə, surəti qəbul bu olduqca olmaq niyyətindədir yalnız bir anda ilgili. Belə nin çox sağ hələ işləmir ki, bir şey nəzər salaq. Mən irəli getmək və bir üçüncü arabası Məsələn açmaq gedirəm olan təbiəti ilə flawed edir. Və buggy3 adlanır və bir dəyişdirmə funksiyasını həyata keçirir oldu. Belə ki, burada biz x və y özbaşına üçün başlatılmış bir əsas funksiyası Müvafiq olaraq 1 və 2,. Biz GetInt istifadə edə bilər, ancaq yalnız bir sadə həyata lazımdır. Belə ki, 1 və 2 kimi ağır kodlu var. Xətləri 21 və 22, biz yəqin x və y, satır başına bir çap. Sonra, line 23, mən, nöqtə, nöqtə, nöqtə bu dəyərləri dəyişdirmə edirəm iddia edirlər. Mən yəqin svop adlı line 24 funksiyası zəng iki dəlilləri edir. Funksiyaları iki dəlilləri almaq üçün tamamilə legit var. Biz printf artıq bunu gördük. Belə svop yəqin x və y edir. Onun adı təklif kimi, mən bu olacaq ki, ümid olacaq Bu iki dəyərlər dəyişdirmək. Beləliklə mən line 25 iddia, dəyişdirildikdə. Mən ehtimal altında x və y baskı ki, onlar həqiqətən değiştirilecek etdik. Amma əslində bu proqram run əgər - Mənə bir terminal pəncərə açmaq bildirin. Mənə buggy3 etmək edək. Adı təklif kimi, bu yaxşı başa niyyətində deyil. Mən x 1 fark, Enter Çünki. y 2-dir. Və hələ, proqramın sonunda, onlar, faktiki olaraq, hələ də eyni istəyirik. Belə ki, yalnız indi Ken ilə, nə həqiqətən neler nümayiş əsaslanır? Yaxşı, bu mübadilə funksiyası daxil dive edək. Bu qısa super deyil. Yalnız uzun kodu bir neçə xətləri var. Amma sadə hekayə əsasında fundamental problem nə izah edir qədər burada Ken ilə? Niyə svop sınıq olunur? [Işitilemez] Exactly. Biz dəyişən, bir surəti özü saxlanılması edirik. Başqa sözlə, svop yəqin iki arqumentlər bir int edir. Və bu özbaşına bir və b deyirlər. Və burada mən, müvafiq olaraq 1 və 2 olan x və y, qəbul etdik. Amma sanki x keçən deyiləm. Mən sözün y keçən deyiləm. Mən x surəti və y surəti keçən alıram. Siz sitemizi və dəyərləri dəyişdirmək yapıştırılabilir sanki demək olar ki, kimi siz həqiqətən manipulyasiya etmək istəyirəm. Ki, proqram həyata başlamaq zaman, var əgər line 35, sonra 36 - Mən hekayə bu nöqtədə, line 37 almaq zaman nə dəyəri var? Hekayə Bu nöqtədə, line 37, bu nöqtədə bir dəyəri nədir? Belə ki, yalnız 1 olmalıdır. Sağ? X ilk arqument kimi qəbul Çünki. Bu funksiya yalnız özbaşına bir ilk arqument çağırır. Eyni y, ikinci dəlildir. Və yalnız özbaşına ikinci dəlil b zəng edir. İndi bu dichotomy həqiqətən kifayət qədər sadəcə izah olunur. Bu barədə düşünün. Bizə heç printf yazan şəxs görüşmüşdür. Beləliklə, şübhəsiz ki, o, bizim dəyişənlərin 30 il sonra gedir nə heç bir fikir var çağırılacaq. Beləliklə, siz dəyişkənlərdə dediyimiz arasında bir fərq olmalıdır var siz yazıyoruz funksiyaları və nə sizin etdiyiniz funksiyaları dəyişənlərin zəng zəng və ya istifadə. Belə ki, başqa sözlə, mən x və y kimi dəyişənlərin yazıblar. Amma başqasının mübadilə funksiyası yazılı olsaydı, o, şübhəsiz ki, mənim dəyişənlərin adlandırmaq gedir nə deyil. Belə ki, adları bu ikilik niyə bu bilirik. Texniki, mən təsadüf bunu bilər. Amma onlar hələ nüsxə kimi qəbul olunacaq. Bu yalnız yazırdı estetik ki, adam bir təmiz təsadüf olacaq svop eyni adlar istifadə etmişlər. Bütün hüquqlar. Belə ki, hekayə bu nöqtədə, line 37, 1-dir. b 2-dir. İndi Mən onlara dəyişdirmək üçün davam. Yaxşı ilk növbədə, mənə, həqiqətən, çox sadəcə bunu bildirin. Mən kodu həmin üç xətləri nə etdiklərinizi bilmirəm. Mənə yalnız bunu edək. b bir olur. a b olur. Done. Niyə bu məntiqi, broken deyil? Bu hüququ intuitiv şey növü var? Belə ki, b bir olur. Və b bir olur. Ancaq problem line 37 icra kimi nə ki, deyil bir və b dəyəri? 1, eyni. Bunu danışmaq, clobbered Çünki, bir bərabər b değiştirdik. Belə ki, bir dəfə line 37 edam ki, böyük deyil. İndi bu funksiya sayı 1 içərisində iki nüsxədə var. Beləliklə siz line 38-deyəndə, bir b olur, yaxşı, siz cür berbat edirik. Yalnız 1 1 təyin etdiyiniz çünki. Siz tipli haqqında qayğı dəyəri itirilmiş etdik. Belə ki, bu orijinal versiya, mən nə görürsünüz. Mən əvəzinə bu kimi baxdı kodu üçüncü xətt idi. Mən müvəqqəti dəyişən elan - tmp bir çox ümumi adı müvəqqəti dəyişən üçün. Mən surəti etmək istədiyiniz nə uyğun var, çünki bir int var. Mən tmp bir daxili surəti saxlamayın. Belə ki, bir dəfə line 37 yerinə ki, bir dəyəri var - tez ağlı başında olma kontrol - 1. B dəyəri 2-dir. Və tmp dəyəri də 1-dir. Belə ki, indi mən line 38 icra. Line 38 həyata bir dəfə Beləliklə, b dəyəri edir. Və b 2 idi. Belə bir artıq 2-dir. Belə ki, hekayə bu nöqtədə, 2 deyil, b, 2 və tmp 1-dir. Belə ki, indi məntiqi, biz b içinə yalnız Plop tmp dəyəri bilər. Və biz tamamlayın. Belə ki, problem həll etdik. Təəssüf ki, bu formada, bu proqram çalıştırdığınızda, faktiki dəyişdirmək deyil hər hansı dəyərlər. Amma niyə aydın olacaq? Mən yalnız bir an əvvəl məntiqi problem müəyyən. Bu proqram run Lakin yenə, x və y sonuna dəyişməz qalır Proqramın icrası. [Işitilemez] DAVID J. MALAN: Beləliklə, biz bir şey geri qaytarılmamışdır. Belə ki, doğrudur. Çünki bu günə qədər bir problem bir qədər burada var həyata Amma çevrilir ki, biz qayıdacaqlar olduğunuz tək şey bir şeydir. Və bu, yalnız, həqiqətən, bir dəyər ola bilər C. bir məhdudiyyət deyil Bu halda, burada stuck cür deyiləm Mən x yeni dəyər qayıtmaq və ya ola bilər, çünki mən geri bilər y yeni dəyər. Amma mən həm geri istəyirəm. Belə ki, sadə həll burada deyil qaytarılması. Ancaq problem əsaslı nə edir? Biz həqiqətən nə değiştirilecek var? bir və b. Amma və b biz yalnız bütün bu idi deməkdir x və y, surəti var iş - biz yalnız mübadilə söhbət üç dəqiqə kimi sərf funksiyası və bu dəyişənlərin bütün üç. Və təcrid mükəmməl düzgün, böyük deyil. Amma və b-nin əhatə dairəsi yalnız burada bu xətlər edir. Belə ki, yalnız, loop üçün kimi i üçün daxilində tam bəyan əgər loop - eyni bir funksiyası sizə elan edirik bir və b daxili ki, siz yazdıq ki, onlar funksiyası yalnız etibarlı daxili istəyirik. Hansı tez mübadilə icra edilir kimi deməkdir və biz line 24 getmək line 25, x və y bütün dəyişdirilə deyil. Siz yalnız dəyişənlərin surətləri dəyişdirmə zaman bütün çox sərf. Belə ki, bu həll, həqiqətən, qeyri-aydındır ki çevrilir. Bu dəyərlər qayıtmaq üçün kifayət deyil, çünki biz yalnız bir dəyər qayıt. Mən, həqiqətən, eyni zamanda x və y həm dəyişdirmək istəyirsiniz. Beləliklə, biz bu qayıda olacaq. Amma indi, bu məsələ əsaslı faktı irəli gəlir ki, həyata bir və b nüsxə var. Onlar öz daxilində var. Bəli, bəzi bu şəkildə həll etməyə cəhd edək. Mənə həqiqətən burada geri hərəkət edək və açmaq, dördüncü variant, deyək bu, buggy4. Və nə bu? Bu bir zərbə almaq əvvəl baxmaq oxşar lakin sadə problem deyil bu həlli. Bu proqram artım adlanır. Və yəqin line 18-1-ə x tam initializes. Mən x 1 iddia edirlər. Mən, nöqtə, nöqtə, nöqtə incrementing iddia. Mən sonra artım çağırırıq. Amma sonra xətləri 22 və 23, mən incremented edilmişdir iddia edirlər. Mən x güman ki, nə indi 2 iddia edirlər. Lakin bu proqram arabası deyil. Problemi nədir? Evet? [Işitilemez] DAVID J. MALAN: Exactly. Belə x line 18-aşkar elan olunub. Yəni əsas nin qıvrım aşırma daxilində deyil. Belə ki, burada sadə cavab yaxşı x burada var ki. Bu xətt 32 mövcud deyil. Belə ki, bu proqram həqiqətən belə tərtib edəcək. Bu compiler, bu kodu tərtib çalıştığınızda, mənə fəğan edir bəzi bəyan identifikatoru və ya bu barədə bir şey haqqında. Əslində isə edək. Bu buggy4 olun. Yoxdur deyil. Line 32 elan olunmamış identifikator x istifadə edin. Və həqiqətən, bu faydalı ki, bu gün burada daha aydın olsun ofis saat və evdə. Bu cryptically yazılı bir az olduğunu görürük. Amma cingilti var ki, deyərək bizə yelled buggy4.c: 32:5, həqiqətən faydalıdır. Bu səhv xarakter mövqe beş line 32 deməkdir. Bir, iki, üç, dörd, beş edir. Problem yerləşir ki, əslində, var. Və həmçinin ofis saat evdə unutmayın, burada xoşbəxt deyiləm. Mən bir səhv var. Düzeltmek üçün nisbətən asan olacaq. Amma siz yenə böyük səhv mesajları, tam bir bütün ekran almaq, bu bottommost bir yalnız simptomatik ola bilər ki, həyata bu topmost olanları. Belə ki, həmişə üst aşağı sizin hataları aşağı təqib. Yalnız təklif olunur ki, papatya-zəncirvari təsiri ola bilər, çünki həqiqətən bunu çox yol daha çox problemlər var. Mənim qol x arttırmayı əgər Belə ki, necə biz bu düzeltmek olar? Nə olub? Okay. Beləliklə, biz x qlobal edə bilərsiniz. Nın Mən əvvəllər xəbərdarlığını qısa edək. Lakin heck, biz yalnız bir sürətli fix lazımdır. Belə ki, yalnız qədər burada int x deyək. Bu x qlobal edir. Belə ki, indi əsas bu çıxışı var. Və artım bu çıxışı var. Və Mənə davam və indi bu tərtib edək. Buggy4 olun, daxil edin. İndi tərtib görünür. Gəlin buggy4 run, və faktiki iş görünür. İndi bu bunlar biri - Mən demək kimi mən yalnız burada etdiyiniz kimi, mən nə kimi bunu. Ümumiyyətlə, çünki bizim proqramları daha çox maraqlı olacaq və bu daha uzun. Və həyat problemləri üçün həll yalnız ah, əgər bütün qoymaq fayl üst dəyişənlər çox tez proqramları almaq nə idarə horrifically çətindir. Bu yeni dəyişən adları qədər düşünmək çətindir olur. Bu dəyişən nə edir nə anlamaq çətindir olur. Və ümumiyyətlə, bu yaxşı bir həll deyil. Belə ki, daha bu nə edək. Biz burada qlobal dəyişən istifadə etmək istəmirik. Mən x arttırmayı istəyirəm. Mən açıq-aşkar ola bilər - biz yalnız bu çünki günün sonunda, bir silly hekayə növü var. Hesab edirəm ki, operator bilirsiniz, və ya olmasaydı Amma icazə verilmədi özü əsas dəyişdirmək, necə başqa mən bu, buraya Ken həyata bilər zaman kub lakin arttırmayı? Mən burada bu şey dəyişə bilərəm? Bəli. [Işitilemez] DAVID J. MALAN: OK, yaxşı. Belə ki, niyə mən x keçmək yoxdur? Və sonra çox geri, niyə yalnız geri x + 1 deyil mi? İndi bir neçə daha çox şeyi burada dəyişdirmək lazımdır. Mən doğru yolda oldum. Mən nə çimdik üçün lazımdır? Başqası. Evet? [Işitilemez] DAVID J. MALAN: I artım qaytarılması növü dəyişdirmək lazımdır o ləğv deyil çünki. Ləğv heç bir şey geri edir deməkdir. Amma aydın, indi edir. Belə ki, bu ehtiyacları nə uyğun olacaq int dəyişdirmək üçün Mən, həqiqətən, dönən deyiləm. İndi başqa bir şey burada hələ arabası deyil. Evet? [Işitilemez] DAVID J. MALAN: Mən x arttırmayı lazımdır? [Işitilemez] DAVID J. MALAN: Ah, mən x keçmək lazımdır. Mən burada bunu etmək lazımdır. Prototip Belə ki, burada bu qədər dəyişiklik var. Belə ki, bu int olmaq var. Bu olmaq üçün var - hmm. Mən, həqiqətən, burada bir səhv aşağı var. Ilk bu düzeltmek edək. Bu əslində nə olmalıdır? Belə ki, bir int bir şey var. Bu x ola bilər. Sizin dəyişənlərin x bütün zəng başlamaq Lakin səmimi, bu olacaq daha az aydın olan olan. Belə ki, yalnız özbaşına mənim üçün ayrı bir adlandırma qurultayının seçmək edək köməkçi funksiyaları, mən yazıyoruz funksiyaları. Biz bir zəng edəcəyik. Yoxsa zəng bilər - Gəlin daha aydın olacaq even_number çağırırıq. Beləliklə mən sıra müsbət 1 nə qayıtmaq lazımdır. İndi burada bir başqa şey dəyişdirmək üçün burada başqa şey. Mən ilk 21 dəyişdirmək üçün nə var? Mən x onu təyin etmək lazımdır. Mən yalnız artım x zəng edə bilməz. Mən x dəyəri dəyişən cavab xatırlamaq lazımdır sol tərəfində. Və x artıq olsa sol və sağ ki, tamamilə gözəl çünki sağ tərəfdən ilk edam olur sonra sol daxil plopped olur əl şey, bu halda x. Və sonra nəhayət, indi asan fix edir. Bu nə aşağı deyil uyğun olmalıdır. Int sayı. Bütün hüquqlar. Həqiqətən axmaq funksiyası dəyişikliklər bütün dəstə edir. Amma getdikcə etmək lazımdır ki şeyi nümayəndəsi. Belə buggy4 edir. Mən haradasa qıfıllar etdik. Pərvərdigara. Beş səhvlər, kimi, altı-line proqramı. Belə ki, xarakteri, xətti, 18 yanlış nə 5 var? Bütün hüquqlar. Mən bu int elan var. Bütün hüquqlar. Belə ki, digər səhvlər bütün dəstə görmək bildirin. Pərvərdigara. 19, 18, 21. Amma yenə nin yalnız ekran sil qoy - Nəzarət burada L - və yenidən run cingilti. Belə ki, beş problemlər həqiqətən yalnız biridir. Belə ki, indi daxil edin nin buggy4 run imkan verir. Whew. x doğru incremented edilmişdir. Bütün hüquqlar. Ədəd arttırmayı haqqında suallarınız var mı? Evet? HOPARLÖR 2: Nə üçün yalnız dəyişən sayı x dəyişə bilərsiniz ki, ad və siz demək nə olacaq? DAVID J. MALAN: Yaxşı sualdır. Mən yalnız sayı x dəyişə bilərsiniz və proqram bilirik ki, necə dərhal? Belə ki, yenə bu abstraksiya kimi düşünün. Mən əsas deyiləm və Ken əlavə əgər Belə ki, səmimi, mən qayğı yoxdur Ken onun iPad çağırır nə. Mən onun həyata keçirilməsi ilə nə var ki, bir şey çağırır nə qayğı yoxdur Bu funksionallıq. Belə ki, bu mən, əsas deyil ki, icra detal qayğı var. Və sadəcə sayı, burada ardıcıl daxili funksiyasının dəyişdirilməsi və burada sayı, mən derleyeceğiz kimi uzun edər. Bizə çox, sizin sürücü ilə - siz hesab növ kimi deyil idarə sonra, və ya hətta bir avtomobil idarə olsanız edən lisenziya - Bizi ən çox avtomobil başlıq altında necə heç bir fikrim yoxdur. Siz başlıq, bizim ən açmaq əgər sözün, - özüm daxil - həqiqətən biz aradığınız nə istəmirik. İndi bu hüququ kimi məhsulları ilə hiss edə bilər kimi şərti. Amma biz, həqiqətən, avtomobil necə qayğı yoxdur. Biz qayğı yoxdur nə daxilində çubuqlar və porşenlər və kabellər bütün avtomobil həqiqətən edirik. Siz piston dediyimiz kimi bir şey etməz Beləliklə burada bu halda. Eyni fikir. Evet? [Işitilemez] DAVID J. MALAN: dəyişən XA an daha istifadə əvvəl olsaydı, Əgər proqramçı, hər yerdə onları dəyişdirmək lazımdır. Yoxsa sözün, Fayl Menyu etmək, sonra dəyişdirin / axtar bilər kimi bir şey. Amma bu dəyişikliklərin özünüz etmək üçün gedir. Siz ardıcıl olmalıdır. [Işitilemez] DAVID J. MALAN: Burada kimi xüsusi sifariş? Bu idi, başqa bir sıra int? Bəli. Siz funksiyası zəng zaman üçün məsələləri. Mən bir şey vergül şey burada artım zəng idi əgər birbaşa mapping var. Bu adlı hər hansı ilk dəyişən, ilk surəti edilir burada argument. Bağışlayın, ancaq bu bir mötərizə olmamalıdır. Ikinci ilə ikinci dəlil xətləri up. Sifariş Belə ki, bəli, məsələləri. Bütün hüquqlar. Bağışlayın mən orada almaq üçün uzun bir yol etmişdir. Digər suallar? Bütün hüquqlar. Belə ki, biz, həqiqətən, neler bir şəkil rəngləməyin bilər nin görək burada başlıq altında, belə danışmaq. Belə ki, bu kompüter yaddaş təmsil bilər ki, bir düzbucaqlı edir. Ən azı, siz yaddaş işləri və ya RAM işləri necə heç bir fikrim yoxdur Belə ki, hətta siz dəstələri bu gün güman. Siz bu megabayt var. Siz bu gigabayt var. Və biz bir byte yalnız nə olduğunu həftə sıfırdan bilirsinizmi? 8 bit. Sağ, belə ki, 8 zeroes və olanları. Kompüter bu gün RAM bir konsert, RAM iki gigs var Belə ki, bir var yaddaş milyard və ya 2 milyard bayt və ya təxminən 8 milyard və ya 16 milyard daxili kompüter bit. İndi az Yün Willy Məsələn fərqli olaraq, bu maqnit hissəciklərinin deyil adətən artıq. Getdikcə, noutbuk ən azı, bu bərk dövlət sürücü, SSDs, ki yalnız heç bir hissələri hərəkət etmişlər. Bu, bütün elektron var. Bu, bütün elektrik var. Belə ki, yalnız bir və ya iki təmsil edən kimi bu düzbucaqlı olsa da, hesab edirəm ki, siz ki, yaddaş gigabayt. Belə ki, yaddaş yığın edir. İndi kompüter elminin dünya off parçalanmış chunks növ var yaddaş müxtəlif şeyə. Bu kompüter RAM əgər Belə ki, məsələn, - kimi təklif orada düzbucaqlı - belə, sizin RAM üstündeki qaydaları ilə çıxır ki, danışmaq, mətn seqment deyilən nə adətən edir. Bu siz tərtib ki zeroes və olanlardır. Beləliklə, biz a.out nə olan başlıq altında nəzərdən olduğunuz zaman bütün bu zeroes və yenilərinin - bir proqram çalıştırdığınızda, o zeroes və olanları sabit dən yüklənir RAM deyilən bir şey sürücü. Və RAM, onlar üst qoymaq edirik. İndi isə, başqa şeylər var. Başlatılmış data uninitialized data. Yaddaş bu iki swaths, qlobal dəyişənlər istinad edən Əgər tez-tez istifadə etməyin. Əgər Lakin, bəzən onlar da orada son. Sonra bəzi digər məhsulları var. Biz çox vaxt sərf edəcək Ekologiya dəyişənlərin. Amma sonra iki mühüm şeyi ki, bu ərzində geri gələcək dövr, yığın və yığın. Üçün bir proqram çalışan Belə ki, kompüter yaddaş ən qorunur bir şey yığını adlanır və bir yığın çağırıb. Və biz bu gün yığın haqqında danışmaq fikrində deyilik, lakin biz yığını haqqında danışmaq. Və yığını yemekhane kimi əyani qədər hoqqa çıxarmaq deməkdir burada yemək Mather House qablar, və ya hər yerdə siz ola başına yemekhane heyəti hər gün təmizləyin. Onlar haqqında mərtəbə onları yığın. Və eyni yaddaş, bir bir şey qoyaraq bu fikri var bir yığın bir şey qoyaraq, bir yığın bir şey qoyaraq, yığın. Və biz bu nə deməkdir? Yaxşı, gəlin, bu şəkil yalnız aşağı yarısı üzrə kompüter zoom imkan RAM, aşağıdakı təklif. Bu ki a.out kimi bir proqram run və ya salam zaman nə çıxır proqram, siz yazdıq ki, yenə həmin zeroes və olanları sabit sürücü instantly - olan uzun müddətli saxlama, siz ştepseldən yapışın hətta orada qalır - RAM instantly. RAM, sabit sürücüler daha sürətli edir. Bu sabit diskler dən kiçik deyil. Siz onlara etdiyiniz zaman proqramları yaşadığı Amma bu. Beləliklə, siz ikiqat Mac və ya PC bir proqram basın - bu yüklü olub RAM daxil sabit. Bu RAM instantly kimi tezliklə kimi zeroes və isə, yol üst getmək mətn seqment deyilən. Amma sonra tez proqram həqiqətən başlayır kimi əsas, çalışan funksiyası adlanır. Və əsas, biz gördük kimi, tez-tez yerli dəyişənlər var. Və ints və strings və chars və bu kimi var. Belə ki, sizin yazılı ki, proqram və ya ki, proqram əgər ikiqat əsas daxilində bəzi dəyişənlər istifadə tıklayan, onlar da başa yaddaş sizin yığını altında, belə danışmaq. İndi daha konkret, bu həqiqətən nə deməkdir? Bu o deməkdir ki, biz hər şeyə sayı gedirdi əgər - biz kompüter sayı RAM bytes gedən halda, qeyd edir ki, Bu byte sayı sıfır ola bilər. Bu byte sayı bir, iki, üç, dörd, beş, altı, bütün ola bilər istəyirəm qədər yol - 2 milyard orada üst bütün yol olacaq. Belə ki, başqa sözlə, biz bytes baxımından RAM və ya yaddaş haqqında danışmaq zaman, yalnız ki, kimsə hər sayı nə qərar verdi deməkdir yaddaş bu chunks. Belə ki, bir int üçün 32 bit lazımdır, və ya bir char üçün 8 bit, harada lazımdır onlar yaddaş başa edirsiniz? Yaxşı konseptual, onlar yalnız bu altındakı başa şey yığını çağırıb. Əsas funksiyası çağırır Lakin nə indi maraqlı deyil. Foo, yalnız bir ixtiyari adını funksiyası düşünək. Yaddaş bu yığını altında nə əsas deyil. Foo artıq yaddaş əsas üst qoyulur. Foo konseptual yuxarıda cür başa hər hansı yerli dəyişənlərin ki, əsas o. Foo bar adlı başqa bir funksiyası çağırır, bu dəyişənlərin burada son. Bar burada başqa bir şey, burada çağırır edin. Belə ki, nə bir proqram çalışan haqqında maraqlı, siz funksiyaları zəng kimi ki və bu funksiyaları funksiyaları zəng və bu funksiyaları funksiyaları zəng kimi, yaddaş funksiyaları bu yığını qurmaq. Və yalnız bir funksiyası yekunları dəfə siz yaddaş geri alınması başlamaq yoxdur. Belə ki, bir kompüter proqramı yaddaş tökülmək üçün asan yollarından biri üçün qayıtmaq heç funksiyaları yazın. Belə ki, məsələn, in bir ilə qədər nümayiş bildirin qəsdən arabası proqramı. Mənə davam və # , int əsas (void) daxil olar edək. Və mən gedirəm isə hansı yəqin edəcək heç (2> 1) bizə dəyişir. Və mənə indi davam və printf bunu bildirin. Əslində, az görmə maraqlı olacaq. Bunu edək. Int (i = 0; i> 0). Bu səhv Gəlin, i + +. Və burada printf deyil bildirin. Nin mən vəz nə təcrübə edək. Nin burada bir metodu edək. Ləğv xor və biz int i demək lazımdır. Və sonra printf, demək gedirəm - oh, bu daha maraqlı etmək edək. Nin əslində bütün bir şey çap çıxartmasın. Yalnız bunu edək. Xor (i). Bütün hüquqlar. Çünki nə bu arabası var? Mən getmək kimi proqram həqiqətən bir şey deyil, çünki bu uydurma alıram faiz. Amma bu məqsəd deyil. Məqsədi əsas funksiyası nə, yəqin edir bir proqram yazmaq olar? Özü edin. Və həqiqətən, biz loop ehtiyac yoxdur. Gəlin belə həqiqətən nəzərdən qaçırmaq deyil, yalnız bu sadələşdirmək əsas səhv. Ana zənglər xor bəzi xor oxumaq. Sonra mən axmaq bir şey etdi və mən güman çünki xor zəng xor idi başqası bəlkə həyata gedirdi. İndi bu hələ tərtib etmək niyyətində deyil. Mən nə üçün lazımdır? Mən prototip lazımdır, unutmayın. Mən burada etibarsız xor (int i) qədər olmalıdır;. Beləliklə, burada enmək əgər - həqiqətən, ən böyük pəncərə istifadə edək. Nin davam və xor etmək edək. Nin davam və xor etmək edək. Naməlum bəyan i istifadə edin. Oh, bu axmaq idi. Biz mübahisə lazım deyil. Yalnız bunu edək. Biz bu yolla başladı arzulayıram. Bu yazmaq daha asan proqram olardı. Belə ki, orada. İndi mənim terminal pəncərə, yenidən run cingilti üzərində gedək. Burada biz gedin. Bu həqiqətən sürətli idi. Ne həqiqətən yalnız baxmayaraq, oldu? Yaxşı, indi çap line əlavə edəcəyik, biz görürük. Mənə printf deyək, edək ki, mən burada edirəm. OK, heç dəyişənlərin ki, kimi tərk edəcəyik. Mənə yenidən run edək. Mənə yenidən run xor edək. Və gəlib. Davam edin. Bir kənara kimi, niyə hələ qəzaya deyil? Seqmentləşdirilməsi, günah əvvəl super sürətli oldu. [Işitilemez] DAVID J. MALAN: Exactly. Belə ki, çap zaman alır. Bu, yalnız kompüter hissəsi daha çox iş görür. Və orada deyil. Segmentasyon günah. Belə ki, sürətli proqramları run necə görürsünüz. Bir şey, super sürətli çap deyilik edin. Nə baş Lakin biz hələ də bu seqmentasiya günah var? Yaxşı, sizin kompüter xatirəsinə qoyulmuş necə, bu barədə düşünüyorsanız əsas olur. Ancaq burada - Gəlin bu xor zəng və bu xor zəng edək. Mən sağ mənim estetik əgər İndi, bu, yalnız, xor demək gedir xor, xor, xor, xor, xor, xor, elan nauseum. Və nəhayət, nə olacaq? Böyük şəkil sanki bu deyil, nə yalnız konseptual olur? Yığını taşmaları yığın. Və ya pis, yalnız olan mətn seqment daxil olmaqla, hər şey, dağıtmaq proqram təmsil edən zeroes və olanları. Bir sözlə, bu yalnız super, super pis. Sağ? Sizin proqram nəzarət həyata spiraled etmişdir. Siz çünki bir axmaq bütün nəzərdə tutulan çox yol daha çox yaddaş istifadə edirsinizsə Bu halda səhv. Və ya bu halda, bir çox qəsdən həyata funksiyası özü zəng. İndi bütün bu pis deyil. Özləri zəng funksiyaları həqiqətən böyük gücü var düzgün istifadə zaman. Mən düzgün burada istifadə etməmişlər. Belə ki, bütün bu pis deyil. Amma əslində özüm zəng dayandırmaq heç vaxt ki, bir əsas amillərdir burada bu proqram zəiflik. Beləliklə, biz bütün bu ilə gedir? Yaxşı, həqiqətən nə olub? Mən artım funksiyası zəng zaman, bu nümunələrdə edirdilər kimi Mən içəri keçir ki 1 kimi dəyəri Mən sayı bir surəti keçir. Beləliklə aşağıdakı olur. Beləliklə də artım Məsələn daxil edək. Və burada artıq bu oğlan. Belə ki, burada həqiqətən neler var. Mən artım adlanır və mən nə pictorially, x keçmək zaman burada bu - Burada saxlanılan 1 dəyəri var və mən həqiqətən artım zəng əgər, hansı indi xor adlanır - Bəli, burada mənə off atma edir. Belə ki, bu artım zəng edək. Və biz bu növbəti funksiyası olacaq nə bilmirəm. Beləliklə, nə həqiqətən baş əsas haradasa burada, mən bir yığın var 1 nömrəli saxlanılması ki, yaddaş. Mən artım zəng zaman, mən yaddaş bir yığın istifadə edərək, indi oldum 1 surəti var. Hesab edirəm ki, dəyəri arttırmayı, bu 2 olur - horribly haqqında yazılı burada ekran. Amma sonra nə artım yekunları kimi olur? Bu yaddaş yalnız əməliyyat sistemi geri təhvil olur, deməkdir bütün sizə heç bir şey faydalı etdik. Ilk əsas yer ki, bir həqiqətən orada qalır. Beləliklə, biz bu gedir? Bəli, bu yaddaş bu geri ardıcıllığı geri ki çıxır siz məhsulları da bilər ki bytes Və biz artıq qoyulması nəzərdə tutur ki, bir şey gördüm çıxır ki, şeyi geri geri geri geri. Indi həftə bir həftə iki əsasında simli, nədir? Belə ki, yalnız simvol toplusu var. Belə ki, siz yaddaş nömrələri bilər kimi olur, eyni bilərsiniz yaddaş simvol qoydu. Və bir dəfə biz geri geri geri yaddaş qoyulması simvol başlamaq geri, bu loop üçün kimi şeylər sadə istifadə edərək və ya çıxır ki, bir müddət loop, biz təkrarlamaq bilər - - simli olan simvol üzərində soldan sağa doğru və tamamilə fərqli simvol onları masaj başlayın. A nəticədə biz bilər ki, B. B C. ola bilər ola bilər Həqiqətən əhəmiyyət kəsb edir və ingilis cümlə o hər çevirmək məktublar bizim kompüter yaddaş ilə gəzinti ilə bir-bir tərk həqiqətən şifrelemek hüququ. Belə nin burada beş dəqiqəlik fasilə etmək imkan və biz geri gələndə, biz rəftar məlumat Scrambling bu prosesi başlamaq. Bütün hüquqlar. Biz bir kripto üçün dalış və bu şeyi serialların deyilən əvvəl Belə ki, mənə bildirin Hər hansı bir sualınız üçün fasilə həqiqətən cür ilişikli kimi hiss edirəm, çünki bəzi bu mövzular. Biz əgər İndi nin düzeltmek bildirin. Belə ki, yalnız geri dəyərləri haqqında danışdı. Biz dəlilləri haqqında danışdı. Və biz biz həftə qayıda bilərsiniz ki, bu anlayışı haqqında söhbət Bu dizilir bütün dəstə kimi yaddaş baxışın gəlib qablar, belə danışmaq. Qədər aşağı, bu yığını qoymaq olur ki, hər bir tray belə təmsil funksiyası hazırda adlanan edir. Hər hansı sual? Belə ki, necə haqqında - Mənə bir sual edək. Hesab edirəm ki, ərköyünlük saxlamaq, indi it's - you've bütün oğlan üzü görmüşdür. Belə ki, geri qayıtmaq lazımdır. Mənə burada bir sual verək. Mənə bizim əvvəllər Q & A. bəzi əvvəl nə üçün bu geri asanlaşdırmaq edək Və artım açıq mötərizə var ki, int sayı bağlanıb mötərizə. Int sayı nə təmsil edir? [Işitilemez] DAVID J. MALAN: Bir arqument. OK, lakin bir dəlil var? [Işitilemez] DAVID J. MALAN: Bağışlayın, nə ki? HOPARLÖR 3: Daxil keçmək şey DAVID J. MALAN: OK. Daxil keçmək ki, bir şey Və ümumiyyətlə, yalnız giriş var. Siz həyatda bir funksiyası və funksiyasının məqsədi yazılı istəyirsinizsə etmək sonra bir şey siz istifadə bir az fərqli hər zaman üçün yeganə yol həqiqətən baş giriş ilə təmin etmək görünür ki, onu daxil hər dəfə fərqli bir şey edə bilərsiniz. Belə bir funksiyası giriş alır zaman iki şey müəyyən etmək lazımdır. Siz yalnız siz daxil vermək istədiyiniz adı üçün müəyyən lazımdır öz rahatlığı ki, siz funksiyası üçün müraciət edə bilərsiniz ki, siz Mən line 32 burada olduğu kimi özünüzü, yazılı. Amma siz də C bir proqramlaşdırma dilidir onun növü müəyyən etmək lazımdır yalnız tələb edir ki, Bir dəyişən istəyirsinizsə, kompüter demək ki, nə data, bu yazın ki, böyük hissəsində bu neçə bit bilir dəyişən üçün ayırırlar. Altı ola bilər, çünki - Bağışlayın, bu altı olmayacaq. 16 ola bilər. 8 ola bilər. Hətta 64, 32 ola bilər. Lakin kompüter bilməlidir. İndi sol tərəfində int əksinə, nə təmsil? [Işitilemez] DAVID J. MALAN: Nə olub? [Işitilemez] Daha konkret fəaliyyət növü və bu: DAVID J. MALAN onun çıxışı növü. Sağ. Belə ki, parantez şey isə onun giriş, istənilən halda, təmsil sol şey onun çıxış edir. Və bu halda, artım yəqin bir int qaytarır. Və belə int bu funksiya qaytarılması növüdür. Nə qayıtmaq deməkdir? Sanki söz geri istifadə edin. Və sonra nə söz hüququnun qaytarılması edilir, əgər tam, sonra ki, söz nə ilə həqiqətən uyğundur. Bu kimi bir şey edə bilmədim - hello, dünya - bir string çünki. Aydındır ki, bu tam deyil. Belə ki, qısa, yükü bizə həqiqətən, proqramçı kimi xüsusi olmaq biz nə qaytarılması edirik, sonra həqiqətən qaytarılması haqqında getmək. Və sonra kontekstində bir TAD daha aydın etmək üçün - orada o yenidən edir. Kontekstində - böyük sürpriz yalnız bir anda gəlir. Burada kontekstində indi yenə kompüter yaddaş olduğunu bir gigabyte, iki gigabayt, nə. Bəlkə daha çox. Bəlkə az deyil. Lakin kompüter müxtəlif bölmələr olan kimi görür. Something orada qalır. Başqa bir şey var gedir. Müxtəlif məhsulları ortada gedir. Bu gün, biz yalnız bu hekayə izah başlayır. Amma bu vaxt qayıda bilərsiniz. İndi, biz, həqiqətən qayğı yaddaş yalnız parça mətn seqment deyil yalnız zeroes və olanları təmsil çünki ki, cingilti outputted etmişdir. Beləliklə, siz a.out kimi klaviatura bir komanda çalışır, və ya zaman ikiqat Mac OS və ya Windows bir icon basın, proqram sabit olan dolu oldu RAM daxil sürücü. Və belə danışmaq, bilgisayarınızın RAM üst plopped edir. Proqram başlayır İndi isə, çalışan və əsas adlı olur proqram, siz yazırdı ya proqram Microsoft və ya Apple yazırdı onun hər hansı yerli dəyişənlərin kompüter yaddaş altında aşağı orada son. Əsas başqa funksiyası çağırır Amma əgər özü dəyişənlərin və ya var ki, mübahisələri, onlar yuxarıda son. Ki, funksiyası bir şey çağırır əgər onlar yuxarıda başa yuxarıda, yuxarıda. Və yalnız bir funksiyası belə qablar və yığını nə icra edilir danışmaq, aşağı və aşağı almaq üçün başlamaq. Və bu kub zəng zaman niyə, sonra özetle izah nə - və ya artım zəng - Siz dəyəri surəti keçən edirik. Və nə pictorially deməkdir siz sanki yazıyoruz ki, yaddaş bir hissəsi sayı 1, dəyişən ki halında 1, 2, increment - və ya 8, kub halda - və sonra artım və ya kub kimi uzaq yaddaş atma funksiyası qaytarır. Sual. [Işitilemez] DAVID J. MALAN Haradan - qlobal dəyişənlər nə saxlanılır Hal-hazırda başlatılmış məlumatın və ya uninitialized data çağırıb. Bir qlobal dəyişən varsa fərq olan, siz təyin dərhal imza bərabər bir dəyər, orada üst qədər çatır. Siz yalnız heç bir dəyəri int x nöqtəli vergül desək, bu qədər başa sadəcə qaydaları ilə RAM aşağı. Digər suallar. Bütün hüquqlar. Biz nə edə daha güclü almaq kimi bu şəkil geri gələcək kompüter ilə. Amma indi üçün, kriptoqrafiya, xüsusi bir növü üçün qısa bir giriş var edək Dünyanın problemlərin bütün həll etmir, lakin həll edir ki, kriptoqrafiya bəziləri. Burada Bu halda, biz gizli əsas Kriptoqrafiya deyilən bir şey var. Və gizli əsas Kriptoqrafiya, adı təklif kimi, onun təhlükəsizlik gəlir gizli olan. Siz grade məktəb geri istəyirik və əgər Belə ki, məsələn, bir keçən edirik Əgər sarsıdıcı olan oğlan və ya qız bir az gizli sevgi məktubu - əgər tamaşaçı vasitəsilə keçmək istəyirdi, yəqin ki, yazmaq deyil belə bir İngilis qeyd və ya hər hansı sizin ana dilidir; daha doğrusu, siz bu şifrelemek bilər. Və ya yalnız bu gün onlara mətn mesajı göndər. Amma əslində sinif ərzində onlara qeyd keçmək bilər. Və belə bir şəkildə, təhlükəsiz Bunu ki, dostlara və müəllim siz yazıyoruz nə bilmirəm, bir olduqca sadə ilə gəlmək bilər alqoritm - siz ola bilər, baxmayaraq gənc - yalnız sözləri dırmaşma üçün. Əvəzinə bir yazı Belə ki, əvəzinə B B. yazmaq bilər, yazmaq bilər C. yerinə C, siz D yazmaq və s bilər. Yoxsa məktubları bir daha mürəkkəb tərcümə ilə gəlmək bilər müxtəlif məktublar. Amma tutmaq bu qeyd gönderiyorsanız kimə oğlan və ya qız lazımdır bir şey bilirik. Hansı ki, açıq-aydın deyil? Gizli nə kimi. Kimi, və pansiyonlar və Cs və Ds arasında mapping nədir? Yalnız getmək məktubları hər, belə ki, danışmaq, bir əlavə olunur B, B C A? Ki, daha mürəkkəb mı? Belə ki, sizin və əzmək bu gizli məlumat lazımdır. Amma burada bir catch-22 növü var. Bu ilk dəfə Əgər bu sevgi məktubu gönderiyorsanız sinif, necə ki, oğlan və ya qız gizli hətta nə olacaq? Belə ki, gizli açar kripto bütün dünyanın problemlərini həll etmir. Və biz doğru geri gəlmək lazımdır ki, əlaqələr həqiqətən var semestr sonuna. Eynilə, heç birimiz yəqin ki, heç bir göndərdi var - eyni, bizim ən çox, məsələn, çalışır ki, kimsə bilmirəm Amazon.com. Və hələ, bizim çox güman ki, Amazon.com 'stuff almışdır. Biz güman tədris etdik ki, bu e-ticarət əməliyyatların təhlükəsiz edir. Sağ? URL yəqin ki, https deyir. Bir silly az asma kilit simgesini haradasa bəlkə var. Kredit kartı məlumat təmin Kriptoqrafiya bir növ var Siz və Amazon.com arasında. Kriptoqrafiya hələ bəzi gizli bilərək və əhatə əgər Və hələ, mən deyil Amazon-da hər kəs bilir və mən də hər cür təşkil etdik Amazon-da kimsə ilə gizli, necə mənim kompüter və ya mənim brauzerinizin bu edir? Həll ki, ümumiyyətlə Kriptoqrafiya digər növləri var həyata Yaxşı, çevrilir ki, problem. Amma bu gün üçün, siz təşkil edə bilər sadə bir də diqqət lazımdır plus 1 və ya kimi və pansiyonlar arasında mapping kimi, bəzi gizli bilmək inkişaf. Və Kriptoqrafiya prosesi ümumilikdə bu daxildir. Siz sol burada təsvir bir düz mətn var. Siz alqoritm və ya prosedur bir növ vasitəsilə çalıştırmak bu Şifreleme. Bəlkə yalnız A B olur ki, B C olur və sonra ilə başa mətn parol. Eyni zamanda, bir dəfə sizin crush gizli qeyd etmişdir, o, sonra var ümumiyyətlə almaq üçün belə kimi alqoritm qarşısının tərəfindən decrypt bu düz mətn geri. İndi bu fiziki incarnations var. Məsələn, bu bir az gizli decoder ring edir. Bu iki zənglər burada olduğunu mənada bir ring edir. Bu şey xaricində periferiyasında, Z vasitəsilə məktublar A, var onlar təsadüfi qaydada edirik baxmayaraq. Və daxilində bu cür ki, bəzi nömrələri, həqiqətən var üzük, ne cür sıralamaq üçün kənarda deyil, daxili növbəsində bilər hərflərlə nömrələri. Və görmək olduğunuz klipdə - 24/7 görmüş ola olan bəzi A Christmas Story adlı film Milad mövsümü ətrafında. Siz az Ralphie nə az yetim anlamaq üçün istəkli idi görürsünüz Annie gizli mesaj, mən hesab edirəm ki, ünsiyyət edilmişdir ki, ona idi bir serial qutusuna rəqəmli mesaj təşkil edir. Və gələn bütün kiçik kartlar toplamaq idi bu dənli qutusunda. Siz onlara daxil mail idi Siz nəhayət anlamaq olar ki, gizli decoder ring geri almaq idi Xəritəçəkmə məktublar və nömrələr arasında nə, və ya məktublar və məktublar. Mən pset 2 həvəsləndirmək üçün sizə A Christmas Story Bu qısa clip vermək və seriallarda bir anda bizim müzakirə. Belə ki, burada biz Ralphie var. [Video playback] -Be bu Ralph Parker qərara təyin edilir ki, bütün və çeşitli məlum bir Kiçik Yetim Annie Secret Circle üzvü və bütün hüququna malikdir fərqlənmə və faydaları ona baş. , Little Yetim Annie-imzalanıb. Pierre Andre, Countersigned! Mürəkkəblə! Artıq doqquz yaşlı Fəxri və faydaları. Hadi ilə əldə edək. Mən qaçaqmalçıları və quldurları haqqında bütün caz ehtiyac yoxdur. Qara yekun macəra üçün sabah gecə-dinlə Pirate Ship. İndi siz üzvləri üçün Annie gizli mesaj üçün vaxt Gizli Circle. Yadda saxla ki, uşaqlar, Annie gizli Circle yalnız üzvləri deşifre bilər Annie gizli mesaj. Unutmayın, Annie siz asılı olaraq. B2 üçün sancaqlar seçin. Burada mesaj. 12, 11 - -Mən ilk gizli görüş edirəm. -14, 11, 18, 16 - -Pierre böyük səs axşam idi. Bu axşam mesaj həqiqətən vacib olduğunu demək bilər. -3, 25. Bu Annie özü bir mesaj var. Unutmayın, hər kəs demək deyil. -90 Saniyə sonra, mən evdə yalnız otaq Ben yerləşir doqquz bir oğlan gizlilik və decode oturmaq bilər. Aha, B. mən növbəti getdi. E. ilk söz edir. S. İndi daha asan gəlirdi. U. -Oh, Ralphie gəlib. Mən getmək üçün var. -I'll, sağ aşağı ma ola bilər. Vıjıltı-Gee. -T, O. əmin olun. Nə əmin olun? Deməyə cəhd Little Yetim Annie nə idi? Nə əmin olun? -Ralphie! Randy getmək üçün var. Siz çıxmaq misiniz? -Yaxşı, ma. Mən doğru olacaq. -Mən indi daha yaxın əldə edilmişdir. Gərginlik dəhşətli idi. Bu nə idi? Planetin taleyi balansında asmaq bilər. -Ralphie! Randy getmək üçün var. -I'll yüksək səslə ağlayaraq üçün doğru ola bilər. -Gee, demək olar ki var. Mənim barmaqları uçdu. My mind bir polad tələ idi. Hər pore vibrasiyaya. Demək olar ki, aydın oldu. Bəli, bəli, bəli, bəli. Sizin Ovaltine içmək əmin-olun. Ovaltine? A crummy kommersiya? Köpək oğlu. [END video playback] DAVID J. MALAN: Belə ki, orada biz Kriptoqrafiya var. Beləliklə, biz necə bir kompüter həyata haqqında getmək və ya bu kimi əşyalar? Bəli, biz bir az daha elastik daha özümüzü ifadə bir yol lazımdır bizim dəyişənlərin indiyədək verdi. Biz ints etdik. Biz chars etdik. Biz üzüb gedirdi və ikiqat və bir neçə digər etdik. Ancaq o, həqiqətən, bizə imkan vermir ki, yaddaş fərdi ədəd var sözlər və cümlələr və ifadələr kimi şeylər bildirirəm. Həqiqətən, biz belə şeyləri strings adlı etdik. Amma bu həqiqətən CS50 yalnız bir sadələşdirilməsi ki, söz biz geri soymaq istəyən olduğunuz kitabxana. Və burada bunu başlamaq edək. Mənə irəli getmək və bir fayl açmaq edək - Bu faylları bütün adi online olaraq mövcuddur - strings olmayan bir problemi həll etmək üçün array.c deyilən lakin PAINTS bir biz bir şey istifadə edə bilər necə burada şəkil bir sıra çağırıb. Bir sıra məlumat növüdür. Bu növ dəyişən bir növü var ki, çox kiçik məlumat növləri var Bunun içərisində geri geri geri geri. Belə ki, məsələn, biz sizə verir ki, bir az proqram yazmaq istəyirsinizsə, sınavlar, siz ola bilər çox asanlıqla iki ki, 50 kimi bir kurs üçün orta viktorina Bu proqram yazmaq - hətta keçən həftə maddi bəzi əsasında - GetInt və dəyişənlərin bir neçə istifadə edərək. Int quiz1, int quiz2 və bu, olduqca sadə var. Bu xahiş bir proqram həyata keçirmək, bəlkə kodu max 20 xətləri 10 var sonra iki viktorina puanları və istifadəçi onlara əlavə onların orta hesablayır birlikdə iki bölünməsi, sonra nəticələri çap. Biz yəqin ki, sonra olduqca asan indi bunu edə bilər dəqiqə bir sayı. Ancaq problem 50 viktorina və ya dörd üç olduğunu güman edir. Siz ki, bir sinif üçün eyni proqramı istifadə etmək istədiyini düşünək həftəlik viktorina. Həftəlik viktorina bir sinfi haqqında düşünün. Bir semestr 16 və ya həftə kimi varsa, indi 16 dəyişənlər var - int quiz1, int quiz2, int quiz3, int quiz4. Bu redundancy görmeye başlamaq kimi, bu çıxarmaq ve yapıştırma kodu, bu, daha yaxşı bir yol idi arzu etmək başlamaq lazımdır. Və təşəkkürlə, çünki seriallarda ki, var. Belə ki, bunu edək. Birincisi, mənə biz bu günə qədər istifadə etdiyiniz bir çox sadə şey təqdim edək lakin kodu bəzən onu görəcəksiniz. Bu adətən daimi adlı budur. Belə ki, bu dəyər dəyişir ki, heç mənada sabit deyil. Daimi oluştururken insan Konvensiyanın bütün kapital istifadə həqiqətən sizin kodu dəyir yalnız, belə ki məktublar. Və C istifadə edən xüsusi söz # müəyyən edilir. Deyə Belə # sonra, sonra, sizin üçün istifadə etmək istədiyiniz sözü bir yer müəyyən sonra daimi adı və daimi dəyəri. Bildiriş Belə ki, bu dəyişən bir şey təyin fərqlidir. Bürc bərabərdir yoxdur. Heç bir nöqtəli vergül var. Bu adətən bir preprocessor direktiv kimi tanınan nə, lakin daha çox başqa bir zaman. İndi, bu adlı dəyişməz dəyər onun faktiki sınavlar yaradır rəqəmli dəyəri 2-dir. Belə ki, hər yerdə bu fayl ərzində sınavlar, sınavlar, sınavlar bax ki yalnız sayı 2. İndi əsas baxsaq İndi isə necə bu işlər görək. Ilk, bir az sirli görünür. Amma bu həftə bir bütün məhsulları var. Siniflər üçün istifadəçi soruşun. Biz bu etməliyəm? Yaxşı, line 22 - Bu, həqiqətən, sulu hissəsi - Mən bir float, lakin yalnız bir float bəyan edir. Mən deyil, üzən point dəyərləri bir sıra elan edirəm. Bu dəyişən burada nəzərdə tutulan kimi notları adlı olacaq. Lakin yeni sintaksis və yalnız parça, sonra əslində bu kvadratşəkilli mötərizələri var Mən float notları və sonra açıq bracket və bir sıra dedi etdiyiniz. Bu daimi əgər biz bunu kimi Notice, bu kifayətdir. Bu hey kompüter, mənə iki üzüb gedirdi vermək və zəng kollektiv edək deməkdir onlara notları. Bu kimi bir çox yorucu proses fərqli edir. , Grade1 sal grade2 üzmək və s. Belə ki, bir sıra bizə bu ideya həyata keçirmək imkan verir, lakin çox az messily ki, biz, demək əvəzinə bir 16-16 kodu bir line yaza bilər ki, belə bir yol həftə dövr. Indi bu barədə düşünmək əgər çünki Mən çətin-kodu 2 istəmir məntiqi - 3 CS50 dəyişikliklər əvəzinə viktorina gələn il nəzərdə tutur. Mən burada 2 saylı idi. Mən burada 2 saylı idi. Mən burada 2 saylı idi. Mən burada 2 saylı idi. Bu qıymaq və təsadüfən dəyişdirmək üçün çox yorucu və çox asan olur bir 3 dəyər və 2 sıra digər dəyər özledim. Mən bu üz əvəzinə mücərrəd gedir və bu daimi istifadə edirəm ki, onun kimi adı, heç dəyişikliklər təklif edir. İndi biz müxtəlif olub olursa olsun, bu il və ya sonrakı, mən viktorina yalnız üst burada bir yerdə dəyişmək lazımdır. Belə ki, daimi, bütün var. Eyni zamanda, yeni konseptual xüsusiyyət bir sıra edir. Belə ki, kvadratşəkilli mötərizələri mənə bu çox üzüb gedirdi vermək və kollektiv mənə imkan verir burada onlara notları çağırırıq. Belə ki, indi mən gedirəm nə edək. Burada line 24 loop üçün bir başlanğıcdır. Bu, həqiqətən, heç bir şey xülya deyil. Bu yalnız viktorina istifadə əvəzinə ağır kodlu nömrəsi var. Amma keçən həftə oradan intellektual fərqli bir şey yoxdur. Bu yalnız printf edir. Belə printf ("% d viktorina sayı% d") Mən yalnız mənə viktorina vermək çap istəyirəm, çünki sayı iki biri və sonra iki iki. Belə ki, bu sırf estetik şeydir. Lakin maraqlı hissəsi indi line 27 edir. Üzən-point ilə iki placeholders biri doldurmaq üçün dəyəri, daha kvadrat mötərizə istifadə edin. Loop üçün bu i bərabər başlamışdır çünki bu halda, mən i kullanıyorum yəqin nə dəyəri? 0. Beləliklə, bu loop ilk iteration, bu mən baxmayaraq ki, kodu bu yazmışdır. Amma bu loop ikinci iteration, bu sanki mən mənim kodu bu yazmışdır. Amma dəyişən kullanıyorum ki, mükəmməl adı kimi, çünki göstərir ki, hər iteration qiyməti müxtəlif oldu. Mən bir zamanda bu serialın bir yerində doldurulması alıram. Bu array necə görünür? Yaxşı, səbəb burada ekranda bu super sadə düzbucaqlı çəkdi əvvəl bu səbəbdən idi. Bir dizi, yalnız yaddaş bir yığın sonra yaddaş yığın edir yaddaş bir yığın sonra, və s. Mənim array ölçüsü 2 əgər Belə ki, burada bu halda, bütün I məşğul olacaq mənim viktorina bal yazaraq, burada istəyirəm. Mən bu bir 100 var. Və sonra mən bu barədə bir 99 var. Mən yalnız xahiş etdik, çünki Sonra bu yaddaş da istifadə edilə bilər ölçüsü 2 bir sıra kompüter. Bu meydan hələ də var. Sağ? Siz yalnız etdiyiniz hətta əgər Siz hələ də, RAM iki gigabayt var iki üzüb gedirdi üçün xahiş. Belə ki, diziler arxasında ideyası kompüter yalnız yaddaş bir yığın edir ki, və sonra geri geri geri geri kiçik parçalara apportions. Və bütün bir sıra edir. Şeyi bilər içərisində olan O, yaddaş bitişik yığın edir. İndi bu sonra yalnız bir darıxdırıcı hesab etmək olar. Burada aşağı diyirləyin, mən sonra serialın üzərində təkrarlamaq yerləşir, bu. Mən array bütün dəyərlərin toplama ilə gəlib. Və sonra mən əslində bunu burada dəyirmi funksiyasından istifadə sınavlar bölünür edib. Amma mənə indi kifayət hesab növ kimi mənim əl dalğa bildirin. Amma mənim üçün edir ki, bütün nəticədə orta hesablanması edir. Sonra Beləliklə, ilk viktorina plus ikinci viktorina, 2 bölünür, və çap bir int kimi onu. String1 adlı müxtəlif nümunə Amma edək indi keçid olan analoji şəkil lakin istifadə strings PAINTS. Mənə davam və yalnız bir an üçün bu sadələşdirmək edək. İndi üçün abzas bağışla. Bu nümunə line 19 Notice, mən istifadəçi bir string almaq. Amma növbəti xətləri 22 irəli edirəm nə görürsünüz. Mən, həqiqətən, i qədər iterating edirəm - bu, yeni bir oyun deyil - strlen, simli uzunluğu. Bu bir string keçmək, o deyir ki, C ilə gəlir ki, bir funksiyası var Əgər string neçə simvol var. Vəssalam. Bu yalnız çünki əvəzinə string uzunluğu strlen olan fakt daha qısa. 30 il əvvəl insanlar kimi müfəssəl şəkildə mümkün kimi şeylər yazmaq çox xoşuma gəldi. Belə ki, burada Konvensiyanın saxlanılır etdik. i + + yalnız hər iteration i arttırmayı deməkdir. İndi həqiqətən maraqlı olan bu bildiriş. Belə ki, xətt 24, mən kompüter demək, mənə səkkiz bir xarakter vermək bit, və c çağırırıq. Amma bu sağ söyləyərək nə edir? English ki, nə təmsil edir? [Işitilemez] DAVID J. MALAN: Exactly. Mənə array ilk karakter verin. Və ya ümumiyyətlə, mənə array olan i-ci xarakter verir. Və kompüter alimləri kimi, biz həqiqətən istəyirik ki, indi vacibdir həyata 0-dan hesablanması. Siz bunu başlamaq üçün indi mülahizə yoxdur. İndi kompüter gözləntilərinə uyğun davranmaq və [0] ilk olacaq, çünki sıfırdan saymaq simli xarakterli. [1] ikinci olacaq. [2], üçüncü və s olacaq. Bu proqram Beləliklə, mən tərtib olarsa - bu, yenə string1 edir. Belə string1 edir. İndi mən terminal pəncərə string1 axır. Bu giriş üçün gözləmə ki, mən David demək, yazın gedirəm. Daxil edin. İndi bütün müxtəlif xətləri üzrə DAVID yazdıran çünki Mən yapýyorum nə görürsünüz. Mən bir zaman bir xarakteri çap edirəm. İndi biz bu gün açıqlamaq deyil. Amma burada bu çek bir an əvvəl silindi. Bu istifadəçi, doğru çəkişmə və ya əgər çıxır ki, qarışıq, həqiqətən bəzi uzunluğu string verə bilmirlər bilər. Klaviatura üzrə yanlış düyməsini basın varsa, sizə bilər heç bir string. Siz zərərli edirsinizsə və ya siz bir gigabyte yetmeyecek yapışdırıb üçün cəhd edə bilərsiniz Bu string doldurmaq üçün inşa. Kompüter yaddaş uzanır Əgər, biz olacaq çıxır ki, null adlı bu xüsusi dəyər geri almaq üçün. Belə ki, indi üçün, yalnız null adlı bu xüsusi dəyər olduğunu bilirik bizə digər şeylər arasında, yaddaş olduğunuzda yoxlamaq üçün imkan verir. Amma indi string2 açmaq varsa, burada bir fərq görürük. String2 burada bir fərq edək. String2 ilə loop üçün bu bir az fərqlidir. Biz o başqa vaxt danışmaq olar ki, mənə nulls silmək edək. Amma nə loop üçün bu vaxt müxtəlif var? Mən əvvəlki Məsələn geri bilərsiniz. Belə ki versiyası iki deyil. Bu versiya biridir. Bir, iki, bir iki. Belə ki, strlen zəng haradadır? Bu loop üçün ilk hissəsi var. Mən bu yapýyorum nə üçün hər hansı bir fikir? Bəli. [Işitilemez] DAVID J. MALAN: biz funksiyası hər zaman zəng etməyin So. Exactly. Onlar super sadə olduğunu loops üçün olan Xatırladaq siz növ dəfə Bu başlatma başa düşürük ki, bu vəziyyəti və yeniləmə. Bu problem vəziyyəti hər baş ki, bu loop iteration. Və burada bu nümunə, nə barədə pis bu mənim şərtdir ki? Siz yenə strlen zəng və təkrar edirik. Lakin bir dəfə mən DAVID çap etdik ki, simli uzunluğu beş edir. Və çünki loop hər iteration haqqında dəyişmək niyyətində deyil string hələ D-A-V-I-D. Belə ki, bu olmaq nə bir ipucu edir deyil yalnız - bir dizayn qərar kimi tanınan getdikcə mühüm ideya, kompüter lazımsız iş edir. İndi standart redaksiyada pset 2, pset 2 sneak preview olduğu kimi həqiqətən ciphers bəzi sayı, bəzi həyata sizə qarşı gedir şifreleme alqoritmləri sayı, siz ki, şifrelemek və decrypt həm çox bir Ralphie kimi gizli mesajlar, orada kontormerinin. Pset 2 hacker nəşr, biz bir az irəli getmək olacaq. Biz olan faktiki kompüter sisteminin bir fayl təslim olacaq bütün istifadəçi adı və faktiki şifrelenmiş parol dəstə və problem hacker nəşr o parol və rəqəm çat olacaq üçün nə Kriptoqrafiya və ya nə gizli həqiqətən istifadə edilmişdir həyata o parol yaratmaq. Və biz burada C mən vermək lazımdır ki, yeni bir xüsusiyyət istifadə edərək, bu nə olacaq Siz komanda-line dəlilləri kimi tanınan bir demo. Siz bəzi bölməsində və ya dərslik görmüşəm bilər Belə ki, həyata çevirir əsas həmişə parantez etibarsız olması deyil. Bu, iki dəlilləri ilə, əsas da bu kimi yazılı bilər çıxır ki, argc sonra yazın sözlər sayı yerləşir argc və argv, Sizin command line proqram adı. Və argv faktiki sözləri. Orada kvadrat mötərizə təklif kimi, argv yəqin bir sıra edir. Bu yaddaş bir string sonra simli sonra simli olacaq. Belə ki, nə biz, pset 2 başlayaraq edə etmək olacaq bu kimi bir şey. Mən argv1 etsəniz, hansı biz bazar ertəsi geri gəlib və run lazımdır nümunəsidir , o, hələ heç bir şey görünmür fark. Bu, yalnız öz adını görüntüler. Amma bu proqram yəqin iterates ki, güle güle sinif bildiriş demək əgər tezliklə ilə çap olunmuşdur ki, sözlər hər artıq. Biz istifadəçi var ki, sözləri əldə edəcək vasitələri tez-da çap int, bu həftə sonu başlayan əsas dəyişdirilməsi ilə əsas (void) əsas (argc, argv) int etmək. Və beləliklə command line arguments anadan olacaq. Və bir dəfə bu da həqiqətən inkişaf etmiş almaq, yazmaq edə bilərsiniz yuxarıda və kənara elə burada bu kimi həqiqətən trippy proqramları, funksionallığı bəzi biz indiyədək görülən deyil, bütün çox güclü etdik. Beləliklə, biz ekranda bu bu tərk edəcəyik. Biz bazar ertəsi görəcəksiniz.