1 00:00:00,000 --> 00:00:12,040 >> [MÜZİK OYUN] 2 00:00:12,040 --> 00:00:16,460 >> HOPARLÖR 1: Bu CS50 Tüm doğru, ve bu haftanın dört başlangıç ​​olduğunu 3 00:00:16,460 --> 00:00:20,420 ve duymuş olabilir veya okumak, dünya biten olmuştur. 4 00:00:20,420 --> 00:00:23,520 Internet çevresindeki tüm Oluyor hiç bilgi ve farkındalık vardır 5 00:00:23,520 --> 00:00:27,100 Bir program, a bir hata Bash denilen programlama dili. 6 00:00:27,100 --> 00:00:32,729 Bu harika markalı olmuştur Shellshock veya Bash kapı, 7 00:00:32,729 --> 00:00:35,485 ancak bu gibi eşyalar nadir olmamıştır. 8 00:00:35,485 --> 00:00:38,807 Ve aslında, çoğu getirmek Heartbleed arka anılar, 9 00:00:38,807 --> 00:00:41,640 Eğer fark olabilir ki Bu geçtiğimiz bahar geri basın hangi 10 00:00:41,640 --> 00:00:43,980 Benzer oldukça dramatik oldu. 11 00:00:43,980 --> 00:00:47,110 Şimdi o sizin burada Bugün, kaç senin, sahip 12 00:00:47,110 --> 00:00:50,330 Eğer anlamıyorum bile ne o Shellshock duydum, tüm hakkında? 13 00:00:50,330 --> 00:00:51,370 14 00:00:51,370 --> 00:00:54,245 Pekala, ve size kaç savunmasız bilgisayarları var? 15 00:00:54,245 --> 00:00:55,680 16 00:00:55,680 --> 00:01:00,250 Tamam, çok, çok daha fazla eller olmalıdır Şu anda kadar, nedenlerle biz göreceğiz. 17 00:01:00,250 --> 00:01:02,580 >> En ne bir göz atalım medyada devam 18 00:01:02,580 --> 00:01:05,304 ve daha sonra bunu biraz açıklayabilir Burada bizim için teknik. 19 00:01:05,304 --> 00:01:07,670 20 00:01:07,670 --> 00:01:11,250 >> HOPARLÖR 2: Güvenlik uzmanları var uyarısında ciddi bir kusur olabilir ki 21 00:01:11,250 --> 00:01:15,650 yüzlerce etkileyecek hakkında olacak Dünyanın en web kullanıcılarının milyonlarca. 22 00:01:15,650 --> 00:01:20,600 Peki tam olarak oldu hata nedir Shellshock lakaplı, ve ne yapar? 23 00:01:20,600 --> 00:01:23,720 24 00:01:23,720 --> 00:01:28,910 Peki, Shellshock olarak da bilinir Bash hata, o patlatır yazılımı. 25 00:01:28,910 --> 00:01:33,230 Hackerlar savunmasız taramak için virüs kullanın Linux ve Unix çalışan sistemler 26 00:01:33,230 --> 00:01:36,300 işletim sistemleri ve daha sonra bunları enfekte. 27 00:01:36,300 --> 00:01:38,730 Bash bir komut satırı kabuğu. 28 00:01:38,730 --> 00:01:43,460 Bu, kullanıcıların sorun başlatmak için komutları sağlar yazılım içinde programları ve özellikleri 29 00:01:43,460 --> 00:01:45,250 metin yazarak. 30 00:01:45,250 --> 00:01:49,980 Genellikle programcılar tarafından kullanılan ve var daha geniş bir dünyaya açık olmamalı, 31 00:01:49,980 --> 00:01:51,590 Shellshock bu değişiklikler olsa. 32 00:01:51,590 --> 00:01:54,160 33 00:01:54,160 --> 00:01:57,910 >> Peki, worringly, bazı analistler bu büyük bir tehdit olabilir uyarmak, 34 00:01:57,910 --> 00:02:01,580 Shellshock tam izin verdiğinden Virüslü bir makinenin kontrol, 35 00:02:01,580 --> 00:02:06,030 Heartbleed ise sadece izin hackerlar bilgisayarlara casus. 36 00:02:06,030 --> 00:02:09,130 O, yani ciddi 10 üzerinden 10 puan olmuştur bir 37 00:02:09,130 --> 00:02:11,900 Ulusal tarafından şiddeti Güvenlik Açığı Veritabanı. 38 00:02:11,900 --> 00:02:15,530 39 00:02:15,530 --> 00:02:20,015 Tüm web sunucularının 2/3 altındadır bazı Mac bilgisayarlar da dahil olmak üzere risk. 40 00:02:20,015 --> 00:02:22,760 41 00:02:22,760 --> 00:02:25,600 Peki, emin olun Şimdi sistemlerini yama. 42 00:02:25,600 --> 00:02:29,330 Bir web sitesi çalışan hosting Herkes etkilenen işletim sistemleri 43 00:02:29,330 --> 00:02:31,800 en kısa sürede harekete geçmesi gerekir. 44 00:02:31,800 --> 00:02:35,390 Bakmak gerekir gelemez herkes onların izleme ve web uygulaması için 45 00:02:35,390 --> 00:02:37,355 güvenlik duvarları, herhangi saldırılar için dışarı bakmak için. 46 00:02:37,355 --> 00:02:39,979 47 00:02:39,979 --> 00:02:41,770 HOPARLÖR 3: Kötü bir şey olabilirdi ki 48 00:02:41,770 --> 00:02:45,080 Biri kod yazmak istiyorum o otomatik gitmek ve tarama istiyorum 49 00:02:45,080 --> 00:02:48,280 İnternet ve etkileyecek Bu bilgisayarların hepsi. 50 00:02:48,280 --> 00:02:50,710 Ve onlar iyi, bunu bir kez, onlar yapabileceği en kötü şey 51 00:02:50,710 --> 00:02:53,300 her şeyi silmek olduğunu, veya aşağı siteleri kapattı. 52 00:02:53,300 --> 00:02:55,360 Bu yüzden hasar görebiliyordu Bu bakış itibaren, 53 00:02:55,360 --> 00:02:58,300 Biz kötü niyetli insanlar var nerede kim sadece hasara neden karar 54 00:02:58,300 --> 00:03:02,534 sistemleri üzmeye veya silerek Böyle dosyalar ve işler. 55 00:03:02,534 --> 00:03:05,200 HOPARLÖR 2: Bazı bu olduğunu söylüyorlar en zor ölçmek için 56 00:03:05,200 --> 00:03:08,080 yıllarda böcek, ve hafta sürebilir, hatta olabilir 57 00:03:08,080 --> 00:03:10,820 ay nihai etkisini belirlemek için. 58 00:03:10,820 --> 00:03:12,180 59 00:03:12,180 --> 00:03:15,560 >> HOPARLÖR 1: Yani bütün, doğrudur ama komik bir şey, neredeyse tüm bir 60 00:03:15,560 --> 00:03:18,330 görüntülerinin sadece gördüm, belki klavyenin dışında, 61 00:03:18,330 --> 00:03:20,930 ile ilgisi yoktur olursa olsun hata. 62 00:03:20,930 --> 00:03:23,960 Sunucular ve teller ve benzeri, bu tür teğet ilgili oluyor, 63 00:03:23,960 --> 00:03:27,410 ama özünde oldukça aslında tanıdık Burada neler oluyor. 64 00:03:27,410 --> 00:03:30,050 Aslında, beni içine gidelim Bizim CS50 cihaz. 65 00:03:30,050 --> 00:03:32,910 Beni go ahead ve maksimize edelim Burada terminal penceresi. 66 00:03:32,910 --> 00:03:36,020 Ve siz, bu kullanıyoruz veya bunun bir sürümünü gömülü 67 00:03:36,020 --> 00:03:39,460 programlar yazmak için gedit olarak, benzeri komutları yazın ve, 68 00:03:39,460 --> 00:03:43,690 ve bu aslında, ve yer alır hafta, Bash, B-A-S-H için yapılmış. 69 00:03:43,690 --> 00:03:46,890 Bu Bourne yine kabuk hangi söyleyerek sadece süslü bir yoludur, 70 00:03:46,890 --> 00:03:50,220 Bu sahip olan bir program etkin istemi yanıp sönen, 71 00:03:50,220 --> 00:03:51,970 Bu bekleyen orada oturur Sizin için giriş. 72 00:03:51,970 --> 00:03:53,920 Ve komut bulunuyor satırı arayüzü hangi aracılığıyla 73 00:03:53,920 --> 00:03:57,650 Siz komutları çalıştırarak edilmiştir ve sonuçta derleme ve daha sonra çalışan 74 00:03:57,650 --> 00:03:58,400 programlar. 75 00:03:58,400 --> 00:04:01,320 >> Ancak Bash zamanda programlama aşağıdaki anlamda dili. 76 00:04:01,320 --> 00:04:05,460 Sen gibi komutlar olduğunu biliyoruz cd ve ls ve ayrıca tınlamak ve diğerleri, 77 00:04:05,460 --> 00:04:09,580 ancak kendi komutları tanımlayabilirsiniz Bash onları uygulayarak. 78 00:04:09,580 --> 00:04:11,420 Şimdi biz gitmiyoruz Büyük detaya 79 00:04:11,420 --> 00:04:16,089 gibi programlama dili Bash, ancak biliyorum, örneğin, şu anda bu, 80 00:04:16,089 --> 00:04:17,607 diye bir komut var "merhaba." 81 00:04:17,607 --> 00:04:19,440 Yani bulunabilir Bu paketlerin biri. 82 00:04:19,440 --> 00:04:20,856 Benim bilgisayarda yüklü değil. 83 00:04:20,856 --> 00:04:21,870 Yöneticinize sorun. 84 00:04:21,870 --> 00:04:26,030 Ama orada isterseniz bir program olmak Bash ya benim isteminde "merhaba" olarak adlandırılan, 85 00:04:26,030 --> 00:04:30,810 Ben aslında bu sözdizimi kullanabilirsiniz Oldukça C. gibi, tamamen aynı değil 86 00:04:30,810 --> 00:04:35,020 ama oldukça benzer fonksiyonu, bazı ayrıntılar eksik olsa. 87 00:04:35,020 --> 00:04:38,090 Hiçbir şey gibi görünüyor, ama şimdi ", merhaba" yazarsanız 88 00:04:38,090 --> 00:04:40,960 aslında bir yazabilirsiniz Program değil, C değil, Java, 89 00:04:40,960 --> 00:04:44,280 başka bir programlama dil, ancak Bash kendisi. 90 00:04:44,280 --> 00:04:47,630 >> Şimdi burada anahtar yazdım olduğunu Ben bu yeni komut vermek istedim isim, 91 00:04:47,630 --> 00:04:50,820 ve parantez de Bu sembolik bir işlev olmak. 92 00:04:50,820 --> 00:04:54,010 Bir kenara, ayrıca eğlenceli yapabilirsiniz ve aslında, hatta Mac OS şeyler, 93 00:04:54,010 --> 00:04:55,620 Bu Terminal adında bir program. 94 00:04:55,620 --> 00:04:58,800 Herkes en yerleşik geliyor Bu odada bir Mac bilgisayar var, 95 00:04:58,800 --> 00:05:03,640 ve Mac benzer şeyler yapabilirsiniz OS, ancak bunun ötesinde daha fazla gidebilir. 96 00:05:03,640 --> 00:05:07,110 Bu, küçük bir teğet olan ama eğlenceli tür. 97 00:05:07,110 --> 00:05:09,715 Bu sabah hatırlatıldı, Bu aracılığıyla düşünürken, 98 00:05:09,715 --> 00:05:13,279 Biraz oyun oynamak için kullanılan CS50 eski TFs biriyle 99 00:05:13,279 --> 00:05:16,570 her zaman o uzak yürümek istiyorum sayede Onun ekran ile yaptığı klavye kilidi, 100 00:05:16,570 --> 00:05:23,611 Ben bir komutu çalıştırmak istiyorum bu-- gibi "merhaba deyin." 101 00:05:23,611 --> 00:05:26,610 Ve şimdi her zaman o geri geldi onun Klavye Ekranı temizledi sonra 102 00:05:26,610 --> 00:05:27,985 ve o, yere otururdu bazı işler yapmak için çalışacağız, 103 00:05:27,985 --> 00:05:29,250 Onun directory-- içeriğini listelemek 104 00:05:29,250 --> 00:05:29,510 >> [SES OYNATMA] 105 00:05:29,510 --> 00:05:30,010 >> Merhaba. 106 00:05:30,010 --> 00:05:31,621 107 00:05:31,621 --> 00:05:32,120 Merhaba. 108 00:05:32,120 --> 00:05:35,030 >> HOPARLÖR 1: Yani, adalet, o "merhaba." aslında değildi 109 00:05:35,030 --> 00:05:36,894 Genellikle bir şey oldu ki- daha yakındır 110 00:05:36,894 --> 00:05:37,560 [SES OYNATMA] 111 00:05:37,560 --> 00:05:37,750 -Beep. 112 00:05:37,750 --> 00:05:39,320 HOPARLÖR 1: ben-- -Öyle bu yüzden onun bilgisayar olur 113 00:05:39,320 --> 00:05:42,170 o aslında ona her zaman yemin Onun klavyenin oturdu. 114 00:05:42,170 --> 00:05:46,265 Ve çok hızlı bir şekilde o anladım Onun ekran kilidi bırakmamaya. 115 00:05:46,265 --> 00:05:48,730 Ama bu tür anlaşılacağı aptal eğlence sizi 116 00:05:48,730 --> 00:05:50,210 Bash gibi bir şey ile olabilir. 117 00:05:50,210 --> 00:05:52,770 Ama biraz daha var ciddi, daha, emin olmak için. 118 00:05:52,770 --> 00:05:57,235 Ve aslında, bu biridir en tehlikeli ve uzun ömürlü böcek 119 00:05:57,235 --> 00:05:58,860 gerçekten küresel dünyayı vurdu. 120 00:05:58,860 --> 00:06:02,060 Bu hata civarında olmuştur Yaklaşık 20 yıldır, 121 00:06:02,060 --> 00:06:05,780 ve sadece bir vurdu olacak göreceli sadeliği ile an. 122 00:06:05,780 --> 00:06:07,990 >> Yani bu bir temsilcisi komutu ki eğer 123 00:06:07,990 --> 00:06:10,448 kelimenin tam anlamıyla şu anda bir Mac sahibi Eğer kapağı açık olduğunda, 124 00:06:10,448 --> 00:06:12,940 Bunu yazarak deneyebilirsiniz Terminal çağrılan program. 125 00:06:12,940 --> 00:06:15,410 Terminal altında Uygulamalar Utilities-- 126 00:06:15,410 --> 00:06:18,790 bir kez, Windows kullanıcıları zorunda değilsiniz Bu özel threat-- dert 127 00:06:18,790 --> 00:06:22,310 ancak Mac'ler ile o sizin yazabilirsiniz Bir pencerenin içine bu ben burada yapacağım gibi, 128 00:06:22,310 --> 00:06:24,210 ve yazdığınız yoksa Bu program içine 129 00:06:24,210 --> 00:06:28,830 Ben şimdi yapacağım gibi, Terminal denilen, Eğer kelimeyi görürseniz "savunmasız" 130 00:06:28,830 --> 00:06:32,200 Bilgisayarınız açığından. 131 00:06:32,200 --> 00:06:33,850 >> Şimdi aslında ne demek? 132 00:06:33,850 --> 00:06:35,870 Ve bu kuşkusuz bir Bazı oldukça çılgın sözdizimi, 133 00:06:35,870 --> 00:06:39,050 ama en azından dışarı çizelim ilginç yönlerinden bazıları. 134 00:06:39,050 --> 00:06:42,567 Yani görünen bazı yazım var en azından C, biraz tanıdık 135 00:06:42,567 --> 00:06:43,950 ve daha genel programlama. 136 00:06:43,950 --> 00:06:47,550 Bazı parantez görmek, noktalı virgül, kaşlı, ve, 137 00:06:47,550 --> 00:06:50,820 ancak bu çıkıyor sarı burada aptal şey 138 00:06:50,820 --> 00:06:53,580 bir fonksiyon esas olan O hiçbir şey yapmaz. 139 00:06:53,580 --> 00:06:57,840 kolon araçları hiçbir şey, ve noktalı virgül hiçbir şey yapmadan durmak anlamına gelir. 140 00:06:57,840 --> 00:07:00,250 Bu iç yüzden kaşlı, aslında 141 00:07:00,250 --> 00:07:02,440 Ben eşit olduğunu Sol, bu oturum 142 00:07:02,440 --> 00:07:05,500 esasen yaratıyor Bir komut veya değişken, 143 00:07:05,500 --> 00:07:09,520 x denir, ve atama Orada kod o sarı biraz. 144 00:07:09,520 --> 00:07:14,040 Yani "yankı gibi bir şey olabilir merhaba "veya" demek bip "falan 145 00:07:14,040 --> 00:07:15,120 Buna benzer. 146 00:07:15,120 --> 00:07:17,780 Ama gözlerinde eğer fark sağa daha dolaşmak, 147 00:07:17,780 --> 00:07:22,150 daha bu hat daha var Bu noktalı virgül sadece sonu. 148 00:07:22,150 --> 00:07:25,160 Daha sonra, "savunmasız Eko" ve Bunun ötesinde daha var. 149 00:07:25,160 --> 00:07:26,530 Başka bir noktalı virgül, bash -c :. 150 00:07:26,530 --> 00:07:28,120 151 00:07:28,120 --> 00:07:34,050 >> Yani uzun lafın kısası, Bu kod satırı 152 00:07:34,050 --> 00:07:36,660 zorlayıcı için yeterli olan bir bilgisayar 153 00:07:36,660 --> 00:07:39,830 bir şey yapıyor savunmasız Bunu yapmak istediğiniz, 154 00:07:39,830 --> 00:07:44,290 Bash burada bir hata var çünkü Bash durdurmak gerekiyordu olsa bile 155 00:07:44,290 --> 00:07:48,980 Komut hakkının okuma hatları Orada sarı metinden sonra, 156 00:07:48,980 --> 00:07:52,520 20-artı yaşındaki hata için, Bash, aslında okuma olmuştur 157 00:07:52,520 --> 00:07:56,780 Bu noktalı virgül ötesinde ve güzel kadara anlattı yapıyor. 158 00:07:56,780 --> 00:07:59,070 >> Peki ima ne bu sonuçta? 159 00:07:59,070 --> 00:08:01,340 Ben sadece "merhaba echo" dedi ya da "savunmasız echo" 160 00:08:01,340 --> 00:08:05,449 ama ne bir şey yapsam Aslında kötü niyetli, rm -rf * gibi, 161 00:08:05,449 --> 00:08:07,240 hangi olmayabilir Daha önce hiç yazdığınız, 162 00:08:07,240 --> 00:08:08,920 ve açıkçası muhtemelen değil çok yakında gerektiğini, 163 00:08:08,920 --> 00:08:10,700 Bir yapabilirsiniz, çünkü onunla hasar çok. 164 00:08:10,700 --> 00:08:11,210 Neden? 165 00:08:11,210 --> 00:08:12,990 rm tabii ne yapar? 166 00:08:12,990 --> 00:08:14,270 Kaldırır. 167 00:08:14,270 --> 00:08:15,930 * Ne demek? 168 00:08:15,930 --> 00:08:16,430 Tüm. 169 00:08:16,430 --> 00:08:18,180 Bu yüzden, bir sözde var: vahşi kart, demek bu yüzden 170 00:08:18,180 --> 00:08:20,410 her şeyi silmek Geçerli dizin. 171 00:08:20,410 --> 00:08:23,379 -r özyinelemeli demek olur, Eğer silme konum ne varsa, hangi anlamına gelir 172 00:08:23,379 --> 00:08:26,420 bir dizin ve orada içinde , diğer dosyalar ve diğer dizinleri olduğunu 173 00:08:26,420 --> 00:08:28,950 yinelemeli orada dalmak ve bütün silin. 174 00:08:28,950 --> 00:08:31,040 Ve -f hepsini kötü. 175 00:08:31,040 --> 00:08:32,580 Herkes -f burada ne anlama geldiğini biliyor musun? 176 00:08:32,580 --> 00:08:33,690 177 00:08:33,690 --> 00:08:34,360 Kuvvet. 178 00:08:34,360 --> 00:08:37,830 Bu yüzden bile, araçları zorlamak Bu kötü bir fikir ise, 179 00:08:37,830 --> 00:08:40,939 Beni sormadan bunu Daha fazla onay için. 180 00:08:40,939 --> 00:08:43,230 Yani, bilirsin, biz de gülmek Bu, ama açıkçası, muhtemelen 181 00:08:43,230 --> 00:08:44,972 Bu birden çok kez yazın Bir gün, gerçeklik, çünkü 182 00:08:44,972 --> 00:08:47,210 o kadar hızlı yolu olduğunu şeyler bir sürü silin. 183 00:08:47,210 --> 00:08:48,590 Ama ben bile biraz hasar yapmış. 184 00:08:48,590 --> 00:08:53,100 >> Ama bir bilgisayar kandırmak için olsaydı Bazı aptal değişken tanımlama içine 185 00:08:53,100 --> 00:08:56,810 veya fonksiyon x denilen, ama sonra yürütme, bilgisayarı kandırma 186 00:08:56,810 --> 00:09:00,030 Bu sınırları ötesinde işlevi, noktalı ötesinde 187 00:09:00,030 --> 00:09:04,430 Eğer gerçekten bir bilgisayar kandırmak olabilir rm gibi bir şey yürütme içine rf 188 00:09:04,430 --> 00:09:07,810 E-posta veya komutu veya Kopyala komutu. 189 00:09:07,810 --> 00:09:11,400 Her şey tam anlamıyla yapabilirsiniz Bilgisayar, bu dosyaları silerek olsun, 190 00:09:11,400 --> 00:09:15,350 dosyaları oluşturma birini spam, uzaktan bazı sunucu saldıran, 191 00:09:15,350 --> 00:09:17,190 Eğer bunu ifade edebilir, eğer Bir komutla, sen 192 00:09:17,190 --> 00:09:19,120 bunu yaparken içine bir bilgisayar kandırmak olabilir. 193 00:09:19,120 --> 00:09:21,510 >> Şimdi bir örnek ne Eğer bu nasıl olabilir? 194 00:09:21,510 --> 00:09:24,300 Eh, bilgisayarların bir çok şey var İnternet çalışan Bash üzerinde. 195 00:09:24,300 --> 00:09:26,390 Bize Mac kullanıcıları Bütün bunlar arasındadır. 196 00:09:26,390 --> 00:09:30,390 Linux sunucu bir sürü arasında yanı sıra onları, ve Unix sunucular. 197 00:09:30,390 --> 00:09:32,630 Windows yeniden alır nispeten kurtulmuş 198 00:09:32,630 --> 00:09:34,590 Eğer yükledim sürece Özel bir yazılım. 199 00:09:34,590 --> 00:09:37,130 Sunucuların Şimdi bir sürü için Örneğin, koşmak, web sunucuları, 200 00:09:37,130 --> 00:09:39,840 ve aslında Linux belki En popüler işletim sistemi 201 00:09:39,840 --> 00:09:43,060 internet üzerinden bilgisayarlarda çalıştırmak için Bu web sayfalarını hizmet vermekteyiz. 202 00:09:43,060 --> 00:09:44,910 Şimdi, daha sonra göreceğimiz gibi dönem içinde 203 00:09:44,910 --> 00:09:48,470 Eğer bir isteği göndermek senin browser-- Chrome, 204 00:09:48,470 --> 00:09:50,790 Internet Explorer, whatever-- uzak bir sunucuya, 205 00:09:50,790 --> 00:09:53,730 çıkıyor ki olsa bile Sadece yazdığınız www.example.com, 206 00:09:53,730 --> 00:09:59,590 Tarayıcınız bir mesaj gönderiyor Bu biraz daha gizemli, bu gibi. 207 00:09:59,590 --> 00:10:01,239 >> Ama garip bir şeyler fark. 208 00:10:01,239 --> 00:10:03,030 İlk iki satır Ben, daha önce hiç görmedim 209 00:10:03,030 --> 00:10:04,904 ama onlar görünmüyor Özellikle tehdit. 210 00:10:04,904 --> 00:10:08,030 Ama çalıntı kadarıyla fark Burada üçüncü hat için. 211 00:10:08,030 --> 00:10:13,390 Kötü bir adam bir mesaj göndermek olsaydı kendi bilgisayarından böyle 212 00:10:13,390 --> 00:10:17,270 Bir savunmasız Mac veya a kadar savunmasız Linux sunucu, 213 00:10:17,270 --> 00:10:21,580 Komik bir şey, o Bash olduğunu bu kadar basit küçük komut istemi, 214 00:10:21,580 --> 00:10:27,450 her yerde ve sık sık aslında yürütmek için kullanılan 215 00:10:27,450 --> 00:10:30,020 Bir içeriği aldığı mesajı. 216 00:10:30,020 --> 00:10:33,490 Ve bu mantık tarafından, yapabilirsiniz Bu nedenle, bir web sunucusu kandırmak, 217 00:10:33,490 --> 00:10:36,370 gibi bir şey göndererek User-Agent, genellikle hangi 218 00:10:36,370 --> 00:10:38,300 söylemek gerekiyordu Tarayıcınızın isim. 219 00:10:38,300 --> 00:10:42,420 User-Agent Krom, User-Agent İnternet Explorer, User-Agent Firefox, bu 220 00:10:42,420 --> 00:10:44,590 sadece tarayıcınızın olduğunu kendini tanımlamanın bir yolu. 221 00:10:44,590 --> 00:10:46,605 Ama eğer kötü bir adam çok akıllıca mm mm, ben, diyor 222 00:10:46,605 --> 00:10:47,930 söylemek için gitmiyorum ne benim tarayıcı, 223 00:10:47,930 --> 00:10:50,888 Ben bunun yerine bu göndermek için gidiyorum Bir rm-rf ile bir şey şifreli görünümlü 224 00:10:50,888 --> 00:10:55,840 * İçinde, tam anlamıyla bir kandırmak olabilir internette savunmasız web sunucusu 225 00:10:55,840 --> 00:10:59,055 tam olarak bu yürütme içine Orada tüm dosyaları silmek için. 226 00:10:59,055 --> 00:11:00,930 Ve açıkçası, o değil bunun bile kötü. 227 00:11:00,930 --> 00:11:01,763 Sen her şeyi yapabilirsin. 228 00:11:01,763 --> 00:11:04,480 Sen başlayabileceğini dağıtılmış Denial of Service saldırısı 229 00:11:04,480 --> 00:11:07,030 Eğer bu mesajı gönderirse Web sunucuları bütün demet 230 00:11:07,030 --> 00:11:10,256 ve sonra hepsini için, alçalma vardı Örneğin, Harvard.edu sunucularında, 231 00:11:10,256 --> 00:11:12,130 ve bang sıralayabilirsiniz Bunların dışında halt 232 00:11:12,130 --> 00:11:15,490 bir ağ trafiği ile aksi halde, bu kötü adam tarafından tetiklenen. 233 00:11:15,490 --> 00:11:18,760 >> Peki, uzun lafın kısası, neredeyse Bir Mac sahibi bu odadaki herkes 234 00:11:18,760 --> 00:11:20,240 Bu açıktır. 235 00:11:20,240 --> 00:11:24,100 Gümüş astar sen olmadıkça olduğunu dizüstü bilgisayarınızda bir web sunucusu çalıştıran, 236 00:11:24,100 --> 00:11:27,780 ve aslında yapılandırılmış sürece o, içine SSH gibi bir şey izin 237 00:11:27,780 --> 00:11:28,670 aslında güvendesin. 238 00:11:28,670 --> 00:11:31,710 Bu savunmasız, ama yok bir dizüstü içine almaya çalışırken, 239 00:11:31,710 --> 00:11:33,290 böylece tür emin olabilirsiniz. 240 00:11:33,290 --> 00:11:36,210 Ancak, Apple yakında olacak Bunun için bir düzeltme güncelleme olacak. 241 00:11:36,210 --> 00:11:39,660 Linux dünyası zaten yayımladı Fedora ve Ubuntu için düzeltmeler bir dizi 242 00:11:39,660 --> 00:11:43,790 ve diğer Linux sürümleri, ve gerçekten Eğer cihazın güncelleştirmeyi 50 çalıştırırsanız, 243 00:11:43,790 --> 00:11:45,930 çok olacaktır bile güncellenmiş ve düzeltilmiş. 244 00:11:45,930 --> 00:11:47,764 Ama bu çok değil sahip Gerçekten, savunmasız oldu 245 00:11:47,764 --> 00:11:49,804 Eğer ettik sürece çünkü cihazla birlikte tinkered 246 00:11:49,804 --> 00:11:52,770 ve kamuya dizüstü yaptı değil internet, erişilebilir 247 00:11:52,770 --> 00:11:54,910 Varsayılan olarak, sen var Aslında çünkü iyi olmuştur 248 00:11:54,910 --> 00:11:56,890 güvenlik duvarı ve diğer teknikleri. 249 00:11:56,890 --> 00:12:01,000 >> Ama bir hata uç bir örnek var biz kelimenin tam anlamıyla 20 için yaşadım 250 00:12:01,000 --> 00:12:04,050 yaş, ve kim birisi varsa bilir Tüm bu zaman hakkında bilinir? 251 00:12:04,050 --> 00:12:06,300 Ve aslında, bu biridir temel sorunlar 252 00:12:06,300 --> 00:12:08,690 Biz daha sonra göreceğiz ki güvenliği hakkında dönem, 253 00:12:08,690 --> 00:12:13,020 Bu, tıpkı gerçek dünyada gibi İyi adamlar dezavantaj vardır. 254 00:12:13,020 --> 00:12:16,500 Kötü adamlar tutmak için, biz var Her kapı kilitli olduğundan emin olun, 255 00:12:16,500 --> 00:12:20,340 Her pencere, güvenli olduğunu Bir ev girdiği her nokta 256 00:12:20,340 --> 00:12:21,980 Kötü adamlar dışarıda tutmak için güvenli olduğunu. 257 00:12:21,980 --> 00:12:26,870 Ama ne kötü adam var aslında ev uzlaşma yapmak 258 00:12:26,870 --> 00:12:28,200 ve sizden çalmak? 259 00:12:28,200 --> 00:12:32,574 O ya da o sadece kilidi bulmak zorundadır Kapı, bir kırık pencere, ya da bir şey 260 00:12:32,574 --> 00:12:35,240 bu doğrultuda, ve bu kadar Bilgisayar güvenliği aynı şey. 261 00:12:35,240 --> 00:12:37,660 Biz milyonlarca yazabilirsiniz Programlama kod satırları 262 00:12:37,660 --> 00:12:40,570 ve yüzlerce veya binlerce harcamak doğru almaya çalışırken saat, 263 00:12:40,570 --> 00:12:43,370 ama eğer sadece biri yapmak doğruluğu içinde hata, 264 00:12:43,370 --> 00:12:47,030 Eğer tüm sistemi koymak ve Gerçekten de, bu durumda, tüm internet 265 00:12:47,030 --> 00:12:48,660 ve risk dünya. 266 00:12:48,660 --> 00:12:51,950 >> Daha fazla bilgi edinmek isterseniz Yani Bu konuda, burada bu URL'ye gidin. 267 00:12:51,950 --> 00:12:54,450 Eylem için gerek yok Bu gece sen olmadıkça 268 00:12:54,450 --> 00:12:57,116 olanlar daha rahat arasında Kendi web çalışan edilmiştir 269 00:12:57,116 --> 00:12:59,810 Sunucu, hangi gerektiğini durumda, Aslında, yazılımınızı güncelleyin. 270 00:12:59,810 --> 00:13:03,244 >> Ve bu da başlığıdır Bir konuşma, ve şimdi bir kağıt, 271 00:13:03,244 --> 00:13:05,410 biz bağlantılı ettik Bugün için dersin web sitesini. 272 00:13:05,410 --> 00:13:07,600 Bir adam oldu adlı Ken Thompson, kim 273 00:13:07,600 --> 00:13:10,120 Bir çok ünlü kabul edildi bilgisayar bilimi ödül, 274 00:13:10,120 --> 00:13:13,495 ve o bazı yıllar bu konuşma yaptı önce, aslında bu aynı konu üzerine. 275 00:13:13,495 --> 00:13:18,250 276 00:13:18,250 --> 00:13:20,520 Soru sorma millet, sen-meli gerçekten 277 00:13:20,520 --> 00:13:23,480 Güven, sonuçta, Yazılım size verilen oldum? 278 00:13:23,480 --> 00:13:26,100 Örneğin, hepimiz var programları yazıyor, 279 00:13:26,100 --> 00:13:27,820 ve biz derleme oldum Clang ile onları. 280 00:13:27,820 --> 00:13:31,830 Ve bilgiye, yazdığınız CS50 için herhangi bir program var 281 00:13:31,830 --> 00:13:35,310 bir tür arka kapı, bir yol var Kötü bir adam olduğunu, programı çalışıyorsa, 282 00:13:35,310 --> 00:13:37,410 Bilgisayarınızda ele verebilir? 283 00:13:37,410 --> 00:13:38,310 Muhtemelen değil, değil mi? 284 00:13:38,310 --> 00:13:40,180 Mario ve açgözlü ve Kredi. 285 00:13:40,180 --> 00:13:41,680 Bunların hepsi oldukça küçük programlardır. 286 00:13:41,680 --> 00:13:43,910 Oldukça olması gerekirdi kötü aslında eğer 287 00:13:43,910 --> 00:13:47,310 tüm bilgisayar savunmasız hale kod 10 veya 20 satırları yazdıktan sonra, 288 00:13:47,310 --> 00:13:49,690 ya da en azından habersiz güvenlik uygulamalarını. 289 00:13:49,690 --> 00:13:52,023 Şimdi ben, o hınzırca demek ama bugün gördüğümüz için gidiyoruz 290 00:13:52,023 --> 00:13:54,600 ve bu hafta aslında var Gerçekten, gerçekten kolay 291 00:13:54,600 --> 00:13:57,980 kötü ve hatta yapmak kısa programlar savunmasız. 292 00:13:57,980 --> 00:14:02,880 >> Ama şimdi, en azından, fark sorusu burada soruluyor ki 293 00:14:02,880 --> 00:14:04,850 Bir derleyici Clang hakkında. 294 00:14:04,850 --> 00:14:08,360 Neden clang güvenen edilmiştir Son iki ya da üç hafta boyunca? 295 00:14:08,360 --> 00:14:12,650 Kim kim clang yazdı söylemek var Orada bir "eğer" şartı yoktu 296 00:14:12,650 --> 00:14:17,680 Bu aslında bazı sıfırları enjekte ve her programa olanlar derler 297 00:14:17,680 --> 00:14:21,180 Bu izin istiyorum onu ​​ya da onu erişim Bilgisayarınız ne zaman sen uyurken 298 00:14:21,180 --> 00:14:23,580 ve dizüstü kapağı açık ve bilgisayarınızda çalışan? 299 00:14:23,580 --> 00:14:24,080 Doğru? 300 00:14:24,080 --> 00:14:28,350 Biz onur sistemi hakkının bu tür var şimdi Clang okunaklı olduğunu güven nerede. 301 00:14:28,350 --> 00:14:30,000 Sen Cihaz okunaklı olduğunu güveniyorum. 302 00:14:30,000 --> 00:14:34,430 Sen güvendiğiniz tam anlamıyla her program Mac veya PC üzerinde güvenilir olduğunu. 303 00:14:34,430 --> 00:14:37,510 Ve bu basit hata anlaşılacağı gibi, kötü niyetli olmasa bile, 304 00:14:37,510 --> 00:14:40,580 kesinlikle değil durumda olması muhtemeldir. 305 00:14:40,580 --> 00:14:42,350 >> Yani cehennem gibi korkuyor edilmelidir. 306 00:14:42,350 --> 00:14:45,560 Açıkçası, basit var Bu diğer çözüm 307 00:14:45,560 --> 00:14:48,185 toplumsal farkındalık bir tür daha artan karmaşıklık 308 00:14:48,185 --> 00:14:50,310 biz üstüne inşa ediyoruz ki Bizim bilgisayar sistemlerinin, 309 00:14:50,310 --> 00:14:53,740 ve nasıl giderek savunmasız biz çok iyi olabilir. 310 00:14:53,740 --> 00:14:55,570 >> Bu Koparma dedi Şimdi birlikte. 311 00:14:55,570 --> 00:14:59,889 Yani Breakout olan sorun üç set, ve Koparma yesteryear bir oyun 312 00:14:59,889 --> 00:15:02,180 Hatırlayacağınız olabilir, ama Bizim için sorun, üç set 313 00:15:02,180 --> 00:15:04,450 bize almasına izin veriyor şeyler bir çentik yedeklemek 314 00:15:04,450 --> 00:15:08,880 Biz program yazarken, böylece Hatta böyle bir Terminal penceresinde, 315 00:15:08,880 --> 00:15:14,670 biz aslında, sonuçta, çalıştırabilirsiniz grafiksel programlar değil 316 00:15:14,670 --> 00:15:17,800 benzemeyen biz Scratch içinde erişim. 317 00:15:17,800 --> 00:15:20,910 Yani bu personel en olduğunu Koparma uygulanması, 318 00:15:20,910 --> 00:15:23,930 hangi sadece bu tuğla kırma olduğunu Oyun, geri raket taşımak olduğunu 319 00:15:23,930 --> 00:15:27,590 ileri ve topa vurdu üst kadar bu renkli tuğla karşı. 320 00:15:27,590 --> 00:15:30,020 Yani bu bizi getiriyor tür geri nerede 321 00:15:30,020 --> 00:15:33,180 biz çok hızlı bir şekilde başardık Sıfırdan ile ve hemen C, 322 00:15:33,180 --> 00:15:35,800 Kendi uygulama grafiksel kullanıcı arayüzleri. 323 00:15:35,800 --> 00:15:38,960 >> Ama daha fazla, bu Sorun seti ilk temsil 324 00:15:38,960 --> 00:15:41,000 hangi biz veriyoruz Eğer bir kod demet. 325 00:15:41,000 --> 00:15:43,940 Ve aslında, ben açık getirmek Bu dikkat, özellikle çünkü 326 00:15:43,940 --> 00:15:47,090 Bu daha az rahat için, bu Sorun, en azından ilk bakışta, set 327 00:15:47,090 --> 00:15:49,170 gibi hissediyorum gidiyor Biz bir çentik yukarı aldım. 328 00:15:49,170 --> 00:15:51,540 Biz seni verdim Çünkü Arama bazıları için 329 00:15:51,540 --> 00:15:54,930 ve pset problemleri sıralama Biz yazdı kod bir demet, 330 00:15:54,930 --> 00:15:56,680 ve yorumların bir çift Bu, "yapmak" demek 331 00:15:56,680 --> 00:15:58,221 nereye boşlukları doldurmak zorunda. 332 00:15:58,221 --> 00:16:00,020 Yani çok korkutucu değil, ama ilk defa 333 00:16:00,020 --> 00:16:03,370 size kod teslim ediyoruz size gereken İlk, okumak, anlamak, ve sonra eklemek 334 00:16:03,370 --> 00:16:04,290 ve tamamlamak. 335 00:16:04,290 --> 00:16:05,940 >> Ve bu durumda ara ile, biz aynı şeyi gidiyoruz 336 00:16:05,940 --> 00:16:08,740 Size bir kaç düzine daha fazla satır vererek kod, açıkçası, size o 337 00:16:08,740 --> 00:16:11,490 çerçevenin bir sürü için oyun ama kısa durdurmak 338 00:16:11,490 --> 00:16:14,304 tuğla uygulama ve top ve raket, 339 00:16:14,304 --> 00:16:15,970 ama biz diğer bazı özellikleri uygulamak yapmak. 340 00:16:15,970 --> 00:16:18,280 Ve hatta ilk bakışta bu, yine, Özellikle, daha az rahat eğer 341 00:16:18,280 --> 00:16:21,480 Özellikle zor görünebilir ve Eğer çok yeni fonksiyonlar olduğunu düşünüyorum 342 00:16:21,480 --> 00:16:24,070 Fikrinizi sarmak gerekir etrafında, ve bu doğrudur. 343 00:16:24,070 --> 00:16:26,281 Ama bu, akılda tutmak Oldukça Scratch gibi. 344 00:16:26,281 --> 00:16:28,780 Oran Eğer tüm kullanmak vermedi vardır Scratch bulmaca adettir. 345 00:16:28,780 --> 00:16:31,120 Oran Eğer sarmak için umursamadı vardır Bunların hepsi etrafında zihin 346 00:16:31,120 --> 00:16:33,617 tüm aldı çünkü bir hızlı bir bakış, oh, anlamak 347 00:16:33,617 --> 00:16:35,450 ben ne yapabilirim Bu bulmaca parça ile. 348 00:16:35,450 --> 00:16:38,260 Ve gerçekten de, sorunun set 3 spec, sizi işaret edeceğiz 349 00:16:38,260 --> 00:16:41,370 belgelerine bu olacak Bazı yeni fonksiyonlar size tanıtmak, 350 00:16:41,370 --> 00:16:43,570 ve nihai olarak programlama Kullandığınız oluşturur. 351 00:16:43,570 --> 00:16:47,610 Döngüler Koşullar, değişkenler ve fonksiyonlar 352 00:16:47,610 --> 00:16:50,720 aynı olacaktır ne bugüne kadar gördük. 353 00:16:50,720 --> 00:16:53,560 >> Peki gerçekten ne vereceğim Bazı örnek kod olduğunu 354 00:16:53,560 --> 00:16:56,110 Eğer bir pencere oluşturmanızı sağlar Bu, bu farklı görünüyor değil 355 00:16:56,110 --> 00:16:59,540 ve sonuçta çevirmek Oldukça böyle bir şey. 356 00:16:59,540 --> 00:17:02,250 Yani CS50 yararlanmak, , ofis saatleri ve daha fazla tartışmak 357 00:17:02,250 --> 00:17:05,290 ve aslında bu konfor almak Eğer yazmak zorunda kod miktarı 358 00:17:05,290 --> 00:17:06,760 Aslında tüm bu kadar. 359 00:17:06,760 --> 00:17:10,359 İlk sorun, sadece acclimate olan Kendinizi bazı kod biz yazdık. 360 00:17:10,359 --> 00:17:11,450 361 00:17:11,450 --> 00:17:15,810 >> Pset3 üzerinde herhangi bir soru, Shellshock veya başka? 362 00:17:15,810 --> 00:17:19,226 >> İZLEYİCİ: Bu gibi görünüyordu Breakout ile geçiyor 363 00:17:19,226 --> 00:17:22,154 Kod neredeyse olduğunu bir nesne-yönelimli, 364 00:17:22,154 --> 00:17:24,675 ama ben C Bir düşündüm nesne tabanlı program. 365 00:17:24,675 --> 00:17:26,050 HOPARLÖR 1: mükemmel bir soru. 366 00:17:26,050 --> 00:17:28,258 Yani aracılığıyla bakarak Dağıtım kodu, kod 367 00:17:28,258 --> 00:17:30,180 Biz pset3 için yazdı Bu tanıdık için, o 368 00:17:30,180 --> 00:17:32,230 Bir var gibi görünüyor küçük nesne yönelimli. 369 00:17:32,230 --> 00:17:33,800 Kısa cevap o, olduğunu. 370 00:17:33,800 --> 00:17:38,130 Bu sizin nasıl bir yaklaşım var kullanarak nesne yönelimli kod yapabilir 371 00:17:38,130 --> 00:17:41,850 C gibi bir dil, ama o Hala sonuçta usul. 372 00:17:41,850 --> 00:17:44,900 Içinde hiçbir yöntem bulunmamaktadır değişkenler, sizin de göreceğiniz gibi. 373 00:17:44,900 --> 00:17:46,180 Ama bu anımsatır. 374 00:17:46,180 --> 00:17:48,780 Ve biz yine bu özelliği göreceksiniz PHP ve JavaScript olsun 375 00:17:48,780 --> 00:17:49,946 Sonunda dönem doğru. 376 00:17:49,946 --> 00:17:53,667 Ama şimdi, olarak düşünmek ne bir ipucu gelmek. 377 00:17:53,667 --> 00:17:54,250 İyi bir soru. 378 00:17:54,250 --> 00:17:56,051 379 00:17:56,051 --> 00:17:56,550 Tamam. 380 00:17:56,550 --> 00:17:59,730 Yani sıralama oldu birleştirme nasıl Sol şeyler son kez. 381 00:17:59,730 --> 00:18:03,250 Ve sıralama serin olduğunu birleştirme duygusu o kadar daha hızlı olduğunu, 382 00:18:03,250 --> 00:18:07,100 en azından üstünkörü deneylerine dayanmaktadır Biz balonu, diyelim ki, daha geçen hafta yaptım 383 00:18:07,100 --> 00:18:08,710 sıralama, seçme sıralama, ekleme sıralama. 384 00:18:08,710 --> 00:18:11,780 Ve ne çok temiz sadece bir nasıl özlü ve temiz 385 00:18:11,780 --> 00:18:12,810 bunu ifade edebilir. 386 00:18:12,810 --> 00:18:15,840 Ve biz bir üst ne dedin birleştirme çalışan zamanında bağlı 387 00:18:15,840 --> 00:18:16,340 sıralamak? 388 00:18:16,340 --> 00:18:17,633 389 00:18:17,633 --> 00:18:18,495 Evet? 390 00:18:18,495 --> 00:18:19,360 >> İZLEYİCİ: n log n? 391 00:18:19,360 --> 00:18:20,819 >> HOPARLÖR 1: n sağ, log n. n log. 392 00:18:20,819 --> 00:18:23,776 Ve biz ne o geri geleceğim Gerçekten demektir ya da nereden geldiğini, 393 00:18:23,776 --> 00:18:25,570 ancak bu daha iyi ne çalışma süresi daha 394 00:18:25,570 --> 00:18:28,440 Biz balonu için gördüm Seçim ve yerleştirme sıralama? 395 00:18:28,440 --> 00:18:30,610 Yani n kare. n kare Bu daha büyük 396 00:18:30,610 --> 00:18:34,650 ve oldukça belirgin olmasa bile, bu günlük n n daha küçük olduğunu biliyorum, 397 00:18:34,650 --> 00:18:36,910 böylece n defa yaparsanız n daha küçük bir şey, 398 00:18:36,910 --> 00:18:38,680 o n kare daha az olacak. 399 00:18:38,680 --> 00:18:40,130 Orada sezgi bir parçasıdır. 400 00:18:40,130 --> 00:18:42,190 Ama biz bunun için bir bedel ödedi. 401 00:18:42,190 --> 00:18:47,000 Daha hızlı, ama bir tema başladı Geçen hafta ortaya bu takas oldu. 402 00:18:47,000 --> 00:18:49,804 Ben daha iyi performans aldım Zaman bilge, ama ne 403 00:18:49,804 --> 00:18:52,470 Ben diğer harcamak zorunda mı El, sırayla başarmak için? 404 00:18:52,470 --> 00:18:53,591 >> İZLEYİCİ: Bellek. 405 00:18:53,591 --> 00:18:54,465 HOPARLÖR 1: Tekrar söyle? 406 00:18:54,465 --> 00:18:55,173 HEDEF KİTLE: Bellek. 407 00:18:55,173 --> 00:18:57,040 HOPARLÖR 1: Bellek veya alan daha genel. 408 00:18:57,040 --> 00:18:59,040 Ve süper değildi Bizim insanlar ile belirgin, 409 00:18:59,040 --> 00:19:02,240 ama bizim gönüllüler hatırlamak ileri adım ve adım edildi 410 00:19:02,240 --> 00:19:04,780 sanki geri bir dizi var sanki burada, ve orada 411 00:19:04,780 --> 00:19:07,130 Burada bir ikinci dizi Onlar, kullanabilirsiniz çünkü biz 412 00:19:07,130 --> 00:19:09,080 gerekli yere bu millet birleştirmek için. 413 00:19:09,080 --> 00:19:11,480 Biz sadece bir yerde onları takas olabilir. 414 00:19:11,480 --> 00:19:13,800 Yani sıralama kaldıraç birleştirme daha fazla yer, hangi 415 00:19:13,800 --> 00:19:15,620 biz gerek yoktu diğer algoritmalar, 416 00:19:15,620 --> 00:19:17,410 ama ters çok daha hızlı olmasıdır. 417 00:19:17,410 --> 00:19:20,780 Ve açıkçası, gerçek dünya uzayda Bu days-- RAM, sabit disk space-- 418 00:19:20,780 --> 00:19:25,030 nispeten ucuz olan ve bu nedenle de bu ille kötü bir şey. 419 00:19:25,030 --> 00:19:28,320 >> Peki, en hızlı göz biraz olsun daha yöntemli, biz ne de 420 00:19:28,320 --> 00:19:30,220 ve neden biz n log n söyledi. 421 00:19:30,220 --> 00:19:33,260 Yani burada sekiz numaraları ve Sekiz gönüllü geçen zaman vardı. 422 00:19:33,260 --> 00:19:35,718 Ve Birleştirme ilk şey Sıralama yapmak için bize ne olduğunu söyledi? 423 00:19:35,718 --> 00:19:37,010 424 00:19:37,010 --> 00:19:38,010 HEDEF KİTLE: iki bölün. 425 00:19:38,010 --> 00:19:38,663 HOPARLÖR 1: Tekrar söyle? 426 00:19:38,663 --> 00:19:39,650 HEDEF KİTLE: iki bölün. 427 00:19:39,650 --> 00:19:40,610 HOPARLÖR 1: iki Böl, doğru. 428 00:19:40,610 --> 00:19:42,818 Bu çok olduğunu hatırlatan bölünmenin telefon rehberi, 429 00:19:42,818 --> 00:19:44,220 ve daha genel fethetmek. 430 00:19:44,220 --> 00:19:45,640 Bu yüzden sol yarısında baktı. 431 00:19:45,640 --> 00:19:48,700 Ve biz sıralama, dedi sonra bir kez elemanların sol yarısı, 432 00:19:48,700 --> 00:19:49,690 Önümüzdeki ne dedin? 433 00:19:49,690 --> 00:19:51,210 434 00:19:51,210 --> 00:19:54,860 Sol sol yarısını sırala Yarım, hangi bize izin 435 00:19:54,860 --> 00:19:57,570 iki bölme sonra, dört ve iki odaklanmak. 436 00:19:57,570 --> 00:20:01,280 >> Nasıl şimdi, bir listeyi sıralamak yapmak sarı, Sıralama Birleştirme kullanarak boyutu, iki, bir? 437 00:20:01,280 --> 00:20:02,330 438 00:20:02,330 --> 00:20:04,580 Peki ikiye bölün, ve sol yarısını sıralamak. 439 00:20:04,580 --> 00:20:07,100 Ve bu nerede şeyler oldu Biraz aptal kısaca var. 440 00:20:07,100 --> 00:20:10,720 Eğer bu bir listesini sıralamak nasıl boyut, bir, burada, bu sayı, dört gibi mi? 441 00:20:10,720 --> 00:20:12,330 442 00:20:12,330 --> 00:20:13,210 Bu sıralanır var. 443 00:20:13,210 --> 00:20:14,200 Sen bitti. 444 00:20:14,200 --> 00:20:17,300 >> Ama sonra bir listesini sıralamak nasıl boyutu iki numara var mi? 445 00:20:17,300 --> 00:20:21,640 Peki, ama şimdi ne aynı şey oldu Üçüncü ve Birleştirme Sırala önemli bir adım? 446 00:20:21,640 --> 00:20:24,020 Sen sol birleştirmek zorunda Yarım ve sağ yarısı. 447 00:20:24,020 --> 00:20:26,580 Biz yaptığımız Ve bir kez, biz baktı dört, biz iki baktı. 448 00:20:26,580 --> 00:20:28,750 Biz, bütün hak verdi Açıkçası iki önce gelir 449 00:20:28,750 --> 00:20:31,840 bu yüzden biz iki koymak onun ardından dört bir yer. 450 00:20:31,840 --> 00:20:35,010 Ve şimdi sen tür sarmak zorunda, ve bu özelliğinin tür 451 00:20:35,010 --> 00:20:37,570 Birleştirme gibi bir algoritma Sıralama, bellekte geri sarma. 452 00:20:37,570 --> 00:20:40,240 Hikayenin sonraki satır neydi? 453 00:20:40,240 --> 00:20:41,780 Bir sonraki ne odaklanarak olmalıdır? 454 00:20:41,780 --> 00:20:43,110 455 00:20:43,110 --> 00:20:47,350 sol sağ yarısı Altı ve sekiz buçuk. 456 00:20:47,350 --> 00:20:50,320 >> Bu yüzden bana bu adım adım izin çok fazla Konuyu fazla uzatmadan olmadan. 457 00:20:50,320 --> 00:20:53,330 Altı ve sekiz, sonra altı olduğunu sıralanır, sekiz sıralanır. 458 00:20:53,330 --> 00:20:57,190 Bu gibi onları bir araya Birleştirme, ve şimdi bir sonraki büyük adım 459 00:20:57,190 --> 00:21:00,990 Tabii ki, sağ yarısı tür Bu algoritmanın ilk adımı. 460 00:21:00,990 --> 00:21:02,870 Yani biz bir, üç, yedi, beş odaklanmak. 461 00:21:02,870 --> 00:21:04,540 Daha sonra sol yarısında odaklanmak. 462 00:21:04,540 --> 00:21:09,400 Bu sol yarısı, sağ yarısı Bu, daha sonra bir ve üç birleştirme. 463 00:21:09,400 --> 00:21:13,100 Sonra sağ yarısı, daha sonra yarım bıraktı Bunun, sonra bunun sağ yarısı. 464 00:21:13,100 --> 00:21:15,985 Adım kalır ne şimdi birleştirmek, ve? 465 00:21:15,985 --> 00:21:18,040 466 00:21:18,040 --> 00:21:22,460 Büyük sol yarısı ve büyük Birleştirme Sağ yarım, yani bir, oraya gider 467 00:21:22,460 --> 00:21:27,330 daha sonra, daha sonra, iki, üç, dört, Beş, altı ardından, daha sonra yedi, ardından sekiz. 468 00:21:27,330 --> 00:21:31,990 >> Peki şimdi neden bu sonuçta açıklayıcıdır, Özellikle eğer n ve logaritma daha 469 00:21:31,990 --> 00:21:35,487 genellikle oldukça, seni kaçış en azından son bellekte? 470 00:21:35,487 --> 00:21:37,070 Peki, bu şeyin yüksekliğini fark. 471 00:21:37,070 --> 00:21:41,230 Biz sekiz unsurları vardı ve biz iki tarafından, iki tarafından, ikiye bölünmüş bunu. 472 00:21:41,230 --> 00:21:44,590 Yani taban oturum sekiz iki Bize üç veriyor. 473 00:21:44,590 --> 00:21:45,640 474 00:21:45,640 --> 00:21:48,540 Ve bu bana güven varsa Bu biraz puslu. 475 00:21:48,540 --> 00:21:54,710 Ancak, sekiz iki, üç taban log bu yüzden birleşmesi üç kat yaptım. 476 00:21:54,710 --> 00:21:57,170 Ve biz birleşti zaman elemanları, kaç elemanları 477 00:21:57,170 --> 00:21:58,950 Biz bu satırların her biri üzerinde bakmak mı? 478 00:21:58,950 --> 00:22:00,212 479 00:22:00,212 --> 00:22:01,437 N toplam, değil mi? 480 00:22:01,437 --> 00:22:04,020 Üst satır birleştirme Çünkü, Biz parça parça yaptım bile, 481 00:22:04,020 --> 00:22:05,990 sonuçta kez her numarayı dokundu. 482 00:22:05,990 --> 00:22:09,054 Ve ikinci satırda için boyut, iki bu listeleri birleştirme, 483 00:22:09,054 --> 00:22:10,470 kez her elemanı dokunmak kaldı. 484 00:22:10,470 --> 00:22:12,690 Ve sonra burada gerçekten açıkça, son satırda, 485 00:22:12,690 --> 00:22:15,430 biz onlardan her dokunmak zorunda bir kez, ama yalnızca bir kez elemanları, 486 00:22:15,430 --> 00:22:18,400 yani burada bizim n log n, daha sonra, yalan. 487 00:22:18,400 --> 00:22:21,780 >> Ve şimdi sadece işler biraz yapmak için Sadece bir an için resmi daha, eğer 488 00:22:21,780 --> 00:22:24,260 Şimdi bu analiz edildi daha yüksek seviyede bir tür olarak 489 00:22:24,260 --> 00:22:28,340 ve ne kadar iyi, karar deneyin Eğer ifade hakkında gitmek olabilir 490 00:22:28,340 --> 00:22:31,780 Bu algoritma çalışma süresi Sadece ona değil, bakarak 491 00:22:31,780 --> 00:22:33,590 Bir yapmacık bir örnek kullanarak? 492 00:22:33,590 --> 00:22:36,590 Peki, ne kadar zaman bir derdi sarı bu alacağını gibi adım, 493 00:22:36,590 --> 00:22:37,173 n <2 dönüş olur? 494 00:22:37,173 --> 00:22:38,840 495 00:22:38,840 --> 00:22:39,830 Bu ne büyük bir Ey değil mi? 496 00:22:39,830 --> 00:22:41,450 497 00:22:41,450 --> 00:22:44,540 Yani, bir, bu yüzden bir adım görüyorum belki iki adımlar eğer çünkü 498 00:22:44,540 --> 00:22:47,110 ve daha sonra geri dönmek, ama var zaman sabiti, değil mi? 499 00:22:47,110 --> 00:22:49,960 Bu yüzden O (1), ve bu dedi Ben bu ifade edeceğiz nasıl. 500 00:22:49,960 --> 00:22:51,480 T, sadece zaman çalışıyor olması. 501 00:22:51,480 --> 00:22:54,150 N, girdi büyüklüğü böylece T (n), sadece bir fantezi yol 502 00:22:54,150 --> 00:22:56,330 çalışan söyleyerek n büyüklüğünde zaman verilen giriş 503 00:22:56,330 --> 00:23:00,220 sipariş üzerine olacak zaman sabitinin, O (1). 504 00:23:00,220 --> 00:23:01,970 >> Ama aksi takdirde, bu konuda ne? 505 00:23:01,970 --> 00:23:05,660 Eğer ifade ediyorum nasıl bu sarı çizginin çalışma süresi? 506 00:23:05,660 --> 00:23:06,250 Ne T? 507 00:23:06,250 --> 00:23:09,440 508 00:23:09,440 --> 00:23:12,665 Sen tür burada hile ve döngüsel soruma cevap. 509 00:23:12,665 --> 00:23:14,770 510 00:23:14,770 --> 00:23:17,900 Yani çalışma süresi eğer biz sadece söylemek Genel T (n). 511 00:23:17,900 --> 00:23:18,950 512 00:23:18,950 --> 00:23:22,490 Ve şimdi ne tür burada punting konum ve , iyi, sadece sol yarısını sıralamak, diyerek 513 00:23:22,490 --> 00:23:23,920 ve sonra sağ yarısını sıralamak. 514 00:23:23,920 --> 00:23:27,520 Sembolik temsil edebilir nasıl bu sarı çizginin çalışma süresi? 515 00:23:27,520 --> 00:23:28,020 Ne T? 516 00:23:28,020 --> 00:23:29,360 Giriş büyüklüğü nedir? 517 00:23:29,360 --> 00:23:30,510 518 00:23:30,510 --> 00:23:31,057 üzerinde iki n. 519 00:23:31,057 --> 00:23:32,140 Neden sadece söylemek değil mi? 520 00:23:32,140 --> 00:23:36,449 Sonra bu bir, T (n / 2) ve daha sonra Yine, ben iki sıralı yarılarını birleştirme durumunda, 521 00:23:36,449 --> 00:23:38,615 kaç elemanları Ben gidiyorum Toplam dokunmak zorunda? 522 00:23:38,615 --> 00:23:39,780 523 00:23:39,780 --> 00:23:40,320 n. 524 00:23:40,320 --> 00:23:42,790 Yani, bu ifade edebilir Sadece, bir tür fantezi olarak 525 00:23:42,790 --> 00:23:44,430 genel çalışma süresi olarak. 526 00:23:44,430 --> 00:23:51,140 T (n), T (n / 2) sadece çalışan zamanı artı T (n / 2), yarım ve sağ yarım bıraktı 527 00:23:51,140 --> 00:23:55,360 ayrıca, muhtemelen N adım O (n), ama belki, ben iki parmağınızı kullanarak ediyorsam, 528 00:23:55,360 --> 00:23:57,960 birçok iki kat daha adımlar, ama doğrusal değil. 529 00:23:57,960 --> 00:24:00,440 Bu adımların bazılarını sayı Bu, bir n faktördür 530 00:24:00,440 --> 00:24:02,270 Bu yüzden biz bu gibi bu ifade olabilir. 531 00:24:02,270 --> 00:24:05,550 Ve bu biz punt edeceğiz nerede şimdi geri lise matematik ders kitabı 532 00:24:05,550 --> 00:24:10,290 biz sonuçta nüks şeyiz biter, bu eşit, n kere log n 533 00:24:10,290 --> 00:24:12,530 aslında dışarı yaparsanız matematik daha resmen. 534 00:24:12,530 --> 00:24:13,950 >> Yani sadece iki bakış açısı var. 535 00:24:13,950 --> 00:24:17,500 Bir Tek sayısal temsili bir örnek kodlanmış 536 00:24:17,500 --> 00:24:21,140 Sekiz sayı ve bir daha kullanma Biz orada var nasıl genel bakış. 537 00:24:21,140 --> 00:24:25,670 Ama burada ne gerçekten ilginç yine, bisiklet bu kavramıdır. 538 00:24:25,670 --> 00:24:26,900 Ben döngüler için kullanarak değilim. 539 00:24:26,900 --> 00:24:29,860 Ben tür tanımlama ediyorum kendisi açısından bir şey, 540 00:24:29,860 --> 00:24:31,950 sadece bu ile matematiksel fonksiyon, 541 00:24:31,950 --> 00:24:34,860 ama aynı zamanda bu sahte kod açısından. 542 00:24:34,860 --> 00:24:38,260 Bu sahte kod özyinelemelidir Çizgilerinin bu iki 543 00:24:38,260 --> 00:24:42,310 aslında bunu anlatıyor gitmek küçük çözmek için kendisini kullanmak 544 00:24:42,310 --> 00:24:45,400 daha küçük bir sorun ve daha sonra tekrar tekrar 545 00:24:45,400 --> 00:24:48,820 ve yine kadar biz eritmek onu Bu sözde temel duruma düştü. 546 00:24:48,820 --> 00:24:52,810 >> Yani aslında daha çekici çizelim take-away bu izler gibi. 547 00:24:52,810 --> 00:24:58,420 Beni gedit gitmek ve bir atalım Bugünün kaynak kodunun bazı bakmak, 548 00:24:58,420 --> 00:24:59,930 Bu örnek, burada, özellikle de. 549 00:24:59,930 --> 00:25:03,709 Görünüşe göre ekler Sigma 0, sayılar n boyunca bir. 550 00:25:03,709 --> 00:25:05,750 Peki tanıdık görelim Burada ve yabancı. 551 00:25:05,750 --> 00:25:08,690 Önce biz bir çift var içerir, bu nedenle yeni bir şey yok. 552 00:25:08,690 --> 00:25:09,190 Prototip. 553 00:25:09,190 --> 00:25:11,370 Ben biraz puslu değilim bu, birkaç gün sonra, 554 00:25:11,370 --> 00:25:13,790 ama biz ne dedin Bir fonksiyonun prototipi? 555 00:25:13,790 --> 00:25:15,099 556 00:25:15,099 --> 00:25:16,015 HEDEF KİTLE: [duyulamaz]. 557 00:25:16,015 --> 00:25:16,905 HOPARLÖR 1: Bu nedir? 558 00:25:16,905 --> 00:25:17,800 HEDEF KİTLE: Biz duyurdu. 559 00:25:17,800 --> 00:25:18,883 HOPARLÖR 1: Biz duyurdu. 560 00:25:18,883 --> 00:25:22,290 Yani, hey, clang öğretiyoruz aslında henüz bu uygulama değil, 561 00:25:22,290 --> 00:25:25,740 ama bir yerde bu dosyada, muhtemelen, Bir işlev ne denir olacak? 562 00:25:25,740 --> 00:25:26,930 563 00:25:26,930 --> 00:25:27,540 Sigma. 564 00:25:27,540 --> 00:25:30,540 Ve bu sadece bir sözdür ki böyle bakmaya gidiyor. 565 00:25:30,540 --> 00:25:33,720 Bu gibi bir tamsayı almaya gidiyor input-- ve ben daha açık olabilir 566 00:25:33,720 --> 00:25:36,570 ve int n -ve bu olduğunu söylüyorlar Bir int dönmek için gidiyor, 567 00:25:36,570 --> 00:25:39,900 ama noktalı virgül araçlar, mm, ben etrafında alırsınız Bir süre sonra bu uygulama için. 568 00:25:39,900 --> 00:25:40,989 Yine, Clang dilsiz olduğunu. 569 00:25:40,989 --> 00:25:43,280 Sadece ne bilmek gidiyor Eğer, yukarıdan aşağıya doğru söylemek 570 00:25:43,280 --> 00:25:45,765 bu yüzden en azından vermek gerekir bu ne bir ipucu gelmek. 571 00:25:45,765 --> 00:25:47,330 >> Şimdi burada ana bakalım. 572 00:25:47,330 --> 00:25:50,040 Burada aşağı ilerleyin edelim ve yaptığını ana görmek. 573 00:25:50,040 --> 00:25:53,780 Bir fonksiyonun uzun değil, ve Aslında burada yapı tanıdık. 574 00:25:53,780 --> 00:25:57,590 Sonra bir değişken n ilan ve Ben tekrar tekrar kullanıcı musallat 575 00:25:57,590 --> 00:26:01,880 GETINT kullanarak pozitif tamsayı için, ve bu döngünün dışına tek çıkış 576 00:26:01,880 --> 00:26:03,280 bir kez kullanıcı riayet etmiştir. 577 00:26:03,280 --> 00:26:05,670 While mı, biz alışık olduğunuz bu şekilde kullanıcıya musallat. 578 00:26:05,670 --> 00:26:06,670 Şimdi bu ilginç. 579 00:26:06,670 --> 00:26:08,510 Ben adında bir int ilan "cevabı." 580 00:26:08,510 --> 00:26:11,420 Ben dönüş değeri atamak olarak bilinen bir fonksiyonun "sigma". 581 00:26:11,420 --> 00:26:15,200 Ben henüz ne yaptığını bilmiyorum, ama yok Ben bir an önce bunu ilan hatırlıyorum. 582 00:26:15,200 --> 00:26:18,310 Ve sonra ben geçiyordum değer kullanıcı, yazdığınız n bu 583 00:26:18,310 --> 00:26:20,420 ve sonra cevap rapor. 584 00:26:20,420 --> 00:26:22,260 Peki geri kaydırma edelim Sadece bir an için. 585 00:26:22,260 --> 00:26:28,620 Şimdi bu dizine devam edelim, yapmak sigma 0, ve aslında bu programı çalıştırın 586 00:26:28,620 --> 00:26:30,490 ve ne olduğunu görün. 587 00:26:30,490 --> 00:26:35,930 Ben devam edin ve çalıştırın Yani Bu program ./sigma-0, 588 00:26:35,930 --> 00:26:40,139 ve ben olumlu yazın ikisi gibi tamsayı, Sigma, 589 00:26:40,139 --> 00:26:43,180 Yunan sembolü anlaşılacağı gibi, sadece bir tüm sayıları toplamak için gidiyor 590 00:26:43,180 --> 00:26:44,320 iki yukarı sıfır. 591 00:26:44,320 --> 00:26:46,560 Yani 0 artı 1 artı 2. 592 00:26:46,560 --> 00:26:48,830 Yani bu umarım bana 3 vermelidir. 593 00:26:48,830 --> 00:26:49,750 Yani yapıyor hepsi. 594 00:26:49,750 --> 00:26:52,690 Ve benzer, eğer yine bu çalıştırın ve ben, o numarayı üç vermek 595 00:26:52,690 --> 00:26:56,721 O yüzden o, 3 artı 2 var 5 artı 1 bana 6 vermelidir. 596 00:26:56,721 --> 00:26:59,470 Ve ben gerçekten deli olsun o eğer ve büyük sayılar yazmaya başlayın, 597 00:26:59,470 --> 00:27:01,290 bana vermelisin büyük ve daha büyük meblağlar. 598 00:27:01,290 --> 00:27:02,250 Yani hepsi bu. 599 00:27:02,250 --> 00:27:04,010 >> Peki sigma gibi görünüyor? 600 00:27:04,010 --> 00:27:05,430 Peki, bu oldukça basittir. 601 00:27:05,430 --> 00:27:08,940 Biz hayata nasıl olabileceğini bulunuyor Son birkaç haftadır bu. 602 00:27:08,940 --> 00:27:11,120 "Int" dönüş türü olacak. 603 00:27:11,120 --> 00:27:14,330 Sigma adı ve onu alır yerine n değişken bir m. 604 00:27:14,330 --> 00:27:15,940 Ben üst o kadar değiştireceğiz. 605 00:27:15,940 --> 00:27:17,340 Sonra bu sadece bir aklı kontrol olduğunu. 606 00:27:17,340 --> 00:27:18,430 607 00:27:18,430 --> 00:27:19,950 Biz bir an neden görürsünüz. 608 00:27:19,950 --> 00:27:24,220 Şimdi başka bir değişken bildirmek, toplamı sıfıra başlatılamadı. 609 00:27:24,220 --> 00:27:28,140 Sonra döngü bu var görünüşe göre netlik için, yineleme, 610 00:27:28,140 --> 00:27:33,810 i = 1 kadar bir = m, hangi ne olursa olsun kullanıcı yazdığınız, ve sonra 611 00:27:33,810 --> 00:27:35,690 Böyle toplamı artırmak. 612 00:27:35,690 --> 00:27:37,360 Ve sonra toplamını döndürür. 613 00:27:37,360 --> 00:27:38,440 >> Soru Yani bir çift. 614 00:27:38,440 --> 00:27:42,370 Bir, ben bu benim yorumda iddia sonsuz bir döngü riskini önler. 615 00:27:42,370 --> 00:27:45,620 Neden negatif bir sayı geçirerek olur potansiyel, sonsuz bir döngü neden? 616 00:27:45,620 --> 00:27:49,396 617 00:27:49,396 --> 00:27:51,290 >> İZLEYİCİ: Sen m ulaşmak asla. 618 00:27:51,290 --> 00:27:52,880 >> HOPARLÖR 1: m ulaşmak asla. 619 00:27:52,880 --> 00:27:55,880 Ama m geçti, bu yüzden atalım edilir Basit bir örnek düşünün. 620 00:27:55,880 --> 00:27:58,510 M tarafından geçirilir Negatif olarak kullanıcı. 621 00:27:58,510 --> 00:28:00,059 Bağımsız main. 622 00:28:00,059 --> 00:28:01,850 Ana bizi korur Bu da, bu yüzden ben sadece 623 00:28:01,850 --> 00:28:04,680 gerçekten Anal olmak sigma de emin olmak için 624 00:28:04,680 --> 00:28:06,540 Bu giriş negatif olamaz. 625 00:28:06,540 --> 00:28:10,130 M negatif Yani eğer, Negatif gibi bir şey. 626 00:28:10,130 --> 00:28:11,930 Ne ne olacak? 627 00:28:11,930 --> 00:28:14,390 Peki, ben gidiyor birine başlatıldı olsun, 628 00:28:14,390 --> 00:28:19,060 ve sonra ben olacak veya daha az m eşit? 629 00:28:19,060 --> 00:28:24,130 630 00:28:24,130 --> 00:28:24,765 >> Stand by. 631 00:28:24,765 --> 00:28:26,930 632 00:28:26,930 --> 00:28:29,370 Yani, 's etmeyelim Ben-- Şimdi bu hikayeyi nix verelim. 633 00:28:29,370 --> 00:28:32,780 Çünkü, bu soruyu sormadı Ben ima ediyorum riski 634 00:28:32,780 --> 00:28:38,360 Ben çünkü ne olacak değil Her zaman büyük edemememden Tamam gidiyor, 635 00:28:38,360 --> 00:28:39,871 Ben bu soruyu geri. 636 00:28:39,871 --> 00:28:40,370 TAMAM MI. 637 00:28:40,370 --> 00:28:42,030 Burada sadece bu bölümünde odaklanalım. 638 00:28:42,030 --> 00:28:44,210 639 00:28:44,210 --> 00:28:48,830 Neden bazı ilan etmedi döngü dışında? 640 00:28:48,830 --> 00:28:52,010 Hat Ben ettik 49 Bildirimi döngü içinde i ilan, 641 00:28:52,010 --> 00:28:54,950 ancak çevrimiçi 48 var Bazı dışında ilan etti. 642 00:28:54,950 --> 00:28:55,695 Evet. 643 00:28:55,695 --> 00:28:56,611 HEDEF KİTLE: [duyulamaz]. 644 00:28:56,611 --> 00:28:58,734 645 00:28:58,734 --> 00:28:59,400 HOPARLÖR 1: Tabii. 646 00:28:59,400 --> 00:29:03,360 Yani öncelikle ben kesinlikle yok beyan ve toplamı başlatmak istiyor 647 00:29:03,360 --> 00:29:06,130 sıfır içine Her yineleme döngü, 648 00:29:06,130 --> 00:29:09,370 Bu açıkça yenilgi çünkü numaralarını toplanmasıyla amacı. 649 00:29:09,370 --> 00:29:11,770 Ben sürekli değişiyor ediyorum geri sıfıra değer. 650 00:29:11,770 --> 00:29:17,992 Ve ayrıca, ne başka bir daha gizemli bulunuyor Aynı tasarım kararı nedeni? 651 00:29:17,992 --> 00:29:18,954 Evet. 652 00:29:18,954 --> 00:29:20,279 >> İZLEYİCİ: [duyulamaz]. 653 00:29:20,279 --> 00:29:21,070 HOPARLÖR 1: Kesinlikle. 654 00:29:21,070 --> 00:29:24,060 Ben dışarıda erişmek istiyorum çok hangi hat üzerinde döngü? 655 00:29:24,060 --> 00:29:25,390 656 00:29:25,390 --> 00:29:26,400 53 günü. 657 00:29:26,400 --> 00:29:29,910 Ve başparmak bizim üstünlüğüne dayalı konferanslar önce bir çift dan, 658 00:29:29,910 --> 00:29:33,680 değişkenler, gerçekten, kapsamlı edilir Onları kapsayacak kaşlı. 659 00:29:33,680 --> 00:29:38,190 İçimde toplamı beyan yoksa Yani Bu dış kaşlı ayraçlar arasında, 660 00:29:38,190 --> 00:29:40,250 Ben hat 53 kullanamazsınız. 661 00:29:40,250 --> 00:29:43,160 Ben ilan, başka bir deyişle Burada, hatta içinde toplamı 662 00:29:43,160 --> 00:29:45,410 Döngüsü için, ben 53 bunu erişemedi. 663 00:29:45,410 --> 00:29:47,150 Değişken etkili bir gitmiş olurdu. 664 00:29:47,150 --> 00:29:48,579 Yani orada nedenlerle bir çift. 665 00:29:48,579 --> 00:29:50,370 Ama şimdi geri dönelim ve ne olduğunu görün. 666 00:29:50,370 --> 00:29:51,730 Yani sigma çağrılır. 667 00:29:51,730 --> 00:29:55,640 Bu, 1 artı 2, veya 1 artı 2 ekler artı 3, ve sonra, değerini döndürür 668 00:29:55,640 --> 00:29:59,660 cevap saklar, ve burada printf Ben ekranda görüyorum nedeni budur. 669 00:29:59,660 --> 00:30:03,079 Yani biz bir iteratif arayacağım ne yaklaşım, nerede yineleme sadece 670 00:30:03,079 --> 00:30:03,870 Bir döngü kullanarak anlamına gelir. 671 00:30:03,870 --> 00:30:06,900 Döngü, bir iken döngü, bir Yapılacaklar iken A döngü, sadece tekrar bir şeyler yapıyor 672 00:30:06,900 --> 00:30:08,380 ve tekrar ve tekrar. 673 00:30:08,380 --> 00:30:13,505 >> Ama sigma düzgün bir fonksiyon türüdür Ben farklı şekilde uygulamak olabilir. 674 00:30:13,505 --> 00:30:14,620 675 00:30:14,620 --> 00:30:19,120 Bu konuda neler, hangi Sadece, biraz serin olması 676 00:30:19,120 --> 00:30:21,880 beni gerçekten kurtulmak izin oyalama bir sürü 677 00:30:21,880 --> 00:30:24,380 Bu fonksiyon, çünkü gerçekten oldukça basittir. 678 00:30:24,380 --> 00:30:27,780 Diyelim whittle aşağı sadece Dört çekirdekli hatları 679 00:30:27,780 --> 00:30:30,410 ve kurtulmak tüm Yorum ve kaşlı. 680 00:30:30,410 --> 00:30:34,334 Bu zihin-üfleme tür alternatif uygulama. 681 00:30:34,334 --> 00:30:37,250 Pekala, belki akla-üfleme değil, ama seksi, tüm hak türlü, var 682 00:30:37,250 --> 00:30:39,920 çok daha özlü Bu bakmak için. 683 00:30:39,920 --> 00:30:43,120 Kod sadece dört hatları ile, Ben ilk bu aklı kontrol var. 684 00:30:43,120 --> 00:30:45,732 M daha az ya da eşit ise sıfır, sigma hiçbir mantıklı. 685 00:30:45,732 --> 00:30:48,190 Sadece olması gerekiyordu Pozitif sayılar için bu durum, 686 00:30:48,190 --> 00:30:50,340 bu yüzden sadece gidiyorum keyfi sıfır döndürür 687 00:30:50,340 --> 00:30:53,210 En azından olması için Bazı temel durum sözde. 688 00:30:53,210 --> 00:30:54,430 >> Ama burada güzellik. 689 00:30:54,430 --> 00:30:59,930 ekleyerek bu fikrin bütününü, n, 1 ila numaraları, ya da bu durumda m, 690 00:30:59,930 --> 00:31:02,630 kova geçen türüne göre yapılabilir. 691 00:31:02,630 --> 00:31:04,947 Peki, m 1 toplamı nedir? 692 00:31:04,947 --> 00:31:05,780 Peki, biliyor musun? 693 00:31:05,780 --> 00:31:11,949 Bu m toplamı aynıdır artı eksi 1 m 1 toplamı. 694 00:31:11,949 --> 00:31:12,740 Peki biliyor musun? 695 00:31:12,740 --> 00:31:13,940 M eksi 1 sigma nedir? 696 00:31:13,940 --> 00:31:17,860 Peki, eğer tür bu takip mantıksal, bu m eksi 1 olarak aynıdır 697 00:31:17,860 --> 00:31:21,415 artı m eksi 2 sigma. 698 00:31:21,415 --> 00:31:22,480 699 00:31:22,480 --> 00:31:26,012 Yani bir tür sadece-- can Sadece eğer bu, gibi 700 00:31:26,012 --> 00:31:28,220 Bir arkadaş rahatsız çalışıyor ve onlar size bir soru sorabilir, 701 00:31:28,220 --> 00:31:31,344 ne tür bir soru ile cevap ne tür kova geçen tutabilirsiniz. 702 00:31:31,344 --> 00:31:34,560 Ama ne anahtar tutmak eğer olduğunu soru daha küçük hale 703 00:31:34,560 --> 00:31:36,910 ve küçük, sen sigma ne soran değil 704 00:31:36,910 --> 00:31:39,116 n, sigma ne n, n sigma nedir? 705 00:31:39,116 --> 00:31:40,990 Sen ne soruyorsun n sigma, ne sigma var 706 00:31:40,990 --> 00:31:42,839 n eksi 1, n eksi 2 sigma nedir? 707 00:31:42,839 --> 00:31:44,880 Sonunda soru ne olmaya devam etmektedir? 708 00:31:44,880 --> 00:31:50,250 Bir ya da sigma ne sıfır, bir çok küçük bir değer, 709 00:31:50,250 --> 00:31:52,220 ve en kısa sürede senin kadar bu, senin arkadaşınız olsun 710 00:31:52,220 --> 00:31:54,350 sormak için gidiş değildir Yine aynı soru, 711 00:31:54,350 --> 00:31:55,975 Sadece oh sıfır olduğunu söylemek için gidiyoruz. 712 00:31:55,975 --> 00:31:58,490 Biz bu tür oynarken bitirdiğinizde aptal döngüsel oyun. 713 00:31:58,490 --> 00:32:02,950 >> Yani yineleme programlama eylemidir Bir fonksiyonun kendisini çağıran. 714 00:32:02,950 --> 00:32:06,630 Derlenmiş ve çalıştırdığınızda bu program, aynı şekilde davranmaya gidiyor, 715 00:32:06,630 --> 00:32:09,620 ama ne anahtar olduğunu içeride Sigma olarak bilinen bir fonksiyonun, 716 00:32:09,620 --> 00:32:13,150 kod burada bir çizgi var biz kendimizi aradığınız 717 00:32:13,150 --> 00:32:14,980 normalde kötü olurdu. 718 00:32:14,980 --> 00:32:21,160 Örneğin, ne ilk ben eğer bu derlenmiş, yani sigma-- yapmak 719 00:32:21,160 --> 00:32:22,710 sigma 1 ./sigma-1 yapmak. 720 00:32:22,710 --> 00:32:25,050 721 00:32:25,050 --> 00:32:27,690 Pozitif tamsayı, lütfen, 50 1275. 722 00:32:27,690 --> 00:32:30,810 Peki işlevi gibi görünüyor Doğru bir test dayalı olmak. 723 00:32:30,810 --> 00:32:34,917 Ama ben biraz tehlikeli ne olsun ve sözde temel olgu silmek, 724 00:32:34,917 --> 00:32:37,750 ve sadece iyi ben sadece yapıyorum demek o daha bu daha karmaşık. 725 00:32:37,750 --> 00:32:42,450 Sadece sigma hesaplamak Let m alarak ve daha sonra ekleyerek 726 00:32:42,450 --> 00:32:44,564 m eksi biri sigma mi? 727 00:32:44,564 --> 00:32:45,980 Peki, burada ne ne olacak? 728 00:32:45,980 --> 00:32:47,140 En uzaklaştırmak edelim. 729 00:32:47,140 --> 00:32:52,920 Programı yeniden derlemek edelim, , kaydetmek programı derlemeye, 730 00:32:52,920 --> 00:33:00,450 ve yakınlaştırma ./sigma-1 ardından hazır, 50 pozitif tamsayı lütfen giriniz. 731 00:33:00,450 --> 00:33:02,180 732 00:33:02,180 --> 00:33:04,430 Kaçınız hazırız Bu görmeye fess? 733 00:33:04,430 --> 00:33:04,950 >> Tamam. 734 00:33:04,950 --> 00:33:06,690 Yani bunun için olabilir nedenlerle, bir dizi 735 00:33:06,690 --> 00:33:09,148 ve açıkçası bu hafta konum size onlardan daha vermek üzere. 736 00:33:09,148 --> 00:33:11,780 Ancak bu durumda, deneyin geriye mantığa 737 00:33:11,780 --> 00:33:14,430 Burada ne olmuş olabilir? 738 00:33:14,430 --> 00:33:17,400 Segmentasyon hatası, biz son sözü zaman, bellek bir segmente karşılık gelir. 739 00:33:17,400 --> 00:33:18,690 Kötü bir şey oldu. 740 00:33:18,690 --> 00:33:21,550 Ama bunu ne oldu mekanik ters gitti 741 00:33:21,550 --> 00:33:25,000 çünkü burada benim kaldırma sözde baz davanın, 742 00:33:25,000 --> 00:33:26,870 nerede bir sabit kodlanmış değeri döndü? 743 00:33:26,870 --> 00:33:28,970 744 00:33:28,970 --> 00:33:30,460 Ne yanlış gitti sizce? 745 00:33:30,460 --> 00:33:31,219 Evet. 746 00:33:31,219 --> 00:33:32,135 >> İZLEYİCİ: [duyulamaz]. 747 00:33:32,135 --> 00:33:36,387 748 00:33:36,387 --> 00:33:36,970 HOPARLÖR 1: Ah. 749 00:33:36,970 --> 00:33:37,550 İyi bir soru. 750 00:33:37,550 --> 00:33:39,508 Sayısı boyutuna yüzden Ben toplanmasıyla olduğunu 751 00:33:39,508 --> 00:33:41,920 o aştı ki büyük var bellek alanı boyutu. 752 00:33:41,920 --> 00:33:44,640 İyi fikir, ama temelde Bir çökmesine neden olacak. 753 00:33:44,640 --> 00:33:48,230 Bu tamsayı taşmasına neden olabilir, bit sadece çevirmek nerede 754 00:33:48,230 --> 00:33:51,760 ve sonra gerçekten büyük hata negatif bir sayı gibi numarası, 755 00:33:51,760 --> 00:33:53,260 ama kendisi bir çökmesine neden olmaz. 756 00:33:53,260 --> 00:33:55,509 Çünkü sonunda gün bir int hala 32 bit. 757 00:33:55,509 --> 00:33:57,640 Sen gitmiyorsun yanlışlıkla bir 33. biraz çalmak. 758 00:33:57,640 --> 00:33:58,431 Ama iyi bir düşünce. 759 00:33:58,431 --> 00:33:58,984 Evet. 760 00:33:58,984 --> 00:33:59,900 >> İZLEYİCİ: [duyulamaz]. 761 00:33:59,900 --> 00:34:00,551 762 00:34:00,551 --> 00:34:02,300 HOPARLÖR 1: yöntemi asla çalışmayı durdurur, 763 00:34:02,300 --> 00:34:06,658 ve gerçekten de kendisini yeniden çağırır ve tekrar ve tekrar ve tekrar 764 00:34:06,658 --> 00:34:08,449 ve yine, ve hiçbiri Hiç bu fonksiyonlar 765 00:34:08,449 --> 00:34:13,310 onların tek hat çünkü bitirmek Kod tekrar tekrar kendilerini çağıran 766 00:34:13,310 --> 00:34:14,219 ve yine. 767 00:34:14,219 --> 00:34:16,080 Ve gerçekten var biz Buradaki, ve şimdi 768 00:34:16,080 --> 00:34:18,100 tür resimsel bu çizebilirsiniz. 769 00:34:18,100 --> 00:34:20,899 Bana bir yanına gidelim Sadece bir an için resim. 770 00:34:20,899 --> 00:34:22,940 Bu da, bir resim sonunda ayrıntılarıyla anlatacağım 771 00:34:22,940 --> 00:34:26,336 daha ayrıntılı, oluyor ne Bilgisayarınızın bellek içinde. 772 00:34:26,336 --> 00:34:28,460 Ve o dışarı çıkıyor Bu resmin alt 773 00:34:28,460 --> 00:34:29,709 yığın olarak adlandırılan şeydir. 774 00:34:29,709 --> 00:34:31,920 Bu bir yığınıdır Bellek, RAM yığın, 775 00:34:31,920 --> 00:34:33,920 bu sadece her zaman kullanılan Bir fonksiyon denir. 776 00:34:33,920 --> 00:34:36,239 Herhangi bir zaman, bir programcı, Bir işlevi çağırmak, 777 00:34:36,239 --> 00:34:38,860 İşletim sistemi, gibi Mac OS, Windows veya Linux, 778 00:34:38,860 --> 00:34:41,920 kapmak bayt bir demet, belki bir Birkaç kilobayt, belki birkaç megabayt 779 00:34:41,920 --> 00:34:44,590 bellek, onları eller Size ve ardından sağlar 780 00:34:44,590 --> 00:34:47,650 Eğer kullanarak işlevi çalıştırmak ne olursa olsun değişkenler ihtiyacınız. 781 00:34:47,650 --> 00:34:50,699 Ve sonra başka bir ararsanız fonksiyonu ve başka bir işlev, 782 00:34:50,699 --> 00:34:53,590 Eğer bellek başka dilim olsun ve bellek başka dilim. 783 00:34:53,590 --> 00:34:57,090 >> Ve gerçekten de, eğer bu yeşil tepsiler Annenberg gelen, belleğin temsil 784 00:34:57,090 --> 00:34:59,870 Burada ilk ne var zaman işlev sigma diyoruz. 785 00:34:59,870 --> 00:35:04,510 Böyle bir tepsi koyarak gibi Başlangıçta boş bir yığın var ne. 786 00:35:04,510 --> 00:35:07,142 Ama sonra eğer tepsi tabiri caizse, kendisini çağıran, 787 00:35:07,142 --> 00:35:08,850 Başka bir örneği çağıran sigma, işte 788 00:35:08,850 --> 00:35:11,640 işletim sistemini soran gibi, ooh, biraz daha fazla bellek gerekir 789 00:35:11,640 --> 00:35:12,520 bana ver. 790 00:35:12,520 --> 00:35:14,840 Ve sonra üstüne kazıklı alır. 791 00:35:14,840 --> 00:35:18,030 Ama ne burada anahtar olmasıdır İlk tepsi, hala orada 792 00:35:18,030 --> 00:35:20,620 O bu ikinci tepsiyi çağrılan çünkü. 793 00:35:20,620 --> 00:35:23,500 Şimdi arada, sigma sigma diyoruz, Bu daha fazla bellek soran gibi. 794 00:35:23,500 --> 00:35:25,830 Burada kazıklı Alır. 795 00:35:25,830 --> 00:35:29,350 sigma başka var, sigma çağrı Burada kazıklı alır tepsi. 796 00:35:29,350 --> 00:35:32,942 Ve sen bunu yapmaya devam eğer, Sonunda, bir tür bu görsel harita 797 00:35:32,942 --> 00:35:35,525 Bu grafiğe, ne oluyor tepsilerin yığını ile olur? 798 00:35:35,525 --> 00:35:37,480 799 00:35:37,480 --> 00:35:41,160 Bu tutarı aşan gidiyor bellek bilgisayar vardır. 800 00:35:41,160 --> 00:35:45,790 Ve kısa sürede bu yeşil tepsi gibi yatay çizgi aşıyor 801 00:35:45,790 --> 00:35:49,410 yığının üstünde ve o kelime yığın üzerinde, hangi gelecekte geri geleceğiz, 802 00:35:49,410 --> 00:35:50,410 Bu kötü bir şey olduğunu. 803 00:35:50,410 --> 00:35:52,810 yığını farklıdır bellek kademeli, 804 00:35:52,810 --> 00:35:55,190 ve bu izin verirsen tepsiler kazık ve kazık üzerine 805 00:35:55,190 --> 00:35:57,800 Eğer aşmak için gidiyoruz bellek kendi segmenti, 806 00:35:57,800 --> 00:36:00,420 ve bir program gerçekten çökmesine gidiyor. 807 00:36:00,420 --> 00:36:02,930 >> Şimdi bir kenara olarak, bu fikri özyineleme, bu nedenle, 808 00:36:02,930 --> 00:36:06,500 açıkça sorunlara yol açabilir ancak mutlaka kötü bir şey değil. 809 00:36:06,500 --> 00:36:08,840 Düşünün Çünkü, sonra tüm how-- ve belki 810 00:36:08,840 --> 00:36:11,700 Bu bazı alışmak alır --Ne zarif ya da ne kadar basit 811 00:36:11,700 --> 00:36:14,890 sigma bu uygulama oldu. 812 00:36:14,890 --> 00:36:17,440 Ve biz kullanmak için gidiyoruz değil CS50 tüm bu kadar yineleme, 813 00:36:17,440 --> 00:36:20,780 ama CS51 içinde ve gerçekten herhangi bir sınıf Eğer veri yapılarını işlemek nerede 814 00:36:20,780 --> 00:36:23,640 ağaçlar, ya da aile ağaçları gibi, Bu, bazı hiyerarşi var 815 00:36:23,640 --> 00:36:26,000 süper kullanışlı, süper değil. 816 00:36:26,000 --> 00:36:29,750 Şimdi, bir kenara, böylece sen misin bilgisayar bilimcileri kalkınan gibi 817 00:36:29,750 --> 00:36:33,180 Google'ın bazı aşina Google'a giderseniz iç şakalar, 818 00:36:33,180 --> 00:36:36,345 ve ne kadar bakmak , tanımı diyelim, tekrarlama, girin. 819 00:36:36,345 --> 00:36:40,208 820 00:36:40,208 --> 00:36:41,110 Hı-hı. 821 00:36:41,110 --> 00:36:42,670 Bir kenara, ben bir kaç çekti. 822 00:36:42,670 --> 00:36:45,470 Bu 10 dakika gibi oldu erteleme bu sabah. 823 00:36:45,470 --> 00:36:52,890 Eğer Ayrıca Google "çarpık" uyarı Başınızı eğerek slightly-- 824 00:36:52,890 --> 00:36:55,120 ve daha sonra bu belki de en önemlisi vahşi 825 00:36:55,120 --> 00:36:57,286 Birisi gibi harcanan beri Bu uygulama onların gün 826 00:36:57,286 --> 00:36:59,880 birkaç yıl hadi önce--. 827 00:36:59,880 --> 00:37:01,140 828 00:37:01,140 --> 00:37:04,540 Ah, bekle-- bir hata var. 829 00:37:04,540 --> 00:37:08,410 830 00:37:08,410 --> 00:37:11,410 >> Yani birinde çalışan Dünyanın en büyük web siteleri 831 00:37:11,410 --> 00:37:13,510 Bu aptal küçük Paskalya yumurtaları vardır. 832 00:37:13,510 --> 00:37:16,690 Muhtemelen bir tüketmek kod satırları nontrivial sayısı 833 00:37:16,690 --> 00:37:19,280 Sadece biz böylece Böyle küçük eğlenceli şeyler. 834 00:37:19,280 --> 00:37:22,140 Ama en azından şimdi olsun Bu iç şakalar bazılarıdır. 835 00:37:22,140 --> 00:37:28,330 >> Şimdi bazılarına bir göz atalım beyaz, biz geç söylüyorum yalan 836 00:37:28,330 --> 00:37:30,707 ve geri soyma başlar bazı tabakalar teknik 837 00:37:30,707 --> 00:37:32,790 Eğer gerçekten anlamak böylece ne oluyor oldu 838 00:37:32,790 --> 00:37:34,860 ve anlayabiliyorum tehditler bazı 839 00:37:34,860 --> 00:37:38,060 Shellshock gibi, bu Şimdi olmaya başladı 840 00:37:38,060 --> 00:37:41,110 herkesin ön planda dikkat, en azından medyada. 841 00:37:41,110 --> 00:37:45,810 Yani burada çok basit bir fonksiyon olduğunu Bu boşluk, hiçbir şey döndürür. 842 00:37:45,810 --> 00:37:46,790 Onun adı takas olduğunu. 843 00:37:46,790 --> 00:37:50,880 Bu iki değişken alır ve hiçbir şey döndürür. 844 00:37:50,880 --> 00:37:52,260 A ve b Alır. 845 00:37:52,260 --> 00:37:53,337 Yani hızlı bir gösteri. 846 00:37:53,337 --> 00:37:54,170 Biz bu kadar getirdi. 847 00:37:54,170 --> 00:37:56,100 Biz de biraz sürebilir Sadece bir an için burada mola 848 00:37:56,100 --> 00:37:57,250 ve içecek bir şeyler var. 849 00:37:57,250 --> 00:38:00,120 Birisi katılmadan sakıncası olmaz ise Burada sadece bir an için beni yukarı. 850 00:38:00,120 --> 00:38:01,830 Nasıl bordo gömlek senin hakkında? 851 00:38:01,830 --> 00:38:02,335 Hadi gel. 852 00:38:02,335 --> 00:38:04,060 853 00:38:04,060 --> 00:38:05,260 Sadece bugün. 854 00:38:05,260 --> 00:38:06,251 Olsa, teşekkür ederiz. 855 00:38:06,251 --> 00:38:08,000 Pekala, biz var burada kim geliyor? 856 00:38:08,000 --> 00:38:08,660 Adınız ne? 857 00:38:08,660 --> 00:38:09,360 >> HOPARLÖR 4: Laura. 858 00:38:09,360 --> 00:38:09,740 >> HOPARLÖR 1: Laura. 859 00:38:09,740 --> 00:38:10,370 Hadi gel. 860 00:38:10,370 --> 00:38:11,460 861 00:38:11,460 --> 00:38:13,850 Yani Laura, çok basit bir meydan okuma bugün. 862 00:38:13,850 --> 00:38:14,704 863 00:38:14,704 --> 00:38:15,370 Yo karşılamak için güzel. 864 00:38:15,370 --> 00:38:16,410 865 00:38:16,410 --> 00:38:16,910 Tamam. 866 00:38:16,910 --> 00:38:21,179 Yani biz burada biraz süt var ve Burada üzerinde bazı portakal suyu var 867 00:38:21,179 --> 00:38:23,345 ve bazı bardak ki Bugün Annenberg ödünç. 868 00:38:23,345 --> 00:38:24,178 >> HOPARLÖR 4: Ödünç. 869 00:38:24,178 --> 00:38:27,240 HOPARLÖR 1: Ve önde gidecek ve bu yarım bardak verin. 870 00:38:27,240 --> 00:38:28,250 871 00:38:28,250 --> 00:38:28,800 Tamam. 872 00:38:28,800 --> 00:38:30,750 Ve size yarım vereceğim bir bardak süt. 873 00:38:30,750 --> 00:38:31,905 874 00:38:31,905 --> 00:38:35,890 Oh, ve sadece can böylece Bu böyle ne olduğunu hatırlıyor 875 00:38:35,890 --> 00:38:38,860 Ben getirmek hatırladım Bu kadar ve bugün. 876 00:38:38,860 --> 00:38:42,030 877 00:38:42,030 --> 00:38:42,530 Tamam. 878 00:38:42,530 --> 00:38:45,470 Sakıncası olmaz ise, bakalım, biz Kendi gözlük üzerinde onları koyabilirsiniz 879 00:38:45,470 --> 00:38:46,560 istersen. 880 00:38:46,560 --> 00:38:48,710 Bu Laura'nın gözlerinden dünya olacak. 881 00:38:48,710 --> 00:38:49,210 Tamam. 882 00:38:49,210 --> 00:38:53,820 Yani hedef, iki bardak verilen Burada sıvı, süt ve portakal suyu, 883 00:38:53,820 --> 00:38:58,370 İki içeriğini değiştirebilir şekilde portakal suyu, süt kabına gider 884 00:38:58,370 --> 00:39:00,710 ve süt gider portakal suyu fincan. 885 00:39:00,710 --> 00:39:02,359 >> HOPARLÖR 4: Başka bir fincan mı? 886 00:39:02,359 --> 00:39:05,650 HOPARLÖR 1: Ama, sen sordu sevindim çok iyi film olurdu 887 00:39:05,650 --> 00:39:06,710 Eğer sordu olmasaydı. 888 00:39:06,710 --> 00:39:10,620 Ama evet, size üçüncü bir sunabilir Tabii, boş bardak. 889 00:39:10,620 --> 00:39:11,120 Tamam. 890 00:39:11,120 --> 00:39:12,300 Yani orada içeriğini takas. 891 00:39:12,300 --> 00:39:16,100 892 00:39:16,100 --> 00:39:17,050 Çok güzel. 893 00:39:17,050 --> 00:39:20,390 894 00:39:20,390 --> 00:39:21,305 Çok iyi. 895 00:39:21,305 --> 00:39:23,121 896 00:39:23,121 --> 00:39:24,745 Sen oldukça dikkatli yapıyoruz. 897 00:39:24,745 --> 00:39:26,970 898 00:39:26,970 --> 00:39:28,655 Ve üç adım. 899 00:39:28,655 --> 00:39:30,390 900 00:39:30,390 --> 00:39:31,350 Tamam. 901 00:39:31,350 --> 00:39:31,930 Mükemmel. 902 00:39:31,930 --> 00:39:33,930 Alkış büyük bir yuvarlak Laura için iyi olurdu. 903 00:39:33,930 --> 00:39:36,500 904 00:39:36,500 --> 00:39:37,000 Tamam. 905 00:39:37,000 --> 00:39:40,790 Biz küçük bir ayrılık hediye var Sizin için, ama bana bu atalım. 906 00:39:40,790 --> 00:39:42,620 Çok teşekkür ederim. 907 00:39:42,620 --> 00:39:46,170 Yani basit bir örnek olsa da, Bunu yaparsanız olduğunu göstermek için 908 00:39:46,170 --> 00:39:48,300 içeriğini takas etmek istiyorum İki kabın, 909 00:39:48,300 --> 00:39:52,360 veya en değişkenler onlara diyelim, Eğer bazı geçici depolama ihtiyacı 910 00:39:52,360 --> 00:39:56,710 yani içindekiler birini sahneye aslında takas yapabilirsiniz. 911 00:39:56,710 --> 00:40:01,790 Yani aslında, burada bu kaynak kodu yukarı C tam olarak temsilcisidir. 912 00:40:01,790 --> 00:40:06,340 Portakal suyu ve süt olsaydı b oldu, ve biz iki takas etmek istedim 913 00:40:06,340 --> 00:40:08,990 Eğer yaratıcı bir şey deneyebilirsiniz diğer içine bir dökülerek, 914 00:40:08,990 --> 00:40:11,031 ama muhtemelen olmaz özellikle de biter. 915 00:40:11,031 --> 00:40:15,260 Ve bu yüzden üçüncü bir fincan, çağrıyı kullanın o, kongre tarafından, T-M-P tmp 916 00:40:15,260 --> 00:40:19,370 ve içeriğini koymak OJ ki, sonra bir fincan takas, 917 00:40:19,370 --> 00:40:22,610 Sonra içine oj koymak Orijinal fincan, böylece 918 00:40:22,610 --> 00:40:25,320 tam olarak, elde Laura takas yaptım. 919 00:40:25,320 --> 00:40:26,850 >> Yani tam olarak yapalım. 920 00:40:26,850 --> 00:40:30,110 Beni go ahead ve açalım bu bir örnek kadar 921 00:40:30,110 --> 00:40:32,720 aslında hiçbir "denir Bu değil çünkü ", takas 922 00:40:32,720 --> 00:40:36,180 Düşündüğünüz gibi basitçe yapılabilir. 923 00:40:36,180 --> 00:40:41,190 Yani bu programda, fark Ben stdio.h, bizim eski dostumuz kullanıyorum. 924 00:40:41,190 --> 00:40:43,130 Ben prototip var , orada takas için hangi 925 00:40:43,130 --> 00:40:45,450 uygulanması en anlamına gelir muhtemelen aşağı aşağıda, 926 00:40:45,450 --> 00:40:48,050 ve görelim ana bu ne Program benim için yapacak. 927 00:40:48,050 --> 00:40:52,020 Ben ilk int x alır beyan on, ve Y, iki alır int. 928 00:40:52,020 --> 00:40:54,930 Yani oj gibi olanların düşünüyorum sırasıyla ve süt. 929 00:40:54,930 --> 00:40:57,100 Ve sonra ben sadece bir var printf x bu olduğunu söyleyerek 930 00:40:57,100 --> 00:41:00,120 ve y sadece bu yüzden can, bu görsel neler görüyorum. 931 00:41:00,120 --> 00:41:03,810 Sonra iddia printf var Ben iki takas ediyorum 932 00:41:03,810 --> 00:41:07,100 ve sonra bir çıktısını Onlar takas olduğunuzu iddia, 933 00:41:07,100 --> 00:41:09,300 ve ben tekrar x ve y çıktı. 934 00:41:09,300 --> 00:41:13,010 Yani buraya takas olduğu yer tam Laura ne yaptığını, 935 00:41:13,010 --> 00:41:16,240 ve biz gördüğümüz tam olarak ne Bir an önce ekran. 936 00:41:16,240 --> 00:41:19,380 >> Yani öncesinde gidelim ve fena halde hayal kırıklığına. 937 00:41:19,380 --> 00:41:24,690 Hiçbir takas yapın ve hiçbir takas çalıştırın, Burada çıktı yakınlaştırma. 938 00:41:24,690 --> 00:41:28,320 Giriş x ve y takas değiştirme, 2, 1 'dir. 939 00:41:28,320 --> 00:41:32,700 x hala 1 ve y hala 2. 940 00:41:32,700 --> 00:41:37,630 Yani olsa, açıkçası, bu görünüyor Tam daha teknik olsa, gibi, 941 00:41:37,630 --> 00:41:40,730 Laura yaptıklarını, işe görünmüyordu. 942 00:41:40,730 --> 00:41:42,130 Peki neden? 943 00:41:42,130 --> 00:41:46,630 Peki, ne zaman çıkıyor böyle bir program yazmak 944 00:41:46,630 --> 00:41:51,590 Bu hem ana, burada vurgulanan etti ve daha sonra başka bir fonksiyon, takas gibi, 945 00:41:51,590 --> 00:41:54,230 Burada vurgulanan hangi dünya, aramalar 946 00:41:54,230 --> 00:41:57,030 gibi küçük bir şey görünüyor Bir an önce bu tepsiler. 947 00:41:57,030 --> 00:42:00,440 Ne zaman ana çağrılan ilk, Bu işletim sistemi soran gibi 948 00:42:00,440 --> 00:42:04,030 herhangi bir yerel hafıza biraz x ve y gibi ana vardır değişkenler, 949 00:42:04,030 --> 00:42:05,660 ve onlar orada bitirmek. 950 00:42:05,660 --> 00:42:10,920 Ana aramalar takas ve ana ama eğer İki argüman, a ve b takas geçer, 951 00:42:10,920 --> 00:42:16,410 portakal suyu ve süt, o gibi değil portakal suyu ve süt teslim 952 00:42:16,410 --> 00:42:17,500 Laura. 953 00:42:17,500 --> 00:42:21,300 Bir bilgisayar ne yapar, öyle portakal suyu kopyalarını geçer 954 00:42:21,300 --> 00:42:27,110 Böylece Laura süt ve kopya, Peki bu tepsinin içinde sonuçta var 955 00:42:27,110 --> 00:42:32,510 değer bir ve iki, ya da OJ olduğunu ve süt, ancak kopya bunların, 956 00:42:32,510 --> 00:42:34,790 öyle ki, bu noktada hikaye, orada 957 00:42:34,790 --> 00:42:36,930 Bu kasetlerin her OJ ve sütüdür. 958 00:42:36,930 --> 00:42:39,260 Bir ve iki var Bu tepsiler her, 959 00:42:39,260 --> 00:42:41,720 ve takas fonksiyonu gerçekten çalışıyor. 960 00:42:41,720 --> 00:42:46,090 İçinde onları takas ediyor İkinci üstteki tepsi, 961 00:42:46,090 --> 00:42:48,147 ancak değiştirme, herhangi bir etkisi yoktur. 962 00:42:48,147 --> 00:42:49,980 Ve sadece bazı dayalı biz ettik temel ilke 963 00:42:49,980 --> 00:42:52,970 önce konuştuk, ve gerçekten Sadece birkaç dakika önce, ne 964 00:42:52,970 --> 00:42:58,770 Değişen neden açıklayabilir swap içinde a ve b 965 00:42:58,770 --> 00:43:05,560 olsa bile, x ve y üzerinde hiçbir etkisi yoktur Ben takas fonksiyonu x ve y geçti. 966 00:43:05,560 --> 00:43:08,750 Burada anahtar kelime nedir basitçe açıklayabilir? 967 00:43:08,750 --> 00:43:11,250 968 00:43:11,250 --> 00:43:12,627 Ben burada duydum düşünüyorum? 969 00:43:12,627 --> 00:43:13,335 HEDEF KİTLE: Dönüş. 970 00:43:13,335 --> 00:43:14,085 HOPARLÖR 1: İade? 971 00:43:14,085 --> 00:43:14,590 Döndürmez. 972 00:43:14,590 --> 00:43:15,895 Diğer biri ile gidelim. 973 00:43:15,895 --> 00:43:16,395 Bu da ne? 974 00:43:16,395 --> 00:43:17,080 >> İZLEYİCİ: [duyulamaz]. 975 00:43:17,080 --> 00:43:20,000 >> HOPARLÖR 1: Tamam, bu yüzden olabilir return-- Hikayenin dönüş çalışması, 976 00:43:20,000 --> 00:43:21,914 ama daha basit bir açıklaması var. 977 00:43:21,914 --> 00:43:22,580 HEDEF KİTLE: Kapsam. 978 00:43:22,580 --> 00:43:23,288 HOPARLÖR 1: Kapsam. 979 00:43:23,288 --> 00:43:24,300 Ben kapsamını alacağım. 980 00:43:24,300 --> 00:43:27,290 Peki kapsamı, nereye hatırlıyorum Bizim x ve y ilan etti. 981 00:43:27,290 --> 00:43:30,840 Onlar içinde bildirilen konum Ana sağ burada. 982 00:43:30,840 --> 00:43:33,200 a ve b, bu arada, olan etkin bir şekilde beyan 983 00:43:33,200 --> 00:43:35,930 swap içinde, oldukça içinde kaşlı ama hala 984 00:43:35,930 --> 00:43:37,690 swap genel alanında. 985 00:43:37,690 --> 00:43:40,560 Böylece gerçekten, a ve b, Sadece bu tepsiye içinde var 986 00:43:40,560 --> 00:43:44,850 Annenberg bulunan bu İkinci kod yığın. 987 00:43:44,850 --> 00:43:49,500 Yani biz aslında kopya değişiyor, ama konum gerçekten tüm bu yararlı değil. 988 00:43:49,500 --> 00:43:52,190 >> Yani bir göz atalım Bu biraz daha düşük seviyede. 989 00:43:52,190 --> 00:43:55,430 Ben geri gidiyorum Kaynak Rehberi, 990 00:43:55,430 --> 00:43:58,330 ve ben ilk gidiyorum Burada yakınlaştırmak ve sadece 991 00:43:58,330 --> 00:44:02,290 Ben bu değilim onaylamak için büyük terminal penceresi, 992 00:44:02,290 --> 00:44:04,430 Program hala böyle davranıyor. 993 00:44:04,430 --> 00:44:06,840 Şimdi bu varsayalım kasıtlı değildir. 994 00:44:06,840 --> 00:44:10,090 Açıkçası ben takas istedim iş, bu yüzden bir hata gibi hissediyor. 995 00:44:10,090 --> 00:44:12,780 Şimdi bir ekleme başlayabileceğini Benim kod printf yılların sürü, 996 00:44:12,780 --> 00:44:16,010 , buraya y x üzerinde baskı Burada, burada, burada b. 997 00:44:16,010 --> 00:44:18,220 Ama açıkçası, muhtemelen ne var Eğer birkaç hafta için yapıyorum 998 00:44:18,220 --> 00:44:20,190 Şimdi, mesai saatleri içinde ve evde çalışırken 999 00:44:20,190 --> 00:44:22,150 bazı hatalar bulmaya çalışıyor psets üzerinde. 1000 00:44:22,150 --> 00:44:25,560 Değil zaten Ama eğer, göreceksiniz Bu sorun, üç tanıştırıyor set 1001 00:44:25,560 --> 00:44:31,630 GDB adında bir komuta, nerede GDB, GNU debugger, 1002 00:44:31,630 --> 00:44:34,040 kendisi bir sürü vardır özellikler aslında can 1003 00:44:34,040 --> 00:44:38,160 Bize durumları anlatmak Bu gibi ama daha zorlayıcı, 1004 00:44:38,160 --> 00:44:39,940 sorunları çözmek ve hata bulmak. 1005 00:44:39,940 --> 00:44:40,940 Yani bu yapacağım. 1006 00:44:40,940 --> 00:44:44,770 Bunun yerine ./noswap, ben yerine değilim GDB ./noswap çalıştırmak için gidiyoruz. 1007 00:44:44,770 --> 00:44:47,410 1008 00:44:47,410 --> 00:44:51,200 Diğer bir deyişle, ben çalıştırmak için gidiyorum benim program değil Bash, bizim yeni arkadaş 1009 00:44:51,200 --> 00:44:51,850 Bugün. 1010 00:44:51,850 --> 00:44:53,970 Ben çalıştırmak için gidiyorum benim içeride Program noswap 1011 00:44:53,970 --> 00:44:56,900 denilen bu diğer program Bir hata ayıklayıcı olan GDB, hangi 1012 00:44:56,900 --> 00:45:01,035 yardımcı olmak için tasarlanmış bir programdır bulmak ve hataları kaldırmak, insanların. 1013 00:45:01,035 --> 00:45:03,410 Ben burada Run isabet Yani eğer, orada metin iğrenç bir miktar 1014 00:45:03,410 --> 00:45:04,868 Eğer gerçekten okumak zorunda asla. 1015 00:45:04,868 --> 00:45:07,290 Bu aslında bir oyalama var isteminden hangi 1016 00:45:07,290 --> 00:45:10,030 Ben Kontrol-L vurmak için gidiyorum Orada üst kalkmak. 1017 00:45:10,030 --> 00:45:11,800 Bu GDB istemi. 1018 00:45:11,800 --> 00:45:15,550 Ben şimdi bu programı çalıştırmak istiyorsanız, Bugünün bu küçük hile levha olarak 1019 00:45:15,550 --> 00:45:21,860 slayt çalıştırın ilk anlaşılacağı Biz tanıtmak anlamına geliyordu komutları. 1020 00:45:21,860 --> 00:45:25,150 Ve ben sadece yazın gidiyorum GDB içinde burada koşmak, 1021 00:45:25,150 --> 00:45:26,811 ve gerçekten de benim programı koştu. 1022 00:45:26,811 --> 00:45:29,310 Şimdi bazı ek var Bu gibi ekran çıkışları, 1023 00:45:29,310 --> 00:45:31,910 ama bu GDB sadece olmak anal var ve neler söylemek bizi. 1024 00:45:31,910 --> 00:45:34,451 Gerçekten endişelenmenize gerek yok Şu anda bu detaylar hakkında. 1025 00:45:34,451 --> 00:45:36,890 Ama gerçekten güzel ne Ben yaparsam GDB, bu again-- 1026 00:45:36,890 --> 00:45:42,100 Kontrol-L gitmeme izin screen-- temizler önde ve tipi dolayısıyla "ana kırmak", 1027 00:45:42,100 --> 00:45:45,743 Ben Enter vurduğunuzda, ne ayarı Bir kırılma noktası noswap.c denir, 1028 00:45:45,743 --> 00:45:51,270 GDB olan hat 16, aslında benim programını anladım 1029 00:45:51,270 --> 00:45:53,070 olduğunu, benim işlevi aslında. 1030 00:45:53,070 --> 00:45:55,070 Şimdi için görmezden edeceğiz Bu ama bu adres var 1031 00:45:55,070 --> 00:45:57,310 özellikle bu fonksiyonun anısına. 1032 00:45:57,310 --> 00:46:00,240 Yani şimdi ben koşmak tipi zaman, Burada serin ne fark. 1033 00:46:00,240 --> 00:46:05,650 Benim program satırı I sonları yürütmeye duraklatmak için GDB söyledi. 1034 00:46:05,650 --> 00:46:09,850 Yani şimdi benim kodunu değiştirmek zorunda değilsiniz, Bazı printf 's eklemek onu derlemeniz, yeniden çalıştırın 1035 00:46:09,850 --> 00:46:13,300 o, değiştirmek, bazı printf 's eklemek kaydetmek, onu yeniden derlemeniz, çalıştırın. 1036 00:46:13,300 --> 00:46:18,100 Ben sadece benim program sayesinde yürüyebilir İnsan hızda adım adım adım, 1037 00:46:18,100 --> 00:46:20,880 değil hız Intel iç tür de. 1038 00:46:20,880 --> 00:46:24,580 >> Peki şimdi bu satırı fark Ben geri gitmek burada görünür, ve 1039 00:46:24,580 --> 00:46:27,800 gedit benim programa, aslında olduğunu fark 1040 00:46:27,800 --> 00:46:29,280 kod ilk satırı. 1041 00:46:29,280 --> 00:46:31,240 Hat 16 gedit içinde var. 1042 00:46:31,240 --> 00:46:34,610 Orada hat 16 GDB içinde var, ve hatta Bu siyah ve beyaz arayüz olsa 1043 00:46:34,610 --> 00:46:37,760 neredeyse kullanıcı olarak ise dost, bu demektir 1044 00:46:37,760 --> 00:46:41,680 Bu hat 16 idam edilmemiştir Henüz değil, ama o olmak hakkında. 1045 00:46:41,680 --> 00:46:46,220 Yani gerçekten ben baskı yazarsanız x değil printf, sadece print x, 1046 00:46:46,220 --> 00:46:50,730 Ben, sıfır bazı sahte değerini almak x henüz başlatılmamış çünkü. 1047 00:46:50,730 --> 00:46:54,760 Eğer Yani, önümüzdeki yazın gidiyorum, ya da ben sadece önümüzdeki N, fantezi olmak istiyorum. 1048 00:46:54,760 --> 00:46:59,090 Ama önümüzdeki şimdi, girin tipi zaman bu hat 17 geçer edin. 1049 00:46:59,090 --> 00:47:02,840 Yani mantıklı, ben idam ettik hat 16 ve ben şimdi baskı x yazın 1050 00:47:02,840 --> 00:47:03,640 Ben ne görmek gerekir? 1051 00:47:03,640 --> 00:47:04,970 1052 00:47:04,970 --> 00:47:05,520 Bir. 1053 00:47:05,520 --> 00:47:07,820 >> Ve şimdi bu kuşkusuz kafa karıştırıcı. 1054 00:47:07,820 --> 00:47:11,260 2 $, sadece bir fantezi yoludur eğer Daha sonra bu değere başvurmak istiyorum, 1055 00:47:11,260 --> 00:47:12,510 Eğer "Dolar iki oturum." diyebilirsiniz 1056 00:47:12,510 --> 00:47:13,480 Bir arka referans gibi. 1057 00:47:13,480 --> 00:47:14,570 Ama şimdi, sadece görmezden. 1058 00:47:14,570 --> 00:47:17,070 Ne ilginç ne olduğunu Eşittir işaretinin sağ tarafta. 1059 00:47:17,070 --> 00:47:21,000 Ve şimdi yanında yine yazarsanız ve baskı y I 2 görmelisiniz. 1060 00:47:21,000 --> 00:47:23,870 Ben de şimdi yazdırabilirsiniz tekrar x, ve açıkçası, 1061 00:47:23,870 --> 00:47:27,130 Ben olarak biraz karıştı alıyorum eğer Ben neredeyim, ben liste için liste yazabilirsiniz 1062 00:47:27,130 --> 00:47:30,590 ve sadece etrafında bazı bağlamda görmek nokta aslında kulüpler. 1063 00:47:30,590 --> 00:47:35,180 Ve şimdi ben yazabilirsiniz Bir sonraki ve orada x 1'dir. 1064 00:47:35,180 --> 00:47:36,300 Şimdi önümüzdeki yazın. 1065 00:47:36,300 --> 00:47:37,710 Ah, y 2 olduğunu. 1066 00:47:37,710 --> 00:47:40,750 Ve yine, bu kafa karıştırıcı GDB üretiminin çünkü 1067 00:47:40,750 --> 00:47:43,044 Kendi çıkışı ile kaynaştı ediliyor. 1068 00:47:43,044 --> 00:47:45,710 Ama tarafından akılda tutarsak ileri geri kodu bakarak 1069 00:47:45,710 --> 00:47:47,740 veya yan dışarı atarken belki yan, sen olacak 1070 00:47:47,740 --> 00:47:51,020 Gerçekten ben sadece görmek Benim program sayesinde atlama. 1071 00:47:51,020 --> 00:47:54,620 >> Ama tam anlamıyla, sonra ne fark. 1072 00:47:54,620 --> 00:47:56,380 İşte satır 22 var. 1073 00:47:56,380 --> 00:48:01,315 Böylece hareketli, beni üzerine gidelim 23, ve ben şimdi, hala bir x yazdırın. 1074 00:48:01,315 --> 00:48:03,890 Ve ben hala, şimdi y yazdırmak. 1075 00:48:03,890 --> 00:48:05,820 Yani bu yararlı bir egzersiz değildir. 1076 00:48:05,820 --> 00:48:07,450 Yani bu kokan edelim. 1077 00:48:07,450 --> 00:48:10,069 Bana kadar geri dönelim Yine üst ve tipi çalıştırın. 1078 00:48:10,069 --> 00:48:12,110 Ve bu programı söylüyor Bu ayıklanacak var 1079 00:48:12,110 --> 00:48:14,109 Zaten başladı, başından itibaren başladı. 1080 00:48:14,109 --> 00:48:15,420 Evet, yine bu yapalım. 1081 00:48:15,420 --> 00:48:22,000 Ve bu sefer, gelecek yapalım Bir sonraki, sonraki, bir sonraki, bir sonraki, 1082 00:48:22,000 --> 00:48:24,180 ama şimdi işler ilginçleşiyor. 1083 00:48:24,180 --> 00:48:27,760 Şimdi adım istiyorum takas, bu yüzden bir sonraki yazmayın. 1084 00:48:27,760 --> 00:48:34,380 Ben bunu fark şimdi adım yazın ve noswap.c hattına 33 beni atladı. 1085 00:48:34,380 --> 00:48:37,240 Ben gedit geri giderseniz, satır 33 ne? 1086 00:48:37,240 --> 00:48:40,500 Bu gerçek, ilk var swap içinde kod satırı. 1087 00:48:40,500 --> 00:48:44,150 Hangi çünkü artık ben can, güzel tür etrafında karıştırmak ve meraklı olsun 1088 00:48:44,150 --> 00:48:46,052 olarak orada ne gerçekten oluyor. 1089 00:48:46,052 --> 00:48:46,760 Bana tmp yazdırmak edelim. 1090 00:48:46,760 --> 00:48:47,770 1091 00:48:47,770 --> 00:48:48,800 Vay. 1092 00:48:48,800 --> 00:48:51,438 Neden tmp bazı var deli, sahte çöp değeri var mı? 1093 00:48:51,438 --> 00:48:54,579 1094 00:48:54,579 --> 00:48:56,120 HEDEF KİTLE: Bu başlatılmadı. 1095 00:48:56,120 --> 00:48:57,150 HOPARLÖR 1: Bu başlatılmadı. 1096 00:48:57,150 --> 00:49:00,270 Ve gerçekten de, bir program çalıştırdığınızda, Eğer bellek bir sürü verilen konum 1097 00:49:00,270 --> 00:49:03,392 işletim sistemi tarafından, ancak herhangi bir değer başlatıldı değil, 1098 00:49:03,392 --> 00:49:05,600 böylece ne olursa olsun bit sen o olsa bile, burada görme 1099 00:49:05,600 --> 00:49:07,770 Bu deli büyük negatif sayı, sadece anlamına gelir 1100 00:49:07,770 --> 00:49:10,750 Bu bu kalıntıları vardır RAM önceki bazı kullanım, 1101 00:49:10,750 --> 00:49:13,050 Ben değil olsa bile kendimi henüz gerekli. 1102 00:49:13,050 --> 00:49:17,086 Yani şimdi ben önde ve tipi gidiyorum Bir sonraki ve ben şimdi baskı tmp yazarsanız, 1103 00:49:17,086 --> 00:49:17,835 Ben ne görmek gerekir? 1104 00:49:17,835 --> 00:49:19,570 1105 00:49:19,570 --> 00:49:23,360 Ne olursa olsun bir değeri vardı, adil, ilk argüman 1106 00:49:23,360 --> 00:49:25,550 x gibi ilk şey, geçirilen 1107 00:49:25,550 --> 00:49:30,450 yani ve x, aynı olmalıdır, böylece yazdırmak tmp bana bir tane yazdırmak gerekir. 1108 00:49:30,450 --> 00:49:36,360 >> Eğer sorun sette görürsünüz Peki Üç, GDB ile ilgili bir tür öğretici 1109 00:49:36,360 --> 00:49:40,020 ama bu başlangıç ​​olduğunu biliyoruz Bir araç bir görünüm aslında olacak 1110 00:49:40,020 --> 00:49:42,774 Eğer sorunları çözmeye yardımcı çok daha etkili. 1111 00:49:42,774 --> 00:49:44,690 Sonuçta konum neler Çarşamba günü yapacağız 1112 00:49:44,690 --> 00:49:48,180 Birkaç katmanları geri soyma başlar edilir ve bazı eğitim tekerlekleri kaldırmak. 1113 00:49:48,180 --> 00:49:50,496 O şey denir dize o Biz bir süre kullandım 1114 00:49:50,496 --> 00:49:53,370 yavaş yavaş o götürmek için gidiyoruz ve sizden hakkında konuşmaya başlamak 1115 00:49:53,370 --> 00:49:55,725 bir şey daha ezoterik char * olarak bilinen, 1116 00:49:55,725 --> 00:49:59,550 ama biz güzel bu yapmak için gidiyoruz ve yavaşça ilk başta, hatta işaretçiler olsa, 1117 00:49:59,550 --> 00:50:02,730 dedikleri gibi, bazı yapabilirsiniz eğer istismar çok kötü şeyler, 1118 00:50:02,730 --> 00:50:06,040 küçük bir claymation bakarak Bizim arkadaş Stanford Nick Parlante 1119 00:50:06,040 --> 00:50:09,670 Üniversite, bilgisayardaki bir profesör Bu önizleme araya bilim 1120 00:50:09,670 --> 00:50:11,075 Bu Çarşamba gelmek olduğunu ne. 1121 00:50:11,075 --> 00:50:12,196 1122 00:50:12,196 --> 00:50:13,400 >> [VİDEO OYNATMA] 1123 00:50:13,400 --> 00:50:13,900 -Hey, Binky. 1124 00:50:13,900 --> 00:50:14,930 1125 00:50:14,930 --> 00:50:15,780 Uyanmak. 1126 00:50:15,780 --> 00:50:17,240 Bu işaretçi eğlence zamanı. 1127 00:50:17,240 --> 00:50:18,260 1128 00:50:18,260 --> 00:50:19,350 >> Ne o? 1129 00:50:19,350 --> 00:50:21,150 Işaretçiler hakkında bilgi edinin? 1130 00:50:21,150 --> 00:50:22,050 Ah, ne güzel! 1131 00:50:22,050 --> 00:50:22,897 1132 00:50:22,897 --> 00:50:23,730 [SON VİDEO OYNATMA] 1133 00:50:23,730 --> 00:50:25,396 HOPARLÖR 1: Bu Çarşamba günü sizi bekliyor. 1134 00:50:25,396 --> 00:50:26,440 Size daha sonra göreceğiz. 1135 00:50:26,440 --> 00:50:27,106 [VİDEO OYNATMA] 1136 00:50:27,106 --> 00:50:30,420 -Ve Şimdi, Derin Düşünceler, DAV Farnham tarafından. 1137 00:50:30,420 --> 00:50:33,980 1138 00:50:33,980 --> 00:50:35,900 -Neden C öğrenme >>? 1139 00:50:35,900 --> 00:50:36,785 Neden A +? 1140 00:50:36,785 --> 00:50:38,550 1141 00:50:38,550 --> 00:50:40,910 >> [KAHKAHA] 1142 00:50:40,910 --> 00:50:42,160 >> [SON VİDEO OYNATMA]