HOPARLÖR 1: Yaxşı. Geri xoş gəlmisiniz. Bu CS50 Həftəsi iki və biz İndiyədək ancaq funksiyaları istifadə verilən üçün əsasən onlara götürülmüşdür. Biz olan printf istifadə etdiyiniz çap yan təsiri ekranda şeylər. Biz get-int istifadə etdiyiniz, float almaq. Amma həqiqətən yaratmaq üçün nə istəyirsinizsə, öz funksiyaları, bəzi kimi Əgər siz artıq başlayıb bilər Problem müəyyən bir olsa nə ciddi tələb? Yaxşı, ki, irəli getmək və yenidən bildirin yalnız üçün istifadəçi xahiş problemi haqqında öz adı və çap şey ekran, lakin bəzi Factor cəhd biz etdik ki, ümumiliyi və Bu günə qədər bizim kodu görüldü. Belə ki, Mən aşağıdakı tuturam. Mən irəli getmək və yaratmaq üçün gidiyorum yeni bir proqram, yalnız zəng o zamanki kimi hello.c. Mən irəli getmək və özümü verəcəyəm üst standart io.h daxildir. Mən də özümü verəcəyəm preemptively ki, CS50 kitabxana ki, Mən compiler tərəfindən də yelled deyil. İndi isə irəli getmək gidiyorum və int, əsas, etibarsız elan. Mən istədiyiniz Və sonra burada, bu funksionallığı Outsource başlayacaq Mən özüm edirəm ki, digər funksiyası yazmaq niyyətində lakin o deyil Hal-hazırda mövcuddur. Məsələn, mən istəyirdim ki, güman mənə imkan verir ki, bir funksiyası yazmaq hello, vergül çap və sonra bir istifadəçi adı. Printf bunu davam daha çox hello,% s, əgər gözəl ola bilməz adlı funksiyası yalnız var idi printf lakin çap adı deyil? Belə ki, başqa sözlə, mən etmək istəyirəm bir az ki, bir proqram yazmaq bu kimi bir şey. Birincisi, mən printf demək gidiyorum üçün adı, bununla istifadəçi isteyen Mən sonra mənə onun adı vermək, üçün tanış string s istifadə etmək niyyətindədir bir simli bəyan edir. , Mənə tipli simli dəyişən ver ki, s zəng və mağaza string almaq çağıran nəticəsində. Amma indi son həftə, mən var ki, qədər maraqsız həyata hello,% s / n. Və başqa sözlə, biz bu gördük dəfə Məsələn bir dəstə və bu, bir yalnız bir var, çünki misal mənasız kodu line belə həqiqətən deyil böyük yenidən yazaraq saxlamaq. Amma güman kodu xətti həqiqətən bir yük olmaq, və edilmişdir bu kodu bir xətt deyil, lakin 10 var kodu xətləri artıq bir neçə həftə, və yalnız yorğun əldə etdiyiniz çıxarmaq və yapıştırma və ya Eyni kodu retyping. Əvəzinə bunu gözəl olmaz printf hello,% s və s, yalnız var idi əgər gözəl ola bilməz print ad adlı bir funksiyası bir dəlil edir - Başqa sözlə, o, daxil edir - və sonra nöqtəli vergül. Belə ki funksiyası, bu verməyəcəklərini mövcud ki, əgər gözəl? Sonra narahat olmazdı printf nə, nə% s və bütün ki, bu çətinliklər bütün maraqlı. Onlar faydalıdır. Belə ki, çap adı, təəssüf ki, deyil, 40 plus il əvvəl bir icad. Heç kəs yazmaq üçün düşündüm. Amma bir olan gözəlliyi var yalnız kimi proqramlaşdırma dili Not belə, xüsusi blokları müəyyən edə bilərsiniz C və ən hər hansı bir dil, siz öz funksionallığı müəyyən edə bilərsiniz öz funksiyaları müəyyən edir. Biz əsas əldə Belə ki, baxmayaraq ki, avtomatik pulsuz, biz elan edə bilər öz funksiyaları. Belə ki, mən burada bir neçə otaq etmək gidiyorum qədər top və mən bəyan etmək gidiyorum mənim bir baxmaq üçün gedir ki, öz funksiyası az ilk qəribə lakin biz gələcəyik! geri əvvəl uzun. Mən bununla, etibarsız demək gidiyorum Bu funksiya ifadə edir bir şey, bir yan təsiri var, lakin də mənə bir şey qayıtmaq deyil və ya int almaq eyni şəkildə özü edir string almaq. Və mən bu funksiyası vermək gidiyorum Çap adı adı, və mən gidiyorum Bu adam gedir ki, müəyyən simli, mən ki, zəng etmək gidiyorum string adı. Mən istəyirəm bir şey zəng, lakin bilər mən Mənim kodu özünü sənədləşdirilməsi olmaq istəyirəm. Başqa sözlə, siz əgər biri idi Bu faylı açmaq və oxumaq, siz ola bilər ki, adı nəticə çıxarmaq növ oynamaq üçün ehtimal hansı rolu girdi. İndi ki, aşağıda, mən açıq gedirəm buruq burğu və qapalı buruq brace, və mən eyni təqib etdik qeyd xətləri yeddi vasitəsilə dörd kimi model Yaxşı bir həftə plus üçün aşağıdakı olduğunuz İndi xətləri doqquz, demək arasında Əsas təşkil edən 14. Başqa sözlə, adı çap bir funksiyası var. İndi compiler bilmək niyyətində deyil avtomatik olaraq bu şey zəng etmək üçün Mən sözün yalnız icad, çünki lakin bu əsas zəng hələ biləcəklər avtomatik, sonra əlbəttə line 13, mən öz funksiyası zəng edirəm. Və çünki mən bəyan etdik ki, funksiyası up əsas əvvəl xətt dörd, Bu compiler öyrətmək üçün gedir nə quote, dırnağı bağlamaq, "print adı" deməkdir və bunu nə. Mən yeni bir xüsusi verilməsi növ Ben cızın demək, kontekstində blok. Belə ki, burada, mən çox ümumi qoya bilər Mən saxlamaq kodu və ya təkrarlanan model sinif yazı, printf % S hello,% s / n ", - Burada qoymaq nə istəyirlər? S? Mən bu kontekstdə ad qoymaq istəyirik. Belə ki, burada bir dichotomy bir qədər bilərsiniz. Mən öz funksiyası bəyan edirəm Çünki və mən bir qədər özbaşına çağırıb bu adı çap və mən var, çünki parantez göstərilən bu funksiyası bir dəlil, növü edir bir string - belə bir söz var və ya söz və ya bir şey kimi - və Mən ki, dəlil adı zəng alıram var ki, yalnız dəyişən deməkdir daxilində, belə demək olarsa, adıdır. S nə yalnız iki arasında mövcud buruq aşırma, əlbəttə? Həqiqətən, yalnız xətt 10 kimi vasitəsilə Yaxşı 14, belə ki, yalnız bazar ertəsi günü kimi istifadə edə bilməz S, lakin nə edə bilərəm keçmək edilir Çap adını S. Çap adı məhz belə vermək olur bir alias, sinonimi, bir ləqəb, bu adı zəng və indi bu istiqamətdə istifadə. Belə ki, indi Uzaklaştırmak, məni saxla bildirin. Mənə davam və salam edək. Yaxşı görünür. Hər hansı bir səhv tüpürmək etməyib. . / Daxil edin salam. Mənim adı nedir? David. Davud salam. Belə ki, bütün maraqlı deyil, ancaq indi düşünürəm. İndi həmin tərkib hissəsi var biz Not olduğu kimi öz funksiyaları edir. Lakin Gotcha bir qədər var. Mən, həqiqətən, fikir deyil ki, Güman Bu, faktiki vasitəsilə və mən olmadan həqiqətən bu barədə düşünürük yazdı burada funksiyası aşağı. Mükəmməl ağlabatan hiss edir. Not heç bir anlayışı yoxdur Sizin yazıları yer. Siz bir, burada, burada bir qədər qoymaq bilər bir qədər burada və bu başlaya bilər Əgər deyilsə bir az messy baxmaq bu səliqəli yerinə qoymaq, lakin o, deyil fiziki scripts yerləşir Fərq ekranda idi. Təəssüf ki, C - bu fərqli Java və Python kimi dillər və tanış ola bilər ki, başqaları təəssüf C, sifariş edir - ilə watch nə çünki Fərq İndi nə olacaq. Gedir ki default funksiyası icra etmək, əlbəttə, əsas deyil. Ana çap adı zəng gedir line səkkiz, amma təəssüf ki, compiler hətta çap adını bilmək olmaz bu xətt 11 olur qədər mövcud olan təəssüf ki çox gec olacaq. Belə ki, salam etmək Agentliyi edək. İndi lənətləmək, iki səhvlər yaradılan. Belə ki, indi mənə çox qədər diyirləyin bildirin Birincisi, biz həmişə etmək və lazım mənə böyle oldu fark, Funksiyası "gizli bəyannaməsi adını yazdırın. " Beləliklə, biz bu mesajı əvvəl gördüm, funksiyasının örtülü bəyannamə. Biz səhv belə görmüşəm? Mən kitabxana daxil etməyib zaman. Mən cs50.h unutdu və əgər mən almaq istəyirəm string almaq və ya int almaq üçün at yelled. Amma bu halda, bu funksiya çap ad hüququ, kitabxana deyil? Belə, Bu faylda sözün var nə həqiqətən problem var? Yaxşı təəssüf C, o, sizi belə olduqca sözün ki, əgər siz Çap adı adlı bir funksiyası istəyirəm var, ya həyata keçirilməsi üçün Sizin çox üst funksiyası kodunu aşağı əlçatan var ki, funksiyaları, lakin səmimi ki, olur çox tez sloppy. Şəxsən, mən ilk əsas qoyulması kimi o, çox nə aydın, çünki proqram ilk baxışdan edir. Və üstəgəl, siz qəribə küncə əldə edə bilərsiniz x zəng etmək istəyirsə hallarda y lakin y siz x yalnız zəng edə bilər fiziki həqiqətən bir qoymaq bilməz digər yuxarıda. Amma bu, C edə bilər çıxır çox sadəcə bu həll. Mən yer bir az qoymaq gidiyorum burada və mən yalnız gidiyorum preemptively olsa qədər redundantly ki, tədris etmək fikrinizdə funksiyası mövcuddur compiler çap adını, bir simli edir və mən zəng etmək gidiyorum bu nöqtəli vergül adı. Indi line dörd belə hansı əvvəl görmədim, bir bəyannamə deyil funksiyası çap adı, lakin o, yalnız Bu funksiya olacaq bir söz nəhayət nəticədə, müəyyən həyata keçiriləcək. İndi mən tək tərk edə bilər, çünki İndi bu tərifi deyil, son mil həyata keçirilməsi, sort bu həyata keçirilməsi xüsusi fəaliyyət göstərir. Belə səmimi bu axmaq, o, annoying var lakin bu C yol və bu çox sözün götürür çünki və kompüter səmimi, olduğu kimi, yalnız ona deyir dəqiq nə etmək, və düzəldikdən vacibdir ki,. Belə ki, nəzərə ki, saxlamaq və yenidən başlamaq nümunələri təkrarlanma bilərsiniz. Əgər varsa Oran, siz var artıq mesajlar qarşılaşmağa başlayır bu kimi ilk baxışdan görünür tamamilə sirli, ancaq başlamaq əgər kimi bu açar sözlər axtarmaq üçün Bir "gizli bəyannamə" qeyd Bu halda funksiyası - səmimi və siz bəzən hətta bir az yaşıl almaq burada deyir ki, kök simvol məsələ yəqin ki, - Siz vasitəsilə yol iş başlaya bilər hələ görünməmiş səhv messages. Yazma haqqında hər hansı bir sualınız üçün Bu yolla öz funksiyası? Bir ki, bir şey edək az daha çekici. Ki, bir şey yalnız daha çox çap bir yan təsiri, getməmə irəli və yeni fayl saxlamaq və biz edəcəyik O, baxmayaraq ki, bu positive.c zəng bir az fərqli olacaq son dəfə qarşı. Və bu zaman, mən yenidən həyata istəyirəm son zamanların positive.C Məsələn, hansı istifadəçi verməyə məcbur edir Mənə bir müsbət tam. Amma mən int son dəfə almaq istifadə etmək idi. Var idi, əgər gözəl olmazdı funksiyası müsbət int almaq çağırıb Mən yalnız bu Outsource bilər ki, funksionallığı parçası? Burada fərq biz edəcəyik edir müsbət int almaq həyata, lakin fərqli bir yan təsiri olan çap ad - bu kimi mənə bir şey vermədi nömrə və ya simli - müsbət int, əlbəttə, gedir almaq ümid edirəm ki, müsbət int qaytarın. Belə ki, bunu edək. Cs50.h əlavə, standart io.h. daxil Əsas etibarsız Int. İndi burada, mən irəli getmək gidiyorum və edək int demək, n zəng, bərabərdir müsbət int almaq. Və kimi int artıq mövcuddur almaq heyəti bunu yazdı, çünki gedirəm ki bu an üçün güman müsbət int var, indi gedirəm davam və printf demək, ki,% i / n ", n üçün təşəkkür edirik. Bu proqram tərtib İndi əgər, nə mənim terminal baş gedir Ekranın altındakı pəncərə? Mən yəqin ki, almaq üçün gidiyorum əvvəlki kimi eyni səhvi. Belə ki, bu cəhd edək. Müsbət olun. Və yenə örtülü bəyannamə funksiyası, müsbət int almaq. Beləliklə, biz bu həll edə bilər yolları bir neçə. Mən yalnız bu sadə və saxlamaq gidiyorum Burada bəyannaməsi qoymaq və almaq müsbət int. Mən qondarma imza lazımdır. İmza yalnız istinad ki, estetikasını Proqramın birinci xətt. Beləliklə, nə müsbət almaq lazımdır geri int? Belə ki int. Mən ideal demək, geri ki, müsbət int kimi bir şey, ancaq ki, mövcud deyil. Biz görmürsənmi olduğunuz veri arasında növləri, biz ilə məşğul olmaq biz çox az var ki, əslində məlumat növləri ilə işləmək üçün. Amma biz int və yalnız qayıda bilər müsbət olacaq güvənirəm. Bu adlı olacaq müsbət int almaq. İndi necə, onun dəlilləri haqqında? Hər hansı bir daxil lazımdır? Hər hansı bir daxil ehtiyac varmı? Belə ki, bilmək lazım deyil əvvəlcədən bir şey. Simli, int deyil almaq deyil alın. Printf edir - bəzi olmalıdır input bu keçdi - və çap adı Bəzi giriş lazım, amma almaq müsbət int deyil. Beləliklə, mən açıq-aydın gidiyorum compiler etibarsız demək. Etibarsız başqa bir şey olmamasıdır. Belə etibarsız vasitələri heç bir şey daxilində gedir o parantez ki, nöqtəli vergül. İndi mənim fayl altındakı - və anal yenidən, mən yalnız olan alıram cür burada üst əsas qoyaraq, hansı yaxşı təcrübə bu şəkildə, çünki, Siz və ya başqası zaman Sizin faylını açır funksionallığı hüququ var. Siz kvadrat bir dalış edə bilərsiniz. Belə ki, indi ki, bu cüt üçün gidiyorum müsbət int void almaq, ancaq mən deyiləm İndi bir nöqtəli vergül edib gedir. Mən buruq aşırma açmaq üçün gidiyorum və indi borc lazımdır Bazar ertəsi bəzi fikirlər. Siz geri etdiyim kimi, biz bir şey idi Aşağıdakı isə nə kimi şey doğru idi. Və nə idi? Mən vermək kimi bir şey idi Mənə bir müsbət tam, tez az bit. Mən istəyirəm hər hansı bir söz istifadə edə bilər. Və sonra mən nə istifadə? Int n, int almaq bərabərdir bu arqumentlər yoxdur. Və fark. Istifadə zaman, funksiyanı zəng zaman Funksiyanı, siz boşluq qoymaq deyil. Bir elan zaman yalnız bunu funksiyası compiler tədris nə bunu gözləmək lazımdır. Beləliklə, siz qoymaq lazım deyil orada özünüzü ləğv. İndi mənim vəziyyət nə idi? Yaxşı, n, müsbət bərabər deyil lakin yalnız yalançı kodu var. Belə ki, necə daha çox pakizə bu ifadə edirsiniz? Belə ki, daha az və ya sıfıra bərabərdir. Belə ki, təkrar edə bilərsiniz qeyd daha az və ya bərabərdir. Ayrı-ayrı iki belə olsa simvollar, siz bunu edə bilər kimi sizin klaviatura. Amma ki, bir səhv hələ də var Mən keçən dəfə qədər berbat. Mən bəyan var - dəqiq. Mən kənarda elan var loop edir. Ona görə də mən burada n qoymaq lazımdır və mən deyil Burada yenidən bəyan etmək istəyirəm deyə yeni bir dəyişən almaq. Mən burada bir dəyər təyin etmək istəyirik. İndi Mən burada aparılan deyiləm. Mənə qabaqda özümü imkan və mən bitirdim iddia. Müsbət olun, və indi yeni bir səhv var. Nəzarət sonu çatıb qeyri-boşluq fəaliyyət göstərir. Yeni hata beledir Belə ki, lakin, əgər cür sözləri hər ayrı tease, o, yəqin yanlış nə göstərişlər. Nəzarət. Control yalnız sifariş etmək deməkdir bir proqram əməliyyatları. Kompüter nəzarət və bir şey yanlış getdi. Belə ki, ilin sonuna çatır qeyri-boşluq fəaliyyət göstərir. Nə funksiyası Şübhəlinin istinad? Nə funksiyası qeyri-etibarsız edir? Belə ki, müsbət int almaq və bir az ki, yaxşı qarıxdırıcı, olmadığına görə qüvvədən düşmüş növü var. Onun üçün etibarsız bir dəqiqləşdirilməsi var mübahisələri, lakin onun çıxış etmək niyyətindədir tipli n olmaq. Belə ki, sol sözü olan geri növü deyilən. Burada daxili söz sıfır və ya daha çox arqumentlər funksiyası edir ki,. Beləliklə, mən nə etməliyəm? Mənim kodu Bu baxımdan line 21 yerləşir hazırda Sayrışma tez İndi ki, müsbət int daxilində var n adlı dəyişən. Nasıl əsas geri verə bilərəm? Sözün. N nöqtəli vergül qayıt. Belə ki, yalnız kimi Colton bir parça döndü düşmə mənə bir cavab kağız kiçik qara kağız ki, parça da bunu müzakirə qutusu, kodu, sözün yalnız qayıtmaq yazmaq Colton sanki n, və bu mənə bir şey fiziki geri verilməsi. Bu halda, neler əldə edilir müsbət int geri əl gedir nə ehtimalla müsbət var kimə tam? Ki, dəyəri harada son edir? Bu n, bu dəyişən bitir, və sonra biz line doqquz davam. Belə ki, başqa sözlə, qaydasında əməliyyatlar, bu proqram başlayır , icra və compiler həyata keçirir oh, siz kitabxana istəyirsiniz? Mənə grab içerisinde nə gidelim. Oh, Siz standart IO kitabxana istəyirsiniz? Mənə grab içerisinde nə gidelim. Compiler özü üçün nə deyir bu xətt dörd xit zaman? Oh, siz həyata keçirilməsi üçün vəd funksiyası müsbət almaq adlanır, lakin biz sonra o geri almaq lazımdır bu xətt bir şey. Int əsas boşluq yalnız burada vasitələri mənim proqramının içalat. Line yeddi yalnız bir buruq brace edir. Line səkkiz vermək, sol deyib bir tamsayı üçün mənə 32 bit, bu n deyirik. Sağ tərəfində, bu müsbət int almaq etdi. İndi gələk fasilə ki, hekayə indi, çünki Mən kursor aşağı hərəkət saxlamaq yoxdur. Mənim kursor indi burada qalır, çünki İndi müsbət int həyata almaq. Int n elan edilir. Aşağıdakı etməyin. Printf Mənə bir müsbət tam verir. , Istifadəçi bir int alın n onu saxlamaq, və bəlkə təkrar edirik. Bu loop bu kodu bilər o deməkdir ki, daha bu kimi icra və aşağı və yenidən, ancaq istifadəçi zaman nəhayət əməkdaşlıq və mənə müsbət verir int, Mən məqam da, xətt 21 hit nömrə geri təhvil olan və biri İndi qeyd etmək lazımdır? Nine. Nəzarət, necə deyərlər, qaytarır doqquz girdi. Məsul indi ki, xətt var. Belə ki, bütün baş vermişdir nə var Bu başlıq altında, lakin biz printf kimi funksiyaları istifadə etdiyiniz zaman və ya hətta simli almaq başqası Sizin üçün yazdığı, nəzarət təqdim edilmişdir off başqasının code line xətti ilə xətti ilə. Bu, sadəcə biz bunu görürük və biz bilmədi oldu həqiqətən bu onu tam təsvir etməyə bilər bəzi digər Proqramı çünki sabit fayl bizə unbeknownst. Elə əslində tərtib edək və indi bu axır. Müsbət olun. Tərəqqi ki, tərtib edir. . / Müsbət. Mənə bir müsbət tam verin. Çətin olsun. 1 Mənfi. Zero. Nin 50 verim. 50 üçün təşəkkür edirik, və nəzarət İndi qayıdıb. Hər hansı sual, sonra, ki? Bəli? [Işitilemez]. Bir daha demək. Oh, yaxşı sualdır. Belə ki, burada paralel bilərsiniz ki, Mən bir küncündə kəsici cür edirəm. Line 12, mən deyən alıram, müsbət int almaq bir int qaytarır, lakin eyni ilə məntiq, indi səbəb dayanır ki, line altı, mən deyən alıram əsas qaytarır bir int, lakin biz heç vaxt proqramlar hər hansı idi? Biz qeyd heç vaxt etdik Bu açar sözü qayıt. Belə ki, ən azı, C çıxır ki, Biz istifadə etdiyiniz bu versiyası 1999-cu ildə edilən, texniki, bu sizin üçün avtomatik olaraq baş. Dunya bir proqram və həyata keçirilməsi əsas adlı funksiyası həyata ki, funksiya sıfır qayıdacaqlar default yoxsa demək yoxsa, və sıfır yalnız bir konqres edir. Dünya bununla da sıfır qaytarır bütün yaxşı olduğunu ifadə edən səmərəli bizə tərk dörd milyard getmək mümkün şeylər yanlış ki, biz bir qayıtmaq, əgər ki, Bu o deməkdir ki, bir kod demek bilər şey yanlış getdi. Biz o deməkdir ki, iki qayıtmaq bilər Bu başqa bir şey yanlış getdi. Biz dörd milyard qayıtmaq bilər Bu başqa bir şey yanlış getdi deməkdir. Və indi öz haqqında düşünüyorsanız PC və ya Mac, siz geri bilər ki, bəzən sirli hata mesajları almaq Əgər olduğunu proqram istifadə edərək, və bəzən bir insan var dostluq təsviri, lakin var tez-tez kodu və ya bir neçə Ekranda? Bu ağla deyil, yalnız bunun üçün bir göz tutun. Bu adətən nə bu kodları istinad edilir. Onlar və Microsoft Word daxil olduğunuz digər proqramlar ki, siz bir fayl əgər şirkəti ilə səhv hesabat, siz onlara, oh, mən səhv sayı 45 var. Və şirkətin bəzi proqramçı geri ki arayabilirsiniz onun Mən etdi, çünki kodu və demək, oh, ki Bu səhv və nə istifadəçi bu mesajı almışdır. Amma səmimi, yalnız bir az var yayındırır və bir az yorucu ən azı bizim ki, bağlamaq ilk bir neçə proqramları, biz var belə bu omitting edilmişdir. Sizin Lakin bütün bu zaman hər bir funksiyaları əsas gizli bu olmuşdur xətti avtomatik olaraq sizin üçün əlavə etmək üçün compiler, sadəcə Konvensiyanı Bir müddət edin. [Işitilemez]. Siz əsas daxil etmək lazım deyil. Bu gözəl. Siz olsaydı daxil lazımdır bu kimi bir funksiyanı həyata keçirir. Əks halda funksiyası düz iş deyil. Amma əsas, bu lazım deyil. Bir həftə və ya iki, biz əldə başlarsınız ki, vərdiş halına bir dəfə biz başlamaq istəyirəm səhvlər signifying. Sual Həqiqətən yaxşı. Qeyd etmək üçün sürətli şifahi fasilə ki, bu cümə, biz nahar malik olmayacaq ilə per se, ancaq nahar malik olacaq tələbə və heyəti bəzi. Siz bizə qoşulmaq istəyirsinizsə, hiss cs50.net/rsvp getmək üçün pulsuz. Bu cümə PM 6:00. Space, həmişə olduğu kimi, məhdud, lakin biz edəcəyik təxminən bu bunu davam həftəlik əsasında kosmik əgər bu həftə həyata çalışır. Beləliklə, biz off tərk cliffhanger Bazar ertəsi strings həqiqətən ki idi daxil dizine olan yalnız sizin deməkdir ki, ilk xarakter əldə edə bilərsiniz İkinci xarakteri, üçüncü karakter və s, siz, çünki səmərəli kimi simli hesab hello, bu halda olan beş qutuları daxilində məktublar. Və o hər əldə edə bilərsiniz nə sintaksis etdi qutuları ilə biz Bazar ertəsi bilərlərmi? Bu kvadrat mötərizədə klavyenizdeki. Yalnız yeri sıfır getmək deməkdir ki,. Biz sıfır hesablanması başlamaq, belə ki, bracket sıfır h, bracket bir bildirir e bildirir, və s. Biz olduğunuz zaman belə bütün vaxt, zaman "Salam" da strings istifadə və yazmağa və "dünya" və başqa şeylər haqqında ekran, bu saxlanılır edilmişdir bu kimi qutuları. Və bir tahmin edir. Hər qutusu fiziki nədir təmsil etmir Sizin kompüter daxilində? [Işitilemez]. Üzr istəyirik? Simvol. Halda əlbəttə ki, bir karakter Belə ki, strings və xarakter sadəcə səkkiz bit və ya bir byte. Beləliklə, siz yəqin ki, ən azı yayğın var onunla tanış ki, kompüter yaddaş var. Bu yaddaş iki növ azı var. Bir siz saxlamaq, sabit disk deyil daimi mövzusu və var Siz film ola bilər, adətən, böyük belə və musiqi və s. Sonra siz yaddaş bir növü var RAM R-A-M, Random Access adlı Yaddaş və bu yaddaş növü Sizin kompüter zaman istifadə olunur ki, Əgər güc itirmək və ya əgər çalışan batareya ştampların, saxlanılır ki, bir şey Əgər güc itirmək əgər RAM yox bu deyil, ümumiyyətlə, çünki israrlı. Siz adətən, bu gün var bu konsert, bəlkə daha iki gigs. Və RAM ayaq çox var ki, sabit disk daha çox daha sürətli və ya hətta bərk dövlət, bu gün sürücüler lakin o, adətən daha bahalı, belə onu az. Bu gün söhbət həqiqətən istinad Belə ki, RAM, yaddaş bu cür ki, güc var ki, yalnız var bilgisayarınıza daxil qidalanır olunur. Belə ki, H-E-L-L-O yazın zaman, Enter klaviatura, H bir gedir RAM byte, E gedir RAM bir byte, kimi Sözün istirahət. Beləliklə, biz bacardıq nə geri son dəfə bunu bu idi. Mənə davam və faylı açmaq edək biz string.c adlanır və Xatırladaq ki, bir az baxdı ki, bu kimi bir şey. Mənə həqiqətən geri roll və dəyişdirmək imkan o, bu kimi baxdı dəqiq nə s simli uzunluğu. Belə ki, burada proqram oldu. Biz CS50 kitabxana belə daxildir biz string almaq istifadə edə bilərsiniz. Biz standart io.h daxildir biz printf istifadə edə bilərsiniz. Niyə biz string.h daxil idi? Bu barədə bazar ertəsi yeni idi. Beləliklə, biz simli uzunluğu istədi. Str Leng. İnsanlar il əvvəl qərar ədalətli qısa olsun. Bunun əvəzinə "string uzunluğu," zəng edək ki, "küç Leng" zəng və imkan out, və ki, ki, dünya rəqəm biz string.h ilə əldə nə. Bu tanış edir. Bu tanış edir. Bu tanış edir. Bu, bir az yeni. Line 22 - və biz geri gəlmək lazımdır Bu, indi bilirəm - və yalnız olan bu bilirik ki, sənədlərin və ya oxumaq Əgər siz artıq C bilirdi - string bəzən qıymaq bilər almaq. Istifadəçi həqiqətən çəkişmə və ya əgər uncooperative və o, yalnız klaviatura bir şey yazın və ya deyil klaviatura belə çox növləri ki, o, kompüter yaddaşında overwhelms nəzəriyyəsi, simli qayıtmaq bilər almaq bir başqa bir şey simvol simli. Bu adlı xüsusi dəyər qayıtmaq bilər Bütün caps, N-U-L-L, və bu edir NULL yalnız bir qondarma sentinel dəyəri. Bu bildirir ki, xüsusi bir dəyəri var pis bir şey bu halda baş verib. Bu simli olmamasıdır. Belə ki, mən sadəcə belə ki kontrol alıram null uzun sözün qısası küçəsi Leng və C ilə gəlib ki, digər funksiyaları, əgər onlar bir simli gözləmək ancaq onları keçmək bir simli olmaması, siz keçmək əgər onlara, kompüter və ya proqram null yalnız açıq qəza edəcək. Bu asmaq olacaq. Bəzi səhv mesaj qədər atmaq edəcək. Bad şeylər olacaq. Bu hələ belə olsa yaxşı müəyyən deyil - bu həftə daha məntiqli ya da iki - line 22, bu, yalnız bir deyil özünü müdafiə səhv yoxlanılması misal yalnız halda bir dəfə həyata bir milyon bir şey, yanlış gedir az mənim proqram qəza deyil. S deyil Belə ki, pis bir şey bərabərdir Mən loop bu var və bu idi biz digər olduğu sintaksis yeni parça. Mən iterating loop üçün var sıfır s uzunluğu haqqında. Və sonra burada, mən s həyata çap edilib bracket i, lakin nə mən bütün% c istifadə etməyib əvəzinə% s ani bir belə s bir simli olsa? Bu, doğru bir xarakteri var? S, simli, lakin s bracket bir şey i sıfır olduğu s bracket i bir və ya bir iki, bir fərdin simli xarakterli və belə ki, printf məlumat lazımdır ki, həqiqətən gözləmək bir karakter var. Və sonra geri çağırır, bu nə idi proqram həqiqətən nə? Sütunlar onu çap. Bəli, məhz. Bu, sadəcə mən yazın söz çap bir sütun, satır başına bir xarakter. Belə ki, bu bir daha nəzər salaq. Belə ki, simli edir. OK tərtib. . / String. Mənə H-E-L-L-O yazın edək daxil edin və Həqiqətən mən, satır başına bir onu almaq. Mənə burada bir optimallaşdırma edək. Siz xüsusilə də əgər, bu barədə düşünüyorsanız Sizdən əvvəl var proqramlaşdırılmış sonra line 24 arguably bir təsirsizlik. Başqa sözlə, bu, mütləq deyil ən yaxşı dizayn. Sadə, ən azı bir dəfə str Leng nə unutmayın, lakin bu potensial lal bir şey edir. Nə ola bilər? [Işitilemez]. Eynilə elə. Bu s uzunluğu kontrol oldu hər bir zaman olsa da, H-E-L-L-O həmişə gedir beş simvol olmalıdır. Bu loop vasitəsilə hər vaxt, Beş dəyişən deyil. Mən incrementing, lakin nə edilə bilər hər üzrə s uzunluğu Bu loop iteration? Bu beş deyil, beş deyil, beş deyil, və lakin mən yenə bu xahiş edirəm təkrar və təkrar sual. İndi səmimi, kompüter belə lənətləmək edir sürətli, heç bir fərq olacaq Bu halda fərq, lakin bu cür yoxsul dizayn qərarları bilər compiler özü qədər əlavə edin başlayacaq sizin üçün düzeltmek üçün cəhd vermir bu adətən da, verməyəcəklərini Aracın ən. Beləliklə, mən bunu gedirəm. Mən sonra vergül əlavə etmək gidiyorum mənim ilk dəyişən, i. Mən özümü başqa verəcəyəm dəyişən, yalnız, bu zəng n sonra nömrələri üçün konvensiya və Ben simli dəyəri N təyin etmək niyyətindədir s uzunluğu. Və sonra dəyişdirmək gidiyorum mənim vəziyyəti nə olacaq? Mən vəziyyəti dəyişdirmək üçün gidiyorum i n daha az müddət. Belə ki, indi, mən neçə dəfə am s uzunluğu yoxlanılması? Sonra, lakin ona qarşı i yoxlamaq üçün OK n təkrar o indi, çünki dəyərlər əslində dəyişən deyil. İndi artıq, yalnız bilirik ki, siz istənilən vaxt funksiyası zəng, bir az var Siz mane yerüstü çatmadı, həqiqətən olan heç funksiyaları istifadə edərək, lakin kod xətti var əlbəttə zaman belə - və xətləri olacaq uzun əvvəl daha maraqlı - yerləşir əgər düşünmək imkanı var mən Bu kodu yazın, nə qədər bu dəfə icra edəcək? Siz vaxt ərzində görmeye başlarsınız proqramları icrası bilər həqiqətən dəyişir. Əslində problem biri var edir illər ərzində görülmüş keçmiş cəlb sizə geri bilər, tətbiq həftə sıfır, bir yazım checker, lakin yardım üçün nəzərdə tutulmuşdur ki, checker oxumaq Bir 150,000 lüğət plus biz uşaqlar verir ki, söz. Siz kodu yazmaq lazımdır ki, yük RAM o sözləri, belə ki, daxil biz kimi qutuları ekranda an gördüm siz əvvəl və sonra kimi sürətli bilər, bir cavab lazımdır şəklindəki sualına, bu söz misspelled? Bu söz misspelled mı? Bu söz misspelled mı? Və biz etdik nə kimi bir şey illər ərzində görülmüş keçmiş, onu açıq bir opt-in isteğe əsasında, A olsa növ rəqabət vasitəsi olan daha az RAM və daha az istifadə edən tələbələr vaxt, az CPU dövründən son bir az üst qədər burda lider board və ya biz qoymaq ki, sıralama biz var kimi əlbəttə ana son illər ərzində görülmüş. Belə ki, yenə tamamilə isteğe, lakin bu dizayn imkanları danışır bir dəfə irəlidə biz başlamaq ki, bu bəzi üstün tikinti əsas bloklar. Belə ki, mənim üçün bu diaqram geri gidelim yalnız bir an və bir az aşkar bir şey daha. Bu, həqiqətən bir simli və biz qəbul etdik bir neçə kitabxana üstünlüyü, olan var standart io.h - Printf. Printf, digər şeylər arasında. int almaq və simli almaq olan cs50.h, və s, string.h, hansı str Leng idi. Başqa hələ var həyata Lakin bu çevrilir. Açığı, çox və header çox var funksiyaları bəyan fayllar kitabxanalar üçün, lakin bu ctype.h edir həqiqətən qədər olacaq gedirəm, çünki əlverişli irəli getmək və bir həyata keçirilməsi üçün burada digər proqram. Mənə irəli getmək və bir şey açmaq edək Mən adlı əvvəlcədən yazıb capitalize.c, və bir-qoy necə bu işləri bir göz. Mən bu versiyası istifadə alıram Qeyd edək ki, bu, üç tanış faylları. Line 18, Ben Qeyd edək ki, mətn xətti alınması. Line 21 Notice, mən iddia edirəm ki, aşağıdakı kodu gedir istifadəçi tipli nə olursa olsun, s kapitallaşdırmalıdır və necə ki, bunu edirəm? Yaxşı, mən alaraq alıram - dərs keçən zaman öyrəndim - Mən və N elan və iterating alıram dizeyi olan simvol artıq. Və sonra bu blok nə 27 vasitəsilə line 24 kod layman nin baxımından bunu? Geri məktubu kiçik. Eynilə elə. Əgər s bracket i - əgər i-ci s xarakteri, spesifik deyil simli ilə char, daha böyükdür və ya bərabər kiçik və - ki, ikiqat işareti Xatırladaq demek və - və eyni xarakter, s bracket i ki, z kiçik az və ya bərabər, o, bir və ya b və ya c və ya deməkdir ki, nöqtə, nöqtə, nöqtə və ya deməkdir z, bu kiçik var. Mən bu halda nə etmək istəyirsiniz? Yaxşı, mən bir qədər bu edə bilərsiniz cryptically, lakin nin Bundan tease bildirin. Mən printf zəng gedirəm,% c yazdıran Mən bu nəşr etmək istəyirəm, çünki ekranda xarakter. Mən o s bracket i, etmək gidiyorum i-ci s xarakterli, sonra niyə Mən burada bu kiçik oyun edirəm eksi kapitalı kiçik? Ki, vermək nə gedir mənə, ümumiyyətlə? [Işitilemez]. Eynilə elə. Mən, həqiqətən, xatırlamıram - bu kapitalın A. 65 Mən, həqiqətən deyil idi bir kiçik, nə xatırlayıram, lakin heç bir məsələ. Kompüter bilir. Belə deyərək, bir minus kiçik kapital A, onu qəribə başqa bir char çıxarılaraq, lakin başlıq altında chars nə var? Onlar yalnız ədəd istəyirik. Bu ədəd hər hansı Belə ki, kompüter xatırlayıram bildirin insan deyil, məndən. Belə bir bir minus kapital kiçik Mənə bir fərq verəcəyəm. Bu 32 olmaq olur ki, olacaq kiçik b və kapital B işi və s. Bu təşəkkürlə, ardıcıl qalır. Mən mahiyyətcə deyən alıram Beləliklə, almaq məktub kiçik ki, off çıxmaq standart fərq ki, səmərəli dəyişikliklər s bracket I böyük, əlbəttə ki, kiçik, Mənim həqiqətən düşünmək olmadan və ya Unutmayın, bu nə idi zaman səkkiz danışdıq nömrələri könüllü səhnəsinə gəldi? Bu deyil indi vaxt, başqa, əgər müəyyən bir kiçik məktub line 24, yalnız çap. Mən yalnız toxunmaq istəyirəm ki, simvol əslində ilk kiçik. Belə ki, bu nəzər salaq. Kapitallaşdırmaq olun. Tərtib olunmuş, OK. . / Kapitallaşdırmaq. Və mənə H-E-L-L-O yazın bildirin kiçik olaraq, daxil edin. Və bu valyutaya çevrilmişdir fark böyük daxil. Mənə daha bu nə edək fərqli bir söz. Necə D-A-V-I-D haqqında ilk D bir ad olaraq kapitallaşdırılır adətən var? Daxil edin. Hələ doğru bildiriş. Bu, sadəcə ilk D dəyişməz outputted başqa tikintisi vasitəsilə. Belə bir, sonra, unutmayın burada şeyi cüt. Əgər iki yoxlamaq istəyirsinizsə biri, bir şəraiti, siz və onlara biz proqnozlaşdırılan birlikdə. Bu şəkildə simvol müqayisə edə bilərsiniz və səmərəli simvol kimi müalicə nömrələri, lakin səmimi, bu belə lənətləmək edir sirli Yadımdadır gedən heç alıram sıfırdan bu ilə gəlmək üçün necə çox üçün vasitəsilə əsaslandırma olmadan vaxt bir az. Gözəl olmazdı əgər kimsə həyata adlı bir funksiyası var yazdı ya doğru mənə cavab bilər aşağı saxta, bu xarakterli kiçik deyil? Yaxşı təşəkkürlə, kim yazdı ctype.h dəqiq etdi. Məni bura qalxmaq və c ctype əlavə edək növləri, və indi mənə burada enmək imkan və bu xətti aşağıdakı kimi yenidən yazmaq. Bu deyirlər Belə aşağı, mən iddia, s bracket i, sonra silmək üçün gidiyorum ümumiyyətlə bu iki satır. Belə ki, indi başqası, mən ümid edirəm yazdı adlı funksiyası aşağıdır və bu, etdilər və onlar elan növbə həyata bu ctype.h daxilində. İndi line 27 tərk etmək gidiyorum tək, mən line 31 tərk etmək gidiyorum tək, amma sonra nə qədər fərq Mənim kodu up dartılmış. İndi təmiz deyil. Bu nəzərdən az çətindir İndi funksiyası, üstəlik, çünki belə gözəl yalnız adına deyir nə. Belə ki, indi bu saxlamaq üçün gedirəm. Mən Uzaklaştırmak gedirəm. Və ola bilər yalnız Not kimi Booleans, Boolean dəyərlər doğru və ya yalan ki, dəqiq nə edir səmərəli yekunları aşağı. Mənə derleyeceğiz edək. Mənə yenidən run edək. İndi isə daha edək H-E-L-L-O, daxil edin. Ki, olduqca yaxşı. Və daha cəhd, mən əmin olun bir şey qıymaq etməyib. Bu həmçinin kapitallaşdırılır. Amma bu kifayət qədər yaxşı deyil, çünki Mən gedən heç alıram ki, başqa şey Mən, həqiqətən, onun vasitəsilə iş halda xatırlayıram diqqətlə üzərində, demək, kağız deyil Bu lənətləmək xətt. Olsaydı, gözəl olmaz üst adlı bir funksiyası? Yaxşı orada çıxır həmçinin ctype.h edir. Mən irəli getmək və yazın gidiyorum - mənə line geri gətirmək imkan verir. Əvəzində bu burada, mənim irəli gedək və demək% c üçün əvəz Bu funksiya zəng nəticəsində s i-ci xarakterinə yuxarı. İndi onu əldə bildiriş bir az balanslı. Mən nə qədər takip var Mən açdı və qapalı etdik parantez. Belə ki, indi hətta təmiz deyil. İndi bu proqram yaxşı oxuyan və bu, çünki daha yaxşı arguably nəzərdə çox, daha çox oxunaqlı, lakin heç doğru edək. Kapitallaşdırmaq olun. . / Kapitallaşdırmaq. H-E-L-L-O. Gəlin, bir daha çalıştırın D-A-V-I-D. OK, belə ki, biz hələ də istəyirik forma olduqca yaxşı. Amma indi üst. Mən bir daha var ki, təklif zəriflik biz olacaqdıq edə bilər həqiqətən bərkidin bilər ki, həqiqətən gözəl Bu kodu və həqiqətən bizə beş vermək Məsələn dizayn beş, həyata. Qurtarmaq üçün gözəl nə olardı? Yaxşı, necə lənətləmək uzun bu blok baxmaq kod sadə bir şey etmək kifayətdir. İndi bir kənara, siz ola bilər kimi bu ilin super bölmədə görüldü həftə sonu, siz ciddi ehtiyac yoxdur buruq aşırma yalnız bir zaman biz təklif olsa belə kod xətti çox edir ki, saxlamaq Not U-formalı olduğu kimi, daha aydın blokları, filial daxilində budur. Üst Amma əgər bu, gözəl olmazdı , giriş verilmiş, o çevrilib bu deyil, əgər böyük və nə ki, əks halda gözəl olsa artıq böyük var? Sadəcə vasitəsilə keçmək və tək buraxın. Belə ki, bəlkə ki, yoxdur. Mən cəhd və yalnız ümid edə bilər , lakin mənə bildirin ki, başqa bir şey tanıdacaq. Əvəzində bu daxili terminal istifadə pəncərəsini aşağı burada Xatırladaq ki, bu meydanda qara icon siz verir mən tam bilər ki, böyük terminal pəncərə Mən istəyirəm əgər ekrana? Belə ki, onlar növ işin istəyirik çıxır adlı, lakin deyilən bu şeyi var man pages, manual pages, qısa üçün insan, və mən bu ilə daxil ola bilərsiniz yazaraq Man - Ne tür istəyirsiniz? Üst Man. Bir var, əgər artıq qeyd ilə, kompüter daxilində fəaliyyət Bu halda yalnız olan cihaz əməliyyat sistemi Linux, o gedir Mənə bir qədər sirli set vermək çıxış, ancaq zamanla tapa bilərsiniz ki, həmişə olduqca çox formatlanması Eyni belə ki, istifadə almaq üçün başlayın. Üst üst bildiriş və yəqin eyni sənədləri edir aşağı üçün. Bəzi kəsici edilib Kim yazdı guşələrindən və bir səhifə bütün qoydu. Bunlar "məqsədi həyat çevirmək üçün yuxarı və ya kiçik məktub. Adam səhifə Sinopsis altında edək ki, Mən nə fayl mənə dərs deyir Bu şey istifadə etmək üçün daxil. Bu mənim bu üçün imza verən oldu funksiyaları, onların hər ikisi, hətta biz indi yalnız olsa bir qayğı. Burada indi təsviri deyil. Üst məktubu çevirir mümkün olduqda c böyük etmək. Hələ ibrətamiz, amma mənə bildirin ki, indi geri dəyərinin altında şey baxmaq geri təhvil oldu. Belə ki, geri dəyəri edir ki, bu valyutaya çevrilmişdir məktub və ya c əgər dönüşüm mümkün deyildi. C nədir? Orijinal xarakter. Orijinal xarakteri və biz bilirik tərəfindən yenə də qədər davam edir ki, referat və kim bu yazmışdır funksiyası yalnız qərara aldı ki, giriş yuxarı və aşağı sadəcə özbaşına c adlandırmaq gedir. Onlar ən çox bir şey çağırıb bilər istədikləri, lakin onlar bu saxlanılır c kimi sadə. Mən adam səhifə müraciət etdik. Bu cümlə mənə reassures ki, əgər bir kiçik məktub deyil, bu, yalnız C, mənə geri verir Mən xilas edə bilərsiniz deməkdir mükəmməl, mənim başqa vəziyyəti. Mənə gedit geri bildirin, İndi mənə yalnız bunu bildirin. Mən printf bəyanat surəti gedirəm. Mən qabaqda və sağ daxili getmək gidiyorum loop çap üçün həyata və almaq tikinti əgər indi bu bütün xilas. Pis bir fikir deyil və bu, çox idi çox düzgün və uyğun biz təbliğ etdik hər şey ancaq lazım deyil. Ən qısa zamanda bir neçə kitabxana həyata kimi funksiyası başqa kimsə var yazmış, və ya bəlkə başqa yerdə yazdı fayl, həqiqətən, istifadə edə bilərsiniz kodu kısaltın başlayın. Və mən yaxşı stil kimi şeylər deyəndə, Bu şəxs adlanır ki, edir əvvəllər yuxarı və ya fəaliyyət aşağı gözəl faydalıdır, çünki onlar çox təsviri istəyirik. Siz funksiyaları zəng etmək istəmirəm olan x və y və z, çox, çox az mənası. Ki, seriyası Sualınız irəliləyişlər? Belə ki, biri demək kifayətdir takeaways hətta öz problem kimi dəsti - bəlkə problem müəyyən bir, lakin əlbəttə P hətta iki və irəli qurmaq Onlar doğru olduğunuzda mütləq deyil onlar yalnız mükəmməl demək hələ və ya xüsusilə yaxşı dizayn. Yəni digər ox var haqqında fikirləşməliyik. Belə ki, bu bir simli içərisində Bir var kompüter yaddaş, lakin əgər H-E-L-L-O kimi simvol bütün dəstə RAM daxilində və güman Siz proqram string almaq zəng Belə ki, neçə dəfə Əgər bir string almaq zəng yenidən string almaq çağırırıq. Yaxşı, nə olacaq zamanla baş? Başqa sözlə, siz bir xətt varsa kimi kontekstdə kodu olsa yerinə, string s olur - bunu edək. String adı string almaq bərabərdir. Belə kodu ki, xətti deməkdir Güman onun adı üçün istifadəçi xahiş. Kodu Bu yeni xətt soruşmaq üçün nəzərdə tutulur onun və ya onun məktəb üçün istifadəçi, və Bu yeni xətti və s. Biz xahiş saxlamaq Güman başqa üçün istifadəçi və bir və digər simli. Onlar yaddaş qalmaq olacaq eyni zamanda. Bir başqa döymək niyyətində deyil. School digər üzerine deyil. Amma onlar bütün yerləşir etmək yaddaş başa? Yaxşı, biz ekranda çəkmək başlamaq əgər, biz bu şey istifadə edə bilərsiniz burada Kara Tahta kimi bu qara əgər düzbucaqlı mənim kompüter təmsil yaddaş, mən özbaşına başlamaq üçün gidiyorum az kvadratlar daxil qədər ayırıcı, hər təmsil edən və yaddaş bir byte. Açığı, siz RAM bir gigabyte varsa bu gün, bir milyard bayt var kompüter yaddaş, belə ki, Bu meydanların bir milyard. Beləliklə, bu, demək kifayətdir miqyaslı həqiqətən deyil. Ancaq biz bütün bu rəsm davam edə bilər aydın meydanların miqyasını və bu deyil kollektiv təmsil mənim kompüter yaddaş. İndi nöqtə, nöqtə, nöqtə olduğu edəcəyik. Belə ki, başqa sözlə, mən indi təklif get simli istifadəçi mənə vermək simli, nə olar? Əgər "salam" olduğunu başa istifadəçi növləri qədər H-E-L-L-O. Amma güman istifadəçi sonra növləri - Əslində, mən görmüşük lazım deyil salam biz xahiş edirik, çünki onların adları onlara. Beləliklə, mən bunu edə bilər, əgər geri gidelim. Belə ki, mənim ad üçün D-A-V-I-D I növü, əgər lakin Xatırladaq ki, ikinci xətt kodu yenidən string almaq edildi onların məktəb almaq üçün. Söz harada ki, istifadəçi növbəti getmək davam növləri? Bəli, bəlkə daxil olacaq H-A-R-V-A-R-D. Mən var Belə ki, hətta iki satır kimi tərtib, bu yalnız Sizin bayt bütün dəstə kompüter RAM. İndi mən, çünki bir problem indi var Bu çox ağlabatan ildə RAM istifadə lakin sadəlövh şəkildə sort, nə edə bilərsiniz yəqin ayırmaq deyil? Bir başlayır və harada bir başa, sağ? Onlar birlikdə blurring cür istəyirik. Belə ki, kompüter çıxır Bunu deyil. Mənə həqiqətən vaxt geri hərəkət edək bir neçə simvol və yerinə Harvard istifadəçi adı dərhal sonra gedir, istifadəçi həqiqətən arxasında olur pərdə xüsusi bir xarakter tərəfindən daxil onun üçün kompüter. / 0, əks halda nul xarakter kimi tanınan annoyingly N-U-L adlı deyil, N-U-L-L, ancaq kimi / 0 yazın. Bu, yalnız bütün sıfır bit var bir marker edir ilk sözü arasında olan istifadəçi tipli və ikinci. Harvard həqiqətən artıq bitir Belə ki, simvolların Bu ardıcıllığı kimi və bir daha / 0. Bu olan, başqa sözlə, tərəfindən Sentinel dəyərlər, səkkiz bitişik sıfır bit, indi ayırmaq başlaya bilər bir-bir xarakter. Belə ki, "salam" dır nə bütün bu vaxt həqiqətən, a / 0 ilə "salam" və eyni zamanda, orada güc çox yaxşı çox bir az daha çox RAM olmaq kompüter daxilində. Mənə indi başqa bir şey edək. O çıxır ki, bu meydanların bütün biz, onlar, bəli, rəsm olduğunuz strings, lakin ümumiyyətlə, bu şeyləri seriallarda var. Bir sıra yalnız yaddaş yığın edir ki, geri geri geri geri və adətən yolu ilə bir sıra istifadə Bu kvadrat mötərizə notation edir. Belə ki, biz bu bir qədər görmək olacaq zamanla, lakin mənə davam imkan və açmaq, İT yaş zəng edək. Və biz nə edə biləcəyimizi qeyd həmin tövsiyələr, bir az Burada az daha sintaksis. Belə ki, bu proqramın xətti 17 - həqiqətən, mənə ilk proqram run edək belə ki, biz bu şey nə görə bilərsiniz. Mənə əsrlər etmək zəng edək Bu proqram tərtib edir. . / Əsrlər. Otaqda neçə adam var? Üç çağırın. Ilk şəxs yaşı? 18, 19, və 20. İndi bir qədər ridiculously, yalnız bir proqram əsrlərdə həmin etmişdir üç nəfər. Belə ki, imkanı aydın var Burada bəzi əyləncə hesab üçün. Təşəkkürlə, riyaziyyat doğrudur. 18 getdi 19 19 getdi 20 və s. Amma nə həqiqətən olmaq üçün nəzərdə oldu illüstrativ burada saxlanılması edirik necə bu üç xalq yaş. Mənə nə Yakınlaştırmak edək burada gedir. Belə ki, birinci, bu ilk bir neçə xətləri olmalıdır olduqca tanış edilməlidir. Mən yalnız üçün istifadəçi isteyen alıram oda insanların sayı. Sonra istifadə int almaq və nə alıram isə təkrar və təkrar edirik. Biz əvvəl model gördük, amma sonra line 27 yeni və həqiqətən olduqca faydalı və olacaq getdikcə faydalı. Nə line 27 fərqli Qeyd edək ki, Mən elan görünür ki, adlı yaş int, lakin gözləyin. Bu, sadəcə int yaş deyil. Bu kvadrat mötərizədə var olan daxili n. Bu çərçivədə Belə ki, bracket n deyil, Amma burada bir printf bəyanat daxilində Bu yeganə line 27 bu xətt , mənə n ints vermək deyərkən, hər biri növü int edir. Beləliklə, bu, bu, necə deyərlər, bir vedrə deyil bu halda, üç integers geri Geri ki, mən səmərəli üç dəyişənlər var. Alternativ olmaq aydın, bu olardı. Mən istəyirdim Əgər ilk tələbə yaş, Mən bunu bilər. Mən istəyirdim Əgər ikinci tələbə yaş Mən bunu bilər. Mən istəyirdim Əgər üçüncü tələbə yaş, Mən bunu bilər. Və Allah qorusun, biz hər kəsin ehtiyac Bu otaqda yaş - Mən demək, bu surəti bir çox bir heck ki, təkrar və yenidən yapışdırıb. Və üstəgəl bir dəfə mən bu proqram tərtib başqa bir tələbə həyata üzərində gedən əgər ki, qapı, indi mənim nömrəsi dəyişənlərin düzgün deyil. Belə ki, nə bir sıra haqqında gözəl olduğu kimi özünüz hiss başlamaq tezliklə çıxarmaq və yapıştırma, bahis ki var ən yaxşı yanaşma. Bir sıra potensial dinamikdir. Mən əvvəlcədən neçə nəfər bilmirəm , oda olacaq lakin mən onların n lazım bilmirəm və mən lazımdır Zamanı gəlincə n anlamaq. Kodu Bu xətt indi deməkdir, mənə ver Bu kimi görünür ki, yaddaş yığın burada ekranda qutuları sayı n tamamilə asılı olduğunu istifadəçi kimi daxil tipli Belə ki, indi bu proqramın qalan nə biz, həqiqətən, olduqca oxşar yalnız simvol ilə idi. Mən loop üçün var bildiriş line 30 başlayır. Mən array almaq hüququ sonra, mən y n üçün sıfır qədər bərabər olan təkrarlamaq. Mən yalnız bu ibrətamiz printf var məktub deyərək mənə yaş vermək şəxs #% i, belə ki, bir nömrəli, iki nömrəli, sayı üç. Və mən niyə belə etdiniz? Açığı, insanlar bir saymaq üstünlük verirlər kompüter alimləri isə up haqqında, up sıfır. kompüter elm deyilik Bu cür proqram istifadə ki, biz istəyirik yalnız hesablama başlamaq niyyətindəyik normal insanlar kimi bir at. İndi line 33, bir az fərq syntax müxtəlif parça. Tipli dəyişən I-ci yaş array bir int almaq üçün gedir. İndi nəhayət, bu yalnız Burada hesab aşağı. Mən iddia ayrı bir loop qərar bir müddət bu indi keçir, ayrı-ayrı loop, bu xətlər icra. , Nəfər Mən indi bir il olacaq dək təvəllüd, amma bu xəbər deyil i Dəyişən. İndi% int i edir. Ilk tutucu kimi bildiriş, mən i plus 1 plug, belə ki, biz kimi saymaq normal şəxs. Və sonra onların yaş dəyəri üçün i dək təvəllüd, mən yaş bracket almaq i - və nə mən burada bir plus edirəm? Onlar yalnız yaşlı. O, proqramlar mənim axmaq seçimi var. Onlar yalnız bir il yaşlı. Mən hər hansı bir sayı yazın bilər Mən, həqiqətən, orada istəyirəm. Beləliklə, nə həqiqətən bütün var burada aktuallığını? Yaxşı, mənə, həqiqətən, geri hərəkət edək burada və şəkil çəkmək irəli yalan nə. Biz sonrakı məşğul olacaq nə Problem Set iki ildə dabbling edir Kriptoqrafiya dünya. Beləliklə, bu simvol bir simli, belə bir çox chars ardıcıllığı, və nə Bu nə deyir? Bu online versiya deyil slaytların. Mən bir, bu bərabərdir ki, iddia bir çox ildən axmaq reklam əvvəl həqiqətən xatırlayıram bilər ki, mənşəyinə biri. Beləliklə, bu şifreleme bir nümunəsidir və ya Kriptoqrafiya. Əgər istəyirsinizsə ki, çıxır faktiki informasiya və ya pay göndər təhlükəsiz kimsə ilə məlumat bu kimi bir mesajı kimi, siz məktublar dırmaşma. Lakin adətən sözlər təsadüfi Pişmiş deyil. Onlar bir şəkildə permuted və ya dəyişdirilə edirik bir şəkildə ki - oops. Ki, növbəti dəfə əyləncə spoyler var. Belə ki, yəqin nə eşleyebilirsiniz Ki baxımı B. Diqqət O kapitallaşma-müdrik. Göründüyü r e olur. Göründüyü F-H-E-R S-U-R-E olur. Belə bir Xəritəçəkmə var çıxır, və bu halda olduqca axmaq var hər kəs bunu həyata fiqurlu əgər birdən? Bu adlı bir şeydir Rot 13, 13 qayıt. Bu şifreleme stupidest edir mexanizmlər sözün yalnız çünki , məktubları hər biri 13 edər mənada axmaq ki, yalnız əgər əllərinizi pulsuz vaxt bir az var və qələm, və ya yalnız düşünmək Sizin rəhbəri ilə, siz cəhd edə bilər bütün mümkün əlavələr - bir, iki, üç nöqtə, yalnız nöqtə, nöqtə, 25 bütün əlifbası döndürme ve Nəhayət, siz anlamaq lazımdır nə bu mesaj. Əgər bu kimi bir şey idi əgər Sizin mesaj keçər məktəb ən yaxşı dostu, sizin grade məktəb əgər müəllim sadəcə oxuyun mesajı və kobud, həlli məcbur siz kazanılmış ola bilər ki, bir cavab. İndi əlbəttə, real dünyada, Kriptoqrafiya daha inkişaf etmiş. Bu, mətn parçasını edir istifadəçi adı və ki, kompüter sistemi parol, demək olar ki, bizim bütün etmək, və Bu nə Parolu güc deyil sabit saxlanılır əgər kimi baxmaq ancaq şifrəli olaraq sürücü. Bu məktubların yalnız bir rotasiya deyil Bir B və B Bu C. edir daha çox inkişaf etmiş, lakin istifadə ümumiyyətlə gizli əsas kimi tanınan nə Kriptoqrafiya. Bu şəkil aşağıdakı deyir bir neçə nişanlar hekayə. Sol, biz nə biz düz mətn zəng edəcəyik. Kriptoqrafiya, düz dünya mətn yalnız orijinal mesaj İngilis və ya Fransız yazılı və ya heç bir dil. Siz onu şifrelemek etmək istəyirsinizsə, biz keçmək lazımdır bu pictorially bir asma kilit ilə, belə ki, alqoritm bəzi növ, bəzi funksiyası Kimsə yazırdı ki, ya proqram məktubları inşallah ki scrambles daha dolaşıq yalnız 13 əlavə onların hər birinə. Siz ki, prosesi çıxmaq nə orta orada cyphertext adlanır. Bir sexy söz cür. Bu, yalnız bu şifrəli vasitələri düz mətn versiyası. Və həmin gizli olduğu zaman 13 və ya mənfi 13, sizə edə bilərlər kimi decrypt bir mesaj. Belə ki, problem şeylər arasında, iki Set Siz Hacker əgər edəcəyik Edition, siz kodu yazmaq lazımdır figuring bu parol çat nə onlar idi və necə idi Biz nə olsa şifrelenmiş, siz bir az vermək yol boyunca rəhbərliyi. Standard Edition, biz təqdim ciphers bir neçə şifreleme mexanizmlər, bir Sezar, bir adlı Vigenere adlı ki, hələ də A olur yerləşir fırlanma ciphers bir şey, B bir şey olur, lakin program bunu etmək lazımdır həqiqətən bir sirr var olacaq, çünki adətən bir sıra olan cəlb düyməsi və ya bir söz ki, yalnız göndərən və bu alan messages anlamalıdır. İndi, bu həqiqətən incarnations var real dünyada. Bu, məsələn, kiçik yetim edir Annie gizli decoder ring, və həqiqətən, bu həyata keçirə bilər fırlanma ciphers - A bir şey olur, B olur bir şey - Seyyar bir neçə ilə, xarici bir, içəridə bir belə ki, siz təkər dönüşümlü və ya üzük, siz həqiqətən sıralamaq bilər müxtəlif hərflərlə məktublar, gizli kodu əldə. Bu gün üçün cliffhanger kimi, nə mən nə istədiyiniz düşündüm bir az throwback ki, siz TV döndərsələr dekabrın 24-də, siz izləyə bilərsiniz üçün film reklam nauseum Ard-arda 24 saat. Amma bu gün üçün, burada açmaq lazımdır və bizə yalnız iki dəqiqə vermək pedaqoji müvafiq Christmas Story Ralphie adlı bir adamcıq ilə. [Video playback] -Ola bütün və çeşitli ki, məlum Ralph Parker bununla təyin olunur bir Kiçik yetim Annie gizli üzvü dairə və bütün etmək hüququna malikdir fərqlənmə və faydaları ona baş. , Little Yetim Annie-imzalanmışdır. Mürəkkəblə, Pierre Andre Countersigned. Onur və faydaları artıq doqquz yaşında. [RADİO ÜZRƏ qışqırır] Hadi ilə əldə edək. Mən bütün caz lazım deyil qaçaqçı və Pirates. Üçün sabah gecə dinlə qara bağlanması macəra pirat gəmi. İndi Annie gizli üçün vaxt Əgər üzvləri üçün mesaj gizli dairənin. , Uşaq unutmayın. Annie gizli Circle Yalnız üzvlər Annie gizli mesaj deşifre bilər. Unutmayın, Annie siz asılı olaraq. B2 üçün sancaqlar seçin. Burada bir mesaj. 12, 11, 2 - -Mən ilk gizli görüş edirəm. -25, 14, 11, 18, 16 - -Pierre böyük səs gecə idi. Hesab edirəm ki, bu gecə mesaj deyə bilər həqiqətən çox əhəmiyyətli idi. -3, 25. Bu Annie özü bir mesaj var. Unutmayın, hər kəs demək deyil. -90 Saniyə sonra, mən yalnız otaq Ben evin olduğu doqquz bir oğlan gizlilik və deşifre oturmaq bilər. Aha, B. Mən növbəti getdi. E. ilk sözü "ola" dir. S. İndi daha asan gəlirdi. U. 25. Ki, R. var , Ralphie on-Hadi. I go gerek. -I'll, sağ aşağı Ma ola bilər. Gee harika. -T. O. əmin olun. Nə əmin olun? Little Yetim nə idi Annie demək çalışır? Nə əmin olun? -Ralphie, Randy getmək üçün var. Siz çıxmaq xahiş edəcək? -Bütün sağ, Ma. Mən doğru olacaq. -I yaxın artıq əldə edilmişdir. Gərginlik dəhşətli idi. Bu nə idi? Planetin taleyi bilər balansında asmaq. -Ralphie, Randy nin gerek gedin. -I'll üçün sağ çıxmaq yüksək səslə ağlayır. -Demək olar ki, var. Mənim barmaqları uçdu. Mənim fikir bir polad tələ idi. Hər pore vibrasiyaya. Demək olar ki, aydın idi. Bəli, bəli, bəli, bəli, bəli. Sizin Ovaltine içmək əmin-olun. Ovaltine? A crummy kommersiya? Köpək oğlu. [END video playback] HOPARLÖR 1: Bu CS50 olduğunu, Problem Set iki olacaq. Növbəti həftə baxın. HOPARLÖR 2: növbəti CS50, bu olur. HOPARLÖR 1: biz belə bir mövzu Beləliklə, uzaq baxdı funksiyası göstəricilərinə ki. İndi bir funksiyası pointer yalnız ictimai üçün ünvan lakin çox kimi funksiyası - bir oğlu -