PROFESÖR: Yani gündem için Bu hafta, o kadar şeyler. Ama umarım çok, çok yararlı ve çocuklar bu hafta hakkında. Ama biz, belki 15 harcamak için gidiyoruz Sadece hızlı konuşuyor 20 dakika Bağlantı listesi hakkında. Bağlantı listeleri gidiyor sınavda karşılanacaktır. Bu yüzden belki de çok yararlı olacaktır ne olduğunu hakkında biraz bilgi edinmek için. Biz geniş geçirmek için gidiyoruz Günümüz bölümünün çoğunluğu Sınav sıfır pratik sorunları üzerine gidiyor. Ve sonra biz belki 20, 30 dakika tasarruf edeceksiniz herhangi bir kalıcı sorularınız için sonunda Herkes sahiptir. Ve son o zaman beş dakika, ben gidiyorum sınav için bir pompa kadar konuşma vermek. Siz burada bunun için olmak istiyorum. Iyi bir zaman olacak çünkü. Pekâlâ, bazı Bağlantı listesinde malzeme. Nasıl bunlar genellikle yapılandırılmış konum olduğunu sağ, bir düğüm denir var mı? Sen denilen bu şeyler var düğümleri, yapılar bulunmaktadır. Ben nasıl oluşturulacağı üzerinde gidersiniz Bir sonraki slaytta bir düğüm. Ama esasen tüm bağlantılı veri listeleri olduğunu göstericiler üzerinden birlikte sinirli olmuştur. Ve böylece avantajı var bağlantılı liste üzerinde kullanarak, belki bir dizi gibi olan Gerçek şu ki, bir dizi Eğer biri bitişik blok ihtiyaç hepsi aynı yerde hafıza, tek Birbiri ardına, o var edebilmek için. Bağlı listede Oysa sen-ebil bellek rastgele küçük bit var Tüm bilgisayar üzerinde işaretçileri tarafından birlikte sinirli. Ve bu şekilde size bilgilere erişebilirsiniz Bu ardına geliyor Diğer sonra, bir başka sadece büyük bir yığın gerek kalmadan yere bilgisayarınızda bellek. Ve böylece bu önemli biridir Biz bağlantı listesini kullanın nedenleri. İkincisi, dinamik çok kolay Çünkü dizide bağlantı listesi yeniden boyutlandırma, Eğer bir diziyi bildirmek zaman, Belirli bir set değeri vardır. Diyelim ki yaratmak istedik diyelim 10 tamsayılar dizisi. Ben 10 bir dizi oluşturmak tamsayı ve o kadar. O 10 yaşında. Bundan sonra ne yapacağımı bilmiyorum. Ben 11 yapmak isteseydim, bunu yapamam. Ben 9 yapmak istiyorsanız, bunu yapamaz. Bir bağlantı listesinde Oysa ekleyebilir ve Silmek istediğiniz yere yerleştirin. Dinamik yeniden boyutlandırmak edebilirsiniz Burada veri yapısını yapısı. Ve bu bize bir sürü verir daha ekledi esneklik biz genellikle bilmediğimiz Dizilerle var. Herkes, temel karıştı bir bağlantı listesi nasıl yapısı ya da neden bir dizi üzerinde birini kullanmak zorunda mıyım? Evet, biz detaylı üzerine gidersiniz nasıl aslında bir tane oluşturmak için. Ama bu sadece tür olduğunu Şu anda genel anlamda. Güzel. Ve böylece diziler birlikte sinirli olan bu güzel küçük şeyler denilen düğümler. Bütün bir düğüm yapı bir tipidir. İsterseniz bir yapı olduğunu unutmayın değişkenin belirli bir tür oluşturmak için C zaten değil Eğer bir programcı olarak, mevcut, aslında kendiniz olduğunu oluşturabilirsiniz. Verilerin Ve böylece bu tip yapı, bir düğüm olarak adlandırılır, aslında, bizim tarafımızdan oluşturuldu kendi başına C aralığında mevcut değildir. Ve yol olduğunu Eğer var olan bir oluşturmak typedef struct başlık, Hangi ben derleyici söyler bir yapı oluşturmak üzere. Biz bunu "düğüm". Ad gidiyoruz Ve içinde biz gidiyoruz Bir değişken bildirmek için, Bir değer saklamak için gidiyor hangi. Ve o zaman biz de gidiyoruz bir işaretçi çağrıda bulundular "next" bir sonraki işaret Bağlantı listesinde düğüm. Ve sonra o bitirmek sadece bu yüzden yine düğüm tekrarlayarak derleyici, tamam bilir bu benim yapı sonu. Ve böylece bu yolla, biz naziksiniz şirin bir dizi oluşturma Bir şey ile tür değer ve bir işaretçi ile. Ve tüm bunları bağlayabilirsiniz birlikte bu işaretçileri ile. Onlar her türlü olabilir böylece Bir zincirin birlikte sinirli. Güzel. Eğer biraz daha iyi olduğunu duyabiliyor musun? HEDEF KİTLE: Evet. PROFESÖR: Pekala. Yani siz görebilirsiniz, yol, Tipik bir bağlantı listesi yapılandırılmıştır Eğer bir kafa var olduğunu. Hangi değil Sen kafa değerine sahip Başka işaretçi tarafından işaret edilir. Ama bu işaret için gidiyor veya referans, başka bir düğüm. Düğüm sonra başvurmak için gidiyor Düğüm ve benzerleri ve benzeri sonra sonunda vurmak kadar bağlantı listesinin sonu. Ve sadece orada bir işaretçi olmaz. Ve böylece, hatta bir zincir üzerinde, gibi düşünmek, ya da Sizin yapmış adamlar herhangi bilmiyorum eğer, Meyve Döngüler olduğu gibi ne zaman biraz idi. Birlikte dize onları olur ve boynunuza giyerim. O aynı şey olduğunu düşünüyorum. Bu küçük şeyler var sen can araya dize biri o nokta ondan sonra, bir sonrası bu, ve benzerleri ve benzeri Eğer bir zincir var kadar Bir veri yapısının ancak sizin gibi böyle kullanabilirsiniz. Yani yol bu, biz-cekti tipik eklemek veya silmek Bir bağlantıdan herhangi bir düğüm liste çok farklı Bu düğüm yere bağlı. Bu nedenle, örneğin, çünkü işaretçileri her zaman belirli bir değeri işaret ederek Silmek veya bir düğüm eklediğinizde, Eğer işaretçi emin olmak istiyorum tamam şeylere işaret ediyor. Eğer istedim Yani potansiyel takın birinin değeri ile yeni bir düğüm Bir sıralı linke içinde Liste, hepimiz burada biliyoruz gidiyor resimden Doğru, baş ve iki arasında gitmek? Bir doğru var uyuyor çünkü. Ama hangi yolu biz yapacağını İlk işaretçi dereferencing tarafından kafa ve bir bu gönderilmesi. Ama biz burada bir problem haline gelir. Herkes sorun ne görebiliyor biz ilk dereference olsaydı olduğunu bir tırnağa işaretçi? Sorun ne biz çalışırsanız çalıştırmak olabilir Bizim dizinin önüne bu eklemek için? HEDEF KİTLE: [duyulamaz] PROFESÖR: Kesinlikle. Yani burada biz bir işaretçi Bir kez ikiye tırnağa işaret. Ama bundan kurtulmak eğer pointer, sen birine yönlendirin Şimdi hiçbir fikrim yok Nerede iki bulmak için gidin. Ben daha önce söylediğim gibi, sen var çünkü bir Bilgisayarınızdaki bellek dev yığın. Tüm bu düğümler olabilir rasgele serpiştirilmiş Bilgisayarınızda herhangi bir yerde. Ve nasıl bilmiyorum Bu bulma konusunda gitmek için. Ve böylece işaretçiler olması gerekir sonunda tüm düğümler işaret. Yoksa eğer yanlışlıkla biri inceleyebilirsiniz İlk görevlendirilmesi olmadan Bir değeri ilk, sen Sadece kaybedeceğini Daha sonra her şeyi. Peki biz gidiyoruz do you would ilk olduğunu bir işaretçi üzerinde oluşturmak istiyorum düğüm eklemek istiyorum. Size nerede onu yönlendirin bunu eklemek istediğiniz, ve daha sonra daha sonra size birine geri başını işaret edebilir. Burada herkese mantıklı mı? Büyük. Sadece bir zincir gibi düşünün. Bir zincir eklerseniz, bu sezgisel tür bunu nasıl ekleme hakkında gitmek istiyorum. Tamam, bu yüzden bu kadar aslında Ben bunun olacağını düşündüm daha kısa, Bağlantı listelerinde beş dakikalık spiel. Sadece bu yüzden siz var ne olduğunu temel fikir. Burada sınav sıfır gündemini var. Bu sizi korkutmasına izin vermeyin. Ben çok fazla bilgi olduğunu biliyorum. Bu çok korkunç görünüyor. Aynı zamanda bir sürü ben terimlerin CSC tür düşünüyorum. Onaltılık dizeleri gibi şeyler, göstericiler, dinamik bellek ayırmalarını çok korkutucu sondaj terimlerdir. Ama biz onları kırmak için gidiyoruz aşağı, bazı uygulama sorunları yapmak Böylece hepiniz Bu test için hazırdır. Kaç çocuklar var Zaten çalışmalarına başladı? Tamam, siz muhtemelen istediğiniz başlarken başlamak için Bu konuda, bilgi yarışması yarın çünkü. Yoksa biraz sizin için Perşembe. Evet, bu yüzden biz gitmek için gidiyoruz Bazı pratik sorunları üzerine. Hepiniz almak istiyorsanız bir kağıda, bir kalem dışında. Biz sadece harcamak için gidiyoruz Günümüz bölümün büyük çoğunluğu Bunun üzerinde bazı gidiyor siz var ve bu yüzden quiz beklemek ne bir fikir. TAMAM. Lojistik bir çift herkes için, hem de ayrıntıları kim olursa, orada bu bağlantı olmamıştır Eğer cephesinde, cs50.yale.edu gitmek bir bağlantı vardır bu sayfayı O "Şike Zero sağlar." diyor Bağlantı sizi oraya götürür. Eğer okumadıysanız, okuyun lütfen. Size gerçekten önemli söyler çünkü sınav ile ilgili bilgiler. Ben bu çekip gidiyorum Bu sırf fiziksel, Siz nerede bilmiyorum eğer gitmek için, biz sorun yaşayabilirsiniz. Ve A açısından çok eğer son N, hukuk fakültesine oditoryum gidin. Ve eğer P ile son başlar A'dan Z'ye, Davies Oditoryumu'nda gidin. Ve bu da sadece başvurusu Çarşamba bölümünde insanlar. Eğer sınav alarak ediyorsanız Perşembe, sen SSS 114 gitmek nerede ders genellikle. HEDEF KİTLE: [duyulamaz] PROFESÖR: Z O sen gidiyorsun Davies oditoryum gitmek için. Birazdan, bunu değiştirmek için gidiyorum? Evet, sadece otomatik başarısız. Oh evet, bu sizin Christa var. Evet, benim hatam. Evet, Z, O, size gidiyoruz Davies Auditorim gitmek için. Ben bu kez ben yüklemek düzeltmek için gidiyorum. Evet. Ve sonra da bir şey Akla önemli resmen iseniz Çarşamba günü olduğunu Çarşamba bölümünde kayıtlı, Çarşamba günü quiz almalıdır. Ve Perşembe kayıtlı iseniz, Eğer sınav Perşembe almalıdır. Ve bu ders saatinde değil. Nerede, ben karşı 1:00 gibi düşünüyorum Çarşamba 02:15 ve 2:30-03:45 Perşembe günleri. Eğer bir uzlaşmaz çatışmaları varsa, Dean'in mazeretler tek şey vardır, ne yazık ki, biz alabilir. Biz vardı Çünkü istekleri büyük çoğunluğu Çarşamba'dan Perşembe'ye geçmek için. Hangi biz sürece onur olamaz Biz Dean'in isteğim var. TAMAM. Biz başlamak Yani önce uygulama problemlerinin çift, Ben biraz üzerinde gidiyorum Başarı için Andy'nin yararlı ipuçları. Sizler, ne zaman size gerçekten, çalışma elle kod yazma alıştırması istiyorum. İlk kez şimdiye kadar CS sınav aldı, ben yoktu elle uygulama yazma kodu önce ve son derece oldu ne kadar zor şok edici. Siz içine alamadım zaman her şeyi yazarak alışkanlığı, Çok doğal olarak geliyor mümkün otomatik olarak tamamlanıp tamamlanmayacağını olması Orada parantez ve noktalı virgül. Eğer bunu yazdığınızda elle, bazen var çok kolay bir noktalı virgül unutmak, veya bir parantez kapatmak için unutmak, veya iki nokta üst üste kapatmak için unutmak, Ya da bunun gibi bir şey. Yani elle kod yazarken, çok farklı bir his var. Yani siz, siz çalışıyoruz uygulama bazı sorunların yoluyla, iyi bugün gerçekten uygulama olacaktır. Sen eğer ya da yarın, ben, herhalde Perşembe günü sınava. İkincisi, bizim gibi, son var, Uygulamada sekiz yıl değer Online sınavlar. Bu yılki sınav muhtemelen olacak Çok hepsi çok benzer. Bunların hepsi çok benzer konum. Tür içine almak soruların Çeşidi tarzı Biz sormak, tipi biz onu yazacağım fonksiyonları, Vesaire, vesaire. Yani, uygulama sınavlara Özellikle zaman kısıtlamaları altında. 75. dakikada test yapmak için süreyi değil bir sürü. Bu çok, çok uzun. Ve böylece siz gerçekten istediğiniz Siz emin olmak için yazma alışkanlığı hızla elle kodu. İlk istemiyorum çünkü Zaman o uzunlukta bir sınav görmek için senin sınav olmak. Siz gerçekten emin olmak istiyorum Eğer önceden pratik söyledi. Dördüncü olarak, İncelemek istediğiniz ders ve bölüm slaytlar. Bir şeyleri ezberlemek zorunda değilsiniz. Aslında, herkes izin verilen Beyaz kağıt notlardan biri levha, ön ve arka. Siz yazın veya yazabilirsiniz. Eğer kendinizi ezberlemek gerek bulursanız şey, o kağıda koydu. Ben size garanti, size istemediğiniz Bu sınavın ortasında sıkışmış gibi olmak oh yeah, ne bu tür karşı bu tür çalışma zamanı. Sadece bir yere koymak ve kopyalayın düz not levhadan. Sonra aslında sadece kullanabilirsiniz senin Beyin problemleri düşünmek yerine gerçekleri hatırlamak zorunda daha. Ve bu yüzden gerçekten yararlanmak herhangi bir niş ayrıntıları Eğer ezberlemek gerekir düşünüyorum, Yorumla kağıda aşağı plop. Tamam, herhangi bir soru lojistik sınav ile ilgili Başlamadan önce bazı bilgi yarışması sorunları pratik? Evet? İZLEYİCİ: Ben bir şans olmadı sınav bakmak için [duyulamaz] ama olacak Uygulama çoğunlukla ya da olacak, orada olup gibi, bilgi soruları? PROFESÖR: Bu bir çok şey. Yani, yol ben would sınav tarif Bu-- Ben araya Bazı uygulama sorunları Tüm sınavlar çekti söyledi. Ama iki ana var olduğunu görürsünüz soru tipleri biz isteyeceğiz. Bir şeyler çok düşük düzeyde ayrıntıdır. Size küçük bir kod yığın vereceğim ve bir hata orada burada, diyorsunuz? Burada ne dışarı baskı olurdu? Bu kod üretecek Ne, vesaire. Yani çok düşük düzeyde bilgileri ayrıntıları. Ve flip tarafında, biz çok gerekecek üst düzey bilgi temelli sorular. Ne açıklayabilir misin Bir ikili arama arasındaki fark ve doğrusal arama nedir? Neden isteyeyim diğer üzerinden birini kullanmak? Belki de GDB nedir? Neden GDB kullanmak istiyor musunuz? Yüksek düzeyde, daha temel anlayış sorular. Yani bir karışımını göreceksiniz senin sınavda iki tanesi. Başka bir şey biz önce düz içine kafa? TAMAM. HEDEF KİTLE: Bir tane daha. PROFESÖR: Ah, bir tane daha. Üzgünüm. HEDEF KİTLE: Evet, her şey yolunda. Yani 75 dakika olduğunu söylüyorsun olası gibi, çok kısa biz bitecek? Ya da, gibi, 75. dakikada tam olarak çok zaman biz eğer ihtiyacımız gibi uygun hazırlanmış? PROFESÖR: Tamam, sınav zordur. Kesinlikle zordur. Sen zamanında kendinizi kısa bulacaksınız. Muhtemelen 10 gibi vurmak için gidiyoruz 15 dakika gidip bok gibi olmak. Ben çok yapmak yapmamışlar. Ve bu tamamen iyi. Herkes aynı şekilde hissetmek için gidiyor. Sadece çok farkında olmak ne kadar zamanın var. Ben size yüzden bu yüzden var adamlar pratik sınavlar yapmak. Gerçekten harika bir hissi verir çünkü Neyin yarışması gibi olacak. Yani kendinizi olmak bulursanız pratik bitmiş mümkün iyi bir miktarda sınavlar Zaman, sen de kendinizi hızı edebilirsiniz o zaman bir sorun olmaz Çarşamba veya Perşembe günü. Güzel. Yani herkesi düşünmek wants-- eğer Çoğu insan kağıt yaprak var zaten. Ben aslında sadece gidiyorum Size örnek soruları vermek, gibi size a adamlar vermek Birkaç dakika bunları yapmak için. Ve biz bir sınıf olarak üzerinde gidersiniz Onlara cevap nelerdir. Yani bu çok tipik yaparız erken soru Sadece dönüştürmek, size sormak Farklı bazlar arasındaki numaralar. İkili olarak siz yapabilirsiniz hatırlama, taban ikidir. Ondalık tabanı 10, ya da ne olduğunu İnsanlar genellikle yorumlamak olarak. Onaltılık sıfır taban 16 olduğunu dokuz yanı sıra A F. aracılığıyla aracılığıyla Yani ben dört numara var Sizi soran burada dönüştürmek. Sana üç, gibi vereceğim nasıl düşünmeye dört dakika Bu çözme hakkında gitmek istiyorum. HEDEF KİTLE: Biz hesap izin mısınız? PROFESÖR: Sen olmaz evet, hesap gerekir. Ben temel toplama, bence, bence Tüm çocuklar yapmanız istenecektir. Ve sadece bu yüzden tür bir duygusu var Herkes bittiğinde arasında, bakmak dalga, ben, gülümseme, bilmiyorum bitirdiniz eğer mutlu görünüyorsun. Evet. Belki bir kaç dakika daha. Tamam, onu getirsin. Ben bilerek gidiyorum adamlar daha kısa sürede vermek Muhtemelen gerek daha Bu sorunların bazıları bunu, Ben emin olmak istiyorum çünkü biz sorunların bir demet aracılığıyla olsun. Yani hiçbir endişe değil mi eğer bitirmek için bir şans var. Eğer varsa sürece Tamamen Tamam Bu konuda gitmek için nasıl bir fikir. O yüzden go ahead ve ilkini yapalım. Yani ilk, herkes bana söylemek istiyor ikili ne bu rakam her birini kendi değerleri açısından temsil? Evet? HEDEF KİTLE: İki için Güç sıfır, bir, iki. PROFESÖR: Kesinlikle. So Doğru, bu yüzden genellikle Biz 10 tabanına olduğunuzda Tüm bu gibi vardır temsil Sıfır tabanına 10, değil mi? Bu sizin kişinin yerdir. Senin 10'un yerdir hepsi Birinin iktidara 10. Sen 100'ün yeri 10 iki güç. Ne olursa olsun taban Eğer gidiyor konum aynı şeyle yapmak, sadece farklı baz ile. Yani ikili olduğunu tüm temel ikidir. Tüm dönüştürmek için gidiyoruz İki türlü güç içine rakam Bu rakam. Ve böylece bu anlamda, biz kolay bir yolu olabilir kadar eklemek edememek veya sırayla tüm sayıları toplamak 10 tabanına dönüştürmek. Yani herkes bana söylemek istiyor neyi İlki cevabı tabanı on nedir? HEDEF KİTLE: İki, [inaudible] PROFESÖR: Evet. HEDEF KİTLE: 42. PROFESÖR: 42, oraya gitmek. Yani biz bu cevap var yolu oldu İki, hangi ilk iki yapıyorum. Ayrıca iki sekiz üçüncü. Ayrıca iki beşinci hangi arta kalan ne olursa olsun olduğunu. Onları Özetle ve 42 var. Herkes biz var nasıl karıştı mı? Gibi çok temel bir ek Ben Tamam olmalıdır, dedi. Değilse, iyi, biz de o pratik yapabilirsiniz. Ama hepsi doğru. Güzel. Herkes bana vermek istiyor mu hem de ikinci bir cevap? 50? İyi. Nasıl karıştı herkes biz ya var ki? Ben Serin olacak Bir sonraki slaytta cevaplar. Bu yüzden hiçbir endişe eğer aşağı kopyalamanız gerekir. Tamam, bu nedenle onaltılık biraz daha zordur. ama ben sizi göstermek için gidiyorum bunu nasıl için bir kısayol. Onaltılık Yani, senin gibi Tüm bu 16 olacak olduğunu unutmayın. Ve çünkü biz insanlar aslında yok gibi Bu temsil etmek 16 numaraları var, biz hangi ilk dokuz sıfırdan gitmek 10 değerler ve o zaman, F ile A yapmak hangi önümüzdeki altı değerlerdir. Ve böylece en kolay yolu gitmek onaltılık herhangi bir ikili sayı yarım onları kırmak için. Ve böylece herhangi bir ikili sayı biz vereceğiz muhtemelen sekiz basamak olacaktır. Sadece kırabilir ortada Onları. Yani ilk Şehre tek tek, tek tek, tek, tek, tek tek. Sanki, bilirsin çizmek, o kadar düşünüyorum Bir çizgi ya da aralarında bir virgül. Ve sen sadece dönüştürebilirsiniz doğrudan ne olursa olsun bu ilk için onaltılık sayısı burada ne olduğunu onaltılık ikinci. Yani ortak gösterimde hatırlıyorum, Ne onaltılık değerleri ile başlar? HEDEF KİTLE: Sıfır. PROFESÖR: 0X. Bu yüzden her zaman size sormak biliyoruz onaltılık herhangi bir sayı dönüştürmek, ya da herhangi bir zaman, herhangi bir bakın 0 X ile başlar numarası Eğer bir onaltılık değer olduğunu biliyorum. Ve sonra istenecek gidiyoruz Bu iki rakam ne olduğunu belirlemek. Ve yolu, yukarı sayılması bunu yarım ve yarısı kadar Sayım işlemleri. Bu örnekte Peki bir, bir, tek, tek olacaktır? Ne değeri olur? Bu doğru, F olurdu? Yani 15 olurdu. Yani bu F. One olurdu, Burada, biri, bir de bir F. Yani bir, tek, tek, tek, tek, tek, tek, onaltılık biri, bu tüm 0xFF. Bu devre temsil Çünkü F, 15 değeri, bu devre, temsil F değeri 15. Hatırlıyorum Çünkü, biz konum sıfırdan dokuza kadar sayma. A F 15, B 11 gibi, 10 gibi. Herkes nasıl mantıklı mı Biz onaltılık ikili var mı? HEDEF KİTLE: Ve böylece biz nasıl aldın Bir, bir, tek, bir ila 15? PROFESÖR: Evet, bu doğru, ikili mi? Bu sadece bir ikili sayı düşünün. Yani iki var biridir sıfırıncı. HEDEF KİTLE: Tamam, evet. Yani sadece dışarı toplam. PROFESÖR: Evet, ve sonra Sadece dışarı toplam. Yani hepsi bu. HEDEF KİTLE: Tamam. PROFESÖR: Tamam. HEDEF KİTLE: Yani ikili gitmek onaltılık ondalık? PROFESÖR: budur en kolay yolu, evet bunu. Sen çünkü ondalık gitmiyorsun ondalık sadece dokuz sıfır vardır. Biz tür sadece konum ikiye Bu kadar bölme. HEDEF KİTLE: [duyulamaz] ondalık kullanarak bulmak ne onaltılık kadar eşleşir. PROFESÖR: Yani, sen temel matematik kullanarak Sayım işlemleri. HEDEF KİTLE: Evet. PROFESÖR: Evet, oldukça fazla. Bu biraz kafa karıştırıcı. Ama biliyorum sen misin kadar bölebilirsiniz ne olursa olsun Bu değer sadece parçaya olduğunu. Bakın, bu ikili nedir? Ne sayıdır? Olacak Sıfırdan F şey Burada da olacak Sıfırdan F şey Ve sonra sadece koyabilirsiniz Orada bu iki. HEDEF KİTLE: Tamam. PROFESÖR: Evet. TAMAM. Yani siz istediğiniz sonraki bir deneyin? Sıfır, bir, sıfır, bir, on, sıfır, bir, sıfır. Ben 30 saniye gibi sizi vereceğim, muhtemelen bilmiyordu çünkü Bu daha önce yapmak için nasıl hile. Tamam, herkes bu bir atış almak istiyorum? 0x5A. PROFESÖR: 0x5A. 5a. İyi. Yani bu burada istediğiniz göre-- cekti Bunu nasıl aldığını bize? İlk olarak, nasıl beş aldın? İZLEYİCİ: sıfır olduğundan, on, sıfır, bir beş. PROFESÖR: Herkes anlıyor mu Beş yüzden, sıfır, bir, sıfır, bir,? Burada bir tane var. İlk ikiye şey yok. Ikisinde ikinci için, sana dört olduğu bir sahiptir. Yani dört artı eklemek biri, sen beş var. Herkes iyi? TAMAM. Ve sonra ne olacak bu ve neden? Bir kaç numara karşılık gelir? HEDEF KİTLE: 10. PROFESÖR: Peki bu temel iki? HEDEF KİTLE: [duyulamaz] PROFESÖR: Kesinlikle. Yani burada bu ikinci değer 0x5A olacaktır. Herkes dönüştürmek için nasıl iyi? Bu öyle sandığından çok basittir. Ben sadece emin olmak istiyorum Eğer yararlı ipuçları biliyorum Bunu yapmak için nasıl ve hileler. HEDEF KİTLE: Neden sadece ayırabilirsiniz böyle ortada? Sadece Tamam, ben sadece gidiyorum, gibi Bu ilk [duyulamaz] umurumda? PROFESÖR: aslında Çünkü yol onaltılık değerler temsil edilmektedir. Aslında demek 0X, Size söylüyorum başka bir şey Bir onaltılık sayı olduğunu. Bu, her zaman temsil eder İlk dört basamak. Bu, her zaman temsil eder Son dört basamak. Ve böylece bu iki rakam sadece Farklı bit karşılık gelir. HEDEF KİTLE: Yani always-- olacak PROFESÖR: Hep sen Sekiz değer bit almak için gidiyoruz. HEDEF KİTLE: Sadece bir şey gibi mi burada ya da baştan bir şey mi? PROFESÖR: Bu sadece var Bilgisayarlarda bir şey, evet. HEDEF KİTLE: Tamam. Başar. PROFESÖR: Ayrıca, bu örnekte, böylece biz ondalık ikili dönüştürülür ve ikili onaltılık. Siz de emin olmak istiyorum etrafında başka bir yol gidiyor pratik. Sana 0XFF verdim eğer öyleyse, sen-ebil Doğru, ikili olduğunu çizmek? Sen, ikili haline dönüştürmek F olan bir, bir, tek, tek, , ikili F dönüştürmek hangi bir, bir, tek, biridir. Yani biz yapmanı isteyebilir başka bir yol. Yani ikili ondalık veya ikili onaltılık. Yani yapmak istiyorum emin Her iki yol biliyorum. Muhtemelen size isteyeceğiz bir ikisinin kombinasyonu. Evet, bir sorum var? Ben sen iyisin see-- olabilir? HEDEF KİTLE: Evet. PROFESÖR: Tamam. Ben bu silmek için iyi miyim? Büyük. Pekâlâ, cevapları herkes, eğer burada Daha sonra meraklı ve şaşkın olsun. TAMAM. HEDEF KİTLE: biz koymak farkeder mi Capitol veya küçük harflerle bizim mektuplar? PROFESÖR: It does, çünkü onaltılık, Kongre tarafından, tüm karakterler büyük harfe edilir. Yani A'dan F'ye olan büyük olacak. Bir küçük a koyarsanız, ben bilmiyorum biz mutlaka yanlış işaretlemek olsaydı. Ama teorik olarak, Bu teknik olarak değil bunu nasıl olması gerekiyordu. Yani hepsi büyük harf olmalıdır. Evet, iyi bir soru. TAMAM. İkinci soru. Burada bu güzel programı düşünün. Ben soruyu soracağım, Ben bu geri geleceğiz. Yani, öncelikle, standart içinde ne var Bu io.h programa ilgi var? İkincisi ne geçersiz yapar hat üç işaret? Ve üçüncüsü, ne sıfır dönen yok Ana hat altı, genel delalet? Siz o yazmak istiyorsanız Ben geri dönmek zorunda çünkü, aşağı slayt sadece bu yüzden kodunu görebilirsiniz. Bu gibi, belki de bir örnektir Size sormak üst düzey soru ne şeyler bir programa demek. Benim için iyi Herkes geri slayta gitmek? Tamam iyi. Bu yüzden sana belki üç gibi adamlar vereceğim dakika bu gerçekten hızlı bakmak için. , Bu nedenle bu kişinin böyle Tamam oldukça kolay, kavramsal. Ne kimse bana söylemek isteyen var mı dahil olmak üzere karma tarafından içinde ilk Standart io.h kütüphane dosyası? Neden bunu kütüphane gerekiyor Bu programa dahil? Burada Ne için gerekiyor? Evet? HEDEF KİTLE: mi o zaman O printf koydu? PROFESÖR: Kesinlikle. Yani printf, her zaman size kullanıcıdan bir girişi almak ve baskı şey ekrana, işte standart giriş, çıkış kütüphanesi. , Çıkış girişini yol-- olduğunu düşünün. Ben bir çıkış var mı? Evet ediyorum. Yani ben hep gidiyorum biliyorum standartlaştırmak İ.Ö kitaplık gerekir. Böylece Printf fonksiyonudur hangi biz erişmesi gereken ve hashtag içerir Standart İ.Ö kütüphanesi. TAMAM. İkincisi, bu boşluk ne anlama geliyor? Biz ne yaptığını int main (void) var Burada geçersiz üçüncü hatta burada mı? Evet, arkada. HEDEF KİTLE: [duyulamaz] PROFESÖR: Kesinlikle. Yani biz öğrendik, hatırlıyor Bizim pset ile başlayan aslında olabilir ki Komut satırını belirtmek argümanlar bu program, size o ana işlevi, senin gibi alır, kullanıcı, Bunu aramak. Biz geçersiz varsa, bu sizin demektir Sadece doğrudan program çalıştırabilir Herhangi bir komut satırı argümanları olmadan. Herkes net? TAMAM. Ve son olarak neden yapıyoruz rahatsız yapmak Burada bu dönüş sıfır şey nedir? Neden biz bile bir int main var? Neden sadece void main boşluğu olamaz? Evet? HEDEF KİTLE: Sadece biz böylece Program olduğundan emin olun gibi başarılı çıkan o numaralı eğer karşı. Ve biz bu olduğunu bilemez hata farklı bir tür. PROFESÖR: Evet, kesinlikle. Bu sadece çok olduğunu Yaptığımız geleneksel şey bu sadece sonunda programınızı, sadece emin olmak için ana işlevi olduğunu düzgün çalıştığından, biz her zaman geri dönüşü sıfır yapmak istiyorum. Hatta biz mutlaka may olsa her yerde basılı göremiyorum. Çünkü programcılar olarak, bilirsin, eğer kod birçok farklı çizgiler var ve nerede bilmiyorum Bu yanlış gidiyor Bir hata olur ve istediğiniz O hatayı alıyorum emin olun. Ve böylece tipik bir şey giderse Yanlış biz tek bir dönüşü olacak sadece bunun olduğunu biliyorum emin olmak için. Eğer bir dönüş görürseniz yüzden sıfır, tipik olarak Programınız olduğu anlamına gelir başarıyla yürütüldü. İyi? Güzel. Tamam, burada ikinci bir program. Düşünün. Ve siz bir görürseniz yüzer, siz muhtemelen can iyi bir fikir ne Ben size sormak üzereyim. Peki ne zaman bu program Gördüğünüz gibi, yürütür, Ben bir şamandıra ilan ediyorum benim ana işlev içinde. Ben, "cevap" o adlandırma ve ben ayarlıyorum O 10 tarafından birine eşittir bölünmüş. Ben birine, yazdırmak ediyorum ondalık basamak, o şamandıra. Ve sonra sıfır dönen. Yani programı çalıştırırken, Şimdi geri açgözlü düşünüyorum, Bu program, 0.0 yazdırır. Hepimizin bildiği gibi, umarım hepimiz 10 bölü biri 0.00 değil, biliyorum, 0.1 var. Bu program düşünüyor ama neden açıklamak 1 diğer 0.1 10 baskılar bölünmesiyle olduğunu 0.1'den daha? Ben 30 gibi sana adamlar belki vereceğim saniye sadece hızlı bir şekilde düşünmek ve geri programa gidersiniz. TAMAM. Herkes denemek ister misin? Üç cümle veya daha az ise, genellikle biz çünkü Tüm cevapları kısıtlamak olacak Üç cümle veya daha az böylece sadece regürjitasyona yok senin sınav üzerine rastgele şeyler. Evet, bir çekim. İZLEYİCİ: Yani bu olduğunu düşünüyorum gibi, denilen şey, [inaudible] Bu yüzden olabilir, örneğin, 0.09 gibi, olabilir, İlk yazdırmak nerede hane, 0.0 olurdu? PROFESÖR: Kapat, oldukça. Christabell? HEDEF KİTLE: Birini bölüyorlar ve 10 ve ikisi de tamsayılar konum. Ve böylece yol gidiyor o o bir tamsayı olarak saklamak için. Ve böylece en yakın tamsayı 0,0 olacaktır. Ve böylece 0.1 var. PROFESÖR: Evet, bu gerçekten iyi. Doğru cevap bu. Yani bu çok kafa karıştırıcı çocuklar bir sürü kavram. Ve ben gerçekten emin olmak istiyorum Bu herkesin kafasında takviye edilmiştir. Biz yüzen diyoruz Peki nokta belirsizlik, nerede nedeni çok açgözlü içinde programlarınızın Başlangıçta işe yaramadı çünkü oldu Eğer değişken döküm unuttum. Peki Christabell ne dedi tamamen doğru idi. Bir şamandıra özünde belirsiz olduğunu. Bir bilgisayarda, sağ, biz var çünkü bellek bir bit sınırlı miktarda Biz sayıları temsil etmek için kullanabilirsiniz. Bu nedenle, örneğin, bu CS50 İD o-- Ben bir 64-bit bilgisayar olduğunu düşünüyorum. Bir şamandıra sadece temsil edilebilir Bu bitlerin sonlu miktarda. Ve böylece 0.1 sonsuz sıfırlarla, O en 0,1 haktır oldu? Ama biz aslında depolayamıyor Bizim bilgisayarda bu sayı. Biz sadece yok yeterli bellek bunu. Ve böylece en yakın yaklaşım içinde Ne bellekte depolanır aslında 0.000 şey gibi bir şey, bir şey, bir şey, bir şey. Hangi sen kesmek kez o, 0.0 aşağı yuvarlar. Ve böylece bu örnek sadece bir tanesidir Bu konuların çok gösteriyor Biz olduğun zaman biz var yanlış matematik yapmaya çalışıyor Farklı bir tamsayı olarak döküm olmadan. Dolayısıyla, sadece bu olay konusunda dikkatli olun. Sınavlar, biz size verirsem kod bloğu ve gibi, Ne sonunda yazdırır? Ve bazı rasgele değer eğer Bu oluyor neden adamlar bilmeli. Evet? HEDEF KİTLE: Kısalt kurtulun Belli bir noktadan sonra her şey? [Duyulamaz] PROFESÖR: Evet, aslında çok Bu gerçekten kötü bir örnektir, aslında 0.100 ne olursa olsun, çünkü 0.1 aşağı kesecek. Ama olsaydı Durdur-- çalıştırmak için I do not hatırlıyorum geçen yıla çünkü Farklı bir program koştu. Onlar bir şey onu adlandırılan koştu CS50 Aletler, burada ID farklıdır. Bu 32-bit sistem oldu sanırım. Ve böylece farklı sayılar vardı. Ama esasen, sadece biliyorum kesilme bütün kavramı ve sadece şeyler kesiyor nasıl. Ve bu yüzden eğer rounds-- HEDEF KİTLE: yuvarlama olmadan. PROFESÖR: Kesinlikle. Evet. Güzel. Merhaba, arkada. Biz sadece bazı üzerinde gidiyoruz sınav soruları yorum. Pekala. Yani burada farklı bir program düşünün. Ben Sizi vereceğim birkaç dakika bunun üzerinde okumak için. Bu çok oldu bir şey Son zamanlarda sana bir sürü patladı düşünüyorum adamların kafasında. Ama biz konuşacağız Bu aracılığıyla yine sadece Emin olmak için tamamen anlıyorum. TAMAM. TAMAM. Herkes için daha fazla zamana ihtiyacım var Bu kod ile okudun mu? TAMAM. Yani Bana öyle geliyor ki Bu programda ben getString kullanarak iki dizeleri oluşturma. Bir denir s ve bir ton denir. Ve onlar eşit iseniz birbirine eşittir o "Sen yazdırmalısınız Aynı şeyi yazın. " Ama elsewise, o "Sen yazdırmak Doğru, "farklı şeyler yazdınız? Çok basit görünüyor. Ama, ancak, eğer ben aslında Bu programı yazmaya çalışın, öyle görünüyor olsa bile ben Giriş aynı dizeleri, hala ", You yazdırır Farklı şeyler yazdınız! " Herkes almak istiyor mu Neden bu program her zaman en atış yanıt girişler olduğunu Hatta, farklı kelimelerin kendileri aynı olduğunda? Yani eğer David aşkı input-- edildi Doğru, annem gibi bir örnek kullanılır? Küçük m-O-M S, T küçük M-O-M eşittir. Ben ile bu koştum ise Bu kod, neden olur "Eğer farklı şeyler yazdınız?" çıktı Herkes daha ihtiyacı var mı Zaman bu konuda düşünmek için? Tamam, biz iyiyiz. Evet? HEDEF KİTLE: Tamam, bu yüzden bu konuda bir şey doğru, bellekte saklanan nerede? PROFESÖR: Evet. HEDEF KİTLE: Bu eğer, gibi Dize hafızasında saklanır spot-- I paha sıfır icat var. PROFESÖR: Elbette. HEDEF KİTLE: Ve dize t Bellek noktada depolanır 167, ve daha sonra, benzeri sıfır 167 eşit değildir. PROFESÖR: Kesinlikle. Tamam, bu yüzden bu inanılmaz hatırlıyorum vahiy biz çocuklar açıkladı Geçtiğimiz hafta, o dizeleri gerçekten var mı? Biz bir şey oluşturduğunuzda denilen Dize biz konum, gerçekte, Char yıldızı denen bir şey yaratmak. Hangi tüm o bir göstericidir bir dize veya karakter dizisi için. Ve böylece bu örnekte, ben eğer Giriş M-O-M yolu vardı Bilgisayarımın öyle depolamak olacağını Bellek ters eğik çizgi sıfır içinde, değil mi? Bu dört karakter, karakter, bir yerde saklanır. Sonra bu dört karakterler, ters eğik çizgi sıfır, Doğru, başka bir yerde saklanır? Hiçbir fikrim nerede var adresleri Onlar benim bilgisayar bir yerdeler vardır. Nerede olduklarını ama tam olarak bilmiyorum. Ben bir dize oluşturduğunuzda s, tüm bu gerçekten bir işaretçi olduğunu Bu dize başlar. Ve ben bu t değeri oluşturduğunuzda, Tüm bu Buraya bir göstericidir. Ve böylece çalışıyoruz eşit ve kontrol etmek için s eşittir olup olmadığını görmek için t eşittir, bilgisayar Gerçekten sadece dönen olduğunu Bu m adresi ve o m adresi. Ve onlar iki çünkü Verilerin ayrı parçalar iki farklı depolanır Bilgisayarınızda adresleri, Bilgisayarınız asla gidiyor Aynı olarak onları tanımak. Herkes istiyor mu bir atış vermek ne Biz düzeltmek istiyorsa yapmak zorunda Bu ve doğru çalışan bir programı var yerine? Birkaç saniye için düşün. Biz değiştirmek gerekiyor ne Bu programın işleyişini olsun biz işlev istediğiniz şekilde? Evet, ona bir bıçak almak ister misin? HEDEF KİTLE: Biz inceleyebilirsiniz deneyebilir miyim işaretçi ve dizi aracılığıyla kontrol ettin mi? PROFESÖR: İşte bunu yapmak için tek yoldur. Yani, senin adın neydi? Üzgünüm, bana hatırlat. Zee: Zee. PROFESÖR: Evet, yani ne Zee kesinlikle işe yarayacağını öne sürdü. Sağ? Biz işaretçi inceleyebilirsiniz olabilir aslında gidip erişim içinde sadece fiziksel verileri. Ve biz sadece karşılaştırabilirsiniz tüm ekran. Biz işaretçi, tamam diyebiliriz, Burada içinde ne bana ver. Bir m dönecekti. Ve diyorum ki, işaretçi, Burada içinde ne bana ver. Bir m döndürür. Bu maç mı? Evet. Sonra hareket. Biz tüm ikisini kontrol tutmak sonuna kadar dizeleri tüm yol kadar Bu eşitse ve görmek tüm değerler eşit ise. Ve tüm değerler eşitse, o zaman dizeleri doğru olduğunu biliyorum. Kesinlikle, biz yapacağını nasıl? Herkes bu herhangi karıştı mı? Nasıl dizeleri bütün kavramı gerçekten sadece noktalar şunlardır, ve nasıl gerçekten var mı? Ve neden hata iletisi alıyorum biz onu almak yolu gibi? Sana çocuklar, işaretçiler garanti Çünkü ve dize tahsisi ve bellek gelip gidiyor. Evet? HEDEF KİTLE: [duyulamaz] inceleyebilirsiniz o, sadece bir yıldız koymak [duyulamaz] PROFESÖR: Doğru. Yani bir işaretçi aracı derererence için işaretçi o adrese gitmek için ve orada, değer verileri elde. Ve bunu yapmak için bir yol yıldızı göstericidir. Bu karıştırmayın. HEDEF KİTLE: [duyulamaz]. PROFESÖR: Evet. HEDEF KİTLE: Yani sadece yazabilirsiniz Yıldızın s eşit eşittir yıldız t eğer. PROFESÖR: Şey, hayır. Hayır. HEDEF KİTLE: Bu doğru, yeterince iyi değil mi? PROFESÖR: sen, çünkü değil sadece ilk harf denetimi. Muhtemelen gidiyoruz Bir döngü çeşit gerektiğini her dolaşır Her iki dizeleri karakter. Evet. Yani eğer sen sadece görmek için kontrol etmek istedim aynı şeyle başladı eğer, Eğer, yıldız eğer yapabileceğim s yıldız t eşittir. Sonra bildiğiniz en azından onlar Aynı karakteri ile başladı. Evet? HEDEF KİTLE: Yani yol Eğer olurdu do Bir döngü veya işaretçi için gömülü gibi mi? PROFESÖR: Evet. Hemen hemen sadece bir döngü için. Sınıfta David söz Unutmayın, ücretsiz sözdizimsel şeker? Ve o bu çok vardı Yıldız t kafa karıştırıcı bir şey artı bir, bu entegre olur aracılığıyla ve işaretçiyi hareket? Yapmanın kolay bir yolu bu sadece i t. Yani bu sadece bir dizi var. Eğer bir olurdu bu şekilde i sıfırdan koştu döngü, nerede i uzunluğudur Dize, sadece olabilir yerine yapıyor yazma Bütün gösterici, referans bir şey. Yani bu şeyler tam olarak Bilgisayarınızda eşdeğer. Siz muhtemelen olmayacak bilmeniz gerekir, ama sadece tür güzel Arkada aklını var. Sadece bilgisayar biliyorum kodunun farklı bloklarını tanır Aynı şey olarak. Bu sadece çok daha fazla kullanıcı olduğundan dost bu gibi bize sunmak için Bir dizi. Bu sadece daha kolay. HEDEF KİTLE: Peki sevmeye strlen kullanın, get-- PROFESÖR: Evet. HEDEF KİTLE: Tamam. PROFESÖR: Yapabilirsin eğer, strlen kullanın veya Eğer sadece yukarı yapabilirsiniz strlen yoktu Her ikisi için de ters eğik çizgi sıfır girene kadar. Ya çalışacak. Evet. HEDEF KİTLE: Yani her dereference var tek bir karakter aslında olsaydı Bu kod yazma, biz Sadece t parantez i yapabileceğini Bunun önündeki yıldızı ister misiniz? PROFESÖR: Evet, eşittir s eşittir i ve i hareketli tutmak dirsek aşağı sonuna isabet kadar. Evet, sen öyle yapardım. Ve aslında bir sonraki olacak ne zaman biz örneği aslında strlen yazmak yüzden siz tür olacak ve onunla biraz uğraşmak olsun. Yani, sadece hafızada herkes açıktır dizeleri, göstericiler, kalite adresleri? Bazı üst düzey kavramları bu size quiz bilmek emin ihtiyacı için irade yarın. Pekala. İyi. Evet. Tamam, bir şey biz de isteyeceğiz o Biz sınav her yıl yaptığımız gibi, olduğu (Eğer unuttuysanız varsayalım ki biz her yıl yapmak unutmuş görünüyor) hangi başlık dosyasında strlen ilan edilir. Ve böylece biz kendimizi yeniden yazmak zorunda. İşte kurallar listesi vardır Size sunmak olduğunu Eğer farz olsun adamlar dize null olmayacak s. Sen s olacağını varsayabiliriz ters eğik çizgi sıfır ile sonlandırıldı. Yani bu ne olduğunu biliyorum onunla sonuna kadar gidiyor. Ve, örneğin, bu merhaba uzunluğu beş olacaktır. Yani bu merhaba varsayabiliriz Beş, H-E-L-L-O olacaktır. Bunu kabul etmek zorunda değilsiniz uzunluğu sıfır hesaplarını arka yanı. Buradaki son şey, değil mi tamsayı taşması dert. Herkes hatırlıyor mu Ne tamsayı taşması nedir? HEDEF KİTLE: ötesinde Goes [duyulamaz] uzunluğu. PROFESÖR: Evet, açıklayabilir biraz bu ne anlama geliyor? HEDEF KİTLE: Yani, geri gidiyor sanırım kesiliyor örnek daha önce. Ama sadece bu kadar çok sayıda varsa Bu bit sayısı ötesine Eğer aslında atayabilirsiniz sadece tür kesti olacaktır. PROFESÖR: Evet, tipik bir o kadar Bilgisayar, biz kaç bit var? HEDEF KİTLE: 32? PROFESÖR: Evet, 32, sağ. Ve böylece, ne dört, var milyar iki milyar? Dört milyar dört milyar pozitif tamsayılar, değil mi? İki milyar negatif, iki milyardan pozitif, Eğer bunu yapmak istiyorum nasıl bağlıdır. Ve böylece temelde biz olabilir yukarı gidebilir yeterli tamsayılar 31 ikiye eksi 1, değil mi? Biz iki isabet çünkü bir kez 32nd, biz değiliz bizim bilgisayarda bu kadar belleğe sahip. Ve böylece, teorik olarak, ben Bir numara ile gelebilir bu, olduğu gibi, 46. için ikidir. Bu, çok büyük bir göt numarası ama teorik yaparsın. Eğer çalışırsanız Ve böylece tamsayı taşması olduğunu Ne ötesinde bir tamsayı oluşturmak Bilgisayarınızın depolama kapasitesine sahiptir. Için Ve böylece siz Bu örnek yok Size bir dev verilmesi konusunda endişelenmenize gerek 32 karakter için iki kişi olduğunu dize uzun. Bu gerçekten demek olacaktır. Pekala, ben sadece vereceğim Siz bu temel yapısı. Bir oluşturmak için gidiyoruz fonksiyon int strlen nerede denilen Bir geçmesi, bir karakter yıldızı, veya dize, dize işaretçisi s çağırdı. Pekâlâ, herkes aşağı kopyalayın. Güzel. Oops-- başka bir yol. Yani bu bir böyle tür bir sorun daha parça bu yüzden size belki beş adamlar vereceğim beyin fırtınası tür altı dakika ve bu fonksiyonu yazmak. HEDEF KİTLE: Bilmiyoruz [inaudible] için hesap, Biz tamsayı kullanmak zorunda değilsiniz? PROFESÖR: Hayır, yok. Ben adamlar sana bir ipucu vereyim. Bir süre döngüsü burada çok yararlı olabilir. Evet. İşte şeker. Şeker de mevcut olacak yarışması için sanırım. Yani siz tüm olacak Yarın şekerli. Sen sahipsin Ben-- edebilirsiniz. HEDEF KİTLE: Tamam. PROFESÖR: Evet. Belki 30 saniye daha ya da öylesine. Pekala, eğer bitmiş değil, merak etmeyin. Biz birlikte bu aracılığıyla hareket edeceğiz. TAMAM. Yani sadece düzen gidiyorum Burada bu fonksiyon için temel yapısı. Strlen Int. İlk olarak, herkes söylemek istiyor bana o int belirtir ne olacak? Biz bu işlevi olması gerekir. HEDEF KİTLE: Strlen [duyulamaz]. PROFESÖR: Kesinlikle. Yani burada ne olursa olsun, Biz bir tamsayı dönmek gerekiyor. Ve belirtildiği gibi spec biz return-- istiyoruz Sadece devam, bu çocuklar için gidin. Hepsi iyi. Ye hepsi bu yüzden yok Aslında, onu geri almak için. Int sadece sen anlamına gelir gidiş bir tamsayı iade edilecek. Bu karakter yıldızı s nedir? Bu ne anlama gelir? HEDEF KİTLE: giriş olmanın ne gibi. PROFESÖR: Kesinlikle. Ve neredeyse nedir Char yıldızı olarak aynı şey? HEDEF KİTLE: String? PROFESÖR: Kesinlikle. Yani biz yapıyoruz bütün veren bir bir dize bu işaretçi. TAMAM. Güzel. Biz unutmak Ayrıca, eğer, unutma Size bu parantez vermek, bunları kendiniz yazmayı unutmayın. Teorik Çünkü senin kodudur Bunları yazmak için unutursanız yanlış. Sadece her zaman dikkat edin. Gibi küçük şeyler Eğer fark yoktur Eğer dizüstü programlama yaparken, Dizüstü bilgisayarınızın sizin için yapar çünkü? Ne zaman unutma Eğer elle yazıyoruz. Evet? Nasıl Ama yanlış: İZLEYİCİ? Gibi, biz yanlış bütün sorunu alabilirim? PROFESÖR: Hayır, hayır. Merak etmeyin. Aslında teorik olarak mümkün Bir soru üzerine tam puan almak için Hatta kod olacak eğer gerçek hayatta asla bitmez. Ben do not try önermek gerçekleşmesi için. Örneğin, eğer her şey gibi Bu burada haklı, ancak bir iki nokta üst üste ya da dirsek unutmak, senin kodu aslında çalışmaz. Ama biz merhametli olabilir. Evet? HEDEF KİTLE: Eğer gerek var mı Bizim el yazısı hakkında yorum? PROFESÖR: hayır, hayır, hayır Bu konuda endişeler. Hiçbir yorumlama. Stil iyi olmalıdır. Gibi, Smush yok bir satırda her şeyi. Biz mutlu olmayacak Seninle bunu yaparsan. Herkes istiyor mu Bana ilk satırı ver? İpucu, bu çok kolaydır. Evet? HEDEF KİTLE: Orta, n sıfır eşittir. Sadece sayacı ayarlayın. PROFESÖR: Yani bazı istiyoruz Bir sayacın tür, değil mi? Ben sadece bir isim "saymak" gidiyorum okunabilirlik uğruna. Ne eşit olarak ayarlayın istiyorsun? HEDEF KİTLE: Sıfır. PROFESÖR: Evet. Noktalı virgül. O da çok garip bir çizim noktalı virgül var. Sadece bunu yaparken pratik. Bu yüzden ilk olarak sahip olmak istiyorum int türünde bir sayaç. Biz nasıl saymak istiyorum çünkü Birçok karakter veya harfleri Bu dize, değil mi? Çok kolay ilk adım. Tamam, belki biraz daha karmaşık Şimdi, nasıl bu kadar yapacağız? Herkes istiyor mu Bana kod satırını vermek Bu döngü yardımcı olabilir ne aracılığıyla bu nedir? Arkada Evet, cesur ruhu? HEDEF KİTLE: Tamam, bu yüzden süre noktası yıldız, s evet, yıldızı, değil sıfıra eşit, daha sonra bir şey yapmak? PROFESÖR: Bu gerçekten, gerçekten yakın. Gerçekten yakın. Yani adrese gidiyorum Bununla iki şey. Her şeyden önce, tam olarak, sıfır değildir. Bu ne? Bu, boş sonlandırıcı var hangi ters eğik çizgi sıfırdır. Yani farklı konum Onlar depolandıkları nasıl koşulları. Yani gerçekten yakınsın. Ve ikincisi, biz istemiyoruz Sadece işaretçiyi hareket ettirmek için. Biz aslında istiyorum Doğru, değerlerine erişmek? Ve böylece nasıl bunu yapmak? Çok kolay. Işaretçileri hakkında düşünmeyin, anıları hakkında sanmıyorum. Bu dersin haftada iki geri dönün. HEDEF KİTLE: [duyulamaz]. PROFESÖR: itibarıyla, hatırladın mı? Dizeleri nelerdir? Nasıl bellekte depolanır? HEDEF KİTLE: Onlar kaldırdı ediyoruz. PROFESÖR: Bunlar yetiştirilir. Peki nasıl erişim yapmak içinde her karakter? HEDEF KİTLE: [duyulamaz]. PROFESÖR: Kesinlikle. Yani içeride burada ne gider while--? S - İZLEYİCİ: I. PROFESÖR: Oh, yok, değil mi? HEDEF KİTLE: Oh, saymak? PROFESÖR: Biz sadece can biz değil, sayısı kullanılır? HEDEF KİTLE: Üzgünüm, ben bunu i aradım. PROFESÖR: Evet, her şey yolunda. Biz de bu burada bir değişken kadar var Zaten bizim sayacı olarak ilan edildi. Peki neden sadece bu kullanmayın süre döngü içinde hareket etmek? bu mantıklı mı? Count-- s kimsenin istiyor süre Yani Bundan sonra ne olur bana verecek? HEDEF KİTLE: Bu eşit değil. PROFESÖR: eşit değilse, doğru mu? Bu patlama, eşittir bulunuyor ünlem, eşittir Siz istediğiniz ne olursa olsun equal-- değil diyorlar HEDEF KİTLE: [duyulamaz]. PROFESÖR: Evet. Bir Char için tek tırnak hatırla çift ​​tırnak bir dize içindir. Onları kullanırken dikkatli olun. Peki ne zaman biz aracılığıyla arıyoruz Dizi, son karakter, biz istemiyoruz biliyorum ters eğik çizgi sıfır olarak. Süre Yani. Biz dizenin sonunda değildir. Ne içeride ne istiyorsun? HEDEF KİTLE: Biz eklemek istediğiniz sayaç sayar artı artı öyle mi? PROFESÖR: Kesinlikle. Yani biz burada yapacağız saymak artı artı, saymak. Bir daha satır eksik. Neredeyse geldik. Ne yapmamız unutuyorsun? HEDEF KİTLE: sıfır dönen? PROFESÖR: Sen sıfır dönmek istiyorum? HEDEF KİTLE: Hayır, strlen dönen. Bekleyin. PROFESÖR: saklanır? HEDEF KİTLE: sayın. Sayın. PROFESÖR: Kesinlikle. Yani burada biz sayısı dönmek için gidiyoruz. Biz ne konum Çünkü Burada ne ultimately-- Biz var bir sayaç değişkeni var Bizim dize ile artırmak için gidiyor. Biz devam edeceğiz, devam Bu döngü etrafında ve çevresinde, gidiş. Ve biz bu sonu değil yaparken boş sonlandırıcı olan dize. Ve biz geçmesi her zaman bu, bizim sayaç ekliyoruz. Ve biz daha gidiyoruz Bu dizide birlikte. Ve sonunda, biz bir kez Boş terminatör vurdu biz oh, biz, biliyoruz kırmak, sayısı döndürür. Bizim strlen var. Herkes nasıl olsun mu Bu hayata geçirildi? Biliyorum loops-- ederken biz değil onlarla çok yapılır ancak bunlar genellikle konum çok yararlı eğer Eğer duruyoruz bilmiyorum durum mutlaka olmak zorunda. Soru? HEDEF KİTLE: Biz boş yazabilir miyim süre durumuna? PROFESÖR: iken? Evet, bu yüzden bu problemde sana vardı adamlar s boş olmayacağını varsayıyorum. Unutmayın, çünkü teorik olarak, eğer sana verdiğim bellek çok büyük bir işaretçi, Doğru, sana null adlı verecekti? İşte ne çalışma Sistem yapardı. Ben varsaymak söylemedim Yani s boş olurdu, sen kontrol etmeniz gerekir. Yani buraya, sen yapardın, s eğer Boş eşittir, birini döndürebilir. Bunun gibi bir şey. HEDEF KİTLE: [duyulamaz] sıfır. PROFESÖR: Tamam, ben söyleyeceğim biz bunu yapamam neden. Pekala, işte, bellekte hatırlıyorum çünkü. Biz burada gidersiniz. Sen Dev bloklar var tüm ızgaraları ile bellek Bu mağaza farklı değerler, değil mi? Ve böylece tüm bir dize için bu-- örnek, biz merhaba girişine ise, Bu, H-E-L-L-O olacaktır Ters eğik çizgi sıfır, değil mi? Ve sonra kim rasgele gibi, bilir ondan sonra burada olan şeyler. Biz aslında orada ne olduğunu bilmiyoruz. Ve böylece yapmak olsaydı yerine ters eğik çizgi sıfır, null, null olmayabilir. Sadece anlamına gelebilir çünkü bazı rasgele başka şeyler senin dizede ait değil. Ve böylece yol her zaman olduğunu biliyorum biten bir dize ters eğik çizgi sıfır ile. Ve böylece her zaman nasıl biz var bir dize sonuna bakın. Eğer varsa null, tüm bu araçtır her şeyden önce varolmayan gösterici, veya bellek sadece çok büyükse Bunu geri dönemezsiniz, o zaman boş olurdu. Farklılaştırarak Yani çok dikkatli olun boş arasındaki fark ve ters bölü sıfır. Evet. Bu Tamam herkes? TAMAM. Yani siz strlen yazmak vardı. Fizibil biz de yazmak sorabilirsiniz I A dışarı unutmayın "Atwoa" veya ne olursa olsun siz onu aramak ister misiniz? Bu işlevi Vigenere ve Sezar, o bir tamsayı bir Ascii değeri dönüştürür? Bu da geçmiş sınavlar üzerinde geldi fonksiyonların biz yazmak istedim ettik. Hemen hemen herhangi bir fonksiyon Eğer kullanılan ve bir ettik kendiniz yazmak çok kolay, sensörler düşük gibi, Üst için, alt, üst olduğunu. Bir dönüştürmek istiyorsunuz Fonksiyonlar küçük harf dize büyük harfe. Hepimiz doğru, bunu biliyor musun? Bu oldukça kolay. Sadece emin olmak istiyorum sen can-- aynı düşünce süreci var. Sadece yinelemenize ve bir şeyler açın. Ya saymak veya farklı şeyler açın. Ben ben suggest-- ediyorum Biz gidiyoruz bilmiyorum Ne sermaye A ezberlemek sormak ya da sermaye Z veya küçük A veya küçük z Ascii vardır, ama ben öneririm belki durumda aşağı yazma yaparız. Sadece bu yüzden siz bir başvuru var. Büyük harf A, ne 197 olduğu gibi mi? Ve sonra küçük 50 gibi bir şey. 65, evet, oraya gitmek. Dolayısıyla, sadece hemen hemen biliyorum Aradaki fark 32'dir. Bu oldukça önemli. Evet. Bu konuda iyi miyim? TAMAM. HEDEF KİTLE: Yapabiliriz teorik bazı bilgileri de bu aşağı bizim küçük-- on PROFESÖR: Sen teorik Sadece işlevi aşağı kopyası olabilir. Bu doğru. HEDEF KİTLE: Değil [duyulamaz]. PROFESÖR: Siz bir levha var. Siz bir not sayfası var. Bunu yazabilirsiniz. Bunu yazabilirsiniz. Sen onunla istediğinizi yapabilirsiniz. Evet. Yani teorik olarak, eğer Eğer için gitmek istiyorum. HEDEF KİTLE: [duyulamaz] ama biz gerçekten yok mutlaka hatırlamamız gerekiyor değer, biz sadece can Üst ya da kullanmak alt fonksiyonu, değil mi? PROFESÖR: Evet. Ama biz size bir soru verdiyse Bu, üst yazmak diyor o zaman yazmak gerekir. Yani adamlar sizin varsayabiliriz çocuklar, tüm fonksiyonlara erişim ancak üst etmek veya kullanmak istiyorsanız alt, ne de yapmam gerekiyor? HEDEF KİTLE: [duyulamaz] kullanmak CS50 [duyulamaz] PROFESÖR: Bu CS50.h mi? Orada dikkatli olun. Üst Yani, düşük, , üst olan düşük içeren fonksiyonlar dize manipülasyon vardır tüm ya Ascii içinde veya matematik kütüphane içinde veya dize kütüphane içinde. Siz bunları kullanın Yani eğer fonksiyonlar, hatırlamak için dikkatli olun Bu başlık eklemek için. Böylece belki de bir şey seni sayfanızdaki dahil etmek istediğiniz, başlık nelerdir? Kütüphaneler nelerdir Kullandığınız oldum? Ne fonksiyonlar Bu kütüphaneler içinde? Bu önemli. Evet? HEDEF KİTLE: Biz Could sadece polis dışarı ve hashtag yapmak kesinlikle doğru Biz hiç ettik her mektup tüm sorulara olduğu gibi gördün mü? PROFESÖR: Yapabilirsin. Ben ne kadar mutlu olduğunu bilmiyorum Biz sınıfa olacağız Bu sınav ne zaman kod her parça iki kat daha uzun olması gerektiği gibidir. Ben belki, bilmiyorum tarzı bir noktaya çıkarmak. Ama teorik olarak sizin yanınızdaki Kod doğru olurdu. Siz polis dışarı olabilir ve Sadece her şeyi kapsar. Bu, evet çok iyi. HEDEF KİTLE: [duyulamaz]. PROFESÖR: Evet. Ama bunu yaparken değil öneririz. Evet. HEDEF KİTLE: Serin. PROFESÖR: İyi bir soru. HEDEF KİTLE: Yani, en kötü durum senaryosu. PROFESÖR: en kötü durum. Tamamen unutursanız, Bunu yapabilirdi. Evet. Evet, kod hakkı yoktur. Ben n yerine sizi sayım ancak kullanılan tekne yüzer ne olursa olsun, biliyorum. HEDEF KİTLE: Bekleyin, bu yüzden hashtag olmazdı Biz çünkü dahil int başlayan? PROFESÖR: Evet, sadece farz Biz fonksiyonu yazmaları istendi. Eğer güvenli olması için istedim, seni Muhtemelen oraya koyabilirsiniz. Ama ben sadece evet, rahatsız etmedi. Ben bile bilmiyorum eğer Bunun için herhangi bir kitaplık gerekir. Eğer gerçekten basılmıyor Çünkü bir şey ya da bir şey dışarı, değil mi? Evet, ben bilmiyorum Bir kitaplık gerekir. TAMAM. Bu birlikte aynı zamanda biraz daha Hafıza manipülasyon hatları. Zor bit Bu tür. Bunu düşün. Sen func adında bir işlevi var. Ben adını olabilirdi ne olursa olsun, ama ben func bir isim seçin. Benim ana yukarıda var. Eğer sahip olmak istiyorum, unutmayın ana sonra bir işlev, Eğer emin olmak en prototip içerir. Ancak bu durumda o kadar kısa oldu Ben hissettim o ben sadece olabilir Ana tepesinde dahil. Ben prototip olması gerek yoktu, Zaten yukarıda yazılı çünkü. Böylece tüm benim ana işlevi yapıyorum tam sayı x yaratıyor 10 eşittir. Ben, benim işlev işlevini arıyorum ve sonra bir şeyler kadar baskı. Sonra bu aslında Ne işlev yapıyor. Siz bu yolla düşünmek istiyorum. O biraz zor çünkü. Aslında, çok, çok zor. Bu ne düşünmeye Program çıktısı olacaktır. Ben adamlar sana iki dakika veriyorum. İyi tartışmalar? HEDEF KİTLE: Evet. PROFESÖR: Evet. Pekala, bu Bir nedenden dolayı zor. Ben getirmek istedim Ve bu yüzden herkesin dikkatine. Herkes bana vermek istiyor mu Bir öneri, bir girişim? Bu ne çıktı ki? Yanılıyorsanız Tamamen iyi. Evet? İZLEYİCİ: Ben 100 olduğunu düşünüyorum ve Daha sonra, iki 10 ayrı çizgiler. PROFESÖR: Ve 10? Herkes başka tahminlerde var mı? Evet? HEDEF KİTLE: Belki sadece 10 çünkü func şey dönen değil? PROFESÖR: Tamam, biz bu yüzden tahminim bir numara var tahmin iki numaralı olmasıdır Sadece 10 yazdırmak için gidiyor. Herkes başka tahminlerde var mı? TAMAM. Yani sağ, bu yürüyelim olur mu? Eğer kod parçası olsun zaman, Sadece bakmak ve gibi olmak istemiyorum, ah, o kadar şeyler var! Kafam çok karışık! Gibi, kendinizi sakin ol. Sadece biliyorum sadece olabilir satır satır kod bakmak. Yani hepsi bu. Bir kitap okumak gibi. Herhangi bir fonksiyon Yani, biz her zaman ana başlar. Yani biz gidiyoruz int main boşlukta başlar, Hatta programın zaten sağ, koşmak? Ana boşlukta başlayın. Int x 10 eşittir. Yani bu silmek için gidiyorum. Ben hafıza çekmek için gidiyorum sadece sizin yani adamlar tür neler görebilirsiniz. Bizim yığını var burada hatırlıyor musun? Burada Kadar Nerede biz var Buralarda toplayacaklar. Stack, doğru büyür? Ve yığının içinde, sahip Şebeke yanı sıra işlev Şebeke yerel değişkenlerin hepsi. Yani burada, int x 10 eşit. Bizim ana işlevi içinde biz konum x adlı bir değişken yaratmak. Biz 10 o eşit kuruyoruz. Burada bazı x var ve sen Doğru, 10, eşit ayarı Ana içinde. Herkes iyi? Fonksiyonu. Yani şimdi, Bizim ana dahilinde işlevi, biz aradığınız Yukarıda yazdım işlevi. Yani biz şimdi ikinci işlevi girin ediyoruz. Biz başka oluşturmak için gidiyoruz Değişken int x 100 eşittir. Ne yığının burada oluyor? Bir çağırdığınızda ne olur yeni bir değişken yaratır fonksiyon? Ne yığının burada olur? HEDEF KİTLE: üstündeki [duyulamaz] kazık? PROFESÖR: Evet. Yani aslında bir kopyasını oluşturur. Üstüne kazık Ve bu tür. Bir yığın stack-- düşünün kitap, bir şey bir yığının. Son olarak ilk üst Kazık, dışarı, önce dışarı sürer. Yani burada bir x oluşturmak için gidiyor. Yani sahip olacak Tüm Funcs değişkenler. Büyük. Yani şimdi biz iki farklı x 's buna sahip iki çok farklı şeyler ifade eder. Sonra yazdırmak için gidiyoruz x tamsayı dışında. Yani sağ, 100 baskı izin? Çünkü burada bu 100 var. Yani ilk şey o yazdırmak için gidiyor. Bu işlev döndürür şey gibi, Şimdi bu fonksiyonu, ana hat bu bitti. Şimdiye kadar bana iyi herkes? Yani biz dışarı iki ile artık sensin Bizim ana işlevi üç satır. Şimdi üçüncü satıra gidiyoruz. Biz printf gidiyoruz. Ana içinde bu x nedir? Bu neyi temsil ediyor? Ne değeri şimdi x? İZLEYİCİ: 100. PROFESÖR: Bu 100 değil? HEDEF KİTLE: Hala 10. PROFESÖR: Hala 10. Evet. Içinde hatırlıyorum çünkü Bizim işlev x 100 eşittir. Ama biz geri dönerseniz Bizim ana işlevi, bu değişken, bir saklanır Bizim yığını farklı bir yer. Yani şimdi biz geri gitmek gerekir Ana yığını, yerel değişkenler şebeke. Ve burada x, 10'dan eşittir. Ve böylece biz 10 yazdırmak için gidiyoruz. Yani o kesinlikle haklıydı. Biz gidiyoruz 100 ve 10 çıkışı. Evet? HEDEF KİTLE: Eğer malloc olduğunu öbek veya [inaudible] olan yığın? PROFESÖR: Ne zaman malloc, Eğer yığınından bellek alıyorsun ve tahsis. Eğer yoksa Böylece Bu herhangi karışıklık ile. Yani büyük paket sanırım Burada kapsam denen şeydir. En kim o sizin için Yorumla oturumu dün gece, bu konuda kısaca konuştuk. Kapsam nasıl tanımladığını ve senin değişkenler var olduğunda. Ya çerçeveleri Ne içinde senin değişkenler mevcut yapın. Genellikle başparmak Hemen hemen kuralı Bunları oluşturursanız, sizin variables-- olduğunu kıvırcık braces-- içinde onlar var sadece bu küme parantezi içinde. Bu yüzden bizim fonksiyonu, örneğin işlev, bu iki parantez görüyorum. Oluşturduğunuz ediyorsanız bunun içinde bir şey şansını yapıyoruz hepsi vardır Bir yığın oluşturma ve oradaki saklamak. Ana Aynı şey. Bu sadece ana içinde depolanır. Ayrıca olmak istiyorum Burada çok dikkatli. Kapsamı da ödünç Çünkü Farklı örneklere kendisini. Örneğin a Yani Döngü, int i 0 eşittir. Ben, 10 bilmiyorum, daha azdır. Ben artı. Ve sen, doğru bunun içinde kod var? Nerede bu değişken yapar, Ben, aslında sadece var? Yalnızca döngü için iç. O yüzden çocuklar çok var bahis Muhtemelen bu hatayı karşılaşılan Eğer psets programları yapıyoruz. Nasıl çocuklar birçok i kullanmayı denediniz for döngüsü dışında ve bir hata vardı? Bir başvurulmayan tamsayılar gibi Ya da bunun gibi bir şey? Olur nedeni Burada sen çünkü bir şey yaratmak sadece sizin döngü için içinde var. Bunu kullanmayı denerseniz Ve ben değil Aslında bunun dışında var. Yani temelde bir bilgisayar dediğini Eğer bahsettiğini bilmiyorum. Bütün bildiğim bir ben olduğudur Burada, ama şimdi artık. Yani ben bir oluşturmak olduğunu içeride for döngüsü, değil mi? Ve ben başka oluşturmak için gidiyorum, int j gibi, ne olursa olsun yapmak ve. Ve içinde bir kod var Bu döngü, j sadece burada var. Ama bu da i içinde var. Ve böylece j sadece var for döngüsü bu dahilinde, Ben her şeyi var oysa. Herkes açık? Koşullu ifadeleri ile aynı şey Bir şey yaratmak istiyorsanız. Süre döngüler halinde aynı şey Bir şey yaratmak istiyorum. Bu olacak bir şey var Çok çok dikkat. Yani bu gerçekten iyi bir sorun oldu iki şeyi gösterdi ki seziyorum. Bu, ilk kapsamı gösterdi. Ve gösterdi Ayrıca bellek ayırma. Siz bilmeli, çünkü fonksiyonlar yığını yukarı büyür. Ve Aradığınızda fonksiyonlar, Oluşturduğunuz bellek esasen yeni bir yığın. Bu çok farklı senin Şebeke bellek nedir. Evet. Vay! Bu Tamam herkes? Bu kafa karıştırıcı oldu. Çok iyi konular üzerine gitmek muhtemelen çünkü Bazı zor alacaksın sınavda böyle şeyler. Evet. Güzel. Sana biri 100 olsun koyacağım hat ve diğer tarafta sonra 10. Evet, çok iyi. Tamam, şimdi siz alacaksınız şans TA olmak. Tüm güzel cevap olsun Bazen olsun e-postalar. Yani, Sevgili Andi, ben bir şey olduğunu düşünüyorum bakın Benim derleyici ile ters gidiyor. Ben, benim kod doğru olduğunu eminim ama bir segment hataya almaya devam Ben koşmak her zaman. Nasıl gidiyor? Yardım aşk sürü ediniz. Siz böyle bir şey var ise Eğer tepki vereceğini nasıl? Bunlar aslında çok yaygındır soruları isteyeceğiz. Size bir vereceğiz, eğer mı senaryo, bize vereceğim Neler adresinden en iyi tahmin. Herkes ne olup bittiğini bir bıçak var? Evet? HEDEF KİTLE: Belki indirgenmedikleri işaretçi gibi null, bir şey Boş bir şeye işaret ediyor. PROFESÖR: Evet, bu bir olurdu Bu ne zaman olacağını örneği. Ama büyük resim ne Ne oluyor burada? HEDEF KİTLE: Eğer çalıştığınız mı sen değilsin o belleğe erişim erişim gerekiyordu? PROFESÖR: Kesinlikle. Yani, bir seg arıza bir off düşünmek bellekteki limitleri, kısıtlı alan Bu sizi dokunaklı olmamalıdır. Yani hemen hemen çalışıyoruz gibi örneğin indisini için Eğer ilan ettik bir sıfırdan dokuza kadar dizi. Ama o 10. dokunmak deneyin değer, o erişiminiz yok. Bunu beyan değil çünkü. Ve böylece bilgisayarınız gidiyor böyle olmak bakmak için, ah ah, sen gitmek için çalışıyoruz Bir dizinin sınırları dışında. Sana vereceğim Bir segmentasyon hatası. Doğru, segment olarak düşünün? Ekstra bir segment hatam Bir şey ihlal çalıştığınızda ve orada olmamalı. Segmentasyon arıza her zaman olduğu Eğer bir şeyler dokunmak deneyin Bu sizi dokunaklı olmamalıdır. Yani yaygın örnekler bir dizin vardır. Tabii ki, çalışıyorsanız O boş olduğunu dokunmak, Bu aynı zamanda çalışmaya devam eder. Işaretçinizin çalışıyordu ise , dokunma gereken şeyleri dokunma bu da aynı şekilde iyi çalışacaktır. En tipik olarak olacak Dizideki bu bkz. Herkes iyi? HEDEF KİTLE: Eğer istiyorsanız 10 noktaya erişmek için ve sadece bir sınırı var dokuz ya da bir şey. PROFESÖR: Evet, kesinlikle. Hemen hemen. Güzel. Sevgili Andi. Yani biz bu harika var şeyler türlü denir. Eğer biz olarak sort-- Birleştirme Örneğin ne zaman testere Davut bütün yaptım class-- de bir şey, neden o çok daha hızlı eğer Diğer türlü herhangi neden biz bile bilmeden rahatsız do Diğer türlü hiçbir? Gerçekten isteyen bu soru nedir? Üç word-- neler var HEDEF KİTLE: trade-off nedir? PROFESÖR: Kesinlikle. Bu soru soruyor buydu. Arasındaki ticaret-off nedir Başka türlü ayetler birleştirmeli sıralama? HEDEF KİTLE: sağ, bellek Takes? PROFESÖR: Do you biraz daha açıklamak? Önce en Birleştirme mağazasını anlatalım. Nasıl çalışır sıralama birleştir mu? HEDEF KİTLE: o çalışır Yani yarıya her şeyi bölünmesi ve daha sonra birlikte koyarak ve sırayla bunu ayırarak, Her zaman olduğu gibi siz setleri birleştirme. PROFESÖR: Oldukça fazla. Yani bunu çizebilirsiniz, ancak it would dışarı çekmek için bana beş dakika sürer. Bölüm slaytlar geri bak nerede Birleştirme tür kaplı. Kesinlikle. Yani yol sıralama çalışmaları Birleştirme bu yarıda şeyler böler olduğunu ve sonra sadece bakar bunların her şeyden önce değerler ve sadece o sıralar. Sürekli yeni diziler oluşturur ve sırayla işler daha koyar. Ve böylece gerçekten iken Hızlı biliyor bu- çünkü İkili arama n n günlüğü. Sen çok yaratıyorsun sen farklı diziler bellek büyük miktarda kullanarak. Ve böylece daha hızlı, ticaret kapalı iken Eğer daha fazla bellek kullanmakta olduğunuz burada. Ve böylece, ipucu, sıralar ve aramalar daha bu sene çok kaplıydı önceki yıllarda olmuştur daha. Siz görmelisiniz buna göre sınav yansıtıyordu. Ben kesinlikle gidiş vakit geçirmek istiyorsunuz üzerinde neyi farklı tür tüm , nasıl ikili arama, nasıl doğrusal arama çalışması. Nasıl belki pseudocode için O dışarı kod. Çalışan süreleri nelerdir? Çalışan kere gibi bir şey çok olduğunu Bir not kağıda basılı kopya kolay, sağ? Sen ne zaman gerçekten zor Ortada testi içinde ve bunu anlamaya var. Aşağı kopyalayın. Ben sen garanti olduğunu bilmek için ihtiyacımız olacak. Ticaret-off nedir? En kötü durumda, en iyi durum senaryoları hepsi için çok tanımak. Evet? HEDEF KİTLE: biz mi istiyorsunuz Birleştirme sıralama kod nasıl biliyor? Gibi, biz gerekiyor özyinelemeli hatırlıyor musun? PROFESÖR: Ben çok adil, şüpheliyim oldukça karmaşık gibi çünkü. Ama olurlu olmayabilir biz eğer Pseudocode bunu kullanmak istiyoruz. Evet. Evet, tamam, bir tane daha. Bu kadar gelmiş olabilir biraz son parçası. Evet? Herkes duydu mu? İlk Tamam, hemen hemen Programın tüm, ne tür Size böyle bir çıkış vererek olurdu? Biz öğrenmek istedi hatırla aracı hata ayıklama bu yeni tip? Bunun adı neydi? Valgrind, sağ Bu nerede bir program oldu sen-ebil diyebiliriz sen tüm bellek takip Programınızda kullanarak ve gidiyordu. Yani, böyle bir şey var eğer kesinlikle bir blokta, 40 bayt kaybetti. Muhtemelen sen değilsin Bunu serbest hatırlayarak. Bellek bayt kullanıyorsanız Çünkü Bu, o bellek eriştikten demektir ancak serbest mümkün olmamıştır. Yani yapmak istiyorum Ayrıca konum emin bu var free-- kullanarak tüm özgür function-- malloc tarafından tahsis bellek. Güzel. Bu slayt Yani ben o kadar olacak. Bu bir çok yerde var bölüm slaytlar bir çok dersler. Gerçekten emin olmak Sadece bu hepimiz biliyoruz. Ya not sayfasında veya eğer Onu ezberlemek istiyorum çekinmeyin. Bu gerçekten, gerçekten, gerçekten önemli. Ayrıca çok iyi bir Biz isteyebilir soru. Neden Selection sort-- bakmak olan Seçim çalışma zamanları her sort-- n karesi vardır. Ne olursa olsun liste geliyor nasıl Eğer öyleyse neden Seçim sort-- olduğu gibi Ben adamlar sana 30 veririm İkinci düşün. Bu tür kafa karıştırıcı oluyor çünkü. Bazı kavramsal düşünce gerektirir. Neden çalışma süreleri aynı olacağını hem kötü ve en iyi durum senaryoları? Evet? HEDEF KİTLE: Çünkü Seçim tür her Bu küçük dizideki konumu veya boşluk bir şey ya da her neyse. Bu yüzden bile en iyi senaryo, mükemmel sıralanmış olsa bile, hala biri tamam gibi olması gerekir. Benim ilk etapta ben bir tane var. Ve bunların hepsi geçer. Tamam, bir küçüğüdür. Ve sonra yine gider ve iki Tamam, gibi şeyler her küçüğüdür. Ama yine de vardır Her birini işaretleyin. PROFESÖR: Evet. Yani, örneğin, diyelim Biz liste zaten sıralamış, bir dizi beş bir. Seçim türlü olduğunu çok yönlü o bu iki denetler, geçer. Sonra bu iki denetler. Ve o kontrol eder ve denetler. Bu, hepsini kontrol ediyor bağımsız olarak olup olmadığını aslında sıralanmış oluyor. Basitçe Çünkü sıralama çalışır yolu. Ve böylece bu soru tür gibi biz isteyeceğiz kavramsal bir soru. Nerede ilk sen Ne Seçim sıralama biliyor Doğru, muktedir olduğunu soruyu cevaplamak için. Bunu anlamak mümkün olması kavramsal neler oluyor. Ve sonra, tamam uygulamak ve aklınıza gelebilecek Sadece en kötü durum senaryosunu düşünelim. Hepsi azalan konum. Nasıl bu kadar etkileyecek? Ne sipariş artan eğer? Zaten sıralanmış eğer? Nasıl runtimes etkileyecek? Ve sonra Seçim sıralama farkedeceğiniz aslında önemli olmadığını. Eğer kontrol Çünkü tüm değerler ne olursa olsun neler olup bittiğini. Ve çok iyi şeyler hatırlamak için. Bazı tür diğerlerinden farklıdır Neden ve nasıl iyi ve en kötü durum senaryoları hepsini etkileyecektir. Ben gerçekten türlü vurmak için gidiyorum Bu sınavda olacak çünkü. Evet. TAMAM. Sol altı dakika var. Ben soru üç dakika sürebilir. Ben de etrafta asabilirsiniz bölümünden sonra 20 dakika gibi Siz de soru sormak istiyorum. Herkes sadece gerçekten kısa var mı soru veya kavramsal konular Onlar şu anda hakkında belirsiz değil mi? Evet? HEDEF KİTLE: Biraz konuşabilir miyiz bitsel operatörleri hakkında biraz? PROFESÖR: Evet. Yani bitsel operatörleri şey bu muhtemelen Sadece levha koymak isteyebilirsiniz. Yani istemiyorum quickly-- derinlemesine çok gitmek Onların incelemede Harvard, çünkü oturumda, oldukça iyi kaplıdır. Bit operatörü, var Bunlardan beş, değil mi? X veya işlev olan bu var ve hangi işareti var. Ya da Boru,. Ve sonra iki tane vardiya farklı. Sana iki değer, eğer verirseniz Ben bir ve biri gibi, size. Ne kadar değerlendiriyorsunuz? Eğer ben doğru, gerçek ve gerçek verir? Ne doğru veya yanlış ne dersiniz? Hala doğru, değil mi? Bir ya da var çünkü. Biz büyük olasılıkla size numaralarını vereceğim. Yani bir eşittir hatırlıyorum Gerçek, sıfır yanlış eşittir. Ve biz sana bunları verebilir ve ne bize istiyoruz. Harvard ilk içinde onu kapsar Yaptıkları çalışmada oturumu 10 dakika Gerçekten, gerçekten iyi. Yani siz yapmak istiyorsanız Emin geri o bakmak. HEDEF KİTLE: pisa5 mı quiz olacak? PROFESÖR: Hayır Hatta şu an pisa5 bakmayın. Zor. Sadece bile pisa5 bakarak rahatsız etmeyin. Ancak, bazı ipuçları olarak ve önerileri, ben Eğer pisa5 başlamak öneririm en kısa sürede bilgi yarışması gibi bitti. Bu zor olacak hafta, ama sonra siz tepeler üzerinde geçilecek yeşil ve yavru haddeleme, ve bunu gayet iyi. Bu sınıf anlamlı olur Beşinci pset sonra daha kolay. HEDEF KİTLE: Ofis saatleri Pazar, Pazartesi vardır? PROFESÖR: Evet, ofis saatleri olacak, böylece pset Pazartesi Pazar. Çalışma saatleri gece esasen Sadece sınav için yorum olacaktır. Herkes gelip sormak isterse Bir soru TA, biz orada olacağız. Belki bir soru daha alacağım Herkes bir soru varsa? Evet? HEDEF KİTLE: Ne zaman sen tanımlayan düğümleri, [inaudible] Bir sonraki o düğüm yıldızı ve derseniz, bilgisayar otomatik olarak yapar sen anlıyoruz Başka bir işaretçi atıfta? PROFESÖR: Hayır HEDEF KİTLE: Sen var o [duyulamaz] yeniden bağlamak? PROFESÖR: Yani temelde Bir düğümün yapı hatırlıyorum olduğunu, Eğer düğüm oluşturmak gibi olduğunu ve sonra bir sonraki adında bir işaretçi var. Yaptığın tüm sahip olduğu Orada yapısı. Sen atamak zorunda bir yerde işaretçisi. Yani bilgisayarlar değil Henüz ne yaptığını biliyor. Aslında ne zaman atamak zorunda Eğer bağlantılı liste oluşturma ediyoruz. Ve bunun ne ağırlıklı bulunuyor pset 5 olacak. Hakkında hiçbir endişe Şimdi bu hakkın herhangi. HEDEF KİTLE: Yani gerek yok Sadece bağlantı listesinde çok fazla odaklanmak Genel anlayış? PROFESÖR: Sadece hemen hemen yığınlar, kuyruklar, bağlantı listeler, ağaçlar, hash tabloları. Sadece ne olduklarını bilmek mümkün. Biz sormak için gitmiyoruz Belirli bir şey gibi biz gerçekten yapmadım çünkü Henüz hiçbirini kapsayan pset. Önceki son iki dakika içinde yüzden Ben özgür bu sınav öldürmek için ayarlanır. Oldukça fazla, gibi, nasıl düşünmek kadar siz bu sınıfta gelmiş. Ben ne zaman hafta iki hatırlıyorum Bu sınıfın, size bazı Su yazma üç saat harcamak. Seni ne kadar süreceğini adamlar artık su yazmak ister misiniz? 30 saniye, belki? Ne kadar düşün Siz öğrendim. CS gerçekten, gerçekten zor bir konudur. Buna hiç şüphe yok. Hiç kimse onu inceler, bu yüzden zor. Sadece zor. Ve tamamen iyi. Ve ben gerçekten gurur duyuyorum Herkes kadar bu yapmıştır. Psets kolay değildir. Onlar çok fazla zaman alır. Siz, ben yazmaya sormazlar pset 15 veya Vigenere oyunu. Gerek yok sadece bu konuda kafayı. Burada test ediyoruz Tüm değerlendirmektir kavramsal bilgi, hem de kodlama temel becerileri gibi bazı. Test için tasarlanmıştır Gerçekten zor. Gibi, tasarlanmış sizin için 100 alamadım. Aynı zamanda, muhtemelen sizin için tasarlanmış 75. dakikada bitirmek mümkün olmayacaktır. Ve bu tamamen iyi. Ben bir öğrenci kendim değilim. Ben yürürken biliyorum, bundan nefret ediyorum Bir sınav dışarı bok gibi olmak. Bu gerçekten zordu. Muhtemelen ne oluyor happen-- ve bu tamamen para cezası, Şu anda sizi söylüyorum. Bunlara araçlar tüm yüksek değildir. Ve o sizin için kim gibi elde edilmiştir, Sorununuz setleri üçerli, Bu sen anlamına gelmez Bu sınıftaki bir yüzde 60 alacaksın. Üzerinde% 60 alırsanız değil yarışması, Eğer gidiyoruz demek Bu sınıftaki bir D olsun. Özellikle I, bakınız Benim bölümünde o sizin, Siz bütün çalışıyoruz ne kadar zor görüyorum. Ve ben bu takip. Siz iyi olacak. Hiçbir kurumsal hafıza yok Dönem sonunda mutluluk. Harvard çocuklar söylüyorum çünkü onların arkadaşları, oh, iyi olacak. Kimse burada sizi anlatıyor. Yani ben burada sizleri söylemek zorundayım. Siz iyi olacak. Sizlerle bütün gurur duyuyorum. Test zor olacak. Bunun için çalışma ve daha sonra sadece onu atmak. Yeni şeyler öğrenmeye hazır olun. Ve şeker yiyin. Biz şeker çok var ettik. İyi bir gece uykusu alın. Uyku girmedi etmeyin, çünkü Bu gerçekten kötü olurdu. CS mantık bir çok şey var. Eğer uyku yok ise, fonksiyonu olamaz, ve beynin fonksiyonu olamaz. Ve ben önümüzdeki 20 burada olacağım dakika herkes asmak istiyorsa. Siz onu öldürmek için gidiyoruz. İyi şanslar.