ALLISON BUCHHOLTZ-AU: Hey, herkes.
Bölümüne hoş geldiniz.
Bugün sadece tüm sınav olacak Çarşamba günü sizin sınav için gözden.
Ben herkes hatırlar umut onlar Çarşamba günü bir sınav var.
Ve sen olmasaydı, iyi, Şimdi hatırlattı oldum.
Emin göstermek Yani Çarşamba yapmak sınıf veya diğer konaklama gibi için
Gerekli.
Siz harika olacak.
Harika olacak.
Ve ben elimden geleni yapacağım yardımcı olmak için sınav için bugün size hazırlamak
şimdi.
Ve ayrıca durumda bilmiyorum, Bir ders geniş yorum oturumu var
07:00 içinde bugün Kuzeybatı laboratuarları oda B103.
Bir encore olarak tekrar beni görebilirsiniz Ben o yorumu oturumu kısmını yol açacaktır
Ayrıca.
Yani bana yeterince alınamıyor Şimdi, tekrar bu gece gelebilir.
>> İlk Pekala, ilk şeyler.
Sadece bazı sınav ipuçları biz önce Aslında değerlendirme dalış.
Herhangi bir sınav, uygulama ile şekilde Kesinlikle size yardımcı olacaktır.
Geçmişten gelen sınav vardır Altı ya da yedi yıl orada,
böylece pratik bir sürü var Sizin için malzeme var.
Ve aslında, bugün sadece gerçekten Herhangi bir konu üzerinde gidiyor olacak
Siz de soruları var uygulama sorunları ile çalışma gibi
sınav sıfırdan.
Yani sınav sıfır atmak olacak Geçen yıl burada,
ve biz herhangi bir sorun ile çalışabilir Siz istiyorum.
>> Yani pratik.
Bunu bugün yapmaya başlamak için gidiyoruz.
Kağıt üzerinde kod.
Yani evet, eğer herkes Aslında dışarı alabilir
Kağıt, o, büyük olacak sen değilsin çünkü
Bilgisayarınızı olacak Sınav ve elle kodunu yazma
genellikle çok daha zordur beklediğinizden daha.
Sadece alıştığınız Onu görmeye ve onu yazarak,
ve sizin derleyici var Eğer hata varsa size yardım,
ancak sınav alamadım.
Yani aslında gerçekten önemli kod yazmak mümkün
ve yapmanın kas hafızası elle gerçekten size yardımcı olacaktır.
>> Yani biz biraz yakın alıyoruz.
Bu pazartesi.
Sınav Çarşamba günü olduğunu.
Ama zamanınız varsa, Kesinlikle birini almak
Geçen yıl ya gelen sınav Zaman kısıtı altında yıl önce
bir saat bir buçuk.
Sadece bir saat nakavt ve zaman bir buçuk
ve kendinizi otur, ve Sadece sorunları ile çalışmak
aslında sanki onu alarak bir nedeni
Biz duymak büyük şeyler sınavlar çok uzun olmasıdır.
Bu malzemenin bir çok şey var.
Bir çok soru vardır, ve çoğu insan bitirmek olmayabilir.
Ben tamamen bitirmek olmadığını biliyorum Benim sınavlar Ben sınıf aldı.
>> Bu kayda göre, daha az olarak rahat bölümünde
Bu ders anlamına olduğunu anlamak Her seviyeden insanlara hitap etmek.
Bütün nedeni bölünmüş var daha az rahat, yere arasında,
ve daha rahat olduğunu tür daha adil olun.
Eğer daha az rahat iseniz, bu kadar gerekli değildir başına her şeyi almak için.
Eğer elde olsaydı gibi Her şey, muhtemelen olur
daha rahat bölümde olacak.
Yani açıkçası kendinizi dövdü yok Çok zor sınavı bitirmek değil eğer.
Ben bunu yapmadım, benden götürün.
Ben hala bir yoğunlaştırıcı değilim.
Ben hala dersi yardım ediyorum.
Sen iyi olacak.
Tamam.
Ve son olarak, biraz uyu.
Açıkçası herhangi bir sınav ile biz her zaman bu demek.
Gece önce tıkınma ve herhangi bir uyku almıyorum
yok degilim belki eğer Sizin için çalışıyor, bunun için gitmek.
Ama büyük çoğunluğu için İnsanlar, bazı uyku almak,
beyin dinlenme icar ve kurtarma Sınava geliyor önce
Gerçekten size yardımcı olacaktır.
Ayrıca orada olacak neredeyse kesinlikle sınavda şeker olabilir,
böylece ileriye bakmak gerekir.
Siz büyük yapacağız.
İnce olacak.
Ve şimdi bir sonraki bir buçuk saat içinde deneyin ve elimden olarak sizi hazırlık olacak.
>> Yani temelde slaytlar var Bugüne kadar tüm bölümleri.
Ben gitmek için gitmiyorum bunların hepsi bu değildir, çünkü
Bir buçuk saat içinde mümkün de uygulama sorunları ile çalışma gibi.
Bunun yerine ben konuların bir listesi var.
Bunlar her şeyi vardır Biz seni yarışması olabilir.
Bir şey varsa Bu gerçekten atlar
Eğer gitmek size o istiyorum ki Beni kavramsal üzerinden gitmek istiyorum,
Ben denemek ve verebilir Orada bir bakış.
Yoksa size hakkına atlamak istiyorsanız Birlikte uygulama sorunları yapıyor,
biz bunu yapabilirsiniz.
Bu çocuklar kalmış.
Senin birçok yoktur.
Yani siz yapmak ister ne var.
Ben en çok olmak istiyorum Eğer çocuklar doğru yararlı.
Yani sadece bakalım edeceğiz.
>> İZLEYİCİ: Bir şey biz tutmak grafik
yığını ve yığın hakkında söyleyerek.
Arkasında sadece bütün fikir Bu ne demektir.
ALLISON BUCHHOLTZ-AU: Tamam, evet.
Bu tüm yol sonunda, bu yüzden beni ilerlemek verelim.
>> İZLEYİCİ: Biz yok Şimdi bunu, ama ne olursa olsun.
>> ALLISON BUCHHOLTZ-AU: var mıydı Bu bir herhangibirşey.
Insanlar için bulanık bu tür mi?
HEDEF KİTLE: Evet, ben ikinci söyledi.
Ve biz de tampon taşması yapabilirim?
ALLISON BUCHHOLTZ-AU: Bellek taşması?
TAMAM MI.
Yani tampon taşma güzel Sadece konuşmak kolay.
Bu temelde düşünmek tamponlar Sağ sahip bazı dizi bellek,?
Biz genellikle hakkında konuşmak taşması zaman
ne kadar kontrol değil kullanıcı hakkı, koyuyor?
Ve fikir olmak tamponu ile taşma olduğu
onlar kadar koyarak alanı için çok fazla veri
onlar için ayrılmış ettik, değil mi?
>> Derseniz, vermek Yani Bana bazı mesaj, biz konum
verdikleri için gidiyoruz varsayarak Bize makul bir uzunlukta mesaj.
Belki bir kaç satır, etajer.
Yani biz kontrol etmiyoruz.
Bunun yerine bir bize yem bir mesaj, tüm kitap,
ve miktarı aşıyor Bunun için ayrılan ettik alanı.
Ve ne olur o üzerine olabilir olduğu o sözde değil yerler.
>> Yani Profesör Malan dedi biliyor hafıza taşması saldırıları hakkında bir şey.
Yani nerede kullanıcı girişi olacak bulunuyor umuduyla bazı veriler büyük miktarda
O geçmiş yazar olduğunu senin tampon ucu
ve yerini şey-- ben merak ediyorum Ben burada bu slaytlar var.
Ben olduğunu sanmıyorum burada bu kayar.
Ama temelde o yazar belleğin bir kısmının
Bu ona erişim sağlar bilgisayarınızın parçaları
Bu sizi olmaz Normalde erişebilirsiniz.
Ile >> En büyük şey, bellek taşması sadece bir
öyle anlamak için değil mi ne olur
ne kadar kontrol sizin Kullanıcı koyuyor.
Ne zaman bir tür değil Buna karşı korunması.
Ve en basit olarak şey, sadece kullanıcı var
büyük bir miktar girilmesi bir girişim veri
Bazı güvenlik üzerine yazmak için senin bellek bölümü.
Yani tüm bu.
>> Peki bu burada, yığın yığın ve.
Temelde bu hepsi sadece bir belleğin bir temsilidir
ve işler nereye saklanır.
Bu tür gerçekten tüm bilmeniz gerekir.
En büyük şeyler olduğunu sen bilmek gerekir
ki- beni eğer görelim Burada bir better-- var.
Yani bu burada yığını.
>> Peki yığını ile bir ilgisi yoktur senin tüm fonksiyonları
Bu herhangi bir zamanda çağırıyorlar.
Ve hatırlamak önemlidir ne malloc ile geçen hafta gidiyor
Eğer gerçekten yok olduğunu üzerinde gerekli olan kontrol.
Her ne zaman belirli bir bağlıdır fonksiyonları yürütme.
Ve onlar yürütme zaman, onlar yığın çerçeveler ne denir
burada gitmek.
>> Yani her tür olur Sizden herhangi bir gerçek girişi olmadan.
Sen program yazabilir, ve bunu çalıştırın,
ve yığın tür alır o ihtiyacı olarak kendini bakım.
Yani main içinde aradığınız eğer burada geçilecek küp.
Bir çerçeve oluşturacağız.
Ama açıkça yapmak bir şey yok başka yığın çerçevesi oluşturmak için
Tamam, başlamak için fonksiyon yazmak?
>> Altında tür nedir senin Kontrol malloc ile yığın.
Peki ne zaman malloc şey, Eğer yığın bellek alıyor.
Ve o bellek olduğunu size daha iyi bir kelime olmadığı için, var,
açık kontrolü üzerinde, malloc ile hatırlıyorum çünkü
temelde var aksi takdirde söyleyene kadar.
O sizin için kim Geçen hafta bölümü izledim,
Eğer uzağa gitmek için bunu söylemek kadar var.
Orada sürece olacak Aksi takdirde söylendi.
Yani yığın sadece bir şey olduğunu Bellek olarak düşünebilirsiniz
Eğer kontrole sahip olduğunu.
Ve bu sadece vardır iki farklı büyük şeyler.
>> Bunun dışında, sahip olmamalıdır yığını ve yığın hakkında çok fazla endişelenmenize gerek
soru veya genellikle daha adil yerel parametreleri varsa
veya bir işlevi olurdu yığını veya öbek üzerinde.
Tabii ki, bu durumda, yığın olurdu.
Eğer bir şey mallocing konum, nerede geliyor?
yığın.
Eğer uygulama sınavlar bakarsanız, bu genellikle soruların türü vardır
sahip oldukları.
>> Sen endişelenmenize gerek yok Bu konuda çok fazla.
Daha açık içine almak yığını ve yığın hakkında
Daha sonra ya da diğer CS sınıflarda.
Yani sadece bir tür olan Bu ne genel bir fikir
iyi olacak ben sadece tür gitti.
Başka konular?
Evet?
>> İZLEYİCİ: Eğer üzerine gidebilir miyim gerçekten hızlı tekrar değineği?
ALLISON BUCHHOLTZ-AU: Göstericiler?
Eğer kavramsal istiyor musunuz işaretçileri bakış
veya işaretçiler ile İnanç?
HEDEF KİTLE: Tür sözdizimi gibi.
ALLISON BUCHHOLTZ-AU: sözdizimi?
Evet.
Tamam, biz orada alıyoruz.
Evet, bu yüzden bu sadece tür bir şey Eğer bir özyinelemeli işlevi varsa,
özyinelemeli fonksiyon olduğunu her zaman denilen, sadece diğer yığın çerçeve ekler.
Bir örnek hemen hemen nasıl gerçekten yok
üzerinde kontrole sahip destenizin çerçeveler.
>> Tamam, göstericiler.
Pekala, işaretçileri oluşturma.
, Sadece yıldız yazın var hatırlıyorum.
Yani ne olursa olsun verilerin türü Eğer işaret için gidiyoruz.
Yani bu bir int için bir işaretçi olurdu.
Bu karakter için bir işaretçi olurdu.
Bu bir float bir gösterici olacaktır.
Yani temelde her neyse bulunuyor Eğer bu işaret olmak istiyorum
İşaretçiyi beyan nasıl yıldızı, tamam mı?
>> Ama o zaman tabii ki biraz alır Eğer işaretçi varsa zor
ya neyse yıldız var.
Yani büyük fark ne zaman declaring-- konum
bu yüzden some-- var Bu biraz int yıldızı alır.
Yani bu biraz göstericidir Doğru, bir int x çağırır?
Peki bu ne hatırlıyorum Bu sistem x çağrıları.
Ve bu gidiyor Sağ, bazı adres var?
Yani sadece bu bizim adresi diyelim.
Göstericiler adresleri tutun.
Peki bu diyor ki bu altındadır Konumu, biz bir int depolamak.
Biz düşünebiliriz >> Yani başka bir yolu bu biraz int olmasıdır.
Biz gerçekten bunu atanmış değil bir şey yok, ama bu sadece bir int var.
Bu yüzden x biz yıldız yapmak durumunda yapabilirsiniz Bu tamam, 5 olur, 5 eşittir?
Bu ne olursa olsun x, gidin diyor işaret, bu nedenle bu adrese gidin
ve 5'e eşit olun.
Bu yüzden doğru, bu adrese 5 atamak?
>> Ve sonra bunu yaparsanız, Bu bize adresini verir.
Bu operatörün adresidir.
Yani x adresi nedir?
Biz bilmiyoruz.
Biz buna bir adresi atanır değil.
Biz şimdi biz verdi some-- olduğunu söyleyebiliriz o kadar adresi 4 bir adres.
Ve biz bir şey geçmesi aslında eğer Bu gibi tür biz ne yaptığını.
Yani ötürü-- bulmak yoluyla çalışan Eğer işaretçileri çekmek eğer yardımcı olur.
Eğer sınav iseniz, ben Çok kutuları çizim öneririz.
>> Yani bu ilk, int x 5 eşittir.
Bu sadece bazı var demektir Doğru, 5 olan bellekte yer?
Ve burada bizim masa söyler o adres 0x04 de olduğunu.
Ve sonra bazı işaretçi oluşturmak.
Yani bir anda bu kırmasına izin.
Yani bu oluşturur bazı Doğru, bir int kutu?
Bu tutmak için gidiyor Bir bazıları adresi.
Yani bu biraz göstericidir.
Ve bu tebeşir gerçekten küçük.
Yani biz burada bazı işaretçi var.
Ve bizim masa söyler bu adres 0x08 olduğunu.
Serin.
Ve biz atıyorsanız o x adresine.
>> Göstericiler Tamam, adresleri tutun Hatırla?
Biz x tutmak istiyorsanız, biz Böylece adres operatörü, kullanılacak
işareti, adresini almak için x, bu durumda, 0x04 hangi.
Ve sonra varsa Bazı int kopyası, bu sadece
başka bir kutu oluşturur bir int olarak adlandırılan bir kopyasını tutar.
Ve biz atarsanız o bu-- için yani bu bunu başvuran.
Bu yüzden gitmek ne derse desin adres gösterici tutar.
Pointer, bu adresi tutar bu yüzden, buraya gitmek istiyorum
ve biz Tamam, içinde ne var, diyorsunuz?
Bu 5 değil.
Yani kopya 5 olur.
Mantıklı?
>> Ben atamak için çalıştı ne Bu sadece işaretçi.
Ne işaretçi aslında eşit yapar?
Sadece olurdu ne olursa olsun gösterici, doğru içerir?
Ve sonra bu ne yaptıysam?
Şimdi ne olacak kopya olurdu?
>> İZLEYİCİ: 0x08.
ALLISON BUCHHOLTZ-AU: Evet, Bizim işaretçi adresi.
Bu herhangi bir parçası olduğunu yeniden izah edilecek ihtiyacı?
Serin.
Kesinlikle çok var yarışması birinde eğlenceli bir sorun
bunun üzerinde olabilir Size daha pratik verir.
Geçen hafta gelen çocuklar can size o kadar da kötü değildi.
Biz bir bütünün aracılığıyla var grafik ve herkes büyük yaptım.
>> Tamam, böylece genel bulunuyor işaretçileri sözdizimi.
En büyük şey nasıl anlamaktır bunları oluşturmak için, referans yapmak,
Tamam, adresi?
Serin.
Başka konular önce Biz uygulamaya dalmak.
İçinden gidiyoruz Ayrıca eğer uygulama sorunları
ve bir şey var, istediğiniz bir tazeleme, biz de bunu yapabilirsiniz.
Eğer bir şey var mı?
>> İZLEYİCİ: Yapılar ve bağlı listeler.
ALLISON BUCHHOLTZ-AU: Yapılar Tamam, listeleri bağlantılı.
Yani yapılar.
Biz aslında gidiyoruz Bu gece üzerinde çok.
Tamam, bu yüzden yapılar.
Yapılar temelde Eğer tutmak için sadece bir yol
farklı türde birden çok değer.
Biz bir dizi Yani bir veri türüne kasıldı.
Bizim dizi ya sadece sayılar olmak zorundadır, ya da sadece karakter olabilir, ya da sadece yüzer olacak.
>> Ama belki gerekir bu daha fazlasını içerir.
Belki eğer hold-- gerekir Eğer bir öğrenci hakkında konuşuyor
Eğer, kendi ev için gidiyoruz onların Kimlik numarası, yaşadıkları yaş,
değil mi?
Ve bunların hepsi türleri farklı tür.
Yani saklayamazsınız Bütün bir dizi bu.
Eğer >> Peki ne yapabilirim olduğunu bir yapı, oluşturabileceğiniz
siz aklınıza gelebilecek sizin Kendi kişisel veri türü.
Yerine Yani sadece ints sahip ve bunun yerine sadece sahip yüzen,
Bir tür öğrenci olabilir ki Bunun bu alanların hepsi var.
Biz başlatmak şekilde Yani Bizim yapılar aslında bu--
Benim yazma korkunç olduğundan, biz yazarak geçiş için gidiyoruz.
Woo.
>> Tamam, biz bir struct-- oluşturmak istiyorsanız eğer öyleyse Ben sadece burada aşağı gidiyorum.
Ana olarak göz ardı olursa olsun Hangi daha sonra kullanacağız.
Yapmak istediğiniz şekilde Yani o typedef struct ile.
Ve Sadece bu öğrenci diyelim çünkü o kullanarak ne.
Tamam, bu yüzden typedef sen demek Tamam, yeni bir tür tanımlama?
Nüanslar bunu yaparken içine vardır Bir typedef struct karşı sadece bir yapı.
Tüm niyet ve amaçları, siz sadece birkaçı
gidiyor onlar konum varsaymak yaklaşık olarak aynı ve sadece
Şimdilik yapı TypeDef kullanın.
Bu yolu daha belirgin olmak gerekir sizin Bir sonraki P, bu farklılıklar nelerdir set
ama gerek olduğunu sanmıyorum Şu anda bu konuda endişe.
Ben daha ziyade olur bir tane oluşturmak için biliyorum,
[erişmek ve atamak? değer. ?]
>> Yapı yeni bir türü, ve Biz öğrenci olarak çağırıyor.
Biz bu oluşturmayı tamamladığınızda sonra Yani tüm niyet ve amaçlar için,
Öğrenci adında bir tip olacak.
Ve sadece bir türü olarak düşünmek olabilir Bir int, ya da bir şamandıra veya bir karakter gibi.
Tamam, sadece bir tip?
>> Peki bu birinde, ne var?
Biz belki bir isim var.
Yani belki bir dize adını istiyorum.
Ve belki bir kimlik var bir int var.
Ve biz başka var Bu telefon numarası.
Ve biz some-- bakalım var.
Başka ne olabilir?
Biz onun evinde bazı dize olacak.
Bir öğrenci olan her şey.
>> Peki bu şimdi bir yapı oluşturur.
Peki nasıl bir öğrenci oluşturabilir?
Bazı değişken varsa olduğunu Burada Walker hakkında konuşmak için gidiyoruz,
bu yüzden biz sadece konum have-- Bu walker arayacağım.
O bir tür ihtiyacı var.
Senin tipin nedir?
HEDEF KİTLE: Öğrenci.
ALLISON BUCHHOLTZ-AU: Öğrenci.
Yani bu sadece can bir nesne oluşturur Bunun düşünüyorum tüm bu şeyler vardır.
Sadece bir yürüteç öğrenci yarattı.
Yani şimdi biz gerekiyor Doğru, bu atamak?
Yani herkes nasıl hatırlıyor mu Biz yapı içinde erişebilir?
HEDEF KİTLE: Dönem.
ALLISON BUCHHOLTZ-AU: Tam Dönemi.
Biz atamak istedim Yani eğer Ona bir isim, bunu yapabiliriz.
Açıkçası bu olurdu Burada bu bölümünü ediyorum göre--
yani, ana dahilinde Aslında bana yapalım.
Yani ana Yukarıdaki bu beyan biz ana içinde kullanabilirsiniz.
Yani şimdi ben kimliği yapmak istiyorum, ve biz sadece, bazı yapacağız
ve sonra bir ev atarız.
Bam.
Serin.
>> Peki şimdi biz hiç erişmek gerektiğinde bir şey daha sonra on-- belki biz--
biz hiç bir şey erişmek gerekiyorsa, Sadece bir int kopya kimliği yapalım.
Ve ben kopyalamak istiyorum Bu içine Walker'ın kimliği.
Bunu nasıl olabilir?
Sen yürüteç içinde erişmek için gereken [için struct? Bu gidilir?] [? E?].
Ve biz aynı yolu Burada, nasıl o kadar tahsis
biz istiyoruz biz erişmek olabilir başka bir şey için bu değer vermek?
HEDEF KİTLE: Walker.id.
ALLISON BUCHHOLTZ-AU: Evet, kesinlikle.
Yani hemen hemen hepsi Eğer yapılar için bilmek gerekir.
Sadece düşünmek gerekir Başka bir değişken olarak onları.
Temelde bir oluşturmak sizin Kendi değişken türü, tamam mı?
Bunu bildirmek için kullanabilirsiniz herhangi bir şekilde değişkenleri.
İşte yürüteç hala bir değişkendir.
Sadece şimdi yerine bir tür öğrenci vardır Bir int türünde, ya da bir dize türünde,
veya bir tür karakter.
Konuşmak için kolay bir yol olsaydı yapılar hakkında, kelimenin tam anlamıyla sadece bir olduğunu
Kendi veri türü oluşturmak Bu grubun yapmanıza olanak sağlar
Bütün bu farklı Birlikte verilerin tür.
Bu mantıklı mı?
TAMAM MI.
Bu ve noktalar ile erişme.
Hemen hemen tüm gerekir.
>> Tamam, nerede PowerPoint nereye gitti?
Işte burada.
Peki bu garip.
Aha.
Serin, tamam.
Başka şeyler ya da biz yapmak pratik kafa istiyor?
Pratik?
TAMAM MI.
Korku.
Ben bu çıkmak için gidiyorum.
Sırasında herhangi bir noktada ise pratik sorular,
Ben yenilemek için mutluyum ve şeyler gitmek.
Yani sınav burada sıfır var.
Siz çekin istiyorsanız Bilgisayarınızda o kadar,
Sadece beş almak istiyorum dakika göz atmak için.
Belki bazı üst seçin sorular üzerine gitmek istiyorum.
Siz karar veremiyorsanız, biz sadece edeceğiz yavaş yavaş onlar aracılığıyla çalışmaya başlamak,
ama bazı olacaksa emin değilim Eğer özellikle vardır sorular
hakkında konuşmak ve sahip istekli Seninle tüm aracılığıyla çalışır.
Yani sadece go ahead ve beş dakika sürer.
Ilerleyin.
Ve bu 2013 yılından itibaren sınav olduğunu.
>> İZLEYİCİ: Sıfır?
>> ALLISON BUCHHOLTZ-AU: Evet, bilgi yarışması sıfır.
Bilgi yarışmasının bir şeyler yapmıyoruz.
Biz bir kaç hafta içinde yapacağız.
Ayrıca o sizin için kim Geç geldi, biz, şeker var
böylece siz şeker istiyorsun?
>> İZLEYİCİ: Tabii.
>> ALLISON BUCHHOLTZ-AU: ben sadece etrafında geçeceğini.
Hey, siz burada olsun Erken, daha fazla şeker almak.
Bu iyi.
Ben, şeker istiyorsun?
Bunlardan bazıları istiyorsun?
Snickers halinde de var Herkes Snickers istiyor.
Ben burada ve burada onları bırakacağım.
Çekinmeyin.
Artık ister misin?
HEDEF KİTLE: Tüm set.
Teşekkür ederim.
>> ALLISON BUCHHOLTZ-AU: Ve ben bir güzel vardı Orada başında küçük kazık.
Siz sınavı almak olsun ve Ben bir sınav sınıflandırma parti olsun.
Bu kaos.
900 sınav.
Bu çok eğlenceli olacak.
Harika olacak.
Ben biri eminim En büyük personel bağlama
Yılın gece.
Herkes gelen sınav sıfır yapmış meraktan henüz geçen yıl?
>> İZLEYİCİ: o parçaları.
>> ALLISON BUCHHOLTZ-AU: bunun parçaları, tamam.
Eğer bunlardan herhangi soruları var mıydı?
HEDEF KİTLE: Ben zaten Mesai saatleri gitti.
Olsa teşekkür ederiz.
ALLISON BUCHHOLTZ-AU: Peki, umarım hala tür yararlı olur.
Eğer gitmek ne zaman Bunun için ofis saatleri?
HEDEF KİTLE: Benim TF onları bu öğleden sonra vardı.
ALLISON BUCHHOLTZ-AU: Oh.
Senin TF kim?
HEDEF KİTLE: Fred [? Wujaya?].
ALLISON BUCHHOLTZ-AU: çok TF'ler vardır.
Pek çok.
Tamam.
Herkes I can olduğunu başlatmak için herhangi var biz çalışmak istiyoruz ki zerre?
Ben işaretçiler varsayıyorum tablo ile bir.
Göreyim seni.
>> İZLEYİCİ: Belki anahtar bir.
ALLISON BUCHHOLTZ-AU: Yani 12 numara?
Ben numarayı 8 varsayalım ve 9 muhtemelen olanlar insanlar üzerinden gitmek istiyorum.
>> İZLEYİCİ: Ve 10 ve 11.
>> ALLISON BUCHHOLTZ-AU: Ve siz biliyor sağ, notlar bir sayfa olsun?
>> İZLEYİCİ: Evet, bu yüzden ne biz koymak için izin.
>> ALLISON BUCHHOLTZ-AU: Sen izin konum İstediğiniz herhangi bir şey koymak için.
Ve girilebilir.
Bildiğim kadarıyla hatırlıyorum, bizim yazdığınız edildi.
>> İZLEYİCİ: Sen yapabilirsin sırt ve her iki taraf?
>> ALLISON BUCHHOLTZ-AU: Evet, her iki taraf.
Yani yığın gibi bir şey ve [? arka uç?] yığın, koşu
Zaman.
Faydalı.
Hakkında Belki küçük şeyler işaretçileri size hatırlatmak için.
Şeyler için sözdizimi.
Sadece bir iskelet gibi olması Program süper yararlı olabilir.
Ben hep unuttum biliyorum tam olarak ne Ben, int main için yazmak gerekiyordu
Ben her zaman sadece kopyalama çünkü Benim önceki P setinden yapıştırın
ya o kadar, zaten orada var Ben gerçekten yazdı asla,
böylece sahip süper yararlı olabilir.
>> Tamam, öyleyse neden biz değil Daha sonra sayı 8 ile başlar?
Tamam.
TAMAM MI.
Yani aşağıdaki programı düşünün.
Yani açıkçası biz görünce işaretçiler, muhtemelen var
iyi bir fikir, doğru çizmeye başlamak için?
Ben nerede olduğunu bilmek istediğiniz tüm benim tebeşir büyük parçalar gitti.
Bu can sıkıcı bir türüdür.
>> Yani biz burada bazı takas fonksiyonu var iki işaretçileri almak için gidiyor.
Bu durumda Yani, onlar Aslında anahtarlama olmalı
Bizim asıl takas karşı şeyler Sadece kopya aldı işlevi.
Peki ne yapacak ana ile başlayalım bu--,
Bu çünkü 1 olduğu.
>> Bu yüzden bazı int x 1 var.
Biz 2 eşit olduğunu, bazı y var.
Ve sonra bazı takas var olanlar almaya gidiyor.
Ve en burada var ne görelim.
Ve bizim table-- oğlan ah.
Bunu nasıl yapacağım?
Ben buraya benim tablo çizmek için gidiyorum.
Ancak orada yapma.
Zar zor yapma.
1, 2, 3, 4, 5, 6, 7.
Ve onlar 1 1 ve 1 2 olduğunu bize verin.
Serin.
Korku.
Yani 3.
Ve [var? Bir 1.?]
>> Tamam.
Ve sonra x adresi 0x123 olduğunu.
Ve y, Ox127 olan.
Serin.
Tamam.
Sizlerin bu konuda çalışmak istiyorum buna sadece da-- iş
Çevrenizdeki insanlarla.
Ben söyledi isterdim Ben kurma iken.
Üzerinde çalışmak.
Deneyin ve kendisine üzerinde çalışmak Bir kaç dakika için kendinizi,
ve sonra seninle üzerinde çalışacak.
Çünkü gerçekten sen tek yolu öğrenmek için gidiyoruz kendiniz yaparak olduğunu.
Telaşa gerek yok.
Iyi şanslar.
>> Tamam, neden yavaş yok Bu aracılığıyla çalışmaya başlamak.
Satır bir x 1 sonra Yani herkes alır.
Hat iki sonra, x ve y Sağ 1 ve 2, vardır?
Serin.
Yani çizgi üç nerede şeydir Tabii ilginç olsun.
>> Burada yaptık Peki Şimdi takas edilir.
Biz x ve y bu noktaları olduğunu söylüyorlar, ya da X ve y'nin adresi,
değil mi?
Yani bu durumda, üç, Bir değeri nedir?
Bir geçirilen olmuştu, verilmiş x adresi değeri, değil mi?
>> İZLEYİCİ: 1?
>> ALLISON BUCHHOLTZ-AU: Yani biz x eklemek?
X adresi nedir?
>> İZLEYİCİ: 0x123.
>> ALLISON BUCHHOLTZ-AU: Kesinlikle.
Ama aslında işaret eden bir nedir?
Bir KQUEUE olsaydı, ne değeri bize verecekti.
HEDEF KİTLE: 1.
ALLISON BUCHHOLTZ-AU: Bu olur bize 1 vermek ne çünkü
Bu gitmek olduğunu söylüyorsun adresi, değeri nedir bize.
Peki ne b olurdu?
>> İZLEYİCİ: 0x127.
ALLISON BUCHHOLTZ-AU: Kesinlikle.
Yani y adresi var.
Ve sonra ne [? inceleyebilirsiniz? ?]
HEDEF KİTLE: 2.
ALLISON BUCHHOLTZ-AU: Tamam, şimdi dört yüzden.
Biz şimdi biz ettik equal-- iyi olduğunu söyledi yapılan int temp bir yıldızı eşittir.
Peki ne gibi değişiklikler?
Tek bir şey var burada değişir.
Nedir?
>> İZLEYİCİ: Sıcaklık.
ALLISON BUCHHOLTZ-AU: sıc.
Bu yüzden tüm bu yeniden yazabilirsiniz.
Bunlar için iyi bir strateji Sadece bulmaktan
ne gibi değişiklikler, en sık nedeni bir tek şey var
Tamam, herhangi bir noktada değişecek?
Yani biz temp atadık.
>> Şimdi bir sonraki nokta, beş, biz b yıldızı bir eşit yıldız yaptık.
Peki şimdi ne değişir?
>> İZLEYİCİ: Bir yıldızla.
>> ALLISON BUCHHOLTZ-AU: yani, bir yıldızla her şey aynı kalır.
Ve ne eşit yıldız mu?
>> İZLEYİCİ: 2.
ALLISON BUCHHOLTZ-AU: 2.
Güzel.
Korku.
Tamam, ve sonra şimdi var b başlamak temp eşittir.
Yani tek şey değişen yıldız b.
Her şey aynı kalır.
Ve yıldız b şimdi eşit nedir?
Ve tabloyu tamamladık.
X şimdi sonunda, biz derseniz Çünkü ve y, biz bu point-- de biliyorum
biz biliyoruz ne zaman biz o 2 bir yıldız değişti,
ne yaptım de, tamam dedi olduğunu Burada 0x123 adres, bunu değiştirmek.
Şimdi bu 2 oldu.
Sonra bu noktada tamam, b yıldızı gidin dedi.
Yani bir adrese gitmek 0x127 ve 1 yapın.
Şimdi çok zaman sona at biz aslında, ana dönmek
biz aslında x olduğunu var 2 ve y eşittir 1 ile eşittir.
Bu iyi Herkes?
Serin, tamam.
Numara 9.
Siz bu işe.
Ben bir tahta kurmak için gidiyorum bu yüzden bu kadar çizebilirsiniz.
Bu bir patlama olacak.
Büyük tablolar olabilir Gerçekten korkutucu, ben biliyorum.
Ama sadece bir onlara bir satır alırsak Bir zaman, onlar çok daha az korkutucu olsun.
Tamam.
>> Peki bu olacak biliyorum Ana Önce, sağ ile gitti?
Başlatır, x ve y ve sonra onları takas çalışır.
Bu yüzden bile takas gerçek yolu üzerindedir biz ana aracılığıyla gidiyoruz olduğunu gider ki,
ve sonra aradığını , tamam kadar takas için?
Yani herkes bilir.
>> Peki hangisi do you çocuklar ile başlamak istiyorum?
Gerçekten emin kimse var mı hakkında Bunlardan biri?
Hatta kısmen emin değil misiniz?
Neden x ile başlamıyoruz?
X 'nedir sizce?
>> İZLEYİCİ: 1.
ALLISON BUCHHOLTZ-AU: 1.
Peki o zaman neden 2.
Ve çünkü bu Burada büyük ayrım
sadece olmasıdır Doğru, kopyaları geçen?
Biz referans geçen değiliz.
Bu yüzden bile sonunda bu program, x ve y
aynı kalmış onlar çünkü swap fonksiyonu sadece kopya vardır.
Onlar aslında doğru, değişmez?
>> Peki, a, b, ve temp hakkında?
>> İZLEYİCİ: a b.
>> ALLISON BUCHHOLTZ-AU: a b.
Bu nedenle, bu durumda, bir oldu x 1 olan değil mi?
Yani burada, en içinden geçelim.
Başlangıç, a at ve So b 1 ve 2 ve tanımsız.
Yani aslında geçici alır Bir atanan, bu nedenle geçici 1.
Bir b eşittir, Bu yüzden olsun 2, b sıcaklığına eşittir.
Şimdi 1 olsun.
>> İZLEYİCİ: bir önceki İçinde takas işareti, x ve y işareti.
Tam olarak ne anlama geliyor?
ALLISON BUCHHOLTZ-AU: Yani bu demektir Eğer referans geçiyoruz.
Anlamına Yani aslında konum adresleri geçen
x ve y saklanır.
HEDEF KİTLE: Ama sen değilsin adresi takas.
ALLISON BUCHHOLTZ-AU: Sen değilsin adresleri takas.
Sen onların içinde ne takas ediyoruz.
Bu adreste ne gibi, çalıştığını ve neden bu.
Burada bu programda karşı ne Eğer kopya oluştururken olduğunu yapıyoruz.
Yani mevcut x ve y var Burada kendi değişkenler olarak.
Ama sonra geçirdiğinizde Onları takas içine, bu kadar
Oluşturduğunuz sanki Bütün bu diğer set.
Yani aslında hiç değilsin dokunmadan x ve y.
>> İZLEYİCİ için: ne işareti X ise x adresi, ne x, yıldız olurdu?
>> ALLISON BUCHHOLTZ-AU: Ampersand x de ne olduğunu x adresi, o zaman, star--
Bu durumda, x, bir gösterici değildir.
HEDEF KİTLE: Tamam, evet.
Yani sadece bunu Bir gösterici değil çünkü.
ALLISON BUCHHOLTZ-AU: Sağ.
Sadece yıldızı yapabilir Bir gösterici olan bir şey.
Belki şeyler bunu yapabilirdi değil, ama derleme bu size
çılgın şeyler olur bunu.
Ve ben tam değilim ne olacağını emin.
Her zaman alabilir bir şeyin adresi,
ama inceleyebilirsiniz olamaz Bir gösterici değil bir şey.
Mantıklı olursa, işte İyi bir ayrım var.
>> Sağ, Yani çok kötü değil?
tablolar umarım vardır biraz daha az korkutucu oluyor.
Tamam.
Ah, eğlenceli olanları.
Şimdi, kendi kod yazma.
Yani siz işe izin gidiyorum yaklaşık dört dakika için bu konuda,
ve daha sonra konuşabiliriz bu yaklaşım yolları hakkında.
Çevrenizdeki insanlarla konuşmak için çekinmeyin.
Ayrıca bu ilginç.
O an tüm kızlar gibi bölüm şimdi.
Oldukça heyecanlı.
Chang hariç.
Ama Chang gerçekten bölümün bir parçası değildir.
Korku.
Mükemmel.
Yani sana bir çift ipuçları verecektir.
Eğer sahip durumda Birden fazla karakter,
Başka bir şey var 123 veya 1000 gibi bir şey,
Eğer döngü gerekiyor ve içinden olanların her dönüştürmek.
Yani bir çift var Bunu yapabileceğini yolları,
ama kesinlikle için gidiyoruz orada bir yerde döngü döngü için
Bunların içinden, ki bu tür hediye gibi
Eğer strlen çağrı bile sahip, hangi tür oh gibi bir
belki uzunluğunu kullanmak istiyorum bir şekilde dize.
>> Tamam.
Yani siz olabilir ne düşünüyorsunuz Yapmak istediğimiz ilk şeylerden biri?
Bir kaç vaka var burada doğru, hesaba gerek?
Ya biz boş olan bir şey var.
Ne var?
Olgular.
Boş.
Biz sahip bir durum var 09 başka şey, değil mi?
Yani o harfleri bulunur diyelim.
Ya da geçerli olduğunu bir durum var.
Üç olgu düşünmek.
Yani olabilir hangisi sizce kolay bir birinci dikkat çekmek için?
HEDEF KİTLE: Boş.
ALLISON BUCHHOLTZ-AU: Olgu null.
Yani biz orada ne yapardınız?
HEDEF KİTLE: [duyulamaz].
ALLISON BUCHHOLTZ-AU: Evet.
Ve ne yapmak istiyorsunuz?
>> İZLEYİCİ: Dönüş 0.
>> ALLISON BUCHHOLTZ-AU: Kesinlikle.
Korku.
TAMAM MI.
Yani şimdi harfleri olduğunu harf ve geçerli durumda olduğunu.
Biz aslında bakabilirim Bu bir döngü içinde, tamam mı?
Ne olabilir Yani tek yönlü Durdur-- yapmak geçerli ise basit bir şekilde kontrol etmek.
Biz gitmek zorunda kalacak Her harf ve ne?
>> İZLEYİCİ: Bu in-- var olmadığını kontrol edin
>> ALLISON BUCHHOLTZ-AU: Sağ kontrol edebilirsiniz o 0 ve 9 arasında ise, değil mi?
Sonra halinde geçerli olduğunu, biz konum
yineleme sonuna kadar gidiyor Bizim dize zaten, değil mi?
Peki neden biz denemek ve yok onları birleştiren tek.
Biz yineleme gidiyoruz dışarı tertibatı boyunca ve biz olarak
Bunu, ilk gidiyoruz Bu mektuba olmadığını görmek için bir kontrol yapmak
ya bu karakter geçerli olup olmadığını.
Eğer öyleyse, biz gerçekleştirmek için gidiyoruz bunu dönüştürmek için gereken çalışma.
Aksi takdirde doğru, 0 dönersiniz?
>> Bunu yapmadan önce Yani, biz muhtemelen bazı değişken istiyorum
Biz sonunda dönebilirsiniz Bu bizim gerçek bir değer olacak.
Yani biz başlatmak için gidiyoruz bazı değer 0 olarak.
Ve biz başlamak nasıl sadece bu.
Yani bu kurtulmak için gidiyorum.
Peki nasıl olacak Bu dize yineleme.
HEDEF KİTLE: döngü için.
ALLISON BUCHHOLTZ-AU: döngü için bir.
Yani bizim için ne var?
>> İZLEYİCİ: i 0 olduğunu.
ALLISON BUCHHOLTZ-AU: Mm-hm.
Ve biz kadar yineleme nelerdir?
>> İZLEYİCİ: s str uzunluğu.
>> ALLISON BUCHHOLTZ-AU: Tamam, şimdi hatırlıyorum Daha iyi bir yol var. [Duyulamaz].
>> İZLEYİCİ: Evet, biz n eşittir yapabiliriz.
ALLISON BUCHHOLTZ-AU: Kesinlikle.
>> İZLEYİCİ i n daha azdır.
ALLISON BUCHHOLTZ-AU: Ve neden biz bunu isteyeyim?
Eğer nedeni hatırlıyor musun?
HEDEF KİTLE: Biz bunu yeniden hesaplamak zorundayız.
ALLISON BUCHHOLTZ-AU: Bu şekilde size yapmamı Sadece strlen kez hesaplamak zorunda.
Bunu yaparsanız ben strlen daha az , işte o lar yeniden hesaplar demektir
uzunluğu her zaman Eğer döngü için çalışacak
hangi büyük bir maliyet değil enerji, bu ancak var
denemek için iyi bir uygulama ve bir zamanlar böyle şeyler.
Belki sürece bir çılgın dize var her tekrarında değişiyor.
Aynı kalıyor Ama eğer, bunu kaydedin.
Tamam.
Ve sonra ben artı artı.
Korku.
Biz yolumuza vardır.
HEDEF KİTLE: Gerçekten hızlı.
İlk olarak, o yüzden biz sadece diyelim s strlen daha ben az yaptım,
onlar tasarım bizi sınıflandırma vardır hiç ya da sadece doğruluğu?
Onlar değil.
Biz doğruluğu üzerinde sınıflandırma vardır sınavlar için de bildiğim kadarıyla.
Ben bir üzerinde tam yapamaz garanti, ama çoğunlukla,
büyük çoğunluğu, çünkü doğruluğu Zaman kısıtlaması çok altında olduğunu.
Tasarım tipik demektir Eğer düşünmek için zaman var
senin durumun şıklığı hakkında.
>> Tamam, bu yüzden yineleme ediyoruz.
Yani biz ya kontrol etmek gerekiyor Bu karakter geçerli olup olmadığını görmek
ya da biz gerçekleştirebilirsiniz eğer bizim [Normal? i bir?] işlevi.
Biz endişelenecek ne bir saniye içinde.
Peki biz neden take-- yok Herkes düşünmek eğer
kontrol etmek bir yol hakkında Bu geçerli olup olmadığını görmek.
Biz olacak biliyorum Bazı koşul, doğru olur?
Ve bu hatırlıyorum ASCII, yani nasıl olabilir
bu 0,1 değilse biz bakın 2, 3, 4, 5, 6, 7, 8 ya da 9.
HEDEF KİTLE: alfa edin.
>> ALLISON BUCHHOLTZ-AU: alfa olur Yani eğer sadece bir mektup varsa bize bildirin.
Onlar bize bir sembol verirsen Ve, bu kadar hala oldukça kontrol gitmiyor.
Eğer ASCII yukarı çekin Yani eğer masa, bildiğimiz 0 9 aracılığıyla bu
bir kesimi vardır.
Sayılar onlar ki bana söyle Eğer mümkünse gelmektedir.
HEDEF KİTLE: 40.
>> ALLISON BUCHHOLTZ-AU: Yani aralık gibi 40--
HEDEF KİTLE: Belki.
48-57.
Emin değilim.
>> ALLISON BUCHHOLTZ-AU: 40-57?
>> İZLEYİCİ: 48, sanırım.
ALLISON BUCHHOLTZ-AU: 48-57.
Yani biz bu ASCII biliyoruz ASCII değeri değilse symbols--
48 ve 57 arasında, Doğru, geçerli değil mi?
Yani biz o kullanabiliriz Bizim avantajı muhtemelen?
Nasıl almak için gidiyoruz Bu mektup, ilk kapalı?
Nasıl erişen bu karakter?
>> İZLEYİCİ: s dirsek i.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Biz düşünmek Çünkü diziler gibi dizeleri, hatırlıyorum.
Peki ne demek istiyorsun?
Biz bu olmadığını söylemek istiyorum Bu-- Sana bir ipucu vereyim.
Bu daha az.
Ne sen düşünmek daha az olması gerekir?
HEDEF KİTLE: 57?
>> ALLISON BUCHHOLTZ-AU: 47, değil mi?
Ama aynı zamanda temsil ettiği bir 0 olarak Tek [mi? bahsetmektedir?], o çünkü
karakter 0.
Ayrıca 47 koyabilirsiniz.
Gibi, ASCII tablosu olması Sadece bir şey görmek
Eğer test sayfasında olmalıdır.
>> Bir eğer bu, böyledir Yani daha 0-- ille ve daha az.
Sadece Ya olacak daha az ya da daha fazla 9.
Yani benim için bu son doldurabilirsiniz?
Yani ya i s, Rhea nedir?
>> İZLEYİCİ: 9 Büyüktür.
>> ALLISON BUCHHOLTZ-AU: Orada.
Bu mantıklı mı Herkes, biz var nasıl?
Bu sorunlar, onlar sizin kez gibiler Tamam, oh gibi, çözüm bkz.
Uygulama size yardımcı olacaktır Ve bu yüzden.
Tamam, bu yüzden 0 döndürür.
Güzel.
Tamam.
Aksi takdirde ne yapmak istiyorsun?
Bu ilginç bir parçasıdır biraz daha nerede
Bence CS karşı matematik gibi.
Herkes bir fikir var mı biz bu nasıl yapacağınızı?
Yani önemli şey eline kolaylıkla ilk karakter
Biz olacak alıyorsun Sağ üst sipariş basamaklı?
Yani eğer biz dönüştürme bakıyoruz 123, biz yineleme ilk kez
olduğunu 1 olacak, ama biz ihtiyacımız Bu doğru, sonuna kadar 100 olmak?
Yani yapabileceğiniz tek şey olduğunu sonraki her rakam ile
sen, 10 tarafından değerini çarpın, almak böylece zaman size sonuna ulaşmak olduğunu,
her olmuştur Doğru, yukarı kaymış?
>> Çalıştırmak ilk kez Yani bu, sizin değer olarak 1 var.
İkinci kez sen, sen bunu çalıştırmak 10 tarafından değerini çarpın.
Şimdi bu şekilde onu güncelleyeceğiz 10 ve sonraki değeri ekleyin.
Ve sonra tarafından çarpın 10 ve sonraki değeri ekleyin.
Ve bu da bu demek neden daha test gibi
Bir matematik algoritması karşı CS, ama konuyu dağıtmak.
Ben sınavlar yazmıyorum.
>> Peki yapabileceğimiz bir şey olduğunu değer süreleri 10 eşittir söylüyorlar.
Yani bu değişmeye devam ediyor senin basamaklı bir kez her zaman.
Ve sonra sadece eklemek istiyorum.
Biz eklemek istediğiniz Biz sadece doğru, var?
Peki nasıl biz aslında dönüştürebilirim bizim Sayıya ASCII karakter
onu temsil eden?
>> Yani 0 doğru, 47 eşit olduğunu biliyor musun?
0 47 Yani eğer, ne biz yapmak zorunda kalacak
aslında 0 int olmak için?
>> İZLEYİCİ: Bu 48 var.
ALLISON BUCHHOLTZ-AU: 48?
Özür dilerim.
Biz doğru, 48 çıkarma olur?
ASCII matematik hatırlıyor musun?
Biz sadece onları tedavi edebilir Normal numaraları gibi.
Eğer sayılar gibi davranmasını ise, etkin numaraları olur.
Biz diyelim i s, var ise Bu durumda 0'a eşit olduğunu söylüyorlar.
Bu durumda i Yani s ASCII-- olur
Bunun için ASCII int 47 olacaktır.
Bu yüzden subtract-- veya 48 olabilir.
Bunu yapabilirsin, tek yoludur.
Herkes daha iyi biliyor mu şekilde biz 48 yapabilirdi?
Biz sadece 0 gitmek bu-- dedi ASCII Eğer teklifi 0 yapabilirdi.
Yani bu tür yapmak yok Bu nasıl mantık?
>> İZLEYİCİ: Bu noktada, değeri 0, , sen bunu 10 ile çarpın bile çünkü
Eğer, sıfır ile başlıyoruz bu yüzden açık olması gerekir?
>> ALLISON BUCHHOLTZ-AU: Bu durumda Yani, Eğer eklemeden önce çarpın istiyorum,
Bu durumda, evet, öyle, çünkü hala benim işaretçi kayıp göre--.
Bu durumda değeri, birinci biz koşmak zamanı sıfır olacaktır.
Yani sadece ekliyoruz ilk rakam üzerinde.
Asıl önemli olan bir sonraki zaman Eğer onu kaydırmak istiyorum, yineleme
Bir sonraki basamak üzerinde eklemeden önce.
Bu sizin için açıklık mu?
TAMAM MI.
>> Bazen gidiyoruz garip fazla metıl şeyler olsun.
Eğer en olsaydı Bu, hala gidiyoruz
Eğer oldukça iyi yapmak için gidiyoruz get-- için.
Kısmi kredi çok olduğunu CS50 sınavlar ile ilgili büyük bir şey.
Yani bildiklerini yazmaya.
Eğer her şey var ise Burada hariç, sen
hala yapmak için gidiyor gerçekten de sorun.
Eğer gösteren Çünkü, Tamam, ben neredeyse biliyorum.
Ben yineleme gerektiğini biliyoruz.
Ben kontrol etmek için gerekenleri biliyoruz.
Ben sadece bunu değil oldukça dönüştürmek için nasıl olsun.
OK olmaya gidiyoruz.
Evet, gidiyoruz Bir kaç puan kaybedersiniz,
ama yine de bir almak için gidiyoruz bir şey için puan iyi bir sayı
gibi o sen eğer Bu iki satır eksik.
Ben OK, bu kişi gibi olurdu ne yaptığını biliyor.
Matematik zor.
Yani ince olacağını söyleyebilirim.
>> Tamam, hazır adamlar bunu Şimdi işaretçileri ile strlen deneyin
Siz işaretçi ustaları olduğunu?
Yani siz işe izin vereceğim biraz için bu konuda.
Herkes bir tazeleme ihtiyacı varsa.
Yani işaretçi kullanmak istiyorum aritmetik ve s null sonra ise,
sizin uygulanması 0 dönmek gerekir.
Sizi yapmak bu gibi şeyler Sadece strlen aramak gerçekten mutlu
Günün sonunda.
Ben bu biraz olabileceğini düşünüyorum Son bir, daha kolay olan
iyidir.
Sana bir dakika çocuklar vereceğiz, ve sonra bunun üzerinden çalışacağız.
Ve sonra anahtarları gitmek için olsun.
>> Tamam, hazır adamlar?
Belki biraz.
Yani sana senin verdim iki seçenek, değil mi?
Ya boş kontrol ve eğer 0 döndürür o, ya da aslında uzunluğunu hesaplamak.
Peki kim null kontrol yazmak istiyor?
Göreyim seni.
>> İZLEYİCİ: Eğer parantez s boş dönüş 0 eşittir.
ALLISON BUCHHOLTZ-AU: Güzel.
Yarım sorunu seviyorum Sadece null denetliyor.
Ben siz son ile biliyorum hafta null kontrol gibiydi
kelimenin tam anlamıyla her zaman.
Yani--, Tamam
>> İZLEYİCİ: return 0 tek bir satır ise, biz hala kıvırcık braket gerekiyor?
>> ALLISON BUCHHOLTZ-AU: Sen teknik değil sürece tutarlı olduğunu onlara ihtiyacımız var.
Sadece iyi uygulama bulunuyor alışkanlığı elde etmek
küme parantezi kullanarak, ama teknik hayır.
Sen bir hat için onlara ihtiyacım yok.
Biz sadece tavsiye eğilimindedir Programa başlayan insanlar için.
>> Peki şimdi burada yapmak istiyorum ne olabilir?
Yani şimdi bizim dize geçerli olduğunu biliyoruz.
Biz Compute uzunluğunu tutmak istiyorum.
Ne muhtemelen ilk var Yapmak istediğimiz şey?
>> İZLEYİCİ: Create bir int o uzunluk bu.
ALLISON BUCHHOLTZ-AU: Kesinlikle.
HEDEF KİTLE: Ve biz bunu ayarlamak ister misiniz?
ALLISON BUCHHOLTZ-AU: 0.
Mükemmel.
Tamam.
Şimdi ne yapmak istiyorsun?
Bu gerçekten toplu olduğunu.
Göreyim seni.
>> İZLEYİCİ: Yani muhtemelen döngü için bir yapmak.
Ve sonra sen s beri çağırdığınızda ilk şey adresini almak,
Ben 0 eşittir ile size başlamak istiyorum.
Sonra sürece x olarak artı geri değil 0 çizgi.
ALLISON BUCHHOLTZ-AU: boş terminatör.
HEDEF KİTLE: boş terminatör.
Sonra uzunluğu birini ekleyin.
>> ALLISON BUCHHOLTZ-AU: Evet.
Tamam, böylece açmak sağlar Çok somut koda.
Ama bu mükemmel bir fikir.
Biz de yapıyoruz tam olarak ne.
Biz ilerlerken olacağız işaretçi ile aracılığıyla.
Yani biz yapmak istediğimiz yerine int olduğunu
Burada, biz çünkü Bir ona atıfta değil.
Biz başından atıfta konum dize, bazı adres olma başlamak,
değil mi?
>> Yani biz bir işaretçi istiyoruz.
Bu yüzden bazı karakter yıldızı zorunda gidiyoruz, bizim s karşılık, çünkü, değil mi?
Yani biz başlatılıyor ediyoruz bazı nokta dize başlamadan, tamam mı?
Yani sadece o i diyelim.
Bu dize başlangıcı ise, ne atanacak gidiyor?
Değil 0.
Biz olmak istiyorum Bizim string başlar.
Ne başlangıcını temsil Bize verilen bizim dize?
>> İZLEYİCİ: Sadece s.
>> ALLISON BUCHHOLTZ-AU: s.
Yani bu yeni işaretçi oluşturur Tamam, bizim dize başlangıcını temsil etmektedir?
Başka bir yol düşünmek Burada gibi bizim dizi var.
Bu bizim dize, s var.
Yani bu diyelim İlk nokta, ve bu 0x4 olduğunu.
04.
Bu, adres tutan, bizim s, olduğunu.
Ve biz sadece denilen başka bir yarattı Ben sadece aynı şey ifade eder.
Yani her ikisi de sadece işaret ediyoruz Bizim dize başına.
Bu sadece bir grafik temsilidir.
>> Peki şimdi biz istediğimiz yapmak, biz yineleme istediğim
yineleme için koşul Bizim dize ile.
Şimdi alışveriş.
, Alışveriş adamlar var.
Biz gelene kadar güncellenmesi tutmak istiyorum mı biz doğru, boş terminatör ulaşmak?
Peki böyle görünebilir?
Biz i istiyoruz, ya da biz istiyoruz musunuz Yıldız ben soru?
Boş sonlandırıcı bir adres var ya da bir şey, bir adreste bulunan?
Bir adreste yer alan, değil mi?
>> Bu yüzden ne olursa olsun inceleyebilirsiniz ihtiyaç Burada, bu sadece bazı adres çünkü.
Aslında baştan almak için Bu KQUEUE mi
bu yüzden aslında olsun bu ne ilk etapta var.
Bu yüzden i yıldız yaparsanız, ne biz eşit istemiyoruz?
HEDEF KİTLE: Geri çizgi?
>> ALLISON BUCHHOLTZ-AU: Orada.
Bu herkese mantıklı mı?
Biz bizim dizeye gitmek gerekir ve bu sonu değil emin olun.
Ve sonra biz sadece böyle güncelleyebilirsiniz.
Normal güncelleme.
Bunlar Yani sürece met, ne yapmamız gerekiyor?
>> İZLEYİCİ: Uzunluk artı.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Ve sonra döngü için sonra sonlandırır, ne biz dönmek istiyoruz?
HEDEF KİTLE: Uzunluk?
ALLISON BUCHHOLTZ-AU: Uzunluk.
Orada gitmek.
Bu bir Açıkçası et döngüsü için bu anlamaktır.
Herkes nasıl çalıştığını olsun mu?
Ben tekrar gitmek için mutluyum.
>> İZLEYİCİ: İkinci bölüm, orada yıldız, böylece,
Bu birinci-- adresi var
ALLISON BUCHHOLTZ-AU: Bu adres değil.
Bu en budur.
HEDEF KİTLE: Oradaki aslında.
ALLISON BUCHHOLTZ-AU: İşte Ne var aslında var.
Yani bu izin saying-- olduğunu Beni bu daha iyi yapmak.
Yani bu 0x04 ve ben sadece gidiyorum Ben bu benim isim yapmak için gidiyorum demek.
TAMAM MI.
Evet, ben yarışması yorum Bu gece biliyorum.
Quiz yorum sürü.
Yani bu dize diyelim benim adım, Allison.
Dağınık küçük, ama var.
Ve s konumunu temsil dize başladığı nerede,
bu yüzden bu yapmak için gidiyorum bu, bir adresi real--
dize doğru, nerede başlar?
>> Peki biz burada ne istediğimiz ise yineleme için işaretçileri kullanmak.
Yani biz de, i bazı işaretçi oluşturmak dize başlangıcına eşittir.
Ve her noktada, biz istiyoruz dizi geçiyor devam
burada boş terminatör girene kadar.
Bu yüzden her zaman ne denetlemek istiyor Bu adreslerin her biri.
>> Bu yüzden inceleyebilirsiniz i böylece İlk kez biz bunu biz yapmak
Tamam, adres 0x04 de ne demek?
Bu bir a var.
Tamam, biz iyiyiz.
Artır uzunluğu.
Diğerine geçin.
Yani ben-- tarafından işaretçileri artış hatırlıyorum onlar işaret ne olursa olsun boyutu.
Bu olduğundan, bu durumda So Bir karakter, o tek güncelleme olacak.
Yani şimdi biz 5 bakmak için gidiyoruz, hangi burada gidiyor demektir.
Tamam diyor Yani, 0x05 gidin.
Orada ne var?
Öte yandan bir L var.
Ve o yapmaya devam edeceğiz Bu bir vurur kadar.
Ve ne var, tamam diyor ne olursa olsun adresi bu?
boş sonlandırıcı, tamam.
Çıkış.
Ve sadece uzunluğunu döndürür.
Eğer aslında ne ihtiyacımız var Bu adres, adres değil kendisi.
>> Çok az yerde nerede vardır Aslında adresi gerekir.
Zaman zaman Çoğu Eğer kullanıyorsanız ve bu kadar
İlk zaman Bir işaretçi atama veya
Eğer başka bir işlev içine geçiyoruz.
Tamam, herkes orada iyi?
Biraz?
TAMAM MI.
Biz ettik gibi >> Yani görünüyor var yaklaşık 12 dakika, sol
bu yüzden biz devam edeceğiz belki bizim son sorun,
ve sonra orada herhangi bir geldi kavramlar
Bu arada biz hızlı bir şekilde gitmek.
>> Yani vites son anahtarlama Buradaki sorun, ifadeleri geçiş.
Yani iş bu yeniden etmektir aynı şekilde davranır böylece
ancak anahtarlarını kullanın değildir.
Kireçli eller.
Yani yarasa kapalı bu konuda herhangi bir soru?
Yok?
TAMAM MI.
Herkes eğer anlamak mı Olgu, ondan sonra bir şey yok
olması gerektiği anlamına gelir Bir sonraki adımı takip?
Bu durumda davanın 1 ve 2 yüzden aynı şeyi yapmak.
Karışıklık Bazen nokta.
>> Tamam.
Herkes herhangi bir fikir var mı?
Evet?
>> İZLEYİCİ: you can Yani tablolar halinde sadece yapmak.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Yani bizim ilk ne?
>> İZLEYİCİ: n eşitse, 1 eşittir ve veya n eşittir 2 satır
2 eşittir, daha sonra küçük yazdırın.
Ve eğer o başka ne yapabilirim?
Ya da sadece bir if yapabilirim?
>> ALLISON BUCHHOLTZ-AU: eğer başka yapabilirim?
>> İZLEYİCİ: eğer yaparsan önemli misiniz?
ALLISON BUCHHOLTZ-AU: Yani öyle.
İstendiğinde, birisiyle mi Aynı çıktıyı alacak
Eğer karşı sadece IFS kullanırsanız Başka IFS kullanıyorsanız.
Siz nedenle düşünebiliyor Eğer else kullanmak isteyebilirsiniz neden
IFS bir sürü karşı olur?
Verimliliği vardır.
Evet?
>> İZLEYİCİ: Bu kontrol ediyorum Tüm IFS her zaman.
>> ALLISON BUCHHOLTZ-AU: Yani bile Bu ilki vurdu,
her diğeri çeke gider.
Yani durumlarda else if IFS kullanmak istiyorum Sadece bir tanesi hiç nerede geçerli olacaktır.
Yani karşılıklı dışlama biz demek eğilimindedir ne.
Eğer IFS bir grup varsa, bu demektir öyle ki, belki de daha fazla
konularda, ve belki daha fazla Bunlardan biri doğru olabilir.
Ve ikisi de istiyorum onlar doğruysa eğer yürütülecek.
Sadece çalışmak için bunlardan birini istiyorsanız Bu birbirini dışlayan durumlarda,
eğer, çünkü başka kullanmak istiyorum tüm verimlilik ile ilgisi yoktur.
Sizin kod sadece daha iyi tasarlanmış Bu uygulama yapışır eğer.
Yani bu durumda biz bir else if olacak.
Ve bu olurdu?
>> İZLEYİCİ n 3 eşittir.
ALLISON BUCHHOLTZ-AU: Mükemmel.
Baskı ortamı.
Ve sonra son olarak durumda, ne var?
Else if ya da başka?
HEDEF KİTLE: Else.
>> ALLISON BUCHHOLTZ-AU: Biz istiyorsun want-- musunuz else if somut olgu var çünkü.
Her bir yakalama tür değil.
Eğer bir switch-- bir varsayılan olsaydı Davayı olabilir anahtarları hatırlıyorum,
ve sonra varsayılan var.
Eğer varsayılan olsaydı, bu tür Orada başka beyanı.
Ama sadece vaka varsa, Bu ihtiyacınız demektir
bu o her olmadığını görmek için kontrol edin.
Yani bu durumda, o-cekti 4 ya da 5.
Biz bir baskı kapalı istiyorum.
Bu büyük değil.
Ve oraya gitmek.
Ve bu program olurdu.
>> Bu durumda biz eğer Yani Varsayılan bir şey vardı,
Biz else olurdu her ne yapmamızı istedi.
Yani iyi bir ayrımdır bilmek, anlamak için.
Senin için anahtarları ile yardımcı olur mu?
Mükemmel.
Tamam.
>> Biz sol yaklaşık sekiz dakika var.
Siz herhangi bir var mı diğer üst düzey kavramları?
Genel olarak sorular?
Evet?
>> İZLEYİCİ: Ben bir Bunlardan biri hakkında soru
Bu rastgele hakkında oldu sınav sıfır sayı üreteci.
ALLISON BUCHHOLTZ-AU: Ah, bu bir.
Bu bir diğeri nerede evet edemememden daha matematik.
çözüm bile ne zaman ki- için Ben bu ne gibiyim, onu görüyorum.
>> İZLEYİCİ: Bu numara 7 oldu.
>> ALLISON BUCHHOLTZ-AU: Bence tuhaf.
Yani temelde istediğiniz drand48, kullanılacak
bazı verecek 0 ve 1 arasındaki sayı.
Ve bunu kullanmak istiyorum Eğer bir şekilde problemimiz olsun
ve bir matematik problemi çok fazla var Bana ben CS sorunu bence daha.
>> Yolu Durdur-- yapmak ve bazen sadece böyle olacak.
Yine, bunlar bu tür durumlar
Size ne dökmek gibi can ve kısmi kredi.
Biz iade istiyorsanız, biz olduğumuzu biliyoruz
drand48 kullanarak olacak bir şekilde, değil mi?
Peki neden sadece bu zerre yoktur.
Biz bir şekilde bunu kullanıyoruz.
onlar yolu Siz o kullanın
Ben denemek ve açıklamak olan bu gibi.
>> Peki temelde ne burada olur bu 0 ve 1 arasında bulunuyor çünkü,
ne yaptığınızı size çarparak konum olduğunu by-- bu çok bir matematik sorusudur.
Sadece tam reddi, bu Tamamen bir matematik sorusu.
Ne yapıyoruz olduğunu çünkü 0 ve 1 ve
Bu içerisinde olması önemlidir Bu aralık, aslında
ne kadar büyük olduğunu anlamaya aralığında, ve daha sonra
temelde, o kadar ölçek hangi Bu ne yapıyor olduğunu.
>> B eksi bir sana o dizi verir, Bu sayılar arasındaki fark.
Sen 0 ile çarpabilirsiniz ve 1, ve daha sonra bir adil ekleyerek
senin o kadar ölçeklendirme demektir bu yüzden, a ve b arasında olması koşuluyla,
ki ben gerçekten bu sorunu gibi değildi.
Dediğim gibi, bu sınav kapsaması kastedilmiştir
daha az rahat insanlar, yere arasında,
ve daha rahat.
Onlar öyle yaptıysanız Yani bir şey olduğunu
daha az herkes o alacağı rahat bir yer,
biz çok çok olurdu İnsanlar, perfects puanlama
ve daha rahat sıkılmış olacak.
>> Bu yüzden hep bunlar var zeka soruları tür
zor biraz olması gerekiyordu olduğunu bazı yaratıcı düşünme alır.
Onları gördüğünüzde, Çok şaşkına alamadım.
Ben kesinlikle Kapağı söyleyebilirim ilk sınav ile.
Sorunlarla mücadele Eğer yapabilirsiniz biliyorum,
var, çünkü hiçbir faydası saplanıyor Bir problem üzerinde üç varken
sayfadaki ya da dört ya da beş Bundan sonra kolayca yapabilirsiniz.
>> İZLEYİCİ: Neden tam olarak yapmak aralık ile çarpın?
>> ALLISON BUCHHOLTZ-AU: Bu dizi çarpın ki Eğer ne kadar bir süre sonra gibi biliyorsun--
istiyor musun?
Yani, aklınıza gelebilecek çünkü o 0 ile 1 arasında bir sayı döndürür,
Eğer bir yüzdesi olarak düşünebiliriz.
Elimizdeki Yani temelde söylüyor Bizim sayı çizgisi burada, bir, burada
b burada.
Bunu ne kadar geçmiş olduğunu gibisin?
Yaptığımız şey.
Yani sadece için soruyorsun Bu aralığın, yüzde hangi
Seni veriyor budur.
Ve sonra temelde sadece Bir ekleyerek büyütmek.
Bir matematik zeka var.
>> Herhangi bir son dakika tavsiye varsa, ben soruları Kapağı söyleyebilirim,
Hangi olanları anlamaya sen gibi, oh bu var biliyorum.
Neredeyse kesinlikle onlar için gidiyoruz Eğer bilemezsiniz sorular olabilir
veya vakit gidiyoruz için, yani tamam, senin güçlü vurmak?
Siz büyük olacak.
Bir sürü bir vardır Bir nedenle sorular,
Eğer zaman var ki tür fırsat var
ne göstermek için Eğer gerçekten iyisin.
Sen eğer Yani Tamam Her şey iyi değil.
Sizin güçlü oyna.
Evet?
>> İZLEYİCİ: Yani bu kadar gidiyor kesilmiş oluyor şey geri?
Evet, olacak, çünkü drand 0 ve 1 arasında döner.
Bir int dönersiniz, o kesmek olacak çünkü
Biz eklemek veya onun tarafından çarpın zaman.
Serin.
Herhangi bir son dakika soru?
>> Siz büyük yapacağız.
Sen muhteşem olması için gidiyor ediyoruz.
Hatta değilse Ve orada olacak şeker burada önümüzdeki hafta.
Ve seni seveceğim.
Ben ne olursa olsun sizi seveceksiniz.
Pekala, herkes, iyi şanslar.
Büyük bir zaman var.
Sen iyi olacaksın.
Ve biliyor musun?
İki gün içinde gidiyor I ise, bitecek
böylece, Perşembe günü iki ara sınav var en azından siz yapılacaktır.
Pekala, ben önümüzdeki hafta sizi görürsünüz.