Rob: Bütün hüququ. Birinci hissənin xoş gəlmisiniz. Mən Rob deyiləm. JOSEPH: Mən Joseph deyiləm. Rob: Beləliklə, biz doğru daxil dive bilərsiniz Haqqında danışmaq ilk şey Bu Appliance edir. Belə ki, inşallah sizin ən var artıq nazil. Amma siz təlimatları bilərsiniz cs50.net/appliance at. Allah Oh, indi özünü şüurlu edirəm. Mən hələ də eşitmək. JOSEPH: Wow, bu kimi səslənir bu disoriented var. Rob: Belə ki, bəzi insanlar olan edilmişdir bu məsələlər, belə qədər gözləyin yoxdur problemin son dəqiqə üçün müəyyən cəhd və Məişət həll və Bu iş deyil ki, tapmaq. JOSEPH: Və bir iş deyil, əgər və sizə kömək lazımdır, siz getmək bilər cs50.net/discussion biz harada bir forum var Sizin suallar göndərə bilər. Və biz nəhayət onlara almaq lazımdır. Rob: Bütün hüququ. Belə ki, bu nə Appliance edir kimi görünür. Yenə də, bu yalnız bir tamamilə ayrı-ayrı əməliyyat sistemi daxilində çalışan hər hansı əməliyyat sistemi dizüstü çalışan. Və siz əsas şey istifadə gedit var. Belə ki, inşallah bu artıq var bir tanış site olmaq. The terminal. Və siz də Chrome çalıştırabilirsiniz Aracı daxilində. Insanlar bir neçə var internet üzvlük olan Aracı işləməyəcək. Və onların bəziləri yalnız götürmüşük var ehtimal deyil ki, Aracı internet. Amma bəli, orada nəzərdə tutulur internet olmalıdır. İndi demək lazımdır, lakin bu deyil həqiqətən bir şey demək. Internet iş deyil varsa, bu sizə lazım edirlər nə düzeltmek üçün çalıştırmak üçün. Siz internet məsələləri qarşılaşdıqda, yoxdur xatırlayıram, yalnız onu göndərmək , Müzakirə və biz run, demək lazımdır. Lakin internet iş olmalıdır. Belə ki, yalnız başqa şey - Bəli, heç bir şey başqa, həqiqətən, müvafiq deyil. Amma yalnız qeyd etmək istədi - Bu alt sağ küncündə görmək. Belə ki, Məişət cihazları hər olmalıdır bir IP ünvanı var. Və sonra dövr, bu IP ünvanı daha müvafiq olacaq zaman Siz web p-set iş edirik, çünki Siz daxil edə bilərsiniz website siz çalışırıq sizin bu IP ünvanı istifadə edərək, yerli Chrome. Amma IP ünvanı istifadə etmək nə istəyirəm üçün - və siz bunu yoxdur, mən yalnız onu qeyd etmək istəyirəm - burada. Belə ki, bu bir terminal pəncərə edir mənim Mac, bu deyil Bütün Appliance. Və siz baxmaq nə Bu komanda yoxdur. Amma birbaşa SSH gedirəm mənim Aracı. Mən IP nə bilmirəm. JOSEPH: 168 - 168.224.1.0. Rob: Belə ki, bir dəfə mən bitirdim Bu, daxil İndi, əsasən, bu eyni Mənim Məişət ərzində terminal pəncərə. Mən olduqca çox həqiqətən işləyib heç Aracı daxilində. Mən yalnız həmişə çalışan minimuma fonunda və daxil SSHed. Bu məsələ siz getmir olunur asanlıqla gedit istifadə etmək birbaşa bu. Amma bir real sərin olmaq istəyirsinizsə hacker, sonra bir istifadə almaq lazımdır hər halda command line mətn redaktoru. Belə ki, Vim və Emacs və Nano, bütün bunlar müxtəlif alternativlər var. Nano asan olmağa çalışır. Və mən heç bir var syntax. Oh, yox, bu, tamamilə yoxdur. Belə ki, Nano istifadə edə bilərsiniz, çünki bir olduqca asan ki. Siz bütün bu əmrləri bax alt. Bu kiçik kök simvol. Siz əvvəl görməmişik varsa, will yəqin ki, indi bir çox görürük. Bu, ümumiyyətlə nəzarət kök deməkdir, klaviatura alt sol kimi control character. Belə ki, burada məni bura aşağı izah edir - Mən daxil zoom əgər oh, bu off kəsilmiş deyil Belə ki, Control, X necə Mən çıxmaq üçün gedirəm. Və mən üçün Y hit bilər deyir Bəli, qənaət, N saylı Belə ki, Nano var. Vim və Emacs az daha çox meyl mürəkkəb və böyük. Amma siz onu istifadə əldə edə bilərsiniz, və sonra onu sevmək lazımdır. Belə ki, var. JOSEPH: bunu ehtiyac yoxdur. Rob: Bəli. Siz üçün gedit istifadə etmək pulsuzdur semestr qalan. Belə ki, hər hansı bir cihaz bağlı suallar? Yoxsa nə başqa hər hansı bir fikir var haqqında danışmaq lazımdır cihaz? Bəli. HOPARLÖR 1: daxil SSHed Zaman şey, parol Crimson idi? Rob: Bəli. Olduqca çox hər şey üçün parol Aracı gedir Crimson olmalıdır. HOPARLÖR 2: real IDE kimi Install cihaz haqqında, bu iş olacaq? Rob: I Eclipse yoxdur təsəvvür bir Fedora versiyası olan halda, bəli, Siz bunu edə bilərsiniz. Bu yəqin ki, həqiqətən dəyər deyil. HOPARLÖR 2: OK. Belə ki, yəqin ki, mən istəyirdi əgər asandır Eclipse istifadə yalnız doğma istifadə və sonra yüklemek - Rob: Oh, bu da yəqin ki, asandır. Amma bu iş əldə edə bilərsiniz Aracı daxilində. JOSEPH: Və kamera üçün, sual idi, başqa quraşdıra bilərsiniz Aracı daxilində IDE? Rob: Eclipse bir olan bir IDE nümunə. Hər hansı digər Appliance suallar? Bütün hüquqlar. Beləliklə, biz indi command line üçün hərəkət edəcək interface bağlı şeylər belə CLI. Və yenə, mən yalnız işə gedirəm burada, bu eyni, çünki bir terminal pəncərə ərzində iş Aracı daxilində. Necə ki, font axtarır? Ki, kifayət qədər böyük? Bütün hüquqlar. Belə ki, əmrləri bir çox var ki, Siz olduqca istifadə almaq lazımdır dövr ərzində. Naviqasiya üçün böyük iki ls, siyahısı Bu kataloq faylları və cd, belə kataloq dəyişir. Mən sonra masa üstü dəyişdirmək və bilər bir çox model a cd edir kataloq və dərhal ls kataloq nə var. İnsanlar da bəzən dərk etmirlər ki, Tab başa bir şey deyil. Belə ki, kimi cd, vh, və sonra mən Tab edib. Mən yazın demək olar ki, heç vaxt bütün şey. Və sonra mən Tab vuruş saxlamaq əgər yenidən, bu avtomatik will Mənim üçün listing başlayın. Mən cd vhosts, yerli host bilərsiniz. Və yalnız olacaq - halda siz termini eşitməmişəm əvvəl, kataloq yalnız bir söz qovluq üçün. Belə ki, indi siz görürsünüzsə - Üst ki gətirsin. Belə ki, indi siz, parantez görmək əgər kiçik tilde, çizgi, vhost bax , yerli host doğramaq. Belə ki, tilde ki, istinad mənim ev qovluğuna. Bu etdiyiniz directory var Daxil SSH zaman Bu zaman etdiyiniz directory var Bir terminal açmaq. Siz başlamaq harada var. Və mən, mənim ana qovluğu daxilində deyiləm, və mən vhost daxilində deyiləm mənim ev directory directory daxilində. Və sonra mən yerli daxilində deyiləm ki, daxilində kataloq keçiriləcək. CD ilə Belə ki, bəzi digər faydalı şeyi - və ya yaxşı, ümumiyyətlə, belə ki, həmişə dot cari kataloq aiddir. Cd, dot olduqca dəyərsiz əmr edir. Amma bu dəyişən var cari kataloq. Baxımından daha faydalı bir cd nöqtə, nöqtə, olan deyil yalnız bir kataloq getmək. Və qeyd edək ki, bu - Mən takma demək istəyirəm, lakin bu simvol, dot, və nöqtə, nöqtə, o iş siz olduqca çox hər hansı bir komanda üçün çalışan düşüncə olacaq. Siz lazımdır, belə ki, kimi cd yəqin ki, ən istifadə edərək, lakin bu deyil yalnız cd anlayır ki, hər şeyi. Bu olduqca çox şey bütün var command line anlayır. Proqramları bir çox anlamaq dot və dot, nöqtə. Belə ki, digər faydalı olanları - cd, dash. Belə ki, mənə gətirmək niyyətindədir Mən daxil idi ki, ötən directory Belə ki, bəzən mən kimi bir şey edəcəyik oh, mən burada çalışıram. Mən bir şey ilə bir səhv görmək və Mən gedərək onu araşdırmaq getmək lazımdır haradasa bir təsadüfi directory. Edərik əgər mən bilmirəm orada mənə bildirin. Olacaq. Beləliklə, mən istəyirəm nə Bu kataloq. Blah, blah, blah, blah, blah. Və mən istəyirəm, bütün hüququ kimi idi geri Mən harada getmək. cd, dash, və doğru geri mənə gətirir. Mən bir çox atmaq gedirəm Bu gün sizə bu. Mən sizə yadda üçün gözləmək yoxdur hamısı. Bu cür yalnız biləcək onlar mövcud. Və sonra siz kimi olduğunuzda, hmm, mən geri getmək istəyirəm Mən yalnız idi ki directory, oh, gözləyin ki, kimi bir şey var. Siz yalnız yazın yoxdur yenə bütün kataloqu. JOSEPH: Və nəhayət yalnız olacaq üzərində onları yenidən istifadə və Bu əzələ yaddaş olmaq lazımdır. Rob: Bəli. Mən əvvəl qeyd Belə ki, necə ki, tilde ev kataloq edir. Mən cd, tilde bilərsiniz. Amma belə yoxdur ki, Mən yalnız əgər - Mən kataloq geri getmək lazımdır bir mənasız misal deyil. Mən yalnız cd əgər Lakin, ki, var kimi eyni, mənim ev qovluğuna gedin. Mən Command, K. etmək JOSEPH: Siz də aydın yazın söz, və onu təmizləmək lazımdır. Rob: Mən Control, həmçinin hesab L da bunu edir. Müxtəlif yollarla belə çox. Mən bəzi fərqlər var olduğu aydın və Control, L qalmayacağına həqiqətən üst təkan və Mən hələ geri hərəkət edə bilər. Command, K sanki məhv hər şey, və siz up geri hərəkət edə bilməz. Ən azı ki, var Bu iTerm2 işləri necə. Mən necə digər şeylər bilmirəm - oh. SSHing ilə, siz Windows, əgər belə siz mastika download olacaq Windows etmir ildən SSH üçün daxili SSH alət kimi var. Mac From, yalnız SSH birbaşa bilərsiniz bir terminal pəncərə. OK. Suallar? Ls ilə, belə ki, bir şey üçün istifadə almaq üçün Bu əmrləri ən çox ilə - yaxşı, mən yalnız bir edəcəyik. Ls, dash, l. Belə ki, dash, l gedirik nə ls bir bayrağı zəng etmək üçün. Və bu əmrləri bir çox bayraqları var siz onlara keçə bilər. Belə ki, bu halda, tire, l bir bayraq ki, mənə tam vermək üçün deyir bütün məlumatların listing Bu faylları. Beləliklə, biz masa üstü idi ki, burada baxın 12:54 30 iyul tarixində redaktə edilib. Downloads sentyabrın 6-da redaktə edilib. Bu cari ölçüsü və Bu rehberler bytes. Siz anlamaq üçün yoxdur bütün bu. Bu stuff sol, bu drwx nin, ki, daha çox müvafiq olacaq Siz ilə məşğul sonra zaman - ki, icazələrin olan nə var Bu faylları baxmaq. Və belə ki, yalnız istifadəçi deyil, əgər Bu kompüter, siz edə bilər demək, OK, Mən yalnız bir olmalıdır Bu fayl baxmaq üçün icazə və ya mən imkan gedir hər kəs Bu fayl baxmaq. Belə ki, mənim kompüter başqası bu faylı baxmaq olar. Mən hətta nə bilmirəm - bu nə edir? JOSEPH: Mən, həqiqətən, kifayət qədər əmin deyiləm. Rob: No fikir. JOSEPH: Əgər bilmirsinizsə Lakin var istifadə edə bilərsiniz ki, bir faydalı command çıxış nə deməkdir sizə. Və insan yazın əgər əmri əvvəl - belə M-A-N. Rob: Man. Belə ki, insan başqa bir ki, çox faydalıdır. Və insan, ls. Belə ki, insan pages, onlar həm də var Siz istifadə etmək olacaq ki, əmrləri command line, və onlar da var müvafiq olacaq ki, funksiyaları Siz insan edə bilər C. - və mən 3 yok. Amma man 3 printf gətirmək niyyətindədir printf C versiyası up. Mən yalnız insan printf əgər Lakin, bu Skript printf yetişdirmək niyyətindədir ki, command line olur. Belə ki, insan, ls. Adam pages olduqca ola bilər böyük. Burada, baxmayaraq ki, bu siyahı görəcəksiniz Bu bayraqları bütün ki ls anlayır. Belə ki, biz, l dash, və getmək əgər - Mən yalnız sizə bu atmaq gedirəm. Amma axtarmaq məqsədi ilə, istədiyiniz ilk sual edib nişanı və ya slash düyməsini basın. Belə ki, doğramaq. Və sonra mən axtarış edə bilərsiniz Mən istəyirəm nə üçün. Mən dash, l üçün doğramaq üçün gedirəm. Və orada idi. Belə ki, uzun listing format istifadə edin. Ki, mənə anlamaq kömək etmir, nə xüsusi sütun nəzərdə, lakin mən burada haradasa güman ki, izah edir. Belə ki, hər hansı bir komanda üçün man pages istifadə dərhal başa düşmürəm ki. Mən hətta insan, insan can olduqca əminəm. Bu online bir interfeys istinad təlimatlar. Oh, bəlkə bir az var ki, son bir müvafiq ls, tire, a. Mən yalnız ls əgər belə qeyd, Mən bu beş faylları almaq. Mən ls varsa, dash, a, mən bir çox faylları almaq. Bütün bu arasında ortaq belə şey Yeni fayllar əvvəlcədən dot edir. Belə ki, Konvensiyanın edir ki, bir fayl ki, bir dot gizli ilə başlayır. Belə ki, siz ki, fayl görmək istəmirəm ilə bu mess var istəmirəm Sizin directory listing. Siz açıq-aydın xahiş zaman, yalnız bütün sağ, ls, tire, a, mənə göstər. Bir, bütün faylları üçün dayanır gizli o cümlədən. Belə ki, bəzi digər əmrləri. Oh, o nöqtədə suallar? Bəli. HOPARLÖR 3: ls nə zaman, a, nöqtə, nöqtə nədir? Rob: Oh. Belə ki, bu söhbət nə edir. Bu eyni şey olduğu Mən cd, nöqtə, nöqtə kimi edə bilərsiniz. Belə ki, texniki, dot və nöqtə, nöqtə var hər bir mövcud faylları dot fayl istinad yerləşir directory cari kataloq. Mən cd, dot, mən yalnız gedirəm əgər kataloq qalmaq. Və nöqtə, nöqtə həmişə aiddir Əvvəlki directory bir səviyyədə. Mən logs və ls getmək əgər, dash, al, Mən dot dot görəcəksiniz. dot cd, dot Əvvəlki kataloq mənə gətirir. Bəli. OK. Belə ki, başqa olduqca əhəmiyyətli command rm edir. Belə ki, biz olacaq nə aradan qaldırılması üçün istifadə etmək. Və mənə həqiqətən başqa edək komanda ilk. Belə ki, mkdir. Mkdir necə siz rehberler yaratmaq. Mən müvəqqəti kataloq yaratmaq lazımdır və müvəqqəti dizine getmək. Və gözlənildiyi kimi, boş. Amma ls, tire, bir, mən hələ dot varsa dot istinad və nöqtə, nöqtə, çünki cari kataloq. Və nöqtə, nöqtə də aiddir Əvvəlki directory. Və o həmişə olursa mövcud olacaq Siz daxil olan directory Və bu tamamilə lazımsız edir komanda, lakin touch. Çünki mən yalnız onu istifadə edirəm faylları yaratmaq üçün asan bir yoldur. Belə ki, c yalnız toxunmaq, b toxunmaq toxunmaq adlı üç faylları yaratmaq üçün gedir, tamamilə boş olan b, və c. Belə ki, mənim nöqtəsi həmin yaradılması birinci yer ki rm yalnız belə necə onların aradan qaldırılması bilər. Belə ki, rm, a. Bu aradan qaldırılması, mənə sual olacaq müntəzəm boş fayl? Və sonra mən Bəli demək lazımdır. Mən əmin üçün bilirik əgər mən istəyirəm ki, olmaq olmadan faylı silmək istenir, müntəzəm boş faylını aradan qaldırılması? sonra rm, dash, f olacaq edir deyir ki, bayraq olmadan çıxarırıq məcbur hətta məni isteyen, oh, siz Siz faylı silmək istəyirsiniz? Bəli, əminəm. Belə ki, rm, dash, fb yalnız olacaq soruşmadan bunu. Belə ki, bir çox rehberler etmək edək. mkdir, tmp2, cd, tmp2, a, b touch toxunmaq. OK. Belə ki, indi qaldırmaq istəyirəm bir kataloq kimi tmp2. Belə ki, rm tmp2. Siz tmp2 aradan qaldırılması bilməz, bu bir kataloq edir. Belə ki, burada məsələ rm deyil ki, deyil dərhal rehberler üzərində işləyirik. Bu, yalnız kimi faylları üçün nəzərdə qeyri-directory faylları. Və nə biz nə edə bilər burada rm, dash, r edir. Bu recursively dayanır olan güc hələ sizə bir şey demək deyil. Amma recursion almaq zaman, daha demək lazımdır. Belə ki, rm, dash, r, tmp2 gedir recursively ki dizine getmək. Belə ki, directory tmp2 daxil enmək? Bəli, ki daxil edək. Biz / tmp2 aradan qaldırılması istəyirsiniz? Bəli. Biz tmp2 / b aradan qaldırılması istəyirsiniz? Bəli. İndi biz aradan qaldırılması istəyirəm kataloq tmp2? Bəli. Və indi kataloq və içərisində hər şey bu qaldırıldı. Bir command Rmdir texniki yoxdur Siz aradan qaldırılması üçün istifadə edə bilərsiniz ki, rehberler, lakin yalnız işləri hər halda boş rehberler. Və görmək, edək, yalnız yenə mkdir, tmp2 yoxdur. Tmp2, bir toxunmaq. OK. Mən dirtmp2 aradan qaldırılması üçün cəhd Belə ki, bu lazımdır directory boş deyil, deyirlər. Mən çıxarırıq istifadə olduqca çox heç hər halda dir command, çünki rm, dash, r boş rehberler işləyəcək və qeyri-boş rehberler. Həmçinin, mən üçün istəmirsinizsə ki bütün prosesi vasitəsilə getmək dizine enən və hər bir fərdi fayl aradan qaldırılması, rm, dash, rf, tmp2. Və indi getdi. Ehtiyatlı olmaq Something haqqında rm, dash, rf edir. Və mənə hətta onu yazın qorxudur, çünki əgər mən təsadüfən hit daxil edin və ya bir şey. Belə ki, rm, dash, rf, tilde ki, olmadan məni isteyen, f təklif etmir Mənə, avtomatik olaraq aradan qaldırılması mənim bütün ev kataloq və bu hər şey. Belə ki, hesab edirəm bilər etmək axmaq şey. Və yaxşı ki, deyil. Amma bu çox asanlıqla baş verə bilər Qəza I çıxarmaq istədi, demək, əgər Mənim çizgi, vhost directory. Və yalnız sürətli yazaraq, Mən təsadüfən bunu. Həm mənim recursively aradan qaldırılması ev kataloq və vhost directory bu kataloq ki, yalnız indi yox olur. Amma bu hələ çıxarırıq mənim bütün ev directory. Ən azı bir f olmayan, bu ilk mənə təklif edirəm. Və mən, oh kimi olarıq yox, mən bunu istəmirəm. Lakin insanlar, o cümlədən, çizgi Mənə almaq üçün edirlər həmişə rf-Ing vərdiş. Mən yalnız RM bilər ki, hətta daimi faylları, c, mən yalnız rm, dash, rf, c edirlər. Siz rf-ing olduğunuzda Just ehtiyatlı olun. HOPARLÖR 4: C nə edir? Rob: C edirəm ki, C fayl haqqında söhbət alıram olunur Bu kataloq, ki, rm, c. JOSEPH: Və daha çox təhlükəli, istifadə əgər bir ulduz, hər şey aiddir kataloq. Belə ki, nə mən çox nə edirlər Mən deyil bir dizine getmək və mən istəyirəm orada bütün faylları sil. Belə ki, rm, dash, rf, star. Rob: Bəli. Rm, dash, rf, star. JOSEPH: Və siz değilseniz ehtiyatlı Siz etdiyiniz nə directory - Mən temp deyildi, amma təsadüfən oldu ev kataloq, sonra hər şey aradan qaldırılması lazımdır mənim ev kataloq. Və Mən, həqiqətən, əvvəl görülən etdik və Mən əvvəl və ya bu etdiyiniz hesab Jay əvvəl görmüşdür. Rob: Mən təsadüfən silindi etdik - belə bir az üçün komanda ignore. JOSEPH: fun deyil. Rob: Belə ki, çizgi bin kataloq a görəcəklər harada ikili faylları dəstə cingilti kimi tanış olanları ola. Yaxşı, cingilti və əsasən bütün bu Mən əmrində çalışan alıram ki, hər şeyi line bu slash bin kataloq var. JOSEPH: ls kimi burada edir. Rob: Belə ls, çizgi, olardı dot Bu kataloq siyahısı. JOSEPH: Rm bu kataloq edir. Rob: Mən təsadüfən rm ki, rf-ed bin, Mən ola bilər hər hansı bir komanda xaric olan bəlkə heç istəyirik. Hansı sonra mən yalnız yeniden bir o nöqtədə yeni Appliance. JOSEPH: Belə ki, çox ehtiyatlı olun zaman Bu funksiyanı istifadə edin. Auditoriya: [işitilemez]? Rob: Bəli. Bu da nəzərə almaq pis bir vərdiş var. Siz fark etsəniz, mən artıq Ben - yaxşı, siz qeyd edə bilməz, lakin mənim zoom-in bəlkə bilərsiniz. Mən indi root @ cihaz deyiləm. Belə ki, jharvard istədiyimiz istifadəçi Siz həmişə istifadə etmək. Root icazə var ki, istifadəçi tamamilə heç bir şey edə. Mən jharvard olduğumu Belə ki, qeyd Mən CD üçün cəhd edin - ki, bir kataloq var? Oh, kök yaxşı bir nümunəsidir. Belə ki, cd, kök. İcazə təkzib edib. Çünki biz bu siyahı baxsaq - və yenidən, siz yoxdur tamamilə bu başa düşürük. Lakin bu üç tire söyləyərək hər hansı digər imkan vermir Bu kataloq user. Və directory olur root məxsus. Belə ki, mən ki, jharvard və heç bir kök olmayan bir icazə verilir Bu directory ki, mən o deməkdir ki, icazə inkar almaq üçün gedir zaman onu CD üçün cəhd edin. Mən kök am zaman, mən icazə var o cümlədən tamamilə, bir şey əsas faylları silin Aracı və bütün şey məhv. Belə ki, onu almaq üçün bir pis vərdiş var Sadəcə ətrafında gəzən kök kimi əməliyyat sistemi. Mən hər halda bunu. Suallar? Və mən, kök çıxmaq jharvard kimi qalmaq lazımdır. OK. Daha müvafiq əmrləri. Belə ki, bizim temp geri gedir, mv komanda hərəkət dayanır. Siz hərəkət edə bilər. İndi biz, b zəng etmək istəyirəm belə ki, indi b deyirlər. Və ya bəlkə biz hərəkət etmək istəyirəm b bir kataloq up. Belə ki, indi bu kataloq boş. Mən geri ev qovluğuna gedin və bilərsiniz biz, b burada olduğunu görmək, çünki ev directory bir directory idi b daxil olmuşdur ki, directory Cp də var. Belə ki, cp, super bölmə surəti edir dot, mətn. Mən s, dot, mətn zəng edə bilərsiniz. İndi biz də super bölmə var, dot, mətn və s, dot, mətn. Bu da rehberler üzərində işləyir. Mən bir fayl ed RF. Belə ki, cp - yaxşı, ilk cp, tmp, tmp2 edək. Belə ki, directory tmp omitting. RM belə oxşar, u mənim davranış rehberler işləmək üçün. Və yenə, RM oxşar default davranış - yaxşı, bu iş üçün əldə rehberler ilə, dash-r üz. Belə ki, recursively temp surəti tmp2 daxil directory. Və indi biz, tmp və tmp2 də var və ki, faydalı deyil, çünki tmp ilk növbədə boş idi. Tmp2. İndi tmp2 daxil tmp surəti imkan verir. Və biz tmp2 də fayl var ki, bax a, çünki kataloq və ki, daxilində hər şey directory köçürülmüşdü. Və bir qədər faydalı ola bilər , çalışırıq ki, əgər problemi üzrə bir müəyyən - və ya, həqiqətən, sonra problem dəsti var daha əhəmiyyətli, çünki orada bütün dəstə olacaq faylları və hər şeyi. Amma yalnız bir split üçün, istədiyiniz ikinci, bütün hüququ, kimi, mən deyiləm fərqli bir cəhd olacaq. Mənə yalnız mənim bütün pset1 surəti imkan pset1 backup daxil directory belə ki, əgər Mən bilər, hər şeyi qədər screwing başa geri backup qovluğuna girin. Daha uyğun yolları var kodunuzu dəstək versiyonlama, lakin Bu həmişə yalnız etmək üçün sürətli bir yoludur Siz bir şey surəti Siz dəyişdirmək haqqında olduğunu. Belə ki, echo də bir-off əmr edir ki, sillily cür yalnız çap edəcək command line dəqiq nə Siz echo istədi. Belə ki, hi echo. Biz yalnız hi çap edəcəyik. Dünya salam Echo. Biz salam dünya çap edəcəyik. Bu istifadə minir zaman əmrləri birləşdirən başlayın. Və yenə, siz tamamilə üçün gözləmək yoxdur hələ bu anlamaq, lakin bu görmək üçün bir şey. Və sonra misal üçün Googling əgər və ya siz nə istəyirəm həyata bir şey, faydalı ola bilər. Belə nin, bir misal kimi, belə ls, dash, l. Belə ki, burada çıxış görmək ls, dash, l. Və mən OK, mən istəyirəm, demək bir fayla ki, saxlamaq. Burada bu çıxış bütün, mən istəyirəm ayrı bir fayl qoymaq. Simvolu çox Belə ki, bu az daha biz zəng etmək olacaq nə. Biz yönlendirme etdiyiniz bir fayla çıxış. Ki, çünki, faylı blah zəng Mən həmişə zəng edirlər nə. Belə ki, indi biz bax burada blah fayl. Mən bunu açmaq əgər, Mən bunu görəcəksiniz komanda məhz çıxdı Mən yalnız qaçdı. Və eyni, siz - bu bir fayl çıxış, bu idi əgər bir fayl daxil almaq. Bir komanda nədir ki, mən - JOSEPH: Mən sizə istifadə edə bilər yəqin ki, az və ya daha çox. Rob: Amma necə yalnız az blah haqqında? Bilmirəm. Bu ssenari gəlmək varsa, kimi bu üçün faydalı ki psets var. JOSEPH: Siz echo daxil boru onu bilərsiniz. Boru onu görmək üçün əks-səda daxil fayl. Rob: Bu boru var. JOSEPH: Sorry. Rob: Bütün hüququ. Belə ki, bu fayl çıxış edir. Bu faylı mətn almaq və proqram üçün təhvil. Və siz də bu oğlan görəcəksiniz. Belə ki, bu cür bir dəfə də edir. Və həqiqətən, mən iki yeni təqdim edəcəyik yalnız istifadə etmək əmr edir. Tarix yalnız lazımlı bir komanda deyil bir siyahısını çap olacaq bir şey mən heç bir skript satırı çalıştırabilirsiniz etdik. Beləliklə, biz burada var ki, hər şeyi görmək bütün bu vaxt, zaman çalışan edilmişdir. Ls nin çox. Və digər faydalı command grep olduğunu onun məqsədi üzərində axtarış edir nümunələri axtarır mətn, yaxşı, nə sizin üçün axtarır bunun üçün baxmaq istəyirəm. Və burada bir lazımlı istifadə demək deyil, biz tarixi işğalçı istəyirəm. Mən əmrləri üçün baxmaq istəyirəm Mən harada - bir var axtarmaq üçün faydalı bir? JOSEPH: [işitilemez]? Rob: Və ya yalnız bütün baxaq hər hansı səbəbdən, toxunur. Belə ki, bu kimi görünür nə. Və tamamilə yoxdur ki, başa düşürük. Amma fikir burada, tarix verir burada etdi eyni çıxış Bu, bütün çap yerdə Mən heç etdik hər şey tarixi. Biz o keçən olunur - əvəzinə ekran üçün çap, biz ki, keçmək istəyirəm axtarır hansı komanda grep sözü touch bütün hallarda. Və belə bu birləşməsi istifadə edərək, tools tarixi və grep, I, OK, bilərsiniz burada əmrləri bütün etdik heç var run, və burada bir qədər ümumi biri. Biz altındakı istəyirik. Və bu da mənə əmr verilməsi oldu Mən yalnız idi ki qaçdı bu söz touch. Lakin boru olduqca faydalı bir şey çox proqramlar birləşən üçün. Və həqiqətən, imkan üçün bir qısa var Mənə çıxış blah fayl tarixi və Mənə fayl blah istifadə grep ili Mən baxmaq istəyirəm nə kimi. Belə ki, boru yalnız bir qısa yoldur bu iki əmrləri üçün. Bəli. HOPARLÖR 4: [işitilemez]? Rob: Bəli. Nədir - Oh. Nin test edək. Belə ki, pişik, it, balıq. Mən grep istəyirəm. Dash, r, yenə olacaq recursively, mən aşağı enmək istəyirəm bütün rehberler. Mən recursively bütün grep istəyirəm - və mənə müvəqqəti olsun yolu bu. Mənə ignore. OK. Mən müvəqqəti üçün grep istəyirəm sözü balıq bütün hallarda. Və burada mən yapýyorum nə grepping edir recursively sözü balıq. Və ulduz bütün bunlar üzərində deməkdir Bu kataloq faylları. Və belə ki, mənə Reddedildi bir icazə verdi ki, oxumaq üçün icazə verilmir, çünki xüsusi fayl. Amma bu fayl, test balıq tapıldı. Mən də xüsusi, demək, mən yalnız bilər da, fayl blah baxmaq istəyirəm bir şey tapa bilməz halda. Mən yalnız fayl, test baxmaq istəyirəm. Bu balıq tapa bilərsiniz. Bu olduqca faydalı komanda deyil ümumiyyətlə bilmək. Grep bəzi alternativlər var daha ehtimal olunur ki, dostluq proqramçı, amma edirlər hələ grep geri düşmək üçün. Suallar? OK. Digər əmrləri varmı? Oh. Mən həmişə yalnız bir-off bir fun kəsb edir ola bilərsiniz. Bu sevimli olduğumu belə qeyd tam ekran rejimi, mən heç kimi top var toolbar və ya bir şey. Belə ki, cal yalnız mənə bir gözəl az verir doğru təqvim İndi kəsilmiş, mən güman. Amma gözəl az command. JOSEPH: Bu [işitilemez] edir. Siz ola bilər ki, digər əmrləri görüldü cingilti daxildir və etmək. Biz onların üzərində getmək lazımdır daha ətraflı sonra. Amma iş etdik əgər pset, siz olmalıdır ilə tanış. Rob: Bütün hüququ. Command line şeylər haqqında suallar? Bütün hüquqlar. Belə ki, bəzi keçək C bağlı stuff. Dəyişənlər math. OK. Biz Not riyaziyyat idi, belə ki, yalnız kimi siz də C. riyaziyyat istifadə edə bilərsiniz Biz tamamilə almaq əvvəl belə dəyişənlər. Xatırla ki, bir zaman bəyan int x və ya float y, sizin kimi dəyişən Əvvəl yazın vermək dəyişən adı. Belə ki, biz gördük növləri bu günə qədər, int var float, double, uzun uzun, Mən həqiqətən, biz var bilmirəm bu günə qədər gəldiyi görüldü. Digər olanlar var. Biz char görmək etdik. Bu kimi olan, qısa var var əks uzun uzun olduğu tam daha kiçik. Biz də simli gördük. Belə ki, nə simli haqqında xüsusi nədir? Niyə bu deyərdim olduqca int kimi? HOPARLÖR 4: Bu, həqiqətən yoxdur. Rob: Bəli. Biz simli belə ki, yalnız səbəb siz nə zaman çünki hash, cs50.h. daxildir Və biz bu nümunələri görəcəksiniz - oh, ki, yaxşı idarə etmir - cs50.h bir şey bunu yerləşir tipli xətt def, char ulduz, simli. Və belə ki, biz belə etmirlər ki var bir char ulduz hələ nə bilirik. Amma bu biz simli istəyirik deyib. Siz, simli istifadə etdik hər hansı bir yer char ulduz istifadə bilərdi, əslində bir növü olan C dilində mövcuddur. Amma biz almaq lazımdır. Oh, və doğru geri gedir. Səliqəli. Bool ilə belə eyni şey həqiqi və saxta. Bu, həqiqətən C. daxili növü deyil Bunun əvəzinə, yalnız, bu yoxdur var dəyəri sıfır? Sonra biz yalnız hesab edəcəyik bu yalan olacaq. Bu dəyəri varmı - yaxşı, bu, hər hansı yoxdur sıfır deyil ki, dəyəri? Sonra biz doğru olmaq hesab edəcəyik. Bir, iki, həqiqətdir, həqiqətdir nonzero bir şey doğrudur. Belə ki, həmin olanlardır. Elan dəyişənlərin Suallar və dəyişən növləri və bütün ki? Bəli. HOPARLÖR 4: uzun uzun üçün, kitab, bu uzun uzun int olmalı idi dedi. Amma yalnız uzun uzun işləyəcək? Rob: Belə ki, bu tip modifikatorların. Belə ki, int x. Beləliklə, biz də imzasız int x demək olar. Biz qısa int x demək olar. Biz int x uzun uzun demək olar. Amma o şeyi olduqca çox hər hansı bir mən yalnız bildirib, imzasız int, int qısa, int uzun uzun, siz xilas edə bilər int və yalnız daşımayacaq Siz int demək. Yalnız deməkdir, belə ki, imzasız x - Siz necə normal bir int ilə, Siz x mənfi 3 bərabərdir deyə bilərsiniz? Bir imzasız int ilə, siz bilməzsiniz. JOSEPH: Və yenə, kamera üçün, sual fərq nə idi uzun uzun int arasında və yalnız uzun uzun? Rob: Bəli. Mən demək olar ki, heç vaxt uzun uzun int yazmaq. Mən uzun uzun yazmaq olacaq. JOSEPH: Hər hansı bir sualınız? Rob: OK. Ki, belə silly az öyüd-nəsihət necə biz bir dəyişən elan və başlamaq dəyişən və digər bəyan dəyişən və başlamaq bir addım bütün. Belə ki, dəyişən elan və başlatma dəyişən yoxdur lakin eyni xətt üzrə ola bilər. Beləliklə, biz standart riyaziyyat operatorları var Siz istifadə etdiyiniz - plus, minus, bölmək, dəfə. Biz görəcəksiniz olan modulo da var. Ən azı, yoxdur C, daxili güc exponentiation kareti operator. Yaxşı, bir kareti operator var, lakin bu güc deyil. JOSEPH: Amma Qüvvətə yüksəltmə deyil, bəli. Rob: caret istifadə etməyin o deməkdir ki, güman etmək kvadrat və ya hər hansı kimi. Belə ki, bəzi şeylər saxlamaq bölgüsü haqqında ağla. Mən durmaq lazımdır. Belə ki, initialize cavab elan etdi. Beləliklə, biz float cavab deyərək edirik 10 bölünür 1 bərabərdir. Iki decimal yerlərdə cavabını verin. Bu şey sort ki, mən anlamaq üçün printf insan ki, , dot, 2F% nə heck deməkdir? Və yalnız, yaxşı, deməkdir 0,2 məhəl. Və%, f biz istifadə edir üzmək üçün çap. 0.2 deyib, print that iki decimal yerlərdə float. Belə ki, bu proqram bir səhv var, və siz bilər bəzi əvvəl bu gördük əvvəl CS kurs. Amma ki, səhv nədir? HOPARLÖR 5: Zero. Rob: Bəli. Biz deyəndə, cavab bərabərdir 1 10 bölünür, istədiyimiz 0.1 olmaq üçün cavab. Amma 1 10 bölünür, 1 bir edir tam, 10 tam deyil. Və biz bölünür tam zaman bir tam, biz geri almaq olacaq tam. Belə ki, 1 10 bölünür 0.1. Bizə bir tam vermək lazımdır ildən, yalnız tullamaq olacaq ki, decimal yer və deyirlər ki, cavab 0. Və belə ki, biz burada cavab çap zaman Bu 0.00 çap olacaq. JOSEPH: Və yalnız bir qeyd kimi, bu, faktiki sonra nə üz salır decimal point. Yerine idi əgər 6 10 bölünür, Siz bu verəcək ki, ola bilər 0.6 və sonra 1 qədər dəyirmi olardı. Yazın Lakin, həqiqətən, nə olur vəzifələri bu nə damla ki Bu kəsir sonra. Belə ki, 0.6 0 olur. Rob: Bəli. Və biz bunun üçün kəsmək demək lazımdır. Belə ki, bir int tökmə zaman, decimal kesilir. Belə ki, üçün fix var - əslində iki. Mən ki, ikinci gedirəm, çünki bu bir daha asan fix edir. Belə ki, bir fix üzüb gedirdi istifadə edir bölünməsi. Və həqiqətən, yalnız var Bunlardan biri float etmək. Amma bu qədər aydın, yalnız Onların həm üzüb gedirdi etmək. Belə ki, 1.0 10.0 edir bölünür iki üzüb gedirdi ayırıcı. Belə ki, cavab olan qədər başa çatacaq bir float, və belə olacaq düzgün burada 0,10 çap. Yaxşı iş deyil ki, bir şey haqqında ki, yaxşı, əmin, bu, asan idi a 1 çevirmək üçün kifayət qədər 1.0 edərək float. Amma nə əvəzinə biz iki integers idi int kimi x 1 və int y bərabərdir 10 bərabərdir, və sonra biz istəyirdik x y bölünür edirsiniz? Belə ki, yalnız asan deyil x.0 və ya bir şey. Belə ki, üçün fix tökmə olunur. Belə ki, tökmə C çevirmək üçün bir yoldur bir dəyişən növü. Belə ki, burada, 1 bir tam deyil. Və qarşısında bu float qoyaraq , biz bir float 1 tökmə. Və bu çevirmək olacaq bir 1.0 1. Bu dönüştürür bir 10.0 10. Və sonra hər şeyi eyni davranmaq biz yalnız göstərdi əvvəlki versiyası harada, gözlənildiyi kimi, biz 0,10 almaq və bu çap edəcəyik. Və biz bunu edə bilərsiniz çox dəyişənlərin. Belə ki, biz demək, float x bilər float y bölünür. JOSEPH: Hər hansı bir sualınız? Rob: Belə ki, yalnız müntəzəm riyaziyyat kimi, biz operator üstünlük var. Belə ki, riyaziyyat sinif, daha çox istəyirik əməliyyatlar sifariş zəng etmək. Burada rəsmi müddəti operator üstün. Amma operator üstün, və ya ən operatorlar, gözləmək kimi deyil. Belə ki, yalnız riyaziyyat kimi, 2 dəfə 10 daha yaxından çox qruplaşdırılmış olacaq Bu 10 2 bölünür və sonra 2. Əməliyyatlar üçün, bu 2 edəcəyik dəfə 10, 10 sonra 2 bölünür, və Bu 20 plus 5 plus 2 edəcəyik. Belə ki, gözlənildiyi kimi, və istifadə edə bilərsiniz qrup ifadələri parantez. Siz kvadrat mötərizə istifadə edə bilməz qrup ifadələr. Bəli? HOPARLÖR 5: bilərdi, həqiqətən, yalnız geri bir ikinci getmək? Bir simli bir int tökmə bilər? Rob: Belə ki, C, heç bir şey tökmə bilər Siz istədiyiniz bir şey etmək istəyirəm. Ki, demək deyil etmək üçün yaxşı bir şey. Belə ki, bir int tökmə zaman bir string, o deməkdir ki, - və biz bu almaq lazımdır daha ətraflı - JOSEPH: Çox sonra. Rob: Mən daha sonra demək istəmədiyini, mən cümlə dəyişdirmək üçün çalışdı. Biz daha çox hərtərəfli onu almaq lazımdır sonra həqiqətən bir zaman string dəyişən - belə bir string özbaşına ola bilər uzun, sağ? Və biz bir int olduğunu söyləyərək olduğunuz uzun uzun dörd bytes və səkkiz bytes və float dörd bayt edir. Belə ki, bir string, yalnız bir int kimi, yalnız var bu bayt müəyyən sayda. Və dörd bytes olacaq. Amma string olduqca ola bilər özbaşına uzun, sağ? Belə ki, salam dünya artıq 10 əgər simvol və ya hər hansı ki, artıq 4 bayt üzərində olacaq Mən bir simli uyğun bilər. Və strings həqiqətən necə ki, harada yaddaş ki, simli var saxlanılır. Və burada, mən deyəndə string x x daxilində, hello dünya bərabərdir yalnız oh, hello dünya saxlanılır deyərək yaddaş bu yerdə. Beləliklə, biz bir üçün tam tökmə üçün cəhd edin string, sonra biz şərh çalışdığınız yaddaş bəzi təsadüfi deyil bir string kimi. Və demək olar ki, həmişə hər şeyi pozur. JOSEPH: Amma əgər ki, qarışdırır Siz, biz bunu əhatə olacaq sonra dərinliyi daha çox. Rob: Bəli. Siz davam olduğunuz bu göstəricilərinə daxil almaq üçün. Ki, bir əhəmiyyətli yığın Bu kurs iki həftə. HOPARLÖR 6: bu obyektlərin kimi işləyir digər dillərdə və ya həqiqətən? Rob: Belə ki, başqa dillər, obyektlərin göstəricilərinə istifadə təmsil olunacaq. Bu baxmayaraq, eyni şey deyil. Hər hansı bir fikir? JOSEPH: Xeyr No fikirlər. Rob: OK. JOSEPH: Next. Rob: Just ilə gedin. Bütün hüquqlar. Belə ki, modulo. Yalnız biz, plus, minus kimi bölmək, və çoxaltmaq. Belə ki, modulo siz bilər biridir əvvəl görmüşəm. Və yalnız verir, deyir mənə qalan. Belə ki, 55% 10. Bölünür 55 etmənin qalan 10 5 olardı. Belə ki, 55% 10 5. Və 3% 5 3 olardı. 8% 8 0 olacaq. 16% 15 1 olacaq. JOSEPH: bu ilə qeyd etmək bir şey, çox, bu gözlənilən kimi iş bilər deyil Bir mənfi sayı istifadə edin. Belə ki, mənfi 5% 4, bəzi insanlar ki, hesab edə bilər - mənfi nə düşünərsiniz 5% 4. olacaq? HOPARLÖR 5: One. JOSEPH: Belə ki, bəzi insanlar, biri demək bəzi insanlar mənfi biri deyirlər. Amma nə - Rob: Mən hətta olmazdı o biri bildirib. JOSEPH: iki, sorry. Bəzi insanlar deyirlər - Rob: Üç. JOSEPH: Üç? Rob: Negative - mənfi beş - nə idi - JOSEPH: Üç, üç, üç. Üzr istəyirik. Çünki var zaman, ümumiyyətlə, modulunu başqa bunu gördük, adətən deməkdir sağ, müsbət sıra qayıtmaq? Rob: Beləliklə, biz riyaziyyat deyəndə,% 10-nin, Onlar sizə vermək istəyirəm edirlər - biz 10 mod, onda biz gözləyirik 0 və 9 arasında bir sıra almaq. Burada ki, belə deyil ki, mənfi nömrələri geri olacaq. JOSEPH: Belə ki, mənfi 5% 4 1 mənfi olacaq. Rob: Amma siz mod-ing istəyirik ki, nadir ilə başlamaq mənfi nömrələri. Bu keçmək. JOSEPH: Bəli. Rob: Meh. OK. Haqqında işarə belə son bir şey üzüb gedirdi, bir təhlükəli davranış var edir lakin üzüb gedirdi dəqiq deyil nümayəndəliyi. Belə ki, yenə geri bayt gedir, xatırlayıram bir int həmişə dörd bytes və bir ki, float həmişə dörd bayt edir. Belə ki, Lucas nümunəsi olduqca yaxşı. Belə ki, 3 bölünür 1 düşünürəm. Belə ki 0,3333333. Mən yalnız 32 bit, necə varsa Mən dəqiq 0,33333 saxlamaq? Və bəlkə, hər hansı səbəbdən, demək, bütün sağ, yaxşı, deyək Bu xüsusi 1011001 edək ki, yalnız 0.333333 olmalıdır deyirlər. Yaxşı, yalnız bir sonlu sayı var o bit, belə ki, mümkün deyil hər bir üzən point təmsil yalnız 32 bit verilən dəyər. Bəli, bu bir təmsil mümkün deyil üzən point dəyəri sonsuz verilir - yaxşı, bit hər hansı bir məhdud sayda verilir. Biz istifadə edərkən Belə ki, burada məsələ, yaxşı, yaxşı iki decimal yerlərdə çap, biz düzgün cavab 0.10 almaq idi. Amma başlıq altında, həqiqətən var mümkün kimi yaxın saxlanılır O bit kimi 0.10 təmsil edə bilər. Bu növbəti slayd var? Və ya deyil? JOSEPH: Bəli, o var. Rob: Blegh, blegh. JOSEPH: Bəli, siz yalnız bir az qeyd qoparmaq. Rob: Mən yalnız kiçiltmək gedirəm ki, son on ildə. Gosh mənim Oh, ki, [işitilemez] var. Belə ki nömrəsi. Ki, çap olunacaq nə ki, proqram run əgər. Və həqiqətən böyük deyil fark biz yalnız kimi qayğı edirsinizsə iki-üç decimal yerləri. Like biz yalnız ilk, 0,10 çap biz yanlış heç bir şey gördüm niyə və ki. Amma biz nəzərə almaq başlamaq bir dəfə dəqiq, dəqiq sayı bu ki, təmsil, biz ki, bilməz görmək tam 0.1 təmsil. Və burada problem hissəsi, kimi bütün sağ, ki, yaxşı, gözəl, lakin ilk biz nə cəhd, cavab 0.1 bərabərdir bərabərdir? Doğru və ya yalan geri olacaq ki? Və belə demək çətindir. Mən, həqiqətən, doğru qayıtmaq bilər edirəm. Will ilk - Bilmirəm. Siz məşğul başlamaq bir dəfə cavab üzən point dəyərləri ilə, siz olduqca çox bərabərlik istifadə edilməməlidir Bu qeyri-dəqiqlik, çünki. Və bilirik bütün üçün, bu yüzüncü var decimal yer ki, üzən point mümkün deyil idi düzgün idarə etmək. Və bərabərlik yalnız uğursuz olacaq hətta baxmayaraq sayı - olsaydın dəqiq nömrələri istifadə edərək, ədəd olmalıdır eyni olmuşdur. Bu kimi 50 ərzində var bu üzən istifadə hesablamalar point dəyərləri, səhv inşa edə bilərsiniz up və, və hər şeyi yalnız yanlış almaq. JOSEPH: Və həqiqətən var bu baş məşhur nümunələri. NASA mühəndisləri bu kazanılmış kimi partlamağa səhv səbəb raketləri onlar başlanılıb sonra hava. Və bu kimi məsələlərə çox. Belə ki, Bəli. HOPARLÖR 6: 0.3 f deyəndə, istirahət kəsmək edir? Və ya aşağı ətrafında və ya deyil? Rob: dəyirmi printf olacaq? JOSEPH: Mən printf truncates düşünürəm. Rob: OK. Beləliklə, biz eyni tərs gedə bilər Bu harada istiqaməti, bu halda, Bu təmsil edə bilər ən yaxın 0.1 Bu sayı ilə idi. Bu ola bilər ən yaxın təmsil 0.2 əks edir istiqaməti, 0,199999996356 və ya bir şey. Biz bu istiqamətdə getdi əgər əşyalar, sonra printf 0.3 f qayıtmaq 1.99 əvəzinə 2.00. JOSEPH: Mən deyiləm tamamilə ki, əmin. Siz kiçik, az yazmaq istəyirəm bilər proqram yalnız yoxlamaq üçün. Rob: baxmayaraq, biz əminik ki, bir ki, tökmə cəhd əgər int və bir int üçün tökmə gedir Bu halda, decimal kəsmək üçün səbəb Siz 1.9999999 salmaq cəhd bir int, siz 1 almaq lazımdır. Və belə ki, ümumiyyətlə istifadə etməlidir riyaziyyat kitabxana dəyirmi funksiyası. Suallar? OK. JOSEPH: Belə şərait üzrə hərəkət və Boolean ifadələr. Belə ki, əvvəl bu gördük. Və həqiqətən, mənə əmin mənim edək kompüter burada sağ format var. Space. Üzr istəyirik, biz məşğul olacaq bir kənarlarında cutoff ilə az. Lakin Bəli, uşaqlar gördük Bu əvvəl Not. Belə ki, burada bu doğru ifadə istifadə olunan bir şərti bəyanat. Belə ki, sıfır iradəsi daha çox cavab doğru və ya yalan sizə. Və bu, həqiqətən vacibdir, çünki onlar bizə təqdim etməyə imkan verir bizim kodu daxil məntiq. Belə ki, məsələn, bu proqram istifadəçi soruşur ki, Not yazılı bir tam və olub onlara deyir onlar sizə verdi ki, tam idi müsbət və ya mənfi nömrəsi. Və görmək üçün burada dönüşüm edir Siz ilk şərhdə çap Mənə tam verir. Və sonra bir tam üçün isteyin. Və sonra sizə şərti məntiq istifadə burada yoxlamaq olub ki sayı sıfır və ya daha həqiqətən böyük idi. Belə ki, burada biz bir Boolean ifadə var Şərhdə Əgər şərti daxilində. Hər hansı bir sualınız var? Ki, haqqında heç bir sual var? OK. Belə ki, yalnız daha çox var əlbəttə, daha çox. Siz Boolean ifadələr inşa edə bilərsiniz şeyi növləri ən istifadə edərək riyaziyyat edirəm ki. Daha belə böyük. Daha az olmalıdır. Üzr istəyirik. Və spacing. Rob: Allah qorusun onu tərk. JOSEPH: Bütün hüququ. Daha, az daha belə böyük daha, və ya, az bərabər daha, və ya bərabər. Biz yoxlamaq üçün ikiqat bərabər istifadə bərabərlik, vahid vasitələri bərabərdir çünki tapşırıq, sağ? Bəli. Və sonra biz də ilə bərabər edə bilərsiniz nida işarəsi istifadə edərək, bərabərdir. Bu nida işarəsi simvolu bilərsiniz də uzadıla ki, əgər siz Boolean hər hansı ters ifadə, bunu edə bilərsiniz. Belə ki, bu doğru qiymətləndirmək edəcək cavab az yalnız az və ya sıfıra bərabər. Ki, hər hansı suallar? OK. Belə ki, siz də bu birləşdirə bilər məntiqi və ifadələrini istifadə məntiqi və ya. Belə ki, bu, yalnız və rəmzidir olan Shift, 7 olmalıdır. Bu olan boru rəmzidir aşağı halda L. Bu, bir deyil ki, sağ daxil edin düyməsi yuxarıda var. Belə ki, rəmzi bu iki istifadə məntiqi Və məntiqi və ya. Belə ki, bu yalnız doğru qayıdacaq əgər cavab bir, iki, üç və ya dörd. Və bu, yalnız doğru qayıdacaq əgər cavab hər tərəfdən ki, kənarda. Belə ki, bir, iki, üç və ya dörd deyil. Və siz istifadə yolu ki, bir ifadə - Rob: Və ya bir sıfır və ya bir beş. JOSEPH: Zero və ya beş. Üzr istəyirik. Bəli, bəli, bəli. OK. İndi burada, eyni şəkildə sizə ifadə istifadə kiçik bir bir varsa şərti ifadə yan Şərhdə, siz də bu istifadə yalnız daxilində qoyaraq eyni şəkildə Əgər şərhdə parantez. Belə ki, bu printf yalnız yanğın əgər cavab bir, iki, üç və ya dörd. Birləşən hər hansı suallar ifadələri? Belə ki, başqa şərti var biz Əgər / Else zəng tikinti. Belə ki, əsasən, bu, artıq olarsa, OK, deməkdir mən yoxlamaq istəyirdim bir şey deyil doğru, daha sonra başqa getmək və digər tədbirlər həyata keçirir. Belə ki, bu halda, mən xahiş bir tam üçün istifadəçi. Tam sıfırdan böyükdür? Bəli? Yaxşı, onlar seçilmiş müsbət sayı. Əgər, sonra bu olmalıdır mənfi və ya sıfır olmuşdur. Belə bir mənfi seçilmiş və ya bu halda sıfır. Bəli. Və ya bir sıfır. Və sonra biz də, Əgər / Else var Əgər Else. Belə ki, bu bizə bir ardıcıllıqla icra imkan verir şeyi ilk olanları uğursuz yalnız. Belə ki, bu halda, indi biz edirik Siz sıfır seçin son bir. Müsbət seçilmiş, nə də əgər mənfi sayı, onlar olmalıdır sıfır seçilmiş var. Belə ki, yalnız aşağı gedir bu kimi zəncir. Necə belə bir nümunəsidir Əgər fərqli - bir varsa / Else fərqli IFS yalnız bir sequence. Və bu ümumi sual olduğunu Siz kimi almaq əgər insanlar, yaxşı, xahiş 95 CS50, nə bu proqram sizə? HOPARLÖR 5: Siz A. var JOSEPH: Bəli. Siz hər bir var sağ o biri. Siz, bir B var, A var sağ, C və D var? Belə ki, bütün bunlar qiymətləndirdi almaq üçün. 95 90 daha çox isə Belə ki, bu 80-dən də böyük, bu da var 70 daha çox, və bu həmçinin 60-dən çox. Belə ki, bu siniflər bütün var. Və mən güman yalnız A. istəyirəm Ki, düzeltmek üçün yolu əvəz edir Else / Əgər 's olan. Belə ki, bu ssenari, bu 95 görür 90 daha çox, və sonra bunu edir qalan qiymətləndirmək deyil hesabatlarının. Ki, Hər hansı bir sualınız? Belə ki, başqa şərti sort var biz burada var ki, strukturu biz bir keçid haqda zəng. Belə ki, bu əsasən yoxlamaq üçün imkan verir nə qoymaq bir sıra dəyəri keçid bəyanat daxil. Belə ki, bu ssenari, biz keçid edirik n əgər n, və biz, oh, deyərək edirik bir, sonra bəyanat çap. Və sonra çıxış deməkdir ki, qırmaq keçid bəyanat həyata. Bu bir deyil, onda, yaxşı, yalnız nəticədə o hallarda bütün kontrol. Bu bir və ya iki və ya əgər Və belə yoxlayır üç, və müvafiq görüntüler. Və nə bu default söz aşağı burada Onlar hər hansı bir daxil etməyib əgər vasitədir o, sonra Invalid deyirlər. Belə ki, mən n üçün xahiş və deyək istifadəçi mənə dörd verir. Bəli, bu hallar heç oyunları, belə ki, nə çap edəcək default bölmə. Bəli, sual? HOPARLÖR 5: Boolean istifadə edə bilərəmmi ifadələr əvəzinə bir, iki və ya üç? JOSEPH: Belə ki, sual, siz istifadə edə bilərsiniz Əvəzinə bir Boolean ifadələr, iki, üç? Və C, Mən sizə inanıram bunu edə bilməz. Amma digər dillərdə, siz bilər sonuna qarşılaşa Siz JavaScript kimi semestr. Bəli, ilk hesablamaq lazımdır sonra ki, dəyəri və istifadə şərh keçid. Bəli? Rob: keçid fayda Buna Bu əgər hesabatları hesab edir bir varsa / Else, kimi n bərabərdir əgər kimi bir və ya hər hansı bərabərdir. Else / n bərabər iki, hər hansı bərabərdir. Else / n təşkil edin üç bərabərdir. Belə ki, proqram çalışır yolu bu ardıcıl ki, siyahı aşağı getmək olardı və, yoxlamaq bir n? Xeyr. N iki mi? Xeyr. N üç mı? Bəli. Bunu. Switch hesabatları ilə Halbuki, bu bu tərtib həqiqətən edə həqiqətən sürətli. Və tezliklə switch, o deyir kimi bütün sağ, n mən, iki, deyir dərhal harada atlamak üçün davam Mən həyata başlamaq axı. Mən ilk yoxlamaq fikrində deyiləm, n bir, iki n olunur? Bu dərhal bunu edə bilərsiniz bunu ehtimal nə. Və ona görə ki, bu mümkün deyil Boolean şərait. Və ya başqa nə var ki ardıcıl, kimi, bütün sağ, n sıfır daha çox? Else 10 və ya hər hansı daha n böyükdür. JOSEPH: Bu halda, əgər siz istifadə Əgər / Else, varsa, onda keçid ki təxminən üç dəfə run Əgər / Else, əgər daha sürətli. Biz belə keçid təşkil edə bilər biz qırmaq deyil ki, bir yol hallarda hər sonra. Belə ki, bu halda, mən bölümleme alıram biz bir seçin və nömrələr iki yüksək nömrələri olmayan və üç yüksək sayı olan. Belə ki, bu halda, əgər n ki, bir və ya iki edir işi edib və sonra edəcəkdir vasitəsilə düşmək çünki heç bir fasilə var. Və burada sona çatacaq. Biz bir seçin əgər Belə ki, bu printf edəcəyik və sonra belə heç biri qırmaq Bu icra edilir. Və əlbəttə, onlar üç daxil edin və ya başqa bir şey, sonra keçmək olacaq o və orada getmək və bu, əvəzinə icra edəcək xətti müvafiq. Ki, haqqında heç bir sual var? Bəli? HOPARLÖR 4: Əgər bir səhv almaq istəyirsiniz siz əgər halda bir sonra fasilə idi, lakin bu bunu üçün bir şey yox idi? JOSEPH: Belə ki, sual siz almaq edir bir səhv sonra fasilə varsa lakin bir halda nə üçün heç bir şey var? Və cavab yoxdur. Siz, həqiqətən, bir səhv almaq deyil. Hmm mm, Bəli. Burada belə növ kimi bir az dəyişiklik, Mən burada bir printf qoymaq üçün gedirəm. Whoops. Belə ki, nə bu halda çap olardı Mən giriş kimi bir qoymaq? Bəli. Bu almadı sizə demək istəyirəm iki dəfə yüksək sayı, sağ? Ki, birinci halda hit, çünki, Bu qırmaq deyil ki, bu düşmək olardı ikinci halda vasitəsilə. Ki, Hər hansı bir sualınız? Rob: Başqa bir sual var mı? JOSEPH: OK, sərin. Bütün hüquqlar. Beləliklə, biz bir zəng başqa bir şey var əsasən olan ternary operator bir bunu alternativ syntax Əgər sonra Else. Və bir xətt onu bütün nə imkan verir. , Bu proqram belə Mən n üçün istifadəçi xahiş edirəm. N 100-dən çox olduqda, mən demək onlar yüksək sayda seçilmiş. Else Mən onlara onlar aşağı seçilmiş. Beləliklə, biz bu həqiqətən uzun sintaksis istifadə edə bilərsiniz, n əgər string, S, və sonra yoxlamaq daha çox 100 və təyin müvafiq olaraq. Amma bu daha çox qısa edə bilər Bu ternary operator sintaksis istifadə edərək, bir sual əhatə edən mark və kolon. Belə ki, sual işarəsi mahiyyətcə sağ, bir sual? Rob: Bəlkə zoom. JOSEPH: Bəli. Yaxşı point. Belə ki, bu üçlük operatorudur. Mən ilk sual, 100-dən çox n böyükdür? Əgər, sonra mən ilk icra kolon əvvəl hissəsidir. Bu deyil, onda mən icra edilən kolon sonra ikinci hissəsi. Belə ki, əgər n, 100-dən çox deyil sonra yüksək seçer və qoyur ki, simli s daxil. N az 100 olarsa, o, aşağı seçer və sonra simli s o qoyur. Belə ki, bu böyük bir yığın kondensasiya yalnız bir xətt daxil aşağı. HOPARLÖR 5: ki, məşhur deyilmi? JOSEPH: Bəli, bu, olduqca məşhurdur Siz istədiyiniz mahiyyətcə şeyi bir tapşırıq əsasında yoxdur vəziyyətinin bəzi sort. Və bu halda, biz çalışırıq string s bir dəyər təyin etmək. Bu, belə deyil - Mən, həqiqətən, üstünlük yoxdur tapmaq digər hallarda. Amma bu xüsusilə faydalıdır bu tapşırıq üçün. Rob: Bu olduqca ümumi nümunəsidir Bəzi dəyişən var ki bir şey, əgər siz, demək olacaq bir dəyəri bu dəyişən; başqa, müəyyən başqa dəyəri bu dəyişən. Ki, ssenari bir ternary istifadə edin. JOSEPH: Və qənaət edirik xətləri çox, sağ? Və yalnız arguably sizin kodu edir bir az daha oxunaqlı. Bəli, sual? HOPARLÖR 6: üçlük üçün, siz getmək bilər s sətrinə bərabər s, sual işarəsi? Və sonra, demək, ola bilər Beş müxtəlif variantları. Və nə bağlı n sayı , siz o biri seçsin idi? JOSEPH: Belə ki, bir sual var ki Siz simli edə bilərsiniz sintaksis sort s n bərabərdir, və sonra daha iki var ki, sual işarəsi sonra variantları? Və sadə cavab yoxdur, yoxdur var edir etmək həqiqətən yaxşı bir yoldur ki, əgər Siz yuva çox üçlük istəyirəm bir-birinə daxilində operatorları. Siz 100-dən çox n çox kimi edə bilər sual işarəsi, və sonra başqa ternary operator, n 50 daha çox, sual işarəsi, və yuva bu yol. Amma ki, ssenari, kodu var cür okunmaz və messy əldə və yalnız getmək üçün daha yaxşı ola bilər o nöqtədə bir varsa / Else bəyanat. Rob: Və həmçinin, kimi yan qeyd, PHP səhv ternary həyata keçirir operator, belə ki, iç-içə ternaries onlar kimi hətta iş deyil. JOSEPH: Bəli. Belə ki, bir az confusing olur Siz getmək xüsusilə müxtəlif dillərdə. Rob: Bu kifayət qədər çaşdırıcı ki, languages ​​bu barədə səhv. JOSEPH: Yəni əslində, yalnız aydınlıq gətirmək üçün hər kəs bilir ki, nə % S burada yoxdur? Ki, Hər hansı bir sualınız? Hərhalda yalnız kamera üçün% s əsasən us tutucu qoymaq imkan verir bir simli üçün. Və sonra sonunda, biz belirttiğiniz dəyişən biz bu qoymaq istəyirəm yerin sahibi s. Belə ki, əsasən s alır və burada onu qoyur. Və o, seçilmiş, çap edəcək yüksək və ya aşağı sayı seçilmiş. OK. Belə ki, loops şeyi yerinə yetirmək üçün imkan verir dairəvi hərəkətlərlə, sağ? Siz bu rast ola bilər Forever şəklində Scratch loops və ya qədər təkrarlayın və ya müəyyən bir təkrarlayın dəfə sayı. Belə ki, niyə bu, bizim üçün yaxşı? Yaxşı, C, biz bu var deyirlər mahnı Not həyata ki, oxuyur, bu mahnı ki, başa heç vaxt. Bu, yalnız və gedir və əbədi və əbədi. Yaxşı, siz həqiqətən bir proqram edə bilməz ki, printf sonsuz sayda var bu hesabatları, sağ? Belə ki, bu ssenari, bir yol bu iş edə bilər ki, bu əbədi çap etmək əvəzinə isə loop istifadə. Belə ki, bir müddət loop nə icra edəcək iki aşırma bədən ki əsasında ona məxsus nə şərtdir. Əgər əvvəl bu misal belə biz əbədi bu çap etmək istəyirəm nə biz edə bilər? Bəli, əmin, sağ? Belə ki, bu sort fikir birləşdirir bəzi Boolean ifadə bir loop ilə birlikdə. Və biz Boolean haqqında öyrəndim əvvəllər ifadələr. Belə ki, zaman daxilində vəziyyəti ki, baxmayaraq, bu loop doğru olaraq qalır və və haqqında ifa edəcək. Və bu halda, əgər biz yalnız tədarük doğru ilə, bu sonsuz səbəb olur üzrə mahnı yazdıran və loop və biz olmadan əvvəl istədiyiniz kimi sonsuz var ki, bir proqram olan printf hesabatlarının sayı, olan mümkün deyil. Belə ki, daha compellingly, baxmayaraq ki, Bir ilə istifadə edə bilərsiniz dəyişən və bir vəziyyətdir. Belə ki, biz demək istəyirəm deyək tamamilə ilməkli söz, 10 dəfə. Beləliklə, nə siz bir müddət loop ilə nə edə bilər ilk counter başlamaq olar Bu dəyişən xaricində 10 loop isə. Və sonra əsasən, hər zaman siz getmək Bu isə loop vasitəsilə, siz çap sonra bəyanat və azaldılması counter dəyişən sonunda qədər, bir nöqtədə, bir dəfə biz kifayət qədər I çıxmaq dəfə, 1 Mən kifayət qədər dəfə - və yalnız mən minus minus aydınlaşdırmaq Mən minus 1 I bərabərdir deməkdir. Bu, əsasən, üçün I aşağı gətirəcək bir dəfə mən sıfır hit nöqtə, bu şərt doğru artıq və belə ki, loop həyata çıxışları. Belə ki, tamamilə ilməkli yalnız 10 dəfə görüntüler. Bir müddət loop haqqında hər hansı bir sualınız? OK. Belə ki, biz nə edə bilər bir yolu var nə biz yalnız daha qısa şəkildə etdi biz loop üçün zəng nə. Belə ki, bir üçün loop bir ibarətdir başlatma, vəziyyəti, və biz əvvəl kimi yeniləmə, Bu isə loop. Belə ki, bir nəzər salaq. Bu isə loop, biz idi başlatma, sonra biz bir idi biz yoxlanılır ki, vəziyyət. Və sonra biz yeniləmə idi üst addım. A loop, bu əsasən alır Bu üç şeyi və kondensasiya aşağı bir line. Bu da ki, Belə ki, ilk şey Loop üçün başlatma edir. Və sonra sonra nöqtəli vergül etmək və Mən olan vəziyyətini, nə daha çox sıfır, orada gedir və sonra yeniləmə addım. Belə ki, bu çıxış olur loop orqan çox sonu. Belə ki, bu iki proqram var mahiyyətcə ekvivalent. Hər hansı bir sualınız? Belə ki, bir fərqi nədir Bu iki arasında? Hər kəs onu qeyd edə bilərsiniz? Bu bir az incə ola bilər. Bu yalnız bir çox kiçik fərq var. Bəli? HOPARLÖR 5: Siz istifadə edə bilməz Bu üçün loop kənarda I dəyişən [Işitilemez]? JOSEPH: Exactly. Belə ki, bu biz almaq lazımdır bir şey deyil sonra dəyişən həcmi çağırıb. Amma mahiyyətcə, bu mən həyatını int Bu isə loop kənarda. Belə ki, bir dəfə bu isə loop edilir icra, sonra I istifadə edə bilərsiniz Proqramda haqqında. Halbuki bu loop, bu int I loop üçün bu daxilində scoped olunur. Və bu hissəsinin daxilində deyil, çünki Bu üçün loop ki, başlayır ilə parantez və ucunda Oradakı buruq brace. Daxilində elan edir ki, bir şey burada xaricində istifadə edilə bilməz. Mən kənarda I istifadə etməyə cəhd Belə ki, bu lazımdır , elan edilməmiş simvolu mənə. Və mahiyyətcə, mən ki istifadə edə biləcək. Rob: Və yaxşı, 10 il əvvəl sözün bütün hallarda, qıvrım aşırma Siz müəyyən etmək üçün istifadə nə bir dəyişən daxilində. Belə ki, orada, mən 10 bərabərdir int bu daxilində elan qıvrım aşırma müəyyən. Və sonra, kimi uzun siz I istifadə etməyə cəhd kimi bu buruq burğu əvvəl, bu gözəl var. Siz etmək yazın zaman sizə görə bilərsiniz tire, tire, std, bərabərdir, C99 görürük. Belə ki, C versiyası sonra ki, GCC də verir ki, həyata keçirib Bu qısa. Belə ki, bu C. icazə üçün istifadə və Gördüyünüz niyə, çünki bu int Mən bu buruq burğu kənarda, lakin Bu hələ də hesab edir Bu qıvrım aşırma daxilində. Amma bu çox rahat bir şey, və belə bir yaxşı məsləhət deyil. JOSEPH: Hər hansı bir sualınız? OK. Belə ki, nə daha faydalı olduğunu bəzən Siz dinamizm növ istədiyiniz Sizin loop, sağ? Siz yalnız mütləq çap istəmirəm tamamilə hər zaman ilməkli, siz aşağı saymaq istəyirik 10 və ya bir şey. Və siz counter dəyişən istifadə edə bilərsiniz ki, loop daxilində, eləcə də. Və bu halda, bu proqram yalnız aşağı bütün yol aşağı 10 sayar. Və nə çap edir? Bu sıfır çap deyil, sağ, çünki - Bəli, bu da 11 çap etmir. Belə ki, sıfır çap etmir, çünki Mən sıfır, qiymətləndirir, xatırlayıram Bu gedir əvvəl vəziyyəti loop orqanı icra. Mən sıfır olduqda, bu, belə ki, yalan Bu aşağı hesablanması çap etmir sıfır, yalnız hesablanması çap 1 bütün yol aşağı 10 aşağı. Biz, həqiqətən sıfır çap etmək istəyirdi, əgər sonra biz bərabər işarəsi qoymaq olardı işarəsi artıq bu böyük sonra. OK. Giriş doğrulama bunu bir yol olan Siz istifadəçi xahiş zaman bir şey, siz əmin etmək istədikləri təlimatlara əməl edin, istifadə etmək Bu isə loop, sağ? Belə ki, bu halda, mən xahiş edirəm müsbət sayı və sonra mən giriş üçün gözləmə. Giriş olsa və sonra yoxlanılır az sıfır daha, onlara xahiş saxlamaq. Belə ki, kimi uzun onlar mənə bir sıra vermək kimi ki, müsbət deyil, xahiş saxlamaq xahiş saxlamaq isteyen saxlamaq. Amma sort qəribə bu nədir? Və ya nə haqqında optimal görünmür burada bu strukturu? Hər kəs? Bəli? HOPARLÖR 6: Siz təkrar edirik təlimat iki dəfə. JOSEPH: Sağ. Beləliklə, biz iki printf hesabatları burada, sağ? Beləliklə, biz yalnız bu əldə edə bilər bir yol var etmək ki, bir aşağı bizim kodu asan oxumaq və bir az daha təmiz. Və sonra biz olmazdı eləcə də iki dəfə alın var. Və bunu edə bilərsiniz bir yoldur bir do-isə loop istifadə edərək. Və Do-isə loop əsasən bir Bir müddət loop müxtəlif forma olduğu qıvrım aşırma ərzində nə ən azı bir dəfə icra edilir. Belə ki, burada, bəyan edirəm ki, int input xaricində ilk. Və sonra mən yalnız bunu demək təlimat isə giriş sıfır azdır. Belə ki, ilk Do edib. O, həmişə ən azı bu icra edəcək bir dəfə, belə ki, həmişə istifadəçi xahiş edəcək ən azı bir dəfə daxil. Və sonra bu giriş qiymətləndirir, və bir daire gedir. Bəli, sual? HOPARLÖR 6: bunu bir yolu var mı [Işitilemez] növləri, siz demək əgər kimi, GetString, və kimsə [işitilemez] [Işitilemez] üçün bir yol var JOSEPH: Belə ki, bir sual var ki Giriş doğrulama etmək yolu əgər istifadəçi sağ qoymaq deyil dəyişən növü? Biz int üçün xahiş və əgər onlar Əvəzinə bizə bir string vermək. Və biz həyata keçirən funksiyaları sizin üçün, GetInt, bütün GetString bu funksiyaları, onlar həqiqətən artıq əsas növü daxil ki, sort başlıq altında doğrulama. Beləliklə, siz funksiyaları istifadə edirsinizsə ki, biz sizə verdi, həqiqətən, yoxdur. Amma necə daha çox baxmaq istəyirsinizsə siz həqiqətən bunu edə bilər, siz baxmaq olar fayl başlıq altında I/O-- standart I / O funksiyaları, fayl kimi standart input oxu və standart çıxış. Və daha yaxşı mənada ala bilər necə ki, edə bilər. Rob: One məsələ olsa da, xüsusi edir misal ilə dedi, Siz simli gözləmək və mən bir int daxil edin. Necə fərq demək olardı qəsdən istəyən arasında int 123 istəyən qarşı string 123? Belə ki, simli, bu, olduqca çox heç bir var var qiymətləndirmə, bu, yalnız nə onlar Siz şərh edəcək daxil bir string kimi. Int asandır olursa olsun, çünki Əgər istifadəçi almaq giriş, siz həmişə bir simli alaraq. Və belə ki, simli sonra bilərsiniz yoxlamaq, bütün bunlar var həqiqətən rəqəmli rəqəm? JOSEPH: OK. Bir do-isə loop haqqında hər hansı bir sualınız? Rob: Oh, və bu da - çərçivəsində geri gedir, bir qədər ümumi səhv bəzi yerli istifadə etməyə çalışır bu do-isə çərçivəsində dəyişən bu şərt daxilində loop. Və həqiqətən, biz yalnız xilas əgər Bu və int giriş bərabərdir dedi GetInt, sonra compiler fəğan edəcək us Giriş mövcud deyil, çünki çərçivəsində xaricində Bu qıvrım aşırma. JOSEPH: Və niyə biz burada bu lineup lazımdır. OK. Beləliklə, siz də bir həyata qıra bilər loop erkən istəyirsinizsə. Belə ki, bu fərqli bir şəkildə edir biz yalnız həyata nə həyata. Və əvəzinə vəziyyəti istifadə parantez ərzində, biz istifadə edirik Əgər bədən daxilində bəyanat Do-isə loop. Və əsasən, zaman giriş nəhayət edir sıfır daha çox, biz loop çıxmaq. Və biz bütün gedəcək aşağı burada yol. Və görürük ki, bu ki yəqin ki, bu seçim edilə bir az var ssenari, çünki bit təmiz və bir az oxumaq üçün asan dişlədi. Bu Halbuki, siz sort bu əlavə xətləri var. Bu, yalnız bir az uglier var Mən bir mənada, danışarlar. Bəli, sual? HOPARLÖR 4: almaq yalnız qırmaq aşırma bir set həyata siz? JOSEPH: Sağ. Belə ki, sual yalnız qırmaq olacaq bir loop çıxmaq? Və cavab yes edir. Beləliklə, siz, loops üçün iç içə əgər Məsələn mən int üçün varsa, 0 bərabərdir J 0 bərabərdir 10 və sonra int üçün qədər 10 qədər, mən daxili çıxmaq əgər loop, mən hələ gedəcək xarici loop. Belə ki, həyata davam edəcəyik xaricdən əməliyyatları. Ki, Hər hansı bir sualınız? Bəli? HOPARLÖR 5: Ancaq funksiyaları qırmaq qıvrım aşırma üçün deyil, digər hesabatları? [Işitilemez] JOSEPH: Belə ki, sual qırmaq olacaq qarşı loops üçün yalnız funksiyası olmuşsa kimi digər hesabatları? Və bəli, bu halda, çünki Siz sağ, bir loop həyata qırılma edirik bir mənada. Rob: hallarda böyük əksəriyyətində, bu Bu Əgər bir şey sort deyil, sonra qırmaq. Beləliklə, siz müraciət etmək qırmaq yoxdur ətrafında wrapping ki, əgər. Və həmçinin, bu loop çox deyil, lakin açarları da olduğunu unutmayın fasilələri ilə həyata sınıq. Biz fasilələri istifadə olunur gördüm əvvəl açarları ilə. JOSEPH: Və siz də onları istifadə edə bilərsiniz baxmayaraq loops və loops üçün. Hər hansı bir sualınız? OK. Belə ki, növbəti up funksiyaları edir. Belə ki, bu BYOB biri istifadə edə bilər Not layihə blokları. Bu əsasən verir Siz bir sıra müəyyənləşdirir təqib ediləcək təlimat. Və nə anlama tərəfindən edək edirəm edir geri riyaziyyat, sağ, cəbr. Siz biz x funksiyası zəng nə var, bəzi dəyişən, və bu deyək funksiyası x f x bərabərdir plus 5. Belə ki, bu qara kimi x f hesab edə bilər sonra 15 edir və qutusu 20 istehsal edir. Belə ki, ümumiyyətlə, bir funksiyası bəzi giriş edir ki, bir şey sonra bəzi nəticələr istehsal edir. Və niyə funksiyaları yaxşı? Onlar bir sıra səbəblərə üçün yaxşı deyilik. Belə ki, kimsə bir zərbə almaq istəyir nə deməkdir təşkilatı? Niyə funksiyaları baxımından faydalıdır? Bəli? HOPARLÖR 4: Bu edir Sizin kodu daha oxunaqlı. JOSEPH: Sağ. Belə ki, hər biri bu edir Sizin kod daha çox oxunaqlı, sağ? Bunun əvəzinə int kimi olan x x bərabərdir dəfə x dəfə x, I, x kub ola bilər daha oxunaqlı və daha çox olan bir oxucu üçün anlaşılan. Təşkilat baxımından da idarə daxil kodu up parçalanması hissələri, belə ki, əvəzinə çalışır bütün bir uzun bölməsində bu həyata əsas, siz sort onu parçalamaq bilər kimi daxil OK, bir funksiyası yazmaq imkan bir şey kub nin yazmaq bildirin bir şey kvadrat fəaliyyət göstərir. Siz kiçik onu parçalamaq bilər ki, yol, Siz həll edə bilər ki, az hissələri həll etmək üçün çalışırıq qarşı bütün bir dəfə böyük bir problem. Rob: Və ya hətta kiçik, az hissələri ki, Siz və tərəfdaş həll edə bilərsiniz. JOSEPH: Bəli. Rob: Belə ki, əvəzinə həm də və bir Implant üçün çalışırıq eyni zamanda fəaliyyət göstərir. JOSEPH: sadələşdirilməsi. Hər kəs bir tahmin etmək istəyirsiniz? Bəli? HOPARLÖR 5: Daha təkrar. JOSEPH: Sağ. Ilə edə bilərsiniz ki, bir şey sadələşdirilməsi bu cür var ki yenidən praktikliyi eyni xətləri ki, mən bir kub funksiyasını yazmaq bir dəfə, mən yalnız istifadə ki, artıq və üzərində daha əvəzinə yazaraq mənim proqram x dəfə x dəfə x üzərində və yenidən üzərində. Və sadələşdirilməsi burada da yalnız Sizin kodu sort edir deməkdir Siz split dəfə asan debug funksiyaları bu qədər. Sonra harada lokallaşdırılması bilər, çünki Sizin problemlər sort var. Hər hansı bir sualınız? Belə ki, başqa fikir sağ, abstraksiya deyil? Bu qara qutu. Kimi GetInt nə bilmirəm istifadəçi daxil almaq? Biz, həqiqətən, doğru, sizə demədimmi? Biz sizə dedim olduğunuz bütün GetInt yoxdur edir bunu deyir dəqiq nə. Biz sizə demək deyil, belə ki, hətta necə işləyir, hələ bilirik. Belə ki, bu halda, bu hansı bir dörd funksiyası giriş fərqli şeylər çıxış hazırlamaq üçün. Və bir sıra dörd bilərsiniz onu dörd çarparaq. Yoxsa biz dediyimiz bilər bit iki tərəfindən tutulub. Və biz bu əhatə edəcəyik bir az sonra. Və bilmək üçün heç bir ehtiyac yoxdur necə funksiyası həqiqətən kimi uzun işləyir ifadə etdiyi kimi işləyir. Belə ki, başlıq altında, mən ola bilər kimi, giriş dəfə qayıtmaq səkkiz ikiyə bölünür. Və sağ, bilmirəm ki? Bildiyiniz üçün lazım olan bütün bu deyir nə. Belə ki, faydalı bir şey var abstraksiya haqqında. Və başqa bir şey sort bu fikir biri üçün kodu localizing xüsusi bölmə. Bir problem var, əgər, belə ki, siz deyil çalışan bütün kodunuzu üzərində getmək üçün var Bu problem olduğu düzeltmek üçün. Belə ki, bu halda, mən həyata səhv kub. Mən kub vurulması düşündüm üç. Belə ki, bu halda, bu bir proqramdır yalnız üç vurulması edib hər yerdə. Və var ki, başqa bir proqram var bir funksiyası daxil factored kub. Və indi mən səhv düzeltmek üçün istəyirsinizsə burada, mən hər bir xətti düzeltmek üçün var Bu proqram kodu. Halbuki digər tərəfdən, mən istifadə əgər funksiyası, mən yalnız dəyişdirmək lazımdır nə bir yerdə səhv idi. Belə ki, kompüter, biz giriş və çıxış zəng. Giriş parametrləri deyilir və ya arqumentlər və nəticələri deyilir dəyərlər qayıtmaq. Və biz bu sort bizə kömək necə olacaq bir ikinci bir funksiyası müəyyən. Belə ki, bu bir funksiyası müəyyən edir cubing üçün. Belə ki, sonra daxil edir, və qaytarır ki sayı dəfə özü üç dəfə. Belə ki, bu qırmaq edək. Belə ki, biz, bir funksiyası header olan əsasən üç şeyi ibarətdir. Belə ki, biz, parametrləri olan Mən əvvəl qeyd etdiyim kimi, var bu funksiya daxil giriş. Və sonra biz funksiyası adı vermək. Bu halda, Bu kub deyirlər. Və sonra biz nə növü müəyyən qaytarılması dəyəri. Belə ki, bu halda, mənim kub funksiyası bir tam edir və bu da tam qaytarır. Mən iki keçmək əgər Belə ki, iki, bir tam deyil Bu, mənə səkkiz qaytarır bir tam deyil. Belə növü adı parametrləri qayıtmaq. Ki, haqqında suallar? Və sonra qaytarılması dəyəri əslində geri deyərək sonunda müəyyən və sonra qaytarılması nə qaytarılması dəyəri var. Belə ki, bu halda, biz onu bütün qoymaq əgər birlikdə, bir funksiyası götürür parametrləri, bir şey adlanır, bu növü ki, bir şey qaytarır biz bu olacaq demək. Hər hansı bir sualınız? Belə ki, necə biz bir funksiyası istifadə edirsiniz? Yaxşı, biz bir funksiyası yazmaq və biz doğru, bizim proqram istifadə? Mən kub adlanır və sonra mən kub istifadə edə bilərsiniz. Amma nə qeyd etmək vacibdir ki, sifariş məsələlər var. Mən əsas aşağıda kub varsa, bu kub daxil gedir. Və bu nöqtədə, heç bir şey yoxdur Proqramda kub adlanır və bu yalnız mən var, kimi olacaq heç bir fikir nə kub edir. Belə ki, gizli, sizə xəbər verəcəkdir funksiyası bəyannamə. Bu göstərir ki, səhv var. Və bu halda, kub aşağıda əsas, belə ki, niyyətində deyil bu barədə bilmək. HOPARLÖR 5: Belə ki, əsas adətən son funksiyası müəyyən? JOSEPH: Belə ki, sual edir əsas adətən son deyil Siz müəyyən istədiyiniz şey? Və heç. Biz adətən əsas istəyirəm, çünki bu sağ, üst olacaq? Ki, ilk şey, çünki proqramçı açılması istədiyiniz görmək üçün proqram. Və necə ki, biz bu məsələni həll yoxdur üst olmaq əsas istəyirəm, lakin biz istəyirik ki, funksiyaları, biz onlara istədiyiniz əsas aşağıda hələ istifadə etmək üçün əsas daxilində onlara? Yaxşı, biz dediyimiz istifadə bir funksiyası prototip. Belə ki, nə bir funksiyası prototip mahiyyətcə ilk nə edir edir imza və ya funksiyası header Biz aşağı həyata istəyirəm nə burada, və biz qoyun bir proqram üst. Belə ki, bu halda, biz deyirik ki, yaxşı, sonra bizim proqram, gedirik bu həyata keçirilməsi üçün bir söz etmək üçün alan int kub adlı funksiyası, tam giriş. Belə ki, indi ki, əsas yuxarıda, çünki, əsas, demək olacaq, oh, yaxşı, sonra proqram ki, olacaq belə ki, orada mən müraciət edə bilərsiniz, belə ki, I will yalnız indi üçün ilə gedək. Və sonra alt, biz kub həyata. Və sonra əsas yalnız deyəcəklər yaxşı, bu link sort edəcək Birlikdə bu iki simvol. Və biz əhatə edəcəyik ki, nə sonra deməkdir. Və belə ki, bu ki, bilirsiniz Bu istifadə etməlidir ki, kub funksiyası. Rob: Bu [işitilemez] istəyən haqqında alt və ya əsas top, mən də gördüm. Yalnız istəyirəm ki, hər şeyi var altındakı əsas qoymaq. Amma layihə xüsusilə olur bir dəfə böyük, adətən əsas bir edir bütün öz fayl. Və o nöqtədə, kimi int kub line ki - stdio.h daxilində bir dəstə var yalnız int kimi xətləri kub int input line. Və bu prototipləri şeylər var at, header faylları daxil qoymaq meyli olan point, əhəmiyyətli deyil. Bəli, bu məsələ deyil. O həmişə üst gedin. Və əsas bütün öz bir fayl deyil, Siz qoyulması narahat yoxdur fərdi Funksiyası prototipləri fayl. JOSEPH: Biz ki, bir az almaq lazımdır az sonra Rob söhbət başlayır tərtib haqqında. Və belə bir fərq də var parametr və dəlil arasında. Və parametri yalnız nə biz bu giriş zəng zaman biz funksiyası müəyyən edir. Və biz bir dəlil zəng zaman biz həqiqətən funksiyası onu keçmək. Belə ki, bu halda, bu bir göstəricisidir, Biz əvvəl qeyd etdiyim kimi. Və biz, həqiqətən, artıq orada istifadə edərkən, x kub, sonra özü x biz bir dəlil dediyimiz funksiyası kub. Rob: Belə parametrlərinin temperaturdan dəlilləri var - Bu fərq var çox əvəz qarışdı. Bu nöqtədə, mənə, bu biri kimi bu sözlər ki, mən onu görəndə vəhşi, mən dərhal kömək lakin bilməz onlar istifadə olub sual doğru kontekstində, çünki fərq kifayət qədər ağıllı deyil ki, yalnız hər kəs çalışır - Mən demək olar ki, həmişə dəlil demək asılı olmayaraq, nə demək. JOSEPH: Və funksiyaları da faydalıdır biz yan təsirləri dediyimiz üçün. Belə bir funksiya giriş almaq olar Bu da heç bir nəticələr istehsal edə bilər. Belə ki, bu halda, mən No var ki, bir subroutine müəyyən dəyər qayıt. Və müəyyən etmək üçün, biz istifadə biz burada bir boşluq zəng nə. Və bu funksiya yan təsiri yalnız stuff yazdıran ki Səhifənin üçün. Bu, həqiqətən bir deyil giriş, bu deyil, həqiqətən, heç bir nəticələr istehsal edir. Amma bu mənada faydalı ola bilər Siz, məsələn, debug istəyirsinizsə proqram bir şey, əgər siz bir az subroutine yazmaq üçün yazdıran, məzmunu, deyək yaddaş və ya bir şey. Və bu yan təsirləri bəzən kontekstindən kənar faydalı yalnız giriş və çıxış kimi. Hər hansı bir sualınız? Və bu seqment başa, Bu proqram nə edir? Mən sizə uşaqlar bir neçə vermək lazımdır vasitəsilə oxumaq saniyə. Bir çox əsas səviyyədə, nə biz istəyirik demək ki, hüququ, x və y çubuk ki? Belə ki, necə bir çox həqiqətən düşünmək Bu x və y dəyişdirmək edəcək? Əl qaldırmaq. Heç kim. OK. Düşünən bu olacaq ki, x və y dəyişdirmək deyil? Və məbləği idi deyil, bütün otaq. Belə ki, bəzi insanlar əmin deyil. OK. Bu ağlabatan deyil. Belə ki, zaman nə ilə gedək Siz, həqiqətən, ilk funksiyaları zəng bu suala cavab üçün. Belə ki, bu nə yaddaş sort kimi görünür. Bu sort sadələşdirilmiş modeli kimi zaman kimi yaddaş görünür nə bir proqram run. Adlanan bir şey var aşağı burada yığını və bir şey yığın çağırıb. Və bu istiqamətində inkişaf yaddaş orta. Bu xüsusi halda, Belə ki, bir funksiyası zəng, bu, yığını qoymaq olur. Və sonra olan nə funksiyası biz dediyimiz qalır funksiyasının yığını çərçivəsində. Və belə bir gözəl vizual almaq üçün Bu, let's - məsələn, biz idi proqram əsas əvvəllər. Və əsas daxilində biz kub çağırıb. Belə ki, əsas ilk yığını getmək olardı Bu ilk funksiyası var, çünki çərçivə ki, deyirlər. Və sonra kub daxilində adlanır zaman əsas, bu əsas üst qoymaq olur yaddaş daxilində. Beləliklə, nə siz burada görəcəksiniz ki, kub edir öz parametrləri və onun var öz yerli. Beləliklə, siz həqiqətən bir şey keçmək bir funksiyası, parametrlər bu nə surətləri var olur əsas olan keçdi. Və sort bu izah etmək, edək bir proqram vasitəsilə gəzmək. Beləliklə, biz yığını var; bu yalnız yığını hissəsi. Və nə biz nə biz ilk başlamaq deyil bir və iki x və y. Beləliklə, biz bu kiçik qutuları var. Onlar əsas nin yığını oturan etdiyiniz yığını çərçivəsində. Onlar bir və iki ehtiva edir. İndi biz mübadilə zəng. Nə olar biz daxil x və y keçmək edir svop, və svop öz surətləri yaradır bu dəyişənlərin daxilində istifadə etmək onun yığını çərçivəsində. Belə ki, indi orada, biz olan var x ki, dəyəri ehtiva edir; və b, olan y idi ki, dəyəri var. Bir, iki. Və bu ayrı-ayrı olduğunu görəcəksiniz əsas daxilində x və y-dən. Beləliklə, biz indi bir müvəqqəti yaratmaq bir ehtiva dəyişən. Biz b a bərabər müəyyən, belə ki, bir iki dəyişikliklər. Və sonra biz bərabər b müəyyən temp, olan biridir. Və sonra indi biz çıxmaq Bu funksiya. Siz funksiyası həyata çıxmaq zaman, yığını çərçivəsində yığını off atdı olur. Biz təkan çağırırıq. Siz yığını üzərinə bir yığın çərçivəsində təkan yığını off əgər pop. Və nə olur ki, hər şey yalnız ki yığını çərçivəsində cür idi alovlar içində gedir. Və belə ki, artıq mövcuddur. Amma biz nə hiss edirsiniz? Biz, həqiqətən dəyişib heç vaxt x və y dəyərlər, sağ? Belə ki, həmin əsas yerli qaldı. Və svop daxil şeyi keçərək, biz həqiqətən o dəyərləri dəyişib, heç vaxt. Və biz bu zəng edirsiniz? Biz dəyəri bu keçən zəng. Belə ki, C, daxil şeyi keçmək funksiyaları, bu dəyəri onlara keçir və üçün onların bir surəti edir istifadə etmək funksiyası. Və biz deyilən bir şey öyrənmək lazımdır sonra sened keçən, lakin var Bu problemi həll edə bilər bir yoldur. Amma biz narahat deyil ki, sonra qədər. Rob: Və həqiqətən, ifadə edən Terim, keçən istinadən, belə ki, C hətta yoxdur sened tərəfindən keçən. C eksklüziv dəyəri ilə keçən etmişdir. Olursa olsun nə, siz həmişə bir şey bir kopyasını keçən. I növ qeyd kimi, yalnız var ki, əvvəl göstəricilər ilə və simli yalnız həqiqətən dörd olduğunu yaddaş yerde işarə bayt. Bəli, mən bu simli var və əgər bu ki, simli olduğu mənə izah - yaxşı, mən bu göstərici varsa bu yaddaş yer, sonra bir keçə bilər bir funksiyası pointer surəti, və ki, funksiyası hələ yerləşir bilir yaddaş deyil. Belə ki, bu göstəricilər həm işarə olunur eyni xatirəsinə yer, və ki, biz mümkün olacaq necə kənarda şeyi dəyişdirmək üçün cari yığını çərçivəsində. JOSEPH: Əgər tərtib etmək istəyirsiniz? Rob: Xeyr, 5:30 var. JOSEPH: OK. Bu 5:30 edir. OK. Belə ki, mən tahmin tərtib əhatə edəcək növbəti bölmə, və ya bölmə lideri nöqtədə olacaq. Və - Rob: Hər hansı bir sualınız? JOSEPH: Hər hansı bir sualınız? Bəli? HOPARLÖR 5: CS50, hər hansı strings istifadə edərək biz istifadə etmək istədiyiniz funksiyaları o ki, C funksiyaları kimi olacaq. CS50 və getdi yoxdur hər hansı əlavə etdi. Rob: Correct. C hər hansı bir siz, [işitilemez] kimi bizim strings o istifadə edəcəkdi. JOSEPH: Və son bir şey istəyirəm qeyd biz bir style guide var ki, Bu sinif üçün. Rob: Bəli, Oh. JOSEPH: Belə bir gəldiniz əgər Siz əvvəl fon proqramlaşdırma müəyyən konvensiyalara ola bilər zaman Siz qoyulması kimi kodu yazılı etdiyiniz eyni xətt və ya xüsusi on aşırma indenting yolları və ya dəyişənlərin adlandırma. Bu sinif, biz izləmək istəyirəm xüsusi style guide yalnız, çünki yaxşı, siz çıxmaq və əgər iş sənaye, gözlənilən olacaq nın style guide izləmək üçün siz getmək olan şirkət. Kimi misal üçün, Facebook düşünürəm adlandırma müəyyən bir növ var konvensiya. Və dəvə arasında fərqlər var casing dəyişənlərin və yalnız kimi vurğulayır ilə onları ayıran. Və həmçinin, mən kimi, ən əhəmiyyətlisi hesab Məsələn, abzas, sağ? Biz qıvrım aşırma harada başlamaq yoxdur vəziyyəti onlar və növbəti xətti var. Və biz də qıvrım aşırma qoymaq yalnız bir xətt belə. Və, nə yolları bir çox dəfə var siz bu aşırma tərk edə bilər yalnız bir xətt varsa off Əgər şərhdə altında. Amma bu, sinif, biz izləmək istəyirəm xüsusi style guide yalnız belə almaq şey ki, sort üçün istifadə. Rob: Bəli, və Style 50 gedir Bu stil guide həyata, və biz Style 50 istifadə etmək olacaq grade kodunuzda. Belə ki, şeylər bizim üçün daha asan edir və inşallah şeyi etmək lazımdır ki, Sizə verilən üçün çox pis standart stil ola bilməz ki, real. JOSEPH: Və nəhayət, stil tapmaq üçün , manual.cs50.net/style getmək guide. Və Bəli. HOPARLÖR 4: Siz həyata gedir satıra bir simvol? Rob: Bəli. JOSEPH: Bağışlayın, uşaqlar. Rob: Bu yalnız isə biri kimi. Bu nöqtədə, mən 120 OK edirəm. Mən 120 söyləyərək OK edirəm satıra simvol. Mən bəzi limit olan var başa düşürük. Mən 80 belə kiçik hesab edirəm, lakin biz bunu həyata edirik. JOSEPH: Şəxsən, mən hesab edirəm ki, C, 80 simvol daha yaxşıdır. Siz digər əldə başlamaq JavaScript və PHP kimi dil deyil, yalnız məhdudlaşdırmaq üçün belə ağlabatan 80 simvol üçün. OK. Yaxşı ki, super bölmə idi. Hər kəs konfet istəyir? HOPARLÖR 4: Bəli.