[Video playback] Riyazi-A təntənəsi və mexaniki bacarıq bu böyük yeni avtomatik Harvard Universitetində kalkulyator. Riyaziyyat mürəkkəb problemləri kodlu şəklində maşın vasitəsilə qoymaq tape dəqiq bir həll edilir vaxt dəqiqə fraksiyası tələb insan hesablanması üçün. Bütün formalarının sürətləndirmək üçün nəzərdə tutulmuşdur riyazi və elmi-tədqiqat, nəhəng mexaniki beyin üçün işləyəcək Amerika Birləşmiş Ştatları Dəniz müharibəsi sonuna qədər. [END playback] DAVID J. MALAN: Bu, CS50 edir. keçmiş sehrli idi yer, ancaq var, əgər heç ki, cihaz nə merak Harvard Elm Mərkəzində, həqiqətən bir hissəsidir Harvard Mark I, və bu indi ekranda son uzun illər. Və görmək lazımdır nə problem set daxil bir pərdə arxasında bir göz edir ki, cihaz, etdi və edir də nə olan Professor Harry Lewis dən burada informatika şöbəsi. Yalnız bir az ki, daha çox. Ancaq bu gün biz keçid başlayır Keçən həftə bu, və biz qeyd gətirmək lazımdır burada bir fotoşəkil ki, həqiqətən, çox məşhur deyil. Hər kəs nə bu bilir burada ekranda? Ən azı mif görə. Bəli. Auditoriya: ilk virus. DAVID J. MALAN: Belə ki, guya idi kompüter ilk faktiki bug. İndi əslində söz bug, bir proqramda bir səhv üçün, bəzi bizimlə olmuşdur fiziki dünyada vaxt, və bu ilk biri idi sənədləşdirilmiş dəfə burada kimsə həqiqətən Mark bir böyük güvə yoluq II kompüter, binder qoyun və sonra qeyd ilk məlum səhv kimi həqiqətən fiziki aşkar edilmişdir. Belə ki girildi Bugünkü irfan ki. Son hər şey həftə mövcud online. Xüsusi resursları siz bilər mütləq xüsusilə qeyd şəxsən bura gələn əgər. Belə ki, tədris yoldaşları biri hər il qeydlər canonical dəsti edir, belə ki, saxlamaq lazımdır baş aşağı çalışır ən şey kopya ki, sinif burada baş verə bilər. Belə ki, həmin ki, həyata [qondarma? Scribd?] Qeydlər əlbəttə slaydlar, online və biz sinif istifadə mənbə kodu. Biz tam mətn transkriptleri etmək mövcud həmçinin. Siz yayğın bir xatırlayıram Belə ki müddəti, və bir az bu qədər baxmaq istəyirəm daha asan ki, bütün həyata ki, axtarış online. Eləcə də, eləcə də walkthroughs. Həqiqətən, bu gün biz baxmaq başlayır aşağı səviyyəli proqramlaşdırma dili, tezliklə bizə məlum C və bu, çox asan sort yalnız bir neçə sonra itirilmiş almaq üçün anlar vaxt, və möcüzə sonra sort Biz, həqiqətən, bir daha var necə sadə kompleks nümunəsidir. Və belə ki, biz albalı lazımdır həyata sinif bir zamanı seçin nümayəndəsi nümunələri, lakin çox daha çox edir ki, həyata Siz işləyə bilər, belə ki, mövcud online , öz sürətlə vasitəsilə Lakin siz ən rahat istəyirik. Amma biz off sol yalnız bu idi proqramları. Belə ki, yaşıl bayrağı basın, və bu proqram nə edir? Hello, dünya, deyir. Bu pişik dedirdən salam onun kiçik dünya yuxarı sol tərəfində Not istifadəçi interfeysi. Amma biz təqdim etməyə başlayıb bəzi terminologiya ötən həftə. Belə ki, bu kimi şeylər biz nə adlanır? Bu üçün ümumi müddət nə ola bilər? Bəli. A metodu və ya bir şərh. Əlbəttə, bu, bir hərəkət var. Bu edin. Və hələ var idi danışıq digər formalı, bu qondarma başqa Şərhdə, onlar da idi biz nə adlanan bu kimi şeylər? Bəli. Belə ki, bir loop. Və bu halda, bu şey təkrar, təbii ki, 10 dəfə. Bir əbədi blok var. Digər bir neçə var. Bu gün biz necə görmək olacaq daha müasir dünya bu tərcümə, bu, baxmayaraq ki, siz əgər ilk baxışdan görünür gedir daha çox gizli olmalıdır. Lakin həmin həqiqətən loops idi. Və sonra biz kimi şeylər var Bu forma idi ki, bu, və mahiyyətcə suallar. Və biz nə bu istinad? Auditoriya: Boolean ifadə. DAVID J. MALAN: Bəli. Məntiqi ifadə. Bir şey, ya doğru və ya yalan, bəli və ya xeyr, bir və ya sıfır, Lakin dünya keçirmək istəyirəm. Amma biz o Boolean adlı ifadələri və biz onları yerləşdirin şəraiti, və ya filial daxil. Və dünyada Scratch, hər şey gözəl onun forma baxımından interlocks, bunu etmək üçün məntiqi anlamlı əgər, lakin yalnız dayandırmaq yoxdur şərti bir şey bunu, Siz bir atasözü ola bilər yol ayrıcına bu və ya əgər bilərsiniz nə vəziyyət doğru və ya deyil. Və sonra, kimi, görürsünüz Əgər siz artıq varsa, siz yuva bu blokları belə edə bilər. Belə ki, Scratch şekiller doldurmaq üçün artır siz onu əlavə etmək istəyirəm bilər ki, belə ki, həqiqətən ifadə edə bilər ən Siz istədiyiniz hər hansı bir məntiq. Elan İndi bir neçə söz həm də burada New Haven üçün. Belə ki, sectioning bu gün başlayır. Bu URL kurs üzrə deyil haqqinda, tanış olanlar üçün. Bölmələr bir olacaq imkan birlikdə almaq üçün daha intim mühit [daha? Sanders?] Imkan verir bir 10 20 sinif yoldaşları ilə müxtəlif musiqi fellow tədris, və müxtəlif templəri bunu seçerseniz. Həqiqətən kurs təkliflər müxtəlif bölmələr az rahat olanlar üçün, daha rahat və bir yerdə arasında, və thumb rolu var heç bir formal müəyyən var, ancaq az rahat edirsinizsə, Siz cür bilirəm. Siz haqqında bir az cəsarətli istəyirik geri, bəlkə də, ayaq gücləndirməklə ideyası sinif, və ya göstərən bölmə arasında in qədər. Siz bu yana proqramlaşdırma olmuşdur varsa daha rahat, altı yaşında idi bəlkə sizə. Və bir silkələmək-up növü var, əgər, ki, məhz nə arasında var olmaq deməkdir. İndi vaxt, Bir sinif bu ölçüsü üçün, Bu bölmədə, bizi çox vaxt tələb edir hər kəs, biz qondarma var, super bölmələr qədər bu gələn həftə sonu və gələn həftə belə kurs saytında nəzər Əlbəttə genişdir ki, o, və həmçinin olanlar üçün lentə kim onlara edə bilməz. Və bölmələr özləri başlayacaq həftə CS50 sıfır index üç. Problem 0 artıq müəyyən kurs saytında. Və var ki, həyata doqquz gec gün bu dövr. Belə ki, bu son bir yükseltme il biz beş gec gün idi. Belə ki, merak edirsinizsə, biz doqquz problem dəsti var. Siz doqquz gec gün, hər biri var Yalnız həftədə bir sərf edə bilər. Ki, səmərəli bütün edir problem səbəbiylə Cümə edir, lakin məqsədi bir az qoymaq üçün psixoloji təzyiq bit sizə almaq üçün cəhd cümə axşamı şeyi Siz tezliklə aşkar edəcək, çünki, yaxşı və ya pis, ən proqram dünyada hər şey bitir daha uzun siz tahmin daha alaraq. Belə ki, bir növ hesab kömək imkanı Özünüzü, Cümə axşamı hədəf lakin, bəli, rahatlıq hər şey Cümə bağlıdır. Və onları təqdim əgər Cümə axşamı, ki, gözəl var. Heç bir bonus xal və ya əlavə var ki son görüş üçün kredit. Bu, yalnız bir qoltuqağacı olmaq üçün nəzərdə edir. Və ofis saat, həm də burada və New Haven, şəxs, siz istəyirsinizsə Bizim kursları hər hansı ilə görüşəcək yardım üçün tədris yoldaşları və CAS. Bütün hüquqlar. Belə ki, indi bu daha real edək. Və bir an başlamaq olacaq bir az daha gizli, lakin çox üçün tez Cümə günü və gələn həftə olacağıq daha çox daha çox edə Biz indiyə qədər Not bilər. Belə ki, biz son kodu təqdim həftə pictoral olsa. Bu puzzle ədəd olmuşdur. Və biz bu ki rəsmiləşdirilir mənbə kodu deyilən bir şey, lakin kimi baxmaq idi ki? Bəli, bu bir az baxdı bu kimi bir şey. Və əslində, yalnız cür Biz bu ilə getmək bilər tease. Mən irəli getmək üçün gedirəm və Burada bir pəncərə açmaq və mən yalnız yeni fayl seçmək üçün gedirəm. Və mən bu fayl saxlamaq üçün gedirəm salam dot c kimi bir şey kimi. Ki, seçimi Ətraflı yalnız bir anda sözlər. Bu necə kimsə bilər deyil bir proqram yazmaq haqqında getmək. Standart I / O dot h, əsas int əlavə yaxın etibarsız, sonra açıq buruq brace buruq brace, printf salam vergül dünya, backslash n, nöqtəli vergül, Save, görülən. OK. Mən ilk yazdıq proqram, lakin gedir inanılmaz underwhelmed olmaq zaman, həqiqətən, Mən, çünki Əlbəttə, bu proqram run, ilk yazılı tərəfindən salam etmək, və sonra salam doğramaq və biz lazımdır dot daha ətraflı bu yolu getmək bir anda ki, bunu bütün var. Hər hansı bir Windows açıq pop yoxdur. Bu bir şey deyil xüsusilə xülya. Bunu mən onu bildirib nə yoxdur, amma necə biz almaq edirsiniz? Və necə ki, sonra qurmaq edirsiniz? Yaxşı, bir neçə təqdim edək burada müxtəlif anlayışları. Belə bir, biz başlamaq üzrəyik bir compiler adlı proqramı istifadə edərək. A compiler, Mac OS, Windows üçün mövcuddur Linux əməliyyat sistemi hər hansı bir sayı, və biz tezliklə sizə təqdim edəcəyik biz istifadə olunacaq ki, ətraf mühit, lakin compiler yalnız ümumi deyil proqram bir parça müddəti ki, mənbə kodu edir və bu obyekt kodunu istehsal edir. Başqa sözlə, əgər giriş mənbəyi kimi var indeksi, Mən yalnız yazdığınız nə kimi bir şey, Bu, son nəticədə obyekt kodunu istehsal edir. Və obyekt kodu yalnız həqiqətən Bu nəticələr deyərək bir xülya yolu sıfır və bir var. Başqa sözlə, mənbə Bu belə olsa indeksi, bir az gizli baxmaq üçün gedir, və bir az daha az dostluq ilk baxışda Not çox, ən azı bir şey var biz insanlar başa düşmək olar ki. Bu cür görünür və kimi səslənir English olsa da, bu, çox qısa var. Sıfır nin proqramlaşdırma Halbuki və biri, bizim sələfləri etmək idi, bir neçə il əvvəl, yox idi bir xüsusilə fun çağırış. Və hələ, bu nə edir kompüter hələ anlayır. Belə ki, compiler bizə olur mənbə kodu obyekt kodu. Bu ilə bir fayl açılış kimi compiler, və onu saxlamaq zaman, bu adet sıfır və olanları almaq. Belə ki, biz bunu necə görürsünüz yalnız bir anda olduğunu. Amma indi edək ki, təmin etmək üçün çalışırıq Keçən həftə bu arasında körpü, hətta belə ki, biz asılıb almaq qıvrım aşırma kimi şeylər, və semicolons və parantez, və bu intellektual maraqlı bütün proqramlaşdırma aspektləri, çox anlaşılır erkən nəfər səfər, ideyaları bütün ki, həyata Bu gün, son kimi eynidir. Belə ki, ötən, biz bu nümunə gördüm Burada Hello World proqramı. Biz istəyirik əgər Bəli, bu gün başlayan həmin proqramı həyata keçirmək, bir baxmaq olacaq bu kimi kiçik bir şey. Və biz, uzun nə int əvvəl izah edəcəyik əsas və etibarsız və ki, bütün və , lakin ən azı mən burada bax artıq tanış Hello World. Kimi eyni zamanda, hər şeyi funksiyası, salam demək, Çox sadəcə bir olacaq oxşar çox sadə bəyanat. Printf salam dünya, bəzi bir backslash ilə quotes, bir nöqtəli vergül ilə, lakin ki, gələcək üçün daha çox. Loops, eyni zamanda, bu bir loop deyil, əlbəttə, əbədi dünya salam deyir, və bu bir baxmaq olacaq son daha weirder az, amma bir şey demək əgər kimi, doğru isə, mən sonra Hello dünya çap edə bilərsiniz təkrar və təkrar. Və sonra kimi növ edə bilərsiniz burada çıxarmaq başlamaq, istifadə edərək, bu konqres qıvrım aşırma cür of əhatə kimi orada kodu indented line. kod printf xətt çox kimi Yuxarıda sarı puzzle parça. Beləliklə, biz əbədi demək fikrində deyilik, biz doğru isə demək olacaq ki, yalnız bir az nə, lakin biz görəcəksiniz. Eyni zamanda, biz bu kimi bir loop varsa, burada məhdud bir şey demək sayı dəfə, bu bir çox bu bir az etmək niyyətində alışma , lakin int demək olacaq i, i ++, i az 10 sıfır olur və sonra printf yenidən. Amma nümunələri var olacaq. Və tanış sizin üçün AP Kompüter elmləri, və ya Java ilə, və ya başqa dillərdə hər hansı bir sayı, demək olar ki, bütün bu inşa of indiyə qədər əsasən tanış baxmaq lazımdır. Belə ki, dəyişən. Belə ki, burada sadə Scratch pasaj var ki, , sıfıra counter adlı dəyişən edir və sonra əbədi counter deyir və o bir counter dəyişir. Belə ki, sıfır ilə başlayır və sonra bir, iki, üç. Yaxşı, necə ki, təqdim edə bilər Bu yeni dil eyni bir az? Int counter bərabərdir doğru isə sıfır, hansı əvvəl eyni fikirdir əbədi bir şey bunu, və mən yalnız printf üçün gedirəm. Və indi, bir az qəribə əldə faiz i, lakin daha gəlib, lakin bu fikir tam olaraq eynidir. Biz yalnız indi riayət etmək lazımdır kompüter syntax Bizə tələb etmək niyyətindədir. Boolean ifadə, kimi bir şey sx az y daha y çox və ya x az, və z az y. Bu bir az bir şey baxmaq olacaq Bu kimi, yalnız parantez ilə kimi yaxşı tədbir üçün riyaziyyat yalnız təmin edən əməliyyatlar üçün biz niyyətində kimi. İndi şərait. Belə ki, y az x, demək əgər x az y daha x y daha böyük başqa əgər, başqa, x y daha çox demək məntiqi, x y bərabər olmalıdır. Belə ki, həyata bilər Not bu kimi bir şey, və ya həyata bilər Bu sintaksis bu. Və yenə, qıvrım aşırma cür var puzzle kimi bizə eyni forma verilməsi ədəd, lakin sintaksis, indi bəlkə bəzi nümunələri izləmək üçün başlayır. Belə ki, nə bu bizi burada verir? Belə ki, biz geri sonra bizim əsas proqram istəyirik. Həqiqətən Gəlin, indi, bu bir şey yoxdur. Belə ki, bu da ilk biz kəskin daxildir görürük xətti, standart I / O, dot h, və sonra bəzi qəribə bucaq aşağıda mötərizədə. int əsas etibarsız və sonra printf Salam dünya. Belə ki, yalnız bir addım. Əvvəl proqramlaşdırılmış heç kimsə, ən azı bu xətləri biri izah edir. Bəlkə bəzi istifadə Ötən həftənin jargon. Printf məsələn, nədir? Bəli. Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Bu funksiya, və ya bir bəyanat var, Keçən həftə terminologiya edir. Və bir hərəkət var ki, bir şey bunu. İndi bu funksiyası, və ya bu bəyanat yoxdur Bu giriş bir növ almaq üçün görünür? Və nə mənada yoxdur əgər, daxil etmək görünür? Input, mən nə deməkdir? Bəli. Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Belə ki, bir neçə puzzle ədəd Scratch burada onu parametrize bilər. Siz təkrar deyə bilər təkrar neçə dəfə blok, belə ki, bir giriş idi növ və yalnız Not kimi bir az ağ tutucu idi Siz yazın ki, sayı, belə ki, biz bu istifadə etmək mətn dünya parantez bizə dairəvi forma vermək hansı biz daxil plug bilər. Bütün sonra, bir neçə on il əvvəl zaman C adlanan bu dil, heç bir icad edilmişdir , bu, bizim biri gözlənilən bu bir neçə il sonra, biz istədiyiniz salam deyir ki, bir funksiyası istəyirəm. Sağ? Bir var idi, əgər gözəl olardı puzzle parça, və ya açar sözlər, ki, salam deyirlər sözün yalnız salam deyir. Amma biz lazım deyil. Biz çox aşağı bir şey ola bilər ümumi çap kimi səviyyəsi, daxil edir komanda, biz istədiyiniz nə və izləri. Belə ki, model artıq qeyd ki, ortaya başlayacaq. Open paren, yaxın paren edir yəqin giriş əhatə, və sonra mən ikiqat görmək də bitir verir. Qəribə backslash hələ də var n, lakin ümid indi ən azı görüntüləmək başlaya bilərsiniz printf daxil bir formada edir. Kimi istifadəçi dostu deyil Danışıq, lakin bu, yalnız var kimi bəzi dəyəri takıldığından olan. Bütün hüquqlar, indi həqiqətən edək bu bir şey yoxdur. Belə ki, bəzi bilirik bilər əvvəl sinif shopped olan, Dostları ilə söhbət ki, bir çox illər üçün Biz bir şey adlı istifadə CS50 cihaz. Bu texnologiya izah bir müddət idi virtual maşın, adlı proqram bir parça ki, sələfləri off download olardı Pulsuz üçün kurs haqqinda. Onlar həmçinin bir pulsuz parça download olardı bir hypervisor deyilən proqram, VMware kimi deyilən bir şey, VirtualBox, və ya hər hansı bir sayı və ya digər alətlər, və Mac və ya PC onların və ya hər hansı kompüter keçən il idi və il keçmiş, onlar bir icon basın ikiqat olardı Bu proqram çalıştırmak üçün hypervisor çağırıb. Və sonra proqram daxilində Onlar CS50 cihaz açmaq olardı. Və təsiri idi olub sizin bir sələfi Mac OS və ya çalışan Windows, o, sonra sonradan yeni bir pəncərə idi onların ekran CS50 mühit çalışır. Belə ki, bir virtual maşın bir run imkan verir başqa daxilində əməliyyat sistemi, və biz nə dəqiq var. Təbii ki, biz ən ərzində adlı əməliyyat sistemi istifadə Linux, xüsusi Ubuntu Linux və bu il keçmişdə çox gözəl bir yoludur Əlbəttə əmin ki, hər kəs edilməsi yalnız eyni mühiti var idi. Və hər cür istifadə edə bilərsiniz həqiqətən istədiyiniz kompüter. Downsides arasında, baxmayaraq ki, idi ki, iki qiqabayt kimi idi bu şey download. Bu mütləq də super iş deyil onun kompüter insanlar bəlkə yalnız bir konsert idi və ya RAM, və ya CPU sürəti çox GHz, və bu il üçün Bu və digər səbəblərə, biz keçid edilmişdir Bu ətraf mühitə. olan qondarma CS50 IDE, açıq mənbə proqram əsasında, və dəstək platform şirkət Cloud9 adlı ki, Avropada dəstəkləyir Bizə mahiyyətcə üçün imkan verir ki, eyni mühit kimi il keçmiş, lakin qondarma bulud. Belə ki, bulud nədir? Siz yəqin ki, tıklayan sonra Mac və ya PC-də icon. Cloud nədir? Evet? Bir az louder. Bəli. Bu kompüter yalnız bir dəstə var başqa mağaza məlumat və run ki, proqram və s. Belə ki, yalnız söz de həqiqətən var [izah jure? Nəticələri?] başqa yerdə yaşamaq kompüter. Siz ki, özünüzü, mütləq malik deyil. Belə ki, zaman data, və ya proqramları, bulud var Bu yalnız kimsə deməkdir başqa başqa kompüter, və, çox güman ki, sizin fiziki laptop və ya masa üstü. Və belə ki, CS50 IDE indi nə var. Bundan sonra müəyyən bir gedəcəyəm Sizə təqdim edəcək URL ki, problem bu, 1 dəst həftə sonra, sonra, giriş edəcək bu mühit verir. Və çox kimi Scratch idi cəlb neçə müxtəlif panellər, belə CS50 IDE dəqiq ki, yoxdur. Burada yuxarı sol tərəfində, sen Bir tanış fayl browser görmək olacaq. Faylları hər hansı bir Belə ki, Bu ətraf mühitə qoymaq yalnız orada sadalanan olunur. Faylları və qovluqları. Burada üst, Bir yer görmək olacaq burada həqiqətən, sizin kodu yaza bilərsiniz. Əvvəlcə C, sonra da PHP və JavaScript müddəti və bəlkə final üçün layihələr, Ruby və ya Java və ya Python və ya dillərdə hər hansı sayı bu mühitdə dəstəklənir. Bu, bütün bağlı deyil xüsusi CS50. Və sonra burada alt küncündə, xüsusilə daha rahat olanlar üçün, Əgər bir şey var bir terminal pəncərə çağırıb. Bu terminal pəncərə verir Əgər hər hansı bir əmri yerinə yetirmək üçün ki, Bu bulud mühitdə istəyirik. Bu yüklemek üçün imkan verir heç bir əlavə proqram Siz qondarma çünki istəyirəm ki, kök, və ya administrator güzəştlər. Belə ki, başqa sözlə, hətta bu olsa nəticədə bulud ev sahibliyi edir, və biz, baxmayaraq ki, müəyyən dərəcədə bu sadələşdirilmiş ismarıcları, sanki tətbiqi, Dan Armendariz və Dino sayəsində, və artıq CS50 komanda Dan Bradley çox ay keçmiş, bir az rahat bir çox gizlədir rejimi ilkin confusing distractions. Orada mövcud olan hər şey Tipik kompüter sistemi təmsil Siz real dünyada istifadə edə bilər ki,. Belə ki, nə bu deməkdir, və biz, həqiqətən, bu nə edə bilər? Nin həqiqətən bir proqram bir peek almaq edək. Beləliklə, mən açmaq üçün gedirəm Burada faktiki ətraf mühit, olan yalnız bizim Chrome deyil Firefox ola bilər browser, Internet Explorer ola bilər, və ya digər browser həmçinin. Tam an üçün burada nümayiş olunur. Mən, həqiqətən, sataşmaq istəyirəm başqa bu proqram nə idi. Belə ki, qədər böyüdərək, bir nəzər edək Mən nə, Yuxarı və necə burada var. Belə ki, burada dəqiq o var kod eyni satır. Belə ki, bu bəyanat, Siz qeyd kimi. salam deyir fəaliyyət göstərir. qıvrım aşırma haqqında line dörd line altı, zərfdə ehtimalla cür ki, xətti birləşmək mənim proqram özü ilə. Şübhəsiz ki, bu söz əsas, ki, xətti üç up var Siz ekvivalent kimi hesab edə bilər yaşıl bayraq tıklandığında ki, Not blok. Ki, biz burada bütün var, belə ki, zaman yaşıl bayraq, çap tıklayan, və ya demək Salam dünya. Amma, indi, bir tahmin almaq imkan nə Bu ilk, daha gizli line edir. Sharp, açıq bucaqlı daxildir bracket, standart I / O dot h, bucaqlı bracket bağlayın. Bəlkə nə edir ki, xüsusilə proqramlaşdırılmış olsanız bəzi digər dildə əvvəl. Evet? Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Məhz. Belə ki, bu bir daxil verir kitabxana, belə ki, funksiyaları, danışmaq. Və funksiyaları bir kitabxana funksiyaları ki, başqası ya yaxınlarda yazdı və ya uzun əvvəl, ki, tam yenidən kəşf yoxdur. Məsələn, biz deyil 2015-ci ildə, bilmək lazımdır, ki, qoyur kod yazmaq üçün necə Mənim ekranda xarakter. Başqasının ki, fiqurlu etmişdir printf funksiyası ilə Mən mücərrəd düzmək bilər ki, üz ki, və ya qat üst onun indeksi, və indi yalnız almaq hər hansı bir proqram yazmaq ki, verilən ekran bir şey çap edə bilərsiniz. Belə ki, addım bir var bu ilk line Sözdə header fayl daxildir standart kitabxana üçün. Belə ki, dil çox biz indi çalışırıq standart kitabxana var idi funksiyaları çox. Printf onlardan biri və ki, kodu ilk line deməkdir mənə erişim ki, həmin funksiyaları, mən ki, tam yenidən kəşf yoxdur. İndi alt pəncərə gedək və mən əvvəl idi tam olaraq nə. Bir an əvvəl mən idi kod vasitəsilə whizzing, ilk dəfə yazaraq, Mən çox tez çap, salam etmək. Bütün haqqında siz tahmin ki, nə idi? Mən nə idi? Evet? Ağla heç. Bu OK. Bəli. Auditoriya: tərtib. DAVID J. MALAN: Bəli. Bu, sadəcə onu tərtib edilmişdir. Sağ? Hətta bu tamamilə tanımadığı əgər sizə, bu kimi olduqca İngilis var. Əlbəttə ki, adet sıfır deyil və olanları, belə ki, hələ də ki, qondarma vasitəsilə run lazımdır Proqram bir compiler ki, olacaq giriş kimi onu və çıxış istehsal. Və ən azı, indi üçün, Bu Linux ətraf mühit, lakin bu, şərt deyil biz başlamaq lazımdır yalnız burada bu, ümumiyyətlə ilə qarşılıqlı bu kimi kompüter sistemləri qondarma command line tərəfindən. Bir yanıb-sönən ilə belə tez və klaviatura, və çox siçan deyil, qədər pəncərələr və nişanlar və menyular, daha hər şey mətn var. Bu ilk hiss olsa da nəzər, bəlkə də, geri bir addım kimi, bu, həqiqətən çox daha çox güclü və ifadəli bir şəkildə bir kompüter nəzarət xüsusilə sizin kimi, özünüzü daha olmaq az rahat. Bu bir çox imkan olacaq yalnız nə Microsoft daha çox şeylər və ya Apple ilə imkan verir onların qrafik əməliyyat sistemi. Mən indi daxil edin hit zaman heç bir şey bu zaman olur yəqin, çünki Proqram salam günə qədər. Və komanda nə idi Hesab edirəm ki, sonra qaçdı? Dot salam və salam dünya doğramaq. İndi bir addım ataq yalnız bir an üçün geri. Bu salam yalnız bir var ki, çıxır bir proqram tərtib sadələşdirilmiş yol. Yalnız təqdim edək jargon bir parça, lakin sonra uzaqlaşmaq bu deyil, çünki, onu bütün maraqlı bugünkü məqsədləri üçün. biz istifadə başlamaq olacaq compiler C dili üçün, cingilti adlanır. Və bu, yalnız run ki, bir proqram var kimi biz command line etdi. Və mən istəyirsinizsə bir proqram tərtib ki, mən salam dot adlı bir fayl yazılı c, mən sözün yalnız cingilti salam c yazın daxil edin. funny şey, tarixi səbəblərə görə, Mən daxil yoxsa Proqramın adı Mən əgər mən çıxış etmək istəyirəm ki, o adet sıfır üçün bir fayl adı daxil və olanları çox qəribə Konvensiyanın qəbul edildi il əvvəl bir cür hiss harada zaman yaxşı cavab, yaxşı yalnız özbaşına zəng edək ilk proqram bir nöqtə həyata tərtib edir. A əlifbası ilə ilk gəlir. Out, çıxış var. Beləliklə, biz proqram zəng edəcək bir dot həyata ismarıcları. Mən istəyirəm, çünki və gözəl edir əsasında bu mətn proqram run ətraf mühit, yalnız yazın dot bir nöqtə doğramaq daxil edin. Və bu tam olaraq əvvəl çalışır. Belə ki, real sürətli görmək bildirin. Mən geri Belə ki, mənim CS50 IDE mənbə kodu, və mən əvəzinə bunu, cingilti salam yatağı c daxil edin bildiriş heç bir şey görünür, lakin demək olar ki həmişə Bu Linux ətraf mühit, pis bir şey ki, baş görünür zaman yaxşı bir şey həqiqətən baş deməkdir. Əgər bir səhv görmürəm əgər mesaj, bütün yəqin ki, yaxşı. İndi əgər Şübhəsiz ki, dot dot çizgi həyata Mən eyni proqram run sonra, daxil edin. Mən hələ salam proqram var Əvvəllər, çünki həqiqətən, bu çox daha gözəl, yalnız olacaq etmək əvəzinə xatırlayaraq yazın bu incantations əmrləri, lakin edək necə biz Buna baxmayaraq, bu sonra inkişaf edə bilər. Belə ki, bu əmr edir kodu tərtib. Bu çalıştırmak üçün əmr edir bundan sonra tərtib kodu. Nasıl fayl adını daxil edə bilərsiniz? Yaxşı, yalnız təqdim edək jargon daha bir parça. Bu olduğunuzda mətn based mühit, Siz müəyyən etmək istəyirəm olacaq command line dəlilləri adlı şeylər. Hansı deyərək bir xülya yoldur, sətirinə digər sözləri davranış çimdik nə Proqram çalışan edirik. Mən belə xüsusi proqram adı cingilti yazaraq, çalışan, cingilti adlı proqramdır. Belə ki, bu və ya köhnə məktəb cüt tıklayarak ekvivalent Microsoft Word və ya bəzi Proqramın icon. Mən əvəzinə yalnız onun adı yazaraq alıram lakin komanda bu versiyası, Mən dash o yer salam kosmik salam dot c. Heç vaxt var, belə ki, hətta əgər əvvəl bu dünya ifa, yalnız bir tahmin almaq nə dash o salam edir? Və ya nə bunu cingilti deyir? Bəli. Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Bu, yalnız olmaq fayl çıxış edir salam əvəzinə bir dot sillier edir. Və həqiqətən, bu cəhd edək. Ilk, mən indi əgər Belə ki, r m Salam, bunu edək. Ki, aradan qaldırılması deyil. Və aradan qaldırılması demək olacaq müntəzəm fayl hello, hansı lazımsız gizli, lakin bu, yalnız deməkdir faylı silmək istəyirsiniz, və bəli üçün y yazın. Siz üst salan olsaydı, qeyd sol, orada up yox idi. Mənə indi cingilti dash o edək, və Mən salam irəli getmək və bunu gidiyorum bütün caps, salam dot c. İndi dot çizgi əgər salam, nə gözləmək olardı? Bəlkə həssas işi var. Bəlkə deyil. Baxaq. Belə fayl və ya qovluğu. Və biz növ ilə istifadə etmək olar yalnız sol üst axtarır. Mən açıq-aydın etdi kimi proqram saxlamaq? Bütün salam caps. Şübhəsiz ki, ki, davam edir bir fərq etmək. Belə ki, indi salam dünya geri edir. İndi bu, bütün gözəl və yaxşı və çox mind-numbing, almaq sort bu aşağı bataqlıqlaşmışdır ətraflı, lakin onların dərk yaxşıdır. Bu getdikcə yazaraq uzun incantations xüsusilə olmaq niyyətində deyil Dünyada fun, belə insanlar , başqa bir proqram icad bir neçə il əvvəl, adlı , ki, sadəcə siz yazın imkan verir, Proqramın adı etmək istəyirik və etmək Bu baxmaq ki, smart deyil Cari qovluq, kataloq aka, və bir fayl varsa salam dot c çağırıb ki, tərtib edəcək fayl salam adlı proqram sizin üçün. Belə ki, bir çox sadə yolu daha sirli əmrləri bunu ki, biz əvvəllər idi. Və biz pre-yapılandırılmış var IDE CS50 bilmək Bu tire o və bir sıra etmək lazımdır ki, digər bayraqları, və ya command line dəlilləri, biz uzun əvvəl görmək lazımdır ki,. Amma indi həqiqətən nə edək daha maraqlı bir şey. Məhz bütün salam dünya yazaraq vaxt ki, bütün çekici deyil. Mənə irəli və dəyişiklik gedək Bu proqram və salam David, demək. İndi burada enmək gedirəm. Mən irəli getmək və salam etmək gedirəm. Və yenə İndi gördükdə siz artıq göstərən Bu ki, əmrləri ardıcıllığı biz pre-yapılandırılmış etdik, çünki bunu bu yol, lakin biz İndi narahat ehtiyac yoxdur nə bu başqa bunu tərtib dot salam, hello dünya doğramaq. Nə olub? Bəli. Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Belə ki, Noobie səhv. Mən bu super incə fərq lakin burada ulduz, nişanı, yalnız onu xilas yoxdur deməkdir, brauzerlərdə və digər proqramlar və bəzən bunu. Belə ki, nəzarət s və ya command s onu saxlamaq lazımdır. Indi mənə irəli gedək və proqram təkrar. Recompiled. Sağ, belə ki, bir çox addım prosesi var. Yox, xüsusilə mürəkkəb lakin heç bir zaman biz, fayl dəyişə biz nəticəsində dəyişdirmək lazımdır adet sıfır və olanları və dot çizgi salam. Wow. Belə ki, bu çox underwhelming var ki, biz yalnız bu çap. Bir şeyi edək indi daha dinamik az. Yaxşı istəyirəm ki, çıxır Scratch, C dəyişənlərin dəstəkləyir. Və əgər siz çıxır ki, mağazalar dəyişən var, biz kimi bir sıra adətən, Scratch ilə etdi lakin bir söz kimi, və ya söz və ya adı, siz dəyişən daxil edə bilərsiniz növü simli olacaq. Beləliklə, biz daha çox görmək lazımdır yalnız bir anda bu, lakin bu C çıxır və kimi dillərdə bir çox, dəyişənlərin çox xüsusi növləri var. Bu, sadəcə, cəbr kimi deyil Bir x, bir y, z almaq və o yalnız həmişə bir proqramlaşdırma dili nömrələri, Əgər siz nömrələri saxlaya bilərsiniz fərdi simvol saxlamaq, Siz ola bilər, bütün sözlər saxlamaq bilər bütün şəkillər, bütün səs faylları saxlamaq və s. Beləliklə, biz nə müəyyən etmək üçün lazımdır Bizim dəyişən növüdür. Və bu Konvensiyanın I zəng etmək üçün gedirəm mənim Bu qısa yalnız çünki dəyişən s, və s simli üçün dayanır. Və sonra mən saxlamaq üçün gedirəm Bu dəyişən daxilində, yalnız Scratch ilə kimi Mən set blok istifadə edərkən, Mən istifadə gedirəm C təyin operator, olan gözəl kifayət qədər bərabərdir imza, lakin bərabər işarəsi bu yoxdur. Bu hüququ daxil bir şey hərəkət İfadə sol tərəfdən. Belə ki, nə, aydın olmaq line beş, mən bir dəyişən elan etdik edir. Mənə ver, kompüter bildirib etdik bir dəyişən üçün yaddaş, bu s zəng Mən gedirəm ki, əvvəlcədən bilmək bu bir simli qoyulması olunacaq. Və bir string yalnız bir deyil simvol ardıcıllığı. Bu söz və ya söz və ya paraqraf var, lakin bu simvol bir ardıcıllıqla var. Bu ədəd deyil. Nə string mən olacaq am ki, dəyişən qoyaraq? Bəli, yəqin sitat dırnağı bağlamaq, "Hannah". İndi ortaya çıxan edir model bilərsiniz. Bir sol ifadə var. Bir sağ ifadə var, bərabər işarəsi ilə ayrılır. Və yalnız əgər bir tahmin almaq yenə tanımadığı, nöqtəli vergül nə ilə. Bu ehtimalla bizim üçün nə işi var? Evet? Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Bu, yalnız xətt xitam oldu. Sağ? kompüter açıq olmaq istəyirəm sanki, nə bildirib. Peanut yağ kimi və jelly sendviç Məsələn, belirttiğiniz yoxsa dəqiq niyyətində nə, Bu hökm və ya səhv tərk edilə bilər. nöqtəli vergül deməkdir bu komanda üçün var. Bu super dəqiq olan, və bu çox asan bir şey off tərk etmək. Belə ki, indi bu proqram görünmür I qədər fərqli hər hansı bir davranır edilə daha dinamik etmək. Belə ki, daha çox çətin öz bilər ad, mənə bir tutucu dəyər qoymaq bildirin. Və bu çıxır ki, mən bu bilirik sənədləri oxumaq edərək, ki, il funksiyası istifadə printf dinamik üçün nəzərdə tutulmuşdur. Siz əvvəlcədən bilmək yoxdur siz onu qoymaq istəyirəm nə söz. Siz əvəzinə ola bilər faiz s kimi tutucu olan demək gedir kompüter, burada bir simli qoydu. Hansı string biz orada qoymaq istəyirsiniz? Bu arasında çıxır ki, xatırlayıram parantez, ayırmaq bir funksiyası giriş, varsa vergül, burada şeyi ayrılmış siyahısı biz, həqiqətən, birdən çox keçmək funksiyaya giriş. Belə ki, yalnız bir ödəniş kimi blokları, siz bilər onlarla oynamışdır layihələr hələ və ya bütün, bəzi Scratch blokları iki giriş var. İki ağ qutuları bilərsiniz nömrələri və ya söz yazın. Belə ki, C kimi funksiyaları var etmək iki giriş bilər printf. Və yenə bu vergül onları ayıran olunur. Belə ki, ingilis, yenə olsa Siz əvvəl proqramlaşdırılmış heç etdik ki, məntiq printf bir funksiyası ilə, iki giriş, edir biri tutucu, nə ümid edirəm printf bu giriş ilə gedir? Bu salam demək olacaq Hannah, inşallah. Belə ki, biz onu saxlamaq lazımdır bunu. Mən kiçiltmək gedirəm. Mən burada geri enmək gedirəm və salam daxil etmək, deyirlər. Oh. Bir şey yanlış və həqiqətən Bu olduqca böyük deyil. Mən kodu altı xətləri var və səhvlərin 12 xətləri kimi. Belə ki, bu gözləyirik. Belə ki, nə burada olub? Belə ki, burada thumb ən yaxşı qayda, Siz başlanğıc etdiyiniz xüsusilə, ilə çevirirsən almaq deyil altındakı stuff. Əslində, mən çox qəsdən yalnız kaydırılmış çox tez-tez, bir kompüter, çünki bir cihaz bütün parlaq. Bu qarışıq almaq olacaq. Bu bir şey görür ki, əgər Bu, dərk etmir digər səhv bilər kimi yanlış kodu xətləri, baxmayaraq ki, onlar mükəmməl gözəl istəyirik. Belə ki, həmişə işləmək istəyirəm səhvlər vasitəsilə aşağı edir. Və admittedly bu Hal-hazırda super gizli. Error, qeydiyyatdan kənar xarici istifadə identifikator simli. Mən standart demək mi? Xeyr, mən simli idi. Və bəlkə bir typo var, işarə oldu. Sort kimi, yazım yoxlanılması a çox geeky yol, lakin burada səbəb, və bu bilirsiniz yalnız təcrübə edir ki, simli çıxır ki, Əslində C. mövcud deyil, C xüsusilə köhnə dilidir, və bu, çox aşağı səviyyədə var və funksiyalar bir çox deyil Siz qədər artıb bilər ki, varsa, əslində, proqramlaşdırılmış ilə Java, bəzi kimi, lakin siz yeni şeylər öyrətmək olar. And olsun ki, biz bu CS50 etmiş, hətta dövr sonuna qədər olsa da, Bu təlim təkərlər bütün off atılmışdır ki, bu da nə həftə ilk bir neçə ilkin biz də var Siz CS50 dot h daxildir. Hansı bir mövzu fayl. Gələcəkdə ki, daha çox. Bu funksiyaları olan bir fayl var ki, biz sizin üçün yazılmış. Və bu funksiyaları arasında daxil almaq üçün funksiyaları istifadəçi strings kimi, və nömrələri, və real nömrələri, və daha çox. Lakin bu da bir neçə qısa malikdir. Bu data növü kimi bir Boolean müəyyən edir. C doğru və ya yalan yoxdur. Amma biz bu anlayışı verə bilər doğru və ya bu kitabxana yolu ilə yalan. Və bu da bir string yoxdur biz bu xətti daxil qədər inşa edilmişdir. Belə ki, kodu bu xətt deyir compiler, hey, cingilti baxmaq Bütövlükdə bu faylı kodu dəstə ki, CS50 ki, yazıb Bu faylı istifadə edərək, hər kəs verilən edə bilər xüsusiyyətləri onlar əlavə etdik. Belə ki, indi mənə irəli gedək və ekran sil, və maraqlı əgər mən yalnız nəzarət deyirəm l hər zaman, ekran sil və ya aydın edəbilərsiniz. Mən indi irəli getmək üçün gedirəm və növü salam etmək, və bütün yaxşı. Hələ bir gizli çıxış, lakin Bu səhv mesajı deyil. Mən dot əgər indi salam doğramaq və kimi kənara, dot çizgi ən tanımadığı edir. Bu, sadəcə, dot vasitələri deməkdir cari kataloq. Əgər istifadə etdiyiniz Belə ki DOS və ya Linux və ya Unix Siz bir şey ola bilər cd dot dot kimi dot dot geri getmək deməkdir vaxt, və ya geri getmək, və ya daha yüksək Sizin kataloq. Dot yalnız baxmaq deməkdir cari kataloq. Mən burada olan salam istəyirəm. Şübhəsiz ki, indi Hannah salam deyir. Mən yenidən dəyişdirmək əgər Maria, derleyeceğiz Bu salam, dot çizgi edəcək salam, proqram dəyişən saxlayır. Amma bu hələ deyil olduqca axmaq proqramı. Bu proqram gəmi istəyirsinizsə, və ya bir dost vermək, və ya Maria ya Hannah vermək ki, məsələ üçün, ki, gözəl. Mən onların hər ikisi üçün bunu edə bilərsiniz lakin bu, heç vaxt dinamik olacaq. Bu tərtib bir dəfə onlar dəyişə bilməz aşağı o adet sıfır və olanları. Beləliklə, biz asan bir şey nə? Nə, əgər yerinə hard-kodlaşdırma Proqramın bu şəxsin adı daxil, biz yalnız nə almaq tələb string? Belə ki, başqa sözlə, mənə bunu bildirin. Bu proqram derleyeceğiz gedirəm. Və mənə indi altındakı zoom imkan. Salam dot çizgi salam olun. İndi heç bir şey baş verir. Biz tez könüllü əldə edə bilərsiniz bir şey baş etmək üçün necə? Qədər gəlib. Sizin adınız nədir? PANCHO: Pancho. DAVID J. MALAN: Pacho? Qədər gəlib. Siz burada almaq, bu çox underwhelming olacaq, lakin daha maraqlı məndən yazaraq. Siz irəli getmək və yazın istəyirsinizsə adı, Mən yalnız sizin üçün bu proqram etmişdir. Sadəcə adını yazın. Daxil edin. Wonderful. Bütün hüquqlar, çox təşəkkür edirəm. PANCHO: Çox təşəkkür edirəm. DAVID J. MALAN: OK. [Alqış] Bu, çox mehriban idi. Burada gedin. Biz nə idi? Belə ki, biz nəhayət, ən azı, Bu proqram dinamik etmişdir. İndi əlbəttə hələ də var dizayn underwhelming tərəfindən, lakin biz nəhayət imkanı var artıq çox əvvəlcədən kod yazmaq üçün printf müəllifləri kimi, və sonra dinamik biz yığımı uyğunlaşdırmaq əlli, ya proqramçı tərəfindən, və ya insan tərəfindən olan həqiqətən proqramı ilə əlaqə. Belə ki, cəhd edin, indi həqiqətən edək bir neçə digər inşa etmək biz proqramları edə bilməz, əgər bax özlərini daha mürəkkəb. Belə ki, irəli və əvəzinə gedək sıfırdan bu bir yazı, Mən bu gün getmək üçün gedirəm mənbə kodu, və bütün bu Əlbəttə üzrə mövcuddur veb və siz sürükleyin və açılır Öz ətraf mühitə problem bir dəfə cümə gəlib set 1 verir təlimat, və ya ola bilər command line kimi bunu yaxşı, p gəlmək lakin daha 1 seçin. Bu proqram var nə edək burada gürzə dot c çağırıb. İndi artıq şərh etdik Bu, lakin yeni nə var? İlk baxışdan, nə line kod tamamilə yeni var? Yəqin ki, deyil əsaslı İndi tanımadığı. Auditoriya: [işitilemez] DAVID J. MALAN: Bəli, belə int x n almaq bərabərdir. Biz bu hər hansı bir görməmişəm əvvəl, lakin int yəqin ki, nə cür rəmzi dəyişən, [? olan?] bir tam. Belə ki, tam üçün int. Bu, yalnız daha olan oldu qısa. x yalnız ixtiyari var. x və y və z hələ də ədəd üçün olduqca ağlabatan, lakin ümumiyyətlə biz bir söz istifadə edəcəyik Bizim proqramlar daha mürəkkəb almaq. Əlbəttə, int almaq, get simli kimi çox, yəqin ki, almaq üçün gedir istifadəçi bir int, sonra biz olacaq y ilə eyni şey. Və yəqin ki, baxmayaraq ki, bu son xətt, 24, daha mürəkkəb görünür bu məbləği demək olacaq və bu başqa bir şey deyil. Və bildiriş faiz i yəqin ki, nə işarə? Hansı rolu faiz yoxdur i yəqin xidmət? Bu, sadəcə placeholders var. Sağ? Yüzdə s, simli idi faiz i tam üçün. Faiz f olmalıdır olacaq point dəyər üzən üçün hansı bir bu kəsir yalnız bir sayı. Başqa sözlə, bir real sayı. Belə ki, həqiqətən bu tərtib edək real sürətli proqram və gürzə edə bilərəm. Whoops. Yaxşı imkanı. Belə ki, bütün bu dəfə, burada mənim Hə Bu haqq-hesab jharvard olunur adı. Mən aka, CS50 IDE IDE50 edirəm. İndi burada mavi, bir qeyd, lakin Mən harada ətraf mühit, edir. Və əslində, mən üst qədər zoom əgər Burada mən IDE50 olduğunu fark Mən əgər cür, bu sözü çox yan iş baş açın. Bir sözlə, əslində Mən tilde çizgi iş görən deyiləm o deməkdir ki, bu mətn based komanda ətraf mühit, Mən mətni ekvivalent am Bu burada qovluq qrafik. Beləliklə, mən dot çizgi nə zaman gürzə, heç qayda söyləyərək hədəf gürzə stop etmək. Mən o deməkdir ki, nə bilmirəm lakin bu nədənsə pis. Belə fayl və ya qovluq daha aydındır. Harada sonra? Mən tıklayan olduğu əsasında əvvəllər faylı açmaq üçün. Harada ola bilər? Bu mənbə yəqin bir w, Çərşənbə, Mən, həqiqətən, bunu edə bilərsiniz Hesab edirəm ki, açmaq əgər. Orada gürzə dot c, lakin Bu mətn-based mühit, yenə super açıq olmalıdır. Mən daxil rehberler dəyişdirmək istəyirsinizsə mənbə bir Çərşənbə, mən yazın lazımdır, cd space mənbə bir Çərşənbə indi daxil edin və mənim tez dəyişikliklər Mənə vizual replika verir ki, Mən başqa yerdə, həqiqətən, Ben Mənim mühitdə, lakin indi mən edə bilərəm bilər gürzə, bu iş görünür, dot mənə tam vermək, gürzə doğramaq. Biri. Iki. bir və iki məbləği üç edir. Amma əməkdaşlıq yoxsa, nin int yoxdur almaq nə görmək edək. Mənə tam verin. No. Təkrar edin. OK. Fine. 50. 50. Bütün hüquqlar. Belə ki, nəhayət əməkdaşlıq edir. Və bəzi var funksionallıq ki, bu funksiyaları Sizin üçün inşa ola bilər. Həyata keçirilməsi daxilində Belə ki, bir int, nə proqramlaşdırma almaq yəqin ki, son həftə tikintisi yeniden bu davranış orada məcbur, yeniden, yeniden? Bəli, yəqin ki, var loop bir növ. Bu syntactically baxmaq olacaq Not blokları fərqli, lakin həqiqətən var nə faylı içərisində var. Və bir neçə həftə vaxt alacağıq həqiqətən CS50 kitabxana baxmaq kimi nə daxili, lakin var məhz tətbiq bir loop. Bir silly az oynamaq edək Burada bu faylı oyun. Vəziyyəti sıfır dot c. Biz yalnız adətən olacaq sıfır hesablanması başlamaq. Mən keçmiş scrolling saxlamaq üst məhsullarının bəzi. Blue burada, bütün demarcated Bu ulduz və slashes ki, proqram olan sizin əvvəl ki nədir? Niyə biz artıq atlama saxlayırsınız? Nə? Auditoriya: Bu Şərh var. DAVID J. MALAN: Bəli. Bu yalnız bir comment var. Bu insanlar üçün bir comment oxumaq, bizim halda ki, Faylın adı bizə deyir nə onu yazan, və bu nə belə ki, yoxdur ki, kod vasitəsilə oxumaq üçün Bu fayl haqqında nə bilmək üçün. Bu, yalnız bir təsviri, lakin funksional bu yersiz var. Mən hətta onu silə bilərsiniz mənim fayl və heç bir təsiri var. şirəli xətləri bunlar burada iki ilk indi. int əsas etibarsız bərabərdir yaşıl bayrağı tıklayan bizim zaman, belə ki, biz ola tərk etmək olacaq bu gün üçün, və biz geri gəlmək lazımdır, nəhayət, kimi nə int və etibarsız, artıq, lakin I etdiyiniz nə hiss burada da, siz də edə bilərsiniz Siz line bir varsa varsa, şərh siz bölüşmək istəyirəm fikir kod xüsusi xətti haqqında, C konqres çizgi etmək doğramaq, və sonra bir neçə qısa sözləri, Biz tam cümlə, ümumiyyətlə bir maddə, ki, yalnız sizin üçün izah, və ya TF və ya digər oxucu və ya həmkarları, Sizin code nə edir. Belə ki, daha baxmaq daha və bu xətləri nəticə çıxarmaq doqquz və 10 nə Bu xətt səkkiz, bunu Mən yalnız bir comment vermək bir tam üçün istifadəçi xahiş, sonra çox ağır düşünmək yoxdur nə haqqında xətləri doqquz və 10 var. Mən yalnız nə olduğunu bilirik kollektiv onlar edirik. Necə? Yaxşı, burada tez var. Burada int əldə var. Və əvvəlki əsasında davranış, bu get int kimi görünür ki, əmin etmək üçün kifayət qədər ağıllı deyil insan əməkdaşlıq edir və verir tam. Amma indi biz görürük. Bu Not xatırladır. Mən deyiləm ki, iddia edirəm istifadəçi daxil analiz, lakin bir qədər qeyri-dəqiq. Və yəqin C bu necə Biz başqa əgər ifadə filialı, bir yol çəngəl, amma qədər qeyri-dəqiq demək. Bu proqram səhv nədir? Haqqında daha geri? Bəli. Auditoriya: [işitilemez] sıfır. DAVID J. MALAN: Bəli. Mən sıfır yazın əgər Belə ki, hesab edək məhz halda, və ya künc halda, Siz əgər. Mən sıfır yazın əgər belə hansı blokları yəqin onu qapmaq üçün gedir? və ya başqa? başqa, və demək olacaq, Bir mənfi seçilmiş. Şübhəsiz ki, sıfır ehtimal deyil müsbət və ya mənfi olması, və belə ki, səhvən olardı. Ki, bir səhv olardı. Belə ki, necə biz bu düzeltmek bilər? Əvvəl proqramlaşdırılmış heç kimsə? Siz want-- etmək Auditoriya: [işitilemez] DAVID J. MALAN: retracting? Auditoriya: [işitilemez] DAVID J. MALAN: Oh, siz var? Əvvəl proqramlaşdırılmış heç vaxt kimsə. Sizin əl cəhd etmək istəyirsiniz Bu, qırmızı köynək? Qədər gəlib. Əgər ağla deyil əgər Bəli Oh, qədər gəlib. Belə ki, proqramlaşdırılmış edərək, heç vaxt əvvəl, sizin adınız nədir? LAUREN: Lauren. DAVID J. MALAN: Lauren, bütün sağ. Belə ki, bizim üçün bu səhv düzeltmek. Siz ehtimalla, C görmədim etdik, və yəqin ki, başqa heç bir dil. Belə ki, bizim üçün bu proqramı düzeltmek. Ya cavab Nice. Heç bir təzyiq. LAUREN: Bəli. DAVID J. MALAN: Ancaq yenə də, bu Gamble, plan üzrə gedir paket burada olacaq başlamaq üçün, yalnız yenidən ola nümunələri qeyd etmək və mövcud sintaksis nəticə çıxarmaq Siz ifadə edə bilər necə başqa özünüz heç bir cinas üçün nəzərdə bəzi əlavə ssenari ələ. Belə ki, biz əgər başqa deyərək edirik. printf, yaxşı. Və CS50 ilə qeyd IDE və frankly-- IDE İnteqrasiya üçün dayanır Development Environment. Bu deyərək bir xülya yolu proqram yardım olan bir proqramdır. Bu kimi istifadəçi dostu şeyi edir bir mötərizə yazın zaman, Bu avtomatik olaraq digər verir. prezumpsiyası sen ki, olan nəhayət ki, yazın istəyirəm olacaq, və bu da quotes ilə bunu edir. Belə ki, xətt 23 istəyirəm. Orada yolu 99%. Biri bir ucu ilə zəng etmək istəyirsiniz? Mən tamaşaçılar nöqtəli vergül eşitdim. Yaxşı. Belə ki, tamamlayır. Və indi mən bir az var xətti 21 consternation. Necə ki, biz bu ifadə etmək istəyirsiniz? Hansı sual, biz istəyirik Sizcə, xahiş? Belə ki, əvvəllər biz sual, n sıfırdan böyük olarsa, bunu. Else, bunu. Beləliklə, biz bir seçmək lazımdır sual soruşmaq. Auditoriya: [işitilemez] DAVID J. MALAN: Yaxşı. N sıfır bərabərdir Belə ki. Əla. Belə ki, burada fasilə edək. Bu sinə gərərək üçün çox təşəkkür edirik. Mənə bir az haqlı verək bəlkə orada stress top. Beləliklə, biz demək olar ki, orada istəyirik. Əslində, Lauren, əgər deyil mind, mənə burada çimdik edək yalnız belə uyğun olmaq biz Not gördüm nə, nə Mən xətləri ilə etmək istəyirəm nə 21 və 24, yalnız daha əsaslı biz Not bunu necə, bəlkə? Auditoriya: onu keçin. DAVID J. MALAN: Bəli, onu hərəkət. Belə ki, başqa şəraiti, üçüncü və ya dördüncü və ya beşinci, ya final filialı, Həqiqətən sonra gəlməlidir, ki, yalnız Konvensiya tərəfindən var yalnız siz, çünki. Mən bu çimdik etmək lazımdır. Mən qoymaq lazımdır burada geri buruq brace. İndi, bu proqram tərtib edəcək. Biz yaxın istəyirik, ancaq var bir çox, çox incə bug. Nə görmək edək. Birincisi, mənə irəli getmək və kiçiltmək edək. Mən irəli getmək üçün gedirəm və vəziyyəti sıfır etmək yazın. Oh, mən yalan. İndi compiler edir həqiqətən olduqca ağıllı. Mən, həqiqətən, başa düşmürəm Bu səhv mesaj var. Bir tapşırıq nəticəsində istifadə parantez bir şərt kimi, yəqin pis. Amma bu nə deməkdir? Bəli, yenə nümunələri axtarır biz əvvəl gördüm ki, kodu həqiqətən bunu line 17 nə, hətta Lauren qədər nəzərdə baxmayaraq başqa? Bəli. Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Belə ki, yəqin, bərabər işarəsi xatırlayıram biz əvvəl istifadə etdiyiniz kimi deyil, bərabərdir. Sağdan Onun tapşırıq sol. Belə ki, hazırda 17 xətt bir vəziyyətdir və bu mötərizə içərisində kodunu icra, lakin code icra edərkən, nə sıfır dəyəri baş verir? Nə n dəyəri baş verir? Sıfır olmaq. N sıfır çevrilir Belə ki, və yenə keçən həftə kimi, biz ümumiyyətlə ki, sıfır demək yalan və bir həqiqətdir və ya yes biridir və heç bir sıfır. Belə ki, doğru və yalan, bir və 0. Xətt 17 kimi n olmuşdur əgər dəyər 0 verilən sıfır doğrudur? No. Müəyyən sıfır yalan. Yəni biz istəyirik konvensiya var irəli hərəkət suvaşmaq gedir. Belə ki, olacaq xətləri 18, 19 və 20 Heç məntiqi, indi tətbiq? Onlar bilməz. Beləliklə, biz sual lakin kifayət qədər dəqiq, və əgər bu bilmək deyil Siz C həll onu gördüm ifadə etmək istəyirəm zaman bərabərlik, siz bərabərdir deyirlər. Belə ki, bərabər işarəsi artıq istifadə edilmişdir tapşırığı ilə, sağ sol. Bərabər deməkdir bərabərdir bərabərdir. Və həqiqətən fikrinizi istəyirsinizsə JavaScript və PHP, əyilmiş olmalıdır, var bərabərdir, bərabər olan cəmi başqa bir şey demək, lakin biz uzun əvvəl almaq lazımdır. Belə ki, bu sadə fix, lakin həyata Bu səhv etmək super asan, və sonra təəccüb və mübarizə dəqiqə, bir saat, əgər, niyə mənim kodu deyil Mən niyyətində kimi həyata? Siz demək deyil, çünki bu Bu dəqiq demək nə. Belə ki, demək olar ki, oldu mükəmməl, bu və böyük idi Biz bu iki kiçik arasında stumbled ki, şeylər, biz onları düzeltmek indi, çünki Mən vəziyyəti sıfır edə bilərəm dot, vəziyyəti sıfır doğramaq Mən tam edin istərdim. Baxaq. No. Bunu mənə məcbur olacaq. Belə ki, 42. Mən müsbət seçilmiş. Belə ki, indi necə sübut edə doğru bu proqram? Bir riyaziyyatçı değilseniz, siz bilməzsiniz həqiqətən sınaq və səhv ilə bunu sübut, sağ? Siz yalnız sübut edə Məsələn, lakin ən azı proqramçı kimi biz deyilik İndi sübut etmək üçün cəhd edir Bu, həqiqətən ki, düzgün, amma yəqin ki, olmalıdır Bəzi nümayəndəsi hallarda test. Mən 42 test etdik. Mən 43 test edə bilər. Mən 44 test edə bilər. Test 45. Sağ? Amma bu, həqiqətən uzun müddət edə bilər. Bir daha olacaq nə maraqlı hallarda cəhd? Auditoriya: [işitilemez] sıfır. DAVID J. MALAN: Belə ki, sıfır. Əlbəttə ki. Və yaxşı ki, biz bu vaxt var Lauren yeni kodu thanks. Cəhd yaxşı bir işi var? Auditoriya: Mənfi bir. DAVID J. MALAN: Mənfi bir və bəlkə bir az daha böyük bir şey, belə ki, bəlkə 42 mənfi, lakin, ümumiyyətlə, zaman proqramları test irəliləyir, sen düşünmək istəyirəm olacaq Özünüz üçün, kimi nə fundamental müxtəlif hallarda var. Mən mənfi hal demək cəsarət, müsbət haldır və sıfır halda olduqca çox bu həyata el. Bu baxmayaraq bir variant baxaq. Conditions biridir. Bu, burada bir düzgün həll edir Siz online iki və görmək lazımdır ki, Siz vasitəsilə gəzmək əgər walkthroughs, ümumiyyətlə olacaq Bu proses mərhələli şəkildə qədər arttırmayı biz doğru yanaşma almaq. Biz xahiş etmək istəyirdi nə iki sual bir dəfə? Mənə əvəzinə bu qədər açmaq edək. Səbəblərdən qeyri-switch, biz bir dəfə görmək lazımdır. Nə syntactically burada yeni var? Hal-hazırda bir oyun oynayan alıram burada kompüter izah edir Mənə, mənə bir tam vermək bir və 10 arasında, və sonra mən istifadəçi daxil mühakimə edirəm. İngilis əsasında Burada görmək kodu mavi, bu proqram nə edir? Auditoriya: [işitilemez] seçilmiş böyük və ya kiçik. DAVID J. MALAN: Bəli. Bu, yalnız olub baxılması oldu Mən böyük və ya orta seçilmiş, və ya az sayda çox əsasında kiçik, orta özbaşına müəyyən və burada böyük, lakin bildiriş yeni sintaksis bu. Int və ya bərabər daha az var imza və ya çox və ya bərabər işarəsi böyük, burada bir digər üzərində ki, siz Microsoft Word kimi ifadə edə bilər. Bir proqramlaşdırma dili Belə ki, adətən yalnız iki simvol etmək, digər sonra bir. Bu, yəqin ki, nə , işareti işareti təmsil edir. Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Bu, sadəcə deməkdir və bu, çünki C müəllifləri çıxır ki, bir işareti istifadə siz hesab edə bilər anlayışı üçün mükəmməl olardı və, artıq istifadə olunur belə işareti işareti həqiqətən biz, həqiqətən, istədiyiniz halda gösterir. Belə ki, indi iki şeyi üzrə hata bildirin. Mənə davam və bir qədər açmaq edək. Bir az worrisome ki, bir şey. Qeyri-dəqiqlik dot c. Mənə burada iki şey təqdim edək. Biz nə edə bilər bir bildiriş riyaziyyat, kimi zaman əvvəl biz üstəgəl iki ədəd, x və y etdi. Bu proqram yəqin nə edir? Mən hələ şərh etdik Mən faiz f təqdim etdik, amma tez əvvəllər bildirib faiz f üzən point deməkdir real sayı dəyəri. Bir decimal ilə Something bir tam deyil point,. Bu proqram nə düşünürsünüz ekranda mənə göstərmək üçün çalışır? Evet? Auditoriya: 10 üzərində bir nəticəsidir. DAVID J. MALAN: Bəli. Nə 10 bölünür bir nəticə. Sağ, çünki bütün yəqin ki, 10-dən çox ki, bir bilmədən yetişdi nədir? Bəli, bu, yalnız 1/10 və ya 0,1 var. Sağ? Belə ki, bu əslində nə edək. Mənə irəli getmək və bu xilas edək. Mənə burada gedək. Qeyri-dəqiqlik dot çizgi etmək qeyri-dəqiqlik, və bildiriş də, Linux mühitində, siz deyil qeyri-dəqiqlik yazın və almaq lazımdır uzun bütün gün. Bu, ümumiyyətlə, siz Tab hit əgər, bu sizin üçün fikir başa çatacaq, sözlər əsasında cari kataloq mövcuddur. OK. Belə ki, sağ idi. 10 bölünür One, əslində, 0.1. Amma bir az maraqlı deyiləm. Və printf çıxır bəzi xüsusiyyətləri dəstəkləyir Siz daha çox daxil edə bilərsiniz qovuşdurmağımız bu xal default nömrəsi. Belə ki, 10 decimal görmək istəyirsinizsə Mən yüzdə edə bilərsiniz bal, tutucu simvolu üçün, dot 10, mənə 10 dən xal verir, və sonra hələ üzən point dəyəri və bir kənara kimi, Bu backslash n nə yəqin biz istifadə saxlamaq? Bu bir çıxır yeni xətt üçün rəmzidir. Bu, çox açıq yoldur kompüter deyərək, növbəti imleci sonra line tamamlayın. Və biz nə olar görürsünüz biz bunu deyil zaman. Mənə qeyri-dəqiqlik etmək derleyeceğiz edək. İndi qeyri-dəqiqlik doğramaq nöqtə. OK. Hələ hüququ. One 10 bölünür. İndi alıram bir az maraqlı olsa. Mən 20 decimal baxsaq işarə, derleyeceğiz, təkrar, və bir kənara kimi sürət, siz də istifadə edə bilərsiniz up və aşağı okları Sizin tarixdə vasitəsilə hərəkət, belə ki, saxlamaq yoxdur Bu əmrləri retyping daxil edin. Huh. I dərəcəli məktəbdə öyrənmək etməyib. Bütün hüquqlar, belə mənə imkan həyata 29 yerlərdə kimi görürük. Bəlkə yalnız bir fluke var. Bəlkə mənim kompüter qəribə fəaliyyət göstərir. Bu doğru, bir şey deyil? Bu deterministically bir şey bunu edir. Belə ki, qeyri-dəqiqlik etmək. OK, ki messed oldu. Belə ki, nə gedir? Belə ki, Göründüyü müəllim yalançı edilmişdir Bu zaman bütün üçün sizə biz uzun əvvəl görürsünüz səbəbləri. Amma başqa bir proqramı ilə başa bildirin. Bu bir az proqramları kimsə, bir neçə il əvvəl yazdı və bu, həqiqətən bir yarışma hissəsi. Heç bir faktiki kodu yazır bu kimi və əgər, bu stylistically bir problemdir. Lakin insanlar gop hüquqları üçün bunu. Ən confusing yazmaq üçün axtarır proqramı yenə maraqlı bir şey yoxdur. Və qeyd edirəm ki, biz tərk istədiyiniz fikir Bu gün, Colton burada oynayır əvvəl, Bu proqram çalıştırmak, hətta yalnız istifadə edən, Bu mətn-based C ətraf mühit, bizə bu verir. Dammit. [Gülüş] Yanındayız. [Işitilemez] c dash l m. Siz sehrli görmək olacaq biz uzun əvvəl görürsünüz sehr. [Işitilemez] Bütün hüququ. İndi hətta bilərsiniz bu kimi şeylər yoxdur. Vəssalam. CS50 biz üçün, cümə günü görəcəksiniz. [MUSIC PLAYING] [Alqış]