[MUSIC PLAYING] HOPARLÖR 1: Bu CS50 edir və Bu həftə iki başlanğıc. Belə ki, sağ bir şey daxil dalış imkan ki, danışmaq, arabası deyil. Belə ki, burada CS50 IDE və mən var bu lənətləmək screen-- əvvəlcədən çıxardı Bu. Spoyler alert. Oldu. Mən burada bu ekran qədər çıxardı etdik olan bir çox sadə proqramı var. Biz aşağı diyirləyin varsa, ən bu yalnız şərh edir, lakin burada xətləri 13 vasitəsilə 17 bir proqram var. Əgər o deməkdir ki, syntactically etibarlı Mən tərtib və davam edəcək, onu tərtib lakin bu arabası var. Bu proqram şərh iddia üst qədər ki, 10 ulduz çap lazımdır ki, lakin bu deyil. Sizin təcrübə əsasında, və ya tezliklə C təcrübə, Siz məntiqi müəyyən edə bilərsiniz Bu, əslində, arabası niyə? Evet? Auditoriya: Bu sıfırdan 10 gedir. 11 tekrarlamalar var. HOPARLÖR 1: Bəli. Belə ki, sıfırdan gedir 10 vasitəsilə və bərabər, Əlbəttə ki, 11 tekrarlamalar edir. Belə ki, olacaq çap, həqiqətən, 11 ulduz. Belə ki, informatika konvensiya ən proqramlaşdırma dilləri yalnız, həqiqətən, sıfır hesablanması başlamaq, lakin deyil vasitəsilə saymaq Siz, həqiqətən, qayğı dəyəri. İndi bu bir şeydir ki, Bir az alışma edir və dizayn hətta Scratch, bu kimi qeyri proqramçılar və ya qeyri kompüter üçün elm və uşaqlar üçün əsasən, üçün nəzərdə tutulmuşdur Siz biri ümumiyyətlə hesablanması başlanır. Və gözəl var. Siz tamamilə hesablanması başlaya bilərsiniz biri ki, daha rahat, əgər. Və və 10 vasitəsilə saymaq, lakin Bu həftə xüsusilə dərk edəcəyik və kənarda yalnız belə proqramlaşdırma çox şey 0 birinci olduğunu güman Siz saymaq olan rəqəmli, daha asan tapmaq olacaq ki, yalnız başlayan bu vərdiş halına almaq üçün sıfırdan və dəyəri qədər hesablanması Siz indi qayğı getmək almaq. Belə ki, ki, müəyyən edib. Biz az dəyişdirilə və ya yalnız az bərabərdir. Nin bir nəzər salaq Burada ikinci bir nümunəsidir. Belə ki, bu proqram çox iddia onun çap lazımdır ki, top şərh on ulduz, lakin bu deyil. Burada səhv nədir? Belə ki, what-- və sorry, aydın olsun. 10 ulduz. Satır başına bir, lakin bu deyil. Belə ki, əslində, mənə irəli getmək və tərtib edək Bu bir az daha az, çünki bu bir ki, təsviri əsasında sil. Mənə mənbə dizine gedək. Buggy bir dot çizgi, arabası bir olun. OK, mən 11 ulduz, görmək hələ problemlidir lakin onlar bir xətt də bütün istəyirik. Burada məsələ nədir? Bəli. Auditoriya: [işitilemez]. HOPARLÖR 1: Bəli. Belə ki, bu incelik ki, bilər Mənə qısa qeyd edilməsi xatırlayıram. Hətta hər şey görünür baxmayaraq yaraşıqlı, və bu gözəl girintili ki, və bu cür Scratch-kimi görünür 16 və 17 var ki, xətt, Həqiqətən, loop üçün altında indented. Ki, qeyri-maddi deyil. kompüter deyil bilmək və ya ağ kosmik baxın. White kosmik yalnız üçün Bizə stylistically, insanlar. Siz zaman kompüter bilir Həqiqətən qıvrım aşırma olan ki, Bu problemi həll. Belə ki, biz, həqiqətən, getdi əgər aydın bu qıvrım aşırma qoymaq ki, bu problemi həll olardı compiler aydın edilməsi Mən, həqiqətən, icra etmək istəyirəm ki, yenidən kodu iki xətləri, və yenidən və yenidən. Lakin fundamental izahat nə var? Sağ? Biz ciddi ehtiyac yoxdur curly, bütün vaxt, zaman aşırma Bu yəqin ki, yaxşı olsa təcrübə hər halda ki, vərdiş halına almaq üçün hətta iki əlavə olsa Sizin kodu simvol. niyə? Auditoriya: [işitilemez]? HOPARLÖR 1: Bəli, belə ki, var cəmi bir həlli. Sağ? Ilk baxışdan siz deyil, xüsusilə də əgər həqiqətən neler təşəkkür edirik. Bəli, şübhəsiz ki, biz bilər yalnız bir dəfə iki şeyi və yalnız tamamilə problem qarşısını almaq. Və indi gözəl, lakin bu gün məqsədlər üçün nə səhv üçün şərh? Niyə bir xətt bütün bu ulduz idi? Evet? Auditoriya: Bu, əgər ki, görünür Siz kodu bir line var bu olmadan bunu edə bilərsiniz. HOPARLÖR 1: Məhz. Bu yalnız bir insan konvensiya deyil. İnsanlar bir olduğunu dərk az annoying və ya yorucu bütün qıvrım aşırma qoymaq üçün Siz istədiyiniz bütün əgər vaxt kodu bir line icra edir. Belə ki, insanlar qərar bəzi ki, gözəl əvvəl vaxt. Siz loop bütün qoymaq istəyirsinizsə oxşar ki, yalnız bir xətt, ki, bir ilə gözəl sonunda nöqtəli vergül. Amma yalnız bir belə edə bilərsiniz qıvrım aşırma olmadan line. Belə ki, zaman CS50 style guide , siz qeyd edəcək kimi ümumiyyətlə görəcəksiniz yaxşı vərdiş deyil Siz etdiyiniz qədər bu almaq üçün olduqca rahat Azmış konvensiyaların bu növ və öz şey bunu. Belə uzun siz ardıcıl özünü etdiyiniz kimi. Və biz haqqında daha çox danışmaq lazımdır sonra bu gün bir az stil. Belə ki, mənə başqa bir proqramı açmaq bildirin. Əlbəttə ki, biz olmalıdır eləcə də 10 düzeltmek. Mənə davam edək və real yazmaq Mən zəng edəcəyik tez proqram, deyək, loop C. Belə ki, loop C. dot dot Və loop dot C Mən gedirəm standart I daxildir / O dot H əsas etibarsız int. İndi yalnız, həqiqətən, bir loop, nə edək. Belə ki, 4 int mən sıfır olur. Mən 50, demək, azdır. Mən plus, plus. Və sonra burada edək irəli getmək və F. çap yoxdur Və sonra mən çap etmək istəyirəm və yeni xətt, nöqtəli vergül. Bu bütün çap lazımdır sıfırdan ədəd 50? Bir neçə baş başını yırğalayır. Bir neçə nos. Artıq səhv nədir? Mən asan səhv nədir? Bəli. Auditoriya: [işitilemez]. HOPARLÖR 1: Bəli. Belə ki, hətta görünür baxmayaraq bu mən niyyətində nə kimi, Mən də ki, geri yalnız bir ASCII xarakter. Belə ki, mən demək əgər, print "I." Bu sözün olacaq əgər Belə ki, I. çap I plug-in bir tutucu istəyirəm dəyəri Mən, həqiqətən, bunu etmək lazımdır və sonra plug-in dinamik I dəyər. Əks halda mən yalnız gedirəm Ekranda 50 Mən var. Belə ki, mənə irəli gedək və bu loop etmək run, və, həqiqətən, biz bütün var up 49 vasitəsilə yol. Mən vaxt geri hərəkət əgər görürəm əvvəlində sayı sıfır. Yaxşı, mən cür nə qıymaq əgər? Mən bunu əgər? Mən düşüncə deyiləm, çünki. Bu proqram nədir. Bir tərtib və run yenidən, məntiqi nə edəcək? Auditoriya: Heç bir şey. HOPARLÖR 1: Heç bir şey. Niyə ki? Auditoriya: Mən sıfır üçün nəzərdə tutulmuşdur. Belə ki, vəziyyəti yalan. HOPARLÖR 1: Bəli, dəqiq. Bütün kodu syntactically, doğru deyil. Bu, bu tərtib edəcək code davam edəcək, lakin bu deyil faydalı bir şey gedir Mən başlamaq çünki mən sıfıra. Biz sonra 50-dən çox, yoxlamaq? Aydındır ki, yox, bu deyil. Belə ki, loop bütün icra heç vaxt. Biz bir şey varsa Bir az daha tələsik? Biz int kimi əgər Belə ki, mən sıfır nə olur. İndi mənə müddət istifadə edək başqa şərt idi loop. Mən demək isə Mən daha çox isə və ya bərabər sıfır, sonra burada mən loop etmək, davam və faylı qeyd edin. Mən run haqqında deyiləm. Mən bu görmək üçün gedirəm Bir müddət loop ilə vaxt? Bəli. Auditoriya: An sonsuz loop? HOPARLÖR 1: bir sonsuz loop? Bəli, və nə üçün? Auditoriya: həmişə sıfır çünki. HOPARLÖR 1: Bəli. Belə ki, mən sıfır kimi başlanır. Təbii ki, həmişə böyük çox və ya nəticəsində 0 bərabər. Belə ki, mən yalnız gedirəm sonsuz görürük. İndi, bu dəfə gəldi və ya iki dəfə kurs rəhbərləri. Nə zaman olur sonsuz loop var? Auditoriya: Control C. HOPARLÖR 1: Bəli. Belə ki, Control C nəhayət cavab verəcəkdir. Təəssüf ki, biz çap etdik Milyonlarla artıq zeroes milyonlarla və belə kompüter var növ qabaqda mənə var. Belə ki, ignore olacaq Mənə bir az. Amma yalnız Control C bir neçə hit əgər Mac və ya PC klaviatura dəfə, nəticədə bu, həqiqətən, ləğv edilməlidir. Və əgər biz bəzi göstərmək lazımdır uzun harada əvvəl texnika həqiqətən zorla proqramları öldürmək olar, çox Windows və Mac OS kimi, əgər lazım. Amma başqa bir şey edək. Əslində I. mı arttırmayı edək bu hələ sonsuz olacaq? Oxşar run edək. İndi cür edə bilərsiniz nə görmək. Bu da sonsuz loop edir. Amma bu oyun sual bir az. Bu əbədi nömrələri çap gedir? Auditoriya: Xeyr HOPARLÖR 1: No. Niyə? Mən burada bir Nos eşitdim. Bəli Someone--. Auditoriya: Siz kifayət qədər yoxdur bit həqiqətən davam etmək. HOPARLÖR 1: Bütün hüququ. Belə ki, kifayət qədər yoxdur bit davam. Belə ki, nə baş verəcək? Bu, sadəcə dayandırmaq olacaq? Auditoriya: Bir nöqtədə Bu the-- bağlamaq olacaq HOPARLÖR 1: Bu bağlamaq olacaq loop aşağı, amma niyə? Nə baş verəcək onun hüdudlarından çox sonu? Evet? Auditoriya: Bu dövrü olacaq geri mənfi nömrələri. HOPARLÖR 1: mənfi nömrələri, və ya biz yalnız müsbət müalicə əgər, sıfır ən azı. Belə ki, bəli, tamamilə. Ki, sonuncu dəfə gördüm Xatırladaq ki, əgər Sizin bit bir çox dəfə arttırmayı və daşqın orada ön plana Sizin int gücü və ya data növü istəyirik, nə ətrafında kesmek gedir, yəqin ki, iki mənfi nömrələri. Yoxsa ki, müəyyən etdik, əgər sıra yalnız müsbət olmalıdır Siz seçə bilərsiniz, lakin Biz hələ ki, görmədim etdik ən azı geri sıfır başa bilər. Baxmayaraq ki, həqiqətən bəli. Bu halda, mənfi nömrələri, bu halda loop ləğv etmək niyyətindədir Mən deyil, çünki, əslində, böyük və ya bərabər sıfır mənfi varsa. Belə ki, təəssüf ki, necə uzun biz gözləmək olardı? Hal-hazırda biz qədər olduğunuz nə, 2 milyon ish? Biz 2 milyard kimi biz gözləmək olacaq qədər biz, həqiqətən, bu simptom bilərsiniz. Amma biz bir az daha sürətli görə bilərsiniz biz dayandırmaq edə bilərsiniz əgər in görək maybe--. Hadi. Hətta menyular yavaş-yavaş meydana çıxır. Oldu. Belə ki, biz uzun əvvəl geri gəlmək lazımdır. Bu bala lənət olsun sýrada bir yaxşı. Bəzi duyurular üçün yaxşı bir vaxt var. Belə ki, istədiyiniz bilər, əgər YHack məşğul, bir hadisə olan olunur Yale bizim dostları tərəfindən maliyyələşdirilən. Və, həqiqətən, bəzi kurs nin Yale TFS bu ilə məşğul olur. YHack bir beynəlxalq hack-a-Thon ev sahibliyi təşkil edilən Yale, 1500 araya gətirərək fikirli hakerlər və bütün reklam kimi dünyada. Bu maraq varsa, Burada bir göz atın. Bu çox qısa əgər ekran, bu gün slaydlar nəzər yhack.org üçün URL. Belə ki, bir neçə sürətli elanlar. Belə ki, rəsmi bölmə başlayacaq Gələn həftə, həm də burada və New Haven. Bir almaq olacaq unutmayın e-poçt sonra bu həftə sonu ən çox ehtimal. Bu uzun zaman alır bölmə CS50 üçün, verilən bütün insanlar sinif və hər kəs ətrafında hərəkət. Və bütün Tədris Fellows " cədvəllər də hələ möhkəmləndirilməsi olunur, lakin bir e-poçt və ehtiyac varsa, Köklənən qalmaq , yenidən bölmə bilər edilə var sonra. Study.cs50.net. Belə ki, daimi iştirakçı olsa bölmələr, demək olar ki, bütün ki, həyata resursların biz bölmələr istifadə CS50 da açıq mövcuddur Burada bu URL təhsil alır. Belə ki, heç nəzərdən yenidən istəyirsinizsə , və ya qabaqda oxumaq bölmə material, və ya bəzi həftə edə bilməz, ki, nümunə slaydlar həyata, və problemlər, və anlayışlar, və daha çox, eləcə də bütün var. Office saat, bu gün davam və sabah və çərşənbə, və Cümə axşamı kurs yoxlamaq cədvəli haqqinda. Və həmçinin, indi başlanması Bu gün CS50 müzakirə edir. Belə ki, əgər siz sualınız zaman birinə və ya kurs heyəti üçün, və ümumiyyətlə işləyir bəzi problem set, Siz mütləq deyil ki, həyata növbəti insan çevirmək lazımdır. Heç bir var varsa, siz Bizimlə sinif yoldaşları həyata nail olmaq online CS50 vasitəsilə müzakirə. Belə ki, bu müzakirə edir kurs üçün board, və bu ki, həyata bəlkə ən yaxşı Siz zaman başlamaq üçün yer ofis saat sualları zaman kənarda özəlliklə. Nahar da bu həftə başlayacaq. Yanğın və Ice At [Işitilemez] New Haven. Əlbəttə nin bir göz atın məqsədilə veb RSVP. Ilk gəlib ki, xidmət edir. Bu həftə almaq yoxsa bu ən hər cümə edəcəyik müddəti ərzində. OK, indi Grading bir söz. Biz problemi daxil xüsusilə də Bu həftə olan bir set və problem iki və sonra seçin. Necə ki, biz P dəsti qiymətləndirən haqqında getmək yoxdur və onun keyfiyyətinin qiymətləndirilməsi? Belə ki, biz istifadə dörd baltalar var CS50, və onlar burada bu dörd istəyirik. Bir rəqəmli on tutan sahəsi, P set yalnız nə qədər əsası Siz həll etmədi. Bu təxminən uyğundur ki, səy və bu, ele bizim yoldur Siz cəhd yarım P etdi , P set bütün seçin. Bu mükəmməl almaq üçün asan bir Əgər puanları, həqiqətən, P dəsti hər aspekti cəhd edin. Belə ki, nəzərə ki, saxlamaq. Düzgün dəqiq edir. Dəqiqləşdirilməsi kimi code çalışır və kurmayları 'nümunə həlli kimi Sizin indeksi ki , əslində, işləməlidir. Siz onu görüşüb əgər, 50 yoxlayın hələ P bir dəqiqləşdirilməsi müəyyən və ümumiyyətlə edəcək siz yes / no cavab vermək müəyyən etmək üçün kodu doğru deyil. Ən azı bu günə qədər olacaq kimi Bu testlər əsasında qiymətləndirmək üçün ki, proqram çərçivəsində axır ki. Design daha çox subyektiv deyil. Bu necə də yazılı kodu edir. Bu bir şey deyil ki, Siz zamanla daha yaxşı almaq lazımdır və bir şey ki, biz lazımdır var daha çox keyfiyyətli geribildirim. Və dizayn mən bilər uzun əvvəl demək Bəzi P aldanmaq bilər loopingly bir şey üçün müəyyən, amma bəlkə üç, ya dörd, ya var Beş nested fore loops və ya iç-içə isə ilmə. Ki, ümumiyyətlə olmalıdır Siz yarınmaq etmək başlamaq və ümumiyyətlə olacaq hesab pis dizayn. Və sinif görmək başlamaq lazımdır və şeyler sinif yaxşı yolları həyata, şeyler pis yolları bütün düzgün ola bilər, lakin bilər mütləq yaxşı dizayn. Inşa yazı kimi. Siz sözləri qoymaq edə bilər dilbilgisi doğru səhifə inşa və ya lakin Onlar etdiyiniz tezis yalnız tamamilə əlaqəsiz və ya inandırıjı. Və belə ki, analog ola bilər pis və ya yaxşı dizayn yazılı dünya. Və stil də kifayət qədər subyektiv deyil. Amma ən azı biz ardıcıllıq gözləyirik. Bu necə olduqca sizin kodu edir. Hər şeyi gözəl girintili edirsiniz? Sizin dəyişənlər də adlandırılır / bütün var Sizin parantez və qıvrım aşırma onlar olmalıdır kimi uyğun? Biz bir CS50 style guide var problem set siz qeyd edəcək. O daha rahat ki, azan xoş gəlmisiniz belə uzun siz self ardıcıl kimi. Bu da bir ibrət vardır biz bölməsində gücləndirmək lazımdır. Belə ki, bütün bu bir az əgər oldu sürətli, həyata P set və bölmələr uzun əvvəl daha dərin daxil olacaq. Amma ümumiyyətlə var CS50 üçün çox az buketler. Scores bir miqyasda ümumiyyətlə üç bir və ya beş biri. Biz sözün istəyirik və mən deyə bilmərəm ilk həftəsində bu kifayətdir. Üç yaxşıdır. Belə ki, baxmayaraq ki, bəli, üç həyata Beş normal riyazi, 60 faiz və ya bir D mənfi kimi ola bilər. Three, əslində, yaxşıdır. Və əslində, biz gözləyirik sinfində ən tələbələr ətrafında müddəti başlamaq ikilər və üçlər, və dörd ayaq. Yəqin ki, çox deyil beşbir. Çox deyil olanları. Amma ümumiyyətlə başlamaq üçün əyri ki, şirin spot belə ki, vaxt irəlilədikcə ki, otaq üçün həqiqətən var, yuxarı inkişaf üçün və imkanlar. Belə ki, 60% -i üç eyniləşdirmək etməyin. Daha çox mücərrəd daha var. biz hesablamaq olan formula aşağıdakı notları ağırlıqlı. Düzgün ən dəyər. Design bir az dəyər. Style bir az dəyər. Bu, ümumiyyətlə, müddəti tutan hər əldə gider bu baltalar yalnız sağ. Style, super asandır super sürətli olmalıdır, lakin bu asan vərdiş var haqqında tənbəl almaq üçün. Düzgün bilər Siz çox vaxt. Bəzi səhv gücünü aşağı chasing , ki, əlavə saat və ya daha çox və belə ki, qol nəticədə gösterir. Belə ki, indi daha ciddi söz. CS50 var-ci ildən fərq, daha yaxşı üçün və ya pis üçün, olan bəlkə daha yaxşı tanış akademik məsələləri ilə ən hər hansı digər kurs daha dürüstlük. Şübhəsiz ki, bu, mənim bilik ki, Biz təəssüf ki, çox tələbə göndərmək intizam məqsədləri üçün nəticəsində hər il. Belə ki, tam maraq açıqlanması, bu qısa danışaq CS50 gedir və nə nə haqqında nə, və nə nəzərə ola bilər. Belə ki, burada bu yana 2007, zaman Mən kurs miras Ad Board hallarının sayı edir. Ad Board Harvard intizam deyil bədən, ya indi Onur Counsel, olan hallarda zaman istinad edilir tələbələr ki, kurs nin bir şey proqramı əsassız hesab edir. Heç bir real model var burada, mən deyərdim. Bu artıq dəyişir il amma ümumiyyətlə Bu sayı istinad edilir hallarda. tələbələrin sayı cəlb olunur ki? Bu da dəyişir. Adətən, ötən il Harvard instansiya, 29 şagird belə danışmaq Ad mindik idi. Onlara cari tələbələr 29, Onlara əvvəl iki şagird, kim əməkdaşlıq edildi bir arzu edilməyən şəkildə. Və sonra baxımından faiz, adətən təxminən 3% var sinif təəssüf ki, qərarların bu cür edir. Belə ki, ötən il 3,5% olub CS50 tələbə orqanının ki, danışmaq Ad mindik idi. Belə ki, bütün bu nə deməkdir? Və biz, həqiqətən, nə etməliyəm? Belə ki, tam açıqlanması üçün, biz tamamilə, kompüter alimləri, bizim sərəncamında proqram alətlər var və ədalət bizim üçün çox asandır, deyil ki, digər sinif yoldaşları bu xətlər keçən müqayisə keçməyə hər təqdim hər qarşı bu il Son səkkiz il üçün təqdim. Software bu yoxdur. Və nəticədə bu qərar insan gözü bəziləri və ya Daha həlli üçün əhəmiyyətli, lakin proqram əlbəttə kömək edir. Bu, səmimi, mən niyə hesab edirəm ki, biz CS50 belə böyük nömrələri var. Bu CS50, çünki deyil tələbələr və ya CS tələbələr daha ümumiyyətlə hər hansı bir az vicdanlı hər hansı digər tələbələrin çox, Bu, yalnız var var alətlər və texnika olan bu ilk pası etmək. Amma biz bir göz saxlamaq yoxdur bu şeyi bütün eləcə də, yenə mənfəətləri qoyulduğunu iş tanınması sinif bir super əksəriyyəti tərəfindən. Və əlbəttə siyasəti akademik düzgünlük on, Bu bəndlərin bir dəstə var, baxmayaraq ki, güllə bir dəstə ilə uzun ki, inşallah çox oxunaqlı edir həqiqətən məqbul aşağı qaynatmaq deyil. Və thumb ən yaxşı qayda ki, biz proqramı çərçivəsində təklif Bu, mahiyyəti bütün işləri ki, Öz olmalıdır bu kurs təqdim. Həqiqətən, demək olar ki, bütün bu hallarda intizam üçün istinad çünki bəzi tələbə gec biri idi gecə adətən onun kodunu çevirdi açıq bir sinif yoldaşı üzərində, kim onu ​​qəbul bütövlükdə və ya əhəmiyyətli dərəcədə onların. Lakin, həqiqətən, bu yaxşıdır. Həqiqətən, ofisində kağız saat, slips Siz ofis gəldi, əgər təqdim etdik saat ötən həftə qədər həvəsləndirir. Siz tamamilə istəyirik salamladı və təşviq sinif yoldaşları ilə problem dəstləri müzakirə. Büdrəmə zaman bir-birinə kömək edir. Amma, ümumiyyətlə, thumb qayda olmalıdır bu olsun "yardım üçün xahiş zaman, başqaları üçün kodu göstərə bilər, lakin onların keçirmək bilər. " Belə ki, başqa sözlə, mən əgər bəzi P dəsti ilə mübarizə və mən orada oturan alıram zalı yemək, və ya kitabxana, və ya sinif bəzi günah tapmaq üçün çalışırıq, Mən, əlbəttə, göstərə bilər Mənim ekranda mənim kodu şəxs yanında oturan üçün Mənə, əlbəttə heyəti, həm də sinif yoldaşı. Amma həll ki, əgər mənim sinif yoldaşım, oh, təklif edir Burada yalnız bir nəzər nə Mən xətti keçir ki, etdi. Mən ki, ümumiyyətlə, demək cəsarət olardı çox insanlar üçün ağlabatan şey çox asanlıqla xətti spot. Belə ki, proqramı görmək daha ətraflı üçün. Daha çox İndi bir ziddiyyətli aspektlər CS50 proqramı I I düşündüm ki, burada nəticəyə danışmaq olardı sözdə peşman bənddə edir. Belə ki, burada bütün gözəl çap var. Amma ümumi olaraq gördük son 8 plus il ərzində Həqiqətən, demək olar ki, bütün CS50 nin ki, akademik namussuzluq halları yalnız zəif nəticə olmuşdur gecə gec qərar qəbul edilməsi. stress, nəticə nəticəsi yemək olmaması, yuxu olmaması, çox P dəstləri, çox son, çox öhdəliklər. Bir 2:00 AM yaradılmasına Stress, 3:00 AM, bir tarixi looming ilə 4:00 AM. Bu hallarda ən tələbələr yalnız pis qərarlar qəbul etmişdir onlar çox yaxşı peşman ola bilər ki, Növbəti səhər dəqiqə sonra əgər, lakin ötən ilə qədər yox idi azad valve bu tələbələr bilər həqiqətən, həqiqətən, üçün açmaq olan olmadan qorxu problem baş cəmi kollec ayaqqabılı. Və həqiqətən, biz təqdim Bu peşman bənddə keçən il olan deyir ki, əgər ərzində 72 saat, üç gün, bəzi xəttini keçmək proqramı müəyyən Siz kurs nin biri irəli gəlir rəhbərləri və biz bu barədə söhbət olacaq. Hələ ola ki, bəzi nə üçün nəticəsi, əksinə Əksinə bildirilmiştir. Bəzi nəticəsi hələ ki, , əlbəttə tərəfindən emal edir ümumiyyətlə P set zeroing və ya digər tədbirlərin görülməsi, lakin biz, həqiqətən, iradə özümüz idarə və yüksək nəticəsi idi baxın çox daha ağır ola bilər. Və həqiqətən, nə bölüşmək üçün keçən il səkkiz ildə, indi Bu kurs tədris doqquz il və müxtəlif kulplar ilə kustarlıq sonra, Keçmişdə ərzində müxtəlif zənglər dönüş akademik düzgünlük bir neçə il, və məlumatların heç bir aydın başına görən hətta bu kimi çıxışlar təsiri, Bu ən yaxşı şey əlləri aşağı idi biz pedaqoji təqdim etdik səkkiz il boyunca CS50 bu xətlər. 19 şagird önə çıxdı Bu bənddə keçən il altında. Biz heç bir hərəkətə keçdi şagirdlər yeddi, onlar ki, müəyyən lazımsız narahat. Onlar, əslində, olmayan bir xətti keçərək, lakin o, yaxşı chat yenə var idi. Biz puanları 11 zeroed ki, təqdim edilmişdir. Və bir halda biz istədi tələbə müəyyən bir problem yoxdur. Amma daha çekici, vicdanla, bu 19 sohbetler ilə, Mən çox yol çox idi , onların hər olması gözlənilir Bəlkə bir 10 dəqiqə saat davam, həmçinin gətirdi ilə bağlı bir sıra məsələləri işıqlandırmaq üçün ailesel məsələləri, dost məsələləri, psixi sağlamlıq məsələləri biz sonra məşğul olan, tələbə xeyir, rezidenti dean, və ya dostları və ya hər hansı digər sayı dəstək resurslarının. Belə ki, bu günə qədər bir çox idi bizim zaman ən yaxşı istifadə və ən yaxşı müdaxilələr biri. Bildirib ki, heç bir var idi aşkar dərəcəsi giriş akademik namussuzluq ümumiyyətlə. Mən demək bu alt cəsarət tələbələrin keçən il demoqrafik idi ki, biz Daha əvvəl müəyyən vaxt əvvəl ilə bağlı heç vaxt. Belə ki, bu idi gözəl uğur hekayələri Onlar yüngül gətirildi olsa da optimal şəraitdə az. Belə ki, nəzərə bu saxlamaq Siz kimi, bəlkə də, bəzi yoxsul qərar Özünüz gecə gec, müraciət belə uzun olduğunu ki, vəziyyət tələbə up sahibi və irəli gəlib biz ki, chat belə var və bu ilə məşğul bir şəkildə təhsil var, və sonra biz növbəti gün geridə qoya bilər. Daha ADO olmadan, belə ki, almaq Bu söhbət off kənar, bala tətbiq olduqda; up səbəbi yalnız bir an üçün buz pozmaq üçün. Və təəssüf ki, onlar bütün yuxu istəyirik, lakin idi nə burada baş idi, hər kəs idi qorxu və cür istirahət çox ağır söhbətdən sonra. Amma yəqin mən qoymaq bala yatmaq. Amma CS50 nin getmək əgər veb çizgi bala, Siz uzun bütün gün onları seyr edə bilərsiniz. Xüsusilə bəlkə 2:00, və ya 3:00, və ya gecə 4:00 AM bir az stress relyef görmək. Belə ki, bala doğramaq edir. Oldu. Ki, fun idi? OLDU. Belə ki, geri bir kompüter elm, əgər mən bilər. Belə ki, biz başlayan son dəfə xatırlayıram , yalnız əsas deyil axtarır olan default funksiyası zaman idi yaşıl bayraq, ekvivalent tıklayan lakin biz də qısa başladı öz funksiyaları bəzi yazılı. Bu funksiyaların və indiyə qədər heç xüsusilə böyük və ya ətli olmuşdur. Siz bu böyük nəzərə almaq lazımdır funksiyaları yəqin ki, P 2 set, P, 3 set mütləq P 4 və irəli seçin. Hal-hazırda proqramları ən, əlbəttə onların hamısı, P əgər set 1 əsas tamamilə edilə bilər. Sizin proqram yalnız varsa Beş xətləri, 10 xətləri, hətta 20 xətləri uzun, mükəmməl yazmaq üçün ağlabatan bütün əsas və mürəkkəbləşdirmək artıq üçün Sizin indeksi, lakin biz bu gün nə edirik və irəli də çalışır bir yaxşı dizayn üsulları təqdim belə ki, sizin code daha olur kimi mürəkkəb və problemləri kimi Siz bərkişmək həll etmək istəyirik və daha maraqlı var, sort, Sizin Toolbox tools ilə o yaxşı həllər dizayn. Belə ki, bir sürətli nəzər geri almaq imkan Son həftə, bu proqram olan idi funksiyaları sıfır dot C. Və sadəcə, fark, Bu iki bu kimi görünür funksiyaları, əsas və çap adı. Və geri və ya bəlkə düşüncə Bu gün ters engineering, tətbiqi üçün motivasiya nə idi xətti adlı 28 bir funksiyası, print adı? Və ya bu nümunə idi prinsipi və ya paket şərtləri, Siz ki, əgər. Bəzi murmurs. Nə? Bəli belə Funksional parçalanma deyərək xülya yolu növüdür, proqram ayrılmaq onun tərkib hissəyə və həmin hissələri istifadə bir bütün toplaşmaq. Belə ki, çox yalnız növüdür artıq qurtum, lakin bu bəlkə də bir deyil bir şey daha yaxşı nümunəsidir yalnız abstraksiya çağırıb. Sağ? Abstrakt bir olacaq CS50 təkrarlanan mövzular və həmçinin informatika ümumiyyətlə bu yana siz həll edə bilərsiniz olan bir texnika problemlər daha səmərəli çünki daha həllər yaza bilərsiniz daxilən bir şəkildə ki, tərəzi və digər insanlar tərəfindən başa düşüləndir. Hesab edirəm ki, nə deməkdir? Belə ki, arguably daha oxunaqlı bu kimi bir proqram baxmaq, olsa super qısa. Siz line 22-də görəndə var ki, adlı funksiyası, çap adı. Tək adı nə deyir. Ki, funksiyası yəqin edir onun parantez arasında giriş, və yəqin bir şey yoxdur, ehtimalla adını yazdıran. Belə ki, hətta biz baxmayaraq tamamilə ola bilər biz olan, bir həftə əvvəl nə həyata yalnız kodu bu faktiki xətti almaq bu qurtarmaq və almaq bütün birlikdə bu xilas, biz növ üz Abstrak bir ad çap anlayışı. Siz çap DEF istifadə etdiyiniz əgər mən qayğı yoxdur. Bir varsa, mən qayğı yoxdur faiz S və bu bir backslash N. inanılmaz gizli ətraflı məlumat var. Mən kimi qayğı nə proqramçı bir ad çap olunur. Belə ki, nə yaxşı yoludur ki, nə üçün funksiyası, çap adını çağıraraq daha? Və belə ki, motivasiya biri idi bu kimi bir şey etmək üçün. Code daha oxunaqlı edilməsi, daha reusable, həmçinin özünü təsviri. İndi bir nəzər salaq başqa misal, olan funksiyaları biri idi olan biz burada idi. Belə ki, bu bir, bəlkə də daha çox çekici, çünki bu halda, Mən yalnız bir int almaq istəmirəm. Mən müsbət int almaq istəyirəm. Və bu müsbət almaq üçün çıxır Siz legwork bir dəstə nə var int. Sağ? Bu sadə bir xətt deyil print adı kimi zəng olan etiraf az çekici edir. Müsbət int almaq üçün, logically-- oxşar gizlətmək geri aşağı diyirləyin bildirin. Nə etmək lazımdır? Bütün alətlər kimi biz anda var Standard çap Def kimi şeylər Kitabxana və həmçinin CS50 kitabxana biz int almaq, və Float alın Long Long, simli almaq, lakin yalnız bir Germane, İndi int almaq deyil. Belə ki, yalnız vasitədir varsa Sizin alət qutusuna int almaq deyil, biz həyata haqqında getmək necə müsbət int almaq üçün necə? Auditoriya: bir günlük yaradın və yoxlamaq olub verdilər giriş müsbət və ya deyil. HOPARLÖR 1: Perfect. Məhz. Biz var bir vasitədir bizim bir həftə və ya iki əvvəl qutusu yalnız loop tikinti var. Belə ki, Bəli, biz bir müddət istifadə əgər loop, və ya loop isə do, və ya ön biz yəqin ki, üz əldə edə bilər loop hansı formada olanların hər hansı. Biz get anlayışı həyata keçirə bilər yalnız alın Int istifadə edərək müsbət int, və sonra yalnız zəng saxlamaq yenidən və istifadəçi pestering saxlamaq qədər və ya faktiki olaraq o biz istədiyiniz nə bizə verir. Və indi, bu prosesinin abstraksiya müsbət int almaq adlı funksiyası daxil Get Müsbət Int bir az daha çox çekici Bu baxmaq, çünki. Bu 10 plus kimi kod xətləri ki, müsbət int əldə cəlb olunur, və mən, həqiqətən, siz bunu necə qayğı yoxdur. Mən qayğı bütün sizin ki bunu və mən var bilər bir arxasında gizli bütün bu detalları adlı funksiyası int Müsbət alın Həqiqətən, loop isə bunu var. Və sintaksis ötən həftə görmək var, lakin bu, yalnız N elan, və çap istifadəçi təlimatı. Bu int almaq çağırır və sonra yoxlayır Bu vəziyyət yenidən və yenidən, və istifadəçi əməkdaşlıq daha qədər. Belə ki, indi bir neçə ağlı başında olma çek. Bəlkə tanış olanlar üçün bəzi proqramlaşdırma ilə, N elan niyə, niyə yaratmaq nə Loop isə do N kənarda? Niyə line onu 29 və məsələn kimi 33-də. Auditoriya: zaman, çünki cür kənarda bəyan daha böyük scope-- of HOPARLÖR 1: Yaxşı. Auditoriya: --and siz bəyan əgər Bu loop daxilində, [işitilemez] bu barədə bilmir, çünki. HOPARLÖR 1: Məhz. Mən simplify-- edə bilər, əgər Bu daxilində bir məsələ var. Və daxilində kontekstində aiddir olan dəyişən mövcud və ya istifadə edir. Və burada thumb gözəl qayda ki, ümumiyyətlə elan edə və ya yaratmaq zaman dəyişən yalnız daxili istifadə edə bilərsiniz yaxın qıvrım aşırma əhatə. Belə ki, nə deməkdir? Mən əvəzinə, bu geri və ilə getmək əgər bir az sadə hiss bir şey. Sağ? Line 32 yalnız indi mənə təmiz görünür. Mən də hər şeyi edirəm bir dəfə və sonra təyin Sol tərəfdən sağ. problem artıq əsasında çərçivəsində olduğunu müəyyən ki N xətləri istifadə edilə bilər 31 və bu loop daxilində 32 lakin harada ki müəyyən istifadə edilə bilməz? Olaraq nə? Bəli. Auditoriya: 35. HOPARLÖR 1: 35. Qətiliklə 35. Həmçinin burada başqa? Auditoriya: 34. HOPARLÖR 1: Even 34 Bu, çünki problemli qıvrım aşırma kənarda. Və belə əslində, nə görmək edək. Sağ? Bu bir az görünə bilər intuitiv və ya deyil, bilər amma nə edək compiler zaman demək biz bugünkü mənbə kataloq daxil. Funksiyası bir olun. Aman Tanrım. Bəli, mən nəhayət başa ki, yolu ilə. Oldu. Və məsələ burada nə var? Baxmaq çox gizli. Amma burada typed-- nə funksiyası bir olun. Burada etmək induksiya nə var, olan əslində compiler, cingilti istifadə o bayraqları bəzi biz uzun əvvəl yenidən görəcəksiniz ki. Və yenə, həmişə baxmaq ilk səhv, yalnız kaskad ola bilər, çünki digər xətləri üzrə mənasız təsiri. Belə ki, nə bu o deməkdir ki, problem funksiyası 1.c. edir Bu xətt 32 edir. Və bu sütun, və ya xarakteri, 13 var. Belə ki, zaman mətn redaktoru bilər məsələ olduğu müəyyən kömək edir. Mən diyirləyin Belə ki, əgər, line 32 nə? Ki, həqiqətən bu bir deyil artıq qeyd edir Sağ burada olunmamış dəyişən n. Amma bu olunmamış deyil. Mən istifadə edirəm. Amma compiler Çünki, qarışıq yalnız bu əhatə dairəsi daxilində mövcuddur. Və mən burada istifadə edə bilməz. Mən burada istifadə edə bilməz. Və compiler, buna görə də, hətta mən çalışıram ki, qayğı deyil. Bu istifadə olunmamış görünür onun faktiki daxilində. Beləliklə, biz etməklə əhatə dairəsini genişləndirmək bilər dəqiq başladığımız işi with-- n int. Və bu deyil, baxmayaraq ki bəlkə də, kimi zərif baxmaq, və biz bir əlavə xətt alaraq edirik burada, indi hər yerdə daxilində var. Belə ki, bir daha cəhd edək. Belə ki, funksiyası bir olun. Nice. Və indi, mən funksiyası əgər bir, 10 mənfi vermək imkan mənfi 1, 0, 1 və həqiqətən işləyir. Belə ki, burada başqa bir həll var. Siz nə bilirik? Mən, həqiqətən, bu nə güləş edirəm? Mən harada bilmirəm n getmək ehtimal. Siz nə bilirik? Mən yalnız onu qoymaq gedirəm bütün burada fayl üst yol. Bu, siz nə düşünürsünüz edərdiniz? Evet? Auditoriya: [işitilemez]. HOPARLÖR 1: Bəli. Beləliklə, mən belə danışmaq, bu, qlobal etdik. Bir dəyişən varsa kənarda var icazə verilir ki, funksiyaları bütün, və kodu, tərtib etməli və n İndi get yalnız əlçatan olacaq , həm də main-- müsbət int olan var, çünki bir az worrisome deyil Əsas artıq bir n, belə ki, daha Yalnız bir an da ki, lakin bu pis dizayn hesab olunacaq. Oldu. Siz müraciət etmək varsa, bir şey oh, mən kimi yalnız burada, çünki onu qoymaq code tərtib görünür ümumiyyətlə ən yaxşı təcrübə deyil. Əksinə seçmək istəyirəm dar mümkün daxilində Sizin dəyişənlər üçün olan deməkdir Bizim ilkin dizayn ilə davam edən sağ burada. İndi bir kənara kimi, siz olmasaydı Burada dəyişən eyni adlı bir, yol c şeylərdir idarə olardı bu çox often-- olmayacaq baxmayaraq Bu hələ ki, Burada mükəmməl gözəl. Amma istiqamətində n bu müəyyən 22 qlobal bir kölgə olacaq. Belə ki, bu bir ərzində işləyəcək əsas və qlobal bir Siz etdiyiniz zaman həqiqətən müraciət edəcək müsbət int Amma ki, daha çox almaq başqa vaxt, ancaq maraqlı olanlar üçün. Belə ki, qısa, biz burada bu düzeltmek. İndi iki ədəd ayrı tease bildirin biz kodu son line baxmaq əvvəl Bu proqram. Müsbət int almaq. Sol tərəfində onun sözü söz int edir. Ki, hesab edirəm ki, nə mənaya gəlir? Bu günə qədər biz əsasən etibarsız gördüm. Evet? Auditoriya: Bu növü var haqqında xahiş edirik dəyişən. HOPARLÖR 1: Bəli, bu növü var, mənə imkan Biz dəyişən demək, lakin dəyər növü Mən geri soruşuram. Şübhəsiz ki, ki, burada intuitiv, inşallah. Sağ? Bir almaq istəyirsinizsə müsbət int, bu nə kimi funksiyası istəyirik Keçən həftə könüllü bir parça geri əl bu bir int kağız? Və belə ki, biz müəyyən etdik ki, Bu funksiya qondarma qaytarılması növü müsbət int almaq. Biz bunu istəyirik olmasaydı Siz etibarsız demək, bir şey qayıtmaq. Əgər istəyirsinizsə, bu qayıtmaq simli, siz simli deyirlər. Əgər istəyirsinizsə, bu qayıtmaq bir float, siz float deyirlər. Amma burada tətbiq yalnız bir məntiqi, mən get int istifadə edirəm, çünki, Mən onu məhdudlaşdıran alıram baxmayaraq müsbət dəyərləri, bir int qaytarmaqdır. Belə ki, əksinə, bu nə deməkdir ki, mötərizədə bir boşluq var? Parantez nə ümumiyyətlə müəyyən? Evet? Auditoriya: Bu funksiya deməkdir həqiqətən əldə deyil. HOPARLÖR 1: Bu funksiya deməkdir həqiqətən nə əldə deyil? Auditoriya: giriş. HOPARLÖR 1: heç bir giriş. Şübhəsiz ki, əgər mötərizə burada etibarsız müəyyən yalnız mən hər hansı bir daxil istəmirəm deməkdir. Mən problemi özüm ilə məşğul olacaq. And olsun ki, siz yoxdur müsbət int bir şey almaq demək. Siz yalnız demək müsbət int almaq ki, funksiyası off getmək və onun şey edəcəyik. Amma var bir az oyun olub Burada bu bütün vaxt oynayır Bu kodu tərtib əmin olun. Ki, müsbət almaq int edək int void-- line 27 edir. Lakin bəzi zahirən qəribə səbəbdən Bu xətt 16-up burada da var. Və yalnız yaxşı tədbir üçün mən demək lazımdır bu mükəmməl eyni deyil. Mən belə etdik prototip ilə bir az bir-line comment. Mən ki, silmək olur və İndi funksiyası 1, daxil olun təkrar. Whoops. Bir dəqiqə gözlə. Mənim tab harada? Huh? Gözləmə. Funksiyası 1 olun. Biz orada getmək. OLDU. Düzgün qeyd etməyib. Belə ki, bir az var edirəm burada bug deyiləm harada Hal-hazırda nişanı adı görən. Belə ki, nə burada gedir? Funksiyası Örtük bəyannamə müsbət int almaq C99 etibarsız edir. Belə ki, yenə çaşdırıcı. Belə ki, bu göstərici nədir? Bəli, bu çıxır ki, C olduqca axmaq deyil. Bəli, bu proqramlaşdırma var dil, daha doğrusu compiler edir. Bu, yalnız var bilir tədris və bu, yalnız var bir şey bilmək gedir Siz əvvəl tədris əgər. Başqa sözlə, da hazırda əsas, mən bir funksiyası zəng etmək üçün çalışırıq adlı müsbət int almaq. Amma compiler niyyətində deyil ki, müsbət int almaq qeyd etmək line 26 qədər mövcuddur. Və belə compiler nə yalnız səhvlər tezliklə 17 sıralamaq üçün olur kimi, gizli bəyannamə deyərək müsbət int, almaq deyərək bir xülya yoldur, mən deyil müsbət int hələ nə almaq bilirik. Java kimi digər dillərdə və Python və Ruby qabaqda ola bilər. C deyil. Və belə ki, yol biz düzeltmek Bu iki yollarından biridir. Ya bir problem varsa, almaq müsbət int, əvvəl görüldü deyil yaxşı, mənə yalnız üst hərəkət edək. Yəni bu problemi həll edəcək. Amma, ümumiyyətlə, bu hesab daha yaxşı texnika çox sizin əsas funksiyası qoymaq üçün bir insan sizin kodu oxu, belə ki, top , proqram nə bilir Əsas bütün dəfn deyil, çünki altında və ya ortasında yol. Bu, çox üst var. Belə ki, ideal hiss etmir. Və həqiqətən əldə edə bilərsiniz hallarda harada bir funksiyası zənglər əgər başqa tutan başqa, Bir məsələ daxil edə bilərsiniz nə məntiqi, digər yuxarıda bilərsiniz. Bu, sadəcə mümkün deyil. Və belə yol iş Bu yalnız almaq üçün ətrafında funksiyasının imza, belə ki, deyərlər Bu declared-- Ilk line və yalnız surəti, onu yapışdırıb buruq braces-- ilə üst, lakin Yalnız bir nöqtəli vergül ilə. Bu bir az ipucu kimi gəlib nə. Və əslində, bu zaman bütün zaman standart io.h kimi şeylər gördük və cs50.h, eyni, o dot h faylları başqa prototipləri var. Biz uzun əvvəl ki, görürsünüz. , Qısa Belə ki, bir proqram var Çox funksiyaları ilə bir fayl Əsas yanaşı, demək olar ki, həmişə onlara bəyan etmək istəyirəm yalnız ilk yolu ilə bir nöqtəli vergül izlədiyi xətt, fayl çox üst. Ki, bütün bir dəfə çox idi. Hər hansı bir sualınız? Hər hansı bir sualınız? Oldu. Beləliklə hərəkət edək öskürək kimi bir şey. Oh. Necə uyğun. Oldu. Öskürək. Belə ki, burada bir c bir proqramın həyata keçirilməsi biz digər gün etdi Scratch ki, çox sadəcə öskürək, öskürək, öskürək deyir. Oldu. Və kimsə bir neçə bildirib gün əvvəl var ki, artıq bu kodu təmizlənməsi bir yol. Oldu? Kimi tezliklə çıxarmaq etdiyiniz kimi və yəqin ki, pis dizayn sovuşdurmaq. Ən azı bir dəfə biz dörd və ya beş almaq və ya 20 öskürək, pis təcrübə hiss edir. Biz yalnız sovuşdurmaq surəti saxlamaq. Aşkar həll nədir Bu proqram təmizlənməsi üçün necə? Auditoriya: Loop. HOPARLÖR 1: Bəli. Belə ki, bir loop istifadə edin. Və biz, bir müddət bir-loop istifadə edə bilərsiniz loop, yanaşmalar hər hansı bir sayı. And olsun ki, nə var biz burada versiyası bir yoxdur. Mən əvəzinə yenidən etdik cough.c versiyası bir Bir üçün loop ərzində yalnız öskürək olacaq. Bütün hüquqlar, lakin ki, bir start cür indi imkan daha çox kimi bu bir az dizayn dərs, bir an əvvəl tədris Mən istəyirdim ki, güman şeylərdir olan öskürək adlı bir funksiyası yaratmaq, yalnız bir an nəzərdən keçirək nə kimi baxmaq olacaq. Mən bir şey istəyirsinizsə, belə ki, Mən yalnız lazımdır, öskürək funksiyası daxilində çap f istifadə etmək. Həqiqətən mən. Və əslində, bütün bu vaxt, istənilən vaxt sen bir şey çap ekran, bir proqramçı Bir yan təsiri olduğunu adlandırardım. Bu, mənim verilməsi deyil geri kimsə dəyəri. Mənə bəzi fəaliyyət alaraq ki, vizual aydın ola bilər. Amma bu funksiya öskürək, geri deyil ilk xətti əsasında bir şey? Xeyr, onun qaytarılması növü, çünki yalnız deməkdir ki, etibarsız edir geri mənə bir şey verilməsi deyil. Bu bir şey bunu bilər vizual, lakin mənə təhvil deyil Keçən həftə kimi kağız parçası geri. Hər hansı bir daxil ehtiyac varmı? Yox. Və belə ki, burada da etibarsız var. Belə ki, bu, çox növ var Bu problemi artıq mühəndislik. Sağ? Mən daha çox proqram etdik kodu kompleks, daha xətləri, Mən heç bir onu qəbul etməyib daha funksional, lakin bu bir gücləndirməklə daş olacaq, bəlkə də, daha geniş daha mürəkkəb kodu ilə kontekstində. Amma bu barədə nə? Mən yalnız nə salan done-- var Bu comment baxmadan nə fayl çox üst Mən əsaslı mənim öskürək ilə görülən müxtəlif icra? Bəli, geri? Auditoriya: Siz bunu etmək Bir xarakter söndürmək lazımdır. HOPARLÖR 1: Bəli. Belə ki, bu cür gözəl hiss edir. Sağ? Bu bir xüsusiyyət əlavə kimi sizin proqram və ya bu halda funksiyası. Bu hələ heç bir şey qaytarır. Bu, vizual yan təsiri ola bilər Bu print f zəng çünki. Amma indi parametrized var funksiyası olan Mən qəbul razılaşma etdik deməkdir növü int input və n zəng lakin mən istəyirəm bir şey zəng edə bilər. Əslində, bu, yalnız ola bilər dəfə daha açıq olmalıdır. Və sonra mən yalnız burada bu dəyişə bilər. Amma point necə bu ki, daxil edir bir funksiyası yaratmaq. Və Flipping geri əgər bir bəlkə online vasitəsilə walk-throughs, dördüncü və son öskürək Məsələn, burada görəcəksiniz I ümumiləşdirilmiş etdik Abstrak mənim kodu further-- cür daha sonra. Öskürək və asqırmaq kimi, həm də haqqında bir şey söyləyərək və ya edilməsi kimi səs bir növ. Save olacaq Scratch blok müvafiq. Və mən bu versiyası etdi belə nə, olan biz, yalnız nəzər edə bilərsiniz , öskürək yalnız [öskürək] deyən kimi deyil öskürək, və eyni zamanda, asqırma deyən kimi, [ACHOO]. Və mən ümumiləşdirilmiş etdik o həyata keçirilməsi İndi həyata Bu ümumi funksiyası, maraqlı olan, demək bugünkü məqsədləri üçün yalnız hələ çünki bir qaytarılması növü yoxdur. Amma bu nə qədər vəsait var? Auditoriya: Two. HOPARLÖR 1: Two. Və belə ki, istəyirsinizsə iki dəlilləri almaq, yalnız bir vergül ilə ayırın. Və sonra istəyirsinizsə ki funksiyası zəng, qeyd sizə yalnız , dırnağı bağlamaq, quote, demək zəng ilk arqument üçün, ümumi n, İkinci arqument üçün. Belə ki, yenə, biz yalnız indi bloklar biz, həqiqətən bilər ki, öz funksiyaları bəzi həyata keçirir. Oldu. Bu hər hansı suallar? Belə ki, indi bir qat, belə ki, geri soymaq bildirin. Və məqsədi, nəticə etibarilə, Növbəti həftə problem dəsti cryptogrophy-- olmaq niyyətindədir məlumat Scrambling sənəti. Və xüsusi informasiya Siz şifrelemek və ya decrypt olacaq mətn olacaq. Dəvət Və belə bu cür sual bu gün də olduğu kimi, nə başlıq altında gedir Həftə sıfır ASCII kənarda mətn ilə, və necə həqiqətən biz manipulyasiya başlamaq? Belə ki, burada ZAMYLA adı var. Və mətn ki, inputted bilər get string funksiyası kimi daxil. Bir çox zaman, indi başlayır şeylərdir Z-A-M-Y-L-A-- kimi string hər sanki onu düşünmək bu simvol bir qutusu onun öz. Şübhəsiz ki, bir həftə və ya belə var vaxt, bu qutuları hər çox xüsusi təmsil gedir yaddaş bir bite, yaddaş blokunun. Belə ki, bu məktubları hər, nəticədə, 8 bit təmsil edəcək. Və biz, həqiqətən, nə gedir görürsünüz mənim kompüter başlıq altında. Amma bu kifayət edər Yalnız ZAMYLA baxmaq bir vasitəsi hər bu lens vasitəsilə bu məktublar öz qutusuna edir. Və gözəl kifayət qədər C əlimizdən birbaşa qutuları hər daxil. Siz ilk almaq istəyirsinizsə Belə ki, onun adı məktubu, C. super asan Son almaq istəyirsinizsə məktub super asan həmçinin yeni sintaksis bir parça ilə. Beləliklə, mən CS50 daxil irəli getmək üçün gedirəm IDE və simli sıfır dot C. açmaq Və burada bu nümunə var yeni şeylər bir neçə gedir. Belə ki, ilk xətti 19, biz Bu, əvvəl get simli görüldü. Belə ki, yalnız tez ağlı başında olma çek kimi, Kimsə şifahi təklif edə bilər, əgər bir layman nin izahat nə xəttində 19 olur. Yalnız bu tərcümə Like English ki CS50 bir roommate deyil anlamaq bilər. Bəli. Auditoriya: istifadəçi girişi A string dəyişən s onu saxlamaq və. HOPARLÖR 1: Yaxşı. İstifadəçi girişi bir simli var və dəyişən s saxlamayın. Bu əladır. Sağ tərəfdən So yan, biz get string çağırırıq. Ki, bir dəyər qaytarır ki, təyin almaq etməyib sağ tərəfdən sol əl üçün bir dəyişən adlı s daxil yan bir simli saxlamaq üçün nəzərdə tutulmuşdur. Məhz. Belə ki, indi hər 22 xətti line 21 comment, açıq-aydın ki, simli çap satır başına bir xarakter. Bəs necə? Belə ki, ilk növbədə, biz 0 başlamaq. Və sonra necə əldə edirsiniz ZAMYLA adı sonu? Yaxşı, sonunda ZAMYLA adı, Mən ola bilər əl son xarakter yazın onun elə adı, və ya sayı. Sağ? Biz geri burada Z-A-M-L-- getmək Y-L-A-- mən yazın bilər. Index nədir ZAMYLA son məktub? Əgər bu 0- kimi danışan programmer-- 0, 1, 2, 3, 4, 5, Mən, həqiqətən, son məktubu heard-- ZAMYLA adı altıncısı, lakin biz 0-dan saymaq, Bu sayı 5 olacaq. Belə ki, burada nəzərə ki, saxlamaq. Bir funksiyası da var həyata çevirir C strlen adlanır və geri gün və hələ də bu gün, proqramçılar bir çox adları senkronize seçə onların sözləri kimi səs funksiyaları deyirlər çalışırıq. Belə ki, strlen string uzunluğu. Və nə string uzunluğu olardı Zamyla daxil olduqda S qayıtmaq? Auditoriya: beş. HOPARLÖR 1: Z-A-M-Y-L. Six. Sağ? ZAMYLA adı uzunluğu nədir? Sağ? Və yalnız əslində, altı məktublar. Sağ? Və belə ki, bizim loop üçün nə deməkdir? Biz getmək olacaq Altı qədər 0, hansı bizə beş tekrarlamalar vermək niyyətindədir. Biz hər iteration nə etməliyəm? Yaxşı, yüzdə C, kimsə gün guessed, nə üçün tutucu deməkdir? Auditoriya: Char. HOPARLÖR 1: Just bir char. Belə ki, bir xarakter deyil bir string kimi çox simvol. Və sonra burada yeni xətt var biz çap var ki. Və sonra burada yeni sintaksis var. Siz i-ci çap istəyirsinizsə string S xarakteri, belə ki, danışmaq sadəcə demək olar string S ad, və sonra kvadrat mötərizə açmaq və sonra i ilə kvadrat mötərizə bağlanıb orta. Və bu cür gözəl bu cür bir kvadrat kimi görünür yalnız meydanlarda kimi Zamyla nin hansı simvol var ki, şəkil mövcuddur. Mən, həqiqətən, bu run əgər Belə ki, İndi nə görmək edək. String 0 dot çizgi etmək string 0, sonra mən ZAMYLA adı yazın gedir. Mən deyil, çünki heç bir tez var, print f istifadə, lakin ki, gözəl. Mən nə bilirik. Şübhəsiz ki, bu çap ZAMYLA adı, satır başına bir. İndi bir az tələsik olsun. Mən bilmirdim ki, düşünək haqqında strlen və mən fiqurlu, bütün sağ, heç bir var olacaq 50 simvol kimi daha böyük ad. Nin irəli getmək və bu derleyeceğiz edək və təkrar, sonra ZAMYLA yazın yenidən. Məntiqi, nə Proqram çap etmək üçün cəhd gedir? Z-A-M-Y-L-A sonra kimi 45 yaddaş naməlum bytes. Həqiqətən, biz geri gəlmək lazımdır yaddaş bu fikir. Amma yalnız məntiqi, əgər ZAMYLA adı, uzun bu şəkil kimi Burada biz nə deyərək edirik çap saxlamaq, çap saxlamaq saxlamaq çap, çap saxlamaq, çap saxlamaq 50 xarakter bütün yol, olan baş neler bilir. Belə ki, əslində bir nəzər salaq. Nin ZAMYLA yazın edək. Maraqlı. Biz uğurlu var. Ağ kosmik yalnız bütün dəstə. Oh. Bir funky xarakter var. Bu qəribə sual kimi cür görünür orada qeyd, lakin ZAMYLA adı var. Həqiqətən tələsik əldə edək. Biz 500 çap haqqında necə unknown daxil blokları? Nin irəli getmək və bu imkan eləcə də, sonra yenidən run. Və bu, çünki tam ekran imkan biz daha çox yer görmək lazımdır. Zamyla. Daha uğurlu var. Biz daha çox tələsik almaq cəsarət? Daha tələsik əldə edək. 50.000 simvol. Şübhəsiz ki, bu yaxşı bir fikir deyil. Oldu. Simli 0 olun. Bu bizim son demo olacaq. Zamyla. Uf. Uf. OLDU. Belə ki, mənim yaddaş, indi həqiqətən boş olan həqiqətən cür rahatdır. Mən bütün sağ to-- almaq üçün çalışıram nə. İndi mən yalnız tələsik almaq üçün gedirəm. 500,000. Tam ekran onu edək Make--. Daxil edin. Zamyla. Biz orada getmək. Mən heç bir fikir nə var , ancaq pis səslənir. Oldu. Və əslində, tezliklə, siz arasında əgər ofis saat uğurlu neçə və problem, siz bir set çox yaxşı qarşılaşa bilər. Seqmentasiya günah həqiqətən yoxdur yaxşı müəyyən mənası var. Bu səhv bir növ deməkdir yaddaş seqmentinə dair. Və layman nin baxımından, biz toxunub deməkdir bütün yaddaş mənim kompüter RAM istifadə Mən çıxışı var deyil ki. Və həm də nə var güclü və həmçinin təhlükəli C haqqında həqiqətən deyil unfettered imkanı var Sizin proqramın yaddaş bütövlükdə üçün və ya bytes və ya RAM, daha çox xüsusi. Belə ki, hətta ZAMYLA adı olsa , yalnız altı simvol uzunluğunda Mən hələ hər hansı bilərsiniz yaddaş istəyirəm. Və bir kənara, siz var kimi Heç bir məqalə oxumaq bəzi illər ərzində server və ya proqram çatlamış və ya girildi almaq ki bir şey qəbul üstünlüyü bufer daşqın adlı biz, həqiqətən, lazımdır ki, istismar ki, bir neçə həftə haqqında danışmaq ümumiyyətlə elə tricking istinadən yaxşı gedir bir kompüter yaddaş hüdudlarından kənarda bu olmalıdır ki, şirəli bir şey tapmaq ki, yaddaş-bir parol, bəlkə də, bir yol bir seriya nömrəsi yan of kontrol, və ya ümumiyyətlə mümkün yalnız Kompüter icra edilir bezemek nəzərdə deyil kodu. Amma geri gəlsin yalnız bir an üçün reallıq Bu proqram olduğu strlen ilə həyata keçirilən, və burada bir şey təqdim edir. Bu ilk üç xətləri arasında yeni nə var? Belə ki, simli dot h. Bu adlı bu kitabxana var çıxır String Dot H, və ya String Kitabxana, onun header file, belə ki, danışmaq, mənə verir string dot h bu strlen funksiyası çıxış. Hesab edirəm ki, buraxmaq, compiler edir hansı formada mənə fəğan gedir. Amma nə bilirik? İndi həqiqətən ehtiva əldə edək. Line 22, bir şey cür var bir inefficient-- pis dizayn, kodu bu xətti haqqında arguably--. Necə geri düşünün üçün loop həyata keçirilir və hansı addımlar yenidən baş və yenidən və başlatma again--, vəziyyəti kod ki icra, sonra artım olur və ya dəyişdirmək, sonra vəziyyəti, sonra kodu, sonra dəyişiklik, vəziyyəti, sonra kodu, sonra s dəyişikliyi və. Belə ki, nə bir az ola bilər, worrisome və ya zəif görülən? Bəli, mavi. Auditoriya: Strlen deyil bir çox dəfə çağırıb. HOPARLÖR 1: Bəli. Adlanır, belə strlen bir çox dəfə, lakin nə ZAMYLA adı uzunluğu ilk dəfə loop həyata? Auditoriya: Six. HOPARLÖR 1: Six. Bəli, onun adı uzunluğu nə code icra ikinci dəfə? Auditoriya: Six. HOPARLÖR 1: Bütün hüququ. Bu hələ altı var. Sağ? Zarla adı deyil Mən arıyorum belə, dəyişdi onun adı məktublar yalnız hissəsində. Və belə fakt mən səmərəli edirəm ki, bu sualı, nə ZAMYLA uzunluğu uzunluğu nə ZAMYLA ki, Zamyla uzunluğu nə var, altı ayrı dəfə, və ya yeddi hətta, yalnız axmaq deyil ki, cavab dəyişməz, çünki. Və nə mən, həqiqətən bilər simli bir şeylərdir nə edir Mən burada bir cüzi yaxşı versiyası var. Orada whoops-- string iki Mən bir cüzi yaxşı versiyası orada Mən əvəzinə yalnız şeylərdir etmək Mən bir vergül ilə də 0 i başlatılıyor adlı ikinci dəyişən elan n-- Mən yenə int demək yoxdur. Mən əslində, olmamalıdır. Amma n deyirlər. Və sonra mən n başlamaq ki, n strlen, indi neçə dəfə strlen etmir cəmi edam almaq? Yalnız bir dəfə. Və bu biz demək nə əvvəllər daha yaxşı dizayn haqqında. Həqiqətən, sizin indeksi, düzgün bir dəfə geri gedir və ilə düşünür, Mən az istifadə edirəm yaddaş və ya bir neçə saniyə kompüter vaxt və ya ms kimi bir problem həyata keçirmək mümkün? Mən hərəkət etmək üçün gedirəm və yalnız qeyd Bu qeyd var ki, Bu versiya null, lakin biz uzun əvvəl geri gəlmək lazımdır. İndi Çünki, Bir nəzər salaq burada bu bizə rəhbərlik edir. Belə ki, bir, bu çıxır ki, biz imkanı var indi ki, fərdi simvol baxmaq, Biz bir şey leverage Həftə 0 çox gizli idi və zamanda maraqsız sort. Amma indi, və xüsusilə biz Həftə kriptoqrafiyanın almaq, Bu olduqca güclü olacaq. Bəzi ilə çıxır ki, məlumatların məlumat növləri ints və üzüb gedirdi və chars və strings və bəziləri hər şeyə digər çox asanlıqla başqa konvertasiya edilə bilər. Məsələn, biz söhbət zaman ASCII haqqında bir müddət ago-- burada hərflərlə A M vasitəsilə, nöqtə, nöqtə, dot-- bir mapping var bildirib ki, bu məktublar və nömrələr arasında. Və əslində, bu doğru aparır eləcə də kiçik məktublar üçün. Kiçik bir 97, kapital 65 edir. Və ASCII bir sıra var olan yalnız bu mapping edir həmin digər məktublar bütün sistemi. Belə ki, nə deməkdir? Bəli, mən irəli və açıq getmək üçün gedirəm adlı real tez bir şey qədər Yapılan yorumlar əksəriyyəti ASCII 0. Və yenə online həmişə bilərsiniz şərh vasitəsilə nəzər. Və bir nəzər nə Bunu etmək üçün gedir. Belə ki, əsas funksiyası var. Mən yalnız nömrələri ağır kodlu etdik İndi, çünki mən edirəm nə bilirik. Mən burada görmək istəyirik nə bilirik. Mən 65 I başlatılmış etdik. Mən qədər hesablanması alıram 26 vasitəsilə məktublar ümumi. Mən nə gedirəm bir-bir xətt çap Siz yoza bilirsinizsə bu xətt qeyd? Nə çap olur? Bəli. Auditoriya: Siz gedir məktub çap ki, xəritədə uyğundur məktub dəyəri və tam dəyəri? HOPARLÖR 1: Məhz. Mən məktubu çap gedirəm tam dəyərinə uyğun, və əksinə, kimi edir. Yaxşı bu kimsə, əvvəllər bildirib bir char üçün bir tutucu edir. Bu hələ var. Bu, əlbəttə, bir tutucu Yeni xətt bir int üçün. İndi, mənim ilk dəyər qeyd ki, Hesab edirəm ki, tutucu üçün sayede edirəm yalnız I. deyirəm deyil, parantez, char mən, olan ara char deyil compiler deyirəm, mən müalicə Biz bir sıra olan nə kimi. Faktiki xarakter kimi müalicə. İkinci dəyəri Halbuki mən sayede edirəm in-- istisna olmaqla, mən yalnız bir sıra olmalıdır. Belə ki, bu proqram tərtib əgər bu ASCII 0 olun, dot çizgi ASCII 0- Mən yalnız almaq Bu lazımlı kiçik chart ki, Mənə mümkün bütün göstərir onu düşünmək olmadan mappings vasitəsilə və ya öz anlamaq. Mən də, çap alıram kiçik məktublar qeyd, sonra bir neçə xətləri, çünki mən bu mapping çap eləcə də, yalnız olan Sonra başa düşürəm ki, demək altında nə olub başlıq, siz avtomatik geri və irəli çevirmək. Və əslində, siz əgər varsa Heç grade məktəb bunu və ya kimsə haqqında eşitdim mythically qeyd alaraq və keçən onun və ya sinif yoldaşı, ancaq Pişmiş A B olur kimi çox məktublar, və B C, və ya bir şey olur daha mürəkkəb, yaxşı, Siz necə getmək olardı Bir uşaq kimi həyata? Yaxşı, siz yalnız cür bilirik A B olur, B C olur, lakin riyazi, ki, uşaq nə edirdi? Nə hər bir məktub əlavə edildi? Səmərəli, 1. Siz B A dəyişdirmək zaman, belə ki, ki, cür 66 65 dəyişən kimi, olan riyazi yalnız 1 əlavə deməkdir. Və belə ki, həyata olsaydı ki, az aldadıcı texnika kodu müəllim üçün, ki, yalnız tam olaraq edə bilər birlikdə bir hərf əlavə. Belə ki, uzun əvvəl, biz istəyirik biz necə gedir həqiqətən ki, istifadə edə bilər həqiqətən dırmaşma və unscramble məlumat. Eyni zamanda, biz açılmış etdik ki, bilirik bir neçə digər kitabxana təqdim etmək simli bir gün burada. Və bir çox faydalı site inşallah siz tapa bilərsiniz , reference.cs50.net adlanan müəllim heyəti bir araya gətirdik, Əgər istəyirsinizsə, belə ki, necə strlen işləri baxmaq, Siz yazmağa başlaya bilərsiniz funksiya adı, basın orada strlen, sonra bir az rahat izahat görünür gedir. Yoxsa rəsmi istəyirsinizsə Linux-based şərh, Siz daha rahat vurun sağ üst və ona eyni məlumat təqdim edəcək, lakin daha kompleks baxımından. Ki, bir faydalı resurs var həqiqətən hər şey nə bilirik. Biz gedirik Növbəti dəfə Ovaltine nəzər və daha çox, və özümüzü təqdim Kriptoqrafiya dünyaya. Bundan əvvəl, biz görəcəksiniz daha sonra bu həftə. İndi, Colton Ogden. Çərşənbə günü görəcəksiniz. [MUSIC PLAYING] [MUSIC PLAYING] HOPARLÖR 1: nə [BLEEP] edirsiniz? HOPARLÖR 1: Mən desert yemək edirəm? Necə yemək bilərəm? Əlləri ilə? [MUSIC PLAYING]