1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J MALAN: Hepsi Pekala, bu CS50 olduğunu. 3 00:00:13,060 --> 00:00:15,040 Ve bu açıkça bir cuma günü. 4 00:00:15,040 --> 00:00:16,850 Ve bu hafta biri sonudur. 5 00:00:16,850 --> 00:00:21,020 Yani biz bıraktığımız Hatırlayacağınız, bir tür çekişme ile son kez. 6 00:00:21,020 --> 00:00:25,020 Mademki biz bu yalanı açığa hayır o olursa olsun büyüyen size öğretilen oldum ne 7 00:00:25,020 --> 00:00:31,610 kadar 10 ile ayrılır 1 değil, Aslında, 0.1 ya da 0.100 veya 0,10000. 8 00:00:31,610 --> 00:00:35,270 Aslında, eğer biz bu derleme Program, biz dün yaptığı gibi, 9 00:00:35,270 --> 00:00:39,770 belirsizliğe yapın ve sonra nokta yapmak, çizgi, belirsizlik, 10 00:00:39,770 --> 00:00:43,600 Bu ne olduğunu öğrendim 1 aslında 10 bölü. 11 00:00:43,600 --> 00:00:46,140 Yani gerçekten oldukça durumda değil. 12 00:00:46,140 --> 00:00:49,014 Ama bu bazı ipucu yok Bilgisayarların temel sınırlama. 13 00:00:49,014 --> 00:00:50,930 Ve gerçekten, arasında şeyler yapmamız için gidiyoruz 14 00:00:50,930 --> 00:00:55,130 Bugün bu var, neden bir göz atın olduğunu oldu, bu neler etkileri, 15 00:00:55,130 --> 00:00:58,430 İnsanlık başarısız oldu nasıl Bazı çok bu kavramak 16 00:00:58,430 --> 00:01:00,410 Ciddi situations-- sonucu 17 00:01:00,410 --> 00:01:03,141 Oldukça trajik olmuştur ve aynı zamanda expensive-- ve 18 00:01:03,141 --> 00:01:04,849 biz nasıl bir göz atın aslında savunmak 19 00:01:04,849 --> 00:01:06,530 sınırlamalar bu tür karşı. 20 00:01:06,530 --> 00:01:10,940 Yani sezgisel, belki de Neden 1 10 bölünür, 21 00:01:10,940 --> 00:01:15,480 Benim bilgisayara göre Burada, sadece 1/10, 0.10? 22 00:01:15,480 --> 00:01:15,980 Evet. 23 00:01:15,980 --> 00:01:16,530 Ne düşünüyorsun? 24 00:01:16,530 --> 00:01:17,860 >> KİTLE ÜYE: radix farkı nedir? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J MALAN: nedir? 26 00:01:18,550 --> 00:01:19,730 Ah, radix farkı nedir? 27 00:01:19,730 --> 00:01:20,720 Yani tamamen değil. 28 00:01:20,720 --> 00:01:23,200 Aslında daha var donanım temel. 29 00:01:23,200 --> 00:01:23,980 Diğer düşünceler? 30 00:01:23,980 --> 00:01:24,584 Evet. 31 00:01:24,584 --> 00:01:26,750 KİTLE ÜYE: Onlar farklı sayıları temsil? 32 00:01:26,750 --> 00:01:27,880 DAVID J MALAN: Yani onlar-- Sağ. 33 00:01:27,880 --> 00:01:29,338 Onlar farklı sayıları temsil etmektedir. 34 00:01:29,338 --> 00:01:30,700 Yanlış anlaşılan. 35 00:01:30,700 --> 00:01:33,190 Peki, o-- Böylece farklı Neyden? 36 00:01:33,190 --> 00:01:34,490 Ya da kime? 37 00:01:34,490 --> 00:01:35,050 Bizden? 38 00:01:35,050 --> 00:01:35,966 KİTLE ÜYE: Evet. 39 00:01:35,966 --> 00:01:38,930 Onlar ondalık kullanmayın [duyulamaz] sistem. 40 00:01:38,930 --> 00:01:39,680 DAVID J MALAN: Tamam. 41 00:01:39,680 --> 00:01:41,560 Yani bir anlamda, onlar değil ondalık sistemi kullanın. 42 00:01:41,560 --> 00:01:43,720 Kaputun altında, Her şey, aslında, ikili 43 00:01:43,720 --> 00:01:45,510 ve aslında ilgili var. 44 00:01:45,510 --> 00:01:48,135 Ama bile basittir Bundan daha açıklama. 45 00:01:48,135 --> 00:01:48,635 Evet. 46 00:01:48,635 --> 00:01:49,970 >> KİTLE ÜYE: Onlar sadece bu kadar çok bit var. 47 00:01:49,970 --> 00:01:52,370 Onlar sadece belli saklayabilirsiniz ölçüde, ondalık olduğu gibi. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J MALAN: Evet. 49 00:01:52,780 --> 00:01:54,420 Bu gerçekten de alıyorum ne olduğunu. 50 00:01:54,420 --> 00:01:57,180 O bilgisayarları çıkıyor tipik olacak her zaman yalnızca 51 00:01:57,180 --> 00:01:59,690 bilgi sınırlı miktarda kullanın bir şey temsil etmek. 52 00:01:59,690 --> 00:01:59,870 Sağ? 53 00:01:59,870 --> 00:02:02,110 Sonuçta, biz sadece bir sabit var sabit disk alanı miktarı. 54 00:02:02,110 --> 00:02:04,210 Biz sadece sabit bir miktar var RAM veya bilgisayar belleği. 55 00:02:04,210 --> 00:02:06,251 Ve sadece bir varsa bir şeyin sabit tutar, 56 00:02:06,251 --> 00:02:09,611 kesinlikle aslında saymak olamaz sonsuzluk veya istediğiniz herhangi bir numaraya. 57 00:02:09,611 --> 00:02:11,610 Sen, bir tür, var almak ve hangi aralığı seçin 58 00:02:11,610 --> 00:02:13,220 size desteklemek için gidiyoruz değerleri. 59 00:02:13,220 --> 00:02:18,100 >> Ve böylece, örneğin, bir hafta ya da iki önce biz ASCII hakkında konuştuk, 60 00:02:18,100 --> 00:02:21,610 ve biz yaklaşık 8 bit konuştuk, veya bir bayt, yani, konuşmak için 61 00:02:21,610 --> 00:02:26,360 En büyük sayı biz-ebil 8 bit ile ne olduğunu temsil? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 Ve biz 256 toplam değerleri temsil edebilir ama biz onlardan biri harcamak değilse 64 00:02:31,850 --> 00:02:34,190 Peki 0--, aynı biz eğer 0 bunlardan birini harcamak, 65 00:02:34,190 --> 00:02:36,830 Daha sonra büyük sayı 255, tabii ki,. 66 00:02:36,830 --> 00:02:39,410 >> Peki bu olduğunu, çıkıyor Bu bağlamda çok durumda. 67 00:02:39,410 --> 00:02:42,350 Biz konuşurken, geçen sefer başladı kayan noktalı sayılar, hakkında hangi 68 00:02:42,350 --> 00:02:44,640 içinde, tamsayılar farklıdır Onlar bir ondalık noktası var 69 00:02:44,640 --> 00:02:47,056 ve umarım, bazı sayılar bundan sonra, ama onlar da vardır. 70 00:02:47,056 --> 00:02:51,730 Bir bilgisayar yalnızca tipik gidiyor 32 bit, belki 64 bit kullanmak için 71 00:02:51,730 --> 00:02:53,497 Bir kayan nokta değeri temsil. 72 00:02:53,497 --> 00:02:56,080 Olsa bile Yani biz büyüdük matematik öğrenme ve bilme 73 00:02:56,080 --> 00:02:58,750 Kesinlikle olabilir ki sayıların sonsuz sayıda 74 00:02:58,750 --> 00:03:01,650 ondalık noktasının, sonra değil Eğer sonlu bellek varsa. 75 00:03:01,650 --> 00:03:03,930 Sen, biraz, yuvarlak zorunda veya almak ve seçtiğiniz 76 00:03:03,930 --> 00:03:05,346 numaralar temsil gidiyoruz. 77 00:03:05,346 --> 00:03:08,710 Ve böylece bir anlamda, aklınıza gelebilecek, Bu varlık bilgisayar en yakın 78 00:03:08,710 --> 00:03:14,050 değeri 10/01 yaklaşma bu Sadece 32 ya da öylesine bit ile alabilirsiniz. 79 00:03:14,050 --> 00:03:15,300 Ve bu sadece 1/10 değil. 80 00:03:15,300 --> 00:03:19,820 >> Örneğin, bu değiştirirseniz Düşündüğümüz 1/3, hatta daha kolaydır. 81 00:03:19,820 --> 00:03:21,300 Yani 1'den 3'e bölünür. 82 00:03:21,300 --> 00:03:22,355 Bana dosyayı kaydetmek edelim. 83 00:03:22,355 --> 00:03:24,680 Beni go ahead ve bunu derlemeniz edelim. 84 00:03:24,680 --> 00:03:25,820 Ve beni yeniden çalıştırın. 85 00:03:25,820 --> 00:03:30,000 Burada da, görünüşe göre, 1/3 0.3 değil, ve daha sonra 3 's sonsuz sayıda 86 00:03:30,000 --> 00:03:30,770 bundan sonra. 87 00:03:30,770 --> 00:03:32,540 Sen sonunda bu belirsizlik var. 88 00:03:32,540 --> 00:03:35,544 Bu yüzden insanlar doğru ve ne Eğer, aslında, isimli doğru öğrendim 89 00:03:35,544 --> 00:03:37,460 ama biz darbeleme ediyoruz Bazı sınırlamalar karşı. 90 00:03:37,460 --> 00:03:39,420 >> Ve ben düşündüm Biz bugün yaparım, başlamak olduğunu 91 00:03:39,420 --> 00:03:42,190 açıkçası, bakarak Bu trajik sonuçları 92 00:03:42,190 --> 00:03:45,490 Bazen zaman insanoğlu Oldukça uygulamıyor 93 00:03:45,490 --> 00:03:48,460 Bu gerçeklik ve bu sınırlamaların için. 94 00:03:48,460 --> 00:03:52,360 Ve biz vinyet bir dizi göreceksiniz alan History Channel 95 00:03:52,360 --> 00:03:53,950 nasıl şeyler bir göz yanlış gitmiş. 96 00:03:53,950 --> 00:03:56,340 Bu, yaklaşık 8 dakika uzunluğunda ve biz bu sonra geri geleceğiz 97 00:03:56,340 --> 00:03:59,439 ve tam bir göz atın başka ne ters gidebilir. 98 00:03:59,439 --> 00:04:00,605 Biz ışıklar-- dim olsaydı 99 00:04:00,605 --> 00:04:02,350 >> [VİDEO OYNATMA] 100 00:04:02,350 --> 00:04:06,310 >> -Bilgisayar, Hepimiz kabul geldim genellikle sinir bozucu sorunlar olduğunu 101 00:04:06,310 --> 00:04:07,750 onlarla birlikte gitmek. 102 00:04:07,750 --> 00:04:11,370 Hatalar, virüsler ve yazılım hataları küçük fiyatları 103 00:04:11,370 --> 00:04:13,230 kolaylık ödemek için. 104 00:04:13,230 --> 00:04:17,519 Ama yüksek teknoloji ve yüksek hızda Askeri ve uzay programı uygulamaları, 105 00:04:17,519 --> 00:04:22,130 En küçük bir sorun olabilir felaketinin içine büyütülecek. 106 00:04:22,130 --> 00:04:27,750 4 Haziran 1996 tarihinde, bilim adamları hazırladı insansız Ariane 5 roketi başlatmak için. 107 00:04:27,750 --> 00:04:29,890 Bilimsel taşıyordu Uydular tasarlanmış 108 00:04:29,890 --> 00:04:33,030 tam olarak nasıl kurmak Dünya'nın manyetik alanı etkileşime 109 00:04:33,030 --> 00:04:35,600 Güneş rüzgarlar ile. 110 00:04:35,600 --> 00:04:37,930 Roket için inşa edildi Avrupa Uzay Ajansı 111 00:04:37,930 --> 00:04:41,620 ve tesis kapalı kaldırdı Fransız Guyanası kıyısında. 112 00:04:41,620 --> 00:04:44,924 >> -Ve Yaklaşık 30 saniye içinde Uçuş, ilk 113 00:04:44,924 --> 00:04:46,340 fark şeylerin yanlış gidiyordu. 114 00:04:46,340 --> 00:04:49,280 Memeleri döner olduğunu Bir şekilde onlar gerçekten olmamalıdır. 115 00:04:49,280 --> 00:04:53,042 Uçuş içine 40 saniye civarında, açıkça araç, sorun oldu 116 00:04:53,042 --> 00:04:55,250 yaptıkları zaman ve işte Karar onu yok etmek. 117 00:04:55,250 --> 00:04:58,970 Bir Range Güvenlik Görevlisi ile muazzam bağırsaklar düğmeye bastı, 118 00:04:58,970 --> 00:05:03,940 o olabilir önce roket havaya uçurdu kamu güvenliği için bir tehlike haline gelmiştir. 119 00:05:03,940 --> 00:05:06,600 >> -Bu Kızlık oldu Ariane 5 sefer, 120 00:05:06,600 --> 00:05:09,270 ve imha aldı bir kusur nedeniyle koyun 121 00:05:09,270 --> 00:05:10,992 Roketin yazılımında gömülü. 122 00:05:10,992 --> 00:05:12,700 Üzerinde -The sorun Ariane olduğunu orada 123 00:05:12,700 --> 00:05:15,370 Gerekli sayıda oldu 64 bit, ifade etmek 124 00:05:15,370 --> 00:05:18,150 ve o dönüştürmek istiyordu bir 16 bit'lik bir sayıya. 125 00:05:18,150 --> 00:05:21,160 Bu sayı olduğu varsayılır çok büyük olacak asla, 126 00:05:21,160 --> 00:05:25,020 ki bu rakam en 64 bit numarası 0 aitti. 127 00:05:25,020 --> 00:05:26,310 Onlar yanlış. 128 00:05:26,310 --> 00:05:28,680 >> Birinin -The yetersizlik Yazılım programı kabul etmek 129 00:05:28,680 --> 00:05:32,820 tarafından üretilen sayıda tür Başka bir başarısızlık kökünde oldu. 130 00:05:32,820 --> 00:05:37,190 Yazılım geliştirme olmuştu bir yeni teknoloji çok pahalı bir parçası. 131 00:05:37,190 --> 00:05:40,760 Ariane roketi 4 çok olmuştu yazılım, başarılı çok 132 00:05:40,760 --> 00:05:43,990 aynı zamanda olduğu için oluşturulan Ariane 5 üzerinde kullanılan. 133 00:05:43,990 --> 00:05:49,750 >> -The Temel sorun Ariane oldu 5, daha hızlı daha hızlı hızlandırdı. 134 00:05:49,750 --> 00:05:53,000 Ve Yazılım yoktu Bu sorumluydu. 135 00:05:53,000 --> 00:05:56,330 >> Roket -The imha büyük bir mali felaket oldu 136 00:05:56,330 --> 00:05:59,670 Kusura bir dakika yazılım hatası. 137 00:05:59,670 --> 00:06:01,990 Ama bu ilk değildi zamanlı veri dönüştürme sorunları 138 00:06:01,990 --> 00:06:05,310 Modern roket teknolojisini musallat etmişti. 139 00:06:05,310 --> 00:06:08,300 >> Başlaması ile birlikte, 1991 -In Birinci Körfez Savaşı, 140 00:06:08,300 --> 00:06:10,650 Patriot füze benzer bir tür deneyimli 141 00:06:10,650 --> 00:06:12,650 sayı dönüştürme sorunu. 142 00:06:12,650 --> 00:06:15,620 Bunun bir sonucu olarak, 28 kişi, 28 Amerikan askeri 143 00:06:15,620 --> 00:06:18,440 öldürüldü ve yaklaşık edildi 100 kişi yaralandı, 144 00:06:18,440 --> 00:06:21,900 ne zaman gerekiyordu Patriot, Gelen Scuds karşı korumak için, 145 00:06:21,900 --> 00:06:24,630 bir füze ateş başarısız oldu. 146 00:06:24,630 --> 00:06:29,440 >> -Ne Zaman Irak'ın Kuveyt'i işgal ve Amerika'yı Erken 1991 yılında Çöl Fırtınası başlattı 147 00:06:29,440 --> 00:06:33,800 Patriot füze bataryaları konuşlandırıldı Suudi Arabistan ve İsrail'i korumak için 148 00:06:33,800 --> 00:06:37,000 Irak Scud füze saldırılarına karşı. 149 00:06:37,000 --> 00:06:40,610 Patriot ABD, orta menzilli olduğunu Yüzey havaya sistemi 150 00:06:40,610 --> 00:06:43,010 Raytheon şirketi tarafından üretilen. 151 00:06:43,010 --> 00:06:49,080 >> Patriot uçağı ve -The boyutu kendisi, yaklaşık 20 feet uzunluğunda, ilgili. 152 00:06:49,080 --> 00:06:51,250 Ve yaklaşık 2000 £ ağırlığındadır. 153 00:06:51,250 --> 00:06:55,195 Ve bu about-- bir savaş başlığı taşıyan Ben kabaca 150 £ olduğunu düşünüyorum. 154 00:06:55,195 --> 00:06:59,500 Ve savaş başlığı, kendisi yüksek patlayıcı olduğu, 155 00:06:59,500 --> 00:07:02,570 hangi etrafında parçaları vardır. 156 00:07:02,570 --> 00:07:06,890 Savaş başlığı gövde ise buckshot gibi davranacak şekilde tasarlanmıştır. 157 00:07:06,890 --> 00:07:09,130 >> -The Füzeler vardır 4 her bir kap, gerçekleştirilebilir, 158 00:07:09,130 --> 00:07:12,080 ve yarı-römork tarafından taşınır. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot anti-füze sistemi Şimdi en az 20 yıl geriye gider. 160 00:07:19,100 --> 00:07:22,320 Başlangıçta dizayn edilmiştir Bir hava savunma füze olarak 161 00:07:22,320 --> 00:07:24,180 düşman uçakları vurmaya. 162 00:07:24,180 --> 00:07:27,860 Birinci Körfez Savaşı, savaş boyunca geldi, 163 00:07:27,860 --> 00:07:32,745 Ordu bunu kullanmak istedim Scuds değil, uçaklar vurmaya. 164 00:07:32,745 --> 00:07:36,150 Irak Kuvvetleri değildi Bir sorun çok, 165 00:07:36,150 --> 00:07:39,110 ancak ordu Scuds endişe edildi. 166 00:07:39,110 --> 00:07:42,340 Ve böylece çalıştı Patriot yükseltin. 167 00:07:42,340 --> 00:07:44,760 >> Bir düşman -Intercepting füze mach beş de seyahat 168 00:07:44,760 --> 00:07:47,250 Yeterince zor olacaktı. 169 00:07:47,250 --> 00:07:50,000 Ama ne zaman Patriot hizmete koştu, 170 00:07:50,000 --> 00:07:54,030 Ordu, bir farkında değildi Yapılan Irak değişiklik 171 00:07:54,030 --> 00:07:56,840 Onların scuds vurmak neredeyse imkansız. 172 00:07:56,840 --> 00:08:01,020 >> Ne oldu scuds olduğu geliyordu, kararsız olduğunu 173 00:08:01,020 --> 00:08:02,310 Onlar wobbling bulundu. 174 00:08:02,310 --> 00:08:05,140 Bunun nedeni, sırayla, Iraklılar oldu 175 00:08:05,140 --> 00:08:09,450 üzerinden 600 kilometre almak için 300 kilometrelik menzilli füze, 176 00:08:09,450 --> 00:08:12,930 Ön savaş başlığının dışarı ağırlığını aldı ve savaş başlığı çakmak yaptı. 177 00:08:12,930 --> 00:08:17,710 Yani şimdi, Patriot adlı gelmek için çalışıyoruz scud de, çoğu zaman, 178 00:08:17,710 --> 00:08:21,700 ezici çoğunluğu Zaman, sadece scud tarafından uçmak. 179 00:08:21,700 --> 00:08:25,700 >> Patriot sistemi operatörleri -Bir Patriot hedefini kaçırmış fark 180 00:08:25,700 --> 00:08:29,790 Onlar, Patriot adlı savaş başlığı patlatıldı Bunun mümkünse kayıpları önlemek için 181 00:08:29,790 --> 00:08:32,380 yere düşmesine izin verildi. 182 00:08:32,380 --> 00:08:36,340 >> Çoğu insan ne gördüm -Bu oldu Gökyüzündeki o büyük Fireballs, 183 00:08:36,340 --> 00:08:41,289 gibi yanlış Scud savaş başlığı yakaladığını. 184 00:08:41,289 --> 00:08:43,590 Gece olmasına rağmen Gökyüzü, Patriots çıktı 185 00:08:43,590 --> 00:08:47,020 başarılı bir şekilde olmak Dhahran de, Scuds yok, 186 00:08:47,020 --> 00:08:49,730 Hiçbir hata olabilir onun performansı hakkında. 187 00:08:49,730 --> 00:08:53,990 Orada, Patriot radar sistemi Gelen Scud izini kaybettik, 188 00:08:53,990 --> 00:08:56,650 ve başlattı asla Bir yazılım kusur nedeniyle. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 İlk keşfedilen İsraillilere oldu uzun sistem üzerinde olduğunu, 191 00:09:04,100 --> 00:09:07,510 büyük zaman tutarsızlık nedeniyle gömülü bir saatin, oldu 192 00:09:07,510 --> 00:09:09,490 Sistemin bilgisayar. 193 00:09:09,490 --> 00:09:12,670 >> -Yaklaşık 2 hafta önce Dhahran trajedi, 194 00:09:12,670 --> 00:09:15,010 İsrailliler bildirildi Savunma Bakanlığı, 195 00:09:15,010 --> 00:09:17,940 Sistem zaman kaybetmeden olduğunu, Bu çalışan yaklaşık 8 saat sonra, 196 00:09:17,940 --> 00:09:21,410 bunlar sistem olduğunu fark fark daha az hassas hale. 197 00:09:21,410 --> 00:09:25,290 Savunma Bakanlığı yanıt verdi Patriot pillerin tüm söylüyorum 198 00:09:25,290 --> 00:09:28,070 sistemlerini terk etmemeleri Uzun bir süre için. 199 00:09:28,070 --> 00:09:29,960 Onlar uzun bir süre ne olduğunu söylemedim. 200 00:09:29,960 --> 00:09:30,460 8 saat? 201 00:09:30,460 --> 00:09:30,960 10 saat? 202 00:09:30,960 --> 00:09:31,870 1000 saat? 203 00:09:31,870 --> 00:09:33,734 Kimse biliyordu. 204 00:09:33,734 --> 00:09:35,650 -The Patriot batarya kışlasında konuşlanmış 205 00:09:35,650 --> 00:09:40,410 Dhahran ve onun kusurlu iç at 100 saatten fazla saat olmuştu 206 00:09:40,410 --> 00:09:43,041 25 Şubat gecesi. 207 00:09:43,041 --> 00:09:47,416 >> -Bu Doğrulukla zaman paletli yaklaşık 1/10 saniyenin evi. 208 00:09:47,416 --> 00:09:49,290 Şimdi ikinci bir 1/10 İlginç bir numara 209 00:09:49,290 --> 00:09:52,700 olamaz, çünkü tam olarak ikili olarak ifade edilmiştir. 210 00:09:52,700 --> 00:09:54,820 Ki bu olamaz, demek ifade, tam olarak, 211 00:09:54,820 --> 00:09:57,420 Herhangi Modern dijital bilgisayar. 212 00:09:57,420 --> 00:10:01,460 Bu, inanmak zor ama örnek olarak kullanabilirsiniz. 213 00:10:01,460 --> 00:10:03,520 Numarasını, 1/3 ele alalım. 214 00:10:03,520 --> 00:10:07,110 1/3 ifade edilemez ondalık tam. 215 00:10:07,110 --> 00:10:11,490 1/3 sonsuzluğa için devam 0.333 olduğunu. 216 00:10:11,490 --> 00:10:15,486 Bunu yapmanın bir yolu ile, var ondalık mutlak doğruluk. 217 00:10:15,486 --> 00:10:18,360 Yani tam olarak aynı tür Patriot oldu sorun. 218 00:10:18,360 --> 00:10:22,510 Uzun sistem koştu, kötü zamanı hatası oldu. 219 00:10:22,510 --> 00:10:28,420 >> 100 saatlik bir -Önce hata zaman içinde sadece yaklaşık 1/3 bir saniye idi. 220 00:10:28,420 --> 00:10:31,830 Ancak hedef açısından füze mach 5 de seyahat, 221 00:10:31,830 --> 00:10:35,890 Bir izleme sonuçlandı 600 metre hata. 222 00:10:35,890 --> 00:10:38,970 Bu ölümcül bir hata olur Dhahran askerler için. 223 00:10:38,970 --> 00:10:45,035 >> Ne oldu, bir Scud başlatmak olduğunu oldu erken uyarı uyduları tarafından tespit 224 00:10:45,035 --> 00:10:48,930 ve Scud olduğunu, yeni genel yönde geliyor. 225 00:10:48,930 --> 00:10:51,170 Önümüzdeki nereye onlar bilmiyordu. 226 00:10:51,170 --> 00:10:53,990 >> -Bu Radara kadar şimdi oldu Patriot sistemi bileşeni, 227 00:10:53,990 --> 00:10:58,520 bulmak ve korumak için, Dhahran savunan Gelen düşman füze iz. 228 00:10:58,520 --> 00:10:59,690 >> -The Radar çok akıllı. 229 00:10:59,690 --> 00:11:01,710 Aslında takip ediyorum Scud pozisyonu 230 00:11:01,710 --> 00:11:04,040 ve daha sonra nereye tahmin o, muhtemelen olurdu 231 00:11:04,040 --> 00:11:06,140 bir dahaki sefere, Radar dışarı darbe gönderdi. 232 00:11:06,140 --> 00:11:07,660 Bu aralık kapısı denirdi. 233 00:11:07,660 --> 00:11:11,870 >> -O Zaman, Patriot kez yeterli zaman vardır karar 234 00:11:11,870 --> 00:11:16,280 Geri dönüp bir sonraki kontrol etmek geçti Bu tespit nesne için konum, 235 00:11:16,280 --> 00:11:17,280 geri gider. 236 00:11:17,280 --> 00:11:21,690 Yani yanlış geri gittiğinde Yer, o zaman hiçbir nesne görür 237 00:11:21,690 --> 00:11:25,230 ve hiçbir olduğunu karar Nesne, bu yanlış bir algılama oldu, 238 00:11:25,230 --> 00:11:26,650 ve parça düşer. 239 00:11:26,650 --> 00:11:29,690 Gelen Scud kayboldu radar ekranından, 240 00:11:29,690 --> 00:11:32,670 ve saniye sonra, o kışlaya çarptı. 241 00:11:32,670 --> 00:11:38,100 Scud 28 ölü ve son biri Birinci Körfez Savaşı sırasında ateş etti. 242 00:11:38,100 --> 00:11:43,460 Trajik, güncellenmiş yazılım ertesi gün Dhahran geldi. 243 00:11:43,460 --> 00:11:46,150 Yazılım kusur vardı edilmiş sabit kapatma 244 00:11:46,150 --> 00:11:48,940 sorunlu bir bölüm Patriot füze tarihçesi. 245 00:11:48,940 --> 00:11:50,220 >> [SON OYNATMA] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J MALAN: Yani biz bir göz atacağız Sadece biraz bazı benzer sınırlamalar. 247 00:11:54,340 --> 00:11:58,470 Ama önce, haydi Birkaç geçiş Bilginize var. 248 00:11:58,470 --> 00:12:01,575 Bu hafta sonu Şehre Yani, orada süper bölümler olacak, 249 00:12:01,575 --> 00:12:04,200 yerini alması amacıyla, hangi düzenli olarak planlanan bölümler, hangi 250 00:12:04,200 --> 00:12:05,460 dolayısıyla hafta başlayacaktır. 251 00:12:05,460 --> 00:12:08,204 CS50 web sitesinde bir göz atın Bu hakkında daha fazla bilgi için. 252 00:12:08,204 --> 00:12:11,120 Onlar da filme ve izlenebilecek katılamayan kişiler için yaşamak. 253 00:12:11,120 --> 00:12:12,980 Sorun 1 set Zaten dersin web sitesi 254 00:12:12,980 --> 00:12:15,105 ve biz bir göz atacağız Sadece biraz o. 255 00:12:15,105 --> 00:12:18,350 Ve mesai saatleri de alacak Perşembe ile bu Pazartesi yerleştirin. 256 00:12:18,350 --> 00:12:20,960 >> Yani bu en kanonik oldu programı, son kez baktı. 257 00:12:20,960 --> 00:12:23,590 Bu basit gibi Eğer C yazabilirsiniz programı, 258 00:12:23,590 --> 00:12:25,250 ve hatta bu cesur iddia biraz. 259 00:12:25,250 --> 00:12:25,750 Sağ? 260 00:12:25,750 --> 00:12:28,070 Bir sürü orada Çünkü Bu karmaşıklığı görünen. 261 00:12:28,070 --> 00:12:30,445 Yani kısaca bir göz atalım Ne bu unsurların bazılarını 262 00:12:30,445 --> 00:12:33,080 ve ardından sağlamaya çalışıyoruz nasıl bir zihinsel modeli 263 00:12:33,080 --> 00:12:35,710 programlar bu basit çalışmak ve daha sonra biz başlayacağız 264 00:12:35,710 --> 00:12:38,050 her zamankinden daha karmaşık şeyler bakarak. 265 00:12:38,050 --> 00:12:41,280 Yani bu hat burada, şimdi vurgulanan sarı, biz ne dedin, son kez, 266 00:12:41,280 --> 00:12:43,200 Bu bizim için yaptığı? 267 00:12:43,200 --> 00:12:45,220 Hizmet verdiği amacı nedir? 268 00:12:45,220 --> 00:12:46,984 Geriye gelen herkes? 269 00:12:46,984 --> 00:12:47,483 Evet. 270 00:12:47,483 --> 00:12:48,649 >> KİTLE ÜYE: [duyulamaz] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J MALAN: İyi. 273 00:12:51,704 --> 00:12:53,537 Yani size erişim sağlar komutlara veya atalım 274 00:12:53,537 --> 00:12:56,750 onları aramak fonksiyonları, o kimse Başka ilan olduğunu yazdı, 275 00:12:56,750 --> 00:12:58,350 böylece diğer bazı dosyasında, konuşmak için. 276 00:12:58,350 --> 00:13:02,370 Bu yüzden tam olarak ne bir .h dosyası göreceksiniz Sonunda, bir .c dosyası karşısında olduğunu. 277 00:13:02,370 --> 00:13:04,710 Ama şimdilik, sadece bilmek Bu Printf, örneğin, 278 00:13:04,710 --> 00:13:08,370 olmuştur fonksiyonlar arasında yer alıyor bir yerde, başka bir dosyada beyan 279 00:13:08,370 --> 00:13:12,930 bulutun sabit diskinde başka o Bize printf erişmek ve kullanmak için izin verir 280 00:13:12,930 --> 00:13:15,240 kalkmasından zorunda kalmadan Kendimizi tekerlek söyledi. 281 00:13:15,240 --> 00:13:16,930 Bu arada, ana. 282 00:13:16,930 --> 00:13:19,690 Ana, geçen hafta analog neydi? 283 00:13:19,690 --> 00:13:20,190 Evet. 284 00:13:20,190 --> 00:13:21,460 >> KİTLE ÜYE: Yeşil bayrak tıklandığında. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J MALAN: Evet. 286 00:13:21,740 --> 00:13:23,490 Scratch kıyafetleri, yeşil bayrak tıklandığında. 287 00:13:23,490 --> 00:13:25,560 Bu puzzle parçası gibi şeyleri başladı. 288 00:13:25,560 --> 00:13:28,306 Ve böylece Benzer şekilde, dünyayı yaptım C birkaç yıl önce karar 289 00:13:28,306 --> 00:13:30,930 ve diğer dillerin bir demet, Eğer bir program yazmak istiyorsanız, 290 00:13:30,930 --> 00:13:33,410 İlk fonksiyon Ana, çağrılacak gelmiştir. 291 00:13:33,410 --> 00:13:34,641 Ve bu gibi görünmek zorunda. 292 00:13:34,641 --> 00:13:36,640 Ama biz geri geleceğiz Başka bir zaman, ne kadar, int, 293 00:13:36,640 --> 00:13:38,690 ve geçersiz, bu bağlamda demek. 294 00:13:38,690 --> 00:13:42,860 Şimdilik, kaşlı tür çizilme en puzzle parçası şekli gibi 295 00:13:42,860 --> 00:13:45,080 Bu hatların bazı sayısını saklar. 296 00:13:45,080 --> 00:13:47,070 Ve hatları arasında burada, burada bu biridir. 297 00:13:47,070 --> 00:13:51,610 printf, amacı bir işlevdir Hayat biçimlendirilmiş bir dize yazdırmaktır. 298 00:13:51,610 --> 00:13:55,010 Ve Biçimlendirilmiş tarafından, seni kastediyorum yer tutucu değerleri takabilirsiniz, 299 00:13:55,010 --> 00:13:58,360 ve kaç ondalık belirtebilirsiniz puan, kaç sayı yazdırmak için 300 00:13:58,360 --> 00:14:00,040 Bir ondalık noktasının ve benzeri sonrası. 301 00:14:00,040 --> 00:14:05,040 Ve printf, tabii ki, birini alır veya değişkenler veya parametreler daha 302 00:14:05,040 --> 00:14:06,770 Aksi takdirde daha basit, girdi olarak bilinen. 303 00:14:06,770 --> 00:14:09,230 >> Bir sürü gibi, So printf fonksiyonlar, giriş alır. 304 00:14:09,230 --> 00:14:12,730 Ve bu girişler bağrında Burada iki parantez. 305 00:14:12,730 --> 00:14:15,180 Ve bu iç bir giriş olduğunu. 306 00:14:15,180 --> 00:14:18,600 Biz bunu aradım gibi bir dize var, Hangi karakterlerin sadece bir dizi olduğunu, 307 00:14:18,600 --> 00:14:22,310 Bir kelime veya bir cümle ya da bir bütün gibi deneme bile, çift tırnak arasına. 308 00:14:22,310 --> 00:14:25,712 Ve bu etkilemek için neler var Printf davranışı nedeniyle, tabii ki, 309 00:14:25,712 --> 00:14:27,170 Sadece genel bir yazdırma işlevi var. 310 00:14:27,170 --> 00:14:29,600 Bu ne bilmek gitmiyor Eğer bunu söylemek sürece, yazdırmak için. 311 00:14:29,600 --> 00:14:31,000 Ve sonra, bir minutiae. 312 00:14:31,000 --> 00:14:34,056 Bu garip dedin ne Sembollerin sekansıdır 313 00:14:34,056 --> 00:14:34,556 Evet. 314 00:14:34,556 --> 00:14:35,410 >> KİTLE ÜYE: Yeni hat. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J MALAN: Yeni hat. 316 00:14:35,990 --> 00:14:39,340 Yani sadece vurmak olamaz çıkıyor, Eğer programı yazıyoruz zaman girin. 317 00:14:39,340 --> 00:14:42,590 Genellikle, derleyici gidecek Ne demek ne kadar biraz karıştı. 318 00:14:42,590 --> 00:14:45,340 Aksine, tam anlamıyla var Burada bana yeni bir satır verecek, derler. 319 00:14:45,340 --> 00:14:49,506 Ve böylece / n ne genellikle Bir kaçış karakterini diyoruz. 320 00:14:49,506 --> 00:14:50,870 Yani n, yeni hat için. 321 00:14:50,870 --> 00:14:53,810 Ve derleyici bilir o / n gördüğünde, 322 00:14:53,810 --> 00:14:57,420 aslında bilgisayar neden olmalı, sonuçta veya Printf, bu durumda, 323 00:14:57,420 --> 00:15:00,260 gerçek bir Yeni yazdırmak için çizgi, vurmak gibi, girin 324 00:15:00,260 --> 00:15:01,480 klavyenizdeki tuş. 325 00:15:01,480 --> 00:15:05,620 Ve son olarak, ne dediniz sözdizimi bu parça için? 326 00:15:05,620 --> 00:15:06,591 O neyi temsil ediyor? 327 00:15:06,591 --> 00:15:07,090 Evet. 328 00:15:07,090 --> 00:15:07,490 >> KİTLE ÜYE: [duyulamaz] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J MALAN: Bu sadece satır sonu. 330 00:15:08,660 --> 00:15:09,909 Bu ifadenin sonuna geldik. 331 00:15:09,909 --> 00:15:11,890 Ve biz değil fark Her yerde koyun. 332 00:15:11,890 --> 00:15:13,900 Biz kesinlikle onları koymayın her dizinin uçlarında. 333 00:15:13,900 --> 00:15:16,680 Örneğin, hiçbiri orada var İlk satır, hiçbiri hattı üzerinde var 334 00:15:16,680 --> 00:15:18,680 ana ile, hiçbiri var kaşlı ayraçlar sonra, 335 00:15:18,680 --> 00:15:21,740 ama gördüğünüz ve almak başlayacağız o çağırdı nerede aşina. 336 00:15:21,740 --> 00:15:26,014 Ve bir işlev sonra hemen hemen her zaman var Bazı eylem, çağrı veya bir açıklama 337 00:15:26,014 --> 00:15:27,180 Bu aslında alıyorsun. 338 00:15:27,180 --> 00:15:29,520 >> Ve, özellikle şimdi biliyorum daha rahat olanlar arasında, 339 00:15:29,520 --> 00:15:32,540 Bu aptalca şeyler türü vardır Yanlışlıkla beceriyor bitireceğiz olduğunu 340 00:15:32,540 --> 00:15:33,873 üzerinde duvara başınızı. 341 00:15:33,873 --> 00:15:36,107 Mantıksal olacak çünkü Bazı sorun güvenen 342 00:15:36,107 --> 00:15:38,440 Bir sorun için çözdük set ve sadece lanet şey 343 00:15:38,440 --> 00:15:40,187 derlemek ya da çalışmaz. 344 00:15:40,187 --> 00:15:43,270 Ve sık sık, erken, o gidiyor Eğer bir parantez cevapsız çünkü olması, 345 00:15:43,270 --> 00:15:44,455 veya bir virgül cevapsız. 346 00:15:44,455 --> 00:15:46,547 Ve böylece sadece dikkatli olmak şeyler bu tür, 347 00:15:46,547 --> 00:15:49,380 ve hayal kırıklığına almak için çalışın onları çok çabuk yapar, çünkü 348 00:15:49,380 --> 00:15:50,640 eski bir şapka olur. 349 00:15:50,640 --> 00:15:53,910 Ama almak çok kolay Bir sonuç olarak, erken sinirli. 350 00:15:53,910 --> 00:15:57,020 >> Yani şimdi, en nasıl bir göz atalım Bu hat aslında çalışıyor 351 00:15:57,020 --> 00:15:59,170 ve daha sonra biraz bakmak daha karmaşık bir. 352 00:15:59,170 --> 00:16:02,017 Yani biz burada, üzerinde var Bu ekranda çizmek yeteneği. 353 00:16:02,017 --> 00:16:04,100 Ve en varsayalım Bu, benim bilgisayar ekranı 354 00:16:04,100 --> 00:16:08,589 ama ben, merhaba program yazıyorum ve ben, printf hayata değil. 355 00:16:08,589 --> 00:16:10,130 Başkası, printf uygulamıştır. 356 00:16:10,130 --> 00:16:12,420 Kim iddia istiyorum , printf hayata geçirdik? 357 00:16:12,420 --> 00:16:12,920 Biz may olur? 358 00:16:12,920 --> 00:16:13,830 Pekala, adın ne? 359 00:16:13,830 --> 00:16:14,155 >> ÖĞRENCİ 1: [? Copal. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J MALAN: Copal, yukarı gel. 361 00:16:15,529 --> 00:16:16,430 Yukarı gel. 362 00:16:16,430 --> 00:16:17,070 Pekala. 363 00:16:17,070 --> 00:16:22,260 Yani biz burada var, bazı ad etiketleri, biz bu küçük bir oyun yapacağız çünkü. 364 00:16:22,260 --> 00:16:26,270 Ve biz printf, sizi arayacaktır. 365 00:16:26,270 --> 00:16:30,170 Ve sen buraya gelmek istiyorsanız, ne sadece ekranda boğuldum, 366 00:16:30,170 --> 00:16:32,340 o, beni orada, oldukça basit bu var. 367 00:16:32,340 --> 00:16:35,550 >> Pekala, merhaba benim adım olduğunu printf, bunu koymak istiyorsanız. 368 00:16:35,550 --> 00:16:35,740 Pekala. 369 00:16:35,740 --> 00:16:37,360 Ve standı gidebilirsiniz eğer Bilgisayar ekranı 370 00:16:37,360 --> 00:16:39,730 sanki işlevi olduğunu Bu bilgisayar sistemi ile geldi. 371 00:16:39,730 --> 00:16:42,063 Ve Hayattaki amacı aslında bir şey yazdırmak için. 372 00:16:42,063 --> 00:16:44,560 Ama programı gibi çok biz Sadece burada, ekranda vardı, 373 00:16:44,560 --> 00:16:47,060 biz zorunda gidiyoruz Aslında bazı giriş vermek. 374 00:16:47,060 --> 00:16:51,810 >> Ve böylece, benim girişi varsa, burada olduğu Görünüşe göre, ya printf'in geçirilir 375 00:16:51,810 --> 00:16:53,730 en tür böyle o kadar alay edelim. 376 00:16:53,730 --> 00:16:58,720 Ben tam anlamıyla yazmak için gidiyorum bir parça kağıt, "merhaba, dünya," 377 00:16:58,720 --> 00:17:03,020 Ters eğik çizgi N. Ve açık olması ne Ben sadece, bu kağıt parçası üzerinde boğuldum 378 00:17:03,020 --> 00:17:04,020 bu gibi görünüyor. 379 00:17:04,020 --> 00:17:08,730 Yani bu programı çalıştırın ve bu zaman kod sarı çizgi idam olur, 380 00:17:08,730 --> 00:17:12,970 o, ben, merhaba programı sanki bulunuyor bir işleve kapalı bazı girdi teslim ediyorum 381 00:17:12,970 --> 00:17:13,970 Başkasının yazdığı. 382 00:17:13,970 --> 00:17:16,595 >> Ve eğer, parmağınızla, Aslında olabilir, parmağınızla, 383 00:17:16,595 --> 00:17:21,520 ekranda çizmek ne olursa olsun Eğer teslim edilmiştir olduğunu 384 00:17:21,520 --> 00:17:27,465 etkisi nihayetinde için tam olarak, ekranda gördüğünüz. 385 00:17:27,465 --> 00:17:29,140 Ve burada bir küçük köşe durumda. 386 00:17:29,140 --> 00:17:31,540 Ve iyi, biz görmemeli Bu noktada, yeni satır. 387 00:17:31,540 --> 00:17:33,900 Senin için yanlış olur açıkça yeni satır çizmek için. 388 00:17:33,900 --> 00:17:36,810 Ama biz tutulması halinde ilgili kelimeleri yazarken Ekran, onlar aşağıda sona ereceğini. 389 00:17:36,810 --> 00:17:39,560 >> Yani çok teşekkür ederim, ama sopa Buralarda sadece bir an için. 390 00:17:39,560 --> 00:17:42,860 Biz şimdi diğer bir ihtiyaç Gönüllü, eğer olabilir, 391 00:17:42,860 --> 00:17:46,830 Bu rol oynamaya ihtiyacı olacak of-- Bu orkestrada sadece insanlar var 392 00:17:46,830 --> 00:17:47,355 hemen. 393 00:17:47,355 --> 00:17:47,980 Nasıl Tamam about--. 394 00:17:47,980 --> 00:17:48,480 Tam burada. 395 00:17:48,480 --> 00:17:49,180 Yukarı gel. 396 00:17:49,180 --> 00:17:49,955 Adın ne? 397 00:17:49,955 --> 00:17:50,922 >> ÖĞRENCİ 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J MALAN: Üzgünüm? 399 00:17:51,796 --> 00:17:52,990 ÖĞRENCİ 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J MALAN: Ethan, yukarı gel. 401 00:17:55,320 --> 00:17:55,820 Hayır mı? 402 00:17:55,820 --> 00:17:58,390 Hatta, bu yanlış aldın mı Eğer iki kere söyledikten sonra? 403 00:17:58,390 --> 00:17:58,890 Yukarı gel. 404 00:17:58,890 --> 00:18:00,030 Burada yukarı duymak zor. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 TAMAM. 407 00:18:05,740 --> 00:18:07,190 Ve üzgünüm, senin adın ne? 408 00:18:07,190 --> 00:18:07,680 >> ÖĞRENCİ 2: [? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID J MALAN: Ivay. ?] TAMAM. 410 00:18:08,790 --> 00:18:10,430 Şimdilik, bunu yaparsanız değil zihin, sen getString vardır. 411 00:18:10,430 --> 00:18:11,013 >> ÖĞRENCİ 2: Tamam. 412 00:18:11,013 --> 00:18:11,797 Güzel. 413 00:18:11,797 --> 00:18:14,630 DAVID J MALAN: Eğer isterseniz Yani Sadece bir an için burada durmak, 414 00:18:14,630 --> 00:18:17,100 en hafif bir göz atalım daha karmaşık bir program, bu 415 00:18:17,100 --> 00:18:18,670 Şimdi kod üç satır vardır. 416 00:18:18,670 --> 00:18:24,080 Bu yüzden, bir tane var kullanarak adınızı devlet printf; İki, getString bir çağrı, 417 00:18:24,080 --> 00:18:28,060 Bir bir atama tarafından takip Değişken string s, çağrılan veya s adlandırılan; 418 00:18:28,060 --> 00:18:31,260 ve sonra printf, başka çağrı, ancak iki girişli bu sefer. 419 00:18:31,260 --> 00:18:33,646 >> Yani biz zaten yaptık devlet Adınızı, ya da daha doğrusu, biz ettik 420 00:18:33,646 --> 00:18:34,770 Zaten bir printf çağrısı yapılır. 421 00:18:34,770 --> 00:18:38,960 Yani isminizi belirtin, yazacağım. 422 00:18:38,960 --> 00:18:42,089 Ve bu yüzden, ben ne gidiyorum Sadece bir an, printf, pas, 423 00:18:42,089 --> 00:18:43,005 Bu, oldukça basit olduğunu. 424 00:18:43,005 --> 00:18:47,760 Devam edin ve bu çizmek istiyorsanız Yani Ekranda, o senin girdi şimdi var. 425 00:18:47,760 --> 00:18:48,260 Pekala. 426 00:18:48,260 --> 00:18:51,160 Ve biz şimdi var, dize unutmak Burada kod kendi hattı. 427 00:18:51,160 --> 00:18:54,470 Yani içinde, GetString, ihtiyacımız Aslında, getString aramak için. 428 00:18:54,470 --> 00:18:57,920 Yani hayattaki amacınız sadece yürümek için orkestra içine, sen-ebil eğer, 429 00:18:57,920 --> 00:18:58,980 ve birinin adını almak. 430 00:18:58,980 --> 00:19:00,860 Ama seni verelim bir şey onu koymak. 431 00:19:00,860 --> 00:19:02,908 Eğer isterseniz, gidin önde ve bir dize olsun, 432 00:19:02,908 --> 00:19:05,241 Bu konuda birinin adını almak kağıt parçası, sen-ebil eğer. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Pekala. 435 00:19:13,530 --> 00:19:15,250 Ve biz, sadece bir an, göreceksiniz Adını biz alıyoruz. 436 00:19:15,250 --> 00:19:17,630 Bu arada, ben ne gidiyorum hazır, boş bir parçasıdır 437 00:19:17,630 --> 00:19:21,340 kağıt, hangi, ben gidiyorum saklamak için ne değer o 438 00:19:21,340 --> 00:19:25,752 GetString bana dönüyor ki, Ben denilen bir dize değişkeni, s olmak. 439 00:19:25,752 --> 00:19:26,252 Pekala. 440 00:19:26,252 --> 00:19:27,293 Peki burada ne var? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Pekala. 443 00:19:28,450 --> 00:19:30,910 Yani biz burada Nik adını sahiptir. 444 00:19:30,910 --> 00:19:33,750 Peki nedir bu tam anlamıyla iade edilmiştir 445 00:19:33,750 --> 00:19:35,810 Bana, bu yüzden getString tarafından, konuşmak için. 446 00:19:35,810 --> 00:19:38,720 >> Ben gidiyorum, şimdi, am sol tarafını yürütmek 447 00:19:38,720 --> 00:19:43,440 Ben sadece bu ifadenin, bir Bugünün amaçlar, Nik için, aşağı kopyalayın. 448 00:19:43,440 --> 00:19:46,470 Yani şimdi, ben bir değişken var denilen, Nik adını saklamak, s. 449 00:19:46,470 --> 00:19:49,520 Zaten teslim ettik printf, bir önceki argüman. 450 00:19:49,520 --> 00:19:52,800 Ama bizim üçüncü ve son satırda Kod, aslında eli printf var 451 00:19:52,800 --> 00:19:58,500 Biraz different-- şey "Merhaba% s," ters bölü n. 452 00:19:58,500 --> 00:20:01,510 >> Ve böylece son çizgi ben gidiyorum Ben son şey send-- için 453 00:20:01,510 --> 00:20:03,060 Hemen aşağı yazacağız, budur. 454 00:20:03,060 --> 00:20:06,310 Yani iki kod çizgiler veya Kodun son satırında ziyade, 455 00:20:06,310 --> 00:20:10,690 İki inputs-- için çağrı biri, bu, iki, bu. 456 00:20:10,690 --> 00:20:13,330 Bizim printf fonksiyonu Yani eğer Şimdi girdi olarak bu alabilir, 457 00:20:13,330 --> 00:20:16,000 Senin için ekranı temizlemek edelim. 458 00:20:16,000 --> 00:20:17,250 Aslında hayır, sen devam edebilir. 459 00:20:17,250 --> 00:20:19,333 Biz bu yana, o kadar bırakacağım Aynı programda var. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Biz, merhaba, Nik görmelisiniz. 462 00:20:27,380 --> 00:20:27,880 Pekala. 463 00:20:27,880 --> 00:20:29,670 Yani bu epeyce oldu çemberler sadece üzerinden atlamak için 464 00:20:29,670 --> 00:20:31,620 yazma, devlet sizin Merhaba, Nik adını ve. 465 00:20:31,620 --> 00:20:37,210 Ama mesaj geçen bu basit bir fikir, Giriş ve çıkış alma geçen bölgesinin 466 00:20:37,210 --> 00:20:40,430 biz gidiyoruz modeli tam olarak Hatta en karmaşık fonksiyonlar için. 467 00:20:40,430 --> 00:20:41,804 Yani ikiniz için çok teşekkür ederim. 468 00:20:41,804 --> 00:20:43,730 Biz güzel bir stres var Burada senin için top. 469 00:20:43,730 --> 00:20:48,890 Ve bizim getString teşekkür ederiz hem ve printf gönüllüler. 470 00:20:48,890 --> 00:20:49,551 Teşekkür ederim. 471 00:20:49,551 --> 00:20:50,050 Pekala. 472 00:20:50,050 --> 00:20:50,966 Size hem teşekkür ederiz. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Yani biz bahsediyoruz oldum Şimdiye kadar çoğunlukla dizeleri hakkında. 475 00:21:00,430 --> 00:21:06,550 Ve o C gerçekte olabilir çıkıyor bir kaç farklı veri türlerini kavrar. 476 00:21:06,550 --> 00:21:08,860 Aslında, en alalım Bir buradaki bak. 477 00:21:08,860 --> 00:21:12,490 Yani C ve dillerin bir sürü karakter denilen şeyleri anlamak. 478 00:21:12,490 --> 00:21:16,852 Bir karakter genellikle bir tek bayt veya sekiz bit. 479 00:21:16,852 --> 00:21:19,810 Ve tek bir karakteri temsil, harfi A, ya da sermaye benzeri 480 00:21:19,810 --> 00:21:21,990 A harfi, ya da küçük harf Bir veya bir ünlem işareti, 481 00:21:21,990 --> 00:21:25,440 ya da herhangi bir karakter yazabilirsiniz o Klavye ve bazen daha fazla. 482 00:21:25,440 --> 00:21:26,795 Biz de yüzen görmek olur. 483 00:21:26,795 --> 00:21:31,160 Düz bir genel olarak bir 32-bit değeri, ya da dört bayt 484 00:21:31,160 --> 00:21:33,660 Yine, çünkü bir bayt sekiz bittir. 485 00:21:33,660 --> 00:21:36,675 >> Yani bir şamandıra bir kayan nokta değeri, Bir ondalık noktasının olan bir şey. 486 00:21:36,675 --> 00:21:38,550 Ve gerçekten de, bu ne var Film konuşuyordu 487 00:21:38,550 --> 00:21:42,240 Onlar yüzen hakkında konuştu ne zaman puan değerleri, bit bazı sabit sayısı 488 00:21:42,240 --> 00:21:43,940 Gerçek bir sayısını temsil etmek için kullanılır. 489 00:21:43,940 --> 00:21:45,740 Ama aynı zamanda iki katına denen şey var. 490 00:21:45,740 --> 00:21:47,860 Bunlar, Java ana kadar Eğer APCS aldım eğer, 491 00:21:47,860 --> 00:21:51,540 ve bir çift olarak adı minnetle anlaşılacağı iki kez şamandıra kadar büyük. 492 00:21:51,540 --> 00:21:54,540 Hala bir gerçek sayı, Sadece daha fazla bit var 493 00:21:54,540 --> 00:21:58,390 hangi ile, her zamankinden daha hassas olmaya hatta daha büyük sayıları depolamak için. 494 00:21:58,390 --> 00:21:58,890 int kolaydır. 495 00:21:58,890 --> 00:22:00,181 Biz o son kez konuştuk. 496 00:22:00,181 --> 00:22:01,160 Bu sadece bir tamsayı var. 497 00:22:01,160 --> 00:22:03,980 Ve genellikle 32 var bit ya da dört bayt. 498 00:22:03,980 --> 00:22:07,850 >> Ve böylece, varsa, şimdi görelim 32 bits-- ve biz hafta 0 yaptı, 499 00:22:07,850 --> 00:22:10,820 Eğer varsa bu kadar briefly-- 32 bit, büyük ne 500 00:22:10,820 --> 00:22:13,580 Eğer bir tamsayı olarak temsil edebilir sayısı? 501 00:22:13,580 --> 00:22:16,080 Al yada ver? 502 00:22:16,080 --> 00:22:18,380 Bu, 4 milyar gibi ve biz konum sadece var 503 00:22:18,380 --> 00:22:20,690 Pozitif sayılar sadece temsil eder. 504 00:22:20,690 --> 00:22:23,930 Eğer 32 bit var ve isterseniz hem de olumsuz sayıları temsil, 505 00:22:23,930 --> 00:22:27,100 senin aralık esasen, negatif ise 2 milyar pozitif 2 milyar. 506 00:22:27,100 --> 00:22:29,250 Ama genelde biz başlayacağız 0 ° C'de 4 milyar kadar gitmek. 507 00:22:29,250 --> 00:22:32,400 >> Sen tam bilmek zorunda, ama yok Sadece biz, aslında, bu görebilirsiniz 508 00:22:32,400 --> 00:22:36,400 Burada, küçük bir hesap açmak. 509 00:22:36,400 --> 00:22:41,070 Ben 32 2 yapmak ve olabilir Bu tam olarak nasıl büyük, 510 00:22:41,070 --> 00:22:43,190 Kaç değerler yapabilirsiniz 32 bit ile temsil etmektedir. 511 00:22:43,190 --> 00:22:44,442 Ve kabaca 4 milyar bulunuyor. 512 00:22:44,442 --> 00:22:46,900 Yani biz bu sayıyı görmeye devam edeceğiz Bir kaç farklı yerde. 513 00:22:46,900 --> 00:22:48,890 Ama artık ihtiyacınız varsa Bunun dışında sayılar, 514 00:22:48,890 --> 00:22:51,670 o orada 's çıkıyor bir şey uzun uzun bir denir. 515 00:22:51,670 --> 00:22:54,005 Ve uzun uzun Genellikle 64 bit, hangi 516 00:22:54,005 --> 00:22:56,380 bu büyüklükte bir sipariş demektir bir int bile daha büyük. 517 00:22:56,380 --> 00:22:59,510 >> Yani ben bile büyük telaffuz edemez Eğer temsil edebilir sayı, 518 00:22:59,510 --> 00:23:01,340 ama belirgin büyük. 519 00:23:01,340 --> 00:23:05,190 Şimdi bir kenara, tarihsel, Bir int 32 bit ise, 520 00:23:05,190 --> 00:23:12,780 ve uzun uzun 64 bit, nasıl Büyük uzun değil, uzun uzun nedir? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Bunu bir int daha uzun olduğunu düşünmek istiyorum ama belki daha uzun daha uzun uzun, 523 00:23:20,330 --> 00:23:21,400 ama aslında bağlıdır. 524 00:23:21,400 --> 00:23:23,400 >> Ve böylece bir çıkıyor çok hayal kırıklıklarının, 525 00:23:23,400 --> 00:23:26,830 Belirli sistemlerde kod yazma ile olduğunu, bu veri türlerinin hepsi 526 00:23:26,830 --> 00:23:28,440 önceden belirlenmiş değerlere sahiptir. 527 00:23:28,440 --> 00:23:29,771 Bazen bu kadar çok bit var. 528 00:23:29,771 --> 00:23:31,020 Bazen birçok bit var. 529 00:23:31,020 --> 00:23:32,750 Yani aslında bilmek zorunda, bazen, hangi donanım 530 00:23:32,750 --> 00:23:34,083 Eğer sizin yazılımı çalıştıran ediyoruz. 531 00:23:34,083 --> 00:23:36,960 Neyse ki, diğer diller ve Şimdi mevcut diğer veri tipleri, 532 00:23:36,960 --> 00:23:38,400 Eğer daha hassas olmasını sağlar. 533 00:23:38,400 --> 00:23:41,220 Peki, biz, dize gördüm ve biz de bool gördüm 534 00:23:41,220 --> 00:23:43,960 ama o gelip çıkıyor Sadece CS50 kütüphanesi ile. 535 00:23:43,960 --> 00:23:46,240 Yani o inşa edilmez C. halinde olanlar, bunun yerine, 536 00:23:46,240 --> 00:23:49,340 denilen dosyada gel CS50.h ki biz sonunda olacak 537 00:23:49,340 --> 00:23:51,831 katmanlarını geri soyma. 538 00:23:51,831 --> 00:23:53,830 Ama şimdi, onlar sadece konum ek veri türleri. 539 00:23:53,830 --> 00:23:57,060 Bir bool bir doğru ya da yanlış, ve a Dize bir karakter dizisidir, 540 00:23:57,060 --> 00:23:57,970 Bir kelime gibi. 541 00:23:57,970 --> 00:24:01,690 Şimdi printf, biz gördük, sahip tutucular,% s biridir. 542 00:24:01,690 --> 00:24:05,430 Ve sen, şimdi, mümkün olabilir Bu diğer örneklerde, kimden nasıl anlaması 543 00:24:05,430 --> 00:24:07,720 Eğer bir yer tutucu olabilir Farklı veri türleri için. 544 00:24:07,720 --> 00:24:11,150 Örneğin, bir tahmin almak eğer kullanarak tek kömürü dışarı yazdırmak istedim 545 00:24:11,150 --> 00:24:15,270 printf, yer tutucu muhtemelen% c. 546 00:24:15,270 --> 00:24:19,650 Ve bir yazdırmak istiyorsanız Yer tutucu,% i ile tamsayı. 547 00:24:19,650 --> 00:24:25,150 % lld, uzun uzun ondalık değer ama çok uzun, o eşleştiren böylece. 548 00:24:25,150 --> 00:24:28,640 Kayan ve daha sonra% f puan değeri veya bir çift için, 549 00:24:28,640 --> 00:24:31,270 bu yüzden bazen yeniden alıştığınız farklı bağlamlarda. 550 00:24:31,270 --> 00:24:33,350 Yani biz görmek ve kullanacağız zamanla olanların bazıları. 551 00:24:33,350 --> 00:24:36,420 Printf ve diğer fonksiyonlar ve Destek başkalarının kaçış dizileri, 552 00:24:36,420 --> 00:24:38,080 ve bazen de, bu gerekli değildir. 553 00:24:38,080 --> 00:24:39,770 Yani ters eğik n yeni bir çizgi vardır. 554 00:24:39,770 --> 00:24:42,886 Backslash t, herkes yapar bir bıçak almak ister misin? 555 00:24:42,886 --> 00:24:43,760 KİTLE ÜYE: Tab. 556 00:24:43,760 --> 00:24:44,551 DAVID J MALAN: Tab. 557 00:24:44,551 --> 00:24:46,810 Aslında istiyorsanız Bir sekmeyi değil yazdırmak için 558 00:24:46,810 --> 00:24:49,940 alanlarda sabit sayıda ancak gerçek sekme karakteri, sen sizin yanınızdaki basmayın, 559 00:24:49,940 --> 00:24:53,490 klavyede sekme, anahtar, genellikle, aslında ters eğik çizgi t yapmak. 560 00:24:53,490 --> 00:24:57,750 Backslash çift tırnak, Neden şimdiye kadar böyle isteyeyim? 561 00:24:57,750 --> 00:24:58,250 Sağ? 562 00:24:58,250 --> 00:25:00,417 Neden sadece bir yazamaz Benim klavyede çift tırnak? 563 00:25:00,417 --> 00:25:02,124 KİTLE ÜYE: Aksi takdirde, bu, Çünkü 564 00:25:02,124 --> 00:25:04,830 bu sonu düşünmek için gidiyoruz Sizin baskı [beğendin mi? Metin. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J MALAN: Kesinlikle. 566 00:25:05,420 --> 00:25:07,211 Ile Unutmayın bizim printf örnekler, ne zaman biz 567 00:25:07,211 --> 00:25:10,075 giriş printf geçerken, Bu giriş dizesi solunda 568 00:25:10,075 --> 00:25:12,950 ve bu girişin sağında bahar, tabii ki, bir çift tırnak oldu. 569 00:25:12,950 --> 00:25:16,270 Kendi giriş çift varsa, Bunun ortasında alıntı 570 00:25:16,270 --> 00:25:18,920 Bilgisayar potansiyel olabilir olarak, karışık, 571 00:25:18,920 --> 00:25:20,760 Bu çift tırnak yapar ortada aittir? 572 00:25:20,760 --> 00:25:22,150 Sol biriyle aittir? 573 00:25:22,150 --> 00:25:23,566 Doğru biriyle aittir? 574 00:25:23,566 --> 00:25:26,780 Ve böylece, süper bunu yapmak istiyorsanız açık, çift tırnak kullanılan karakterler yapmak, 575 00:25:26,780 --> 00:25:30,480 o kaçtı, böylece tabiri caizse, ve Başka bir şey için conflated değil. 576 00:25:30,480 --> 00:25:34,400 Ve, burada birkaç diğerleri var ters eğik çizgi r tek tırnak, 0, 577 00:25:34,400 --> 00:25:36,510 biz de, zamanla görebilirsiniz. 578 00:25:36,510 --> 00:25:37,760 Ve şimdi ne işlevleri hakkında? 579 00:25:37,760 --> 00:25:41,630 >> Biz bugüne kadar alabilir eylemler Yani Bu dilde, C, iyi, biz gördük, 580 00:25:41,630 --> 00:25:44,320 Printf, tabii ki, ve Ekranda başkalarının, 581 00:25:44,320 --> 00:25:47,140 Burada, biz kullanacağız olduğunu Sadece dersin ilk birkaç hafta, 582 00:25:47,140 --> 00:25:48,485 zaman CS50 kitaplığı geliyor. 583 00:25:48,485 --> 00:25:51,850 Ve onlar, çok daha kolay hale C, aslında kullanıcı girişi alır. 584 00:25:51,850 --> 00:25:54,200 O C çıkıyor ve Açıkçası birkaç dilde, 585 00:25:54,200 --> 00:25:57,450 bunu yapmak için boyun gerçek bir ağrı var istemi kullanıcı gibi basit bir şey, 586 00:25:57,450 --> 00:26:01,310 onun girişi için klavyenin için. 587 00:26:01,310 --> 00:26:03,240 Ve böylece bu fonksiyonlar kolaylaştırır. 588 00:26:03,240 --> 00:26:05,472 >> Ve aynı zamanda hata var boyunca kontrol 589 00:26:05,472 --> 00:26:07,180 bu yüzden sizi, o Çarşamba biz üzerinde çağırmak 590 00:26:07,180 --> 00:26:09,740 , yeniden, uyarı gördüm Ben işbirliği vermedi, 591 00:26:09,740 --> 00:26:11,700 ve ben bir kelime yerine bir dizi yazdınız? 592 00:26:11,700 --> 00:26:15,402 Biz erken ağır kaldırma yaptık kullanıcı işbirliği emin olun. 593 00:26:15,402 --> 00:26:17,860 Ama bunlar sadece eğitim vardır biz sonunda olacak jantlar, 594 00:26:17,860 --> 00:26:19,640 ve hızlı bir şekilde, çıkar. 595 00:26:19,640 --> 00:26:22,630 >> Özetle, sonra, en hızlı bir göz atalım, 596 00:26:22,630 --> 00:26:26,620 Biz Scratch en yaptığımız gibi çok C. bazı kanonik yapılar 597 00:26:26,620 --> 00:26:28,580 Bu tür içindir arasında, bir kasırga tur olacak, 598 00:26:28,580 --> 00:26:30,990 Sadece böylece bir referans var ve ilk başta bir şeyler gördük. 599 00:26:30,990 --> 00:26:34,100 Ama sonra biz gerçek kodlama bakacağız Bu yapı taşlarından bazılarını kullanmak. 600 00:26:34,100 --> 00:26:36,710 O kadar Scratch gibi, Biz ifadeleri gibi ne zaman, 601 00:26:36,710 --> 00:26:41,570 C biz var, bekleyin, söylemek ya da Printf gibi iyi işlev görür. 602 00:26:41,570 --> 00:26:45,350 >> Biz durumu ifade etmek istiyorsanız, C, o ruhu, benzer, 603 00:26:45,350 --> 00:26:47,840 Bu puzzle parçasına o Scratch böyle görünüyordu. 604 00:26:47,840 --> 00:26:49,850 Ama onun yerine, biz Gerçekten sadece eğer, yazma. 605 00:26:49,850 --> 00:26:51,830 Sonra, parantez içinde, Biz bir koşul koymak, 606 00:26:51,830 --> 00:26:54,807 Bu durum nerede ne olacak Bir boolean deyim, yine arayın. 607 00:26:54,807 --> 00:26:56,390 Ve yine, bu pseudocode tür. 608 00:26:56,390 --> 00:26:58,830 Ve aslında, // bir yorumdur. 609 00:26:58,830 --> 00:27:00,550 Bu sadece kendime İngilizce kelimeleri var. 610 00:27:00,550 --> 00:27:03,000 Ama bu genel bir Bir eğer durumun yapısı. 611 00:27:03,000 --> 00:27:05,220 Ama biz beton görürsünüz sadece bir an örnekler. 612 00:27:05,220 --> 00:27:07,960 >> Eğer olmasını istiyorsanız Yolun iki yönlü çatal, 613 00:27:07,960 --> 00:27:11,740 gibi çok biz bizim gönüllü ile yaptığımız Çarşamba, başka eğer, bir olabilir. 614 00:27:11,740 --> 00:27:16,020 Ve bir üçüncü olmasını istiyorsanız ve Son durum veya varsayılan durum, 615 00:27:16,020 --> 00:27:19,006 Orada sadece bir başka blok olabilir. 616 00:27:19,006 --> 00:27:21,880 Ve benzer şekilde, boolean ifadeler ile, Onları birlikte can ve. 617 00:27:21,880 --> 00:27:24,296 Ve biz, Çarşamba günü gördüm tek bir işareti değil, 618 00:27:24,296 --> 00:27:28,220 Bu alt düzey nedeniyle, iki olduğunu Sonunda görmek ve birlikte oynayacağız. 619 00:27:28,220 --> 00:27:30,410 Şeyleri bir araya Or-ing 2 dikey çubuklar olduğunu. 620 00:27:30,410 --> 00:27:32,240 ABD klavyesinde, bu anahtar genellikle 621 00:27:32,240 --> 00:27:35,730 Yukarıdaki Shift tuşu ile senin Enter tuşuna veya tuşuna dönün. 622 00:27:35,730 --> 00:27:38,620 >> Sonra bunları var ki Biz bir veya iki kez belki kullanacağız. 623 00:27:38,620 --> 00:27:42,570 Onlar işlevsel olarak eşdeğer olan eğer başka ne varsa, bir ile yapabilirsiniz, 624 00:27:42,570 --> 00:27:44,950 else eğer, inşa, ama onlar anahtar denir. 625 00:27:44,950 --> 00:27:48,020 Onlar çok farklı görünüyor, ama biz olacak Bizim dağıtım kod bazı görmek, 626 00:27:48,020 --> 00:27:51,890 gelecekte bir sorun kümesi için, büyük olasılıkla, Sadece bazen güzel olduğunu 627 00:27:51,890 --> 00:27:54,060 bir bütün ifade yolu koşulların demet, 628 00:27:54,060 --> 00:27:57,590 küme ayraçları bir sürü kalmadan ve Parantez ve girinti bir sürü. 629 00:27:57,590 --> 00:28:01,910 Ama onlar bize artık vermek Güç biz zaten var daha. 630 00:28:01,910 --> 00:28:02,550 Ve şimdi döngüler. 631 00:28:02,550 --> 00:28:05,020 Ve bu, biz bakacağız daha yavaş biraz da. 632 00:28:05,020 --> 00:28:08,470 Ama sonra, bu kullanmaya başlayacağız, Özellikle zaten tanıdık olanlar için. 633 00:28:08,470 --> 00:28:13,830 Bu eğer inanılmaz, kurallı bir yoldur arcane yolu, C. bir döngü yazmak için 634 00:28:13,830 --> 00:28:15,896 >> Şimdi Scratch bir döngü oldu Oldukça basit. 635 00:28:15,896 --> 00:28:17,020 Sen, sonsuza, blok var. 636 00:28:17,020 --> 00:28:19,760 Sen, tekrar, blok ile var Sadece bir sayı yazmanız gerekir. 637 00:28:19,760 --> 00:28:22,220 Ve, için döngü ile yapabilirsiniz bu fikirlerin ikisi de uygulamak 638 00:28:22,220 --> 00:28:23,595 ama biraz daha teknik bir konu. 639 00:28:23,595 --> 00:28:25,994 Ama açıkçası, o da var nispeten basit. 640 00:28:25,994 --> 00:28:28,160 Eğer sırasını öğrendikten sonra operasyonlar, kelimenin tam anlamıyla 641 00:28:28,160 --> 00:28:30,910 Sadece değerlere takmak için gidiyoruz ve ne yapmak için bilgisayarı söyle. 642 00:28:30,910 --> 00:28:32,800 Yani burada bir örnek. 643 00:28:32,800 --> 00:28:38,040 Bu bir döngü olduğunu, oldukça sadece bir sayı kadar sayar 644 00:28:38,040 --> 00:28:40,187 Başka yoluyla. 645 00:28:40,187 --> 00:28:42,020 Ve sadece bakarak tarafından Eğer varsa bile, en 646 00:28:42,020 --> 00:28:44,660 ile önceden deneyim Bu dil, hangi sayıyı 647 00:28:44,660 --> 00:28:46,920 muhtemelen sayma başlar? 648 00:28:46,920 --> 00:28:47,730 Tamam, 0. 649 00:28:47,730 --> 00:28:50,240 Ve ben senin yüzünden olduğunu tahmin ediyorum Bir int ve bir ben var olduğunu görmek 650 00:28:50,240 --> 00:28:51,073 hangi bir değişkendir. 651 00:28:51,073 --> 00:28:52,390 Bu 0'a başlatıldı oluyor. 652 00:28:52,390 --> 00:28:55,670 >> Ve daha sonra, bu gibi görünüyor Biz bir değer printf geçiyoruz. 653 00:28:55,670 --> 00:28:58,000 Ve aslında, ben burada küçük bir yazım hatası yaptı. 654 00:28:58,000 --> 00:28:59,850 Ama bu kolay sabit oluyor. 655 00:28:59,850 --> 00:29:02,390 Beni burada, i ekleyelim. 656 00:29:02,390 --> 00:29:06,150 Biz şimdi printf varlık var Bu yer tutucu değerini geçti. 657 00:29:06,150 --> 00:29:08,299 Ve aracılığıyla saymak ne oluyor? 658 00:29:08,299 --> 00:29:08,840 HEDEF KİTLE: 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 DAVID J MALAN: 49. 662 00:29:10,910 --> 00:29:13,340 Yani 50, ilk bakışta doğru gibi görünüyor. 663 00:29:13,340 --> 00:29:16,990 Ama bu, o çıkıyor, olacak biz kontrol etmek bizim durum. 664 00:29:16,990 --> 00:29:21,740 Ve biz bir kez durdurmak için gidiyoruz Artık 50 daha azdır. 665 00:29:21,740 --> 00:29:24,920 Yani bu döngü tersine, gerektiği çok uzun ben 50 daha az olduğu için, yürütün. 666 00:29:24,920 --> 00:29:28,891 Ama 50 ya da 51 olduğunda en kısa sürede, ya da daha kötüsü, otomatik olarak durması gerekir. 667 00:29:28,891 --> 00:29:29,390 Pekala. 668 00:29:29,390 --> 00:29:31,200 >> Peki aslında ne oluyor burada? 669 00:29:31,200 --> 00:29:33,160 Yani bu sırasıdır Bir döngü için işlemler. 670 00:29:33,160 --> 00:29:35,440 Bir, sen var başlatma sözde. 671 00:29:35,440 --> 00:29:38,264 Bu sarı vurgulanan yığın kod, ilk olarak yürütülür 672 00:29:38,264 --> 00:29:40,930 ve etkisi, başına sahip Çarşamba, muhtemelen hayal. 673 00:29:40,930 --> 00:29:45,500 Bu değişken i ve denir oluşturur Bu değişkende saklar değeri 0. 674 00:29:45,500 --> 00:29:47,560 Yani ben hikaye bu noktada 0 olduğunu. 675 00:29:47,560 --> 00:29:49,680 >> Bir sonraki şey Bu yapıda olur, 676 00:29:49,680 --> 00:29:51,540 durumu kontrol alır olmasıdır. 677 00:29:51,540 --> 00:29:54,325 Yani, hemen kontrol Ben 50 daha azdır? 678 00:29:54,325 --> 00:29:57,700 Ve tabii ki, cevap Şimdilik evet, elbette vardır. 679 00:29:57,700 --> 00:30:00,710 Evet i, 0, çünkü Bu kesinlikle 50'den az var. 680 00:30:00,710 --> 00:30:03,866 Sonra ne olur, bu olduğunu kod satırı idam alır. 681 00:30:03,866 --> 00:30:06,740 Ve aslında, eğer birden fazla var Bu küme parantezi kod satırları, 682 00:30:06,740 --> 00:30:09,020 hepsi birbiri ardına idam olsun. 683 00:30:09,020 --> 00:30:11,450 >> Ve burada etkisi olduğu Görünüşe göre, yazdırmak için 684 00:30:11,450 --> 00:30:15,365 gidiyor numara i 0 ve daha sonra 1 ve 2. olacak. 685 00:30:15,365 --> 00:30:15,865 Ama neden? 686 00:30:15,865 --> 00:30:17,410 Neden artırılır olsun ki? 687 00:30:17,410 --> 00:30:20,680 Peki, dördüncü şey olur bu sözdizimi olduğunu 688 00:30:20,680 --> 00:30:22,610 noktalı virgül sonra, idam olur. 689 00:30:22,610 --> 00:30:27,506 Ben söyleyerek bir kestirme yoludur ++; i değerini alır ve buna 1 ekleyin; 690 00:30:27,506 --> 00:30:30,380 ve daha sonra sonraki sefer eklemek Buna 1; ve sonraki sefer, 691 00:30:30,380 --> 00:30:31,330 buna 1 ekleyin. 692 00:30:31,330 --> 00:30:33,640 >> Yani biz devam edersek, Ne ne olacak 693 00:30:33,640 --> 00:30:35,890 Bir sonraki ben gitmiyorum olduğunu Bir daha i başlatılamadı. 694 00:30:35,890 --> 00:30:38,290 Ben başlatılıyor devam ederse i 0, bu örnek 695 00:30:38,290 --> 00:30:41,110 Çünkü bitmezdi Ben 0 sıkışmış olacaktır. 696 00:30:41,110 --> 00:30:43,870 Ama ne olacak ne durumu kontrol edilecektir, 697 00:30:43,870 --> 00:30:54,280 kod satırı idam alacak, i artırılır 698 00:30:54,280 --> 00:30:56,970 durumu kontrol edilecek, kod çalıştırılır alacak. 699 00:30:56,970 --> 00:30:59,790 Ve, yine bisiklet tuttu ve yine, ve yine, 700 00:30:59,790 --> 00:31:03,340 i kadar ++ 50 değerini neden olur. 701 00:31:03,340 --> 00:31:05,870 >> Koşul, der 50'den 50 daha azdır? 702 00:31:05,870 --> 00:31:09,360 Cevap, tabii ki, hayır ve böylece bütün kod yürütme durur. 703 00:31:09,360 --> 00:31:13,020 Ve ekranda daha fazla kod varsa altında, bir sonraki ne olur. 704 00:31:13,020 --> 00:31:17,530 Bu küme ayraçları dışarı çıkar ve bundan sonra daha yazdırmaya devam eder. 705 00:31:17,530 --> 00:31:20,470 >> Yani Foxtrot Şimdi bir şaka, o belki şimdi anlayacaksınız. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Her zaman komik. 708 00:31:31,560 --> 00:31:34,110 Bu chuckles gibi tür, süzülmek 709 00:31:34,110 --> 00:31:38,370 ve sonra fark yapmamalıdın Böyle mizah gülüyor olacak. 710 00:31:38,370 --> 00:31:41,160 Ancak bazı paket var Burada, pedagojik, çok. 711 00:31:41,160 --> 00:31:43,577 Yani ben çıkıyor sözdizimi bir parça eksik, 712 00:31:43,577 --> 00:31:45,410 veya Foxtrot en eksik Burada sözdizimi parçası. 713 00:31:45,410 --> 00:31:48,076 Ne biz yaptık, eksik her örnekte, bugüne kadar? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 İade, yani, orada Bu, başka bir şey 716 00:31:53,390 --> 00:31:54,440 Daha önce uzun geri geleceğiz. 717 00:31:54,440 --> 00:31:55,398 Ne eksik olsa? 718 00:31:55,398 --> 00:31:55,908 Evet. 719 00:31:55,908 --> 00:31:58,150 >> KİTLE ÜYE: [duyulamaz] başlatılması. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J MALAN: Tamam. 721 00:31:58,470 --> 00:31:58,980 Yani evet. 722 00:31:58,980 --> 00:32:03,210 Yani aslında, bu Kuyu bu--, ve sayım başlatıldı 723 00:32:03,210 --> 00:32:05,470 Yukarıda yukarı, ya da daha doğrusu, yukarıda kadar ilan etti. 724 00:32:05,470 --> 00:32:06,960 Yani bu bunu yapmanın başka bir yoludur. 725 00:32:06,960 --> 00:32:08,685 Ama bir satırda olsa geçerlidir bu. 726 00:32:08,685 --> 00:32:09,310 Buraya ne dersin? 727 00:32:09,310 --> 00:32:10,196 >> KİTLE ÜYE: Bu kaşlı mı? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J MALAN: Evet. 729 00:32:10,640 --> 00:32:12,080 Yani kaşlı eksik. 730 00:32:12,080 --> 00:32:15,495 Ama bu kod, ben kredi için, yani, Aslında, sözdizimsel geçerlidir. 731 00:32:15,495 --> 00:32:17,610 Bu çıkıyor, değil mi küme parantezi gerek 732 00:32:17,610 --> 00:32:21,691 Sadece bir kod satırı varsa o Eğer döngü içinde yürütmek istiyoruz. 733 00:32:21,691 --> 00:32:24,190 Şimdi biz her zaman, sınıfta ve Bizim dağıtım kod tüm 734 00:32:24,190 --> 00:32:26,730 küme parantezi dahil Neyse, sadece Açıklık aşkına. 735 00:32:26,730 --> 00:32:29,010 Ama ders kitaplarında fark ve çevrimiçi örnekler, 736 00:32:29,010 --> 00:32:31,300 sen çok iyi kıvırcık görebilirsiniz bazen eksik parantez. 737 00:32:31,300 --> 00:32:34,850 Ve bu, Tamam ne varsa girintili ve amaçlanan var 738 00:32:34,850 --> 00:32:38,650 kodu sadece tek bir satır ve değil Potansiyel kod birden çok satır. 739 00:32:38,650 --> 00:32:39,150 Pekala. 740 00:32:39,150 --> 00:32:44,500 Konusuna Yani ilgili belirsizlik, taşma bir konudur 741 00:32:44,500 --> 00:32:48,560 anlamda bu, benzer şekilde, tamsayılar onlara sınırları var 742 00:32:48,560 --> 00:32:49,970 sadece nokta değerleri yüzer gibi? 743 00:32:49,970 --> 00:32:53,120 Dünyada bir kayan nokta olarak değerleri, sadece bu kadar ince olabilir 744 00:32:53,120 --> 00:32:55,710 Bazen, daha sonra Kötü şeyler, olabilir 745 00:32:55,710 --> 00:32:57,760 ve bizim programları arabası ve hata olabilir. 746 00:32:57,760 --> 00:33:00,050 Şimdi bile tamsayılar ile, sorun haline çalıştırabilirsiniz. 747 00:33:00,050 --> 00:33:03,820 Şimdi bir tamsayı bir yok ondalık nokta veya ondan sonra sayılar. 748 00:33:03,820 --> 00:33:07,130 Genellikle, sadece bir doğal sayı var. 749 00:33:07,130 --> 00:33:09,430 Yani bir int ile ne yanlış gidebilir? 750 00:33:09,430 --> 00:33:12,210 Ben bir int için kullanıyorum varsa , ne yanlış gidebilir sayısı? 751 00:33:12,210 --> 00:33:13,230 Çok basit görünüyor. 752 00:33:13,230 --> 00:33:13,873 Evet. 753 00:33:13,873 --> 00:33:16,240 >> KİTLE ÜYE: Eğer numara alır [duyulamaz] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J MALAN: Evet. 755 00:33:17,073 --> 00:33:20,820 Eğer çok yüksek saymak sen misin ne Bu gerçekten büyük bir sayı ifade edemez. 756 00:33:20,820 --> 00:33:21,320 Sağ? 757 00:33:21,320 --> 00:33:23,910 Bir noktada, sen gidiyorsun sınırlarını aşmayacak şekilde 758 00:33:23,910 --> 00:33:27,077 Bir 32-bit değeri ya da bir 64-bit değerinin bir. 759 00:33:27,077 --> 00:33:29,410 Şimdi tekrar, nasıl emin değilim 64-bit değeri okunur, 760 00:33:29,410 --> 00:33:32,230 ama 32-bit tamsayı biliyorum, bu olabilir büyük değer, 761 00:33:32,230 --> 00:33:35,490 sadece pozitif ise değerler, kabaca 4 milyar olduğunu. 762 00:33:35,490 --> 00:33:39,000 Ben 5 milyar saymak çalışırsanız Yani, Bir şey olacak. 763 00:33:39,000 --> 00:33:41,050 Ama aslında, neler olabileceğini, görelim. 764 00:33:41,050 --> 00:33:44,570 Tamsayı dünyasında Taşma, nerede, bir anlamda, 765 00:33:44,570 --> 00:33:48,270 Bir kapasitesini taşma tamsayı, ne olur acaba? 766 00:33:48,270 --> 00:33:51,190 >> Yani burada bir ikili sayı, 0'a bir gerileme var. 767 00:33:51,190 --> 00:33:54,630 Her 1'ler ve tutucuları var Orada, 2 yetkileri vardır 768 00:33:54,630 --> 00:33:55,980 bu nedenle bu ikili. 769 00:33:55,980 --> 00:33:59,416 Peki bu ekranda 8, 1 bit. 770 00:33:59,416 --> 00:34:01,290 Ve sen çağırmak ya da eğer hızlı bir şekilde matematik yapmak, 771 00:34:01,290 --> 00:34:06,074 Ne değer temsil ediliyor Burada bu sekiz 1 bit? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 Ve oldukça emin değildi bile matematik, bunu dışarı yapabilirdi. 774 00:34:09,260 --> 00:34:10,550 Ya da sadece bir tür olabilir nedenle bunun üzerinden, 775 00:34:10,550 --> 00:34:12,633 Ben eğer, bir dakika bekleyin 8 bitlik bir değeri temsil eden, 776 00:34:12,633 --> 00:34:17,750 ve ben 256 olası değerleri var, ancak birinci 0, 777 00:34:17,750 --> 00:34:19,909 Ben sadece biliyorum En büyük, 255 olacak 778 00:34:19,909 --> 00:34:21,510 ve bu biri olabileceğini budur. 779 00:34:21,510 --> 00:34:26,060 >> Yani bu değere 1 eklemeye çalıştığınızda varsayalım. 780 00:34:26,060 --> 00:34:28,750 Eğer sınıfta ne yapardınız Okul 1 ekleme ve zaman 781 00:34:28,750 --> 00:34:31,139 Gerçekten çünkü uymuyor Eğer 1 taşımak zorunda? 782 00:34:31,139 --> 00:34:34,380 Gidiş bu sayı nedir Eğer 1 eklerken olmak? 783 00:34:34,380 --> 00:34:37,030 O 0 olmak için gidiyor. 784 00:34:37,030 --> 00:34:37,530 Sağ? 785 00:34:37,530 --> 00:34:41,139 Daha bits-- vardı ve eğer Çünkü olacak , tür, denemek var-- yazın dışarı 786 00:34:41,139 --> 00:34:44,710 Biz daha fazla bit, olsaydı ne 1 ekleyin olduğunu burada yapabileceğini, 787 00:34:44,710 --> 00:34:47,370 ve sonra biz bu olsun istiyorum. 788 00:34:47,370 --> 00:34:48,739 Whoops. 789 00:34:48,739 --> 00:34:52,250 Biz buraya bir 1 Biti tüm yol olurdu. 790 00:34:52,250 --> 00:34:55,530 >> Ancak bu sonlu ise değer, sadece 8 bit var, 791 00:34:55,530 --> 00:34:57,480 ve önceden belirlenmiş var: bilgisayar tarafından, 792 00:34:57,480 --> 00:34:59,370 1 etkin bir şekilde orada değil. 793 00:34:59,370 --> 00:35:00,980 Bu sadece tür bir uçurumdan düşer. 794 00:35:00,980 --> 00:35:05,480 Ve böylece 255 1 eklerseniz ne Görünüşe göre değeri alabilirim? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 Ve kazara sayılar, böylece, ve belki de istemeden, 797 00:35:09,700 --> 00:35:12,040 Bu gibi etrafında sarma sonuna kadar. 798 00:35:12,040 --> 00:35:14,079 Peki bu ima olabilir? 799 00:35:14,079 --> 00:35:15,620 Eh, birkaç farklı şeyler var. 800 00:35:15,620 --> 00:35:18,751 Yani bir bu görsterme yok 0 gibi, istemeden, 801 00:35:18,751 --> 00:35:20,750 ama ne tür görebilirsiniz Hatta gerçek dünyada, 802 00:35:20,750 --> 00:35:23,416 iyi ya da kötü, Bir sınırın bu düşüncenin tezahürleri. 803 00:35:23,416 --> 00:35:26,630 Örneğin, birisi sizin için kim Hiç Lego Star Wars oynamıştır, 804 00:35:26,630 --> 00:35:28,880 Herkes biliyor mu jeton sayısı 805 00:35:28,880 --> 00:35:32,032 Eğer Lego Star Wars toplayabilir? 806 00:35:32,032 --> 00:35:35,640 Dayalı bir tahmin almak Günümüzün önde gelen sorular. 807 00:35:35,640 --> 00:35:39,140 Bu 256 ya da 255 daha büyük. 808 00:35:39,140 --> 00:35:40,330 Bu 4 milyar bulunuyor. 809 00:35:40,330 --> 00:35:42,080 Bu yüzden çıkıyor ve Bazı people-- var 810 00:35:42,080 --> 00:35:46,080 Bazı googling teyit son akşam-- 4 milyar altın sikke aldık, 811 00:35:46,080 --> 00:35:47,730 ya Lego Star Wars etajer. 812 00:35:47,730 --> 00:35:49,860 Görünüşe rağmen, var Bir yol oyunu kandırmak için, 813 00:35:49,860 --> 00:35:53,222 Bir hata veya özellik var, o yapmanızı sağlayan sadece çok ve çok puan tahakkuk. 814 00:35:53,222 --> 00:35:54,930 Ama en büyük olası değer, uygun 815 00:35:54,930 --> 00:35:58,360 Birisi I Bu ekran görüntüsü için çevrimiçi bulundu, aslında 4 milyar olduğunu. 816 00:35:58,360 --> 00:35:59,240 >> Şimdi neden? 817 00:35:59,240 --> 00:36:03,040 Bu, tam olarak 4000000000 var: Muhtemelen birileri karar çünkü, 818 00:36:03,040 --> 00:36:05,500 kim bu oyun yazıyordu, Onlar 4 milyar yapabileceğini, 819 00:36:05,500 --> 00:36:07,340 bir şey, bir şey, bir şey, değeri gibi koymak 820 00:36:07,340 --> 00:36:10,256 hesap makinesi ile daha önce ama bu insanlar için sadece küçük bir temizleyici 821 00:36:10,256 --> 00:36:12,610 maksimum sayıda söylemek coins-- veya çivilerin, 822 00:36:12,610 --> 00:36:14,860 onlar sizin bu them-- dediğimiz gibi toplayabilir 4 milyar olduğunu. 823 00:36:14,860 --> 00:36:16,290 Ve böylece, bu neden? 824 00:36:16,290 --> 00:36:20,310 Nasıl LEGO oyunu sayaç uygulama 825 00:36:20,310 --> 00:36:23,420 Bu takip tutuyor Sahip jeton sayısı? 826 00:36:23,420 --> 00:36:24,266 Onlar neyi kullanıyorlar? 827 00:36:24,266 --> 00:36:26,390 KİTLE ÜYE: Bu durdurur 4 milyar sonra sayım. 828 00:36:26,390 --> 00:36:27,720 DAVID J MALAN: Bu durdurur 4 milyar sonra sayma, 829 00:36:27,720 --> 00:36:29,525 hangi anlamına gelir Bir programcı olarak, anlaması, 830 00:36:29,525 --> 00:36:31,960 Muhtemelen olduğunu 32 bitlik tamsayı kullanarak. 831 00:36:31,960 --> 00:36:35,380 Programcı gibi kelimenin tam anlamıyla sadece tip, int, onun kod, 832 00:36:35,380 --> 00:36:39,620 ve bu değişkenin tipi olduğunu Onlar birinin kodunu depolamak için kullanıyoruz. 833 00:36:39,620 --> 00:36:42,230 Yani diğer belirtiler var limitlerin bu tür. 834 00:36:42,230 --> 00:36:45,063 >> Yani bu galibiyet oynadı değil ve ben tarihe kadar okuyor 835 00:36:45,063 --> 00:36:48,470 much-- olarak ama teyit etmek Uygarlık, özgün sürümü 836 00:36:48,470 --> 00:36:53,240 görünüşte her etkileşim Diğer ve savaş ya da barış olabilir, 837 00:36:53,240 --> 00:36:56,590 Gandi biri olması gerekiyordu en huzurlu karakterler, ben 838 00:36:56,590 --> 00:36:59,280 İlk olarak, bunu anlamak Uygarlık sürümü. 839 00:36:59,280 --> 00:37:03,250 Ve aslında, 1 ila 10 arasında bir ölçek üzerinde Onun saldırganlık sadece 1 oldu. 840 00:37:03,250 --> 00:37:05,620 Yani her zamankinden çok hafif agresif, görünüşe göre. 841 00:37:05,620 --> 00:37:11,590 >> Ama bir noktada, görünüşte yapabilirsiniz senin coğrafyada demokrasi yükleyin. 842 00:37:11,590 --> 00:37:14,900 Ve eğer demokrasiyi yüklerseniz Oyunun sürümü içine, 843 00:37:14,900 --> 00:37:17,320 sonra saldırganlık düzeyi iner. 844 00:37:17,320 --> 00:37:18,460 Bu iyi bir şey. 845 00:37:18,460 --> 00:37:20,890 İnsanlar daha sakin olan Görünüşe göre, bu durumda. 846 00:37:20,890 --> 00:37:23,190 Ama görünüşe göre, birisi yaptı Bir, eğer, durumu yok 847 00:37:23,190 --> 00:37:24,780 kodun orijinal versiyonu. 848 00:37:24,780 --> 00:37:30,650 >> Yani Gandi'nin saldırganlık düzeyi gitti 1 olumlu, eksi 2, 1 negatif, 849 00:37:30,650 --> 00:37:33,840 ama oyun değil Negatif sayılar anlıyorum. 850 00:37:33,840 --> 00:37:38,680 Peki ne oldu Gandi'nin saldırganlık oldu seviye, 1 negatife, 0, 1 gitti 851 00:37:38,680 --> 00:37:40,900 etkisi vardı olmanın etrafında sarma 852 00:37:40,900 --> 00:37:44,690 en agresif karakteri Oyunda, 255 değerinde, 853 00:37:44,690 --> 00:37:46,630 1 ila 10 arasında bir ölçekte. 854 00:37:46,630 --> 00:37:49,887 Ve o zamandan beri, var oldu Bu oyunun daha enkarnasyonları, 855 00:37:49,887 --> 00:37:51,720 ve onlar gibi sakladım Paskalya yumurtası bir tür, 856 00:37:51,720 --> 00:37:53,870 Gandi görünüşte olduğunu bu yüzden korkunç agresif. 857 00:37:53,870 --> 00:37:56,740 Ama sonucudur çok basit bir programlama hatası 858 00:37:56,740 --> 00:37:58,630 Oyunun çok erken versiyonu. 859 00:37:58,630 --> 00:38:02,860 >> Şimdi daha rahatsız edici, daha Son zamanlarda, Boeing 787 860 00:38:02,860 --> 00:38:05,720 Bir sahip olarak belgelenmiştir Cihazın hata değil, bir tür 861 00:38:05,720 --> 00:38:07,340 Eğer özellikle bir hata olmasını istiyorum. 862 00:38:07,340 --> 00:38:10,130 Ve belirtiler, ben okuyacağım Burada, çevrimiçi bir makaleden, 863 00:38:10,130 --> 00:38:13,840 Bu bir model 787 uçak oldu Bu sürekli desteklenmektedir edilmiştir 864 00:38:13,840 --> 00:38:18,030 248 gün boyunca tüm kaybedebilir alternatif akım, AC, 865 00:38:18,030 --> 00:38:20,850 nedeniyle elektrik enerjisi, Jeneratör kontrol üniteleri, 866 00:38:20,850 --> 00:38:23,330 GCUs, eş zamanlı olarak Fail-güvenli modda girmeden. 867 00:38:23,330 --> 00:38:26,790 Yani bu verilen bir uyarıydı Bu sorun keşfedildi zaman. 868 00:38:26,790 --> 00:38:28,750 Bu durum ortaya çıkar Bir yazılım sayacı ile, 869 00:38:28,750 --> 00:38:32,230 , GCUs iç yüzden bir tamsayı veya değişken, 870 00:38:32,230 --> 00:38:36,850 248 bundan sonra olacak taşması Sürekli güç günler. 871 00:38:36,850 --> 00:38:40,350 Boeing sürecinde Bir GCU yazılım güncellemesi gelişmekte olduğunu 872 00:38:40,350 --> 00:38:42,350 güvensiz durumu düzeltmek olacaktır. 873 00:38:42,350 --> 00:38:44,226 >> Füze gibi O kadar senaryo, burada 874 00:38:44,226 --> 00:38:46,850 Onlar değişken bir tür vardı Bu, sayma ve sayım 875 00:38:46,850 --> 00:38:50,720 ve sayma, ama yavaş yavaş taşan onun yeteneği sınırları, 876 00:38:50,720 --> 00:38:54,890 Benzer lanet uçağı yaptı değişken taşma var 877 00:38:54,890 --> 00:38:56,410 çalışan yeterli süre sonra. 878 00:38:56,410 --> 00:38:59,240 Ve böylece dil-yanak yolu Bu soruna geçici bir çalışma 879 00:38:59,240 --> 00:39:04,400 Gerçekten, yeniden doğmuş gibi, senin uçağın her etmektir Bellek sildi alır, böylece 247 gün, 880 00:39:04,400 --> 00:39:06,100 ve değişken 0 geriye gider. 881 00:39:06,100 --> 00:39:09,410 Ama fark bu çok olduğunu Yazılımın büyük vücut bulma, 882 00:39:09,410 --> 00:39:14,070 ama biz Apple'ın duymak özellikle otomobil girmeden işletim sistemlerini, 883 00:39:14,070 --> 00:39:18,030 Google'dan araba kendi kendine sürüş ve Yazılımın incarnations herhangi bir sayıda 884 00:39:18,030 --> 00:39:21,000 Bizim günlük yaşamlarını, TV'lerde ve saatler, ve daha fazlası, 885 00:39:21,000 --> 00:39:24,950 yazılım tarafından çevriliydi fark, bütün bunlar bize insanlar tarafından yazılmıştır. 886 00:39:24,950 --> 00:39:28,150 >> Ve hepimiz yakında keşfedeceksiniz olarak, çok kolay ve çok tipik 887 00:39:28,150 --> 00:39:30,250 yazılım yazarken hata yapmak. 888 00:39:30,250 --> 00:39:32,745 Ve sen onları yakalamak yoksa, Bazı kötü şeyler olabilir. 889 00:39:32,745 --> 00:39:35,400 Şimdi bazen, bazı komik şeyler, olabilir 890 00:39:35,400 --> 00:39:38,280 ya da en azından bazen Bazı kötülüğü beklemek biliyorum. 891 00:39:38,280 --> 00:39:41,550 Yani 0 sınıftan 0 bölü Okul, genellikle kötü bir şeydir. 892 00:39:41,550 --> 00:39:43,050 Bu tanımsız var. 893 00:39:43,050 --> 00:39:46,440 Ve konrtol döner ve en olmadığını görelim Bu alabilirsiniz benim mikrofon o Apple up-- 894 00:39:46,440 --> 00:39:47,790 Son zamanlarda bu bazı eğlendim. 895 00:39:47,790 --> 00:39:48,850 Yani burada bir iPhone var. 896 00:39:48,850 --> 00:39:54,160 Ben Siri konuşmak ve ona soracağım Bana 0 bölü 0 cevap vermek. 897 00:39:54,160 --> 00:39:55,850 0 0 ile ne bölünür? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI: Eğer 0 olduğunu düşünün Çerezler ve eşit olarak onları bölmek 900 00:40:02,230 --> 00:40:03,540 0 arkadaşlar arasında. 901 00:40:03,540 --> 00:40:05,810 Her kişi kaç kurabiye alıyor? 902 00:40:05,810 --> 00:40:06,350 Görmek? 903 00:40:06,350 --> 00:40:07,660 Bu mantıklı değil. 904 00:40:07,660 --> 00:40:10,540 Ve kurabiye canavarı üzücü hiçbir tanımlama vardır. 905 00:40:10,540 --> 00:40:13,987 Ve o üzgün Eğer hiçbir arkadaşlarım var. 906 00:40:13,987 --> 00:40:15,570 DAVID J MALAN: Bu iğrenç tür. 907 00:40:15,570 --> 00:40:17,550 Yani bu sadece orada söylenenleri olduğunu. 908 00:40:17,550 --> 00:40:21,380 O tanımlı değil, belirsiz değil, ve aslında birçok programlama dilleri 909 00:40:21,380 --> 00:40:24,950 ya da gerçekten, derleyiciler olacak ne zaman bir program tespit, 910 00:40:24,950 --> 00:40:27,050 0 ile 0 bölmeye çalışın. 911 00:40:27,050 --> 00:40:29,830 Bu olsa daha eğlenceli olduğunu görünüşe göre, Cookie Monster 912 00:40:29,830 --> 00:40:31,270 Bugünlerde Twitter'da olduğunu. 913 00:40:31,270 --> 00:40:37,610 Ve o bu ile, bu cevap, hangi kesinlikle çok güzel. 914 00:40:37,610 --> 00:40:40,110 Ama kısaca bir göz atalım Diğer yapıların bir çift, 915 00:40:40,110 --> 00:40:43,459 ve sonra bu biraz koymak Kod iyi şekilde kullanmak. 916 00:40:43,459 --> 00:40:45,250 Bu yüzden yanında, çıkıyor döngüler için, var 917 00:40:45,250 --> 00:40:49,174 şey bu, bir while döngüsü denilen farklı görünüyor ve uygulanmaktadır 918 00:40:49,174 --> 00:40:51,590 Biraz differently-- ve Biz sonunda examples-- görürsünüz 919 00:40:51,590 --> 00:40:53,500 ancak bir anlamda, bunun nedeni basittir 920 00:40:53,500 --> 00:40:56,670 Eğer başlatmak için izin vermez ve döngünün sınırları içinde güncelleyin. 921 00:40:56,670 --> 00:40:57,794 Hala bunu uygulamaya olabilir. 922 00:40:57,794 --> 00:41:01,219 Yani aynı şeyler yapabilirsiniz Bir süre döngü ile döngü bir olduğu gibi, 923 00:41:01,219 --> 00:41:03,260 ancak sözdizimi, ultimately-- biz sonunda olacak şekilde 924 00:41:03,260 --> 00:41:04,551 see-- farklı olacak. 925 00:41:04,551 --> 00:41:07,450 Bir do, döngü sırasında bile var olan aslında biraz farklı 926 00:41:07,450 --> 00:41:09,640 bu ise için döngü ve her zaman bir while döngüsü 927 00:41:09,640 --> 00:41:13,005 eğer, öncelikle kendi durumunu kontrol Eğer alt bu şey üst okumak 928 00:41:13,005 --> 00:41:16,440 o gidiyor gibi bu tür görünüm bu kadar geçen çünkü 's durumunu kontrol 929 00:41:16,440 --> 00:41:17,910 kod gerçekten son satırı. 930 00:41:17,910 --> 00:41:20,580 Ve gerçekten de, bu yararlı olacak Biz yazmak belirli programlara, 931 00:41:20,580 --> 00:41:23,746 Eğer sadece körü körüne bir şey yapmak istiyorsanız ve sonunda durumunu kontrol edin. 932 00:41:23,746 --> 00:41:25,205 Bu mutlaka kötü bir şey değil. 933 00:41:25,205 --> 00:41:27,912 Biz değişkenleri istiyorsak, yapabileceğimiz farklı şekillerde bir çift. 934 00:41:27,912 --> 00:41:30,290 Ve biz fokstrot gördüm karikatür, bunu yapmanın bir yolu, 935 00:41:30,290 --> 00:41:33,400 Nerede sizin değişken bildirmek, int sayaç noktalı virgül gibi, 936 00:41:33,400 --> 00:41:36,570 ve sonra belki bir sonraki later-- çizgi, belki 10 satır later-- 937 00:41:36,570 --> 00:41:37,800 aslında başlatılamadı. 938 00:41:37,800 --> 00:41:42,230 Kod Peki bu 2 satır int türünde bir değişken bildirmek 939 00:41:42,230 --> 00:41:44,930 o verir, böylece ve sayaç diyoruz Beni yeterince bit bir int tutun. 940 00:41:44,930 --> 00:41:48,230 Ve sonra sonunda, bu koyar Bu değişkene değer 0. 941 00:41:48,230 --> 00:41:51,250 Bir 0 ve 1 's düzenler desen, biz geçen hafta biliyorum, 942 00:41:51,250 --> 00:41:53,260 Biz 0 olarak biliyoruz sayısını temsil eder. 943 00:41:53,260 --> 00:41:56,920 Ya açıkçası, bu kadar yapabilirsiniz daha özlü, sadece bu gibi. 944 00:41:56,920 --> 00:41:59,390 >> Şimdi biz de var işlevleri çağırmak için yeteneği. 945 00:41:59,390 --> 00:42:03,070 Ve aslında, burada bir 2 satır var Program, ya da bunun bir alıntı, 946 00:42:03,070 --> 00:42:06,157 aslında bize izin verir Bazı kod yazmak 947 00:42:06,157 --> 00:42:08,990 user-- bir dize alır çok Bizim gönüllü bir an gibi önce-- 948 00:42:08,990 --> 00:42:11,320 sonuç olarak depolamak isim adında bir değişken, 949 00:42:11,320 --> 00:42:15,470 ve sonra-- çok bizim gönüllü olduğu gibi Bu değerler üzerinden printf-- baskılar 950 00:42:15,470 --> 00:42:19,180 İki argüman olarak ileterek, Dize, değişken ardından 951 00:42:19,180 --> 00:42:20,781 isim, kendisini aradı. 952 00:42:20,781 --> 00:42:23,155 Yani önce, bir göz atalım Biz oraya Mario gelmek 953 00:42:23,155 --> 00:42:26,010 Bu şimdi, örnekler bir çift. 954 00:42:26,010 --> 00:42:30,537 >> Ben önde ve açık gidiyorum yukarı, işlevi-0.c, diyelim. 955 00:42:30,537 --> 00:42:33,120 Ve her zaman olduğu gibi, bu kodu dersin web sitesinde mevcuttur, 956 00:42:33,120 --> 00:42:35,660 böylece de birlikte oynayabilir Ev ve daha sonra bakmak. 957 00:42:35,660 --> 00:42:40,400 Bu kadar ama burada program hat 17 ile 22 özü. 958 00:42:40,400 --> 00:42:43,270 Ana program olduğu programı her zaman başlayacak. 959 00:42:43,270 --> 00:42:46,980 Bu program, görünüşe göre, gidiyor , kolon adını yazdırmak için. 960 00:42:46,980 --> 00:42:50,320 Daha sonra, getString arayacak tıpkı bizim gönüllülerle yaptı. 961 00:42:50,320 --> 00:42:53,365 Ve sonra, bu, ilginç o PrintName arayacak. 962 00:42:53,365 --> 00:42:56,490 Orada, bütün bu süre çıkıyor PrintName olarak adlandırılan bir fonksiyonu olduğu görülmektedir. 963 00:42:56,490 --> 00:42:57,614 O birinin adını yazdırır. 964 00:42:57,614 --> 00:43:01,210 Biz gelen printf kullanmaya gerek yoktu yesteryear, PrintName var. 965 00:43:01,210 --> 00:43:03,500 >> Ama bu yanıltıcı PrintName değildir, çünkü 966 00:43:03,500 --> 00:43:06,760 C. İnsanlar vermedi gel yaklaşık 40 ya da 50 yıl önce icat, 967 00:43:06,760 --> 00:43:07,990 Bunun yerine, yaptım. 968 00:43:07,990 --> 00:43:10,330 Ve aslında, ben kaydırma eğer ayrıca, haber aşağı 969 00:43:10,330 --> 00:43:14,200 Benim kendi yazabilirim nasıl C. fonksiyonları Biz sonunda olacak 970 00:43:14,200 --> 00:43:16,319 diyerek devam niçin, boşluk, birkaç yerde, 971 00:43:16,319 --> 00:43:18,110 ama bugün için, haydi Sadece adının bak. 972 00:43:18,110 --> 00:43:20,905 >> Hat 24 üzerinde, isterseniz Kendi işlevi oluşturmak 973 00:43:20,905 --> 00:43:22,780 kelimenin tam anlamıyla yazmak Fonksiyonun adı. 974 00:43:22,780 --> 00:43:24,340 Ben PrintName seçti. 975 00:43:24,340 --> 00:43:26,159 Parantez olarak, Daha sonra belirttiğiniz ne tür 976 00:43:26,159 --> 00:43:28,450 girdilerin, ve kaç Bu işlev almak istiyorum. 977 00:43:28,450 --> 00:43:31,906 Bu durumda, ben almak istiyorum Denilen 1 değişken, isim, 978 00:43:31,906 --> 00:43:34,030 ve bunun olacak türü, dize, bu yüzden gidiyor 979 00:43:34,030 --> 00:43:35,780 bazı karakterler dizisi için. 980 00:43:35,780 --> 00:43:39,170 Ve sonra, bu program-- Scratch gibi çok, 981 00:43:39,170 --> 00:43:42,590 özel bulmaca olabilir pieces-- Bu özel davranış sahip oluyor. 982 00:43:42,590 --> 00:43:46,760 Bu printf arayacak geçen, merhaba, yer tutucu, 983 00:43:46,760 --> 00:43:49,110 ve daha sonra fiş gidiyor ne olursa olsun kullanıcı denir. 984 00:43:49,110 --> 00:43:51,450 >> Yani bu bir örnek nedir Bir bilgisayar bilimcisi olur 985 00:43:51,450 --> 00:43:55,090 Çağrı soyutlama veya fonksiyonel Sadece olan ayrışma, 986 00:43:55,090 --> 00:43:58,110 saying-- eğer mı fantezi yolları Eğer bu üst düzey fikri hoşuma 987 00:43:58,110 --> 00:44:01,569 gibi işlevselliğini istiyorum Kesinlikle, birinin adını yazdıran 988 00:44:01,569 --> 00:44:04,360 Kelimenin tam anlamıyla, sonra printf yazabilir ve İstediğiniz argüman olarak geçmesi, 989 00:44:04,360 --> 00:44:07,340 ve program çalışacaktır, Çarşamba beri olduğu gibi. 990 00:44:07,340 --> 00:44:10,510 Ama uzak soyut başlayabilirsiniz Bir isim yazdırmak kavramı. 991 00:44:10,510 --> 00:44:13,270 Sen buna bir isim verebilirsiniz, PrintName ve bunun gibi 992 00:44:13,270 --> 00:44:15,280 Haftanın 0 dan katmanlama bu fikir. 993 00:44:15,280 --> 00:44:19,910 >> Bundan böyle, ben ve bilmek zorunda değilsiniz veya PrintName nasıl uygulandığını önemsiyorum. 994 00:44:19,910 --> 00:44:22,470 Evet belki, printf kullanır kim kullanır bilir ne, değil mi? 995 00:44:22,470 --> 00:44:23,410 Kim umursar? 996 00:44:23,410 --> 00:44:26,034 Şimdi ben burada konuşuyorum, yerine aşağı buradan. 997 00:44:26,034 --> 00:44:28,700 Ve gerçekten, bizim programlar olsun daha gelişmiş ve sofistike, 998 00:44:28,700 --> 00:44:32,550 hafife biz almaya devam edeceğiz Alt düzey puzzle parçaları var olduğunu. 999 00:44:32,550 --> 00:44:34,780 Biz onları yazdım çünkü ya da bir başkası, bu yüzden yaptım 1000 00:44:34,780 --> 00:44:36,910 biz o zaman onları üstüne inşa edebilirsiniz. 1001 00:44:36,910 --> 00:44:39,430 Şimdi bu bir göz atalım varyant, bir işlev. 1002 00:44:39,430 --> 00:44:41,780 >> Yani bu bir biraz daha var Gelişmiş, ama çıkıyor 1003 00:44:41,780 --> 00:44:44,570 CS50 kütüphanesinde bu, Sadece GETINT fonksiyonu var. 1004 00:44:44,570 --> 00:44:47,720 Biz, yıllar önce, düşünmüyordu Bir GetPositiveInt işlevi uygulamak. 1005 00:44:47,720 --> 00:44:50,970 Ve bu biraz sinir bozucu çünkü eğer Siz bir program olup, yazıyoruz 1006 00:44:50,970 --> 00:44:53,325 Eğer olumlu bir almak istiyorum kullanıcı arasında bir tamsayıdır, 1007 00:44:53,325 --> 00:44:55,010 kesinlikle GETINT kullanabilirsiniz. 1008 00:44:55,010 --> 00:44:57,840 Ve kesinlikle ile kontrol edebilirsiniz durumu ve belki bir döngü 1009 00:44:57,840 --> 00:45:00,320 Bu int büyük olduğu takdirde ve 0'dan kullanıcı bağırma 1010 00:45:00,320 --> 00:45:02,699 o vermezse Eğer pozitif bir sayı. 1011 00:45:02,699 --> 00:45:04,740 Ama bu oluşsun Bina, bir kendimizi engellemek, 1012 00:45:04,740 --> 00:45:06,555 Özel Scratch parça, eğer sen. 1013 00:45:06,555 --> 00:45:08,680 Bir program için gidiyorum Burada sonuçta, ben 1014 00:45:08,680 --> 00:45:11,780 arama yapabilmek istiyorum GetPositiveInt ve ben olmak istiyorum 1015 00:45:11,780 --> 00:45:14,200 Bu int ne olursa olsun yazdırmak mümkün. 1016 00:45:14,200 --> 00:45:16,240 Ama bu artık uzak soyutlanması edilir. 1017 00:45:16,240 --> 00:45:19,050 Bu sadece yüksek düzeyde verilmiş oldu ne yaptığını söylüyor isim, 1018 00:45:19,050 --> 00:45:21,780 o çünkü harika olan okumak artık çok kolay. 1019 00:45:21,780 --> 00:45:24,710 Umurumda yaparsam ne altında var Kaput, beni aşağı kaydırma olsun. 1020 00:45:24,710 --> 00:45:27,140 Ve biraz korkutucu olduğunu İlk başta, özellikle 1021 00:45:27,140 --> 00:45:29,470 Bu ilk program ise, ama en bir göz atalım. 1022 00:45:29,470 --> 00:45:32,860 >> Ben artık geçersiz diyorum işlevleri çıkıyor, çünkü 1023 00:45:32,860 --> 00:45:34,777 çok getString gibi, can Bana bir değer döndürür. 1024 00:45:34,777 --> 00:45:36,610 Onlar sadece yok ekrana yazdırmak için, 1025 00:45:36,610 --> 00:45:38,410 aslında teslim edebilirsiniz geri bana bir şey. 1026 00:45:38,410 --> 00:45:41,535 Ve PrintName önce ise, Hiçbir şey geri gerek yoktu. 1027 00:45:41,535 --> 00:45:44,160 Ben yan etkisi gerekli bir şey, ekranda gösteriliyor 1028 00:45:44,160 --> 00:45:46,570 ama bir insan gerek yoktu Bana bir şey geri el. 1029 00:45:46,570 --> 00:45:48,840 Burada, GetPositiveInt ile GETINT olduğu gibi, 1030 00:45:48,840 --> 00:45:50,640 Ben geri bir şey teslim etmek istiyorum. 1031 00:45:50,640 --> 00:45:53,220 Yani, boşluk değil söylüyorum hat 23, fakat int üzerine, 1032 00:45:53,220 --> 00:45:55,570 hangi diyor, bu işlev Ben yazıyorum, 1033 00:45:55,570 --> 00:45:58,860 GetPositiveInt gidiyor denilen bir tamsayı değil, hiçbir şey beni geri ver, 1034 00:45:58,860 --> 00:45:59,890 hükümsüz değil. 1035 00:45:59,890 --> 00:46:03,280 >> Bu arada, hayır almaya gidiyor girişler, bu yüzden, tür, bunu tersine ettik. 1036 00:46:03,280 --> 00:46:08,280 Ben GetPositiveInt herhangi vermeyeceğim girişi, ben bana çıkışını vermek istiyorum. 1037 00:46:08,280 --> 00:46:09,800 Sonra ne olacak şimdi? 1038 00:46:09,800 --> 00:46:11,640 Yani burada bir değişken bildirebilirsiniz nasıl. 1039 00:46:11,640 --> 00:46:15,090 Ben, döngü dışında yaptık biz sonunda göreceğiz nedenlerden dolayı, 1040 00:46:15,090 --> 00:46:17,700 ama bu sadece verir Bana 32 bit olarak adlandırılan, n, 1041 00:46:17,700 --> 00:46:20,952 ve ön-belirleyici ettik Onları tamsayı saklamak için. 1042 00:46:20,952 --> 00:46:23,660 Ve burada, yapı iken yapmak var yararlı yüzden ve bu olduğunu. 1043 00:46:23,660 --> 00:46:26,700 Kelimenin tam anlamıyla bunu, n 1 'den daha az olduğu görülmektedir. 1044 00:46:26,700 --> 00:46:28,030 Yani ne olacağını görelim. 1045 00:46:28,030 --> 00:46:30,760 Ben, lütfen çıktısını Bana olumlu bir int verir. 1046 00:46:30,760 --> 00:46:34,300 Sonra CS50 en kullanarak, bir int olsun fonksiyonu ve n saklandı. 1047 00:46:34,300 --> 00:46:38,990 >> Ve sonra, kod satırının muhtemelen mantıklı, sonraki idam olur? 1048 00:46:38,990 --> 00:46:41,890 Hangi satır numarası? 1049 00:46:41,890 --> 00:46:42,571 Evet, bu yüzden 31. 1050 00:46:42,571 --> 00:46:45,320 Eğer ettik kadar bu bilemeyiz söyledi ya gerisini sonucuna edilmiş, 1051 00:46:45,320 --> 00:46:45,986 ama bu doğru değil. 1052 00:46:45,986 --> 00:46:48,280 Bu yukarıdan aşağıya gider ve sonra yinelenen tutar. 1053 00:46:48,280 --> 00:46:55,840 Ben sayısı, diyelim ki yazdığınız Yani eğer 1 negatif, 1 eksi daha n az? 1054 00:46:55,840 --> 00:46:56,340 Evet. 1055 00:46:56,340 --> 00:46:58,470 1 olumsuz 1 'den daha az olduğu için. 1056 00:46:58,470 --> 00:46:59,510 Peki ne olur ki? 1057 00:46:59,510 --> 00:47:03,260 Bunu yapmak için gidiyorum n, en az 1 iken, 1058 00:47:03,260 --> 00:47:05,760 bu yüzden geri hattına 28 gidiyorum. 1059 00:47:05,760 --> 00:47:09,530 >> Ve her defasında bir ve en bu-- çalışmasına izin Fonksiyon 1 derlemek için yapmak, 1060 00:47:09,530 --> 00:47:11,340 ve şimdi fonksiyonu 1. çizgi nokta. 1061 00:47:11,340 --> 00:47:14,280 Negatif 1 yazarsanız, bu kadar bana bağırmaya devam edecek 1062 00:47:14,280 --> 00:47:17,530 Her için işbirliği kadar Benim girişlerin en az 1 'dir 1063 00:47:17,530 --> 00:47:20,070 ve daha az 1 iken ise, Ben bunu yapmaya devam edeceğim. 1064 00:47:20,070 --> 00:47:24,240 Sonunda 50 gibi o bir numara verirseniz, Neyse ki, bu 50 için teşekkürler, diyor. 1065 00:47:24,240 --> 00:47:24,970 Neden? 1066 00:47:24,970 --> 00:47:30,640 N, daha az olmadığı için en kısa sürede 1, ben, bu döngüde saplanıyor durdurmak 1067 00:47:30,640 --> 00:47:33,840 ve bu yeni kelime bugün, Dönüş, tam anlamıyla bunu yapmaz. 1068 00:47:33,840 --> 00:47:36,800 Yani sadece bir yer, uyguladık duygusu, getString eşdeğer, 1069 00:47:36,800 --> 00:47:40,590 nerede geri teslim ediyorum kim, bazı değer beni kullanıyor. 1070 00:47:40,590 --> 00:47:42,820 Öyle olmak zorunda değildir bir dize, bir int var. 1071 00:47:42,820 --> 00:47:44,990 Hızlı, Yani basit örnek ama biz yakında olacak 1072 00:47:44,990 --> 00:47:47,930 Biraz daha sofistike bakın Hala sürümleri. 1073 00:47:47,930 --> 00:47:53,882 Aslında, en bir bir göz atalım return.c adlandırılan sayısal biri. 1074 00:47:53,882 --> 00:47:55,590 Ve bu aslında Biraz daha basit. 1075 00:47:55,590 --> 00:47:59,010 Yani bu programın amacı içinde Hayat-- en derleyip çalıştırmak izin, 1076 00:47:59,010 --> 00:48:03,090 yani nokta, dönüş yapmak çizgi, return-- haber 1077 00:48:03,090 --> 00:48:05,530 program sadece değeri 2 küpler. 1078 00:48:05,530 --> 00:48:08,410 Bu, zor oldukça aptal oluyor kod, herhangi girdileri almaz, 1079 00:48:08,410 --> 00:48:12,220 ancak başka göstermek yapar Kendimi yazdık işlevi. 1080 00:48:12,220 --> 00:48:15,760 Yani burada, ben ilan ettik Değişken, int türünde, x denilen 1081 00:48:15,760 --> 00:48:17,840 sayı 2 eşit tamamen keyfi. 1082 00:48:17,840 --> 00:48:19,530 Bu sadece bazı kabarık baskı yapıyor. 1083 00:48:19,530 --> 00:48:23,070 Bu x söylüyor şimdi, böyle ve Böyle, cubing dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 Ve sihirli hattında 21 görünüşe göre. 1085 00:48:26,390 --> 00:48:30,120 Ben, küp adında bir işlevi arıyorum, Ben bunu bir kâğıt teslim ediyorum 1086 00:48:30,120 --> 00:48:32,890 üzerinde yazılı sayı 2 ile, ve ne gibi bir değer, matematiksel, 1087 00:48:32,890 --> 00:48:34,860 Ben bunun dışında almak istiyorsun? 1088 00:48:34,860 --> 00:48:36,570 Sadece bir sağlamlık denetimi olarak? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 Sağ? 1091 00:48:37,570 --> 00:48:40,160 Ben 2 2, geri küp istiyorum 3 güç, yani 8 geri. 1092 00:48:40,160 --> 00:48:42,570 >> Peki küp uygulanır? 1093 00:48:42,570 --> 00:48:44,349 Peki, burada aşağı uygulamaya olduğunu fark. 1094 00:48:44,349 --> 00:48:47,140 Ve hemen önce olduğu gibi, mantıksal, Hatta sözdizimi muhtemelen olsa 1095 00:48:47,140 --> 00:48:49,320 Size pek çok yeni, Ben bu işlevi istiyorum 1096 00:48:49,320 --> 00:48:51,780 bir sayfa beni geri el Bunun üzerine bir int kağıt. 1097 00:48:51,780 --> 00:48:53,990 Yani bir int var isim, keyfi bir 1098 00:48:53,990 --> 00:48:55,530 ama uygun küp denir. 1099 00:48:55,530 --> 00:48:58,430 Bunun giriş, bir n, Bu yüzden, tamsayı yazın 1100 00:48:58,430 --> 00:49:00,800 Ben sayısı geçebilir nasıl Bir kağıda 2. 1101 00:49:00,800 --> 00:49:03,910 Ve sonra C destekleri çıkıyor matematik, yani, zaman x adlı yok 1102 00:49:03,910 --> 00:49:06,680 Sadece yıldız kullanmak Çarpma için. 1103 00:49:06,680 --> 00:49:11,070 Ve bu n kez n defa döndürür basit bir küp değeridir n. 1104 00:49:11,070 --> 00:49:12,840 >> Peki biz bu tüm gidiyorsun? 1105 00:49:12,840 --> 00:49:14,570 Bu kesinlikle bir olduğunu kasırga turu, dinlenme emin, 1106 00:49:14,570 --> 00:49:16,410 süper bölümlerde ve problem, 1 set 1107 00:49:16,410 --> 00:49:18,368 Eğer yürüdü olacak bu daha. 1108 00:49:18,368 --> 00:49:22,490 Ve sorun set 1 de, biz geçiş olacak Sıfırdan grafik dünyadan 1109 00:49:22,490 --> 00:49:25,640 bir şey daha komut satırına C. Ama biz ilham olacak 1110 00:49:25,640 --> 00:49:27,680 Bu burada oyun geçmişin, burada adı 1111 00:49:27,680 --> 00:49:31,591 C ve standart edition kullanarak p kümesi Mario'nun piramit uygulamak gerekir. 1112 00:49:31,591 --> 00:49:34,340 Ve hacker baskısında p seti, bunu seçecek seçerseniz, 1113 00:49:34,340 --> 00:49:38,280 Eğer biraz daha uygulayacak İki zirveleri ile piramit zorlu. 1114 00:49:38,280 --> 00:49:41,239 Ayrıca, bir uygulamaya edeceğiz algoritması, açgözlü bir algoritma. 1115 00:49:41,239 --> 00:49:43,030 Bu var çıkıyor bazı ilginç mantık 1116 00:49:43,030 --> 00:49:45,640 süreci arkasında Bir kasiyer istasyonu çalıştıran 1117 00:49:45,640 --> 00:49:47,410 aslında teslim Birisi arka değişiklik. 1118 00:49:47,410 --> 00:49:50,410 Oldukça var bir algoritma var basit, o bile olabilir 1119 00:49:50,410 --> 00:49:53,576 İlk okuduğunuzda sezgisel kavramak bu-- ben hep buydu hayata 1120 00:49:53,576 --> 00:49:57,110 Birini bazı verdik herhangi bir zamanda yapılabilir Her zaman olanak tanır para back-- 1121 00:49:57,110 --> 00:50:00,679 sayısını en aza indirmek Kağıt notları veya metal sikke 1122 00:50:00,679 --> 00:50:02,220 geri kullanıcıya teslim ediyoruz söyledi. 1123 00:50:02,220 --> 00:50:04,610 Ve bu, tabii ki, zorlayıcı Eğer CVS veya etajer giderseniz, çünkü 1124 00:50:04,610 --> 00:50:06,430 Eğer teslim olmak istemiyorum olanlar bir sürü 1125 00:50:06,430 --> 00:50:07,596 ya peni bir sürü. 1126 00:50:07,596 --> 00:50:10,120 Sen en az istiyorum paralar, muhtemelen mümkün. 1127 00:50:10,120 --> 00:50:13,070 >> Son olarak, meydan olacak Su dünyasında serpmek 1128 00:50:13,070 --> 00:50:17,220 ve aslında bir takdir almak akış oranları arasında eşleme için, 1129 00:50:17,220 --> 00:50:19,890 Bir duş, su gibi, Sadece ne kadar su kullanılır. 1130 00:50:19,890 --> 00:50:22,640 Ve orada kinaye, Burada bu klibi olacak 1131 00:50:22,640 --> 00:50:24,840 biz üzerinde bitireceğiz hangi Sadece 60 saniye, o 1132 00:50:24,840 --> 00:50:29,070 Bir resim çiziyor Düşük akımlı duş başlıkları. 1133 00:50:29,070 --> 00:50:30,886 >> [VİDEO OYNATMA] 1134 00:50:30,886 --> 00:50:31,385 -Pekala. 1135 00:50:31,385 --> 00:50:32,774 Burada her şey var. 1136 00:50:32,774 --> 00:50:35,800 Ben, Cyclone F Serisi var Hydra Jetflow, Stockholm 1137 00:50:35,800 --> 00:50:37,660 Supersteam, adını siz koyun. 1138 00:50:37,660 --> 00:50:39,265 >> -Ve Sen ne tavsiye edersiniz? 1139 00:50:39,265 --> 00:50:40,460 >> -Ne arıyorsun? 1140 00:50:40,460 --> 00:50:41,300 >> -Güç Adam. 1141 00:50:41,300 --> 00:50:42,285 Güç. 1142 00:50:42,285 --> 00:50:42,910 Benzeri Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -Bu Radyasyon için. 1144 00:50:44,520 --> 00:50:46,335 -Bu doğru. 1145 00:50:46,335 --> 00:50:48,275 Bu nedir -Şimdi? 1146 00:50:48,275 --> 00:50:49,704 -Bu Komando 450 var. 1147 00:50:49,704 --> 00:50:50,620 O bir satmıyoruz. 1148 00:50:50,620 --> 00:50:51,700 >> Ama biz istediğimiz bu. 1149 00:50:51,700 --> 00:50:52,680 Bir komando 450 var. 1150 00:50:52,680 --> 00:50:53,882 >> -Hayır Inan bana. 1151 00:50:53,882 --> 00:50:55,090 Sadece sirk kullanılır. 1152 00:50:55,090 --> 00:50:56,512 Bu filler için. 1153 00:50:56,512 --> 00:50:59,356 >> Herhangi bir ödeme -I'll. 1154 00:50:59,356 --> 00:51:01,252 >> Jerry hakkında -Ne? 1155 00:51:01,252 --> 00:51:02,760 >> -Böyle Ele olamazdı. 1156 00:51:02,760 --> 00:51:04,910 O narin. 1157 00:51:04,910 --> 00:51:05,750 Ah evet. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [SON OYNATMA] 1160 00:51:37,320 --> 00:51:37,700 DAVID J MALAN: Pekala. 1161 00:51:37,700 --> 00:51:38,820 Bu CS50 için eğer var. 1162 00:51:38,820 --> 00:51:40,050 Gelecek hafta görüşürüz. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> KONUŞMACI 1: [? Scully?] [? Ian?] bildiğim kadarıyla bu outro projesi olarak, 1165 00:51:49,029 --> 00:51:50,362 Siz ne ile geldi? 1166 00:51:50,362 --> 00:51:51,990 >> HOPARLÖR 2: Evet, biz verdik bu düşünce, çeşitli 1167 00:51:51,990 --> 00:51:53,250 ve biz en iyi şekilde düşünüyorum aşağıdaki amaçlara 1168 00:51:53,250 --> 00:51:53,660 >> KONUŞMACI 3: May? 1169 00:51:53,660 --> 00:51:54,326 >> HOPARLÖR 2: Evet. 1170 00:51:54,326 --> 00:51:56,360 Elbette, aslında. 1171 00:51:56,360 --> 00:51:59,425 >> KONUŞMACI 3: Yani bence Bizim fikir özetleyebilirim 1172 00:51:59,425 --> 00:52:05,450 Bir word-- şey Outros için. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J MALAN: Hiçbir şey? 1175 00:52:10,409 --> 00:52:11,200 KONUŞMACI 3: Hiçbir şey. 1176 00:52:11,200 --> 00:52:12,990 DAVID J MALAN: Bu ne anlama geliyor? 1177 00:52:12,990 --> 00:52:16,260 KONUŞMACI 3: outros hakkında bir şey vardır. 1178 00:52:16,260 --> 00:52:21,720 HOPARLÖR 2: Şey, yani, felsefe, Yani, hiçbir şey her zaman bir şeydir. 1179 00:52:21,720 --> 00:52:24,200 KONUŞMACI 1: Yani Neler-- öncül ne? 1180 00:52:24,200 --> 00:52:25,720 KONUŞMACI 3: Yani hayat gibi. 1181 00:52:25,720 --> 00:52:26,680 TAMAM. 1182 00:52:26,680 --> 00:52:28,294 Bugün ne yaptın? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J MALAN: Kalktım vardı kahvaltı ve çalışmak için geldi. 1184 00:52:31,811 --> 00:52:34,056 >> KONUŞMACI 3: Bu bir outro var. 1185 00:52:34,056 --> 00:52:36,806 HOPARLÖR 2: Demek Fakat, olmamalıdır bir şey Şeyin üzerine ona ne 1186 00:52:36,806 --> 00:52:37,889 KONUŞMACI 3: Hayır, hayır, hayır, hayır. 1187 00:52:37,889 --> 00:52:40,220 Hiçbir şey olmuyor. 1188 00:52:40,220 --> 00:52:42,910 >> KONUŞMACI 1: Öyleyse neden izliyoruz? 1189 00:52:42,910 --> 00:52:46,956 >> KONUŞMACI 3: Çünkü Bu CS50 bir outro var. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J MALAN: Henüz. 1191 00:52:48,652 --> 00:52:49,151