Rob Bowden: Bu edir daha rahat bölmə, lakin o demək deyil ki, əgər Siz daha rahat deyilik kimi hiss Burada hər şeyi öyrənmək deyil. Belə ki, in başlamaq bildirin. Siz slaydlar var Sağ şeyi gedən. Mən yalnız indi onu Am? Noutbuk keçid. 

ALLISON: Siz istəmirəm Rob özünüzü təqdim? 

Rob Bowden: Oh, mən Rob edirəm. Bu, mənim beşinci il TF-ing CS50 edir. 

GABRIEL: Mən Gabriel edirəm. Mən CS50 rəhbəri TF oldum. Mən keçən il və bu il TF idi. ALLISON: Mən Alison deyiləm, və bu mənim ikinci il TF-ing CS50 edir. 

Rob Bowden: Bütün sağ, belə ki, sol bu şey, inşallah əvvəl gördüm. Əgər siz, çünki Özünüz üçün download, Siz mühazirə görmüş olmalıdır. Belə ki, bu CS50 cihaz və o, bir qədər bu təsviri etdi mühazirə. Amma əsasən yalnız siz Əməliyyat çalışan Sizin əməliyyat sistemi ərzində Sistem, biz sizə verə bilər ki, qoymadan proqramları oh bu, narahat həm Windows iş gedir və sizin Mac, və ya bəzi artıq Linux Linux istifadə olunur. Bu, sadəcə ehtimal ümumi oyun ola sahəsində belə hər kəs var eyni dəqiq mühit. 

Əgər varsa, belə ki, artıq bu nazil Siz istəyirik, çünki siz onu download lazımdır Bu problem set üçün lazım olacaq. Və iki gigabyte edir biraz bilər, belə ki, download. Harvard On sürətli getmək lazımdır. Belə ki, CS50 cihaz. 

İndi əvvəlində, biz gedirik command line yalnız bir dəstə haqqında danışmaq məhsulları, və ki, mən iş deməkdir burada bu kiçik mühit. Və hər şeyi bütün qeyd İndi burada demək Siz daxilində əgər iş gedir Aracın daxili bir terminal, və ya daxilində əgər Bu gedit terminal pəncərə Aracın daxili. Belə ki, o mühit eynidir. 

Amma üçüncü marşrut getmək üçün gedirəm. Və burada bu aşağı qeyd Burada az IP ünvanı. Belə ki, yoxdur Bunu, lakin bu IP address-- indi istisna olmaqla i əgər bu şey ilə bağlanacaq edir. OK, belə ki, IP ünvanı bir terminal üzərində burada bu terminal üzərində Burada mənim Mac bir terminal var. Belə ki, bu hal-hazırda heç bir yol var bütün cihaz ilə bağlı. Windows etdiyiniz, onda siz etdiyiniz bir şey yükləmək lazım gedir xüsusilə bu, xüsusilə insanlar mastika, P-U-T-T-Y istifadə edirlər. 

Mən nə üçün gedirəm növü SSH və sonra IP ünvanı. Yaxşı ki, IP ünvan jharvard. Belə ki, 192.168.24.220. Bu scary mesaj ignore. Just yes yazın. Bu qutusuna CS50 edir. Bu parol üçün xahiş edir. 

Və bu kontekstdə olduğu bir çox Bu [Işitilemez], parol üçün xahiş edir. Biz sual harada bir çox var Bu, həqiqətən yazaraq deyil deyir. Bu simvol göstərmək deyil parol Siz yazın kimi, bir şey varsa, təhlükəsizlik xüsusiyyət üçün, çünki əgər Kimsə sizin çiyin üzərində axtarır və onlar ulduz ulduz star star, onlar bilirik ki, sizin parol Dörd simvol. Belə ki, fikir xahiş edəcək Parolu növü üçün. Bu göstərmək niyyətində deyil Siz simvol, lakin bu, həqiqətən, onlara qəbul edir. Bu halda, hər zaman siz Heç bir parol tez görmək cihaz ilə məşğul olan, parol allıq olacaq. Belə ki, allıq. 

İndi burada bu daxili Mənim Mac olduğunu pəncərə, Mən əsasən yaşıyorum eyni dəqiq görünüşü bir terminal daxilində kimi cihaz. Belə ki, siz bunu yoxdur. Siz hər şeyi edə bilərsiniz Aracın daxili istəyirəm. Mən demək olar ki, həqiqətən, heç vaxt cihaz bir şey. Mən demək olar ki, həmişə indi minimuma endirmək və Mən cihaz daxil SSH çalışıram. 

Bir şey varsa, əgər , yavaş kompüter var bir fark bilər. Tercih çünki mən bunu Bu terminal pəncərə. Bu kimi bəzi xüsusiyyətləri vardır Mən pəncərə split bilər, və indi mən SSH bilər Bu cihaz vasitəsilə. Mən iki SSH bir dəfə olur var. Sizin kompüter xüsusilə yavaş olarsa və siz cihaz çalışırıq və bu həyata həqiqətən laggy, nə. Çox daha sürətli çalışır Siz SSH-ed əgər. Lakin başqa ya yol işləyə bilər. 

Auditoriya: SSH nə deməkdir? 

Rob Bowden: Secure gülləsi, kimi bir şey? SSH nə deməkdir? GABRIEL: Secure shell. ALLISON: Bu yalnız təhlükəsiz shell var. Rob Bowden: Secure shell. Bu var geçirmek ki, bir protokol var təhlükəsiz protokol, belə şifrelenir. İnsanlar şəbəkə snoop bilməz və Siz bir şey söyləyərək nə görmək Siz SSH-ed istəyirik. Və əslində, əski-da CS50 gün, 2009-ci ildə belə Mən birinci, yol idi ki, Siz CS50 problem dəstləri üzərində işləyib Bəzi server SSH-ed idi ki, siz daxil verdi və orada çalışmışdır. Belə ki, bu yox idi qrafik cihaz. Siz gedit yox idi. Siz bütün bu şeyləri yox idi ki, Siz point Vizual və basın bilər. Bu interface iş idi. Mən bu interface işləməyə üstünlük verirlər. Gedirik nə qədər hissəsi İndi artıq gedir Bu bir dəstə Siz olmalıdır ki, əmrləri kimi ilə tanış başlamaq Siz əlbəttə boyunca getmək. Və vicdanla, bir dəfə onlara istifadə almaq, bu qədər sürətli Bu mühitdə işləmək Bu finder ilə işləmək üçün daha, sürükleyerek və hər şeyi tıklayarak. 

Belə ki, burada biz. İndi yalnız SSH-ed, və belə default sizə yerlerde , sinif bu əmrləri bəzi gördüm lakin biz yenə hamısını artıq getmək lazımdır. Biz istəyirik default yer ev kataloq edir. Və directory, yalnız qovluq üçün başqa bir söz. Beləliklə, biz ev kataloq istəyirik. Faylları siyahısını, ls yazın Bu kataloq. Görünür mən əvvəllər bir blah.c yaratmışdır. Beləliklə, biz bir masa üstü kataloq var. Siz sintaksis işıqlandırılması hiss? Açıq mavi işıqlandırılması göstərir bir kataloq və düz ağ yalnız bir düz fayl göstərir. Belə gedir Gördüyünüz başqa rəng. Bir faylı yəqin ki, davam edir kimi yaşıl və ya bir şey. OK, belə ki, biz ev kataloq var. 

İndi müxtəlif getmək istəyirsinizsə directory, cd istəyirəm əmr edir. Belə ki, sonra kataloq dəyişdirmək, və kataloq adını keçmək Siz getmək istəyirəm. Belə ki, burada biz dörd variantları var. Mən downloads daxil edə bilərsiniz, və indi biz görürük Burada bu ara yenilədi I ~ / downloads edirəm demək. 

Belə ki, tilde nədir? Bu, stenoqrafiya var ev directory. Beləliklə, siz nə demək olar ki, hər şey gedir ev kataloq ilə bağlı ola bilər, və pudra yalnız bir əmr deyil Mən ildə bir dəfə istifadə yalnız cari kataloq görüntüler. Və belə ki, burada olduğunu görəcəksiniz ~ / Downloads həqiqətən həll / ev / jharvard / downloads. Belə ki, / home / jharvard mənim ana qovluğu. 

Beləliklə, biz cd dot dot bilər. İndi dot dot xüsusi kataloq edir həmişə bir kataloq qədər aiddir. I ~ / downloads oldum, onda cd nöqtə belə dot Tilde mənə gətirmək niyyətindədir. Biz cd dot dot nə düşünürsünüz İndi mənə gətirmək üçün gedir? Bu / ev mənə gətirmək lazımdır. Belə ki, çap iş kataloq tərəfindən tilde, Mən indi / ev / jharvard edirəm. ki, bir kataloq up, indi home / deyir. 

Cd dot dot indi. İndi kök kataloq edirəm, və yenidən bunu edə bilməz. Siz yalnız qalmaq lazımdır əbədi kök kataloq. Kök kataloq bütün dəstə var Siz baxmaq istəyirəm ki, hər şeyi, Siz. Məsələn, mən getmək əgər bin daxil ki, şey Belə ls kimi bütün bu binaries, və cd, və o hər şeyi. Belə ki, bu əmrləri lazımdır sistemində haradasa mövcud, və / bin qovluğuna. Amma demək olar ki, hər şey ev kataloq olacaq. Və heç bir dəlilləri olmadan cd, Siz cd ~, ehtiyac yoxdur deyə bilər. cd gətirmək niyyətindədir geri ev qovluğuna. 

Bir son. cd - sizə geri gətirmək niyyətindədir Siz idi ki, son directory. Mən yalnız bir sıra iki dəfə cd'd belə mənim son directory ev directory idi. İndi bin doğramaq, və getmək əgər qədər və istifadəçi daxil edək. İstifadəçi payı. Istifadəçi payına gedək. İndi istifadəçi payı artıq deyiləm. cd - geri min. Belə ki, bu xüsusilə faydalı olur Siz yaxşıdır və zaman keçid lazımdır. Istifadəçi geri payı, bin, səhm bin belə. 

Belə ki, bu faydalı olur. Siz özünüz çox olan tapa bilərsiniz çox nested rehberler. Və bir şey etmək istəyirəm üst kataloq real sürətli. Siz kataloq getmək etmək kimi dəyişikliklər və stuff, və indi getmək istəyirəm geri olduğu üçün. cd -. Mən həmişə incidir alıram Mən getmək üçün nə zaman ki, kataloq I iş etmək istədi. Mən mən həmişə incidir almaq əvəzinə bir addım iki addımlar bu, ki cd deməkdir ki, çünki - gedir ki, aralıq yeri halına gətirmək əvəzinə mən getmək istəyirəm harada. 

Beləliklə, biz bütün siyahısı faylları bax. Biz bu günə qədər ətrafında almaq üçün necə. Belə ki, indi faylları redaktə haqqında danışmaq edək. Bu kurs Belə ki, sen demək olar ki, həmişə gedit istifadə gözlənilir. Əgər istəyirsinizsə, siz növbəti addım bilər və command line mətn öyrənmək başlamaq redaktoru. Belə ki, müxtəlif variantları mövcuddur. 

Və olanları yəqin ki, sizin üçün müvafiq olacaq, biz Nano, Vim və Emacs var. Belə ki, Nano başlayanlar deyil command line mətn redaktoru. Belə ki, Nano-nin gedək blah.c Mən əvvəllər yaradılmış. Yalnız bu standart C fayl var. Və məhsullarının bütün dəstə görmək Ekranın altındakı davam, və yəqin blah.c bu C kodu ehtiva edir. 

, Bu redaktoru belə nə də bottom-- da deyən oldu İndi bu caret simvolu, bu ^ G ^ X, ^ O görürük. Belə demək olar ki, bütün görürsünüz ki, kontekstində, Siz ki, caret simvolu görə bilərsiniz Stack Overflow online digər yerlərdə, ki, kimi bir şey. Demək olar ki, həmişə nəzarət aiddir. Mən bunu istəyirəm çıxmaq üçün Control X. Control X, çıxışları. Mən arrow istifadə edə bilərsiniz düymələri ətrafında hərəkət etmək. Mən qeyd və asanlıqla basın bilməz edək. Siz arrow istifadə lazımdır düymələri ətrafında hərəkət etmək. Bir ayar ola bilər qeyd və basın. 

Amma bəzi dəyişikliklər edək. İndi Control X çıxış getmək. Bu redaktə bufer qazanc demək olacaq. İndi yes üçün tez, y, n heç bir üçün. Ləğv nəzarət C. Mən yalnız bəli demək lazımdır. Yazmaq Faylın adı. Bu default fayl Bu onsuz da. Enter. OK. İndi yalnız fayl redaktə etdik, xilas, və dəyişdirilir. 

Belə ki, Nano asan mətn redaktoru istifadə almaq. Alternativ Vim və Emacs var. Həmin yüksək səviyyəli mətn redaktorları var ki, bir çox dik öyrənmək curve var. Belə ki, mənim şəxsi üstünlük Vim edir. Və variantları geniş var. Və istifadə almaq dəfə bu, heç vaxt lazımdır hər hansı digər getmək istəyirəm mətn redaktoru çünki yalnız çox şey var Bu sizin üçün mövcud, lakin bu, həqiqətən edir uzun müddət öyrənmək üçün. Belə ki, bəlkə siz yalnız məcbur istəyirəm Özünüz indi, bu istifadə almaq üçün ancaq bu dəyər deyərdim. Amma bu çətindir. 

Və sonra Emacs. Mən həmişə Emacs mübarizə, çünki Mən tamamilə heç bir şey necə. Görünür Emacs default deyil cihaz yüklü. Biz yəqin ki, ki, əlavə edəcək default qurğular kimi. Siz bir öyrənmək Vim ya Emacs var üçün heç bir səbəb Heç digər məlumat lakin tamamilə fərqli stil var. OK, belə ki, mətn faylları redaktə var. 

Auditoriya: Əgər vurulmuş Əgər Vim indi, necə we-- 

Rob Bowden: var Vim çox rejimi, və bütün var Vim öyrənmək Dərsliklər. Beləliklə, siz olmaq nə varsa məqsədilə insert rejimi Siz hansı, mətn yazın müxtəlif yollarla daxil, Siz insert moduna almaq necə, lakin i. Və ya hər hansı xüsusi çıxmaq Siz etdiyiniz ki rejimi, yalnız Escape. Və yalnız almaq üçün Escape cümbüş Hər hansı bir nested rejimi sizin həyata. Just OK, indi geri normal rejimdə edirəm. 

Və normal rejimi, bir nöqtə. Siz altındakı görünür görəcəksiniz. Və sonra q. Siz dəyişikliklər etdik, əgər belə q tərk edəcək, olan istisna olmaqla, mən mən dəyişikliklər var? Mən yəqin dəyişikliklər etdik. Siz dəyişikliklər etdik, əgər lazımdır belə bir nida işarəsi qoya bilər deyirlər. Mən bir bang zəng etmək üçün gedirəm. Belə bir qadağa qoya bilər yalnız bir şey etmədən çıxmaq, və ya kolon wq saxlamaq və çıxmaq olacaq. W ümumiyyətlə belə yazmaq deyil. Belə ki, fayl yazmaq. Mən yazmaq və çıxmaq bilər. Yoxsa yalnız ola bilər QX slam, q bang yalnız asılı olmayaraq orada almaq üçün etdiyiniz hər hansı bir dəyişikliklər. 

Bütün hüquqlar, belə ki, indi edək go-- biz faylları yarada. Faylları aradan qaldırılması başlamaq edək. Mən yalnız bir atmaq lazımdır tez yeni komanda, touch. Belə ki, foo toxunmaq. Touch bar. Baz Touch. Mən ls, indi biz görürsünüzsə bu faylları mövcud. Onlar tamamilə boş istəyirik. Belə touch yalnız bir asan bir yol, [Işitilemez]. İki texniki yalnız dövlət o, zaman damgaları yeniləyir. Beləliklə, siz yaratmaq hər hansı bir fayl var bir zaman damgası ilə bağlı. Belə ki, baz yaradılmışdır 16:21 Sentyabr 14. Əgər belə, indi 16:22 var Mən yenə baz toxunmaq, biz görürük ki, baz əksəriyyəti Bu yaxınlarda 16:22 redaktə. Amma başqa demək olar ki, heç vaxt faylları zaman damgaları baxmaq. Əlaqə Belə ki, burada mən yalnız istifadə edirəm Bəzi tez faylları yaratmaq. 

Bütün hüquqlar, indi rm deyil biz burada qayğı komanda. Və biz boo rm bilər. Müntəzəm boş fayl boo aradan qaldırılması söyləyin. Və biz y yazın bilər, və indi rədd var. rm baz. Müntəzəm boş faylını aradan qaldırılması baz və heç bir Növü n. İndi xaric deyil. Belə ki, bar və baz hələ də mövcuddur. Foo getdi. GABRIEL: söhbət edin. Rob Bowden: Böyük. Annoying mesaj belə Burada müntəzəm empty-- aradan qaldırılması Orada nə aşağı edirik? Müntəzəm boş faylını aradan qaldırılması. Olmaq istəmirsinizsə, belə ki, ki, mesaj narahat, Biz bu f atmaq bilər bayraq, və ki, güc var. Mən f RM əgər İndi, bu niyyətində deyil Siz bu faylı çıxarmaq istəyirik deyirlər. Bu, sadəcə bunu edəcəyik. Və ls, mən artıq orada bar görmürəm. 

İndi bir potensial təhlükəli komanda. Bu da pis deyil çalışır. Biz ikinci geri gəlmək lazımdır necə həqiqətən təhlükəli əldə edə bilərsiniz. Və bəzi temp kataloq yaratmaq imkan verir. mkdir, başqa komanda. Belə ki, mkdir bir əmr deyil ki, bir kataloq edir. İndi ls biz bu gözəl işıq görmək mavi temp kataloq vurğuladı. Temp daxil cd bilərsiniz. Mən foo mkdir bilər. foo daxil cd. mkdir bar. bar daxil cd. 

Belə ki, biz asanlıqla əldə edə bilərsiniz görmək bəzi olduqca dərin yuva daxil. İndi necə bir kataloq aradan qaldırılması edirsiniz? rmdir. Mən yalnız düz rm üçün cəhd edin, kimi biz, müntəzəm fayl ilə rm bar gedir bar aradan qaldırılması bilməz. Bu kataloq edir. Xüsusi komanda üçün var cür, rehberler aradan qaldırılması. Belə ki, rmdir bar. İndi bar getdi. 

OK, belə ki, rmdir istifadə olduqca çox heç vaxt. İndi baxaq being-- səbəbi burada müntəzəm fayl bar edir. Belə ki, rmdir boo. rmdir. Foo aradan qaldırılması üçün uğursuz oldu. Directory boş deyil. Belə bir Dir aradan qaldırılması istifadə edə bilməz bu şeylər var ki, directory. 

Belə ki, bəzi variantları var. Siz kataloq daxil edə bilərsiniz, aradan qaldırılması hər şey əl, sonra çıxmaq və kataloq rmdir. Ki, açıq-aydın annoying səslər. Minlərlə Nə var Orada faylları? Yaxşı, siz * rm bilər. Biz ikinci * haqqında danışmaq lazımdır. Bu əsasən hər şeyi deməkdir. Amma daha yaxşı hələ, belə rm r. Belə ki, rm -r-- bir çox kontekstlərdə, -r, recursive deməkdir biz haqqında danışmaq lazımdır nə Bir neçə həftə recursive deməkdir. Amma bu, əsasən axır deməkdir Bu kataloq bütövlükdə və hər şeyi çıxarın. 

Belə ki, rm r foo demək gedir directory foo daxil enmək? Bəli. Müntəzəm boş fayl foo / bar aradan qaldırılması? Bəli. Directory foo aradan qaldırılması? Bəli. Belə ki, indi foo və hər şey daxilində qaldırıldı. 

İndi xüsusilə annoying əldə edə bilərsiniz when--, 2 toxunmaq, 1 touch 3 toxunmaq imkan. Faylları bütün dəstə ola bilər. Mən istəyirdim, mən yarada bilər Burada faylları minlərlə. Və rm r foo gedir olduqca annoying olacaq. Bəli, bəli, bəli, bəli, bəli, bəli. Daha çox faylları ilə tez necə dəfələrlə görmək Mən bəli yazın var. Yaxşı, biz necə biz əvvəl gördüm bəli f yazın ehtiyac qurtarmaq. Belə ki, mkdir foo cd foo touch 1 2 3. OK, belə ki, rm-rf foo gedir kor-koranə tamamilə foo çıxarın. No tez. No bir şey. Foo getdi. 

Mən bu istifadə edirlər bütün vaxt əmr. Ki, bir olduğunu ifadə edərək, çox təhlükəli komanda, Mən kimi bir şey, çünki bu, sizə təklif deyil. Bu getdi olacaq. Və bu, olduqca tez-tez olur və daha yüksək səviyyəli CS kursları. Bəzən biz görəcəksiniz bir şey kimsə Mən təsadüfən bizim rm rf-ed mənim ev deyir kataloq və mənim P set bütün getdi. Və bu, dağıdıcı deyil lakin heç bir zibil can var. Heç nə yoxdur heç oldu Siz almaq üçün. Bu, sadəcə getdi. Olacaq Hətta pis rm-rf / kimi bir şey. Beləliklə, biz yalnız müzakirə ki, kök kataloq. Bu bütün keçirir sistem faylları. Things olduqca messy əldə edirlər Siz ls kimi şeylər aradan qaldırılması zaman, və cd, və o bütün. 

Auditoriya: fərqi nədir rm, RF və rm * arasında Rob Bowden: Belə rm * - 

ALLISON: Sual nə idi rm, RF və rm * arasında fərq. 

Rob Bowden: * Belə rm. Bütün ümumi vasitələri Star Bu kataloq məzmunu. Digər düşünməyə çalışır ulduz göstərən yolları. Yaxşı, ümumiyyətlə həqiqətən ulduz hər hansı model uyğun deməkdir. Mən dog1 adlı bir fayl var Belə ki, cat2 toxunmaq, cat1 toxunmaq, dog2 toxunmaq. Belə ls * 1 cat1 çap edir və dog1 ki, ulduz dolu ola bilər, çünki bir var olmalıdır with-- da, amma ulduz pişik və ya it ola bilər. Bu vəhşi kart var. Mən arıyorum söz var. Wild kart. Yoxsa mən it * LS, bilər Mən dog2 dog1 görmək lazımdır alıram. Belə ki, bu faylları siyahı ki, model uyğun. Bu şəkildə ls istifadə edə bilərsiniz. 

Ls * ulduz bir şey gəlir. Belə ki, bütün çap olacaq Bu kataloq məzmunu onların hamısı bəri uyğun. Bu bir şey çap etmək niyyətində deyil yuxarı səviyyəli rehberler. Mən varsa sub kataloq foo, və toxunmaq 1 2 3-- indi rm * ulduz əgər, cat1, cat2, dog1, dog2 çıxarın. Foo aradan qaldırılması bilməz. Bu kataloq edir. 

Belə ki, ulduz bütün genişləndirir kataloq faylları. Belə ki, texniki rm * deyən kimi rm cat1, cat2, dog1, dog2, foo. Rm-rf Halbuki, texniki star ki lakin rm -rf--, biz istəyirik nə nail Mən bu çıxmaq əgər directory, rm-rf temp, ki, temp daxil olacaq və recursively hər şey aradan qaldırılması. 

Belə ki, ulduz ki, ayrı-ayrı ki, bu şey by-- aydın Mən qaçıram ki, bu şey ki, əmrləri məni isteyen sonra icra və bunu Onlara mən shell çağırırıq. Və bu shell özü bir proqramdır. Mən istəyirdi in / bin / bash run bilər. Bu shell bash adlanır. Və indi biz bir şey fark qədər dəyişib, və ki, mənim ayarları, çünki shell qədər fərqlidir. 

Amma indi texniki çalışan alıram mənim orijinal shell ərzində bir shell, Mən indi shell çıxmaq bilər, və Mən geri üst shell edirəm. Deyərək məqsədi ki, ulduz That. Belə ki, ulduz bir şey bash tərəfindən başa. Belə ki rm-rf, rf bayraq yalnız rm tərəfindən başa. Bilir zaman ki, bir rf keçir ki, sizə Bu recursively qaldırmaq istəyirik isteyen olmadan bütün faylları. Ulduz şey başa düşülür Bash ki, rm * deyəndə, bash demək niyyətində deyil hey rm * ulduz çıxarın. Bash * rm demək gedir cat1, cat2, dog1, dog2 çıxarın. Bu avtomatik genişləndirmək olacaq kataloq bütün faylları. 

Və eyni tilde başqa bash başa düşür ki, rəmzidir. Siz cd ~ bash genişləndirir deyəndə ev qovluğuna ki. Digər suallar indiyə qədər? OK, belə ki, biz tez gedən başlamaq olacaq. 

Tab başa. Yalnız orada onu atmaq. Bir çox deyil Bu var həyata. Mən cd bazası yazın əgər, mən downloads getmək istəyirəm. Mən nloads yazın ehtiyac yoxdur. Mən yalnız Tab hit bilər. Belə ki, tanıyır dow bir prefiks deyil ki, bir şey uyğun deyil Bu kataloq başqa, belə ki, sizin üçün başa çatacaq. İndi daxil edə bilərsiniz. 

Mən də recursively bunu. Belə ki, mkdir foo. Nin foo daxil edək. mkdir bar. Belə ki, mənim ev geri gedir directory, mən downloads bilərsiniz. İndi yenə nişanı vuraraq, avtomatik foo doldurmaq niyyətindədir. Bu yalnız kataloq var. Avtomatik yenidən nişanı Vuruş bar doldurmaq üçün gedir. Belə ki, indi (Yüklemeler / foo / bar ~) edirəm. 

Belə ki, bu nişanı tamamlanması, zaman mən, ofis saat var və mən artıq daimi alıram kiminsə çiyin, və onlar rm olacaq D-O-W-N-L-O-A-D-S, mən ölürəm. Just nişanı, nişanı, nişanı, nişanı. Belə ki, mütləq nişanı istifadə. Və eyni və insanların aşağı, bir çox yalnız oldu heç vaxt hit və aşağı var. Bu, əvvəlki yolu ilə getmək lazımdır əmrləri, əgər siz yalnız bir şey qaçdı, və onu yenidən run etmək istəyirəm, siz onu almaq qədər yalnız qədər saxlayın. OK. 

Belə ki, tez, bəzi başqa şeylər. Nin temp geri getmək edək. Bəzi faylları yaratmaq edək. Burada Belə ki, mən yalnız deyiləm bəzi sözlər siyahısını olacaq. it, pişik, miyavlamak. Nin, balıq it edək. Belə ki, indi rep çox deyil faydalı əmrləri ki, ərzində axtarış istifadə xüsusi mətn üçün faylları, və texniki həqiqətən edə bilərsiniz Bunun üçün kompleks ifadələri uyğun. 

Belə ki, burada, mən grep əgər, və nə Mən axtarmaq istəyirsiniz? Mən pişik üçün axtarış alıram deyirlər, və Mən bu faylları bütün axtarış etmək istəyirəm. Belə ki, necə bu faylları bütün etməliyəm? Star. Belə ki, fayl bir, mən pişik var. Mən yəqin ki, ola bilər Bu yaxşı bir şey deyilir, ki, kimi görünür, çünki line nömrələri və ya bir şey. Amma faylı bir mən pişik ilə bir xətt var. Fayl iki mən pişik ilə bir xətt var. Belə ki, indi mən fayl bir daxili baxmaq olar və görmək yeah oh, fayl pişik var idi. Notice fayl üç eşlemeli deyil pişik deyil, çünki. Mən miyavlamak üçün grep bilər. Yalnız iki miyavlamak var fayl. 

Belə ki, birləşdirə bilər bu, yenə ilə -r olan Mən əvvəl qeyd etdiyim kimi tez-tez recursive deməkdir. Və mən burada gəlmək olar, grep r hər hansı instansiya nin edit imkan kontormerinin Təfərrüatlar üçün bu yalnız orada bir pişik atmaq. Belə ki, hər hansı məsələn r grep Bu kataloq boyunca pişik. Və recursively olacaq hər hansı bir alt dizinler axtarış. Belə ki Baz, pişik var. Temp / 2, pişik var. Və temp / cat 1 var. Belə ki, faylları ərzində axtarış var. 

İndi siz də tapmaq istifadə edə bilərsiniz. Və xüsusi haqqında tapmaq bir adı ilə faylları axtarır. Belə ki, bir daha edək. Yüklemeler daxil edək. Dog1 Touch. Cat2 Touch. Cat_dog Touch. Catcat Touch. 

Mən bütün tapmaq istəyirəm adı it ilə faylları. Belə ki, tapmaq, və uzun üçün Mən yadda heç vaxt necə tapmaq nəhayət I qədər işləyib belə aydın ki, bir şey oxumaq. Belə avtomatik recursive, tapa bilərsiniz. Siz -R keçmək lazım deyil. Belə nöqtə tapa bilərsiniz. Biz hələ nöqtə haqqında söhbət yoxdur. Həmişə dot dot Halbuki bir kataloq up deməkdir. Dot həmişə cari kataloq deməkdir. Mən də r dot RM bilər Eyni şəkildə I * rf rm bilər. Nəticədə onlar eyni şey yerinə yetirmək. rm-rf dot aradan qaldırılması üçün gedir bütün cari kataloq. 

OK, Mən orada nə istəmirəm. Amma nöqtə tapa bilərsiniz. Belə ki, recursively cari axtarış directory, və indi hər şey Bundan sonra bayraqları bir dəstə var ki, qaytarılması şeyi istisna istifadə edin. Belə ki, tapmaq dot hər şey qaytarır ki, cari kataloq tapa bilərsiniz. Bu bütün faylları recursively axtarış. Biz ikinci o bəzi görəcəksiniz. 

Lakin halda mən necə merak edirik ki, ən azı Command K, belə Mac mənim terminal onu təmizləyir. Control L ümumiyyətlə təmizləyir terminal hər hansı üçün. Siz həmçinin aydın yazın. Və heç almaq bir qəribə scenario-- daxil mənə bir neçə başınıza time-- sizin tələb rəng bütün up messed, və ya bir şey görmək mümkün deyil Siz yazaraq etdiyiniz zaman çünki, çap olunur bəzən background color müəyyən edilir kimi ön rəngi eyni və indi fonts görmək bilməz. Reset yalnız sıfırlar bir şeydir default qara fon üçün, ağ ön, və ya hər hansı Əgər siz onları müəyyən. 

Beləliklə, biz idi? Dot tapın. Bu ötən Belə ki, indi hər şey point nəticələri məhdudlaşdırır bir şey oyunları verilmiş model. Belə ki, burada axtarmaq istəyirəm adı pişik ilə hər şey. Mən heç bir şey var. Niyə belədir? Yaxşı, mən yalnız üçün axtarış alıram tam adı pişik ilə bir şey. Mən bir şey axtarmaq istəyirsinizsə ki, bəzi model var, və cat-- quotes texniki, lazım deyil lakin orada onları atma alıram. Belə ki, indi catcat çünki tapır ki, yalnız bir şey var ki, bir ixtiyari var model pişik izlədi. İndi pişik * qoya bilər , catcat, cat_dog, cat2 tapmaq o, çünki pişik ilə hər şeyi bir şey izlədi başında. Siz bu birləşdirə bilər. Bütün C fayllar üçün axtarış etmək istəyirsinizsə Siz var ki, * C edə bilər. Biz burada blah.c var. Belə ki, bir tapmaq işləri var. Siz axtarış edə bilərsiniz. Bu bayraqları bir dəstə var daha məhdudiyyətlər. Və onlara biri, d deyək. Belə ki deprecated. Oh, mən istədiyiniz nə deyil. -d Deyil. Type d. Belə ki, nöqtə tapmaq - tipli d. Belə ki, nə ki, yalnız etdim axtarış alıram edir cari kataloq bütün faylları üçün EA d dayanır ilə qovluğu directory növü. Bu rehberler qaytarır cari kataloq. Və növü F bütün müntəzəm faylları, bütün qeyri rehberler. Belə ki, yalnız bir digər yollarla nümunəsi digər axtarış məhdudlaşdıra bilər fayl yalnız adı daha. 

Bu 30 dəqiqə oldu. Hələ gedir. 

ALLISON: Mən meh bilərsiniz. Bu gözəl olacaq. 

Rob Bowden: Belə ki, bəzi başqa şeylər. İndi, nida işarəsi bang. Belə ki, ümumiyyətlə means-- yaxşı, bir misal görək. Belə ki, f, hansı ki, nə gedir? Yaxşı görünür təkrar tapmaq dot tipli f. Nə! G haqqında? Bu yalnız * r pişik grep. Beləliklə, siz təkrar istifadə edə bilərsiniz bang yaxınlarda həyata command. Mən yazın əgər belə! GRE, bu yenidən run olacaq GRE ən başlayan əmrləri Bu yaxınlarda. 

Və bütün bu edə bilərsiniz tarixi əmrləri. Belə ki, tarixi. Bunlar bütün əmrləri Mən bu gün etdik. Və, bu sözün deyil Bu gün məhdudlaşdırılır, lakin mən yalnız bu istifadə etdiyiniz bu gün etibarilə cihaz. Bu sizin bütövlükdə Sizin bash shell tarixi, Bu nöqtədə off azalıb istisna olmaqla. Auditoriya: Siz ne olur tarixi [Işitilemez] komanda və səhv nəticəsində hələ the-- çap edəcək 

Rob Bowden: bir var Bəli, əgər Bu commands-- bir səhv belə deyək ki, bir deyil səhv komanda tapılmadı. Hələ tarix görünür. Bütün hüquqlar. Bir şey digər suallar? Belə ki, bang var. 

İndi həqiqətən faydalı komanda, man. Ki, verir, belə ki, bir komanda üçün dərslik. Belə ki, adamı ls deyək Bu mənə ls göstərir. Bu kataloq məzmunu siyahıları. Mən harada görmək və bu var mövcud ki, bu, müxtəlif bayraqları var. Belə ki, l var LS bax biz ki, əgər oxumaq üçün. ls -l mənə bu tam siyahı verir Fayl sahibi olan ilə kataloq, fayl ölçüsü, redaktə damgası. Belə ls -a başqa bir ki, qüdrət həqiqətən qədər tez-tez istifadə edin. mənim ən ortaq bayrağıdır bu son ls-al edir. 

Belə ki, -a, bir çox var fark yalnız ls daha çox faylları. -a ls. Bütün bu faylları ilə ümumi nə var? Onlar bir nöqtə ilə başlayın. Belə ki, bu Linux konvensiya ki, bir nöqtə ilə başlayan fayllar gizlidir. Belə ki, yalnız o deməkdir ki, zaman biz yalnız düz ls, və ya biz istifadə edərək, bu kataloq edirik Bu finder ekvivalent və ya Windows Explorer ekvivalent, biz ki, Bu dot faylları görmək istəmirəm. Onlar yalnız şeyi görünüşü çirkləndirir. Belə ki, onlar gizli Sizin halda xüsusi -a kimi bir şey ilə tələb. Mən Yerli daxil cd bilərsiniz, və görürəm ki, özü bir kataloq ilə ki, paylaşılan kataloq və applications, və blah blah blah. Belə ki, onlar yalnız gizli edirik faylları nöqtə. 

, Belə ki, digər mühüm olanları OK. Mən atlayabilirsiniz bir neçə var. Haqqında yalnız real sürətli danışmaq edək Fayl yönlendirme şeylər. Belə ki, bütöv bir kompleks sıra var şeyi bu ilə edə bilərsiniz, ancaq onları görmək, echo, deyək. Digər komanda. Həqiqətən lal komanda. Bunu bütün mən bunu demək nə çap edir. Belə ki, salam echo. Bu, yalnız ekran salam verdi. Salam dünya. Echoes dünya salam. 

Belə ki, bir komanda və ya bir bash anlayır ki, simvolu simvolu artıq bu böyükdür və ki, bir fayl simvol çıxış edir. Mən çıxış bu əgər Belə ki, foo, indi bir fayl var , foo adlı daxilində olan salam dünya. Mən echo zaman ki, görürsünüz salam foo daxil dünya boru, Bu salam dünya əks-səda etməyib. Bunun əvəzinə fayl foo verilib. Və digər komanda yalnız , sizə pişik onu atmaq. Yalnız tamamilə asan bir yoldur fayl məzmunu siyahısı Mən açıq yoxdur ki, bir mətn redaktoru keçirmək üçün. Bu Yəni məzmunu foo fayl salam dünya var. Mən pişik blah.c, bilər məzmunu bu var. 

Yenə, bu, deyil ki, əmrləri onlara bütün xatirəsi var gözləyirik. Ideyası siz onları gördüm edir. Bəlkə çalışırıq bir şey, və siz etdiyiniz kimi mən bu fayl açılması xəstə deyiləm. Mən yalnız baxmaq isterdim real sürətli məzmununa. Əgər bunu edə bilər geri baxmaq və oh deyirəm kimi bir şey xatırlayıram ki, mövcuddur və bu, pişik var. 

Belə ki, bir fayl gedir. İndi həqiqətən hər hansı bir yaxşı deyil hələ bir fayl oxu nümunə. Edir ki, bir şey nə var standart bir şey? Hər sadə Linux command? Biz bir neçə, bu zaman həftə piece-- də bütün, bu həftə bir parça harada var istifadəçi daxil alaraq başlamaq. Və belə ki, adətən yazın klaviatura giriş. Əvəzinə yazaraq klaviatura giriş, bir fayl bilərsiniz əvəzinə boru nə zaman ki, Mario, ./mario, belə ki, hər hansı bir faylı boru, və ki mario proqram çalıştırmak olacaq. Da daxil gözləmirdim klaviatura, əvəzinə var yalnız oxumaq olacaq foo faylı xətləri. 

Foo onu qoyur daha çox böyük foo fayl və daha az və foo foo faylı məhsulları alır və istifadə edir Bu proqram giriş kimi. Və yalnız onu görmək üçün, biz də echo bilər foo bar, baz və sonra əvəzinə bir daha çox, ən foo daxil iki edək. O nə edir? Bu, yalnız fayl edər. Mən daxil blah echo əgər Belə ki, əvəzinə bildiriş foo sonra pişik foo, yalnız blah var. Bir fayl Belə ki, siz çıxış, onu tamamilə fayl üzerine yazır. Yalnız əlavə etmək istəyirsinizsə, [ikiqat? sinif şagirdi. ?] 

Və boru son deyil. Boru daha mürəkkəb olduğu olur bir komanda çıxış edir və növbəti komanda onu qidalanır. Belə ki, bəzi ortaq bir şey, tarixi. Belə ki, uf, mən bu baxmaq istəmirəm. Mənim tarixində bütün əmrləri göstər I grep-ed olduğu bir şey üçün. Xeyr, confusing var. Mənə tapa bütün əmrləri göstər. Bütün Mən heç qaçdı əmrləri tapa bilərsiniz. 

Belə ki, tarixi. Bu artıq tarix nəticələri əmrləri bu siyahı ekran, lakin mən istəmirəm ekran çıxış onu. Əvəzində mən grep daxil boru ona gedirəm. Belə ki, tapıntının bütün hallarda üçün grep bildirin. Belə ki, indi əvəzinə grep alaraq giriş yerinə kontormerinin Təfərrüatlar grep kimi input-- biz istəyirik idarə edə bilər az fərqli Burada grep istifadə. Belə ki, əvəzinə siyahısı yazaraq şeylər üçün axtarış istəyirdi və grep giriş kimi qəbul edir. Mən yalnız grep, tapa əgər Mənə hər şeyi yazın üçün gözləyir. Belə ki, pişik salam tapa bilərsiniz. Hello. Tapın. Mən tapa yazın hər zaman edək Mən tapmaq yazdığınız tanıyır. Belə ki, əvəzinə bu, olacaq tapmaq üçün axtarış faylları. 

Belə ki, tarix indi gedir çıxış bütün əmrləri siyahısı. Biz çıxış qoyulması edirik, və biz bu grep qidalanma edirik və belə həyata spitting oldu tapıntının bütün hallarda. Səbəbi Mən çaşdırıcı olarıq bildirib hələ confusing var istisna olmaqla, mən əgər. Mən grep üçün grep edin. Bu, çox həmişə olduqca bildiriş əmri I göstərən ki, komanda çünki qaçdı özü daxilində grep var. 

OK, belə ki, bir şey haqqında hər hansı bir sualınız? Mən bu nöqtədə artıq köçürmək lazımdır. İnşallah bu gözəl Bütün əmrləri ümumi Siz ehtiyac yoxdur ki, xatirəsi, lakin bu etmək möhkəm 95% nə mən command line yoxdur. Həmçinin unutmayın ki, command line özü, bash, bir proqramlaşdırma dilidir belə ki, siz, aşağı almaq zaman həqiqətən kompleks şeylər edə bilərsiniz. Və bu kimi şeylər var loops, və ifs və o bütün Siz istifadə almaq olacaq ki, proqramlaşdırma dilləri ilə. Amma bu kənarda Bu bölmədə daxilində. OK, belə ki, heç bir sual? ALLISON: Yoxdur? GABRIEL: Siz to-- gedir ALLISON: Mən bunu edə bilərsiniz mina istəyirsinizsə. Biz nə edə bilərsiniz. Rob Bowden: Allison üçün Off. ALLISON: Woo. Siz Rob riayət etmək çətin aktı istəyirik. Siz mənə keçmək istəyirsiniz? Yoxsa OK, var. Mən cəhd və gedirəm kifayət qədər kimi uzun ola bilər. Bu iradə görmek edək Mən istədiyiniz yol çalışır. Bəlkə? Haha! Bəli. 

Mən yalnız çox tez getmək üçün gedirəm dəyişənlər, loops, conditionals vasitəsilə, və compiler bir az. Siz sualınız varsa istənilən vaxt, mənə dayandırmaq edin. Bu uşaqlar təkrar mənə xatırlatmaq olacaq Mən unutmaq halda sizin sual, lakin çox pis ola bilməz. 

Dəyişənlər belə ki, bəli. Biz heç bir var sizin Burada Scratch ədəd. Mən, əgər ən əminəm Siz oyun bir növ idi Not ilə yaradılmışdır ki, siz idi hesab kimi bir şey takip, və ya vaxt, ya kimi bir şey. Parlaq narıncı Belə ki, biz orada görürük ki, ədəd yalnız Scratch formasıdır dəyişənlərin və siz mütləq olacaq dəyişənlər istifadə proqramları ərzində. Siz değilseniz, mən, həqiqətən deyiləm Siz işle. 

Amma hər halda, böyük bir şey, dəyişənlərin müəyyən. C ilə hər dəyişən var bir növü elan etmək, mən bir çox verdi üst general biridir. Beləliklə, siz lazımdır sizin yazın və sonra nə sizin dəyişən zəng etmək üçün qərar. Bu halda, növü So Sizin dəyişən siyahısı. 

Biz üç nümunələr var. Bəzi dərəcəli Char, nə olan A, Mən sizə bütün istəyirəm əminəm Bu sinif almaq üçün. Siz çox müəyyən edə bilərsiniz bir xətt üzrə dəyişənlər kimi uzun onlar bütün eyni tipli etdiyiniz kimi, orada ikinci nümunəsi Siz üç olduğu dəyişənlər, x, y, z. Onlar bütün üzüb gedirdi istəyirik. Və sonra bu son, həmçinin int hesab və sayı nümunə komanda, siz orada onlara başlamaq. 

Burada orta Məsələn belə ki, biz yalnız, x, y, və z float o hələ başlatılmadı deyil. Onlar heç bir dəyəri var. Yoxsa onlar zibil dəyərləri var. Və siz cəhd və onlardan istifadə əgər, Bu compiler sizə fəğan edəcək. Siz də bəyan və Sizin dəyişənlərin başlamaq. Bu son bir, belə ki, biz də edirik. Biz dəyişənlərin elan edir vurmaq və komanda nömrəsini, və biz onları başlatılıyor veririk 7 və 4 onların ilkin dəyərləri müvafiq olaraq. Cool. Hər kəs yaxşı? Awesome. 

OK, belə ki, bəzi konvensiyalara. Uşaqlar oxumaq varsa stil 50 vasitəsilə bu biz istədiyiniz yalnız şeylər Sizin stil həyata keçirmək. Belə mənalı adlar. Siz şeyi zəng başlamaq yalnız x, y, z, xüsusilə Siz lengthier daxil kimi proqramları, sen yəqin ki, gedir Özünüzü çaşdırmaq və ola kimi istinad bu dəyişən nə. Bu nə deməkdir heç bir fikrim yoxdur. 

Bu keçirmək üçün nəzərdə əgər Belə ki, hesab, bu, hesab çağırırıq. Bəzi cavab keçirmək üçün nəzərdə əgər və ya, nəticəsində bu kimi bir ad vermək. Loops üçün olan biz növbəti slayd nəzərə almaq, hərf dəyişənlər gözəl edir. Rob Bowden: Mən, j, k var loops üçün yalnız konvensiyalar hər kəs onlara gözləyir ki, j, k və i adlandırmaq üçün. Mən sıra görmək onlara zəng edə bilərsiniz sütun və ya sıra zəng bəzən iki nested loops, və ki cür standart var. Amma və j tamamilə başa düşülür. 

ALLISON: Bəli, i və j tamamilə gözəl istəyirik. Aydınlıq naminə kimi üçün Sizin P dəstləri bəzi, Bu daha çox mənada edə bilər orada yalnız təsviri şeyi bu takip. Amma i, j, və mən hesab edirəm k edirəm bizim böyük əksəriyyəti istifadə. 

Rob Bowden: bu ilə konvensiyalar, belə stil vacibdir. Bu dörd baltalar biri olan siz pilləli edirik, və yalnız artıq getmək üçün asandır Sizin P sonunda müəyyən əmin olun üslub səhvləri var ki. Belə ki, düzgün tabbing əmin olun. Sizin dəyişənlərin adına əmin olun. Bəzi yorum. O xal almaq üçün çox asandır. Siz düşünmək yoxdur üçün bir şey o xal almaq üçün. Siz bir şey anlamaq üçün yoxdur. Bu, sadəcə bu, olduqca baxmaq edilməsi. 

ALLISON: Əslində, biz , stil 50 olan Siz messing olduğunuz sizə xəbər verəcəkdir Siz stil up messing etdiyiniz əgər və sizə xəbər verəcəkdir dəqiq nə düzeltmek üçün lazım və necə düzeltmek lazımdır. Onu da qeyd yalnız yaxşı var ki, kurs siyasəti Siz ofisində əgər ki, saat və kodu bir mess edir, biz kömək etmək üçün Redd Siz gözəl görünür qədər. Belə ki, sağ həyata başlamaq, ardıcıl stil saxlamaq, siz də yalnız etmək olacaq zaman həyatını bütövlükdə çox asan siz debug keçmək çalışırıq. Siz anlamaq çalışdığınız əgər bir buruq brace itkin olduğunuz və onlar istəyirik, bütün yer üzərində var yalnız daha öz həyat edilməsi. Belə ki, stil uyğun olacaq. Mən sizin həyat daha asan olacaq söz verirəm. Bu, bizim həyatımızı asanlaşdırmaq lazımdır. Hər kəs çox xoşbəxt olacaq. Və istədiyiniz nə. GABRIEL: Sizin sinif yüksək olacaq. ALLISON: Bəli, sizin grade. Sizin TF sizin kimi varsa, əlverişli olmağa çalışır. Bütün hüquqlar, və sonra yalnız Burada ikinci nöqtə. Ardıcıl initializations. Biz gördüyümüz kimi, belə ki, bəyan edə bilər və hər şeyi başlamaq. Eyni xətt çox dəyişənlər. Biz sizə istəməzdim Bir şey etmək üçün bəzi dəyişənlərin elan edir və eyni onları başlamaq deyil Əgər başqaları başlatılıyor ki line. 

Belə halda ki, heç bir mənada, Biz burada nümunə var biz ints elan edirik dörddə dəyişənlərin Dəməşq və pennies, lakin dörddə və pennies ilkin dəyəri var. Biz onlara başlatılmış deyil, lakin ortasında biz artıq qaraldar 0 başlatılmış. Belə ya dörddə qaraldar, pennies yoxdur. Və ya dörddə 0 bərabər yoxdur. Dimes 0 bərabər. Pennies 0 bərabər, və ya hər hansı həmin ilkin dəyərlərdir. 

Üslubu ilə böyük şey, ardıcıl olmalıdır. Zaman şübhə, ardıcıl olmalıdır. Amma çox bizim style guide edin. Cool. Hər kəs orada yaxşı? 

Auditoriya: style guide harada? ALLISON: The style guide veb nə on-- edir? 

GABRIEL: Mən manual.cs50.net/-- hesab edirəm ALLISON: Style? 

GABRIEL: Style. Yep. 

ALLISON: Bəli. Stil 50 Belə ki, sual. manual.cs50.net/style. Bəli? 

Auditoriya: Biz müəyyən edirsinizsə dəyişənlər, bu, yaxşıdır biz [Işitilemez] kimi qoymaq əgər kimi int hesab və sonra int qol. Belə ki, indi biz deyərdim ki onlara birlikdə müəyyən etmək üçün var? 

ALLISON: Belə ki, sual Siz lazımsız kod zaman müəyyən olunur Belə int hesab kimi dəyişənlərin və növbəti line int oyun? Rob Bowden: mütləq var lazımsız kodu pis olduğu hallarda. Mən hesab edirəm ki, lazımsız kodu. Mən demək olar ki çox bəyan heç vaxt Heç eyni xətt üzrə dəyişənlər. Bir şey varsa, bu, çünki adətən mən comment bir növ tərk dəyişən üçün nə izah. Mən int hesab çizgi çizgi demək lazımdır. Hər hansı tutar. Məlumat çizgi çizgi. Belə ki, yol çox grosser var eyni xətt üzrə onlara bütün qoymaq. Mən yalnız eyni xətt onları qoymaq heç vaxt. 

ALLISON: Mən hiss edirəm bu kimi Bu nöqtədə şəxsi üstünlük. 

Auditoriya: ki, getmək edir loops və məhsulları üçün? Rob Bowden: daxili kimi? Int kimi i 0 vergül bərabərdir uzunluğu bir şey bərabərdir? Bir seçim yoxdur. Loops üçün başlatma ilə part-- belə ki, yalnız görmüşəm bilər int i az 0 nöqtəli vergül bərabərdir nə nöqtəli vergül i plus plus daha. Ki, int i, 0 bərabərdir texniki siz də edə bilərsiniz biz əvvəl gördüm nə virgülle sintaksis ilə. int i 0 vergül j bərabərdir 3 vergül k 5 bərabərdir. Siz split bir seçim yoxdur neçə xətləri qədər, ki, standart var. Görən gözəl var. ALLISON: Awesome. Yaxşı, loops rahat segue. Belə ki, Bəli, burada biz bəzi nümunələr var Siz uşaqlar Not gördüm ki, loops. Və əlbəttə bütün bunlar yalnız C. yeniden bilər Onlar əsasən imkan verir kodu bəzi bölmə təkrar müəyyən bir şərt qədər biz will, görüşüb danışdıqdan sonra sağ almaq haqqında conditionals ilə loops. 

Beləliklə, biz üç əsas növü var. Isə, və bunu müddət üçün olan biz bütün indi vasitəsilə gedəcək. Belə ki, ilk bir loops üçün. Bir şəraitdə Belə ki, kodu bu blok icra. Biz bu sərin az var altındakı burada diaqram. Amma əsasən siz var Sizin üçün, ilk xətti ki, Siz olacaq Sizin dəyişənlərin başlamaq. 

Biz danışdıq, belə ki, i 0 və ya i bərabər 10 bərabərdir. Əgər lazım nə olursa olsun dəyişən bu olmaq orada başlatılmış olacaq, elan və bəzi dəyəri başlatılmış. Beləliklə, biz bəzi ki, vəziyyəti gedir yoxlanılması üçün bizim bir şey qarşı dəyişən. Tipik halda olduğu halda belə bəlkə kodu bu bölüm istəyirəm beş dəfə icra. Beləliklə, biz i 0 bərabərdir int var, və biz istədiyiniz i 5-dən az zaman olmaq istəyirəm. Belə ki, vəziyyət yalnız ki, hər dəfə yoxlamaq olacaq. Bir şərtlə ki, əgər doğru üçün qiymətləndirir, bu dəqiq olan kodu, run olacaq Bu kiçik diagram nə göstərir. 

Və belə ki, onu həyata keçirir. Bu dəyişən yenilikləri, biz görmək nə olan bizim üçün son hissəsində orada loop başlatma. Belə ki, yalnız bunu davam edəcəyik ki, vəziyyəti görüşüb deyil qədər, və sonra çıxış edəcək loop və davam proqram qalan hərəkət. Hər kəs orada yaxşı? Cool. 

Belə ki, burada, çox oxşar bir misal var bir şey Mən yalnız danışdıq. Beləliklə, biz yalnız çap etmək istəyirəm Bu 10 dəfə CS50 edir. Belə ki, biz burada bax Bizim üçün, və sonra biz dəyişən başlamaq i 0 bərabər olmalıdır. Bizim vəziyyəti yoxlanılması Bu az 10 olduğunu. Zaman biz ilk doğru qiymətləndirmək başlamaq, və sonra dəyişən yeniləyir Bu həqiqətən həyata ki, hər dəfə və bu izləri CS50 edir. 10 dəfə sonra ləğv edəcək. Cool. 

Loops növbəti isə belə. Burada görmək kimi, biz yalnız var bəzi bu vəziyyətdə sual isə? 

Auditoriya: Mən necə atlayabilir həqiqətən yalnız bir sayı, lakin iki ədəd [Işitilemez] i plus plus plus? 

ALLISON: Belə ki, sual necə edə bilər idi daha bir dəyişən yeniləmə bir anda. Belə ki, i plus plus olacaq bir hər dəfə yeniləmə. Siz onu yeniləmək istəyirdi iki, siz i plus 2 bərabərdir edə bilər. 

Rob Bowden: gördünüz plus hələ mühazirə bərabərdir? 

Auditoriya: [işitilemez]. 

ALLISON: Bu səmərəli deyil Eyni şey i plus 2 bərabərdir kimi. Belə ki, onu almaq olacaq və iki hər zaman güncelleyin. Plus bir şey deyil bərabərdir biz sintaktik şəkər zəng. Rob Bowden: Bəli, o mövcud olduqca çox bütün hesab operatorları. Bərabər Belə i dəfə sayı ikiqat olacaq. j bölmək 3 eyni bərabərdir j kimi 3 bölünür j bərabərdir. 

ALLISON: ya minus 2 edəcəklərini bərabərdir iki hər zaman i azalma. Rob Bowden: Hətta mod bərabərdir. Siz bitwise operatorları görmədim, lakin, caret bərabərdir və işareti bərabərdir o bütün mövcud. 

ALLISON: dəfə Belə ki, bir çox, xüsusilə P dəstləri ilk neçə ilə, Siz yəqin ilə incrementing olacaq bir, belə ki, i plus plus, j plus plus Siz davam olduğunuz hər şeyi adətən istifadə etmək. Amma ki, yeniləmə şərtdir tam nəzarət çərçivəsində. Siz nə əlavələr ilə təkmilləşdirə bilər və ya hər hansı şəkildə siz qərar. Bəlkə hətta onu olmaq istəyirəm bəzən bir təsadüfi sayı. Amma bəli, çox var şeylər ilə edə bilərsiniz. Siz i plus plus məhdudlaşdırıla deyilik. 

Rob Bowden: Just belə ki, bu da mövcud bilirik başqa formada mövcuddur, üstəgəl plus i. Əgər online aradığınız əgər Belə ki, və görmək nə plus plus i, olduqca çox eyni şey deməkdir. ALLISON: Cool. Yaxşı? Awesome. Loops Belə isə. Çox oxşar. Siz bir vəziyyət var. Əsas odur xəbər burada əvəzinə olan deyil üç müxtəlif hissələri qurmaq, biz bir var. Biz yalnız bir şərt var ki, yoxlanılır olunur. Və eyni şəkildə, kimi uzun şərtlə ki, doğru üçün qiymətləndirir Sizin kodu çalıştırmak üçün gedir. Və o yalan varsa, onu , hərəkət ləğv edəcək proqram növbəti hissəsi üzərində. Belə ki, bu cür nə qədərdir edir yoxlanılması yaxşı bir nümunə bəzi normal vəziyyətinə? GABRIEL: doğru olsa. ALLISON: Siz doğru isə edə bilər. Yaxşı, 1 1 bərabərdir. 

Rob Bowden: Siz Baxmayaraq edə bilərsiniz yalnız əvəzinə loop üçün istifadə, Siz həmişə bir kod bilər bir müddət loop loop üçün, belə ki, i 0 daha çox və ya i az 10 edir. 

ALLISON: Awesome. Və sonra biz etdik loops, olan isə istifadəçi qiymətləndirmə, harada böyük Siz bir şey almaq istəyirəm cari varsa istifadəçi, bax və oradan davam edir. Belə ki, bilmək şeyi bir ilə Bu həyata olacaq ki, isə bunu, və sonra yenidən icra edəcək Bu vəziyyət görüşüb əgər. 

Belə ki, yəqin ki, ən yaxşı yol bunu etmək yalnız burada bir nümunə görmək olur. Mən yalnız qeyd etdiyim kimi, istifadəçi belə qiymətləndirmə həqiqətən useful-- edir və ya edə whiles həqiqətən istifadəçi qiymətləndirmə ilə faydalı. Belə ki, bu yalnız gedir Bəzi istifadəçi yenidən təklif etmək müsbət nömrəsini daxil edin qədər, Sizin P set üçün faydalı ola biləcək bu həftə. Və bu halda, biz əvvəlcə bu proqram run, çap olacaq müsbət nömrəsini daxil edin. Bəzi olacaq istifadəçi giriş, və sonra yoxlamaq olacaq vəziyyəti qarşı giriş ki, bunun üçün müəyyən etdik. 

Belə ki, bu halda yoxlamaq olacaq. Bu, OK, demək olacaq Bizim giriş mənfi, və ya 0 və ya mənfi, edir olan yalnış olardı. Belə ki, o yenidən tez olardı. Sual? 

Auditoriya: kimi onda bu eyni deyil loop isə yalnız kodu kopyalanan əgər və [Işitilemez] loop isə qoymaq? 

ALLISON: olardı sual idi Belə ki, bu yalnız bir müddət eyni ola loop biz, əgər yalnız Yuxarıda isə loop surəti. Belə ki, bu halda, sizin isə loop deyil ilk vəziyyəti yoxlamaq olacaq. Biz çalışdıq, bu halda, əgər belə yalnız bir müddət loop kimi yazmaq, Bu isə deyərdim Giriş az biridir. Amma biz bunun üçün giriş yoxdur. 

Auditoriya: Siz [Işitilemez] loop bu kodu daxil olmaqla, lakin sonra siz kodu öhdəsindən də isə loop yuxarıda. Siz yalnız bu kodu idi [Işitilemez] loop isə. ALLISON: olardı Eyni şey, bəli. Belə ki, yalnız yazmaq bilər əvəzinə do-- yes olan. GABRIEL: Amma daha zərif. ALLISON: Bəli, daha zərif. Siz dizayn və etajer daxil edə bilərsiniz amma bəli, siz tamamilə bunu edə bilərsiniz. Hər hansı digər suallar? Sərin, OK. 

Beləliklə, biz şərait haqqında çox söhbət etdik biz bütün bu loops, belə ki, biz, həqiqətən, nəzərə alırıq Boolean ifadələr şərait. Yenə C bu istifadə, belə ki, yalnız cür keçid daha çox qrafik interfeys həqiqətən kodlaşdırma. 

Cool, belə böyük bir, əgər. Əsasən yalnız təqdim etməyə imkan verir Bizim proqram və çek bəzi məntiq sys şərait. Bu halda belə, OK, 0-dən n böyükdür? Bu icra edə bilərsiniz, belə Bəli, edir. Bu yalnız bir neçə yoxlanılması Siz var ki, vəziyyəti Mən bütün etdiyiniz hesab edirəm ki, müəyyən şərait yoxlanılması ilə rahat. Cool. Belə ki, digər bir başqa əgər, Bu doğru əgər, OK demək olar Bu ilk şey. Əks halda mən istəyirəm default və başqa bir şey. Bu halda kimi, ya bir seçin müsbət sayı və ya bir mənfi sayı. Siz yalnız iki variant var. Siz asılı olmayaraq icra etmək lazımdır nə sizin istifadəçi giriş. Belə ki, yaxşı demək olar Bu 0 daha çox? Cool. Müsbət sayı. Əgər belə deyilsə, mənfi çap. Hər kəs yaxşı? 

Və sonra tanımaq üçün bir şey əgər vəziyyəti görüşüb ki, başqa da icra heç vaxt. Yalnız bu bir iradə bir zamanda icra. Belə ki, ticarət off var. Siz həm almaq yoxdur. Siz ilk şərt var. Siz əgər var və ya başqa deyil, həm də. Sonra hər şeyi edə bilər daha mürəkkəb, , əgər edə bilər, çünki başqa, və sonra başqa. Bu halda belə, biz üç şərait var. Və yenə, bu yalnız biridir sonuna qədər davam icra olunur. Belə ki, siz merak bilər yaxşı, nə əgər bir şey var ki, bu iki cavab bilər. Bəlkə giren etdiyiniz hər hansı vəziyyəti də görüşüb əgər və başqa əgər. Çalıştırmak üçün gedir ki, yalnız bir şey 

ALLISON: Kimi tezliklə bir şey tapır kimi ki, üçün şərt cavab verən doğru üçün qiymətləndirir ki, nə var Bu run və başqa heç bir şey olacaq. Siz əgər Belə ki, bu sayı ilk bir 0 və 5 arasında, və ya 3 arasında bu sayı və başqa əgər hissəsi üçün 5, və giriş bir sayı Mən 0 və 5 and-- 4 söylədi. Bu ilk bir hit olacaq. Bu OK, bu demək olacaq sayı 0 və 5 arasında. Icra və buraxın. Bu ikinci seçimi edib heç vaxt. Cool? Awesome. 

OK biz də switch hesabatları əgər var Siz hətta more-- ya üzr almaq istəyirəm keçid yanında. Mən burada irəlidə özüm alıram. Yenə çox blokları əgər mən yalnız etdi kimi tezliklə bir vəziyyət tapmaq kimi ki, görüşüb və başqa bir əgər başqa, əgər ki, Bu yaradır. Yoxlamaq lazımdır, əgər çox şeyi, sen Bu, istifadə etmək istədiyiniz olacaq Burada hər zaman yoxlamaq olacaq. Belə ki, bu vasitəsilə və əgər davam edəcək Bu, 90 və ya daha çox bərabər ki, çap olacaq. Və axır və Bu hər bir yoxlamaq. 

Auditoriya: Belə ki, bu olacaq [Işitilemez] daha çox arabası. Bu [Işitilemez] kimi ola bilər? 

ALLISON: Sual bu olardı edilir arabası və ya bu istədiyiniz nə yoxdur. Bu, həqiqətən nə asılıdır Siz proqram istədiyiniz. 

Auditoriya: Mən sizə 90 qoymaq əgər kimi demək. ALLISON: Siz qoymaq 90-- Auditoriya: [işitilemez]. GABRIEL: Siz iki şeyi almaq olacaq. ALLISON: Siz iki şeyi almaq olacaq. Bəli, iki. 

Rob Bowden: iki? 

ALLISON: Xeyr 

Rob Bowden: Four. Siz 90 qoymaq, bu demək olacaq , bir C var, bir B var, A var Bir D. var 

Auditoriya: [işitilemez]. ALLISON: Sağ. Mən sizə nə asılıdır siz proqramı istəyirəm. Bəzən lazımdır Çox şeyi yoxlamaq. Siz qədər dərin almaq lazımdır nə irəli getmək kimi yaxşı dizayn deyil. Mühüm şey dərk bu ki, Burada bütün dörd şərait yoxlamaq olacaq. Halbuki bu, əgər başqa başqa əgər olsaydı başqa, əgər, ilk halda hit olacaq Bu A var və edilə çap olardı. 

Rob Bowden: Hətta biz əgər əgər bu dəyişdirmək üçün qərar və 90 çox və ya bərabər daha, , əgər 80 və ya daha çox bərabər daha və daha az və ya 89 bərabər, əgər n 70 çox və ya bərabər daha, və n daha az və ya bərabər 79, belə ki, düzgün olacaq. Yəni biz istədiyiniz nə, lakin Bu hələ hər bir yoxlayır. 

Ilk ssenari isə, əgər biz yalnız başqa əgər başqa, əgər ilə 90 daxil edin, və biz sonra, 90 daxil Bu düzəltmək olacaq. Bu ilk kontrol bir çap, A var hər şey keçmək çünki artıq işləyir, biri. Bütün hallarda qarşılıqlı eksklüziv əgər Əgər başqa başqa əgər əsaslanır. Belə ki, icra edəcəyik ilk, onda bunu. Bu sonuna getmək lazımdır. 

Biz dəyişdirmək əgər Halbuki bu mən nə olmaq 89 daha az və ya bərabər deyərək. Bu ilk bir yoxlamaq olacaq. Bu çap edəcəyik. Bu ikinci bir yoxlamaq lazımdır. Bu çap etmək niyyətində deyil. Üçüncü yoxlayın. Çap etmək niyyətində deyil. Dördüncü yoxlayın. İndi çap. , Başqa əgər halda belə versiyası, çünki bu hallar qarşılıqlı eksklüziv, bu var əgər başqa, əgər başqa yaxşı istifadə, çünki gedir şərtlər az yoxlayır Bu versiya daha. ALLISON: Awesome. Belə ki, başqa bir şey biz nə keçid şərhlər. Əsasən bir switch bəyanat bəzi dəyişən edir, bu halda n var, və icra üçün halda müəyyən. Belə ki, bu bir sizin hallarda da cür qarşılıqlı müstəsna olmalıdır. Bu halda, əgər belə biz bir, bu almaq nə ki, uyğun gedir n dəyişən nə dəyəri Bu hallarda bir, belə ki, 1, 2, və ya etmək 3 və müvafiq line çap. 

Və sonra burada qeyd əgər, biz də bir default var, olan sizin başqa kimi düşünürəm bilər. Əgər hər hansı bir digər sayı almaq əgər Belə ki, Bu halda 1, 2, və 3 başqa yalnız etibarsız çap olacaq. Qarşı ifs istifadə zaman Verme açarları qarşı elses əgər gedir bir şey ki, uşaqlar olacaq Siz yazılı başlamaq kimi müdrik dizayn bax daha mürəkkəb proqramları, və heç bir ağır və sürətli qaydaları var və onlara istifadə etmək. Bu, həqiqətən kontekstində asılıdır. 

Rob Bowden: Və yalnız orada atmaq daha rahat bölüm ildən. Açarları, onlar edirlər be-- belə məhdud edirik yolları sayı siz istifadə edə bilərsiniz, IFS çünki, Vəziyyəti olduqca ola bilər istədiyiniz çox şey. Ilə hallarda keçir nömrələri olmalıdır, və ya texniki onlar chars ola bilər, lakin biz görəcəksiniz kimi chars, yalnız nömrələri var. Belə ki, onlar nömrələri, lakin açarları olmalıdır əgər daha həqiqətən daha səmərəli başqa başqa, əgər hətta çünki Əvvəl də nümunə alaraq, Bu sinif misal yaxşı görünür. 

Yaxşı əvəzinə, burada deyək bu başqa əgər kimi ssenari əgər başqa, əgər. , N bərabərdir əgər 1 bərabərdir Belə ki, Bir aşağı sayı seçilmiş çap. , N 2 bərabərdir bərabərdir əgər başqa, əgər Siz orta seçilmiş. Bərabər 3 bərabərdir əgər Else, yüksək. Else etibarsız. 

Belə ki, bizim ssenari idi deyirlər. Belə ki, biz daxil deyək 4, belə ki, biz etibarsız gözləyirik. Yol başqa əgər başqa yanaşma iş gedir əgər İlk vəziyyətini yoxlayır. Bu razı deyil. Beləliklə, biz ikinci vəziyyəti yoxlamaq. Bu razı deyil. Üçüncü vəziyyəti yoxlayın. Razı deyil. Beləliklə, biz başqa getmək və etibarsız çap. 

Yol switch işləri aşağı tərtib edir biz olacaq nə daxil Bir jump masa zəng etmək üçün. Əsas ideyası olan Siz 4 daxil zaman ki, dərhal default bilərsiniz. Bu am I halda 1 yoxlamaq lazım deyil? Xeyr bu deyil. Case 2? Xeyr. Case 3? Xeyr. Default. OK, bu mən tapa olmalıdır istəyirəm, və sonra icra. Xeyr, bu, dərhal default atlamalar. Yoxsa mən 2 daxil ki, bu dərhal 2 getmək üçün gedir halda 1 keçmək üçün ehtiyac olmadan. 

Ki, şəkildə Belə ki, real hazırda ki, səmərəliliyinin mənfəət ki, çox deyil. Adətən kompüter olduqca sürətli və ki, böyük deyil. Amma bu halda ki, açarları daha sürətli edir. Siz, həqiqətən, çalışdığınız əgər optimize, bir keçid istifadə edin. 

ALLISON: Cool. Və sonra biz ternary operator var. Mən əvvəl qeyd bilirəm sözü sintaktik şəkər. Belə ki, ki, yalnız şeylər daha qısa sizin kodu. Belə ki, bu hallarda biridir. 

Belə ki, ternary operator sual işarəsi colon biz line simli görmək kimi s 100-dən çox n çox bərabərdir sual işarəsi yüksək kolon aşağı. Belə ki, əsasən bu işləri necə edir 100-dən böyük n bir vəziyyətdir. Mən bu mənada edə bilər. Bu sual kimi. Bu oh, n 100-dən böyükdür deyən oldu. Kim bilir? Və bu qiymətləndirir doğru, bu vermək olacaq ki, ilk şey yüksək olan, verilmişdir. Əks halda siz aşağı vermək olacaq. Belə ki, bu yalnız bir həqiqətən sadə və səmərəli yol əgər başqa kimi bunu. Yəni bütün bu var. 

Və biz bu yazmaq olsaydı , şərti başqa əgər kimi n böyük olardı 100-dən çox yüksək qayıtmaq. Else, aşağı geri. Bu yalnız bir daha çox yazılı qısa yol. 

Rob Bowden: Belə ki, bu xüsusi nümunə zaman bir şey yapýyorsun edir bu kimi, bu model burada çox tez-tez ternary istifadə. Belə ki, biz, hələ həcmi barədə söhbət yoxdur lakin mən simli s nöqtəli vergül görən nifrət. N daha çox 100 Əgər, yüksək bərabərdir. Else, aşağı bərabərdir. Ki, model Belə ki, həmin beş xətləri Vaxt kodu sanki 100% nə köçürülə bilər up bir ternary idi. Belə ki, ternary, kodu bir line. Beş başqa əgər. Mən qeyd bir misal var hər bir zaman həyata. Bu ki böyük bir yerdir bir ternary operator üçün. Bu, belə təmiz. Amma insanlar istifadə heç edirlər. 

ALLISON: Gabe üz alın. 

GABRIEL: Belə ki, indi uşaqlar bütün mühazirə bu həftə öyrənildi Bir ki, hər şey kompüter sağ, ikili edir? Yalnız burada lampaları kimi. Siz ola bilərsiniz və söndürüldükdə bilər. Və hər şey, demək sanki hər şey. Bəzi nömrələri, və chars və strings, və hətta kodu zaman yazmaq Bu maşın tərtib edilir kimi kodu və stuff, belə ki, bütün 0 və 1 'sonunda aşağı. 

Və belə ki, biz məşğul olduğunuz zaman integers ilə olan texniki cəhətdən çox ki, bir şey sadə, biz stuff etmək lazımdır olan onlara əlavə kimi sadə şeyi yəqin ki, bir sağ, iki integers üçün nə edə bilər? Belə ki, əlavə və toplama işlemi yalnız çalışır Bu kəsir notation işləyir kimi, burada istisna olmaqla, sağ ikili var? Belə ki, baza iki var. Belə ki, 1 plus 1 əlavə edin. Yəni 0 verir, və 1-dən keçirir. Və yalnız Belə ki, indi ki, bunu saxlamaq daha maraqlı sual gəlir. 

Biz bütün təmsil necə Kompüter müsbət integers, lakin bu həyata edək. Sizlərin 1960 və ya bütün var Pretend bir şey, kompüter yaratmaq üçün çalışırıq və siz gəlmək üçün var 1 minus saxlanılması yolu, məsələn, və ya hər hansı bir mənfi ki, məsələ üçün tam. Siz bunu necə edərdiniz? Hər hansı bir fikir? Yalnız mənə bir şey atmaq. Bəli? 

Auditoriya: [işitilemez] təyin Sizin [Işitilemez] bir xüsusi. 

GABRIEL: Siz təyin edə bilər 0 və ya 1 olacaq xüsusi bit. Bu, müsbət əgər birinə deyirlər 0 mənfi əgər. Bit və sonra qalan yalnız sayı saxlamaq üçün edir. Cool. Belə ki, çox yaxşı bir fikirdir. Biz, mən bilmirəm, 200 var. Və ilk bit əgər açıq, sonra bu plus 200. Söndürüldükdə varsa, bu, 200 minus deyil. Cool. 

Yalnız kiçik bir var Bu problem, biz hər şeyi yekunlaşdırmaq üçün cəhd edir. Beləliklə, biz burada 11111 təsəvvür, və biz 00100 hər hansı ilə bu cəmlənməsi edirik. Bu iki müsbət olarsa, ki, gözəl var. Amma sonra əgər bir Onlara kimi, mənfi deyək bu az burada cavabdeh olan bir baxan mýsýn Mən separate-- etmək gedirəm bu bir ki, bu sayı burada deməkdir müsbətdir. Bu bu o deməkdir ki, burada sayı, sağ mənfi? 

Amma sonra etdiyiniz zaman onları yekunlaşdırmaq niyyətindədir, Siz əgər bəyanat lazımdır Bu 0 olduqda oh sonra mənim məbləğində olacaq fərqli bir şey, sağ? Belə ki, bir az var etmək üçün yol daha ağıllı iki nin tamamlayıcı adlanan ki,. Belə ki, əsasən biz nə nə biz müəyyən mənfi 1 şey ola əgər ki, 1 bizi 0 verir biz əlavə edin. Mənə təkrar edək. Belə ki, burada 1 ki edək. Şey nədir təbii müsbət integers ki, əlavə bizə 0 verir? Biz bu nömrəsinə əlavə etmək üçün nə cəhd? Biz OK, belə ki, əlavə imkan olacaq. Biz 1 plus 1 olacaq 0, və sonra üzərində keçirir. Və sonra biz yenə 0 almaq olacaq. Mən səhv alıram. Və 0 almaq olacaq və 0 və 0 və 0 və 0 və 0. 0 nin çox. 

Son bir, biz deyilik üzərində keçirmək mümkün olacaq, qoy, çünki biz yalnız məşğul deyirlər bir byte, belə ki, yalnız 8 bit ilə. Belə ki, kompüter default nə yalnız ki, [Işitilemez] unudur OK? Belə ki, bu adlanır nə Iki tamamlayır. Ola Biz sadəcə 1 minus müəyyən şey burada 1 əlavə əgər siz 0 verəcək. Və olduqca sərin var biz, həqiqətən, yoxdur, çünki həyata gec lazımdır məbləğin müxtəlif növü ki, bir var asılı olaraq mənfi və ya müsbət sayı. Ki, hissi edirmi? 

Biz ki, belə bir şey burada çevirmək üçün müsbət və mənfi arasında tam sonra biz hər şeyi flip edir və sonra biz nömrə üçün 1 əlavə edin. Siz özünüz etmək üçün cəhd edin kağız bir parça, ki, anlamlı görmək olacaq. Amma bu sayı əgər burada, bu beş edir. Mən hər şeyi çevirmek əgər Belə ki, burada, belə ki, 1, 1, 1, 1, 1. , Flip, flip Flip. Və sonra mən bu 1 əlavə edin. Mən dəqiq mənfi 5 üçün gedirəm. OK? 

Bu cür mənada edir, çünki Siz sayı bu yekunlaşdırmaq üçün cəhd edin biz əvvəl idi ki yenidən bu flip imkan əmrində deyilirdi. Bu 0 101 və çox idi. Bu əlavə etmək üçün cəhd əgər birlikdə iki ədəd, dəqiq 0 olacaq. OK. Hər hansı bir sualınız? 

Auditoriya: [işitilemez] 

GABRIEL: Siz nə deməkdir? 

Auditoriya: Mənfi müsbət [Işitilemez]. 

GABRIEL: Xeyr, siz çevirmek və həmişə 1 əlavə edin. Bəli. OK, belə ki, simvol da binaries kodlanmış. Biz sizin kimi, ASCII masa var də sağ, mühazirə gördüm? Belə ki, əsasən şeyi bir mapping var. Və burada mən kifayət qədər vurğulamaq bilməz ki, bir kompüter, a və 65 sanki eyni şey var. Mən char c kimi bir şey yazmaq əgər Belə ki, a, eyni zamanda bilər bərabərdir yalnız burada 65 yazmaq, və OK, eyni olacaq? Heç bir fərq var. 

Biz adətən qoymaq meyli tipli dəyişənlərin simvol. Char, onlar mahiyyətcə edirik, çünki ki, lakin, çünki insan Konvensiyanın. Amma yalnız integers ilə məşğul ola bilər yerinə növü char dəyişənlərin, və siz gözəl olacaq. Yalnız faktiki fərq bir char c və int i arasında bir int ən dörd bayt var ki, sistemləri, char bir byte isə. Onlar mahiyyətcə istəyirik məlumatları baxımından eyni şey. Belə ki, nə burada çap edəcək? Burada biz printf istifadə bir rəqəmli çap edirik Bir plus 1 və yalnız integers kimi, chars ki, yekun bilər simvol da yekun bilər. Belə ki, bu tam 65 edir. Belə ki, var olacaq 66, və burada biz var 65 plus az minus böyük A, olacaq, mən, həqiqətən bilmirəm. Amma bu dəqiq boşluq olacaq hərflərindən arasında və kiçik məktublar, belə biz doğru, kiçik bir almaq olacaq? Bəli. Belə ki, bu çap edir məhz bu biri olan xarakter. Yaxşı? Hər hansı bir sualınız? 

Burada müxtəlif bir dəstə var ədədi dəyişənlər üçün növləri. Biz artıq int haqqında danışmaq. Bu, həqiqətən to-- Float yalnız bir yoldur funny, Mən ilk öyrəndim çünki Bu gün geri proqram Python, ilk proqram heç mən yazmaq üçün cəhd, mən orada olduğunu gördüm növü adlanır və bir növü float çağırıb. Və float bütün real nömrələri idi. Beləliklə mən nə üçün xahiş Mən heç sonra int istifadə? Mən bütün istifadə edə bilərsiniz, çünki bir float ilə real nömrələri, Mən yalnız sağ, ints istifadə dayandırmaq olardı? Real nömrələri, çünki daha ümumi kimi. 

Bu çıxır ki kompüter belə deyil onlar mahiyyətcə istəyirik, çünki fərqli şeylər. Integers və üzüb gedirdi, belə ki, əməliyyatlar onlara nə ki, çünki mahiyyətcə fərqli onlar saxlanılır ki, yol, OK? Biz bir az danışmaq olacaq ikinci olduğu haqqında daha çox bit. 

Belə ki, ikiqat yalnız bir böyük float edir. Adətən ən sistemi, bir float yalnız bir int kimi, dörd bayt edir. Və ikiqat səkkiz bayt edir. A uzun uzun, həqiqətən, yalnız bir rəmzidir Siz int kimi bir növü əlavə edir. Siz uzun bu kimi int uzun deyirlər. Uzun uzun int x uzun etmək. Belə ki, ən sistemi, ki, verəcək əvəzinə adi dörd səkkiz bytes. Və həqiqətən açılır , yalnız uzun uzun demək olar ki, ki, OK, çox işləyir? Siz həmçinin kimi digər şeylər edə bilərsiniz imzasız int, ya yenə yalnız imzasız də işləmək olar. Və x dəyişən ola edəcək hər şey müsbət kimi, belə ki, həqiqətən mənfi ola bilməz Biz burada gördüm ki, yol nömrələri. Belə gözəl aşağıdakı point və dəqiq üzən. Bu səbəblərdən biri niyə əvəzinə üzüb gedirdi ints istifadə etmək istəyirsinizsə, ints 100% dəqiq, doğru, çünki? Bu dəqiq sayı var. Üzən bal, əgər siz cavab 1 10-- üzərində bərabərdir demək Mən dəqiq bu var nə Burada proqram, float.c. 20 onluq yerlərinə görüntüler. 1 10 bölünür, və ki, adətən sağ, 0.1? Lakin burada biz əgər float və sonra biz onu run, biz tam 0.1 deyil ki, görürük. Bu 0,149 bir şey var. 

Və niyə ki? Siz, həqiqətən, hər təmsil edə bilməz, çünki yaddaş bir mümkün real sayı var Onların uncountably çox. Beləliklə, biz texniki yalnız edirik Onların məhdud məbləği təmsil məlumatların məhdud məbləği ilə. Amma bu həqiqətən maraqlı deyil. İndi bu begs sual necə ki haqqında getmək bit ilə bu, sağ? Belə ki, necə üzüb gedirdi saxlanılır? Integers ilə asan idi. Amma üzüb gedirdi ilə istədiyiniz sıra maksimize üçün, və təmsil etmək istəyirəm böyük nömrələri və kimi çox kiçik nömrələr Eyni zamanda 0.000001. Belə ki, yenə eyni oyun. Biz necə ola bilər hər hansı bir fikir varmı yaddaş float haqqında getmək? Just şey atmaq. Bəli, xahiş edirik. 

Auditoriya: [işitilemez] kimi iki ints və əgər olan [Işitilemez] və bir varlıq bu kəsir sonra hər şey. GABRIEL: OK, sərin. Belə ki, iki müxtəlif integers. Siz 12.45 ola bilər, belə ki, 12 və 45 var. Nice. Nə demək gedir evvel? Eyni şey? Bəli? 

Auditoriya: [işitilemez] notation siz baza ayrı-ayrı. 

GABRIEL: Elmi notation, Bəli ki, nə adətən var. Belə ki, bu mantissa adlanır nə. Yəni əslində nə var sayı, və sonra eksponent sağ vergül yalnız harada? Belə ki, bu bir şey olacaq şəklində 1, 2, 3, 4, 5 dəfə 10 mənfi 4. Mən yalnız dəqiq, evet that-- həyata keçirilir. Və sonra minus 4 Bu 10 Bu vergül olduğu OK, müəyyən gedir? Braziliya biz vergül istifadə edin. Burada uşaqlar bir dot istifadə edin. Belə ki, bir dot. 

Və bu, çünki siz, sərin Bu oğlan sizin bit çox diqqət burada mantısını, və o var faktiki dəqiq olacaq. Və ondalık ya bunu edə bilərsiniz və ya ikili based sistemi. Müxtəlif var yolları bu həyata. Suallar? Bəli? Auditoriya: necə bir çox yerlərdə ondalık [Işitilemez] sonra? 

GABRIEL: Bu mürəkkəb sual, Bu, həqiqətən, 100% dəqiq, çünki, burada, görmək, çünki bir ədəd 100% dəqiq deyil. Biz burada 0,5 qoymaq əgər mən inanıram Bu 100% dəqiq olacaq. Bu 0.500000 olacaq. Belə ki, bu halda, bu mükəmməl. Lakin digər hallarda, daha az mükəmməl. Mənim təcrübəsi, dörd up kimi, Beş decimal yerlərdə olduqca dəqiq deyil. Bir cüt istifadə edərsə, bu olacaq OK, daha yol daha dəqiq olacaq? 

Rob Bowden: Belə ki, yalnız atmaq üzüb gedirdi bəzi çox kontekstində, Mən 100% necə xatırlayıram heç üzüb gedirdi spec həqiqətən işləyir lakin mən həmişə xatırlayıram nə ki, üzüb gedirdi messy əldə başlamaq. Belə ki, fikir, həqiqətən almaq zaman ki, həqiqətən böyük nömrələri və ya, həqiqətən, həqiqətən, kiçik nömrələri, biz başlamaq pis və pis əldə fərqləndirici at iki yaxın üzüb gedirdi arasında. 

Mən haqqında düşünmək istəyirəm necə üzən point qeyri-dəqiqlik ilə, iki üzüb gedirdi var ki Mən onlara müəyyən etmək üçün cəhd C, əslində baxmayaraq Onlar müxtəlif nömrələri istəyirik, onlar olacaq eyni sayda olaraq şərh, Biz fərqli onları saxlamaq bilməz. Biz eyni bit istifadə etmək lazımdır. Və belə ki, biz almaq zaman həqiqətən, həqiqətən böyük nömrələri 300 və ya 10 kimi söhbət bir şey, bu nöqtədə var 10 üçün 300 və ya 300 5 10 dəfə fərqli ola bilməz 300 7 dəfə 10. Belə ki, olduqca böyük fərq var iki ədəd arasında. 

Amma sonra aşağı almaq zaman normal sıra şeylər, Siz olduqca olur fərqləndirici yaxşı. Və sonra, həqiqətən kiçik aşağı almaq zaman siz də yenə olduqca pis əldə edirik. Bütün dəstə kimi Belə ki, 0.0000, bu, olduqca pis olur. GABRIEL: Bəli, belə bir sürətli Qeyd. Bunu heç vaxt. Never müqayisə üçün cəhd edin bərabərdir istifadə üzüb gedirdi, Onlar demək olar ki, etdiyiniz hətta əgər çünki Eyni demək olar ki, eyni eyni deyil. Beləliklə, nə siz adətən siz çıxmaq deyil Onlara ki, mütləq dəyər almaq, daha kiçik görmek Kimi 0.0001 və ya bir şey, OK? Və sərin. Mən insanların bir çox bilirik Java bəzi background, kimin xüsusilə isə AP informatika, sağ? Və Java dili ki, əsasən C əsaslanır, Bu bir neçə çox böyük fərqlər var. Amma kimi loops, və ifs və heyəti üçün ki, onlar hamısı eyni sintaksis istəyirik. Mən bu göstərmək üçün burada bir neçə proqramları var. 

Belə ki, məsələn, bir sadə salam dünya. Bu C, salam dünya size uşaqlar ilə mütləq tanış və bu və bu bir Java edir. Java biz bu var, belə ki, ictimai sinif, salam dünya, və ictimai statik void əsas və simli args. Simli args gedir çox qısa C görünür. Amma hələ getmək bildirin. Hal-hazırda biz deməkdir, burada etibarsız var əsas hər hansı arqumentlər deyil. Və sonra biz System.out.println, bu və ki printf üçün ekvivalent cür. Burada biz, həqiqətən, backslash ehtiyac yoxdur n çap ln sizin üçün ki, yoxdur, çünki. Bu backslash appends xəttin sonunda n. 

Amma getmək əgər bir kimi bir şey, siz onlar ki, edə bilərsiniz olduqca çox eyni şey. Belə ki, başlatma, və vəziyyəti və yeniləmə That I onlar burada bir boşluq buraxılmış Java istisna olmaqla olduqca çox eyni şey, bir neçə yüksək səviyyəli məhsulları kimi var. Burada biz edə bilərsiniz plus I və Java avtomatik olacaq olan, i burada bu etmək bir tam, bir simli daxil, və sonra əlavə birlikdə iki strings. Burada C biz &% d etmək lazımdır. Burada xətt üçün eyni görünür. 

Və biz baxsaq İF, əgər də sağ, tam olaraq eyni baxmaq? Belə ki, real böyük fərqlər Burada görmək ki, o şeylər. Ictimai statik, etibarsız, və sonra ictimai sinif, əgər. Belə ki, Java nə var Bir virtual maşın çağırıb. Və o, çox ağır nəyə əsaslanır obyekt yönümlü proqramlaşdırma adlanır, bir çox, çox məşhur olan hazırda proqramlaşdırma üçün paradiqma. Bu sinif şey, görmək nə obyekt yönümlü bir şey, Siz sonra bir sinif yaratmaq və ki, sinif obyektlərin əldə edə bilərsiniz. Biz də danışmaq fikrində deyilik CS50 ki, haqqında çox, lakin mütləq deyil həqiqətən, sərin bir şey, Siz getmək istəyirəm, xüsusilə də əgər daha inkişaf etmiş web inkişaf Kursun sonunda, kimi yekun layihə təqdim və bəzi gözəl çərçivələr və stuff. 

Belə ki, əsasən fikir sizin ki bir şey yenidən həyata istəmirəm, belə ki, bir şey yaratmaq çox ümumi, forma kimi, və sonra yaratmaq bu müxtəlif formalı, və sonra hər Bu şekiller, siz yaratmaq üç bir daha xüsusi şekiller ölçüləri və ya kimi bir şey. Və onlar bu iyerarxiya onlar belə ki, digər olanları varis bütün funksiyaları və bütün dəyişənlərin ki, böyük forma burada, bu bütün var gedir, və bütün bunlar var və s və s üçün gedir. Belə ki, əsas fikirdir. 

C var, amma C deyil ++ xüsusiyyət belə yoxdur. Və Java ağır təsir edir obyekt oriyentasiya ilə, Gördüyünüz niyə belə ki burada sinfi bütün vaxt, zaman. Və digər şey Bu Java virtual maşın. Belə ki, bu, hesab edirəm ki, çox ağıllı fikirdir. Belə ki, nə insanlar olan icad java etdi onlar istəmədi iki dəfə onların kodu tərtib Onlar Windows çalıştırmak üçün idi, və ya Mac və ya Linux, onlar nə onlar sözün run Aracın kimi bir şey, lakin həqiqətən baş görmürəm. Belə ki, onlar bir virtual maşın run kompüter daxilində olan kimi əsasən mini əməliyyat sistemi. Və əməliyyat həyat sisteminin məqsədi yalnız byte kodu adlanır nə çalıştırmak. 

Belə ki, əvəzinə C, yol biz bu halda olun tərtib və sonra run ./if. Mən backslash unuttum. Java, ilk edəcəyini C Java tərtib, if.c. Bu C. Bu, dot java deyil. Və sonra ./ deyil axır var. Bu yeni fayl almaq if.class, amma siz bilərsiniz, həqiqətən yalnız indi if.class run kimi biz əvvəl idi. Bu yürütülebilir deyil. Siz run var. Siz onu qidalandırmaq lazımdır Java adlı proqram, və proqram virtual maşın, və sonra if.class, ya yoxdur. Bəli. Və sonra işləyir. OK, belə ki, bu növ virtual maşın olur. Mən əgər belə C, ki, yoxdur Windows maşın bu proqram, bu nə Java C. işləməyəcək. Suallar? Cool. Bu gün üçün super bölmə əgər var.