PROFESSOR: Belə ki, gündəm üçün bu həftə deyil ki, çox stuff. Amma ümid edirəm çox, çox faydalı və uşaqlar bu həftə üçün müvafiq. Amma biz, bəlkə 15 sərf etmək olacaq Yalnız tez söhbət 20 dəqiqə link siyahısı haqqında. Link siyahıları gedir viktorina əhatə. Belə ki, bəlkə bu, çox faydalı olardı ki, nə haqqında bir az öyrənmək üçün. Biz böyük sərf etmək olacaq Bugünkü hissəsinin əksəriyyəti viktorina sıfır təcrübə problemləri üzərində gedən. Və sonra biz bəlkə 20, 30 dəqiqə saxlaya bilərsiniz Hər hansı bir uzunsürən suallara sonunda hər kəs var. Və son sonra beş dəqiqə, mən gedirəm viktorina üçün nasos qədər çıxış. Siz uşaqlar bütün burada ki, olmaq istəyirəm. Bu yaxşı bir zaman olacaq, çünki. Bütün hüquqlar, belə ki, bəzi link siyahıda material. Necə onlar adətən strukturlaşdırılmış etdiyiniz sağ, bir node deyirlər nə var? Siz adlı bu şeylər var qovşaqlarının, structs var. Mən yaratmaq üçün necə artıq getmək lazımdır növbəti slayd bir node. Lakin mahiyyətcə bütün bağlı məlumatlar siyahıları ki, göstəricilər vasitəsilə birlikdə sinirli edilmişdir. Və belə ki, üstünlüyü var bir bağlı siyahı üzərində istifadə, bəlkə bir sıra kimi, əslində bir sıra Siz bir bitişik blok lazımdır bütün eyni yerdə yaddaş, bir digər sonra, ki, var etmək. Bir bağlı siyahı Halbuki, siz bilər yaddaş təsadüfi kiçik bit var bütün kompüter üzərində göstəricilər ilə birlikdə sinirli. Bu yolla siz məlumat əldə edə bilərsiniz ki, sonra bir gəlir digər sonra, digər yalnız böyük bir yığın qoymadan haradasa kompüter yaddaş. Və bu əsas biri biz link siyahısı səbəbləri. İkincisi, dinamik etmək çox asandır Çünki serialda link siyahısı boyutlandır, Bir sıra elan zaman, Müəyyən bir set dəyəri var. Mən yaratmaq istəyirdi deyirlər 10 integers bir sıra. Mən 10 bir sıra yaratmaq integers, və bu. 10 var. Hesab edirəm ki, sonra nə bilmirəm. Mən 11 etmək istəyirdi, bunu edə bilməz. Mən 9 etmək istəyirsinizsə, bunu edə bilməz. Bir link siyahısı, halbuki siz əlavə edə bilərsiniz və silmək və istədiyiniz yerdə daxil edin. Siz dinamik boyutlandır bilər Sizin , burada data strukturu strukturu. Və bizə bir çox verir əlavə rahatlıq biz adətən olmayan Diziler ilə var. Hər kəs əsas on qarış bir link siyahısı necə strukturu və ya niyə biz bir sıra üzərində bir istifadə etmək lazımdır? Bəli, biz ətraflı artıq getmək lazımdır necə həqiqətən bir yaratmaq üçün. Amma bu yalnız növ var İndi ümumi mənada. Cool. Və belə seriallarda birlikdə sinirli edilir bu sevimli kiçik şeylər adlı qovşaqlarının. Bütün node struct növü deyil. Istəyirdi əgər struct unutmayın, dəyişən müəyyən bir növü yaratmaq C artıq deyil Bir proqramçı kimi, mövcud, həqiqətən özünüz ki yarada bilərsiniz. Məlumatların və bu tip strukturu node adlanır, həqiqətən, bizim yaradılmışdır öz C ərzində yoxdur. Və yol ki, var bir yaratmaq typedef struct header, Mən deyiləm compiler deyir struct yaratmaq haqqında. Biz "node." Adını olacaq Və daxili gedirik bir dəyişən elan etmək, bir dəyər saxlamaq niyyətində olan. Və sonra biz də olacaq bir pointer çağırıb "next" ki, növbəti işarə link siyahısında node. Və sonra off bitirmək yalnız belə yenidən node təkrar compiler OK bilir ki, mənim struct sonu var. Və bu şəkildə, biz gözləyirik bir cute az array yaradılması bir ilə şey növü dəyəri və bir göstərici ilə. Və bütün onlara keçid edə bilərsiniz birlikdə bu göstəricilər ilə. Onlar bütün növ ola bilər ki, bir zəncir birlikdə sinirli. Cool. Siz bir az daha yaxşı eşitmək edə bilərəmmi? Auditoriya: Bəli. PROFESSOR: Bütün hüququ. Belə ki, uşaqlar Gördüyünüz kimi, yol, Tipik link siyahısı quruluşu Bir baş var. Olmayan baş dəyəri var hər hansı digər göstərici ilə qeyd olunur. Amma bu, qeyd etmək olacaq və ya istinad başqa bir node. node sonra istinad gedir node, və s və s sonra Siz nəhayət hit qədər Sizin link siyahısı sonu. Və yalnız bir göstərici yoxdur. Belə ki, hətta bir zəncir kimi hesab edirəm ki, və ya Etdiyiniz uşaqlar hər hansı bir, mən bilmirəm, Fruit Loops kimi zaman az idi. Siz birlikdə simli onlara olardı və boyun ətrafında onlara köhnəlir. Bu eyni şey hesab edirəm. Bu kiçik şeylər var ki, birlikdə simli bir nöqtə sonra, bir sonra Bu və s və s bir zəncir qədər bir veri strukturu lakin istədiyiniz ki, istifadə edə bilərsiniz. Belə ki, yol ki, bu, biz adətən daxil və ya silmək bir link hər hansı bir node siyahısı çox fərqlidir ki node olduğu asılı olaraq. Belə ki, məsələn, çünki göstəricilərinə həmişə xüsusi dəyərdə işarə edərək, Siz silmək və ya bir node daxil zaman, Siz pointer əmin etmək istəyirəm bütün sağ şeyi işarə edir. Siz istəyirdi Belə ki, potensial daxil bir dəyəri ilə yeni node bir sorted link daxili siyahısı, biz burada bütün bilirik olacaq şəkil sağ, baş və iki arasında getmək? Bir orada uyğun çünki. Lakin yol olan biz bunu olardı ilk göstərici dereferencing edir baş və bir ki, göndərilməsi. Amma biz burada bir problem minir. Hər kəs nə problem görə bilərsiniz Biz ilk dereference idi əgər bir baş göstərici? Nə problem biz cəhd daxil ola bilər bizim serialın qarşısında əlavə etmək üçün? Auditoriya: [işitilemez] PROFESSOR: Məhz. Belə ki, burada biz idi bir göstərici var bir dəfə iki baş işarə. Amma siz ki, xilas əgər pointer, siz bir qeyd biz indi heç bir fikrim yoxdur burada iki tapmaq üçün getmək. Mən əvvəl qeyd etdiyim kimi, siz var, çünki bir kompüter yaddaş nəhəng yığın. Bütün bu qovşaqlarının bilər təsadüfi interspersed olunacaq Sizin kompüter hər hansı bir yerdə. Və necə bilmirəm ki, tapmaq haqqında getmək. Və belə ki, göstəricilərinə lazımdır sonunda bütün qovşaqlarının işarə. Və ya başqa əgər təsadüfən bir dereference ilk atamadan dəyəri ilk sen yalnız itirmək gedir sonra hər şey. Belə ki, nə biz olacaq Bunu ilk ki, var bir pointer yaratmaq istəyirəm node daxil etmək istədiyiniz. Siz harada qeyd onu əlavə etmək istəyirəm, və sonra sonra sizə biri geri başını qeyd edə bilər. Burada hamıya mənada edirmi? Great. Yalnız bir zəncir kimi düşünün. Bir zəncir əlavə etsəniz, Bu intuitiv cür necə ki, daxil haqqında getmək istiyorum. OK, belə ki, çox əslində Mən bu olardı fikir daha qısa, link siyahıları beş dəqiqə oyun. Məhz belə uşaqlar var ki, nə əsas fikir. Burada viktorina sıfır üçün gündəliyi var. Bu qorxutmaq imkan verməyin. Mən bir çox informasiya var bilirik. Bu, çox qorxudan görünür. O, həmçinin bir çox var mən şərtlər CSC cür düşünürəm. Hexadecimal strings kimi şeylər, göstəricilər, dinamik yaddaş ayırmaları çox qorxudan Səslənən şərtləri var. Amma biz onları pozmaq olacaq aşağı, bəzi təcrübə problemləri yoxdur ki, uşaqlar bütün Bu test üçün hazırıq. Necə bir çox uşaqlar var Artıq təhsil başladı? OK, uşaqlar yəqin ki, istəyirəm başlamaq başlamaq üçün ki, viktorina sabah çünki. Və ya bəzi Cümə axşamı. Bəli, belə ki, biz getmək olacaq bəzi təcrübə problemləri üzərində. Uşaqlar bütün almaq istəyirsinizsə kağız bir hesabatı, qələm həyata. Biz yalnız sərf etmək olacaq Bugünkü hissəsinin əksəriyyəti ki, bəzi üzərində gedən uşaqlar var ki, viktorina gözləmək nə bir fikir. OLDU. Maddi-texniki Bir neçə heç kim üçün, eləcə də ətraflı kim varsa, orada link olmamışdır Siz ön, cs50.yale.edu getmək bir link var bu səhifə ki, "Quiz Zero haqqında." deyir Link orada götürür. Siz oxumaq varsa, onu oxuyun. Bu, həqiqətən, vacibdir deyir, çünki viktorina ilə bağlı məlumat. Mən bu çıxarmaq üçün gedirəm yalnız çünki, fiziki, Sizlərin harada bilmirsinizsə getmək üçün, biz problemləri var. Və A baxımından əgər son N, hüquq məktəb auditoriyada gedin. Əgər P son başlayır Z, Davies Auditoriya gedin. Və bu, yalnız üçün müraciət Çərşənbə bölməsində insanlar. Siz viktorina alaraq edirsinizsə Cümə axşamı, siz SSS 114 getmək harada mühazirə adətən edir. Auditoriya: [işitilemez] PROFESSOR: Z O, siz olacaq Davies auditoriyada getmək üçün. Mən, dəyişdirmək üçün gedirəm? Oh, Bəli, yalnız avtomatik uğursuz. Bəli Oh, siz Christa var. Bəli, mənim pis. Yep, Z O, siz olacaq Davies Auditorim getmək üçün. Mən bu dəfə mən yüklemek düzeltmek üçün gedirəm. Bəli. Və sonra da bir şey ağla əhəmiyyətli rəsmi, əgər ki, Çərşənbə, var Çərşənbə bölməsində alındı, Siz Çərşənbə günü sizin viktorina almaq lazımdır. Və cümə axşamı alındı ​​edirsinizsə, Siz viktorina Cümə axşamı almaq lazımdır. Və bu sinif zamanı var. Harada, mən 1:00 kimi hesab edirəm ki, Çərşənbə 2:15 və 2:30 üçün 3:45 Cümə axşamı. Bir barışmaz münaqişələr varsa, Dekan bəhanələrlə yalnız bir şey var, təəssüf ki, bilər. Biz var, çünki bir sorğuların əksəriyyəti Cümə axşamı Çərşənbə keçid. Hansı halda şərəf bilməz Biz Dean tələbi var. OLDU. Biz başlamaq əvvəl Belə ki, təcrübə problemləri neçə, Mən yalnız artıq getmək gedirəm Uğur üçün Andy faydalı məsləhətlər. Siz uşaqlar, zaman siz həqiqətən öyrənmək əl ilə kodu yazılı təcrübə istəyirəm. İlk dəfə heç mən bir CS viktorina etdi, mən idi əl ilə təcrübə yazılı kodu əvvəl və son dərəcə idi nə qədər çətin şok. Uşaqlar daxil deyil zaman hər şeyi yazaraq vərdiş, bu, çox təbii olan gəlir edə autocompleted üçün orada Mötərizədə və semicolons. Siz onu yazmaq zaman əl ilə, bəzən var çox, çox asan bir nöqtəli vergül unutmaq, və ya bracket bağlamaq unutmayın, və ya bir nöqtə yaxın unutmaq, ya kimi bir şey. Belə ki, əl ilə kodu yazmaq zaman, bir çox fərqli hiss var. Belə ki, uşaqlar, siz çalışırıq təcrübə problemləri bəzi vasitəsilə, yaxşı həqiqətən bu gün təcrübə olardı. Siz etdiyiniz və ya sabah, mən güman cümə axşamı viktorina alaraq. İkincisi, biz kimi, son var, təcrübə səkkiz il dəyər online viktorina. Bu ilki viktorina yəqin ki, olacaq çox, onların hamısı çox oxşar. Onlar çox oxşar istəyirik. Siz növ daxil sual növü stil Biz xahiş ki, növü biz onu yazmaq lazımdır funksiyaları, Et Cetera, Et Cetera. Belə ki, təcrübə sınavlar xüsusilə vaxtı məhdudiyyətlər altında. 75 dəqiqə viktorina edir etmək vaxt məbləği bir çox. Bu, çox, çox uzun deyil. Və belə ki, uşaqlar həqiqətən istəyirəm uşaqlar var ki, əmin etmək yazı vərdiş tez əl ilə kodu. Siz ilk istəmirəm, çünki vaxt ki, uzunluğu bir viktorina görmək Sizin viktorina olun. Siz uşaqlar həqiqətən əmin etmək istəyirəm Siz əvvəlcədən təcrübə edir. Dördüncüsü, siz nəzərdən istəyirəm mühazirə və bölmə slaydlar. Siz şeyi yadda yoxdur. Əslində, hər kəs icazə bir ağ kağız qeydlər bir hesabatı, ön və arxa. Siz uşaqlar yazın və ya yaza bilərsiniz. Özünüz alarkən ehtiyacı taparsınız bir şey ki, hesabatında yazmaq. Mən sizə zəmanət, siz istəmirəm ki, viktorina ortasında vurulmuş kimi olan yeah oh, nə ki, sort qarşı bu cür uzunluğu. Sadəcə onu yazmaq və surəti düz qeyd hesabatı. Sonra həqiqətən, yalnız istifadə edə bilərsiniz beyin problemləri haqqında düşünmək daha faktlar geri olan daha. Və belə ki, həqiqətən istifadə etmək Hər hansı bir niş məlumat Siz yadda lazımdır ki, baxış hesabatında onu Plop. OK, hər hansı bir sualınız maddi viktorina ilə bağlı Biz başlamaq əvvəl bir viktorina problemləri təcrübə? Evet? Auditoriya: Mən bir şans idi yoxdur viktorina baxmaq [işitilemez] lakin bu olacaq proqram əsasən, ya da, olacaq var kimi, bilik suallar? PROFESSOR: Bu bir çox var. Belə ki, yol ki, mən ki viktorina təsvir is-- Mən birlikdə qoymaq bəzi təcrübə problemləri Mən bütün sınavlar çıxardı ki. Amma iki əsas var ki, görürsünüz sual növləri biz xahiş edəcəyik. One məhsullarının bir çox aşağı səviyyədə detal. Biz sizə kodu kiçik bir yığın verəcəyik və bir səhv burada, demək? Burada nə çap olardı? Bu kodu istehsal edəcək nə Et Cetera. Belə ki, çox aşağı səviyyədə məlumat details. Və flip tərəfində, biz çox olacaq yüksək səviyyəli biliklərə əsaslanan suallar. Siz nə izah edə bilər bir ikili axtarış arasındakı fərq və xətti axtarış edir? Niyə biz istəyirəm digər üzərində bir istifadə? Yəqin ki, gdb nədir? Niyə biz gdb istifadə etmək istəyirsiniz? Yüksək səviyyədə, daha fundamental anlayış suallar. Belə ki, bir qarışıq görəcəksiniz Sizin viktorina ikisi. Başqa bir şey biz əvvəl düz onu rəhbərlik? OLDU. Auditoriya: One daha çox. PROFESSOR: Oh, bir daha. Sorry. Auditoriya: Bəli, bütün doğru. Belə ki, 75 dəqiqə deyərək edirik Bu mümkün deyil kimi, çox qısa ki başa çatacaq? Və ya kimi, 75 dəqiqə tam olaraq çox vaxt biz əgər biz lazımdır kimi müvafiq hazırlanmış? PROFESSOR: OK, belə ki, viktorina çətin deyil. Bu, mütləq çətin deyil. Siz vaxt özünüzü qısa tapa bilərsiniz. Siz yəqin ki, 10 kimi, hit olacaq 15 dəqiqə getmək, və bok kimi olan. Mən çox nə yazmayıb. Və tamamilə gözəl var. Hər kəs eyni şəkildə hiss olacaq. Just çox xəbərdar olmaq nə qədər vaxt var. Mən sizə deyə niyə belə ki uşaqlar təcrübə sınavlar yoxdur. Bu həqiqətən böyük bir hissi verir, çünki nə viktorina kimi olacaq. Belə ki, özünüzü olan tapmaq əgər təcrübə başa edə yaxşı məbləğində sınavlar vaxt, siz də özünüzü Pace bilər sonra bir problem olmayacaq çərşənbə və ya cümə axşamı günü. Cool. Belə ki, hər kəs hesab edirəm ki, wants-- əgər insanların çoxu kağız vərəqələri var artıq. Mən mahiyyətcə yalnız gedirəm sizə nümunə suallar vermək, , kimi bir uşaqlar vermək neçə dəqiqə onlara nə. Və biz bir sinif kimi artıq getmək lazımdır onlara cavab nə. Belə ki, bu bir çox səciyyəvidir alacağıq erkən sual yalnız konvertasiya, xahiş müxtəlif əsasları arasında nömrələri. İkili, kimi uşaqlar bilərsiniz Xatırladaq ki, baza iki. Ondalık bazası 10, və ya nə biz insanlar adətən şərh kimi. Hexadecimal sıfır baza 16, doqquz həmçinin A kimi F. vasitəsilə vasitəsilə Belə ki, mən dörd ədəd var uşaqlar xahiş burada çevirmək. Mən sizə üç kimi vermək lazımdır necə vasitəsilə düşünmək dörd dəqiqə bu həlli haqqında getmək olardı. Auditoriya: Biz kalkulyatorlar icazə verilir? PROFESSOR: Siz deyil Bəli, kalkulyatorlar lazımdır. Mən əsas əlavə, mən hesab edirəm ki, hesab edirəm bütün uşaqlar nə etmək xahiş olunacaq. Və yalnız mən belə bir hissi var Hər kəs edilir zaman, yuxarı baxmaq dalğa, I, təbəssüm, bilmirəm Bitirdiğinizde, əgər xoşbəxt baxmaq. Bəli. Bəlkə bir neçə daha çox dəqiqə. OK, onu gətirsin. Mən qəsdən gedirəm uşaqlar daha az vaxt vermək Siz yəqin ki, ehtiyac daha bu problemlərin bəzi, Hesab edirəm ki, əmin etmək istəyirəm sadəcə Biz problemlərin bir dəstə vasitəsilə almaq. Belə ki, heç bir narahatlıq Əgər olmasaydı başa çatdırmaq üçün bir şans var. Siz kimi uzun kimi tamamilə OK bu barədə getmək necə bir fikir. Belə ki, irəli getmək və ilk edək. Belə ki, ilk, hər kəs mənə istəyir ikili, nə bu rəqəm hər nə Onların dəyərlər baxımından təmsil edir? Evet? Auditoriya: Two üçün güc sıfır, bir iki. PROFESSOR: Məhz. Belə ki. Sağ, belə ki, adətən biz baza 10 olduğunuzda Bütün bu kimi var təmsil Sıfır bazasına 10, sağ? Ki, bir yer. 10 yeri var bütün Bir gücü 10. 100 yeri 10 iki hakimiyyətə. Nə olursa olsun baza Siz gedir istəyirik eyni şey ilə, yalnız fərqli bazası ilə. Belə ki, ikili, ki, bütün baza iki edir. Siz bütün çevirmək olacaq iki nə güc daxil rəqəm ki, rəqəmləri. Və bu mənada, biz asan bir yol ola bilər qədər əlavə edə və ya üçün bütün nömrələri yekunlaşdırmaq bazasına 10 dönüştürmek üçün. Belə ki, hər kəs mənə demək istəyirəm nə ilk bir cavab bazası on var? Auditoriya: Two, [işitilemez] PROFESSOR: Bəli. Auditoriya: 42. PROFESSOR: 42, siz gedin. Beləliklə, biz bu cavab var yol idi iki olan ilk iki edir. Plus iki səkkiz üçüncü. Plus iki beşinci olan üzərində qalıb nə edir. Siz onları yekunlaşdırmaq və 42 var. Hər kəs ki, var necə səhv edir? Kimi belə əsas əlavə Mən OK olmalıdır bildirib. Əgər, yaxşı, biz də ki, təcrübə edə bilərsiniz. Lakin bütün doğru. Cool. Hər kəs mənə vermək istəyir eləcə də ikinci cavab? 50? Yaxşı. Necə qarışıq hər kəs Biz ya var? Mən Cool lazımdır növbəti slayd cavablar. Belə ki, heç bir narahatlıq, əgər onu surəti lazımdır. OK, belə ki, hexadecimal bir az trickier edir. lakin Mən sizə uşaqlar göstərmək üçün gedirəm bunu necə bir qısa. Hexadecimal Belə ki, sizin kimi bütün 16 olmaq, unutmayın. Və biz, çünki insanlar həqiqətən kimi ki, təmsil etmək 16 ədəd var, biz olan ilk doqquz sıfır getmək 10 dəyərlər, sonra biz, F vasitəsilə A nə olan növbəti altı dəyərlərdir. Və belə en asan yol getmək hexadecimal hər hansı bir ikili sayı yarıya indirir onları pozmaq üçün. Və hər hansı bir ikili sayı biz verəcəyik Siz yəqin ki, səkkiz rəqəm olacaq. Siz yalnız qıra bilər ortada onlara. Belə ki, ilk one-- bir-bir, bir-bir, bir, bir, bir bir. Cür bilirsiniz, çəkmək, onu düşünmək bir çizgi və ya onların arasında bir vergül. Və yalnız çevirə bilərsiniz birbaşa hər hansı Bu ilk deyil hexadecimal sayı və burada nə edir hexadecimal ikinci. Belə ki, ümumi notation xatırlayıram, nə hexadecimal dəyərləri ilə başlar? Auditoriya: Zero. PROFESSOR: 0x. Belə ki, biz heç bir zaman biz xahiş bilirik ki, hexadecimal hər hansı bir sayı çevirmək üçün, və ya heç bir zaman hər hansı bir görmək 0x ilə başlayır sayı, Bir hexadecimal dəyər olduğunu bilirik. Və sonra istədi olacaq Bu iki rəqəm nə müəyyən. Və yol, tallying bunu ki, yarısı və yarısı qədər tallying. , Bu nümunə Belə ki, nə bir, bir, bir, biri ola bilər? Nə dəyəri ola bilər? Bu doğru, F olardı? 15 olarıq. Belə ki, bu F. One olardı, burada bir, bir, bir də var F. Belə bir, bir, bir, bir, bir, bir, bir, hexadecimal bir, bu bütün 0xff edir. Bu yarım təmsil çünki F, 15 dəyəri, və bu yarım təmsil F, dəyəri 15. Xatırlayıram, çünki biz istəyirik sıfırdan doqquz hesablanması. A F 15, B 11 kimi 10 kimi. Hamı necə ki, mənada edir biz hexadecimal binar var? Auditoriya: Və belə ki, biz necə əldə etdiniz Bir, bir, bir, biri 15? PROFESSOR: Bəli, bu doğru, ikili edir? Bu yalnız bir ikili sayı düşünün. Belə ki, iki var bir zeroth. Auditoriya: OK, Oh. Belə ki, yalnız onu ümumi. PROFESSOR: Bəli, və sonra Yalnız ki, ümumi. Ki, bütün var. Auditoriya: OK. PROFESSOR: OK. Auditoriya: Belə ki, ikili getmək hexadecimal decimal? PROFESSOR: var en asan yol Bəli, bunu. Siz, çünki decimal fikrində deyilik bu yalnız doqquz sıfır var. Biz cür yalnız istəyirik Iki bu qədər parçalanması. Auditoriya: [işitilemez] decimal istifadə tapmaq nə hexadecimal qədər gəlir. PROFESSOR: Mən demək, sen əsas riyaziyyat istifadə edərək tallying. Auditoriya: Bəli. PROFESSOR: Bəli, olduqca çox. Bu bir az qarışıqdır. Amma yalnız bilirik ki, siz qədər bölmək olar nə bu dəyər yalnız yarıya indirir daxil. Baxın, bu ikili nədir? Nə sayı? Bu olacaq sıfırdan F. şey Burada da olacaq sıfırdan F. şey Və sonra yalnız qoya bilər orada bu iki. Auditoriya: OK. PROFESSOR: Yep. OLDU. Belə ki, uşaqlar istəyirəm sonra növbəti bir cəhd? Zero, bir sıfır bir, bir sıfır, bir sıfır. 30 saniyə kimi uşaqlar vermək lazımdır, Siz yəqin bilirsiniz olmadığı Bu əvvəllər necə üçün oyun. OK, hər kəs bu bir shot almaq istəyirsiniz? 0X5A. PROFESSOR: 0X5A. 5a. Yaxşı. Belə ki, burada istədiyiniz be-- olardı ki, əldə necə bizə? Birincisi, necə beş əldə etdiniz? Auditoriya: sıfır, çünki, bir sıfır, bir beş edir. PROFESSOR: hər kəs başa düşürmü Beş niyə sıfır, bir, sıfır, biri? Burada bir var. Siz ilk iki şey var. Iki ikinci, siz dörd bir var. Belə ki, dörd artı əlavə bir, beş var. Hər kəs yaxşı? OLDU. Və sonra nə bu və nə üçün? A nə sayı uyğundur? Auditoriya: 10. PROFESSOR: Və nə bu baza iki? Auditoriya: [işitilemez] PROFESSOR: Məhz. Belə ki, burada bu ikinci dəyəri 0X5A olardı. Hər kəs çevirmək necə yaxşı? Bu siz hesab daha çox sadə deyil. Mən yalnız əmin etmək istəyirəm Faydalı məsləhətləri bilmək bunu necə və fəndləri. Auditoriya: Niyə yalnız split bilər bu kimi ortada? Just OK, mən yalnız gedirəm, kimi bu ilk [Işitilemez] haqqında qayğı? PROFESSOR: ki, həqiqətən, çünki yol hexadecimal dəyərlər təmsil olunur. Həqiqətən deməkdir 0x, belirten başqa bir şey bu bir hexadecimal sayı edir. Bu həmişə təmsil ilk dörd rəqəm. Bu həmişə təmsil son dörd rəqəm. Və bu iki rəqəm yalnız müxtəlif bit uyğundur. Auditoriya: Belə ki, biz always-- edəcək PROFESSOR: Siz həmişə istəyirik səkkiz dəyəri bit almaq üçün gedir. Auditoriya: yalnız bir şey istəyirəm ki burada və ya bütün bir şey ki? PROFESSOR: Bu yalnız bir var kompüter şey, yep. Auditoriya: OK. Awesome. PROFESSOR: Həmçinin, bu nümunə belə biz ikilik olan konvertasiya və ikili hexadecimal. Siz uşaqlar, həmçinin əmin etmək istəyirəm ətrafında digər yol gedir təcrübə. Mən sizə 0xff verdi, əgər bilər sağ, ikili ki, cəlb? Siz ikili daxil F çevirmək olan, bir, bir, bir, , ikili F çevirmək olan bir, bir, bir biridir. Beləliklə, biz nə üçün xahiş edə bilər ətrafında digər yol. Belə ki, ikili onluq ya ikili hexadecimal. Belə ki, etmək istəyirəm Siz həm yolları bilirik. Biz yəqin ki, soruşmaq lazımdır bir iki birləşməsi. Bəli, bir sual var? Mən sizə iyi see-- bilər? Auditoriya: Bəli. PROFESSOR: OK. Mən bu silmək üçün yaxşı Am? Great. Bütün hüquqlar, belə cavab hər kəs burada var sonra maraqlı və qarışıq almaq. OLDU. Auditoriya: Biz qoymaq əgər bu məsələ varmı Capitol və ya kiçik bizim məktublar? PROFESSOR: Bu yoxdur, çünki hexadecimal, Konvensiya ilə, bütün simvol böyük və olunur. Belə ki, A F vasitəsilə böyük olacaq. Bir kiçik bir qoymaq, mən bilmirəm biz mütləq səhv qeyd əgər. Amma nəzəri, ki, texniki deyil necə var ehtimal edirik. Belə ki, onlar bütün böyük olmalıdır. Bəli, yaxşı sualdır. OLDU. İkinci sual. Burada bu gözəl proqram düşünün. Mən sual lazımdır, Mən bu geri gəlmək lazımdır. Belə ki, ilk növbədə, standart daxilində nə var ki io.h proqram maraq var? İkincisi, nə etibarsız yoxdur line üç demek? Və üçüncü, nə sıfır dönən deyil əsas xətti altı kimi, ümumiyyətlə, demek? Sizlərin bu yazmaq istəyirsinizsə Mən geri keçid var-ci ildən, aşağı slayd yalnız belə siz kodu görə bilərsiniz. Bu kimi, bəlkə bir nümunəsidir biz xahiş yüksək səviyyədə sual nə şeyi bir proqramda deməkdir. Mənim üçün yaxşı hər kəs geri slayd getmək? Sərin, OK. Beləliklə, mən sizə, bəlkə üç kimi uşaqlar vermək lazımdır dəqiqə bu bir real tez baxmaq. , Belə ki, bu bir kimi OK olduqca asan, konseptual. Nə hər kəs mənə istəyir o cümlədən hash tərəfindən daxili ilk Bizim standart io.h kitabxana fayl? Niyə biz ki, kitabxana lazımdır Bu proqram daxil? Burada nə biz üçün lazımdır? Evet? Auditoriya: zaman ki, ki, printf qoymaq? PROFESSOR: Məhz. Belə printf, heç bir zaman istifadəçi giriş almaq və çap bir şey ekran, ki standart giriş, çıxış kitabxana. , Çıxış giriş yolla ki, düşünün. Mən çıxış var? Bəli. Mən həmişə gedirəm bilirik ki, Standartlaşdırma i.o kitabxana lazımdır. Belə ki, printf funksiyası olan biz daxil olmaq üçün lazımdır və hashtag daxildir Standart i.o kitabxana. OLDU. İkincisi, etibarsız nə mənaya gəlir? Biz nə int əsas (void) var burada ləğv xətti üç burada deməkdir? Bəli, geri. Auditoriya: [işitilemez] PROFESSOR: Məhz. Beləliklə, biz öyrəndim, xatırlayıram Bizim pset ilə başlayan Siz, həqiqətən, bilərsiniz ki, command line daxil arqumentlər ki, proqram, siz ki, əsas funksiyası, sizin kimi görür, istifadəçi, çağırırıq. Biz etibarsız varsa, bu sizin o deməkdir ki, yalnız birbaşa proqram run bilər Hər hansı bir command line dəlilləri olmadan. Hər kəs ki, aydın? OLDU. Və nəhayət, niyə biz bunu narahat yoxdur Burada bu geri sıfır şey? Niyə biz hətta bir int əsas var? Niyə biz yalnız etibarsız əsas etibarsız ola bilməz? Evet? Auditoriya: Just biz ki, proqram əmin ola kimi uğurla çıxarkən Bu saylı əgər qarşı çıxdı. Və biz bilirik ki, səhv bir müxtəlif növ. PROFESSOR: Bəli, dəqiq. Bu yalnız bir çox var Biz nə şərti şey, yalnız sonunda Proqram, yalnız əmin etmək əsas funksiyası ki, düzgün çalışan, biz həmişə geri sıfır etmək istəyirəm. Hətta biz mütləq bilər, baxmayaraq ki, ki, hər yerdə çap görmürəm. Çünki proqramçılar kimi, bilirsiniz, əgər Siz kodu bir çox müxtəlif xətləri və harada bilmirəm Bu, yanlış gedir Bir səhv baş verərsə və istədiyiniz ki, səhv almaq əmin olun. Və belə adətən bir şey gedir əgər yanlış biz bir geri olacaq yalnız biz bilirik ki, əmin etmək üçün. Bir geri görmək əgər Belə ki, sıfır ki, adətən Proqram deməkdir uğurla icra. Yaxşı? Cool. OK, burada ikinci proqram. Ki, düşünün. Və uşaqlar bir görmək əgər float, uşaqlar yəqin ki, edə bilərsiniz yaxşı bir fikir var nə Mən xahiş edirəm. Belə ki, bu proqram Gördüyünüz kimi, icra, Mən bir float bəyan edirəm əsas funksiyası daxilində. I ", cavab" bu adlandırma alıram və mən müəyyən alıram ki, 10 bir bərabər bölünür. Mən bir, çap alıram bu yer ki, float. Və sonra mən sıfır qaytarılması alıram. Belə ki, proqram icra zaman, İndi geri görməmiş üçün hesab edirəm ki, Bu proqram 0.0 görüntüler. Biz bütün Bildiyiniz kimi, inşallah biz bütün 10 bölünür bir 0.00 deyil, bilirik, Bu 0.1 var. Bu proqram düşünür niyə izah 1 digər 0,1 10 izləri bölünür ki, 0.1-dən çox? Mən 30 kimi uşaqlar bəlkə verəcəyik saniyə yalnız tez bu barədə düşünmək və mən geri proqram getmək lazımdır. OLDU. Hər kəs bir shot vermək istəyirsiniz? Üç cümlə və ya daha az, adətən biz istəyirik, çünki bütün cavab məhdudlaşdırmaq niyyətində üç cümlə və ya daha az belə ki, yalnız qusmaq deyil Sizin Viktorina üzərində təsadüfi şeylər. Bəli, bir shot almaq. Auditoriya: Mən bu var edirəm kimi adlı bir şey, [işitilemez] Belə ki, ola bilər, məsələn, 0.09 kimi, ola bilər, Siz ilk çap harada rəqəmli, bu 0.0 olardı? PROFESSOR: Close, olduqca. Christabell? Auditoriya: Siz bir ayırıcı edirik və 10, və onlar həm integers istəyirik. Və belə yol gedir ki, Bu bir tam kimi saxlamaq üçün. Və belə yaxın tam 0.0 olardı. Və belə ki, 0.1 var. PROFESSOR: Bəli, ki, həqiqətən yaxşıdır. Bu doğru cavab var. Belə ki, bu, çox confusing Uşaqlar bir çox anlayış. Mən, həqiqətən, əmin etmək istəyirəm Bu hər kəsin baş gücləndirilmiş olunur. Biz üzən zəng belə nə point qeyri-dəqiqlik, harada səbəbi bir çox görməmiş sizin proqramları ilkin iş deyil, çünki idi Siz dəyişən tökmə unuttum. Belə ki, Christabell nə dedi tamamilə doğru idi. A float mahiyyət qeyri-dəqiq deyil. Kompüter, sağ, biz var yaddaş bit məhdud məbləği biz nömrələri təmsil etmək üçün istifadə edə bilərsiniz. Belə ki, məsələn, bu CS50 ID is-- Mən bunu bir 64-bit kompüter hesab edirəm. A float yalnız təmsil oluna bilər bu bit məhdud məbləği. Və belə 0.1 sonsuz adet sıfır ilə, ki 0.1 sağ, idi? Amma biz, həqiqətən, saxlamaq bilməz Bizim kompüter ki sayı. Biz yalnız yoxdur kifayət qədər yaddaş bunu. Və belə yaxın uyğunlaşdırılması nə yaddaşında saxlanılır əslində 0.000 şey kimi bir şey, bir şey, bir şey, bir şey. Hansı, siz kəsmək dəfə Bu, 0.0 aşağı el. Və bu misal biridir ki, məsələlər çox nümayiş etdirir biz etdiyiniz zaman biz səhv riyaziyyat etməyə çalışırıq fərqli bir tam kimi tökmə olmadan. Belə ki, yalnız bu baş ehtiyatlı olmalıdır. Sınavlar, biz sizə vermək əgər kod blok və bu kimi, nə sonunda çap? Və bəzi təsadüfi dəyəri var, əgər ki, baş niyə uşaqlar bilməlidir. Evet? Auditoriya: Truncate xilas edir Müəyyən bir nöqtədən sonra hər şey? [Işitilemez] PROFESSOR: Bəli, həqiqətən, belə Bu, həqiqətən, pis nümunə, həqiqətən 0.100 nə çünki 0.1 aşağı kəsmək olar. Amma əgər pseudocode çalıştırmak üçün mən deyil unutmayın, keçən il çünki onlar başqa bir proqramı üzrə qaçdı. Onlar bir şey adlandırıb qaçdı CS50 Aracı olan ID fərqlidir. Ki, bir 32-bit sistem idi deyə düşünürəm. Və müxtəlif nömrələri var idi. Amma mahiyyətcə, yalnız bilirik ki, truncation bütün konsepsiyası və yalnız şeyi off azalıb necə. Və belə ki, əgər rounds-- Auditoriya: yuvarlaqlaşdırma olmadan. PROFESSOR: Məhz. Bəli. Cool. Hi, geri. Biz yalnız bəzi üzərində olacaq viktorina baxış suallar. Oldu. Belə ki, burada başqa bir proqram hesab edir. Mən sizə uşaqlar vermək gedirəm neçə dəqiqə bu artıq oxumaq. Bu, çox idi, bir şey deyil Bu yaxınlarda mən sizə bir çox əsdi hesab edirəm ki, uşaqlar başında. Amma biz danışmaq olacaq Bu vasitəsilə yenə yalnız Sizi əmin etmək tamamilə başa düşürük. OLDU. OLDU. Hər kəs üçün daha çox vaxt lazımdır bu kod vasitəsilə oxumaq? OLDU. Belə ki, mənə elə gəlir ki Bu proqram mən GetString istifadə edərək, iki strings yaradılması. One adlı s və bir t çağırıb. Onlar bərabər əgər bir-birinə bərabərdir Bu "çap lazımdır eyni şey yazın. " Amma elsewise, bu, "Səni çap olardı doğru ", fərqli şeylər tipli? Çox, çox sadə görünür. Lakin, buna baxmayaraq, I, əgər həqiqətən Bu proqram yazmaq üçün cəhd edin, Göründüyü hətta ki, mən giriş eyni strings, hələ də "Siz çap tipli fərqli şeylər! " Hər bir almaq istəyir niyə bu proqram həmişə shot cavab giriş ki, hətta müxtəlif sözləri özləri eyni zaman? Belə ki, əgər Mən David sevgi input-- idi sağ, ana kimi nümunə istifadə etmək olar? Kiçik M-O-M S, T kiçik M-O-M bərabərdir. Mən bu qaçdı əgər ki indeksi, niyə ki "Siz tipli fərqli şeylər?" çap Hər kəs daha ehtiyac yoxdur dəfə bu barədə düşünmək? OK, biz yaxşı olduğunuzu düşünürəm. Evet? Auditoriya: OK, belə ki, bu barədə bir şey sağ yaddaşında saxlanılır harada? PROFESSOR: Yep. Auditoriya: Bu halda, kimi string yaddaşında saxlanılır spot-- Mən şeylərdir sıfır icad edirəm. PROFESSOR: Sure. Auditoriya: Və string t yaddaş yerində saxlanılır, 167, sonra kimi sıfır 167 bərabər deyil. PROFESSOR: Məhz. OK, belə ki, bu inanılmaz xatırlayıram Vəhy sizə uşaqlar izah bu ötən həftə ki, strings həqiqətən mövcud deyil? Biz bir şey yaratmaq zaman adlı simli biz istəyirik, əslində, char star deyilən bir şey yaratmaq. Hansı bütün bu bir göstəricisidir simli və ya chars bir sıra. Və bu, məsələn, mən əgər giriş M-O-M yol idi mənim kompüter bu saxlamaq ki, yaddaş backslash sıfır ərzində, sağ? Bu dörd simvol chars, yerdə saxlanılır olunacaq. Və sonra bu dörd simvol, backslash sıfır, sağ, başqa bir yerdə saxlanılır? Mən heç bir fikrim burada var ünvanları onlar mənim kompüter haradasa istəyirik var. Onlar harada Amma dəqiq bilmirəm. Mən bir string yaratmaq zaman s, bütün həqiqətən bir göstərici edir Bu simli başlamaq. Və mən bu t dəyər yaratmaq zaman, bütün burada bir göstəricisidir. Və belə ki, çalışdığınız zaman eyniləşdirmək və yoxlamaq üçün s bərabər olub olmadığını görmek üçün t bərabərdir, kompüter həqiqətən, yalnız dönən deyil Bu m ünvanı ki, m ünvanı. Onlar iki istəyirik, çünki məlumatların ayrı-ayrı parçaları ki, iki müxtəlif saxlanılır kompüter ünvanları, Sizin kompüter heç olacaq eyni olan kimi tanımalıdır. Hər kəs istəyir bir shot vermək nə biz biz düzəltmək istəyirdi etmək olardı bu və düzgün çalışan proqram yerinə? Bir neçə saniyə üçün düşünün. Biz dəyişdirmək lazımdır nə Bu proqram fəaliyyət almaq biz fəaliyyət istədiyiniz yol? Bəli, bu bir zərbə almaq istəyirsiniz? Auditoriya: Biz dereference üçün cəhd edə bilərsiniz pointer və array vasitəsilə yoxlamaq? PROFESSOR: Yəni bunu bir yoldur. Belə ki, adı daha nə var? Mən təəssüf edirəm, mənə xatırladır. Zee: Zee. PROFESSOR: Bəli, belə nə Zee tamamilə işləmək olardı təklif edir. Sağ? Biz göstərici dereference bilər və həqiqətən getmək və giriş Burada daxili fiziki data. Və biz yalnız müqayisə edə bilərsiniz bütün ekran. Biz pointer, OK, demək olar ki, Burada daxili ne mənə verir. Bu m qayıtmaq istəyirəm. Mən deyərdim, pointer, Burada daxili ne mənə verir. Bir m qayıt. Bu matçı edirsiniz? Bəli. Sonra biz hərəkət. Biz bütün iki yoxlanılması saxlamaq sonuna qədər strings bütün yolu o bərabər olduqda və bax bütün dəyərlər bərabər olduqda. Və bütün dəyərləri bərabər olduqda, sonra biz strings doğru bilirik. Absolutely ki, biz bunu necə var? Hər kəs bu hər hansı bir səhv varmı? necə strings bütün konsepsiyası həqiqətən, yalnız göstəricilər var, və necə həqiqətən mövcud deyil? Və niyə biz səhvlər almaq biz bunu almaq yolu kimi? Mən sizə uşaqlar, göstəricilərinə təmin çünki və simli ayrılması və yaddaş gəlib gedir. Evet? Auditoriya: [işitilemez] dereference Bu, yalnız bir ulduz qoymaq [işitilemez] PROFESSOR: Sağ. Belə ki, bir pointer vasitə derererence üçün göstərici ünvana getmək və orada dəyər məlumatların əldə. Və bunu yol ulduz göstəricisidir. Ki çaşdırmaq etməyin. Auditoriya: [işitilemez]. PROFESSOR: Bəli. Auditoriya: Belə ki, yalnız yaza bilərsiniz ulduzun bərabər bərabər star t əgər. PROFESSOR: Yaxşı, heç bir. Yox. Auditoriya: Bu doğru, kifayət qədər yaxşı deyil? PROFESSOR: sen, çünki deyil yalnız birinci məktubu yoxlanılması. Siz yəqin ki, olacaq bir loop bir növ lazımdır ki, hər bir vasitəsilə iterates həm strings xarakter. Bəli. Belə ki, əgər siz yalnız kontrol istəyirdi Onlar eyni şey ilə açılmış əgər, Siz ulduz əgər edə bilərsiniz s ulduz t bərabərdir. Sonra bilirik ki, ən azı onlar eyni xarakteri ilə başladı. Evet? Auditoriya: Belə yolu ki, olardı yoxdur bir loop və ya göstərici əlaqədar istəyirsiniz? PROFESSOR: Bəli. Pretty çox yalnız bir loop üçün. Sinif David qeyd saxla Pulsuz sintaktik şəkər? Və o, bu çox idi star t confusing şey plus bir, bu inteqrasiya olardı vasitəsilə və pointer hərəkət? bunu asan yol Bu yalnız i t edir. Belə ki, yalnız bir sıra var. sizin üçün bir var ki, yol i sıfırdan qaçdı loop, burada i uzunluğu string, yalnız bilər yerinə bunu yazmaq bütün pointer, arayış şey. Belə ki, bu şeylər dəqiq kompüter ekvivalent. Siz uşaqlar yəqin ki, olmayacaq ki, bilmək lazımdır, lakin yalnız cür üçün yaxşı geri fikrinizi var. Yalnız kompüter bilirik ki, kodu müxtəlif blokları tanıyır Eyni şey kimi. Bu yalnız daha istifadəçi Çünki dostluq bu kimi bizə təqdim etmək üçün bir sıra. Bu, yalnız daha asan var. Auditoriya: Belə kimi strlen istifadə get-- PROFESSOR: Bəli. Auditoriya: OK. PROFESSOR: Siz bilər əgər, strlen istifadə və ya Yalnız bunu edə bilərsiniz strlen yox idi Siz həm də backslash sıfır hit qədər. Ya işləmək olardı. Bəli. Auditoriya: Belə ki, hər dereference var bir xarakter biz, həqiqətən, əgər bu kodu yazmaq, biz yalnız t Mötərizədə Mən bilər qarşısında ulduz istəyirsiniz? PROFESSOR: Bəli, bərabər s bərabərdir i, və sonra hərəkət saxlamaq bracket aşağı son hit qədər. Bəli, siz bunu nə var. Mən, həqiqətən, növbəti lazımdır Biz nümunə həqiqətən strlen yazmaq belə ki, uşaqlar cür olacaq bunun bir az ətrafında oynamaq almaq. Belə ki, yalnız yaddaş hər kəs aydındır strings, göstəricilər, keyfiyyət ünvanları? Bəzi yüksək səviyyədə anlayışlar ki, viktorina bilmək əmin ehtiyac iradə sabah. Oldu. Yaxşı. Yep. OK, belə ki, bir şey biz də soruşmaq lazımdır ki, Biz viktorina hər il nə kimi, edir (unuttuysanız ki, güman ki, hər il unutmaq görünür) olan header fayl strlen elan edilir. Və belə ki, biz özümüz yeniden yazmaq üçün var. Burada qaydalar siyahısı var biz sizə təqdim edə bilər ki, Siz güman almaq uşaqlar string null olmayacaq s. Siz s olacaq kəsb edə bilər bir backslash sıfır ilə xitam. Belə ki, nə bilirik Bu ilə başa olacaq. Və, məsələn, ki, salam uzunluğu beş olardı. Belə ki, salam kəsb edə bilər beş, H-E-L-L-O olacaq. Siz güman yoxdur uzunluğu sıfır hesabları arxa. Burada Bu son şey, yoxdur tam daşqın narahat. Hər kəs yadda varmı nə tam daşqın edir? Auditoriya: kənarda Goes [Işitilemez] uzunluğu. PROFESSOR: Bəli, siz izah edə bilər bir az, nə deməkdir? Auditoriya: Belə ki, mən geri gedir tapmaq truncating Məsələn əvvəllər. Amma yalnız bir çox ədəd varsa ki, bit sayı kənara Siz, həqiqətən, təyin edə bilərsiniz ki, Bu yalnız cür kəsilmiş olacaq. PROFESSOR: Bəli, tipik belə kompüter, biz neçə bit var? Auditoriya: 32? PROFESSOR: Bəli, 32, doğru. Və belə ki, nə, dörd var milyard iki milyard? Dörd milyard dörd milyard, müsbət integers, sağ? Iki milyard mənfi, iki milyard müsbət, siz bunu istəyirəm necə asılıdır. Və belə ki, əsasən biz ola bilər qədər getmək olar kifayət qədər integers 31 iki minus 1, sağ? Biz iki hit Çünki bir dəfə 32, biz deyil bizim kompüter ki, çox yaddaş var. Belə ki, nəzəri, mən bir sıra ilə gəlmək bilər ki, kimi, 46 iki edir. Bu, böyük bir-ass sayı, lakin nəzəri siz bilər. Siz cəhd əgər, belə ki tam daşqın deyil nə kənara çıxan bir tam yaratmaq Sizin kompüter saxlanılması etməyə qadirdir. Və belə ki, uşaqlar Bu nümunə yoxdur Bizə nəhəng verilməsi barədə narahat 32-ci chars iki string uzun. Bu, həqiqətən, demək olardı. Bütün hüquqlar, mən yalnız vermək gedirəm Sizlərin bu baza strukturu. Siz yaratmaq olacaq funksiyası int strlen olduğu deyilən bir keçmək, bir char star, və ya simli, simli göstərici s çağırıb. Bütün hüquqlar, hər kəs ki, aşağı kopyalayın. Cool. Oops-- digər yol. Belə ki, bu kimi növ edir Problemin daha parça, mən sizə, bəlkə beş uşaqlar vermək lazımdır Brainstorm cür altı dəqiqə və bu funksiyanı yazmaq. Auditoriya: Biz nə [Işitilemez] hesabı, biz tam istifadə etmək yoxdur? PROFESSOR: Xeyr, yoxdur. Mən sizə uşaqlar bir ipucu vermək lazımdır. Bir müddət loop burada çox faydalı ola bilər. Bəli. Burada candy. Candy də mövcud olacaq viktorina üçün, mən hesab edirəm. Belə ki, uşaqlar bütün olacaq sabah şəkərli. Siz var istisna olmaqla, mən edə bilərsiniz. Auditoriya: OK. PROFESSOR: Bəli. Bəlkə 30 saniyə və ya belə. Bütün hüquqlar, siz değilseniz etmədinizsə, heç bir narahatlıq. Biz birlikdə bu hərəkət edəcəyik. OLDU. Mən yalnız layout üçün gedirəm burada bu funksiya üçün əsas strukturu. Strlen Int. Birincisi, hər kəs demək istəyir Mənə int bildirir nə? Biz bu funksiyası lazımdır. Auditoriya: Strlen [işitilemez]. PROFESSOR: Məhz. Belə ki, burada baş nə olursa olsun, biz bir tam qayıtmaq lazımdır. Və göstərilən spec biz return-- istəyirəm Yalnız davam, bu uşaqlar üçün gedin. Bu, bütün yaxşı. Yemək bütün mən yoxdur həqiqətən, onu geri almaq üçün. int yalnız olduğunu bildirir gedir tam qaytarılması üçün. Bu char star s nədir? Bunun mənası nədir? Auditoriya: daxil olan nə kimi. PROFESSOR: Məhz. Və demək olar ki, nə char ulduz kimi eyni şey? Auditoriya: String? PROFESSOR: Məhz. Beləliklə, biz yapýyorsun bütün verən simli bu göstərici. OLDU. Cool. Biz unutmaq varsa da, unutmayın siz bu Mötərizədə vermək, onlara özünüzü yazmaq unutmayın. Nəzəri, çünki, sizin kodu Əgər siz onları yazmaq üçün unutmaq əgər səhv. Yalnız həmişə diqqət. Kimi, kiçik şeylər Fark deyil ki, Sizin laptop proqramlaşdırma etdiyiniz zaman, Sizin laptop sizin üçün bunu edir, çünki? Zaman unutmayın Siz əl ilə yazılı edirik. Evet? Necə Amma yanlış: Auditoriya? Kimi, biz yanlış bütün problemlər alıram? PROFESSOR: no, No. Narahat olmayın. Bu, həqiqətən, nəzəri mümkündür Bir sual üzərinə tam bal almaq üçün hətta code istəsə real həyatda tökülmək heç vaxt. Mən cəhd etməyin gəlir ki, baş etmək üçün. Məsələn, kimi, əgər hər şey ki, burada doğru, ancaq bir nöqtə və ya bir bracket unutmaq, Sizin code həqiqətən çalışmaz. Amma biz mərhəmətli ola bilər. Evet? Auditoriya: Siz var Bizim xətt şərh? PROFESSOR: Yox, yox, No ki, narahat. No şərh. Style yaxşı olmalıdır. Kimi, Smush deyil bir xətt üzrə hər şey. Biz xoşbəxt olacaq Sizinlə siz bunu əgər. Hər kəs istəyir Mənə ilk xətt vermək? Ip ucu, bu, çox asandır. Evet? Auditoriya: Int, n sıfır bərabərdir. Just counter qurmaq. PROFESSOR: Beləliklə, biz bəzi istəyirəm bir counter sort, sağ? Mən yalnız onu ad "saymaq" gedirəm okunabilirlik naminə. Biz bərabər müəyyən etmək istəyirsiniz? Auditoriya: Zero. PROFESSOR: Yep. Nöqtəli vergül. Bu da çox qəribə rəsm semicolons var. Yalnız bunu təcrübə. Beləliklə, biz ilk var istəyirəm növü int bir counter. Biz saymaq istəyirəm, çünki çox simvol və ya məktubları bu simli, sağ? Çox asan ilk addımdır. OK, bəlkə bir az daha kompleks İndi, necə biz bunu edəcəyik? Hər kəs istəyir Mənə kodu xətti vermək ki, loop kömək edə bilər nə bu deyil? Geri Bəli, igid soul? Auditoriya: OK, belə ki, isə point ulduz, s Bəli, ulduz, Biz sıfıra bərabərdir, onda bir şey? PROFESSOR: Bu, həqiqətən, həqiqətən yaxın. Həqiqətən yaxın. Beləliklə, mən üçün gedirəm ki, iki şeyi. İlk növbədə, bu, dəqiq sıfır deyil. Bu nədir? Bu null terminator var olan backslash sıfır. Belə ki, onlar müxtəlif istəyirik Onlar saxlanılır etdiyiniz necə şərtləri. Beləliklə, siz həqiqətən yaxın deyilik. İkincisi, biz istəmirik yalnız göstərici hərəkət etmək. Biz, həqiqətən, istəyirəm sağ, dəyərlər daxil? Və belə ki, necə biz bunu edirsiniz? Çox asan. Göstəricilər haqqında düşünmürəm, xatirələrini düşünmürəm. Bu kursun həftə iki geri. Auditoriya: [işitilemez]. PROFESSOR: kimi, xatırlayıram? Strings hansılardır? Necə yaddaşında saxlanılır? Auditoriya: Onlar qaldırdı edirik. PROFESSOR Onlar qaldırılmış edilir. Belə ki, necə biz daxil etmək daxili hər bir xarakter? Auditoriya: [işitilemez]. PROFESSOR: Məhz. Belə ki, daxili burada nə gedir while--? S - Auditoriya: I. PROFESSOR: Oh, i mövcud deyil, yoxdur? Auditoriya: Oh, saymaq? PROFESSOR: Biz yalnız bilərsiniz biz bilməz, count istifadə? Auditoriya: Bağışlayın, mən çağırıb. PROFESSOR: Bəli, bu bütün yaxşı. Biz ki, burada bir dəyişən qədər var artıq bizim counter kimi elan edilmişdir. Belə ki, niyə biz yalnız istifadə etməyin isə loop vasitəsilə hərəkət etmək? Ki, hissi edirmi? Count-- nin hər kəs istəyir isə belə Burada sonra nə mənə vermək? Auditoriya: Bu bərabər deyil. PROFESSOR: bərabər, sağ mu? Bu bang bərabərdir oldu nida point, bərabərdir Sizlərin istədiyiniz hər hansı equal-- deyil zəng Auditoriya: [işitilemez]. PROFESSOR: Bəli. , Bir char üçün bir quote saxla ikiqat quotes bir string üçün. Onları istifadə edərkən ehtiyatlı olun. Belə ki, biz vasitəsilə aradığınız array, son xarakteri, Biz istəmirik bilirik Bu backslash sıfır olacaq. Isə belə. Biz simli sonunda deyil. Biz daxilində etmək istəyirsiniz? Auditoriya: Biz əlavə etmək istədiyiniz counter sayar plus plus belə? PROFESSOR: Məhz. Belə ki, burada biz nə olacaq saymaq plus plus, saymaq. Daha bir xətt itkin. Biz demək olar ki, orada edirik. Biz nə unutmadan edirsiniz? Auditoriya: sıfır dönən? PROFESSOR: Siz sıfır qayıtmaq istəyirsiniz? Auditoriya: Xeyr, strlen qaytarılması. Gözləyin. PROFESSOR: saxlanılır? Auditoriya: Count. Count. PROFESSOR: Məhz. Belə ki, burada biz count geri olacaq. Biz olduğunuz çünki burada bunu ultimately-- biz bir counter dəyişən var simli vasitəsilə arttırmayı olacaq. Biz davam olacaq, saxlamaq bu loop ətrafında və ətrafında gedir. Və biz bu sonunda deyil bile null terminator edir string. Və biz vasitəsilə getmək hər zaman Bu, bizim counter əlavə edirik. Və biz daha olacaq Bu array boyunca. Və sonunda, biz bir dəfə null terminator edib, biz oh, biz bilirik, qırmaq sayı qayıtmaq. Biz strlen var. Hər kəs necə almaq olar Bu həyata keçirildi? Mən bilirəm loops-- isə biz deyil , onlara çox böyük işlər lakin onlar adətən istəyirik çox, çox faydalı əgər Siz dayandırılması edirik nə bilmirəm şərt mütləq olmalıdır. Sual? Auditoriya: Biz null yazmaq Kompüter isə şərtlə? PROFESSOR: baxmayaraq? Bəli, bu problem mən sizə idi uşaqlar s null olmayacaq daşımır. , Xatırlayıram çünki nəzəri, əgər mən sizə verdi yaddaş çox böyük idi bir göstərici, Bu doğru, siz null verəcək? Ki, nə əməliyyat Sistem olardı. Mən güman sizə olmasaydı belə s null olacaq, siz yoxlamaq lazımdır. Belə ki, burada nə edirəm, əgər null bərabərdir, bir qayıtmaq. Kimi bir şey. Auditoriya: [işitilemez] sıfır. PROFESSOR: OK, mən demək lazımdır Biz bunu bilməz niyə. Sağ, burada, yaddaş xatırlayıram çünki. Biz burada getmək lazımdır. Siz nəhəng blokları var bütün ızgaraları ilə yaddaş ki, mağaza müxtəlif dəyərlər, sağ? Və belə bir string üçün is-- Məsələn, biz salam daxil əgər, Bu H-E-L-L-O olardı backslash sıfır, sağ? Və sonra kim təsadüfi kimi bilir, sonra burada olan şeylər. Biz, həqiqətən, var nə bilmirəm. Və belə ki, bunu olsaydı əvəzinə backslash sıfır, null, null ola bilər. Yalnız ola bilər, çünki bəzi təsadüfi başqa şeylər ki, simli aid deyil. Və belə ki, yol biz həmişə bilirik ki, başa bir string bir backslash sıfır ilə. Və belə ki, həmişə, necə biz var bir simli sonunda kontrol edin. Varsa null, bütün vasitəsidir ilk növbədə qeyri-mövcud pointer, və ya yaddaş ki, yalnız belə böyük olduqda Siz geri bilməz, o null olarıq. Fərqləndirici Belə ki, çox ehtiyatlı olun null arasında fərq və backslash sıfır. Bəli. Bu OK hər kəs? OLDU. Belə ki, Mən sizə uşaqlar strlen yazmaq idi. Feasibly biz də yazmaq xahiş edə bilər I həyata xatırlayıram ki, "Atwoa" və ya hər hansı uşaqlar zəng etmək istəyirsiniz? Ki, funksiyası Vigenere və Caesar ki, bir tam bir ASCII dəyəri çevirir? Bu da ötən sınavlar gəldi funksiyaları biz yazmaq üçün xahiş etdik. Olduqca çox hər hansı bir funksiyası istifadə və etdiyiniz özünüz yazmaq üçün çox asandır, sensorlar aşağı kimi, yuxarı, aşağı, yuxarı deyil. Bir çevirmək funksiyaları kiçik simli böyük üçün. Biz bütün sağ, bunu necə bilirik? Bu olduqca asandır. Just əmin etmək istəyirəm can-- eyni fikir prosesi var. Siz yalnız vasitəsilə təkrarlamaq və şeyi açmaq. Siz ya saymaq və ya siz fərqli şeyi açmaq. Mən mən suggest-- olardı gedirik əgər bilmirəm nə kapital alarkən xahiş və ya kapital Z, və ya kiçik bir və ya kiçik z ASCII, amma gəlir ki, bəlkə halda ki, yazırlar Biz nə. Məhz belə uşaqlar istinad var. Böyük A, nə 197 kimi? Və sonra kiçik 50 bir şey kimi. 65, Bəli, orada getmək. Belə ki, yalnız olduqca çox bilmək Onların arasında fərq 32. Bu olduqca vacibdir. Bəli. Mən bu yaxşı Am? OLDU. Auditoriya: Biz bilər nəzəri bəzi yazmaq həmçinin bu aşağı bizim çox az üzrə PROFESSOR: Siz nəzəri yalnız funksiyası aşağı surəti bilər. Düzdür. Auditoriya: Not [işitilemez]. PROFESSOR: Siz uşaqlar bir hesabatı var. Siz uşaqlar Qeyd hesabatı var. Siz edəbilərsiniz. Siz yaza bilərsiniz. Siz bu istədiyiniz nə edə bilər. Bəli. Belə ki, nəzəri, əgər Siz getmək istəyirəm. Auditoriya: [işitilemez] lakin biz, həqiqətən, yoxdur mütləq xatırlamaq lazımdır dəyəri, biz yalnız bilərsiniz yuxarı və ya üçün istifadə alt funksiyası, sağ? PROFESSOR: Bəli. Amma biz bir sual verdi ki, yuxarı yazmaq deyir sonra onu yazmaq lazımdır. Belə ki, uşaqlar sizin kəsb edə bilər uşaqlar, bütün funksiyaları çıxışı var lakin yuxarı və ya istifadə etmək istəyirsinizsə, aşağı, nə də nə etmək lazımdır? Auditoriya: [işitilemez] istifadə CS50 [işitilemez] PROFESSOR: bu CS50.h mı? Orada ehtiyatlı olun. Yuxarı Belə ki, aşağı, , yuxarı aşağı edir cəlb funksiyaları simli manipulyasiya var bütün ya Ascii ərzində və ya riyaziyyat kitabxana ərzində və ya simli kitabxana daxilində. Sizlərin bu istifadə əgər Belə ki, funksiyaları yadda ehtiyatlı olun ki, mövzu daxil. Belə ki, bəlkə də, bir şey sizə Sizin hesabatında daxil etmək istəyirəm, header nə var? Kitabxana hansılardır Siz istifadə etdik? Nə funksiyaları həmin kitabxana daxili? Bu vacibdir. Evet? Auditoriya: Biz Could yalnız polis həyata və hashtag nə tamamilə vasitəsilə Biz heç etdik hər məktubu suallara bütün kimi görüldü? PROFESSOR: Siz bilər. Mən necə xoşbəxt bilmirəm biz dərəcəli olacaq ki, viktorina zaman kodu hər parça iki dəfə kimi uzun olmalıdır kimi. Mən biz bilər bilmirəm, stil üçün bir point off edir. Amma nəzəri, Sizin code doğru olardı. Siz uşaqlar polis həyata bilər və yalnız hər şey daxildir. Bu Bəli, çox gözəl var. Auditoriya: [işitilemez]. PROFESSOR: Bəli. Mən də bunu gəlir olardı. Bəli. Auditoriya: Cool. PROFESSOR: Yaxşı sualdır. Auditoriya: Belə ki, ən pis ssenari. PROFESSOR: ən pis halda. Siz tamamilə unutsanız, Siz bunu edə bilər. Bəli. Yep kod hüququ vardır. Mən n əvəzinə, siz sayı lakin istifadə Sizin qayıq üzüb gedirdi nə bilirik. Auditoriya: gözləyin, belə ki, biz hashtag olmazdı biz istəyirik, çünki daxil int başlayan? PROFESSOR: Bəli, mən yalnız güman biz funksiyası yazmaq istəndi. Siz təhlükəsiz olmaq istəyirdi varsa, siz yəqin ki, orada qoymaq bilər. Amma yalnız yeah, narahat etmədi. Mən hətta bilmirəm, əgər Bu hər hansı bir kitabxana lazımdır. Siz, həqiqətən, çap deyilik, çünki bir şey və ya bir şey həyata, sağ? Bəli, mən əgər bilmirəm Bir kitabxana lazımdır. OLDU. Bu yanaşı, bir az daha yaddaş manipulyasiya xətləri. Çətin bit Bu cür. Bu barədə düşünün. Siz func adlı funksiyası var. Mən bunu adına bilərdi nə olursa olsun, amma func bu adı seçin. Mən əsas yuxarıda var. Siz istədiyiniz Unutmayın Sizin əsas sonra bir funksiyası, Siz əmin etmək istəyirəm üst prototip daxildir. Amma bu halda belə qısa idi mən hiss etdim ki, mən yalnız bilər əsas üstün daxil. Mən prototip lazımdır yox idi, Artıq yuxarıda yazılı çünki. Belə ki, bütün Mən əsas funksiyası edirəm tam x yaradır 10 bərabərdir. Mən func funksiyası zəng edirəm və sonra bir şey çap. Və sonra həqiqətən var nə FUNC edir. Siz uşaqlar bu yolu düşünmək istəyirəm. Bu bir az çətin, çünki. Bu, həqiqətən, çox, çox çətin deyil. Nə bu vasitəsilə düşünmək Proqram tipi olacaq. Mən sizə uşaqlar iki dəqiqə verəcəyik. Good müzakirələr? Auditoriya: Bəli. PROFESSOR: Bəli. Bütün hüquqlar, belə ki, bu deyil bir səbəbdən çətin. Gətirməsini istədim niyə bu hər kəsin diqqətini bu. Hər kəs mənə vermək istəyir təklif, bir cəhd? Bu nə çap olardı? Siz səhv edirsinizsə tamamilə gözəl. Evet? Auditoriya: Mən bu 100 hesab edirəm və sonra 10 iki ayrı xətləri. PROFESSOR: Və 10? Hər kəs hər hansı digər guesses varmı? Evet? Auditoriya: Bəlkə yalnız 10 çünki func şey qaytarılması deyil? PROFESSOR: OK, biz belə tahmin bir nömrəli var tahmin sayı iki ki, yalnız 10 çap olacaq. Hər kəs hər hansı digər guesses varmı? OLDU. Belə ki, sağ, bu vasitəsilə gəzmək edək? Siz kodu bir parça almaq zaman, yalnız baxmaq və kimi olmayın, ah, ki, çox stuff var! Mən qarışıq alıram! Kimi, özünüzü sakitləşdirmək. Just bilirik ki, yalnız bilər xətti ilə kodu xətti ilə baxmaq. Ki, bütün var. Bu kitab oxumaq kimi. Hər hansı bir funksiyası ilə, belə ki, biz həmişə əsas da başlayacaq. Belə ki, biz olacaq int əsas boşluq da başlayacaq, hətta proqramın artıq sağ, aşağı run? Əsas etibarsız da başlayacaq. Int x 10 bərabərdir. Mən bu silmək üçün gedirəm. Mən yaddaş çəkmək gedirəm yalnız sizin belə uşaqlar cür neler görə bilərsiniz. Biz yığını var burada aşağı saxla? Burada biz bizimdir bizim var haradasa burada yığın. Stack sağ, qədər artır? Və yığını çərçivəsində var elektrik, eləcə də fəaliyyət Şəbəkə yerli dəyişənlərin bütün. Belə ki, burada, int x 10 bərabərdir. Bizim əsas funksiyası ərzində biz istəyirik x adlı dəyişən yaratmaq. Biz 10 bərabər qəbulu edirik. Burada bəzi x var və siz etdiyiniz sağ, 10 bərabər qəbulu, əsas ərzində. Hər kəs yaxşı? Function. Belə ki, indi bizim əsas ərzində funksiyası, biz zəng etdiyiniz Yuxarıda yazdıq fəaliyyət göstərir. Beləliklə, biz artıq ikinci funksiyası daxil edirik. Biz başqa yaratmaq olacaq dəyişən int x 100 bərabərdir. Nə yığını burada olub? Bir zəng ne olur yeni dəyişənlər yaradır funksiyası? Nə yığını burada olur? Auditoriya: üst [Işitilemez] hemoroid? PROFESSOR: Bəli. Belə ki, həqiqətən bir surəti yaradır. Üst hemoroid və bu cür. Bir yığın yığını düşünün kitab, bir şey bir yığın. Son ilk üst hemoroid, out, ilk həyata davam. Belə ki, burada bir x yaratmaq olacaq. Ki, var olacaq bütün funcs dəyişənlər. Great. Belə ki, indi biz iki müxtəlif x ki, var iki çox fərqli şeylər təmsil edir. Sonra biz çap olacaq x tam həyata. Belə ki, sağ, 100 çap edək? Çünki burada, bu 100 edir. Belə ki, ilk şey Bu çap olacaq ki. Bu funksiya qaytarır heç bir şey kimi, İndi ki, funksiyası, əsas ki, xətt edilir. Bu günə qədər mənimlə yaxşı hər kəs? Beləliklə, biz həyata iki vasitəsilə indi istəyirik bizim əsas funksiyası üç xətləri. İndi biz üçüncü xətti olacaq. Biz printf olacaq. Əsas daxilində bu x nədir? Ki, nəyi təmsil edir? Nə dəyəri indi x? Auditoriya: 100. PROFESSOR: 100 var? Auditoriya: Hələ 10. PROFESSOR: Still 10. Bəli. Çərçivəsində xatırlayıram çünki Bizim func, x 100 bərabərdir. Amma biz geri qayıtmaq əgər bizim əsas funksiyası, ki, dəyişən saxlanılır Bizim yığını fərqli bir yer. Belə ki, indi biz geri getmək lazımdır əsas yığını, yerli dəyişənlərin şəbəkə. Və burada x 10 bərabərdir. Və belə ki, biz 10 çap olacaq. Belə ki, o, tamamilə haqlı idi. Biz olacaq 100 və 10 çıxdı. Evet? Auditoriya: siz malloc deyil yığın və ya [Işitilemez] var yığını? PROFESSOR: zaman malloc, Siz yığın yaddaş alaraq edirik və bölüşdürülməsi. Siz yoxdur ki, Bu hər hansı bir mess. Belə ki, böyük paket tapmaq burada çərçivəsində deyilən bir şey var. Da olan sizin üçün baxış iclası ötən gecə, biz bu barədə qısa danışdıq. Scope müəyyən necə və Sizin dəyişənlərin mövcud zaman. Və ya çərçivəsində nə ərzində Sizin dəyişənlərin mövcud yoxdur. Ümumiyyətlə thumb olduqca çox qayda Əgər siz onları yaratmaq, sizin dəyişənlər var curly braces-- daxilində onlar mövcud yalnız qıvrım aşırma daxilində. Belə ki, bizim funksiyası, məsələn func, bu iki aşırma oldu. Siz yaratmaq istəyirsinizsə onun daxilində bir şey, şansını siz yapýyorsun bütün edir bir yığın yaratmaq və orada saxlanılması. Əsas eyni şey. Bu yalnız əsas daxilində saxlanılır. Həmçinin olmaq istəyirəm Burada çox, çox ehtiyatlı. Çərçivəsində də verir, çünki müxtəlif nümunələri özü. Məsələn A So loop, int i 0 bərabərdir. Mən 10 mən bilmirəm, azdır. Mən plus plus. Və, sağ daxilində kodu var? Bu dəyişən deyil, i, həqiqətən, yalnız var? Yalnız loop üçün daxilində. Mən sizə uşaqlar bir çox var bahis yəqin ki, bu səhv zaman rast Siz psets proqramları edirik. Necə uşaqlar çox i istifadə etməyə çalışmışıq loop üçün kənarda və səhv var idi? Bir unreferenced integers kimi və ya kimi bir şey? ki, baş səbəbi burada istəyirik, çünki deyil bir şey yaratmaq ki, yalnız Sizin loop ərzində mövcuddur. Siz onu istifadə etməyə cəhd əgər, i deyil həqiqətən kənarda mövcuddur. Belə ki, əsasən kompüter deyərək Əgər söhbət etdiyiniz nə bilmirəm. Mən bilirəm bütün i idi burada, amma indi artıq. Belə ki, əgər mən yaratmaq idi daxili loop üçün, sağ? Mən başqa yaratmaq gedirəm, int j kimi, bu hər hansı nə var və. Və daxilində kod ki loop, j yalnız burada mövcuddur. Amma bu da i ərzində mövcuddur. Və belə j yalnız mövcud loop üçün bu ərzində i bütün şey var halbuki. Hər kəs aydın? Şərti hesabatları ilə eyni şey bir şey yaratmaq istəyirsinizsə. Isə loops əgər eyni şey bir şey yaratmaq istəyirik. Ki, olmaq üçün bir şey var çox çox ehtiyatlı. Belə ki, bu həqiqətən yaxşı problem idi Bu iki şeyi nümayiş ki, hiss. Bu, ilk çərçivəsində nümayiş etdirdi. Və nümayiş də yaddaş ayrılması. Sizlərin bilməlidir ki, çünki funksiyaları yığını yuxarı bitir. Və siz zəng zaman funksiyaları, siz oluşturuyorsanız yaddaş mahiyyətcə yeni bir yığın. Ki, çox fərqlidir Sizin şəbəkə yaddaş nə. Bəli. Whew! Ki, OK hər kəs? Ki, confusing idi. Çox yaxşı mövzular, artıq getmək Siz yəqin ki, istəyirik, çünki bəzi çətin almaq üçün gedir viktorina kimi şeylər. Bəli. Cool. Mən sizə bir 100 almaq qoymaq lazımdır line və digər sonra 10. Bəli, çox yaxşı. OK, indi uşaqlar olacaq şans TAŞ olmalıdır. Siz bütün sevimli cavab almaq Mən bəzən almaq e-poçt. Belə ki, Hörmətli Andi, mən bir şey hesab edirəm görmək Mənim compiler ilə yanlış gedir. Mən code doğru olduğunu müəyyən edirəm amma seqmentasiya günah əldə saxlamaq I run hər zaman. Nə baş verir? Kömək sevgi çox edin. Sizlərin kimi bir şey var, əgər Siz cavab necə ki? Bu, həqiqətən, çox ümumi sual biz xahiş edəcəyik. Biz bir verəcəyik, əgər ssenari, bizə verəcəyik neler sizin yaxşı tahmin. Hər kəs neler bir zərbə var? Evet? Auditoriya: Bəlkə dereferenced göstərici kimi null şey null şey işarə edir. PROFESSOR: Bəli, bir olarıq ki, baş zaman nümunə. Lakin böyük şəkil var nə burada olub? Auditoriya: Siz çalışdığınız Siz deyilik ki, yaddaş daxil olmaq daxil olmaq üçün nəzərdə? PROFESSOR: Məhz. Belə ki, bir seg günah bir off edirəm yaddaş məhdudiyyətlər, məhdud sahəsi ki, toxunan olmamalıdır. Belə ki, olduqca çox çalışdığınız zaman məsələn kimi index-- üçün, Siz bəyan etdik bir sıfırdan doqquz array. Amma siz ki, 10-cu toxunmaq cəhd dəyəri, siz ki, imkanı yoxdur. Siz onu bəyan çünki. Və belə ki, sizin kompüter gedir ki, kimi baxmaq, oh uh, siz getmək üçün çalışdığınız bir siyahısını hüdudlarından kənarda. Mən sizə vermək gedirəm bir seqmentasiya günah. Sağ, seqment kimi düşünün? Əlavə seqment, günah Əgər bir şey pozulmasına cəhd zaman və orada olmamalıdır. Seqmentləşdirmə günah zaman deyil hər şeyi toxunmaq cəhd ki, toxunan olmamalıdır. Belə ki, ümumi nümunələri bir index var. Əlbəttə ki, siz çalışdığınız əgər ki null idi toxunmaq, ki, həmçinin iş olardı. Sizin pointer üçün çalışırıq, əgər , toxunmaq olmaz şeyə toxunmaq ki, həmçinin iş bilər. Ən adətən siz lazımdır bir sıra görürük. Hər kəs yaxşı? Auditoriya: Əgər istəyirsinizsə 10 point daxil olmaq üçün və yalnız bir limit var doqquz və ya bir şey. PROFESSOR: Bəli, dəqiq. Çox gözəl. Cool. Hörmətli Andi. Beləliklə, biz bu gözəl var şeyi növ çağırıb. Əgər biz kimi sort Birleştirme Məsələn zaman saw David bütün etdi sinif şey niyə, Bu çox daha sürətli əgər digər növ hər hansı niyə biz hətta bilmədən narahat yoxdur digər növ varmı? Həqiqətən isteyen bu sual nədir? Üç word-- nədir Auditoriya: ticarət-off nədir? PROFESSOR: Məhz. Bu sual nə var. Arasında ticarət-off nədir Hər hansı digər növ ayələr sort Birleştirme? Auditoriya: sağ, yaddaş edir? PROFESSOR: gəlirmi bir az daha izah? Birinci Merge mağaza izah edək. Necə işləyir sort Birleştirme edir? Auditoriya: çalışır So yarısında daxil hər şey bölünməsi və sonra birlikdə qoyulması və qaydada yenidən bölüşdürülməsi, hər zaman kimi dəstləri daxil. PROFESSOR: Pretty çox. Mən bu həyata cəlb edə bilər, lakin bu olardı onu çəkmək üçün mənə beş dəqiqə. Bölmə slayt geri baxmaq biz Merge sort əhatə etmişdir. Məhz. Belə ki, yol sort işləri Birleştirme ki, yarısı şeyi ayıran deyil və o, yalnız baxır Onların ilk növbədə dəyərlər və yalnız bu növ. Davamlı yeni serialların yaradır və məqsədilə şeyi daha çox qoyur. Və belə ki, həqiqətən, həqiqətən, var isə sürətli bilirsiniz it's--, çünki, bir ikili axtarış n n log edir. Siz çox yaratmaq edirik sen müxtəlif seriallarda yaddaş miqdarı istifadə edərək. Və belə ki, daha sürətli, ticarət off isə Siz daha çox yaddaş istifadə etdiyiniz ki, burada. Belə ki, işarə, növ və axtarışlar bu il bir çox əhatə olunmuşdur onlar əvvəlki illərdə olduğundan daha. Siz uşaqlar ki, görmək lazımdır müvafiq viktorina əksini tapmışdır. Mən mütləq davam vaxt sərf edəcək artıq nə müxtəlif növ bütün ki, necə ikili axtarış, necə xətti axtarış iş. Necə bəlkə pseudocode üçün o həyata kod. Çalışan dəfə hansılardır? Çalışan dəfə kimi bir şey çox deyil Qeyd hesabatı üzərinə kopyalayın etmək asan, sağ? Siz etdiyiniz zaman həqiqətən çətindir orta test da və bu anlamaq lazımdır. Onu surəti. Mən sizə etdiyiniz zəmanət ki, bilmək lazımdır gedir. Ticarət-off hansılardır? Ən pis halda, ən yaxşı halda ssenariləri onların hamısı üçün çox tanış. Evet? Auditoriya: biz lazımdır Merge sort kod necə? Kimi, biz lazımdır recursive saxla? PROFESSOR: Mən yalnız bunu şübhə Bu kifayət qədər mürəkkəb kimi, çünki. Amma bu infeasible ola bilər biz əgər pseudocode onu istifadə edəsiniz. Bəli. Yep, OK, bir daha. Bu gəlmişəm bilər bir az son parça. Evet? Hər kəs eşitmək mi? Ilk OK, belə ki, olduqca çox Proqramın bütün növü bu kimi bir çıxış verilməsi ola bilər? Biz öyrənmək istədi saxla alət ayıklama bu yeni növü? Bunun adı nə idi? Valgrind, sağ Bu harada bir proqram idi Siz ola bilər ki, zəng edə bilər Siz etdiyiniz bütün yaddaş takip proqram istifadə və gedir. Belə ki, kimi, bir şey var, əgər mütləq bir blok, 40 bayt itirdi. Yəqin ki, siz deyilik onu azad etmək xatırlayaraq. Siz yaddaş bytes istifadə edirsinizsə, çünki, ki, siz ki, yaddaş əldə etdik deməkdir ancaq azad edə olmamışdır. Belə ki, etmək istəyirəm siz də əmin ki, ki, bir var free-- istifadə bütün azad funksiyası malloc tərəfindən yenidən bölüşdürülür yaddaş. Cool. Bu slayd Belə ki, mən onu lazımdır. Bu bir çox yerdə var bölmə slaydlar bir çox mühazirələr. Siz, həqiqətən, əmin etmək istəyirəm Yalnız bu bütün bilirik. Ya qeyd hesabatında və ya əgər yadda istəyirsinizsə, çekinmeyin. Bu, həqiqətən, həqiqətən, həqiqətən, vacibdir. Həmçinin çox yaxşı biz xahiş edə bilər sual. Nə seçmə sort baxmaq edir Seçki runtimes bütün sort n kvadrat edir. Asılı olmayaraq siyahısı gəlir necə belə ki, niyə Seçim sort deyil kimi Mən sizə uşaqlar 30 verəcəyik ikinci bu barədə düşünürəm. Bu cür çaşdırıcı, çünki. Bəzi konseptual fikir daxildir. Niyə run dəfə eyni olacaq həm də ən pis və ən yaxşı ssenariləri? Evet? Auditoriya: Çünki Seçki sort hər Bu kiçik array mövqe və ya kosmik şey və ya nə. Belə ki, hətta ən yaxşı halda, mükəmməl sıralanır belə, Bu hələ bir, OK kimi olmalıdır. Ilk növbədə mən bir var. Və onların bütün vasitəsilə getmək. OK, bir kiçik deyil. Və sonra yenə gedir və iki OK, kimi şeyi bütün kiçik deyil. Amma hələ də var hər bir yoxlamaq. PROFESSOR: Bəli. Belə ki, məsələn, yalnız deyək biz bir siyahısı, artıq sıralanır ki, bir sıra beş biridir. Seçki növ ki, yol Bu bu iki yoxlayır, keçir. Sonra bu iki yoxlayır. Və sonra yoxlayır və bu yoxlayır. Bu, onların hamısı yoxlanılması saxlayır asılı və ya bu, həqiqətən sıralanır. Ki, sadəcə, çünki sort işləyir yol. Və bu sual növ kimi Biz xahiş edəcəyik konseptual sual. Harada ilk, siz nə seçim sort bilirik sağ, etmək, var sualına cavab. Siz anlamaq mümkün olmalıdır konseptual neler. Və sonra OK, tətbiq və hesab edə bilər Yalnız ən pis halda ssenari təsəvvür edək. Onlar bütün azalan istəyirik. Necə ki, təsir? Nə sifariş artan əgər? Bu, artıq sıralanır bilər? Necə ki, runtimes təsir? Və sonra Seçki sort, siz görəcəksiniz Bu, həqiqətən etməz ki. Siz kontrol edirik, çünki bütün dəyərləri asılı olmayaraq neler. Və belə yaxşı şeylər unutmayın. Bəzi növ digərlərindən fərqlənəcək Niyə və necə yaxşı və ən pis ssenari onların hamısı təsir. Mən, həqiqətən, növ hit gedirəm ki, viktorina olacaq. Bəli. OLDU. Sol altı dəqiqə var. Mən suallara üç dəqiqə çəkə bilər. Mən də ətrafında asmaq olar bölmə sonra 20 dəqiqə kimi Siz həmçinin sual istəyirsinizsə. Hər kəs yalnız həqiqətən qısa yoxdur suallar və ya konseptual məsələlər Onlar indi haqqında aydın mi? Evet? Auditoriya: Bir az danışmaq Kompüter bitwise operatorlar haqqında bit? PROFESSOR: Bəli. Belə ki bitwise operatorları bir şey yəqin ki, yalnız hesabatı qoymaq istəyirəm bilər. Beləliklə, mən istəmirəm tez, dərinliyi çox getmək onların nəzərdən Harvard, çünki sessiya, olduqca yaxşı əhatə. Bitwise operator var Onlardan beşi, sağ? , X və ya funksiyası olan bu var və olan işareti var. Və ya Pipe. Və sonra iki növbədə müxtəlif növ. Mən sizə iki dəyərlər, əgər versələr Mən və bir kimi, verir. Nə üçün qiymətləndirirsiniz? Əgər Mən sizə doğru, həqiqi və əsl verir? Nə doğru və ya yalan haqqında? Hələ doğru, sağ? Bir və ya var, çünki. Biz çox güman ki, sizə nömrələri verəcəyik. Belə ki, bir bərabərdir, xatırlayıram doğru, sıfır yalan bərabərdir. Və biz bu şeylər verə bilər və nə bizə xahiş edirik. Harvard ilk ərzində əhatə edir Onların öyrənilməsi sessiya 10 dəqiqə həqiqətən, həqiqətən, yaxşı. Belə ki, uşaqlar etmək istəyirəm Siz geri baxmaq. Auditoriya: pisa5 Is viktorina olacaq? PROFESSOR: Xeyr Hətta indi pisa5 baxmırıq. Bu çətindir. Just hətta pisa5 baxaraq narahat deyil. Lakin, bəzi göstərişlər kimi və təkliflər, mən Siz pisa5 başlamaq gəlir ki tezliklə viktorina üzərində kimi. Bu ağır olacaq həftə, lakin sonra uşaqlar təpələri bu keçiləcək yaşıl və bala yayma, və gözəl var. Bu sinif əhəmiyyətli olur beşinci pset sonra asan. Auditoriya: Office saat Bazar, Bazar ertəsi var? PROFESSOR: Bəli, ofis saat olacaq, belə ki, Pset üçün bazar ertəsi Bazar. Office saat axşam mahiyyətcə yalnız viktorina üçün baxış olacaq. Hər kəs gəlib xahiş istəyirsə Bir sual Taş, biz orada olacaq. Mən bəlkə bir daha sual almaq lazımdır Hər kəs bir sual var? Evet? Auditoriya: Zaman istəyirik müəyyən qovşaqlarının, [işitilemez] növbəti sonra node ulduz və deyirlər ki, əgər, kompüter avtomatik olaraq yoxdur sen başa düşürük ki, başqa göstərici istinad? PROFESSOR: Xeyr Auditoriya: Siz var Bu [işitilemez] relink? PROFESSOR: Belə ki, əsasən bir node struct xatırlayıram ki, Siz node yaratmaq kimi və sonra növbəti adlı göstərici var. Siz yapýyorsun bütün olan var orada quruluşu. Siz təyin etmək lazımdır ki, haradasa göstərici. Belə ki, kompüter deyil hələ bunu nə bilirik. Siz, həqiqətən, zaman təyin etmək lazımdır Siz bağlı siyahı yaradılması edirik. Və nə əsasən var pset 5-də olacaq. Haqqında heç bir narahatlıq indi ki, doğru hər hansı bir. Auditoriya: Belə ki, biz lazım deyil yalnız link siyahısı çox çox diqqət ümumi konsepsiyası? PROFESSOR: Just olduqca çox çıxarıcı borular, sıralarında, link siyahıları, ağacları, hash masalar. Məhz onlar nə bilmək. Biz xahiş etmək fikrində deyilik Siz xüsusi bir şey kimi Biz, həqiqətən, həyata deyil, çünki bir hələ ki, hər hansı bir əhatə pset. Əvvəl son iki dəqiqə belə Mən sizə pulsuz bu viktorina set to kill. Pretty çox kimi, necə düşünmək qədər uşaqlar bu sinif gəlmişəm. Mən həftə iki xatırlayıram Bu sinif, siz bəzi su yazı üç saat sərf edirlər. Bu sizi necə uzun uşaqlar indi su yazmaq? 30 saniyə, bəlkə? Nə qədər düşünün Sizlərin öyrəndim. CS həqiqətən, həqiqətən, çətin mövzudur. Ki, heç bir şübhə yoxdur. Bu, heç kəs öyrənir niyə ki, çətindir. Bu, sadəcə çətindir. Və bu tamamilə gözəl var. Mən ki, həqiqətən fəxr edirəm hər kəs qədər bu etmişdir. Psets asan deyil. Onlar çox vaxt almaq. Siz uşaqlar, Mən yazmaq üçün xahiş heç vaxt pset 15 və ya Vigenere oyun. Ehtiyac yoxdur, yalnız bu barədə qəribə. Biz burada test edirik bütün qiymətləndirmək üçün Sizin konseptual bilik, eləcə də kodlaşdırma əsas bacarıqları bəzi. test üçün nəzərdə tutulmuşdur həqiqətən çətin ola bilər. Kimi, nəzərdə tutulmuşdur Siz 100 almaq deyil. Bu da yəqin ki, sizin üçün nəzərdə tutulmuşdur 75 dəqiqə başa çatdırmaq mümkün deyil. Və tamamilə gözəl var. Mən tələbə özüm deyiləm. Mən gəzmək zaman mən bilirəm, mən bunu nifrət bir viktorina həyata bok kimi olmaq. Bu, həqiqətən çətin idi. Yəqin ki, nə olacaq happen-- və tamamilə gözəl, İndi uşaqlar deyirəm. bu şeyi vasitələri bütün yüksək deyil. Və sizin üçün olan kimi əldə edilmişdir, Sizin problem dəstləri üçlər, ki, olduğunuz demək deyil Bu sinif 60 faiz almaq üçün gedir. Siz 60% almaq deyil viktorina, Siz olacaq demək Bu sinif D almaq. Biz xüsusilə I, üçün, baxın Mənim bölməsində sizin, Sizlərin bütün iş necə ağır görürəm. Mən ki, takip. Siz uşaqlar gözəl olacaq. Heç bir institusional yaddaş var dövr sonunda xoşbəxtlik. Bütün Harvard uşaq izah olunur, çünki onların dostları, oh, siz gözəl olacaq. Heç kim ki, burada uşaqlar izah edir. Belə ki, burada uşaqlar demək lazımdır. Siz uşaqlar gözəl olacaq. Mən sizə uşaqlar bütün belə fəxr edirəm. test çətin olacaq. Bunun üçün öyrənmək, və sonra yalnız tullamaq. Yeni şeylər öyrənmək üçün hazır olun. Və konfet yemək. Biz konfet çox var var. Yaxşı bir gecəsində yuxu almaq. Yatmaq deyil etməyin, çünki ki, həqiqətən, pis olarıq. CS məntiq bir çox deyil. Siz yatmaq deyil, siz fəaliyyət göstərə bilməz, və beyin fəaliyyət göstərə bilməz. Və mən növbəti 20 burada olacaq dəqiqə hər kəs ətrafında asmaq istəyirsə. Siz uşaqlar onu öldürmək üçün gedir. Uğurlar.