1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [MÜZİK OYUN] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 DAVID J. MALAN: Pekala. 5 00:00:12,230 --> 00:00:16,440 Bu CS50 ve bu 2. Hafta sonu. 6 00:00:16,440 --> 00:00:18,480 Yani bugün, gidiyoruz Bizim göz devam 7 00:00:18,480 --> 00:00:21,150 Bir şeyleri temsil nasıl hood-- uzaklaşmakta altında 8 00:00:21,150 --> 00:00:23,520 tamsayılar gibi numaralardan gelen ve kayan nokta değeri 9 00:00:23,520 --> 00:00:26,810 ve dizeleri odaklanarak ve sonuçta daha ilginç programlar. 10 00:00:26,810 --> 00:00:30,140 Ama biz de bir bakmak gerekir etki alanına özgü problems-- çift 11 00:00:30,140 --> 00:00:33,620 İlk olacak olan kriptografi ilgili olabilir, 12 00:00:33,620 --> 00:00:36,570 bilgi çabalıyorlar sanatı, hangi burada yukarıda bakın 13 00:00:36,570 --> 00:00:41,480 Radyo Yetim Annie'nin bir resim yesteryear gizli dekoder halkası. 14 00:00:41,480 --> 00:00:46,490 >> Bu çok ilkel biçimi aslında ve kriptografi çocuk-dostu formu 15 00:00:46,490 --> 00:00:50,590 bu halka, iki disks-- sahip olmasının sağlandığı, bir iç ve bir dış. 16 00:00:50,590 --> 00:00:54,740 Ve tarafından, bunlardan birini yapabilirsiniz dönen esasen A gibi harfleri sıraya 17 00:00:54,740 --> 00:00:59,520 diğer harfler ile Z arasındaki Diğer bir deyişle A. ile B gibi, 18 00:00:59,520 --> 00:01:03,730 Eğer tam anlamıyla alfabeyi döndürebilirsiniz, böylece bir haritalama ile geliyor 19 00:01:03,730 --> 00:01:07,820 harfler mektup olduğunu, bu yüzden eğer gizli bir mesaj göndermek istedim 20 00:01:07,820 --> 00:01:11,820 Annie gibi birine, sen yazabilirsiniz Sonra döndürmek ve mesajın aşağı 21 00:01:11,820 --> 00:01:15,370 harfler, burada, sen demek eğer yerine say ", A" demek "B" 22 00:01:15,370 --> 00:01:17,280 Eğer demek "B" yerine "C" demek - 23 00:01:17,280 --> 00:01:20,240 ya da bir şey biraz daha zeki ki- daha sonra, en sonunda, 24 00:01:20,240 --> 00:01:24,630 çok uzun Annie, bu dekoder olduğu gibi halka, o mesajı çözebilir. 25 00:01:24,630 --> 00:01:28,540 Şimdi, aslında, hatırlamak, bu o olabilir Bir çok ünlü filmde kullanıldığı 26 00:01:28,540 --> 00:01:31,140 sırasında reklam nauseum çalış Noel sezonu. 27 00:01:31,140 --> 00:01:32,650 Burada bir göz atalım. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 Ralphie PARKER: "it Be Özetle tüm bilinen 30 00:01:37,210 --> 00:01:41,000 Ralph Parker vesile tayin edildiğini Küçük Yetim Annie Secret üyesi 31 00:01:41,000 --> 00:01:44,860 Çember ve tüm hakkı vardır onur ve faydaları bununla meydana. " 32 00:01:44,860 --> 00:01:47,410 >> Ralphie PARKER (öykülemesi): Küçük Yetim Annie imzaladı. 33 00:01:47,410 --> 00:01:50,070 Imzalandığı, Pierre Andre! 34 00:01:50,070 --> 00:01:51,490 Mürekkeple. 35 00:01:51,490 --> 00:01:55,494 Onur ve faydaları, Zaten dokuz yaşında. 36 00:01:55,494 --> 00:01:57,402 >> [MÜZİK OYUN] 37 00:01:57,402 --> 00:02:00,470 >> [RADYO CHATTER] 38 00:02:00,470 --> 00:02:01,470 Ralphie PARKER: Hadi. 39 00:02:01,470 --> 00:02:02,344 En onunla dönelim. 40 00:02:02,344 --> 00:02:06,029 Ben tüm bu caz gerekmez kaçakçıları ve korsanlar hakkında. 41 00:02:06,029 --> 00:02:08,820 RADYO ANONS: yarın Dinle sonuç macera için gece 42 00:02:08,820 --> 00:02:11,060 Siyah Korsan Gemisinde. 43 00:02:11,060 --> 00:02:14,740 Şimdi, zaman Annie'nin için var Eğer üyeler için gizli mesaj 44 00:02:14,740 --> 00:02:17,110 Gizli Circle. 45 00:02:17,110 --> 00:02:20,700 Çocuklar, sadece üyelere hatırla Annie'nin Gizli Circle 46 00:02:20,700 --> 00:02:23,270 Annie'nin gizli mesaj deşifre edebilir. 47 00:02:23,270 --> 00:02:27,270 >> Unutmayın, Annie sana bağlıdır. 48 00:02:27,270 --> 00:02:30,060 B-2 için işaretçilerine ayarlayın. 49 00:02:30,060 --> 00:02:34,004 İşte message-- 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 Ralphie PARKER (anlatırken): Ben Benim ilk gizli toplantıda duyuyorum. 51 00:02:36,503 --> 00:02:40,041 RADYO spikerinin: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 Ralphie PARKER (anlatırken): Ah, Pierre büyük bir ses gece oldu. 53 00:02:42,790 --> 00:02:46,110 Ben o gece en söyleyebilirdi mesajı gerçekten çok önemliydi. 54 00:02:46,110 --> 00:02:47,930 >> RADYO ANONS: --3, 25. 55 00:02:47,930 --> 00:02:49,940 Bu Annie kendini bir mesajdır. 56 00:02:49,940 --> 00:02:52,182 Kimseye söyleme, unutmayın. 57 00:02:52,182 --> 00:02:55,077 >> [Panting] 58 00:02:55,077 --> 00:02:57,285 Ralphie PARKER (öykülemesi): Doksan saniye sonra, ben değilim 59 00:02:57,285 --> 00:03:00,090 tek odada Evin nerede dokuz bir çocuk 60 00:03:00,090 --> 00:03:04,380 gizlilik ve decode oturup. 61 00:03:04,380 --> 00:03:04,990 Ah. 62 00:03:04,990 --> 00:03:05,680 "B" 63 00:03:05,680 --> 00:03:06,524 >> [Güler] 64 00:03:06,524 --> 00:03:08,684 >> Ralphie PARKER (öykülemesi): Bir sonraki gittim. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 ilk kelime "olarak" dir. 67 00:03:11,641 --> 00:03:12,140 Evet! 68 00:03:12,140 --> 00:03:14,293 Şimdi daha kolay geliyordu. 69 00:03:14,293 --> 00:03:15,259 "U." 70 00:03:15,259 --> 00:03:16,225 >> [Güler] 71 00:03:16,225 --> 00:03:18,157 >> Randy PARKER: Aw, Ralphie hadi. 72 00:03:18,157 --> 00:03:19,606 Gitmeliyim! 73 00:03:19,606 --> 00:03:21,538 >> Ralphie PARKER: Ben, sağ aşağı Ma olacak. 74 00:03:21,538 --> 00:03:22,504 Vay canına. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "T" "O." "Emin olun için. "Ne" emin olun "? 77 00:03:31,220 --> 00:03:33,981 Küçük Yetim Annie neydi demeye çalışıyor? Ne "emin olun"? 78 00:03:33,981 --> 00:03:35,522 ANNE: Ralphie, Randy gitmek var. 79 00:03:35,522 --> 00:03:36,735 Eğer çıkıp misin? 80 00:03:36,735 --> 00:03:38,190 >> Ralphie PARKER: Pekala, anne! 81 00:03:38,190 --> 00:03:39,787 Ben doğru dışarı olacağım! 82 00:03:39,787 --> 00:03:41,995 Ralphie PARKER (öykülemesi): Ben yakın şimdi başlamıştı. 83 00:03:41,995 --> 00:03:43,370 gerilim korkunç oldu. 84 00:03:43,370 --> 00:03:44,794 Ne oldu? 85 00:03:44,794 --> 00:03:47,656 gezegenin kaderi askıda olabilir. 86 00:03:47,656 --> 00:03:50,518 >> ANNE: Ralphie, Randy gitmek lazım! 87 00:03:50,518 --> 00:03:53,635 >> Ralphie PARKER: Birazdan döneceğim dışarı, yüksek sesle ağlama için! 88 00:03:53,635 --> 00:03:55,343 Ralphie PARKER (Anlatan): Neredeyse orada! 89 00:03:55,343 --> 00:03:56,520 Benim parmak uçtu! 90 00:03:56,520 --> 00:03:58,500 Aklım bir çelik tuzak oldu. 91 00:03:58,500 --> 00:03:59,850 Her gözenek vibrasyonlu. 92 00:03:59,850 --> 00:04:01,806 Neredeyse açıktı! 93 00:04:01,806 --> 00:04:02,773 Evet! 94 00:04:02,773 --> 00:04:03,273 Evet! 95 00:04:03,273 --> 00:04:03,773 Evet! 96 00:04:03,773 --> 00:04:04,740 Evet! 97 00:04:04,740 --> 00:04:10,250 >> Ralphie PARKER: "Emin olun senin ovaltine içmek için. " 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 Bir köhne ticari? 101 00:04:17,539 --> 00:04:19,439 >> [MÜZİK OYUN] 102 00:04:19,439 --> 00:04:21,724 >> Ralphie PARKER: Orospu çocuğu. 103 00:04:21,724 --> 00:04:23,460 >> [Gülüyor] 104 00:04:23,460 --> 00:04:27,070 >> David J. MALAN: o zaman So ne kriptografi bir bakış 105 00:04:27,070 --> 00:04:29,880 paha a için olabilir yesteryear içki. 106 00:04:29,880 --> 00:04:30,900 Yani hızlı bir duyuru. 107 00:04:30,900 --> 00:04:33,410 Eğer bu ücretsiz iseniz Cuma 13:15 de ve olur 108 00:04:33,410 --> 00:04:36,610 CS50 için bize katılmak ister öğle, burada bu URL'ye baş. 109 00:04:36,610 --> 00:04:38,080 Önce her zamanki gibi hizmet, gel. 110 00:04:38,080 --> 00:04:41,840 Ama zamanla, biz emin olacağım Katılmak istiyorum çoğu kimse 111 00:04:41,840 --> 00:04:43,640 zamanlama-bilge olabilir. 112 00:04:43,640 --> 00:04:45,170 >> Yani dizeleri. 113 00:04:45,170 --> 00:04:47,940 Biz Zamyla-- kime var Şimdi büyük olasılıkla tanıştım 114 00:04:47,940 --> 00:04:50,750 Sorun Set 1-- olan isim Böylece yazıldığından. 115 00:04:50,750 --> 00:04:53,570 Ve onun adını yazdığınız varsayalım bu bir bilgisayar programına 116 00:04:53,570 --> 00:04:55,710 getString gibi bir şey kullanarak. 117 00:04:55,710 --> 00:04:57,890 Almak üzere Bu tuş vuruşlarını, nasıl 118 00:04:57,890 --> 00:05:01,620 Biz temsil gidiyorsun dize, bir kelime, bir paragraf, 119 00:05:01,620 --> 00:05:03,960 veya bu gibi burada birden fazla harfler? 120 00:05:03,960 --> 00:05:06,790 >> Biz yaklaşık son kez konuştuk tamsayı ve sorunlar 121 00:05:06,790 --> 00:05:09,960 Bu tamsayı taşması ile ortaya ve kayan nokta değeri 122 00:05:09,960 --> 00:05:12,190 ve sorunlar bu hassas içinde ortaya çıkar. 123 00:05:12,190 --> 00:05:16,080 Dizeleri ile, en azından Biraz daha fazla esnekliğe sahip 124 00:05:16,080 --> 00:05:17,970 strings-- çünkü sadece Gerçek --daha dünya olarak 125 00:05:17,970 --> 00:05:19,790 oldukça keyfi uzunlukta olabilir. 126 00:05:19,790 --> 00:05:21,055 Oldukça kısa, oldukça uzun. 127 00:05:21,055 --> 00:05:23,680 Ama o zaman bile, biz gidiyoruz bulmak bilgisayarlar bazen olabilir ki 128 00:05:23,680 --> 00:05:27,200 bellek yetersiz ve hatta koşmak yeterince büyük bir dizesini depolamak. 129 00:05:27,200 --> 00:05:30,840 >> Ama şimdi, en görselleştirmek için başlayalım Bu kutulara şey olarak bir dize 130 00:05:30,840 --> 00:05:31,340 işte. 131 00:05:31,340 --> 00:05:36,410 Böylece altı kutu, her biri Bir karakteri ya da temsil "char,." 132 00:05:36,410 --> 00:05:40,646 C-h-a-r-- - yani "karakter" olduğunu hatırlamak C. yerleşik veri türlerinden biri 133 00:05:40,646 --> 00:05:43,520 Ve ne güzel kullanabilirsiniz olduğunu Bu tür bir yapı bloğu olarak, 134 00:05:43,520 --> 00:05:47,880 Bir puzzle parçası, eğer sen, bir oluşturmak için Biz devam edeceğiz verilerin büyük türü 135 00:05:47,880 --> 00:05:49,410 Bir "dizesini." aramak için 136 00:05:49,410 --> 00:05:53,650 >> Şimdi, ne düşünme yararlıdır Bu şekilde dizeleri gibi şeyler? 137 00:05:53,650 --> 00:05:57,720 Peki, biz can çıkıyor Aslında, bu yapı kaldıraç 138 00:05:57,720 --> 00:06:01,420 Aslında bireysel karakterleri erişmek için oldukça basit bir şekilde. 139 00:06:01,420 --> 00:06:04,099 Ben go ahead ve oluşturmak için gidiyorum adlı bir dosya "stringzero.c" 140 00:06:04,099 --> 00:06:05,765 İstediğiniz ne olursa olsun ama sen diyebilirsin. 141 00:06:05,765 --> 00:06:08,500 Ve dersin web sitesinde ise zaten önceden bu örnekte, 142 00:06:08,500 --> 00:06:10,430 böylece gerek yok her şeyi yazın. 143 00:06:10,430 --> 00:06:13,820 >> Ve ben önde gitmek için gidiyorum ilk int main boşluğu yok. 144 00:06:13,820 --> 00:06:15,980 Ve bir kaç gün içinde, biz ayrı kızdırmak için başlayacağız 145 00:06:15,980 --> 00:06:19,070 o yüzden ne boşluk, burada Ana yanında, vb int. 146 00:06:19,070 --> 00:06:21,180 Ama şimdi, devam edelim kopyalamak için bu yapıştırın. 147 00:06:21,180 --> 00:06:23,455 >> Ben s adında bir dize ilan edeceğim. 148 00:06:23,455 --> 00:06:26,920 Ve ben dönmek için gidiyorum Ne olursa olsun kullanıcı türleri getString. 149 00:06:26,920 --> 00:06:29,170 Bu basit olacak Program, hiçbir talimat, 150 00:06:29,170 --> 00:06:31,336 Ben sadece körü körüne gidiyorum Kullanıcı biliyor bekliyoruz 151 00:06:31,336 --> 00:06:32,600 ne basit tutmak için yapmak. 152 00:06:32,600 --> 00:06:34,220 >> Ve şimdi ben döngü için bir var gidiyorum. 153 00:06:34,220 --> 00:06:37,450 Ve benim için döngü içinde ben değilim Ben sıfır alır int olacak. 154 00:06:37,450 --> 00:06:40,660 Ve ben, yine, sadece bir kuralıdır sayma için bir dizin değişkeni, 155 00:06:40,660 --> 00:06:42,350 ama ben istiyorum ne olursa olsun bu diyebiliriz. 156 00:06:42,350 --> 00:06:46,275 Ben de edemememden az yapacağım Zamyla adı altı harf uzunluğundadır. 157 00:06:46,275 --> 00:06:48,150 Yani zor gidiyorum Şimdi orada kodu olduğunu. 158 00:06:48,150 --> 00:06:49,730 >> Ve sonra i ++. 159 00:06:49,730 --> 00:06:53,190 Ve şimdi bu kıvırcık içinde parantezi Ben, printf yapacağım 160 00:06:53,190 --> 00:06:55,460 ve ben bir tane yazdırmak istiyorum Bir seferde bir karakter. 161 00:06:55,460 --> 00:06:58,227 Yani için% c kullanmak için gidiyorum belki de ilk kez. 162 00:06:58,227 --> 00:07:00,560 Ve sonra ben her yazdırmak istiyorum kendi satırında karakter. 163 00:07:00,560 --> 00:07:02,550 Yani bir koymak için gidiyorum küçük ters eğik çizgi n var. 164 00:07:02,550 --> 00:07:03,640 Kapat alıntı. 165 00:07:03,640 --> 00:07:06,250 >> Ve şimdi burada bir şey yapmak istiyorum. 166 00:07:06,250 --> 00:07:10,610 Ben yazdırmak istiyorum dizesinde özel mektup, 167 00:07:10,610 --> 00:07:13,670 s, ben yineleme ediyorum gibi altı yukarı sıfırdan. 168 00:07:13,670 --> 00:07:17,150 Başka bir deyişle, ben istiyorum s i'inci karakterini yazdırın. 169 00:07:17,150 --> 00:07:18,420 Şimdi ben bunu nasıl yapabilirim? 170 00:07:18,420 --> 00:07:21,550 >> Kutuları gibi Eh çok Burada bu temsil, 171 00:07:21,550 --> 00:07:25,560 tür, boks kavramını hatırlatmak harfler, benzer şekilde bunu yapabilirsiniz 172 00:07:25,560 --> 00:07:32,630 sözdizimsel sadece belirterek C, Ben karakter i'inci s 's yazdırmak istiyorum. 173 00:07:32,630 --> 00:07:35,640 Köşeli parantez kullanma Bilgisayarınızın klavye üzerinde 174 00:07:35,640 --> 00:07:38,910 Bir ABD klavye üzerinde olduğunu genellikle iade tuşun üzerinde. 175 00:07:38,910 --> 00:07:42,630 >> Peki bu oldukça doğru değil Henüz, sen fark etmişsinizdir gibi. 176 00:07:42,630 --> 00:07:44,780 Ama ben tür gidiyorum körü körüne burada adımlarla ilerlemek. 177 00:07:44,780 --> 00:07:47,020 Ve ben dize 0 yapmak yapacağım. 178 00:07:47,020 --> 00:07:50,860 Bunu Ama önce, en eğer bakalım biz Bazı yaygın hataları tahmin edemez. 179 00:07:50,860 --> 00:07:52,844 Bu derlemek olacak mı? 180 00:07:52,844 --> 00:07:54,510 Hayır, ben şeyler bir sürü eksik var. 181 00:07:54,510 --> 00:07:55,280 Kütüphaneler duydum. 182 00:07:55,280 --> 00:07:58,480 >> Yani başlık dosyaları hangi Burada eklemek isteyebilirsiniz? 183 00:07:58,480 --> 00:07:59,205 Evet. 184 00:07:59,205 --> 00:08:01,580 >> İZLEYİCİ: İhtiyacınız Standart I / O [duyulamaz] 185 00:08:01,580 --> 00:08:02,663 >> DAVID J. MALAN: Mükemmel. 186 00:08:02,663 --> 00:08:06,060 Yani standart I / O ihtiyacım var. Ne için Amaç Ben standart I / O istiyorsun? 187 00:08:06,060 --> 00:08:06,670 Printf için. 188 00:08:06,670 --> 00:08:09,220 Böylece stdio.h içerir. 189 00:08:09,220 --> 00:08:13,490 Ve ayrıca ben dahil öneriyorum Ne nedenle CS50 kitaplığı? 190 00:08:13,490 --> 00:08:14,650 Dizeleri sahip olmak. 191 00:08:14,650 --> 00:08:17,780 Yani biz göreceğiz ne CS50 kütüphane yapıyor 192 00:08:17,780 --> 00:08:19,260 bir dize bu kavramı yaratmak için. 193 00:08:19,260 --> 00:08:21,930 Ama şimdi, sadece aklınıza gelebilecek Bunun gerçek bir veri türü olarak. 194 00:08:21,930 --> 00:08:23,596 >> Yani biraz temizlenmiş gibi görünüyor. 195 00:08:23,596 --> 00:08:27,060 Ve şimdi ben önde gitmek için gidiyorum ve gerçekten dize 0 yapabilirim. 196 00:08:27,060 --> 00:08:27,700 Derleyen. 197 00:08:27,700 --> 00:08:28,370 Yani iyi. 198 00:08:28,370 --> 00:08:32,799 Yani bu yüzden biz yakınlaştırmak bana izin ./string0 daha yakından neler olduğunu görmek. 199 00:08:32,799 --> 00:08:33,850 Girin. 200 00:08:33,850 --> 00:08:37,789 Z-A-M-Y-L-A girin. 201 00:08:37,789 --> 00:08:39,440 Ve biz Zamyla adının basılmış ettik. 202 00:08:39,440 --> 00:08:40,409 >> Yani oldukça iyi. 203 00:08:40,409 --> 00:08:43,220 Yani şimdi en önde gidelim ve Yine bu programı çalıştırın, 204 00:08:43,220 --> 00:08:45,659 ve Daven tam adını yazın. 205 00:08:45,659 --> 00:08:46,450 Sürpriz, sürpriz. 206 00:08:46,450 --> 00:08:48,021 Girin. 207 00:08:48,021 --> 00:08:48,520 Hmm. 208 00:08:48,520 --> 00:08:51,750 Biz Daven basılı değil doğru, tam ilk isim. 209 00:08:51,750 --> 00:08:54,250 Şimdi bu açık olmalı Çünkü Neyin geçmişi düşünme, 210 00:08:54,250 --> 00:08:57,010 tür, aptal tasarım kararı? 211 00:08:57,010 --> 00:08:59,590 >> Evet, ben sabit kodlanmış Benim döngü için altı iç. 212 00:08:59,590 --> 00:09:01,610 Şimdi ben yaptım çünkü Ben Zamyla adını biliyordu 213 00:09:01,610 --> 00:09:02,776 altı harf olacaktı. 214 00:09:02,776 --> 00:09:04,720 Ama elbette bu değil genel bir çözüm. 215 00:09:04,720 --> 00:09:07,720 Çıkıyor yüzden dinamik olabilir Bir dize uzunluğu anlamaya 216 00:09:07,720 --> 00:09:10,440 strlen adında bir işlevi çağırarak. 217 00:09:10,440 --> 00:09:12,840 >> Yine, kasıtlı kısaca sadece adında 218 00:09:12,840 --> 00:09:14,450 yazın daha rahat yapmak için. 219 00:09:14,450 --> 00:09:17,170 Ama bu eşanlamlı var Bir dize uzunluğunu almak. 220 00:09:17,170 --> 00:09:23,190 Benim terminale geri dönmek için gidiyorum Pencere ve derleyici yeniden çalıştırın. 221 00:09:23,190 --> 00:09:24,170 Ama bana bağırıyor. 222 00:09:24,170 --> 00:09:29,130 Dolaylı olarak kütüphane fonksiyonu ilan const-- int işaretsiz tip strlen 223 00:09:29,130 --> 00:09:29,780 Kayboldum. 224 00:09:29,780 --> 00:09:30,590 Tamamen. 225 00:09:30,590 --> 00:09:32,940 >> Nedenle, özellikle kayıt gözleri sır başlar 226 00:09:32,940 --> 00:09:36,000 Böyle hata iletileri, odak dürüst ilk birkaç kelime üzerinde. 227 00:09:36,000 --> 00:09:38,590 Biz sorun olduğunu biliyorum hat 8, burada belirtildiği gibi. 228 00:09:38,590 --> 00:09:40,500 Ve bu dize 0.c öyle. 229 00:09:40,500 --> 00:09:43,580 Dolaylı olarak ilan kütüphane işlevi strlen. 230 00:09:43,580 --> 00:09:47,000 Yani genel olarak gidiyor Hata mesajlarının desen. 231 00:09:47,000 --> 00:09:49,190 Örtük bir şey ilan. 232 00:09:49,190 --> 00:09:53,250 >> Yani Kısacası, ben ne görünüyordu var Burada, 8 hat ile ilgili yapmış. 233 00:09:53,250 --> 00:09:56,880 Ne olabileceğini çözüm bile olabilir Kendinize strlen hiç kullanmadım eğer? 234 00:09:56,880 --> 00:09:58,907 >> İZLEYİCİ: Farklı bir kütüphane Bölüm? 235 00:09:58,907 --> 00:10:00,740 DAVID J. MALAN: Bölüm Farklı bir kütüphane. 236 00:10:00,740 --> 00:10:02,400 O bildirildi Yani, tabiri caizse. 237 00:10:02,400 --> 00:10:07,510 Bazı dosyasında açıklanan stdio.h ve CS50.h. dışındaki 238 00:10:07,510 --> 00:10:09,179 Şimdi nerede tanımlanır? 239 00:10:09,179 --> 00:10:12,220 Dürüst olmak gerekirse, ya sadece var başınızın üst kapalı bu biliyorum, 240 00:10:12,220 --> 00:10:13,640 veya bu Google'dan ve öğrenmek. 241 00:10:13,640 --> 00:10:18,150 Ya da bu biliyorum, ben CS50 kadar açtık terminal programı, Cihazda hangi 242 00:10:18,150 --> 00:10:22,200 sadece büyük, tam ekran versiyonu ne gedit penceresinin alt kısmında bulunuyor. 243 00:10:22,200 --> 00:10:24,970 >> Ve bir var ki çıkıyor denilen benzer özlü komutu, 244 00:10:24,970 --> 00:10:29,280 Eğer yazarsanız kılavuzda, man ve bir fonksiyonun adı, Enter'a 245 00:10:29,280 --> 00:10:32,240 Eğer oldukça geri alırsınız arcane belgeler. 246 00:10:32,240 --> 00:10:35,299 O genellikle sadece metin var Bu gibi küçük bir şey görünüyor. 247 00:10:35,299 --> 00:10:37,090 Biraz ezici var İlk bakışta. 248 00:10:37,090 --> 00:10:39,048 Ama açıkçası ben gidiyorum gözlerim üzerinde sır izin 249 00:10:39,048 --> 00:10:41,930 ve sadece kısmen odaklanmak Şu an için önemsiyorum. 250 00:10:41,930 --> 00:10:42,780 >> Bu hangisi. 251 00:10:42,780 --> 00:10:45,470 Hangi yapısal benziyor bir şey aşina değilim. 252 00:10:45,470 --> 00:10:48,080 Nitekim adam sayfası, bu yüzden konuşmak, size söyleyecektir 253 00:10:48,080 --> 00:10:51,590 ne başlığı bir işlev dosya gibi strlen tanımlanır. 254 00:10:51,590 --> 00:10:54,170 Yani gedit şimdi geri dönmek için gidiyorum. 255 00:10:54,170 --> 00:10:59,070 Ve ben önde gitmek için gidiyorum ve Burada #include eklemek 256 00:10:59,070 --> 00:11:00,480 ve dosyayı kaydedin. 257 00:11:00,480 --> 00:11:04,300 >> Ben ekranı temizlemek için gidiyorum Kontrol L merak olduysan. 258 00:11:04,300 --> 00:11:08,210 Ve ben makyaj yeniden çalıştırın gidiyorum string.0, bu sefer derler. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 Bu beni gidelim çalışmak gibiydi önde ve Davenport ile yeniden çalıştırın. 261 00:11:15,020 --> 00:11:15,860 Girin. 262 00:11:15,860 --> 00:11:17,730 Ve bu da, iş gibi görünüyordu. 263 00:11:17,730 --> 00:11:21,220 >> Bu yüzden, bu biraz daha iyi yapabilirim olsa da, biz düzenli şeyler başlayabilirsiniz 264 00:11:21,220 --> 00:11:23,257 Sadece biraz yukarı. 265 00:11:23,257 --> 00:11:25,590 Ve aslında gidiyorum Şimdi bir başka şey tanıtmak. 266 00:11:25,590 --> 00:11:28,930 Ben önde gitmek için gidiyorum ve farklı bir dosyaya kaydetmek bu. 267 00:11:28,930 --> 00:11:31,770 Ve ben diyeceğim Bu dosya string1.c sadece 268 00:11:31,770 --> 00:11:34,620 kodu ile tutarlı olması online bulmak mümkün olacak. 269 00:11:34,620 --> 00:11:37,050 >> Ve en odaklanmak izin aynı kodu. 270 00:11:37,050 --> 00:11:39,000 Ben ettik çıkıyor alma olmuştur tür 271 00:11:39,000 --> 00:11:42,600 verilen aslında benim laptop ki, ve bunun sonucunda, CS50 cihazı 272 00:11:42,600 --> 00:11:47,450 Bellek bir sürü bir sürü var RAM, uzay bayt bir sürü 273 00:11:47,450 --> 00:11:48,920 hangi ben dizeleri saklayabilirsiniz. 274 00:11:48,920 --> 00:11:53,560 >> Ama gerçeklik Uzun yazdıysanız Yeterli ve yeterli tuş vuruşlarını, 275 00:11:53,560 --> 00:11:56,170 Ben teori türü olabilir Daha fazla karakter 276 00:11:56,170 --> 00:11:58,830 benim bilgisayar daha fiziksel bellek için vardır. 277 00:11:58,830 --> 00:11:59,830 Ve bu sorunlu. 278 00:11:59,830 --> 00:12:03,050 Çok bir int olabilir gibi sadece teoride, çok yüksek saymak, 279 00:12:03,050 --> 00:12:06,600 Eğer sadece çok karakter tıkmak olabilir Bilgisayarınızın RAM veya Random içine 280 00:12:06,600 --> 00:12:07,920 Erişim Belleği. 281 00:12:07,920 --> 00:12:11,140 >> Ben daha iyi tahmin etmişti Bu problemi daha da 282 00:12:11,140 --> 00:12:13,660 nadir bir olabilir ama Köşe durumda, tabiri caizse. 283 00:12:13,660 --> 00:12:15,670 Sık olmaz, olabilirdi. 284 00:12:15,670 --> 00:12:18,815 O olur ve eğer Ve ben yok tahmin ve bunun için bir program, 285 00:12:18,815 --> 00:12:20,300 benim program kim bilir ne yapabilirdi. 286 00:12:20,300 --> 00:12:22,220 , Neyse reboot, Freeze asmak. 287 00:12:22,220 --> 00:12:24,490 Bir şey ne olabilir beklenen. 288 00:12:24,490 --> 00:12:27,120 >> Yani yapacağım ne Şimdi, bundan böyle gerçekten 289 00:12:27,120 --> 00:12:31,630 Hiç körü körüne I öncedir s gibi bir değişken kullanmak olduğunu 290 00:12:31,630 --> 00:12:36,790 dönüş değeri atanmıştır getString gibi diğer bazı fonksiyon, 291 00:12:36,790 --> 00:12:40,200 Ben emin olmak için gidiyorum Bu değeri geçerlidir. 292 00:12:40,200 --> 00:12:44,280 Yani okuduktan yalnızca biliyorum GetString için CS50 belgelerine, 293 00:12:44,280 --> 00:12:49,020 hangi sonuçta biz sizi işaret edeceğiz, Bu getString özel bir sembol döndürür 294 00:12:49,020 --> 00:12:53,610 Tüm NULL, N-U-L-L denilen bir şey yanlış giderse, kapaklar. 295 00:12:53,610 --> 00:12:55,650 >> Yani normalde, bir dize döndürür. 296 00:12:55,650 --> 00:12:59,700 Ama N-U-L-ben- döndürür aksi takdirde biz sonunda gerçekten ne olduğunu göreceksiniz 297 00:12:59,700 --> 00:13:01,790 sadece araçları means-- kötü bir şey oldu. 298 00:13:01,790 --> 00:13:05,560 Şimdi bu kadar Scratch gibi, anlamı, Ben, C burada durumunu kontrol edebilirsiniz 299 00:13:05,560 --> 00:13:08,830 s eşit NULL yok değilse. 300 00:13:08,830 --> 00:13:11,930 Eğer daha önce bu görmedim Yani, Sadece demek bu eşit değil. 301 00:13:11,930 --> 00:13:15,290 >> Peki bunun tersi , hatırlamak eşit eşittir, 302 00:13:15,290 --> 00:13:18,940 Tek farklıdır atama olan eşittir. 303 00:13:18,940 --> 00:13:23,030 S eşit değildir Yani eğer NULL, ancak o zaman yapılacak 304 00:13:23,030 --> 00:13:25,980 Ben bu kod satırları yürütmek istiyorum. 305 00:13:25,980 --> 00:13:28,080 Bu yüzden, diğer bir deyişle Ben körü körüne dalış önce 306 00:13:28,080 --> 00:13:30,919 ve iterating başlar s üzerinde, ve onu tedavi 307 00:13:30,919 --> 00:13:33,710 bu bir dizi sanki karakter, ben, ilk kontrol edeceğim 308 00:13:33,710 --> 00:13:37,900 Bir dakika bekleyin, kesinlikle bu değil ise Bu özel değere eşit, NULL? 309 00:13:37,900 --> 00:13:40,030 >> Eğer öyleyse, kötü şeyler olabilir çünkü. 310 00:13:40,030 --> 00:13:43,080 Ve şimdi, o kötü şeyler varsayalım Program çöküyor demektir oluyor, 311 00:13:43,080 --> 00:13:45,070 ve mutlaka kurtaramazsınız. 312 00:13:45,070 --> 00:13:46,800 Yani açıkçası, bu çirkin görünüyor. 313 00:13:46,800 --> 00:13:48,660 bu tür bakmadı şimdi kafa karıştırıcı oluyor. 314 00:13:48,660 --> 00:13:50,780 Ama bu daha olacak uzun zaman önce tanıdık. 315 00:13:50,780 --> 00:13:52,920 >> Ama ben teklif gidiyorum Şimdi bir başka gelişme. 316 00:13:52,920 --> 00:13:54,660 Bu doğruluğunu bir gelişme var. 317 00:13:54,660 --> 00:13:58,800 Benim program nedeniyle, artık daha doğru Nadir durumlarda bu yeterli değil bellek 318 00:13:58,800 --> 00:14:01,180 Ben bunu idare edecek Varlığından, ve ben sadece bir şey yapacağım. 319 00:14:01,180 --> 00:14:02,680 Ben en azından çökmesine olmaz. 320 00:14:02,680 --> 00:14:05,000 >> Ama burada bir son versiyonunu yapalım. 321 00:14:05,000 --> 00:14:07,690 Ve bir dosya string2.c çağırdı. 322 00:14:07,690 --> 00:14:10,190 Bunu yapıştırmak için gidiyorum Sadece bir an için aynı kod, 323 00:14:10,190 --> 00:14:14,210 ve ben bu vurgulamak için gidiyorum Sadece bir an için burada çizgi, 11,. 324 00:14:14,210 --> 00:14:18,179 Şimdi gerçeklik bu akıllı derleyiciler olduğunu Clang bizim için bu düzeltmek gibi 325 00:14:18,179 --> 00:14:19,970 sahne arkasında bizim hiç bilmeden. 326 00:14:19,970 --> 00:14:24,670 Ama bu konuda düşünelim temelde sorunlu bir tasarım olarak. 327 00:14:24,670 --> 00:14:29,010 >> Kod bu hat, tabii ki, diyerek, bazı değişken i 0 başlatılamadı. 328 00:14:29,010 --> 00:14:30,260 Bu oldukça basittir. 329 00:14:30,260 --> 00:14:34,691 Ve yine bu nedir Açıklamada, burada, ben yapıyorum, ++? 330 00:14:34,691 --> 00:14:37,066 Biz daha önce görmüştüm, ama biz ettik Gerçekten bu konuda konuşmak değildi. 331 00:14:37,066 --> 00:14:37,900 >> İZLEYİCİ: i artırma. 332 00:14:37,900 --> 00:14:39,191 >> DAVID J. MALAN: i artırma. 333 00:14:39,191 --> 00:14:41,890 Aracılığıyla her yineleme Yani Bu döngü, her döngü, 334 00:14:41,890 --> 00:14:43,570 Eğer tek i artırılmıyor ediyoruz. 335 00:14:43,570 --> 00:14:45,740 Bu yüzden büyük ve büyüdükçe, ve döngü sona kadar büyük. 336 00:14:45,740 --> 00:14:46,810 Nasıl sona erer? 337 00:14:46,810 --> 00:14:49,430 Peki bu orta var Daha önce kullanmış olduğunuz durum. 338 00:14:49,430 --> 00:14:52,500 Siz de gördüm ve P kümesi izlenecek yollar. 339 00:14:52,500 --> 00:14:53,880 >> Ama bu deyiş nedir? 340 00:14:53,880 --> 00:14:58,352 Için aşağıdaki döngü yapın Uzun ben ne az olduğu? 341 00:14:58,352 --> 00:14:59,810 HEDEF KİTLE: dize uzunluğu. 342 00:14:59,810 --> 00:15:01,518 DAVID J. MALAN: dize uzunluğu. 343 00:15:01,518 --> 00:15:04,300 Yani oldukça temiz çevirir Bu anlamda İngilizce. 344 00:15:04,300 --> 00:15:08,810 Şimdi sorun her zaman ki ben Teoride bu döngü içinde yineleme, 345 00:15:08,810 --> 00:15:10,000 Ben bu soruyu soruyorum. 346 00:15:10,000 --> 00:15:12,250 Ben s dize uzunluğundan daha az mı? 347 00:15:12,250 --> 00:15:14,500 Ben s dize uzunluğundan daha az mı? 348 00:15:14,500 --> 00:15:18,380 >> Şimdi ben her tekrarında değişiyor? 349 00:15:18,380 --> 00:15:18,880 Öyle. 350 00:15:18,880 --> 00:15:19,629 ++ Yüzünden. 351 00:15:19,629 --> 00:15:21,700 Yani her yineleme i büyük oluyor. 352 00:15:21,700 --> 00:15:25,411 Ama s büyüyor, ya da küçük, ya da hiç değişiyor? 353 00:15:25,411 --> 00:15:25,910 Hayır. 354 00:15:25,910 --> 00:15:30,240 Tasarım açısından, eksenlerinden biri Yani hangi boyunca biz kod değerlendirmek için çalışın 355 00:15:30,240 --> 00:15:32,610 sınıfta, bu tür aptalca geliyor. 356 00:15:32,610 --> 00:15:34,690 >> Eğer tam anlamıyla gibi, Her yineleme 357 00:15:34,690 --> 00:15:37,110 Bu döngü soran Yine aynı lanet soru, 358 00:15:37,110 --> 00:15:40,770 ve tekrar ve tekrar ve tam anlamıyla asla değiştirmek için gidiyor. 359 00:15:40,770 --> 00:15:44,220 Ben s dokunmadan değilim en azından eğer ve s içeriğini değiştirmek için çalışıyorum. 360 00:15:44,220 --> 00:15:46,610 Yani bu biraz daha iyi yapabilirim. 361 00:15:46,610 --> 00:15:49,530 >> Ve ne yapacağım değil sadece bir değişken i beyan 362 00:15:49,530 --> 00:15:53,330 ancak ikinci değişken Ben, keyfi olacak ama geleneksel, n diyoruz. 363 00:15:53,330 --> 00:15:55,940 N eşittir atama s dize uzunluğu. 364 00:15:55,940 --> 00:15:59,090 Ve sonra buraya, ben gidiyorum yani, bir akıllı küçük optimizasyon yapmak 365 00:15:59,090 --> 00:16:03,460 günün sonunda, bu söz daha doğru veya daha az doğru 366 00:16:03,460 --> 00:16:04,260 daha önce. 367 00:16:04,260 --> 00:16:05,500 Ama daha iyi bir tasarım var. 368 00:16:05,500 --> 00:16:09,480 Aslında ben kullanıyorum daha az zaman, daha az CPU döngülerini, bu yüzden 369 00:16:09,480 --> 00:16:14,040 Aynı cevap, konuşmak soru, ama sadece bir kez. 370 00:16:14,040 --> 00:16:17,870 >> Bu genel ilgili bütün soruları iyileştirilmesi ilkesi, 371 00:16:17,870 --> 00:16:21,294 Bir programın verimliliği, ki? 372 00:16:21,294 --> 00:16:21,991 Evet? 373 00:16:21,991 --> 00:16:23,699 HEDEF KİTLE: Neden do you [duyulamaz] kullanılır? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 DAVID J. MALAN: İyi bir soru. 376 00:16:27,010 --> 00:16:30,690 Peki neden biz ucunda ++ koymak Ben yerine i başlangıcı? 377 00:16:30,690 --> 00:16:33,070 Bu durumda, var fonksiyonel etkisi. 378 00:16:33,070 --> 00:16:36,670 Ve genel olarak, ben eğilimindedir postfix operatörünü kullanabilirsiniz 379 00:16:36,670 --> 00:16:41,750 biraz daha net olarak bu şekilde işlem oluyor ne zaman. 380 00:16:41,750 --> 00:16:46,670 >> Bu alışılmadık için, başka var Eğer ++ i yapabileceğini sayede ifadeleri. 381 00:16:46,670 --> 00:16:48,747 Bu işlevsel olarak Bu durumda eş 382 00:16:48,747 --> 00:16:51,080 başka bir şey yok, çünkü Bu incrementation etrafında. 383 00:16:51,080 --> 00:16:54,435 Ama birlikte gelebilir olgu ve kod satırları 384 00:16:54,435 --> 00:16:55,810 hangi bir fark yaratıyor. 385 00:16:55,810 --> 00:16:57,810 Yani genel olarak, biz yapmak Hatta bu bir konuda konuşmak. 386 00:16:57,810 --> 00:17:00,690 Açıkçası Çünkü, o, sizin yapar Kod seksi ve çeşit yağmurluk, 387 00:17:00,690 --> 00:17:01,776 ve daha az karakter. 388 00:17:01,776 --> 00:17:04,859 Ama gerçek, bu çok zor olduğunu Bana fikrimi sarmak için bile, bence 389 00:17:04,859 --> 00:17:07,319 bazen etrafında, operasyonların sırası. 390 00:17:07,319 --> 00:17:09,750 Bir kenara olarak, eğer Yani Gerçekten, bu sevmiyorum 391 00:17:09,750 --> 00:17:14,650 Hatta bu tür seksi olsa seyir, sen de yapabilirsiniz i + = 1, 392 00:17:14,650 --> 00:17:18,880 olan çirkin versiyonu postfix incrementation için aynı fikir. 393 00:17:18,880 --> 00:17:22,250 >> Ben bu ve seni demek Bunun eğlenceli yapmak gerekir, 394 00:17:22,250 --> 00:17:25,140 ama siz kodunu görmek için gelecek uzun zaman önce güzel bir şey. 395 00:17:25,140 --> 00:17:27,160 >> [KAHKAHA] 396 00:17:27,160 --> 00:17:28,410 >> DAVID J. MALAN: Sağ? 397 00:17:28,410 --> 00:17:29,360 Evet. 398 00:17:29,360 --> 00:17:30,480 Ortada soru. 399 00:17:30,480 --> 00:17:32,146 >> İZLEYİCİ: int n söylememe gerek var mı? 400 00:17:32,146 --> 00:17:34,020 DAVID J. MALAN: Yapmanız int n söylemek gerek. 401 00:17:34,020 --> 00:17:37,670 Biz zaten int dedi çünkü Yani, Tekrar söylemek gerekmez. 402 00:17:37,670 --> 00:17:41,820 yakalamak n olmasıdır i aynı veri türü. 403 00:17:41,820 --> 00:17:43,310 Yani burada sadece bir kolaylık. 404 00:17:43,310 --> 00:17:44,058 Evet. 405 00:17:44,058 --> 00:17:47,806 >> İZLEYİCİ: Eğer üzerinden gidebilir miyim Baskı karakterin s dirsek tekrar? 406 00:17:47,806 --> 00:17:48,930 DAVID J. MALAN: Kesinlikle. 407 00:17:48,930 --> 00:17:52,110 Yani% c, son hatırlayacaksınız Zaman, sadece bir yer tutucudur. 408 00:17:52,110 --> 00:17:53,930 Burada bir char koymak anlamına gelir. 409 00:17:53,930 --> 00:17:56,780 eğik N, tabii ki, sadece araçlar burada bir satır sonu koydu. 410 00:17:56,780 --> 00:17:59,540 , Şimdi, yaprakları Böylece Yeni sözdizimi bu parça. 411 00:17:59,540 --> 00:18:03,730 Ve bu anlamıyla kapmak, diyor string s çağırdı ve gidip onun 412 00:18:03,730 --> 00:18:06,050 i'inci karakter, tabiri caizse. 413 00:18:06,050 --> 00:18:10,590 >> Ve ben i'inci karakteri söylemeye devam Çünkü bu döngünün her tekrarında 414 00:18:10,590 --> 00:18:14,540 Biz yazdırdığınız sanki bulunuyor dışarı, ilk s dirsek 0, 415 00:18:14,540 --> 00:18:15,780 Bir programcı diyebilirsiniz. 416 00:18:15,780 --> 00:18:18,680 Sonra s sonra, dirsek 1 s dirsek 2, daha sonra 3, 4. 417 00:18:18,680 --> 00:18:21,610 Ama tabii bu bir değişken var, bu yüzden sadece i ile ifade. 418 00:18:21,610 --> 00:18:23,900 >> Anahtar olsa da, fark etmek, değil ettik özellikle 419 00:18:23,900 --> 00:18:26,358 Bu dünyaya acclimating edilmiştir programlama, hepimiz 420 00:18:26,358 --> 00:18:28,950 lazım, sıfırdan saymak gibi görünüyor Şimdi sıfırdan saymaya başlar. 421 00:18:28,950 --> 00:18:35,130 Çünkü dizeleri, ilk karakter, Zamyla z için iyi ya da kötü olduğunu 422 00:18:35,130 --> 00:18:40,490 Konumu numarası sıfır yaşayacağım. 423 00:18:40,490 --> 00:18:48,210 >> Pekala, bana getirsin Burada Zamyla için bize geri 424 00:18:48,210 --> 00:18:50,746 ve gerçekten ne olup bittiğini görmek Kaputun altında üzerine. 425 00:18:50,746 --> 00:18:52,370 Yani tipi döküm bu kavramı var. 426 00:18:52,370 --> 00:18:53,800 Aslında olabilir Zaten bu ile oynanan, 427 00:18:53,800 --> 00:18:55,970 belki hacker için P baskısı birini ayarlayın. 428 00:18:55,970 --> 00:19:00,320 Ama tip döküm sadece anlamına gelir C yetenek ve bazı diğer diller 429 00:19:00,320 --> 00:19:03,170 başka bir veri türüne dönüştürmek için. 430 00:19:03,170 --> 00:19:05,450 >> Şimdi bu nasıl olabilir Oldukça delikanlı? 431 00:19:05,450 --> 00:19:08,530 Yani, başlangıç ​​bu, hatırlama olduğunu İngiliz alfabesinin. 432 00:19:08,530 --> 00:19:11,265 Ve bağlam, gelen, hatırlamak gibi bir hafta önce ASCII. 433 00:19:11,265 --> 00:19:13,790 Amerikan Standart Kodu Bilgi Alışverişi için. 434 00:19:13,790 --> 00:19:17,080 Hangi sadece gerçekten uzun bir yol olduğunu harfler bir eşleme söyleyerek 435 00:19:17,080 --> 00:19:19,370 numaraları ve numaralardan gelen mektuplar. 436 00:19:19,370 --> 00:19:22,940 >> Yani A, M ile burada, nokta nokta nokta, çizgiler ile, geri çağırma, 437 00:19:22,940 --> 00:19:25,582 up ondalık sayı 65. 438 00:19:25,582 --> 00:19:27,290 Ve biz konuşmadık açıkça bu konuda, 439 00:19:27,290 --> 00:19:29,850 ama kesinlikle benzer var küçük harf sayılar. 440 00:19:29,850 --> 00:19:30,820 Gerçekten de vardır. 441 00:19:30,820 --> 00:19:33,730 Dünya birkaç yıl verdi önce o küçük bir, bir küçük harf, 442 00:19:33,730 --> 00:19:35,020 97 olacak. 443 00:19:35,020 --> 00:19:38,010 Ve küçük b gidiyor vb 98 ve olmak. 444 00:19:38,010 --> 00:19:40,200 >> Ve herhangi bir diğer anahtarı için Klavyeniz, orada 445 00:19:40,200 --> 00:19:42,190 bit benzer bir model olacak. 446 00:19:42,190 --> 00:19:44,540 Ya da eşdeğeri, bir ondalık sayı. 447 00:19:44,540 --> 00:19:47,110 Yani eldeki soru, Daha sonra, biz nasıl olabilir olduğu 448 00:19:47,110 --> 00:19:49,400 Aslında başlık altında bu gördün mü? 449 00:19:49,400 --> 00:19:51,539 Bu yüzden tekrar gedit üzerinde gitmek için gidiyorum. 450 00:19:51,539 --> 00:19:53,330 Ve yerine türü daha sıfırdan bu bir, 451 00:19:53,330 --> 00:19:55,330 Ben önde gitmek için gidiyorum ve Bir şey açmak 452 00:19:55,330 --> 00:19:58,350 Bugünün kodundan ASCII sıfır çağırdı. 453 00:19:58,350 --> 00:20:01,210 >> Ve ASCII sıfır bu gibi görünüyor. 454 00:20:01,210 --> 00:20:02,710 Yani bu çevrede aklımızı sarın edelim. 455 00:20:02,710 --> 00:20:04,969 Yani ilk ben yorumladı ettik güzel kod. 456 00:20:04,969 --> 00:20:07,010 Tam anlamıyla Çünkü ne bekleyebileceğinizi bana, 457 00:20:07,010 --> 00:20:08,950 Büyük harfler için bir eşleme görüntüler. 458 00:20:08,950 --> 00:20:13,690 Şimdi ben çok bilmiyorum ne Bu demek, o yüzden anlaması edelim. 459 00:20:13,690 --> 00:20:16,870 >> In English, belki biraz teknik okul İngilizce, 460 00:20:16,870 --> 00:20:20,660 Ne hat 18 görünür yapar Bizim için yapıyor olması? 461 00:20:20,660 --> 00:20:21,500 Sadece 18 satır. 462 00:20:21,500 --> 00:20:22,430 Ne uyaran var? 463 00:20:22,430 --> 00:20:25,192 Ne burada tekmelemek için gidiyor? 464 00:20:25,192 --> 00:20:26,100 >> İZLEYİCİ: Bir döngü. 465 00:20:26,100 --> 00:20:26,630 >> DAVID J. MALAN: Bir döngü. 466 00:20:26,630 --> 00:20:28,463 Ve kaç kere yineleme olacak ki? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 HEDEF KİTLE: [SESLER interposing] altı kez. 469 00:20:33,270 --> 00:20:34,830 DAVID J. MALAN: Değil altı kez. 470 00:20:34,830 --> 00:20:35,840 HEDEF KİTLE: 26 kere. 471 00:20:35,840 --> 00:20:36,560 DAVID J. MALAN: 26 kere. 472 00:20:36,560 --> 00:20:37,060 Evet, üzgünüm. 473 00:20:37,060 --> 00:20:37,960 26 kez. 474 00:20:37,960 --> 00:20:38,460 Neden? 475 00:20:38,460 --> 00:20:41,590 Peki, biraz tuhaf, ama Ben 65 saymaya başladım. 476 00:20:41,590 --> 00:20:43,300 Hangi garip, ama yanlış değildir. 477 00:20:43,300 --> 00:20:44,610 Bu demek başına kötü değil. 478 00:20:44,610 --> 00:20:46,980 Ve ben yapıyorum sadece çünkü bu, örneğin, 479 00:20:46,980 --> 00:20:50,455 Ben tür tahmin ediyorum sermaye 65 oldu. 480 00:20:50,455 --> 00:20:53,330 Şimdi bu değil en zarif yol sabit kod tür, bunu yapmak için 481 00:20:53,330 --> 00:20:56,130 gizli değerler hiç kimsenin hiç hatırlamıyorum bekleniyor. 482 00:20:56,130 --> 00:21:00,155 >> Ama şimdi, ben fark 65 artı 26 ile bu kadar yapıyor. 483 00:21:00,155 --> 00:21:03,030 Görünüşte bile istemiyorum çünkü Kafamdaki aritmetik yapmak. 484 00:21:03,030 --> 00:21:04,440 Yani derleyici bunu izin vereceğim. 485 00:21:04,440 --> 00:21:08,600 Ama sonra her döngü, her yineleme döngü, ben i artırma ediyorum. 486 00:21:08,600 --> 00:21:10,196 >> Peki şimdi bu biraz şifreli görünüyor. 487 00:21:10,196 --> 00:21:13,320 Ama biz temel bina olmalı bloklar Bunu anlamak için. 488 00:21:13,320 --> 00:21:15,510 % C karakter için sadece bir yer tutucudur. 489 00:21:15,510 --> 00:21:19,010 % I int için bir yer tutucudur. 490 00:21:19,010 --> 00:21:23,310 Ve bu kullanarak çıkıyor Yeni sözdizimi, bu parantez, bu yüzden 491 00:21:23,310 --> 00:21:26,100 konuşmak bir veri türü öylesine Bir parantez içinde 492 00:21:26,100 --> 00:21:32,270 Ben tedavi için derleyici zorlayabilir ı olmayan bir tamsayıdır, ancak char. 493 00:21:32,270 --> 00:21:35,520 >> Böylece bana karakteri gösteren bu sayının eşdeğer. 494 00:21:35,520 --> 00:21:37,986 Şimdi buraya, bu kod hemen hemen aynıdır. 495 00:21:37,986 --> 00:21:39,860 Ben sadece yapmak istedim Süper açık bir gerçektir 496 00:21:39,860 --> 00:21:42,095 Ben 97 ile başlıyorum ki, hangi bir küçük harf edilir. 497 00:21:42,095 --> 00:21:44,080 Kadar 26 daha fazla harf aracılığıyla. 498 00:21:44,080 --> 00:21:46,970 Ve ben, yine doing-- ediyorum i döküm, tabiri caizse. 499 00:21:46,970 --> 00:21:49,160 Veya tipi döküm i, tabiri caizse. 500 00:21:49,160 --> 00:21:51,420 >> Bir karakter bir int itibaren. 501 00:21:51,420 --> 00:21:55,760 Yani sonuç olacak, açıkçası, bilgi zaten biliyoruz. 502 00:21:55,760 --> 00:21:59,411 Ben yapmak için gidiyorum ascii-0 c nokta değil dot--. 503 00:21:59,411 --> 00:22:02,160 Uyarı, muhtemelen bu yapılan hata Ben sadece yanlışlıkla yaptım. 504 00:22:02,160 --> 00:22:03,820 ASCII-0 olun. 505 00:22:03,820 --> 00:22:06,090 Şimdi ./ascii-0 yapacağım. 506 00:22:06,090 --> 00:22:09,050 Ben yakınlaştırmak, ve ne yazık ki edeceğiz ekranı kapalı kaydırmak için gidiyor. 507 00:22:09,050 --> 00:22:15,060 Ama biz bütün grafik nerede görmek 97 bir harita, 98 b haritalar, 508 00:22:15,060 --> 00:22:18,931 ve biz daha fazla yukarı ilerleyin eğer A, tabii ki, 65 alır. 509 00:22:18,931 --> 00:22:21,180 Yani bu demek sadece ne vaaz oldum, 510 00:22:21,180 --> 00:22:25,310 Bu denklik, orada olduğunu Gerçekte aslında bir durumda. 511 00:22:25,310 --> 00:22:28,000 Yani bu hızlı değişiklik. 512 00:22:28,000 --> 00:22:31,220 Beni ascii-1.c açalım. 513 00:22:31,220 --> 00:22:38,070 Ve sıralama, bu akıllı fark bir, bu açıklama. 514 00:22:38,070 --> 00:22:41,770 Bu ascii-1.c ve Bu çılgın şey fark. 515 00:22:41,770 --> 00:22:45,120 >> Ve bu gerçekten kalp alır ne bilgisayarlar yapıyoruz. 516 00:22:45,120 --> 00:22:48,150 Hatta biz insanlar olur ama harflerinden açısından sayılmaz 517 00:22:48,150 --> 00:22:50,380 Ben düşünmeye başlamak yok, tamam sonra b, 518 00:22:50,380 --> 00:22:52,590 ve fiziksel nesneleri saymak için bunları kullanın. 519 00:22:52,590 --> 00:22:58,680 Kesinlikle ben istiyorum diyebilirim denilen bazı değişkeni başlatmak C- 520 00:22:58,680 --> 00:23:03,220 ama bu herhangibirşey denilen olabilirdi yani c sermaye A'ya başlatıldı 521 00:23:03,220 --> 00:23:07,560 >> Günün sonunda, bilgisayar için Eğer depolama şeyi umursamıyor, 522 00:23:07,560 --> 00:23:10,170 sadece istediğiniz nasıl umurunda Bu bilgiyi sunmak için. 523 00:23:10,170 --> 00:23:13,560 Bilgisayarı istiyorsun nasıl bit o desen yorumlamak? 524 00:23:13,560 --> 00:23:16,320 Yani bu bir şey değil Genellikle bunu tavsiye ederim. 525 00:23:16,320 --> 00:23:19,500 Bu gerçekten sadece bir örnek iletmek olduğunu kesinlikle can 526 00:23:19,500 --> 00:23:22,049 Bir karakter bir tamsayı başlatılamıyor. 527 00:23:22,049 --> 00:23:24,090 Çünkü altında Bir char başlık, elbette, 528 00:23:24,090 --> 00:23:26,170 0 ile 255 sadece bir sayı. 529 00:23:26,170 --> 00:23:28,540 >> Yani kesinlikle can Bir int içine koydu. 530 00:23:28,540 --> 00:23:30,890 Ve ne bu da olduğunu gösterir biz o 531 00:23:30,890 --> 00:23:34,040 birinden dönüştürebilirsiniz Burada, başka yazın, 532 00:23:34,040 --> 00:23:36,780 sonuçta aynı şeyi baskı. 533 00:23:36,780 --> 00:23:44,760 Ve aslında, bu benim online-- çözecektir Burada, yine, bu demek gerekiyordu. 534 00:23:44,760 --> 00:23:48,610 Beni çevrimiçi bu kadar temiz edelim ve yaparız gerektiği gibi bir çevrimiçi örneklerde görmek, 535 00:23:48,610 --> 00:23:50,280 orada ne amaçlanmıştır. 536 00:23:50,280 --> 00:23:50,960 >> Tamam. 537 00:23:50,960 --> 00:23:53,892 Şimdi içeren Yani son örnek Bir üyenin b en sonra yaparız 538 00:23:53,892 --> 00:23:54,850 Bir çentik şeyleri almak. 539 00:23:54,850 --> 00:23:58,330 Bir ve b ve So harf c en 540 00:23:58,330 --> 00:24:01,560 ve eşdeğerlik bunların, diyelim Burada, bu örnekte bir göz atın. 541 00:24:01,560 --> 00:24:02,752 Başka bir kod örneği. 542 00:24:02,752 --> 00:24:04,460 Biz olanı açacağım zaten yapılmış, biz böylece 543 00:24:04,460 --> 00:24:06,440 yazmanız gerekmez Tüm sıfırdan dışarı. 544 00:24:06,440 --> 00:24:09,420 Beklentisiyle >> Ve haber Biz birden başlık kullanıyorsanız 545 00:24:09,420 --> 00:24:13,240 olan arasında dosya, Yeni arkadaş, string.h. 546 00:24:13,240 --> 00:24:15,597 Şimdi bu ilk görünüyor bakışta biraz şifreli. 547 00:24:15,597 --> 00:24:18,180 Ama biz akıl edemez bakalım Burada neler oluyor yoluyla. 548 00:24:18,180 --> 00:24:21,150 Önce kullanıcıdan bir dize olsun, ve ben bir değişkene o dize koymak 549 00:24:21,150 --> 00:24:22,286 denilen s. 550 00:24:22,286 --> 00:24:24,090 Önce gelen macun kopyalayın. 551 00:24:24,090 --> 00:24:27,250 Hat 22, ben görünüşe değilim tam olarak ne yapıyor 552 00:24:27,250 --> 00:24:30,760 Ben yineleme ediyorum, bir an önce yaptım s karakter üzerinde. 553 00:24:30,760 --> 00:24:34,780 >> Ve burada yeni hileler kullanan dize uzunluğu, küçük optimizasyon 554 00:24:34,780 --> 00:24:37,930 n dize uzunluğu depolama, yerine tekrar strlen çağıran daha, 555 00:24:37,930 --> 00:24:38,850 ve tekrar ve tekrar. 556 00:24:38,850 --> 00:24:41,120 Ve sadece ben n daha az olduğunu kontrol. 557 00:24:41,120 --> 00:24:43,330 Şimdi burada, işler olsun Biraz ilginç. 558 00:24:43,330 --> 00:24:45,980 Ama sadece bir uygulama var Bu aynı yeni fikir. 559 00:24:45,980 --> 00:24:48,470 İngilizce yapar ne Ben temsil s braket? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> İZLEYİCİ: Sayma her karakter [duyulamaz]. 562 00:24:54,260 --> 00:24:55,926 >> DAVID J. MALAN: Her karakteri Sayma. 563 00:24:55,926 --> 00:24:58,680 Ve hatta daha özlü, s dirsek i neyi temsil? 564 00:24:58,680 --> 00:25:00,950 Hemfikir. 565 00:25:00,950 --> 00:25:04,084 Burada yerinde koymak için değil. 566 00:25:04,084 --> 00:25:06,375 >> İZLEYİCİ: Şey-- 567 00:25:06,375 --> 00:25:09,500 DAVID J. MALAN: kelime eğer bu-- Yani eğer dize başlar-- Zamyla olduğunu 568 00:25:09,500 --> 00:25:12,380 İZLEYİCİ: --Sen başa karakter separately-- 569 00:25:12,380 --> 00:25:13,690 DAVID J. MALAN: İyi. 570 00:25:13,690 --> 00:25:14,190 Kesinlikle. 571 00:25:14,190 --> 00:25:17,940 köşeli ayraç notasyonu olanak sağlar tek tek her karaktere erişmek için, 572 00:25:17,940 --> 00:25:21,120 böylece s dirsek 0 olacak dizesinde ilk karakter. 573 00:25:21,120 --> 00:25:24,110 s dirseği 1 olacak benzeri ikinci, vb. 574 00:25:24,110 --> 00:25:28,050 Yani soru soruyorum, Burada, bu durumda nedir? 575 00:25:28,050 --> 00:25:33,984 S daha fazlası, i'inci karakter eşit veya bir küçük harfe? 576 00:25:33,984 --> 00:25:36,400 Ve bu, burada, ne demek Çift adet ve işareti ile? 577 00:25:36,400 --> 00:25:36,800 KİTLE (BİRLİKTE): Ve. 578 00:25:36,800 --> 00:25:37,210 DAVID J. MALAN: Ve. 579 00:25:37,210 --> 00:25:38,418 Bu sadece eşdeğerdir. 580 00:25:38,418 --> 00:25:42,310 Ve C bir anahtar kelime değil, var kullanım, rahatsız edici, işareti işareti. 581 00:25:42,310 --> 00:25:47,520 Ve bu, tersine, soran olduğunu karakter i'inci s en az veya eşit 582 00:25:47,520 --> 00:25:49,030 z küçük harfe? 583 00:25:49,030 --> 00:25:52,440 Ve yine, burada nerede Altta yatan anlama 584 00:25:52,440 --> 00:25:54,550 Bir uygulama Bilgisayar mantıklı. 585 00:25:54,550 --> 00:25:57,330 Ben olsa bile, dikkat edin nokta nokta nokta orada, 586 00:25:57,330 --> 00:26:04,410 küçük harflerle z yoluyla gibi görünüyor edilir yukarı yukarı 97 tüm bitişik değerleri. 587 00:26:04,410 --> 00:26:07,820 >> Ve 65 ° C'de başlayan büyük harf için aynı. 588 00:26:07,820 --> 00:26:10,410 Yani paket, daha sonra, Bu, İngilizcedir 589 00:26:10,410 --> 00:26:12,760 Eğer tarif nasıl 24 ne yaptığını çizgi? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 Evet? 592 00:26:16,728 --> 00:26:21,575 >> İZLEYİCİ: 24 Açık görmek için kontrol ediyor ister her karakter bir küçük olduğunu. 593 00:26:21,575 --> 00:26:24,700 DAVID J. MALAN: Bu olup olmadığını kontrol ediyor Her karakterin bir küçük harf olduğunu. 594 00:26:24,700 --> 00:26:28,590 Yani daha özlü olduğu s küçük harf i'inci karakter? 595 00:26:28,590 --> 00:26:30,690 Yani hepimiz var mantıksal burada ifade, 596 00:26:30,690 --> 00:26:33,750 Küçük bir üstü kapalı, fakat sonuçta oldukça delikanlı. 597 00:26:33,750 --> 00:26:36,480 Karakter küçük harf i'inci s en midir? 598 00:26:36,480 --> 00:26:40,130 >> Eğer öyleyse, ve burada nerede şeyler var Biraz zihin bükme olsun 599 00:26:40,130 --> 00:26:44,760 Sadece bir an için, eğer öyleyse, gidip önde ve bir karakter çıktı. 600 00:26:44,760 --> 00:26:47,360 Yani bu sadece bir yer tutucudur, ama ne karakter? 601 00:26:47,360 --> 00:26:53,710 Neden s dirseğini i yapıyorum eksi burada bu ifade? 602 00:26:53,710 --> 00:26:55,110 >> Peki burada desen dikkat edin. 603 00:26:55,110 --> 00:26:57,380 Gerçek sayılar çok önemli değil. 604 00:26:57,380 --> 00:27:02,700 Ama 97 olduğunu fark ne kadar uzakta 65? 605 00:27:02,700 --> 00:27:03,560 >> İZLEYİCİ: 32. 606 00:27:03,560 --> 00:27:04,480 >> DAVID J. MALAN: 32. 607 00:27:04,480 --> 00:27:06,890 Ne kadar uzakta 66'dan 98? 608 00:27:06,890 --> 00:27:07,740 >> İZLEYİCİ: 32. 609 00:27:07,740 --> 00:27:09,890 >> DAVID J. MALAN: Büyük C Little c? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 Yani 32 şerbetçiotu var Başka bir mektup. 612 00:27:14,550 --> 00:27:17,790 Yani açıkçası ben, olabilir bu, bu kolaylaştırır. 613 00:27:17,790 --> 00:27:20,400 Ama sonra biraz zor kodlama ediyorum Bu düşük seviye anlayışı 614 00:27:20,400 --> 00:27:21,740 Hiçbir okuyucu hiç olduğunu anlamak için gidiyor. 615 00:27:21,740 --> 00:27:25,080 Yani bunu gibi genelleme için gidiyorum, ben biliyorum küçük harfler büyüktür. 616 00:27:25,080 --> 00:27:28,400 Ben büyük harfler biliyorum küçük değerler, ironik. 617 00:27:28,400 --> 00:27:33,216 >> Ancak bu etkin bir eşdeğerdir s dirsek i den 32 çıkarma diyerek. 618 00:27:33,216 --> 00:27:35,430 Bu bağlamında Yani harfler, mektupta ise 619 00:27:35,430 --> 00:27:38,950 Bir, küçük harf olur Bir, ve ben 32 çıkarma, 620 00:27:38,950 --> 00:27:43,442 Bu nasıl bir etkisi var mı, matematiksel, bir küçük harf? 621 00:27:43,442 --> 00:27:44,400 İZLEYİCİ: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 DAVID J. MALAN: it harfe çevirir. 623 00:27:45,691 --> 00:27:48,440 Ve gerçekten de, bu yüzden bizim Program sıfır yararlanmak denir. 624 00:27:48,440 --> 00:27:51,590 Bu program ya Mektup istifade, 625 00:27:51,590 --> 00:27:54,580 o ise kontrol ettikten sonra gerçekten küçük harf. 626 00:27:54,580 --> 00:27:59,810 Aksi takdirde, hat 30, ben ise ne yapmalıyım ben olduğumu bir küçük harf değil 627 00:27:59,810 --> 00:28:02,852 Belirli bir de bakıyor döngü içinde yineleme. 628 00:28:02,852 --> 00:28:03,890 Sadece çıktı. 629 00:28:03,890 --> 00:28:07,010 >> Peki şeyler değişmez hatta küçük değil. 630 00:28:07,010 --> 00:28:10,790 Kendinizi sınırla Küçük z yoluyla küçük bir. 631 00:28:10,790 --> 00:28:12,730 Şimdi bu oldukça gizemli olduğunu. 632 00:28:12,730 --> 00:28:15,230 Ama günün sonunda, bu nasıl, bir zamanlar, bir 633 00:28:15,230 --> 00:28:16,460 şeyleri uygulamak zorunda. 634 00:28:16,460 --> 00:28:19,780 Bunun yerine yararlanmak açarsanız bir oh şükür. 635 00:28:19,780 --> 00:28:22,320 Bir işlev var Üst denilen o can 636 00:28:22,320 --> 00:28:25,410 biz sadece yaptığımız her şeyi oldukça düşük bir seviyede. 637 00:28:25,410 --> 00:28:28,752 >> Şimdi üst ilginç Bir dosyada ilan çünkü, 638 00:28:28,752 --> 00:28:31,210 ve sadece bu bilemez belgeleri kontrol ederek, 639 00:28:31,210 --> 00:28:35,730 veya sınıf içinde, diyelim ki, söylenme Bir dosya adı verilen ctype.h, var. 640 00:28:35,730 --> 00:28:37,630 Yani bu bizim yeni bir arkadaş. 641 00:28:37,630 --> 00:28:40,750 Ve üst tam yapar için Adından da anlaşılacağı ne. 642 00:28:40,750 --> 00:28:44,860 >> Sen arasında, bir argüman olarak, iletebilirsiniz Bu parantez, bazı karakter. 643 00:28:44,860 --> 00:28:48,390 Ben i'inci karakter geçmek için gidiyorum bizim fantezi yeni notasyonu kullanarak s 644 00:28:48,390 --> 00:28:49,870 köşeli parantez içeren. 645 00:28:49,870 --> 00:28:53,391 Ve bir tahmin almak, dönüş nedir Üst için değeri görünüşte gidiyor 646 00:28:53,391 --> 00:28:53,890 olmak? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 Bir harf. 649 00:28:57,770 --> 00:28:58,620 Bir harf. 650 00:28:58,620 --> 00:29:02,330 >> Yani küçük a geçmek ise, umarım, üst kadar tanımı gereği, 651 00:29:02,330 --> 00:29:05,600 bir geri gidiyor Aksi takdirde büyük A. 652 00:29:05,600 --> 00:29:08,590 o bir küçük harf değilse ilk etapta, ben sadece bunu yazdırın. 653 00:29:08,590 --> 00:29:10,800 Ve gerçekten de, fark Burada ikinci arkadaşım. 654 00:29:10,800 --> 00:29:13,840 Sadece üst var için, ama daha düşük olan 655 00:29:13,840 --> 00:29:16,200 Aslında benim için soru cevaplar. 656 00:29:16,200 --> 00:29:19,730 >> Şimdi bunları kim yazdı, 10s yıl önce, biliyor musun? 657 00:29:19,730 --> 00:29:23,840 Üst için uygulanan ve bir Bu gibi kodu kullanarak düşük. 658 00:29:23,840 --> 00:29:27,270 Ancak yine, tutarlı uzak soyutlama bu fikri, 659 00:29:27,270 --> 00:29:29,190 tür, alt düzey uygulama detayları. 660 00:29:29,190 --> 00:29:32,600 Ve insanların omuzlarında ayakta kim fonksiyonlarını kullanarak, bizden önce geldi 661 00:29:32,600 --> 00:29:36,300 Üst nasıl bir ve düşük olan harika yeterli güzel vardır 662 00:29:36,300 --> 00:29:40,190 Onlar ne demek adlı, bir Harika bir paradigma kabul etmek. 663 00:29:40,190 --> 00:29:44,040 >> Şimdi, ben okursanız çıkıyor , man sayfasında, üst için, demek 664 00:29:44,040 --> 00:29:45,010 Ben başka bir şey öğrenirler. 665 00:29:45,010 --> 00:29:46,890 Böylece adam toUpper. 666 00:29:46,890 --> 00:29:48,050 Biraz bunaltıcı. 667 00:29:48,050 --> 00:29:51,110 Ama ihbar, burada o söz var Ben kullanmanız gereken başlık dosyası. 668 00:29:51,110 --> 00:29:54,460 Bir kenara, çünkü bu gibi yanıltıcı, işlev 669 00:29:54,460 --> 00:29:59,070 int'leri yerine karakter kullanır Hata denetimi nedenlerle. 670 00:29:59,070 --> 00:30:01,260 Ama biz belki gelirim geri o gelecekte. 671 00:30:01,260 --> 00:30:05,910 >> Ama üst dönüştürür, burada fark mümkünse c harfi büyük harfe. 672 00:30:05,910 --> 00:30:07,674 Yani oldukça basittir. 673 00:30:07,674 --> 00:30:09,340 Ve şimdi biraz daha spesifik olalım. 674 00:30:09,340 --> 00:30:12,750 En parçası bakalım dönüş değerinin altında adam sayfası. 675 00:30:12,750 --> 00:30:15,420 döndürülen değer olduğunu Dönüştürülen mektup. 676 00:30:15,420 --> 00:30:18,690 Veya c, eğer dönüşüm mümkün değildi 677 00:30:18,690 --> 00:30:20,250 burada c orijinal girişi. 678 00:30:20,250 --> 00:30:24,140 Hangi Ben, burada biliyorum Üst için argüman. 679 00:30:24,140 --> 00:30:25,780 >> Peki bu paket nedir? 680 00:30:25,780 --> 00:30:28,060 döndürülen değer olduğunu Dönüştürülen mektup, 681 00:30:28,060 --> 00:30:32,110 veya c, orijinal mektup, eğer dönüşüm mümkün değildi. 682 00:30:32,110 --> 00:30:36,460 Ne iyileşme bu nedenle can Benim kodun tasarım yapmak? 683 00:30:36,460 --> 00:30:37,146 Evet? 684 00:30:37,146 --> 00:30:38,810 >> İZLEYİCİ: Başka kaldırabilirsiniz. 685 00:30:38,810 --> 00:30:40,810 DAVID J. MALAN: I can Başka deyimini kaldırmak, 686 00:30:40,810 --> 00:30:42,510 ve sadece else. 687 00:30:42,510 --> 00:30:44,150 >> İZLEYİCİ: Sen [duyulamaz] kaldırabilirsiniz. 688 00:30:44,150 --> 00:30:46,310 >> DAVID J. MALAN: I can Bütün çatal kaldırma 689 00:30:46,310 --> 00:30:48,209 yol, else if tamamen. 690 00:30:48,209 --> 00:30:50,250 Yani gerçekten, bana açalım Bu son sürümü, 691 00:30:50,250 --> 00:30:55,540 eğer,-2 yararlanmak ve nasıl sadece fark Eğer, seksi, kod artık oluyor edecek, 692 00:30:55,540 --> 00:31:00,040 ki bazı indirgenmiş ettik Yedi ya da öylesine, sadece dört satır, 693 00:31:00,040 --> 00:31:03,850 Ben amaçlanan işlevsellik sadece üst için arayarak, 694 00:31:03,850 --> 00:31:09,410 s dirsek i, ve baskı geçirerek dışarı, tutucu% c ile, 695 00:31:09,410 --> 00:31:11,090 o karakter. 696 00:31:11,090 --> 00:31:14,560 >> Şimdi belki, bir hata var, ya bir hata en az riski, 697 00:31:14,560 --> 00:31:15,350 Bu programda. 698 00:31:15,350 --> 00:31:18,200 Yani sadece geri gelmek önceki bir paket için, 699 00:31:18,200 --> 00:31:21,820 Ben muhtemelen ne yapmak gerekir Bu program, daha güçlü hale getirmek için, 700 00:31:21,820 --> 00:31:24,974 hiçbir yolu yoktur, böylece can hatta nadir durumlarda, çökmesine? 701 00:31:24,974 --> 00:31:26,390 HEDEF KİTLE: NULL değil emin olun. 702 00:31:26,390 --> 00:31:28,056 DAVID J. MALAN: NULL değil emin olun. 703 00:31:28,056 --> 00:31:31,030 Yani gerçekten, bu süper yapmak için Doğru, ben gibi bir şey yapmalıyım 704 00:31:31,030 --> 00:31:35,300 s NULL, değilse go ahead ve yürütmek 705 00:31:35,300 --> 00:31:38,470 bu kod satırları, hangi I can sonra böyle girinti, 706 00:31:38,470 --> 00:31:39,870 ve sonra benim yakın parantez koymak. 707 00:31:39,870 --> 00:31:41,550 Birlikte iki fikir ipe Çok iyi. 708 00:31:41,550 --> 00:31:42,429 Evet? 709 00:31:42,429 --> 00:31:44,470 HEDEF KİTLE: Kullandığınız Could Bir yerine, döngü sırasında yapılacak? 710 00:31:44,470 --> 00:31:47,270 DAVID J. MALAN: Could Ben bir do while döngüsü do? 711 00:31:47,270 --> 00:31:50,020 HEDEF KİTLE: --Sen emin olmak istiyorum aslında [duyulamaz] söyledi. 712 00:31:50,020 --> 00:31:51,728 DAVID J. MALAN: Could Bir do yaparken kullanmak? 713 00:31:51,728 --> 00:31:52,450 Kısa cevap, hayır. 714 00:31:52,450 --> 00:31:54,700 Eğer üzeresin Çünkü Başka bir köşe davayı tanıtmak. 715 00:31:54,700 --> 00:31:56,660 Dize sıfır uzunlukta değilse. 716 00:31:56,660 --> 00:31:59,600 Örneğin, ben sadece vurursanız Hiç Zamyla yazmadan girin. 717 00:31:59,600 --> 00:32:02,490 Ben geri gerçek sizi el gidiyorum dize, biz sonunda göreceğimiz gibi, 718 00:32:02,490 --> 00:32:03,780 sıfır karakter vardır. 719 00:32:03,780 --> 00:32:05,630 Hala bir dize var, sadece süper kısa. 720 00:32:05,630 --> 00:32:07,960 Ama sırasında do kullanırsanız, Eğer körü körüne gidiyoruz 721 00:32:07,960 --> 00:32:10,050 ile bir şeyler yapmaya çalışın Bu dizeye saygı, 722 00:32:10,050 --> 00:32:12,537 ve hiçbir şey olacak. 723 00:32:12,537 --> 00:32:18,607 >> İZLEYİCİ: Peki, yapsam yapmak [duyulamaz] s- ise 724 00:32:18,607 --> 00:32:21,190 DAVID J. MALAN: Ah anlıyorum, tutmak kullanıcıdan bir dize alıyorum. 725 00:32:21,190 --> 00:32:23,525 Yani kısa cevap, sen ve pestering tutmak 726 00:32:23,525 --> 00:32:26,150 Onları size bu bir dize vermek belleğe sığacak kadar kısa. 727 00:32:26,150 --> 00:32:26,700 Kesinlikle. 728 00:32:26,700 --> 00:32:27,630 Ben sadece seçti. 729 00:32:27,630 --> 00:32:30,505 Onlar bana dize I vermezsek istiyorum, ben bırakıyorum, ben veriyorum. 730 00:32:30,505 --> 00:32:33,260 Ancak, kesinlikle bu amaçla, kesinlikle bunu yapabilir. 731 00:32:33,260 --> 00:32:37,500 >> Yani kütüphanenin başlık dosyaları olduğunu Şimdi burada, bunlar aşina. 732 00:32:37,500 --> 00:32:41,550 Standart I / O, CS50.h, string.h, ctype.h ve gerçekten, başkaları da var. 733 00:32:41,550 --> 00:32:44,460 Bazılarınız keşfettim math.h. matematik kütüphanesi 734 00:32:44,460 --> 00:32:48,200 Ama benim için, şimdi, seni tanıştırayım Bu kaynak, CS50 personel, Davin, 735 00:32:48,200 --> 00:32:50,630 ve Rob ve Gabe özellikle bir araya getirdik. 736 00:32:50,630 --> 00:32:52,630 Bu yakında bağlayacak dersin web sitesini. 737 00:32:52,630 --> 00:32:54,870 Bu CS50 referans denir. 738 00:32:54,870 --> 00:32:58,230 >> Sadece size hızlı vermek için hangi aşağıdaki gibi onun tadı, çalışır. 739 00:32:58,230 --> 00:33:00,740 Beni reference.cs50.net gidelim. 740 00:33:00,740 --> 00:33:02,990 Sol taraftan görürsünüz ezici bir liste yan 741 00:33:02,990 --> 00:33:04,595 c ile gelen fonksiyonlar. 742 00:33:04,595 --> 00:33:07,790 Ama şu an için, bakım eğer, strlen gibi bir şey hakkında, 743 00:33:07,790 --> 00:33:08,746 Ben orada yazabilirsiniz. 744 00:33:08,746 --> 00:33:10,870 Bu listede aşağı filtreler Ben umurumda sadece ne için. 745 00:33:10,870 --> 00:33:11,940 Ben tıklayın gidiyorum. 746 00:33:11,940 --> 00:33:14,740 Ve şimdi, sol biz umut istediğimi görürsünüz 747 00:33:14,740 --> 00:33:18,290 Daha basit, insan nasıl dost açıklama 748 00:33:18,290 --> 00:33:19,170 Bu fonksiyon çalışır. 749 00:33:19,170 --> 00:33:20,600 >> Bir dize uzunluğunu döndürür. 750 00:33:20,600 --> 00:33:24,060 İşte özet burada, bu sizi nasıl başlık dosyasında açısından kullanmak, 751 00:33:24,060 --> 00:33:27,430 ve ne fonksiyon açısından kendi argümanları bakımından benziyor. 752 00:33:27,430 --> 00:33:30,250 Ve sonra burada, döner bir dize uzunluğu. 753 00:33:30,250 --> 00:33:34,280 Ama daha rahat o sizin için, aslında, daha rahat tıklayabilirsiniz 754 00:33:34,280 --> 00:33:37,070 ve bu içeriği sayfa, şimdi, değişecek 755 00:33:37,070 --> 00:33:41,660 Neyin varsayılan değerler için man sayfasını kullanarak olsun. 756 00:33:41,660 --> 00:33:44,100 >> Diğer bir deyişle, CS50 Referans bir basitleştirme 757 00:33:44,100 --> 00:33:46,220 Öğrenciler için personel tarafından man sayfaları, ve. 758 00:33:46,220 --> 00:33:49,320 Özellikle, bu daha az rahat ve, aralarında, böylece 759 00:33:49,320 --> 00:33:51,660 kaydırmak için denemek zorunda değilsiniz Aklını etrafında, açıkçası, 760 00:33:51,660 --> 00:33:55,030 Bazı oldukça şifreli sözdizimi bazen ve dokümantasyon. 761 00:33:55,030 --> 00:33:57,650 >> Yani akılda tutmak gün gelecek. 762 00:33:57,650 --> 00:33:59,560 Yani burada, yine, bir Zamyla olduğunu. 763 00:33:59,560 --> 00:34:03,255 Şimdi bu bir soru sorayım Biraz daha insani erişilebilir. 764 00:34:03,255 --> 00:34:05,380 Oldu Chang sayesinde, Daha fazla filler baskı 765 00:34:05,380 --> 00:34:07,090 Son birkaç gündür aralıksız. 766 00:34:07,090 --> 00:34:09,730 Biz vermek için bir fırsat var onlardan en azından birinin. 767 00:34:09,730 --> 00:34:13,239 Biz sadece bir gönüllü alabilir Eğer Ekranda çizmek için yukarı gelmek. 768 00:34:13,239 --> 00:34:14,530 Nasıl hakkında burada? 769 00:34:14,530 --> 00:34:15,340 >> Yukarı gel. 770 00:34:15,340 --> 00:34:16,720 Adın ne? 771 00:34:16,720 --> 00:34:17,219 ALEX: Alex. 772 00:34:17,219 --> 00:34:17,760 DAVID J. MALAN: Alex. 773 00:34:17,760 --> 00:34:18,259 Tamam. 774 00:34:18,259 --> 00:34:19,388 Alex, gel. 775 00:34:19,388 --> 00:34:21,679 Biz görmek üzereyiz senin Burada ekranda el yazısı. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 Pekala, nice to meet you. 778 00:34:25,570 --> 00:34:26,429 >> ALEX: Nice meet you. 779 00:34:26,429 --> 00:34:27,512 >> DAVID J. MALAN: Pekala. 780 00:34:27,512 --> 00:34:28,969 Yani, süper basit egzersiz. 781 00:34:28,969 --> 00:34:31,440 Bar yüksek değil Bugün bir fil olsun. 782 00:34:31,440 --> 00:34:33,439 Sen getString rol oynuyor. 783 00:34:33,439 --> 00:34:35,980 Ve ben sadece söylemek için gidiyorum Eğer ele verdik dize. 784 00:34:35,980 --> 00:34:38,080 Ve, senin varsayalım getString, adı olmuştur. 785 00:34:38,080 --> 00:34:42,480 Ve insan, benim gibi, vardır Zamyla, Z-A-M-Y-L-A yazdınız. 786 00:34:42,480 --> 00:34:45,650 Sadece devam edin ve üzerinde Zamyla bilgileri Ekran bunu aldık sanki 787 00:34:45,650 --> 00:34:47,250 ve bellekte bir yere saklanır. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> Birkaç nasıl olacak oda bırakmak Tamam diğer Kelimelerden--, devam et. 790 00:34:55,570 --> 00:34:59,620 >> [KAHKAHA] 791 00:34:59,620 --> 00:35:00,800 >> Peki Zamyla, mükemmel. 792 00:35:00,800 --> 00:35:04,880 Şimdi varsayalım ki senin, getString, tekrar denir. 793 00:35:04,880 --> 00:35:09,350 Ve bu nedenle, ben de, size Klavye, başka bir isim, Belinda ile. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 Tamam. 796 00:35:18,060 --> 00:35:22,380 Ve şimdi bir dahaki sefere getString olduğunu denilen, ben, Gabe gibi bir şey yazın 797 00:35:22,380 --> 00:35:27,560 G-A-B-E. Gerçekten alıyorsun Kalp rasgele erişim belleği. 798 00:35:27,560 --> 00:35:29,631 Hangi şeyi çizim Tamamen rastgele. 799 00:35:29,631 --> 00:35:30,130 TAMAM MI. 800 00:35:30,130 --> 00:35:31,104 >> [KAHKAHA] 801 00:35:31,104 --> 00:35:32,520 ALEX: Üzgünüm benim el yazısı kötü. 802 00:35:32,520 --> 00:35:33,770 DAVID J. MALAN: Hayır, sorun değil. 803 00:35:33,770 --> 00:35:40,480 Ve nasıl Rob, R-O-B hakkında. TAMAM MI. 804 00:35:40,480 --> 00:35:41,020 İyi. 805 00:35:41,020 --> 00:35:43,853 Yani sana olacağını tahmin etmedi tür, bu şekilde şeyler yatıyordu. 806 00:35:43,853 --> 00:35:45,020 Ama biz bu işi yapabilir. 807 00:35:45,020 --> 00:35:48,810 Peki döşeme konusunda nasıl gitti bellekte bu karakter üzerinden? 808 00:35:48,810 --> 00:35:51,310 Diğer bir deyişle, biz düşünüyorsanız Bu dikdörtgen siyah ekran 809 00:35:51,310 --> 00:35:53,550 Bir temsil ettiği Bilgisayarınızın RAM veya bellek. 810 00:35:53,550 --> 00:35:55,850 >> Ve RAM sadece olduğunu hatırlamak bayt bir sürü, 811 00:35:55,850 --> 00:35:57,480 ve bayt bit bir sürü vardır. 812 00:35:57,480 --> 00:35:59,350 Ve bit şekilde vardır genel olarak, uygulanan 813 00:35:59,350 --> 00:36:01,119 bir çeşit donanım elektrik. 814 00:36:01,119 --> 00:36:03,160 Yani bir çeşit Biz konuştuk katman 815 00:36:03,160 --> 00:36:04,510 verilen ve şimdi alabilir. 816 00:36:04,510 --> 00:36:07,020 Nasıl hakkında gitti nerede yazmaya karar 817 00:36:07,020 --> 00:36:11,634 Rob karşı Gabe karşı Zamyla karşı Belinda? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: Ben sadece bunu yaptım Bana söyledi sipariş. 819 00:36:14,020 --> 00:36:15,650 >> DAVID J. MALAN: Ve bu doğrudur. 820 00:36:15,650 --> 00:36:20,100 Ama ne nerede koymak idare Belinda adı ve Gabe adı? 821 00:36:20,100 --> 00:36:20,764 >> ALEX: Hiçbir şey? 822 00:36:20,764 --> 00:36:22,930 DAVID J. MALAN: [Gülüyor] Yani çalıştığını, bu iyi. 823 00:36:22,930 --> 00:36:25,290 Yani bilgisayarlar az olan Bundan daha düzenli. 824 00:36:25,290 --> 00:36:29,000 Ve böylece biz orada kalmak implement-- zaman zaman aslında biz sadece bir moment-- için 825 00:36:29,000 --> 00:36:31,470 gibi bir şey uygulamak Bir bilgisayarda getString, 826 00:36:31,470 --> 00:36:34,480 Zamyla hemen hemen ortaya koydu olabilir gibi orada, ekranda yaptım. 827 00:36:34,480 --> 00:36:36,660 >> Ve fark anahtarı nedir Burada, Alex ne yaptı, 828 00:36:36,660 --> 00:36:40,260 bir sınır tür var Bu kelimelerin her biri arasında, değil mi? 829 00:36:40,260 --> 00:36:46,580 Sen yazmadım A-Z-E-Y-L-A-B-E-L-I-N-D-A-G-A-B-, 830 00:36:46,580 --> 00:36:49,740 diğer bir deyişle, bir tür var gibi görünüyor sınır, 831 00:36:49,740 --> 00:36:52,370 tür, rastgele aralığı Bu çeşitli sözcükler arasında. 832 00:36:52,370 --> 00:36:54,120 Ama bu, çünkü iyi biz insanlar artık can 833 00:36:54,120 --> 00:36:56,470 Bu olduğu görselleştirmek Dört farklı dizeleri. 834 00:36:56,470 --> 00:36:59,540 Bu sadece bir dizi değil karakter bir sürü. 835 00:36:59,540 --> 00:37:04,190 Yani bir bilgisayar, daha sonra, bu arada, Zamyla gibi bir dize sürebilir, 836 00:37:04,190 --> 00:37:07,220 Bu harflerin her biri koymak belleğin bir bayt içinde. 837 00:37:07,220 --> 00:37:10,400 Ama bu sayı çok daha büyüktür Tabii, altı karakterden daha. 838 00:37:10,400 --> 00:37:11,690 >> RAM bir sürü var. 839 00:37:11,690 --> 00:37:15,330 Ve böylece bundan sonra, bu Kutuların ızgara gidiyor 840 00:37:15,330 --> 00:37:17,560 ne Alex, sadece temsil etmek Ekranda burada yaptım. 841 00:37:17,560 --> 00:37:20,937 Ve şimdi, Alex, size bir sunabilir mavi veya Chang bir turuncu fil. 842 00:37:20,937 --> 00:37:22,270 ALEX: Ben mavi fil alacağım. 843 00:37:22,270 --> 00:37:23,120 DAVID J. MALAN: Mavi fil. 844 00:37:23,120 --> 00:37:25,580 Yani alkış büyük bir yuvarlak, Alex için buraya, eğer olabilir. 845 00:37:25,580 --> 00:37:26,100 >> [Alkış] 846 00:37:26,100 --> 00:37:26,766 >> ALEX: Teşekkür ederim. 847 00:37:26,766 --> 00:37:28,820 DAVID J. MALAN: Teşekkür ederim. 848 00:37:28,820 --> 00:37:36,230 Yani paket olduğunu, bu bile desen tür burada, zamanla değişti 849 00:37:36,230 --> 00:37:40,430 Gemide, bu vardı Çeşitli dizeleri arasında sınır 850 00:37:40,430 --> 00:37:42,610 Alex bizim için var olduğunu. 851 00:37:42,610 --> 00:37:45,230 Şimdi bilgisayarlar, açıkçası, Aynı şeyi yapabilirdi. 852 00:37:45,230 --> 00:37:48,210 Onlar tür plop olabilir her yerde RAM içinde dizeleri. 853 00:37:48,210 --> 00:37:50,710 Burada yukarı, buraya, Burada aşağı buraya. 854 00:37:50,710 --> 00:37:52,020 >> Onlar tam bunu yapabilir. 855 00:37:52,020 --> 00:37:54,280 Ama, tabii, işte muhtemelen en iyi planlama. 856 00:37:54,280 --> 00:37:54,780 Doğru? 857 00:37:54,780 --> 00:37:57,340 Ben Alex soran devam ederse adlarını almak, muhtemelen o ediyorum 858 00:37:57,340 --> 00:38:01,370 belki yukarı, burada biraz daha indirdi Burada, buraya, buraya, sonunda 859 00:38:01,370 --> 00:38:02,211 buraya. 860 00:38:02,211 --> 00:38:05,460 Ama biraz daha planlama ile, kesinlikle, daha temiz şeyler yatıyordu. 861 00:38:05,460 --> 00:38:07,350 Ve gerçekten de, bir bilgisayar ne var. 862 00:38:07,350 --> 00:38:10,720 >> Ama yakalamak olduğunu eğer olsun bir sonraki dize 863 00:38:10,720 --> 00:38:14,050 Zamyla şey sonra Belinda gibi, 864 00:38:14,050 --> 00:38:17,929 Biz yazmak olabilir nerede teklif Bu ızgara ile ilgili b mektup? 865 00:38:17,929 --> 00:38:18,720 Nereye gitmek istiyorsunuz? 866 00:38:18,720 --> 00:38:21,480 A sağında, a altında z, aşağıda? 867 00:38:21,480 --> 00:38:23,204 İlk içgüdüleri ne olurdu? 868 00:38:23,204 --> 00:38:24,120 HEDEF KİTLE: z görebilirsiniz. 869 00:38:24,120 --> 00:38:25,100 DAVID J. MALAN: Yani z altında. 870 00:38:25,100 --> 00:38:26,530 Ve bu oldukça var basit, değil mi? 871 00:38:26,530 --> 00:38:29,321 Bu düzgün tür, biz ne var Bir klavyede biz Enter vurduğunda, 872 00:38:29,321 --> 00:38:31,770 veya email yaparken şeylerin madde işaretli liste. 873 00:38:31,770 --> 00:38:34,310 Ama gerçek bu bilgisayarlar daha verimli olmaya çalışın, 874 00:38:34,310 --> 00:38:37,170 ve çok kesin tıkmak mümkün olduğu RAM'a verileri 875 00:38:37,170 --> 00:38:38,890 böylece herhangi bir bayt boşa harcamayın. 876 00:38:38,890 --> 00:38:41,545 Eğer boşa harcamayın Böylece Herhangi bir ekran gayrimenkul. 877 00:38:41,545 --> 00:38:44,170 Ve sorun olsa da, yani biz kelimenin tam anlamıyla mektubu koyarsanız 878 00:38:44,170 --> 00:38:49,940 b sonra, nasıl biz gidiyoruz Zamyla adı biter nerede 879 00:38:49,940 --> 00:38:51,840 ve Belinda adı başlıyor? 880 00:38:51,840 --> 00:38:55,270 Yani, sadece, iyi, teklif, insanların esasen, Enter tuşuna basın. 881 00:38:55,270 --> 00:38:56,410 Aşağıya indirdi. 882 00:38:56,410 --> 00:38:59,750 Veya Alex yaptığı bile, sadece yazmaya başlayın önceki altındaki sonraki ismi, 883 00:38:59,750 --> 00:39:01,583 ve o biri altında, ve o bir altında. 884 00:39:01,583 --> 00:39:02,510 Bu görsel ipucu var. 885 00:39:02,510 --> 00:39:05,960 >> Bilgisayar, başka bir görsel işaret var ama biraz daha özlü var. 886 00:39:05,960 --> 00:39:07,840 Bu korkak karakter. 887 00:39:07,840 --> 00:39:11,890 Belki Backslash 0, Ters eğik çizgi n anımsatan, 888 00:39:11,890 --> 00:39:12,640 ve benzeri, şimdi. 889 00:39:12,640 --> 00:39:14,120 özel kaçış dizileri. 890 00:39:14,120 --> 00:39:19,120 Ters kesme 0 yoludur Arka arkaya sekiz sıfır biti temsil. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> Bunu ifade yolu değildir klavyenizdeki sayı sıfır vurdu, 893 00:39:26,130 --> 00:39:28,140 ASCII karakter aslında çünkü. 894 00:39:28,140 --> 00:39:30,990 Bir sayı gibi görünüyor, ama Bir ondalık sayı aslında 895 00:39:30,990 --> 00:39:35,910 Bu genelge temsil glif, dairesel yazı. 896 00:39:35,910 --> 00:39:38,410 Bu arada, ters eğik çizgi sıfır anlamıyla anlamına gelir 897 00:39:38,410 --> 00:39:40,700 Benim için burada sekiz sıfır bayt koydu. 898 00:39:40,700 --> 00:39:42,136 >> Peki bu biraz keyfidir. 899 00:39:42,136 --> 00:39:44,260 Biz herhangi bir desen kullanılmış olabilirdi bit, ama dünya 900 00:39:44,260 --> 00:39:46,610 Birkaç yıl karar önce, bu temsil etmek 901 00:39:46,610 --> 00:39:49,710 bellekte bir dize sonu, Sadece sıfır bir sürü koyun. 902 00:39:49,710 --> 00:39:51,000 Biz algılayabilir çünkü. 903 00:39:51,000 --> 00:39:54,790 Şimdi anlamına gelir hiçbir mektup alfabe sıfır ile temsil edilebilir. 904 00:39:54,790 --> 00:39:58,480 >> Ama bu Tamam, biz zaten gördük Biz yukarı kadar içinde 97 üzerinde 65 kullandığınızı. 905 00:39:58,480 --> 00:40:00,290 Biz her yerde alamadım Tüm sıfırlardan yakın. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 Bir bilgisayarın belleğinde Belinda Yani Aslında buraya gitmek için gidiyor. 908 00:40:06,540 --> 00:40:09,764 Ben sarı bunu boğuldum sadece buna bizim dikkat çekmek için. 909 00:40:09,764 --> 00:40:11,680 Ve haber de, bu Tamamen keyfi. 910 00:40:11,680 --> 00:40:12,680 Ben bir ızgara olarak boğuldum. 911 00:40:12,680 --> 00:40:14,460 Gibi, RAM sadece bazı fiziksel nesnedir. 912 00:40:14,460 --> 00:40:17,300 Mutlaka yok satır ve sütun, başına. 913 00:40:17,300 --> 00:40:20,490 Bu sadece bayt bir sürü var nasılsa donanımda uyguladı. 914 00:40:20,490 --> 00:40:22,817 Ama Belinda I sonra eğer Gabe adına yazdığınız, 915 00:40:22,817 --> 00:40:25,650 O, bellekte burada sonuna kadar gidiyor ve ben Daven adına yazdıysanız, 916 00:40:25,650 --> 00:40:27,316 Örneğin, burada sonuna kadar gidiyor. 917 00:40:27,316 --> 00:40:29,310 Ve ben devam edebilirsiniz daha isimlerini yazınız. 918 00:40:29,310 --> 00:40:32,100 >> Ne yazık ki, ben çalışırsanız Bir süper uzun isim yazma, 919 00:40:32,100 --> 00:40:33,730 Sonunda bellek tükeneceğini. 920 00:40:33,730 --> 00:40:37,810 Bu durumda, getString olduğunu Dediğimiz gibi, NULL iade edecek. 921 00:40:37,810 --> 00:40:41,720 Ama neyse ki, en azından bu görsel olarak Burada, biz oldukça o kadar alamadım. 922 00:40:41,720 --> 00:40:45,860 >> Şimdi ne güzel bu olduğunu şeyleri tedavi genel bir fikir 923 00:40:45,860 --> 00:40:49,720 kutularda olmak gibi C bir özelliği için temsili 924 00:40:49,720 --> 00:40:52,690 ve dillerin bir sürü, bir dizi olarak da bilinir. 925 00:40:52,690 --> 00:40:55,490 Bir dizi verileri başka bir türüdür. 926 00:40:55,490 --> 00:40:57,380 Eğer sen bu, bir veri yapısıdır. 927 00:40:57,380 --> 00:41:01,160 Gerçekten anlamında Yapısı, tür, en azından, bir kutu gibi bakıyor 928 00:41:01,160 --> 00:41:02,320 senin zihin gözünde. 929 00:41:02,320 --> 00:41:09,680 Bir dizi bitişik olan aynı veri türleri dizisi, 930 00:41:09,680 --> 00:41:11,330 arka arkaya arkaya arkaya. 931 00:41:11,330 --> 00:41:14,720 Diğer >> Yani bir dize, kelimeler, karakter dizisidir. 932 00:41:14,720 --> 00:41:16,120 Karakter dizisi. 933 00:41:16,120 --> 00:41:19,070 Ama sen sahip olabilir çıkıyor şeyler salkım dizileri. 934 00:41:19,070 --> 00:41:21,870 Aslında, biz bile koyabilirsiniz Bir dizideki sayılar. 935 00:41:21,870 --> 00:41:23,920 Şeklinde Böylece hangi biz başlatmak için gidiyoruz 936 00:41:23,920 --> 00:41:26,590 Bu verileri bildirmek bir dizi olarak bilinen yapı 937 00:41:26,590 --> 00:41:28,250 Ayrıca köşeli parantez kullanmak için gidiyor. 938 00:41:28,250 --> 00:41:31,500 Ancak bu kare parantez gidiyor Bu bağlamda farklı bir anlam var. 939 00:41:31,500 --> 00:41:33,450 >> Ve şöyle hadi görelim. 940 00:41:33,450 --> 00:41:36,780 Ben açıldı varsayalım Burada yeni bir dosya kadar. 941 00:41:36,780 --> 00:41:38,535 Ve ben ages.c. olarak bu tasarruf 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 Ve ben burada benim klasöre bu tasarruf edersiniz. 944 00:41:43,470 --> 00:41:46,130 Ve şimdi ben önde gitmek için gidiyorum ve bir şey yazmaya başlamak 945 00:41:46,130 --> 00:41:53,940 bu gibi maddeler bulunmaktadır, CS50.h içerir stdio.h, ana boşluğu int. 946 00:41:53,940 --> 00:41:57,370 Ve sonra buradan içinde, ben istiyorum İlk yaş denilen bir int var. 947 00:41:57,370 --> 00:42:01,371 >> Ve ben bir almak için bu kullanmak için gidiyorum onun yaşı için kullanıcıdan int. 948 00:42:01,371 --> 00:42:04,620 Ama bu program tarafından kullanılmak üzere içindir ne olursa olsun bağlamda için birden fazla kişi. 949 00:42:04,620 --> 00:42:05,490 Ben insanların bir çizgi var. 950 00:42:05,490 --> 00:42:08,281 Hepsi de yazmak zorunda onların Belki bazı bilmiyorum yaşı, 951 00:42:08,281 --> 00:42:10,530 Yarışma, veya olay onlar için geldi ettik. 952 00:42:10,530 --> 00:42:13,030 Yani gelecek kişi, ben Başka bir değişken gerekir. 953 00:42:13,030 --> 00:42:15,790 >> Ben sadece bunu Çünkü eğer Yaş GETINT alır, o var 954 00:42:15,790 --> 00:42:18,500 gidiş clobber, ya da üzerine yazmak Bir önceki kişinin yaşı. 955 00:42:18,500 --> 00:42:19,760 Yani hiç iyi değil. 956 00:42:19,760 --> 00:42:21,790 Benim ilk içgüdüsü Yani olabilir, oh, tamam, 957 00:42:21,790 --> 00:42:26,260 Ben birden fazla kişi 's almak istiyorsanız ages--, en bu age1 diyelim 958 00:42:26,260 --> 00:42:31,280 int Age2 int alır, int age3 GETINT alır. 959 00:42:31,280 --> 00:42:35,340 Ve şimdi ben kullanmak için gidiyorum Burada bazı pseudocode kodu. 960 00:42:35,340 --> 00:42:37,679 >> Bu numaraları ile bir şeyler yapın. 961 00:42:37,679 --> 00:42:40,470 Biz başka bir gün için bırakacağım ne Biz orada yapıyoruz çünkü biz sadece 962 00:42:40,470 --> 00:42:44,200 Şu an için bakım age1, Age2, age3 hakkında. 963 00:42:44,200 --> 00:42:46,450 Ne yazık ki, I kez Bu programı derlemek 964 00:42:46,450 --> 00:42:51,140 ve gerçek kullanıcıların önüne koymak temelde kötü tasarım ne 965 00:42:51,140 --> 00:42:53,890 Ben görünüyor karar var mı? 966 00:42:53,890 --> 00:42:54,624 Evet? 967 00:42:54,624 --> 00:42:55,499 HEDEF KİTLE: [Duyulmaz] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 DAVID J. MALAN: Evet, Ben bile denemedim 970 00:42:59,820 --> 00:43:02,028 Kaç yaş anlamaya Aslında umurumda mı? 971 00:43:02,028 --> 00:43:05,380 Ben burada daha az üç kişi varsa, ve bu nedenle daha az üç yaş, 972 00:43:05,380 --> 00:43:07,260 Ben hala körü körüne üç bekliyorum. 973 00:43:07,260 --> 00:43:08,720 Tanrı dört kişi sırıtmak korusun. 974 00:43:08,720 --> 00:43:10,990 Benim program sadece bile onlara destek olmaz. 975 00:43:10,990 --> 00:43:13,280 >> Ve böylece bu uzun bir hikaye Kısacası, iyi bir alışkanlık değil. 976 00:43:13,280 --> 00:43:13,780 Doğru? 977 00:43:13,780 --> 00:43:16,530 Bir esas olarak kopyalama ve kod yapıştırma ve sadece verdiği 978 00:43:16,530 --> 00:43:17,430 Değişken adları. 979 00:43:17,430 --> 00:43:22,410 Ve, Tanrım, sen olsaydı, üç değil yaş, fakat 10 veya 100 ve hatta 6500 980 00:43:22,410 --> 00:43:23,820 lisans, örneğin. 981 00:43:23,820 --> 00:43:26,950 Bu, özellikle olacak değil Zarif kodu veya sürdürülebilir. 982 00:43:26,950 --> 00:43:29,200 Sen zorunda gidiyoruz programı her zaman yeniden 983 00:43:29,200 --> 00:43:30,760 İnsanlar değişiklikler numaranız. 984 00:43:30,760 --> 00:43:35,090 >> Peki minnetle, bizim gerçek olarak Bugün için ages.c dosya, 985 00:43:35,090 --> 00:43:36,970 biz daha akıllı çözüm var. 986 00:43:36,970 --> 00:43:39,800 Öncelikle, ben ödünç gidiyorum Biz bir kaç kez kullandım inşa 987 00:43:39,800 --> 00:43:43,744 Bu almak için, döngü sırasında yapılacak odada kişi sayısı. 988 00:43:43,744 --> 00:43:46,910 Ben sadece tekrar, kullanıcı musallat gidiyorum ve yine o kadar bana verir 989 00:43:46,910 --> 00:43:49,260 pozitif bir tam sayı, n değeri. 990 00:43:49,260 --> 00:43:51,590 >> Ben kullanmış olabilir, son Zaman olumlu int olsun. 991 00:43:51,590 --> 00:43:53,720 Ama biz yok gerçek, bu yüzden devam ettim 992 00:43:53,720 --> 00:43:55,660 ve bu fikri hayata yeniden. 993 00:43:55,660 --> 00:43:58,410 Şimdi buraya, bu yeni hiledir. 994 00:43:58,410 --> 00:44:02,260 Yorum olarak hat 27 içinde hat 26 anlaşılacağı içinde, 995 00:44:02,260 --> 00:44:05,180 bir diziyi bildirmek hangi herkesin yaşını saklamak için. 996 00:44:05,180 --> 00:44:09,320 >> Eğer isterseniz, değil bir int, değil almak yüzden İki int, ama ints bir sürü. 997 00:44:09,320 --> 00:44:13,800 Özellikle n tamsayılar vardı n olabilir 100 olabilir, üç olmak, 1.000 olabilir. 998 00:44:13,800 --> 00:44:17,570 sözdizimi, oldukça basit, için diyelim ki, ne veri türü istiyorsun? 999 00:44:17,570 --> 00:44:19,620 Aramak istediğiniz ne belleğin o yığın? 1000 00:44:19,620 --> 00:44:23,530 Eğer ızgara aramak istiyorsun bu resimsel benziyor? 1001 00:44:23,530 --> 00:44:27,700 >> Ve burada parantez içinde, diyorsunuz ne kadar büyük dizi olmasını istiyorum. 1002 00:44:27,700 --> 00:44:30,450 Ve böylece daha önce, ne dedim sözdizimi, burada biraz farklı 1003 00:44:30,450 --> 00:44:33,614 biz hala köşeli parantez kullanıyorsanız, ama ben bir dizi ilan ediyorum ne zaman, 1004 00:44:33,614 --> 00:44:35,530 içinde sayısı köşeli parantez araçlar 1005 00:44:35,530 --> 00:44:37,610 ne kadar büyük dizi olmak istiyorsun. 1006 00:44:37,610 --> 00:44:42,490 >> Aksine, kullanıyordu ler dirsek i bir an önce, s, bir dize, 1007 00:44:42,490 --> 00:44:46,820 karakter dizisi, aslında, ancak Bir değişkeni bildirirken değilken, 1008 00:44:46,820 --> 00:44:49,760 Burada bu anahtar kelime ile olduğu gibi, sadece alıyoruz 1009 00:44:49,760 --> 00:44:54,280 Belirli bir göstergesi, belli bir Bu diziden eleman. 1010 00:44:54,280 --> 00:44:57,090 Bunu biliyoruz kez, dinlenme Bu basittir. 1011 00:44:57,090 --> 00:45:00,765 Ben ilk yazdırmak için gidiyorum yeni ise kişi sayısının i yaşı ne. 1012 00:45:00,765 --> 00:45:03,890 Ben sadece, kişinin bir numaralı demek Nerede kişi sayısı iki, kişi sayısı üç. 1013 00:45:03,890 --> 00:45:06,306 >> Ve ben sadece aritmetik yapıyorum, böylece gibi normal insanlar, 1014 00:45:06,306 --> 00:45:09,030 Bunun için bir saymak program olup sıfırdan. 1015 00:45:09,030 --> 00:45:13,620 Sonra GETINT diyoruz, ama ben saklamak çağlarda cevap i paranteze. 1016 00:45:13,620 --> 00:45:16,610 Hangi dizide i'inci yaş. 1017 00:45:16,610 --> 00:45:21,640 Son kez ise biz tedavi edildi Yani Zamyla adı için karakter olarak bu kutular, 1018 00:45:21,640 --> 00:45:22,490 ve diğerleri. 1019 00:45:22,490 --> 00:45:26,530 Şimdi, bu kutular temsil 32 bit ya da dört bayt 1020 00:45:26,530 --> 00:45:29,510 İçinde saklayabilir bir int, int, int. 1021 00:45:29,510 --> 00:45:31,890 Tüm bunlar, yine, Aynı veri türü vardır. 1022 00:45:31,890 --> 00:45:33,890 >> Şimdi bir şey aptal yapmak, Zaman geçtikçe gibi, sadece 1023 00:45:33,890 --> 00:45:35,510 Bu program yazma haklı. 1024 00:45:35,510 --> 00:45:40,050 Ve sonra buraya, ben tekrar yineleme bugünden itibaren bir yıl söyleyerek dizi üzerinde, 1025 00:45:40,050 --> 00:45:43,090 kişi bir numaralı irade bir şey yaşında olması. 1026 00:45:43,090 --> 00:45:45,010 Ve bu anlamaya math-- Yani, bu 1027 00:45:45,010 --> 00:45:49,260 çok arithmetic-- karmaşık değil Ben sadece kendi yaş tane ekleyin. 1028 00:45:49,260 --> 00:45:51,240 Sadece, yine bu göstermek için. 1029 00:45:51,240 --> 00:45:57,910 >> Sadece bir dize, s içine I endeksi olabildiğince, bu nedenle yaş bir diziye can I endeksi, 1030 00:45:57,910 --> 00:45:59,950 Orada böyle. 1031 00:45:59,950 --> 00:46:03,340 Peki bu bizi alarak olacak? 1032 00:46:03,340 --> 00:46:07,070 Yani biz göreceğiz, sonuçta, bir gün birkaç şey gelip. 1033 00:46:07,070 --> 00:46:09,510 Bir, bütün bu zaman, zaman Kendi programları yazma, 1034 00:46:09,510 --> 00:46:11,239 Mario, açgözlü, kredi gibi. 1035 00:46:11,239 --> 00:46:13,780 Sen adını yazarak oldum Program ve vurmak girin. 1036 00:46:13,780 --> 00:46:15,610 Ve sonra kullanıcının girişi alıyorum. 1037 00:46:15,610 --> 00:46:18,137 >> GetString, GETINT ile, getLongLong, veya benzeri yer alır. 1038 00:46:18,137 --> 00:46:20,720 Ama bu C desteklerini çıkıyor şey komut satırı denir 1039 00:46:20,720 --> 00:46:25,740 bize gidiyor argümanlar, aslında yazdığınız kelimeleri olsun, 1040 00:46:25,740 --> 00:46:28,570 Yanıp sönen isteminde, Programınızın adından sonra. 1041 00:46:28,570 --> 00:46:31,430 >> Size, gelecek günlerde Yani Sezar gibi bir şey yazabilirsiniz, 1042 00:46:31,430 --> 00:46:34,950 ya ./caesar sonra sayı 13. 1043 00:46:34,950 --> 00:46:36,070 Biz nasıl çalıştığını göreceksiniz. 1044 00:46:36,070 --> 00:46:37,550 Gerçekten de, çünkü Sorun şu konum, iki set 1045 00:46:37,550 --> 00:46:39,383 size tanıtmak için gidiyor küçük bir şey için 1046 00:46:39,383 --> 00:46:42,360 Ralphie en anımsatan haritacılık önceki meydan. 1047 00:46:42,360 --> 00:46:43,970 bilgi çabalıyorlar sanatı. 1048 00:46:43,970 --> 00:46:46,660 Bu, aslında çok, Ralphie yaptıklarını anımsatan. 1049 00:46:46,660 --> 00:46:51,380 >> Bu şifreleme örneğidir algoritması, R-O-T 13 rot13 adı. 1050 00:46:51,380 --> 00:46:54,910 Hangi basitçe döndürmek anlamına gelir alfabede 13 yerler harfler. 1051 00:46:54,910 --> 00:46:58,309 Bunu yaparsanız, şimdi göreceksiniz Bir tanıdık ifade, belki de, budur. 1052 00:46:58,309 --> 00:47:01,100 Ama yolu biz kullanmak için gidiyoruz Bu, sonuç olarak, daha genel olarak ise. 1053 00:47:01,100 --> 00:47:04,390 >> P ise, standart baskısında, iki set Eğer, şifrelerin bir çift uygulamak gerekir 1054 00:47:04,390 --> 00:47:06,720 Sezar adlı bir, Vigenere denilen bir. 1055 00:47:06,720 --> 00:47:10,090 Bunların her ikisi de, dönme olan ki şifreler, her nasılsa 1056 00:47:10,090 --> 00:47:11,826 Farklı bir mektupta içine bir harf çevirmek. 1057 00:47:11,826 --> 00:47:12,950 Ve Sezar süper basit. 1058 00:47:12,950 --> 00:47:16,220 Sen 13 ekleyin, bir ekleme veya 26'ya kadar bazı sayı. 1059 00:47:16,220 --> 00:47:19,570 Vigenere bu konuda yok Bir harf başına temeli. 1060 00:47:19,570 --> 00:47:22,140 Vigenere Yani, gibi görürsünüz spec, daha güvenli. 1061 00:47:22,140 --> 00:47:24,973 >> Ama günün sonunda ne , sen uygulama olacak ve P iki set 1062 00:47:24,973 --> 00:47:29,050 hem kullandığınız anahtar şifreleme ve şifre çözme için. 1063 00:47:29,050 --> 00:47:32,160 Dönme işlemine referansla düz metin, bazı orijinal mesaj, 1064 00:47:32,160 --> 00:47:34,490 cypher metin, içine hangi bir şey şifrelenir. 1065 00:47:34,490 --> 00:47:36,220 Ve sonra tekrar şifresini. 1066 00:47:36,220 --> 00:47:38,119 >> Korsan baskısında, Bu arada, sen olacağım 1067 00:47:38,119 --> 00:47:40,660 benzer bir şey ile görevli ruhu, size vereceğim nerede 1068 00:47:40,660 --> 00:47:44,610 Tipik bir Linux veya bir dosya, Mac veya Unix bilgisayar denilen etsy 1069 00:47:44,610 --> 00:47:47,800 bir bütün içeriyor şifre, kullanıcı adı ve şifre demet. 1070 00:47:47,800 --> 00:47:50,932 Ve bu şifreleri hepsi var Şifreli veya karma olarak, 1071 00:47:50,932 --> 00:47:53,140 böylece daha düzgün, konuşmak Eğer spec göreceğiniz gibi. 1072 00:47:53,140 --> 00:47:57,090 >> Ve korsan baskısı meydan okuyacak Böyle bir giriş alarak size, 1073 00:47:57,090 --> 00:47:58,800 ve şifre çatlama. 1074 00:47:58,800 --> 00:48:02,590 Bu sergiyi, ne İnsanın şifresi aslında. 1075 00:48:02,590 --> 00:48:05,570 Gerçekten, şifreler, Çünkü Genellikle açık saklanmaz, 1076 00:48:05,570 --> 00:48:08,260 ve genellikle şifreleri tahmin etmek zor olmalı. 1077 00:48:08,260 --> 00:48:09,610 Bu genellikle böyle değil. 1078 00:48:09,610 --> 00:48:12,110 >> Ve ne yapmamız düşündüm olduğunu Bir kaç dakika sonuçlandırmak 1079 00:48:12,110 --> 00:48:15,160 Özellikle de bakışta şifreleri kötü seçim 1080 00:48:15,160 --> 00:48:17,260 Bir filmden severek hatırlamak olabilir. 1081 00:48:17,260 --> 00:48:18,915 Değil Ve eğer kiralamak. 1082 00:48:18,915 --> 00:48:20,070 >> [VİDEO OYNATMA] 1083 00:48:20,070 --> 00:48:22,320 >> -Helmet, Sen şeytan, ne oluyor? 1084 00:48:22,320 --> 00:48:24,240 Kızıma ne yapıyorsun? 1085 00:48:24,240 --> 00:48:28,010 >> Tanıtmak için beni -Permit parlak genç plastik cerrah, 1086 00:48:28,010 --> 00:48:30,010 Doktor Phillip Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 en büyük burun iş adam Tüm evren ve Beverly Hills. 1088 00:48:35,020 --> 00:48:36,140 >> -Senin Majesteleri. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose Iş? 1090 00:48:36,820 --> 00:48:37,700 Anlayamıyorum. 1091 00:48:37,700 --> 00:48:39,070 O zaten bir burun işi geçirdi. 1092 00:48:39,070 --> 00:48:40,800 Onu tatlı 16 mevcuttu. 1093 00:48:40,800 --> 00:48:42,590 >> -Hayır, Düşündüğün gibi değil. 1094 00:48:42,590 --> 00:48:44,490 Bu çok, çok kötü. 1095 00:48:44,490 --> 00:48:48,160 Bana vermezseniz Hava kalkan kombinasyonu, 1096 00:48:48,160 --> 00:48:52,748 Doktor Schlotkin verecek sizin kızı eski burnunu geri. 1097 00:48:52,748 --> 00:48:53,748 - [Soluk soluğa] NOOOOOOOOOOOOO. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 Bunu nereden aldın? 1100 00:48:59,652 --> 00:49:00,640 >> -Tamam. 1101 00:49:00,640 --> 00:49:02,506 Ben söyleyeyim, anlatacağım. 1102 00:49:02,506 --> 00:49:03,498 >> -Hayır, Baba, hayır. 1103 00:49:03,498 --> 00:49:04,490 Sen gerekir. 1104 00:49:04,490 --> 00:49:06,090 >> -Sen Doğru canım. 1105 00:49:06,090 --> 00:49:07,390 Ben yeni burnunu özleyeceğim. 1106 00:49:07,390 --> 00:49:10,990 Ama ben onlara değil kombinasyon ne olursa olsun. 1107 00:49:10,990 --> 00:49:12,450 >> -Çok Iyi. 1108 00:49:12,450 --> 00:49:14,830 Doktor Schlotkin, en kötü yapmak. 1109 00:49:14,830 --> 00:49:15,744 >> -Benim Zevk. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> -Hayır! 1112 00:49:20,800 --> 00:49:22,780 Bekle, bekle. 1113 00:49:22,780 --> 00:49:24,000 Ben söyleyeyim. 1114 00:49:24,000 --> 00:49:25,830 Ben söyleyeyim. 1115 00:49:25,830 --> 00:49:28,270 >> -Ben Işe yarayacağını biliyordum. 1116 00:49:28,270 --> 00:49:31,390 Pekala, bana ver. 1117 00:49:31,390 --> 00:49:36,220 >> -The Kombinasyon biridir. 1118 00:49:36,220 --> 00:49:36,740 >> -on'un Preparasyonunu gösterir. 1119 00:49:36,740 --> 00:49:37,473 >> -on'un Preparasyonunu gösterir. 1120 00:49:37,473 --> 00:49:37,972 -İki. 1121 00:49:37,972 --> 00:49:38,471 -İki. 1122 00:49:38,471 --> 00:49:39,800 -İki. 1123 00:49:39,800 --> 00:49:40,300 -Üç. 1124 00:49:40,300 --> 00:49:40,800 -Üç. 1125 00:49:40,800 --> 00:49:41,800 -Üç. 1126 00:49:41,800 --> 00:49:42,300 -Dört. 1127 00:49:42,300 --> 00:49:42,800 -Dört. 1128 00:49:42,800 --> 00:49:44,707 -Dört. 1129 00:49:44,707 --> 00:49:45,521 Beş. 1130 00:49:45,521 --> 00:49:46,430 Beş. 1131 00:49:46,430 --> 00:49:47,930 Beş. 1132 00:49:47,930 --> 00:49:53,480 Kombinasyon biri -SO, iki, üç, dört, beş. 1133 00:49:53,480 --> 00:49:56,140 Bu aptalca bir kombinasyon Ben hayatımda duydum. 1134 00:49:56,140 --> 00:49:58,640 O şey, bir tür salak onun bagaj olurdu. 1135 00:49:58,640 --> 00:50:00,000 >> Majesteleri -Teşekkürler. 1136 00:50:00,000 --> 00:50:01,340 >> [UZAK tıklamaları] 1137 00:50:01,340 --> 00:50:02,450 >> Ne yaptın? 1138 00:50:02,450 --> 00:50:03,800 >> -Ben Duvar kapalı. 1139 00:50:03,800 --> 00:50:05,010 >> -Hayır, Sen, değil mi bütün film kapalı. 1140 00:50:05,010 --> 00:50:06,220 >> -Ben Olmalı yanlış düğmeye bastı. 1141 00:50:06,220 --> 00:50:07,064 >> -Peki, Geri koymak! 1142 00:50:07,064 --> 00:50:07,910 Geri filmi koy! 1143 00:50:07,910 --> 00:50:08,300 >> Evet, efendim! 1144 00:50:08,300 --> 00:50:08,799 Evet, efendim. 1145 00:50:08,799 --> 00:50:09,660 En, Arnold Gidelim. 1146 00:50:09,660 --> 00:50:10,450 , Gretchen gel. 1147 00:50:10,450 --> 00:50:12,533 Tabii ki ben olacak biliyorum Bunun için size fatura etmek zorunda. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 -İyi? 1150 00:50:17,220 --> 00:50:17,802 İşe mı? 1151 00:50:17,802 --> 00:50:18,510 Kral nerede? 1152 00:50:18,510 --> 00:50:20,218 >> -Bu Biz, efendim çalıştı kombinasyon var. 1153 00:50:20,218 --> 00:50:20,740 -Harika. 1154 00:50:20,740 --> 00:50:24,810 Şimdi her geçen nefes alabilir Druidia taze hava. 1155 00:50:24,810 --> 00:50:25,890 Kombinasyon nedir? 1156 00:50:25,890 --> 00:50:28,155 >> -on, Iki, üç, dört, beş. 1157 00:50:28,155 --> 00:50:29,890 >>, Iki, üç, dört, beş -Bir? 1158 00:50:29,890 --> 00:50:30,390 -Evet. 1159 00:50:30,390 --> 00:50:31,110 -Bu Inanılmaz. 1160 00:50:31,110 --> 00:50:34,550 Ben aynı var Benim bagaj kombinasyonu. 1161 00:50:34,550 --> 00:50:37,160 Için Spaceballs'sun 1 hazırlayın acil çıkış. 1162 00:50:37,160 --> 00:50:38,160 >> Evet, efendim. 1163 00:50:38,160 --> 00:50:40,745 >> Değiştirmek -Ve Benim bagaj kombinasyonu. 1164 00:50:40,745 --> 00:50:41,578 [KAPI KAPANIŞ SES] 1165 00:50:41,578 --> 00:50:42,064 [KAPI CLINK KASK VURUŞ] 1166 00:50:42,064 --> 00:50:42,550 -Ahh. 1167 00:50:42,550 --> 00:50:43,383 [SON VİDEO OYNATMA] 1168 00:50:43,383 --> 00:50:46,700 DAVID J. MALAN: İşte için var CS50, önümüzdeki hafta göreceğiz. 1169 00:50:46,700 --> 00:50:49,883 ANLATICI: Ve şimdi, Derin DAV Farnham tarafından Düşünceler. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> DAV FARNHAM C: Kodlama olan Scratch çok daha zor. 1172 00:50:55,860 --> 00:50:57,320 printf, Scratch bir yalandı. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [KAHKAHA Soundbite] 1175 00:51:01,430 --> 00:51:02,486