1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. MALAN: Yani bu CS50 olduğunu. 3 00:00:13,800 --> 00:00:18,970 Bu CS50 kendi Colton Ogden, olduğu daha fazlası için kim müzik yapabilirsiniz bulunuyor 4 00:00:18,970 --> 00:00:22,820 soundcloud.com/cs50 indirebilirsiniz. 5 00:00:22,820 --> 00:00:26,690 >> Yani bugün hepimiz daha fazla odaklanmak programlama sanatı üzerine. 6 00:00:26,690 --> 00:00:28,980 Kaldığımız yerden Ve biz almak Geçen hafta kapalı, odaklama 7 00:00:28,980 --> 00:00:31,660 Scratch, bu oldu grafiksel programlama dili. 8 00:00:31,660 --> 00:00:35,490 Ve, bir alt seviyesine kadar şeyler almak Bir daha geleneksel programlama kullanarak 9 00:00:35,490 --> 00:00:38,420 dil C olarak bilinen Ama Yol boyunca, hayata 10 00:00:38,420 --> 00:00:40,730 Aynı fikirler ki Geçen Cuma konuştuk 11 00:00:40,730 --> 00:00:44,390 sadece bu tekerrür edecek dil C, ama çoğu her diğer 12 00:00:44,390 --> 00:00:46,350 Bu dönem bakmak. 13 00:00:46,350 --> 00:00:50,247 >> Yani biz bu denilen şey Burada ne son ne zaman? 14 00:00:50,247 --> 00:00:51,830 Bu açıklamada temsilcisidir. 15 00:00:51,830 --> 00:00:53,080 Yani biz bu deyimi denir. 16 00:00:53,080 --> 00:00:54,100 Ve bir şey yok. 17 00:00:54,100 --> 00:00:56,910 Bu bir talimat olduğunu bir Bilgisayar veya Scratch yürütmek olabilir. 18 00:00:56,910 --> 00:00:59,910 Ve bundan sonra, en de başlayalım Bu bir işlev gibi bir şey aradığını, 19 00:00:59,910 --> 00:01:02,070 nedenlerle yakında göreceğiz. 20 00:01:02,070 --> 00:01:03,681 >> Bu arada, biz bu gibi şeyler gördüm. 21 00:01:03,681 --> 00:01:05,680 Ve bunlar genellikle inşa ne olarak bilinen? 22 00:01:05,680 --> 00:01:06,240 >> İZLEYİCİ: Döngü. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. MALAN: Yani döngü. 24 00:01:06,860 --> 00:01:07,943 Yani oldukça basit. 25 00:01:07,943 --> 00:01:09,470 Bu anlamıyla ne diyor yok. 26 00:01:09,470 --> 00:01:12,210 Ve Scratch içinde, isterseniz Orada daha fazla puzzle parçaları tıka basa, 27 00:01:12,210 --> 00:01:13,950 parça sığacak şekilde büyüyecektir. 28 00:01:13,950 --> 00:01:16,790 Ve biz C göreceğiz ki Biz de aynı şeyi yapabiliriz. 29 00:01:16,790 --> 00:01:20,000 >> Döngüsünün bir başka tipi, ancak, Scratch sonsuza kadar olabilir, 30 00:01:20,000 --> 00:01:21,820 ya da herhangi bir sayıda bulunuyor Diğer yaklaşımlar. 31 00:01:21,820 --> 00:01:24,150 Ama bir daha alalım Bir yüzü ile kültürlü bir görünüm, 32 00:01:24,150 --> 00:01:27,402 Bu, büyük olasılıkla oldukça tanıdık var daha genel olarak döngüler. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Bir şey bilgisayarlar olduğunu 34 00:01:29,110 --> 00:01:31,860 olduğunu gerçekten iyi komutları tekrarı. 35 00:01:31,860 --> 00:01:33,910 Bir kişi olarak, olsun istiyorum gerçekten sıkıldım eğer 36 00:01:33,910 --> 00:01:36,730 Aynı şeyi yapmak zorunda Arka arkaya birçok kez. 37 00:01:36,730 --> 00:01:40,530 Ama bilgisayar aynı şeyi yapabilir milyonlarca kez veya hatta milyarlarca, 38 00:01:40,530 --> 00:01:43,290 ve bıkmak ve mümkün olmayacak Gerçekten de bu yürütmek için. 39 00:01:43,290 --> 00:01:45,650 >> Örneğin, eğer öyleyse ben herkes dilemek istedim 40 00:01:45,650 --> 00:01:48,840 Facebook mutlu doğum günü Onlara bir e-posta göndererek, 41 00:01:48,840 --> 00:01:51,550 daha bir daha beni sürebilir yüzyıl aslında yazmak için 42 00:01:51,550 --> 00:01:53,000 herkese bu e-postaların hepsi. 43 00:01:53,000 --> 00:01:57,780 Kod sadece birkaç satır Ama can Bir sistem herkese bir e-posta göndermek zorunda 44 00:01:57,780 --> 00:01:59,930 Facebook isteyen üzerinde Onları mutlu yıllar. 45 00:01:59,930 --> 00:02:02,730 Bu yüzden döngüler ne ve neden they değerli ve bir şey 46 00:02:02,730 --> 00:02:04,740 Bu bilgisayarlar çok iyi yapabilirsiniz. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. MALAN: Yani eğer Eğer alıcı oldum 48 00:02:05,630 --> 00:02:07,820 CS50 en bazı ve Geç dropbox uzay, 49 00:02:07,820 --> 00:02:10,590 Bu tam aslında ne Oldukça böyle bir kod kullanarak yapın. 50 00:02:10,590 --> 00:02:12,600 Biz aslında bir büyük var elektronik tablo içine 51 00:02:12,600 --> 00:02:15,016 millet giren edilmiş onların isim ve e-posta adresleri. 52 00:02:15,016 --> 00:02:18,160 Ve biz kod bir nebze yazdı Bu adresleri üzerinden yineleme yapabilirsiniz 53 00:02:18,160 --> 00:02:21,860 ve benzersiz adresleri tükürmek durumda herkes birden çok kez sundu. 54 00:02:21,860 --> 00:02:25,120 Ve sonra, biz bir göndermek CS50 en bot e-posta otomatik, 55 00:02:25,120 --> 00:02:27,190 kupon kodu dahil. 56 00:02:27,190 --> 00:02:29,290 >> Şimdi de baktı Bu son kez inşa. 57 00:02:29,290 --> 00:02:33,100 Ve bu bir özel olduğunu Neyin örneği? 58 00:02:33,100 --> 00:02:35,050 Yani, evet, bir Boole ifadesi. 59 00:02:35,050 --> 00:02:37,050 Ve şekil kastedilen bu kadar iyi yakalamak için. 60 00:02:37,050 --> 00:02:39,966 Tüm bu sorular doğru veya yanlış Scratch formu 61 00:02:39,966 --> 00:02:41,590 Böyle küçük bir şey bakacağız. 62 00:02:41,590 --> 00:02:43,200 Ve biz bu Boole ifadesi diyoruz. 63 00:02:43,200 --> 00:02:46,170 Bu gerçekten doğru ya da yanlış olduğunu, evet ya da hayır. 64 00:02:46,170 --> 00:02:49,150 Bir soruyu yanıtlarken bir yoludur. 65 00:02:49,150 --> 00:02:52,420 >> Ve arada bu Boole kullanabilirsiniz yapıları içinde ifadeleri 66 00:02:52,420 --> 00:02:54,720 arasında olan, bu gibi Elbette koşulları 67 00:02:54,720 --> 00:02:57,259 veya şube, meşhur yol çatal. 68 00:02:57,259 --> 00:02:59,550 Ve onlar sadece bakabilirsiniz Bu gibi ama onlar da can 69 00:02:59,550 --> 00:03:02,080 Onlarla birinin ilişkili olması. 70 00:03:02,080 --> 00:03:05,820 Ve aslında üç yolu olabilir yol çatal veya dört yollu çatal 71 00:03:05,820 --> 00:03:08,340 yol, sadece tarafından Bunları yuvalama, 72 00:03:08,340 --> 00:03:10,510 Eğer Scratch göreceğiniz gibi Henüz varsa. 73 00:03:10,510 --> 00:03:13,550 Ve siz de C yapabileceğiniz gibi. 74 00:03:13,550 --> 00:03:16,810 >> En başka genelci atalım yanı sıra, bir alumnist bakmak kim 75 00:03:16,810 --> 00:03:21,490 farklı bir yaklaşım sunmak olabilir koşulları denilen bu şeyler. 76 00:03:21,490 --> 00:03:24,060 >> BILL GATES: İnsanlar yapmak kararlar her gün. 77 00:03:24,060 --> 00:03:27,530 Örneğin, size dışına gitmeden önce tür, diyor bir if deyimi var 78 00:03:27,530 --> 00:03:31,480 daha sonra yağıyor eğer ceketimi almak gerekir. 79 00:03:31,480 --> 00:03:36,820 Ve bilgisayarlarınız kez şaşırtıcı , tabloların bu tür karar 80 00:03:36,820 --> 00:03:42,280 Onlar güvenilir yürütebilirsiniz ki inanılmaz hızda böyle şeyler. 81 00:03:42,280 --> 00:03:48,240 Ve böylece bir bilgisayar programı gerçekten matematik ve bazı biraz olduğunu 82 00:03:48,240 --> 00:03:53,050 tablolarda olduğu durumda karar alır. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. MALAN: Yani Bildiğiniz, o oldu 84 00:03:55,020 --> 00:03:57,880 Bill Gates gibi millet, Paul Allen, ve diğerleri 85 00:03:57,880 --> 00:04:00,240 Gerçekten başladı ki kişisel bilgisayar sözde 86 00:04:00,240 --> 00:04:01,990 devrim birkaç yıl önce. 87 00:04:01,990 --> 00:04:04,140 Biz dalış önce, düşünce Bazı administrivia içine 88 00:04:04,140 --> 00:04:09,920 Biz Albuquerque bir masal ilgili ediyorum Natural History New Mexico müzesi 89 00:04:09,920 --> 00:04:13,650 ve bilim nerede Bill Gates bazı ' ve Paul Allen'ın ilk hikayeleri 90 00:04:13,650 --> 00:04:17,470 Şimdi var nasıl anlatılıyor Bugünün PC'ler ve Mac'ler ve daha fazlası. 91 00:04:17,470 --> 00:04:22,390 Bunun için olsa da, biz iki gönüllüye ihtiyacım var kim çok iyi anlatım sesler var 92 00:04:22,390 --> 00:04:23,735 Bir komut dosyası yüksek sesle okumak için. 93 00:04:23,735 --> 00:04:25,530 >> Pekala, nasıl oraya hakkında. 94 00:04:25,530 --> 00:04:26,120 Hadi gel. 95 00:04:26,120 --> 00:04:27,770 Ve nasıl ön hakkında burada. 96 00:04:27,770 --> 00:04:28,340 Aşağı gel. 97 00:04:28,340 --> 00:04:29,600 Burada yer almak. 98 00:04:29,600 --> 00:04:32,444 Siz gelip olarak, bir çift idari duyurular. 99 00:04:32,444 --> 00:04:34,360 kesit, süreç Bir bölüm seçme, 100 00:04:34,360 --> 00:04:36,068 Bu başlayacaktır Cuma'ya Çarşamba. 101 00:04:36,068 --> 00:04:38,400 Bu konuda daha fazla bu geliyor Derste Çarşamba. 102 00:04:38,400 --> 00:04:41,770 >> Süper bölümler, bu arada, vardır önümüzdeki hafta sunuyoruz şey 103 00:04:41,770 --> 00:04:45,310 bu sayede tüm sınıf davet edilir oldukça büyük ölçüde katılma 104 00:04:45,310 --> 00:04:47,690 bölümler, daha rahat bir, bir daha az rahat. 105 00:04:47,690 --> 00:04:51,340 Ve biz ayrıntılar açıklayacak Bunun yanı sıra, daha sonra bu hafta. 106 00:04:51,340 --> 00:04:53,310 >> Arada bölümleri, kendileri, başlayacak 107 00:04:53,310 --> 00:04:57,241 Haftanın tabii üç, sıfır endeksi, o hangi birkaç hafta demektir 108 00:04:57,241 --> 00:04:57,740 dışarı. 109 00:04:57,740 --> 00:04:58,450 Yani endişe etmeyin. 110 00:04:58,450 --> 00:05:01,014 Henüz cevapsız değil bu doğrultuda bir şey. 111 00:05:01,014 --> 00:05:03,930 Bu arada arada, eğer idari herhangi bir sorunuz varsa, 112 00:05:03,930 --> 00:05:08,120 Kendimi ve Devon ve Gabe e-posta ve Rob burada bu adreste. 113 00:05:08,120 --> 00:05:10,320 >> Son olarak, bir sorun ortaya 0 üzerinden, tabii ki,. 114 00:05:10,320 --> 00:05:12,320 Bunu fark etmişsinizdir dersin web sitesinde. 115 00:05:12,320 --> 00:05:14,840 Bu size sunmalıdır soruların tüm cevapları 116 00:05:14,840 --> 00:05:18,250 Yol için birlikte olabilir Sorun seti ile başlarken. 117 00:05:18,250 --> 00:05:21,430 Ama kendinizi bulursanız yardımcı bir el ihtiyacı olan, 118 00:05:21,430 --> 00:05:25,020 Tüm yollarla ofis saatleri katılmak, Pazartesi, Salı, Çarşamba, Perşembe 119 00:05:25,020 --> 00:05:27,290 akşam bu hafta Dört yemek salonlarında. 120 00:05:27,290 --> 00:05:31,650 Hususlarla orada o URL'yi bakın ofis saatleri olacaktır nerede. 121 00:05:31,650 --> 00:05:34,000 >> Şimdi görüşelim bizim iki kişi bugün burada. 122 00:05:34,000 --> 00:05:34,740 Adınız ne? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> DAVID J. MALAN: Jay Paul, tanıştığımıza memnun oldum. 125 00:05:36,880 --> 00:05:37,330 >> HIKARI: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> DAVID J. MALAN: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> HIKARI: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> DAVID J. MALAN: Hikari. 129 00:05:38,810 --> 00:05:39,790 De nice to meet you. 130 00:05:39,790 --> 00:05:42,123 Jay Paul ve Hikari var Bu müziği bunların ön 131 00:05:42,123 --> 00:05:45,100 Ben basılmış iki komut duruyor New Mexico bu sabah dışarı 132 00:05:45,100 --> 00:05:46,692 Doğa Tarihi ve Bilim Müzesi. 133 00:05:46,692 --> 00:05:48,400 Ve ben düşündüm Ben havai yapmak istiyorum 134 00:05:48,400 --> 00:05:52,830 senin okunmasının eşlik eder komut ve bu tarihin 135 00:05:52,830 --> 00:05:54,700 Bazı görsel imgeler, hiçbir sürpriz. 136 00:05:54,700 --> 00:05:57,512 >> Ve ne önceden yaptık senin senaryo üzerinde prehighlight edilir 137 00:05:57,512 --> 00:05:59,470 Okumak ne, ve okumak ne. 138 00:05:59,470 --> 00:06:00,920 Ve biz aslında edeceğiz Sadece alternatif paragraflar. 139 00:06:00,920 --> 00:06:03,211 Eğer olabilir gibi Yani çok var İngilizce dersinde yapmış. 140 00:06:03,211 --> 00:06:06,875 Bu gerçekten seyirci mecbur oluyor Burada masal inanmak. 141 00:06:06,875 --> 00:06:07,600 Olur mu? 142 00:06:07,600 --> 00:06:13,272 Yani burada hikaye bir var, bir TEMEL, ve Cambridge başlar. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Bu kış, 1974 oldu, Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 nerede kışlar soğuk olabilir. 145 00:06:20,240 --> 00:06:22,800 Bir sakallı, uzun saçlı üniversite terk adında 146 00:06:22,800 --> 00:06:27,280 Paul Allen Harvard genelinde yorucu oldu Düşünceye dalmış Meydanı. 147 00:06:27,280 --> 00:06:31,050 O günlerde Onun temel uğraşı , nasıl onun arkadaşı, Bill Gates almak oldu 148 00:06:31,050 --> 00:06:34,974 okulu bırakıp gitmek Onunla işin içine. 149 00:06:34,974 --> 00:06:37,890 HIKARI: İki çoktan gitmişti iş girişimler bir numara ile 150 00:06:37,890 --> 00:06:40,850 Birlikte, Lakeside başlayan Seattle nerede okul 151 00:06:40,850 --> 00:06:45,220 onlar ücretsiz bilgisayar zamanında ödendi Yerel zamanda PDP-10 bilgisayarınızı test 152 00:06:45,220 --> 00:06:46,580 şirket paylaşımı. 153 00:06:46,580 --> 00:06:50,930 En son planı çıkmak olmuştu Okul ve bir yazılım şirketi oluştururlar. 154 00:06:50,930 --> 00:06:53,440 Allen Washington bıraktığı Devlet Üniversitesi. 155 00:06:53,440 --> 00:06:58,380 Ama son dakikada, Kapıdaki Harvard sopa ile karar verdi. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: O gün, Harvard geçiş Kare, Allen, Ocak benekli 157 00:07:02,080 --> 00:07:07,530 Popüler Elektronik 1975 sorunu toprak durdurma başlığı ile, 158 00:07:07,530 --> 00:07:11,900 Dünyanın İlk Minicomputer Seti Ticari Modeller Rival. 159 00:07:11,900 --> 00:07:14,430 Başlık oldu altında Küçük bir kutu bir resim 160 00:07:14,430 --> 00:07:16,160 ışıkları ve anahtarları ile süslenmiş. 161 00:07:16,160 --> 00:07:19,770 Bu 8800 MITS Altair denirdi. 162 00:07:19,770 --> 00:07:24,100 Ve Allen bu olduğunu biliyordu ne O arıyor olmuştu. 163 00:07:24,100 --> 00:07:26,350 >> HIKARI: tartışma Günleri izledi. 164 00:07:26,350 --> 00:07:30,170 Allen ve Gates, anladım Altair önemi. 165 00:07:30,170 --> 00:07:32,480 Bunlar genellikle konuştuk mikroişlemciler hakkında 166 00:07:32,480 --> 00:07:35,250 ve ne görmek bekliyorlardı Onlarla bitmiş olacaktır. 167 00:07:35,250 --> 00:07:39,770 Şimdi bir mini kiti oldu Popüler Electronics kapağı. 168 00:07:39,770 --> 00:07:42,830 Görünüşe göre henüz yazılım vardı. 169 00:07:42,830 --> 00:07:46,830 Onlar bir ulus hayal programcılar MITS üzerine inen. 170 00:07:46,830 --> 00:07:49,590 Ve bu yüzden, Ed Roberts denilen Şirketin başkanı, 171 00:07:49,590 --> 00:07:53,330 Bir sürümüne sahip olduğunu iddia eden BASIC programlama dili neredeyse hazır 172 00:07:53,330 --> 00:07:54,710 Altair için. 173 00:07:54,710 --> 00:07:55,570 Onlar değil mi. 174 00:07:55,570 --> 00:07:58,910 Ve Roberts onlar değildi bilinen gerekir. 175 00:07:58,910 --> 00:08:03,170 O 10 aramaları bir gün başlamıştı BASIC neredeyse hazır vardı insanlar. 176 00:08:03,170 --> 00:08:05,570 Ve onun stok yanıtı "ilk kişi oldu 177 00:08:05,570 --> 00:08:11,090 kim bir çalışma ile gösterir TEMEL sözleşme alır. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Kapılar ve Allen Bir Altair görmemişti. 179 00:08:13,910 --> 00:08:17,600 Onlar bile görmemişti Intel 8080 mikroişlemci 180 00:08:17,600 --> 00:08:19,060 Altair kalbinde. 181 00:08:19,060 --> 00:08:21,470 Ama birkaç yıl önce Allen programı yazmıştı 182 00:08:21,470 --> 00:08:25,220 benzetilmiş bir anabilgisayar bilgisayarda Bir önceki Intel operasyonu 183 00:08:25,220 --> 00:08:26,217 mikro-işlemci. 184 00:08:26,217 --> 00:08:28,300 Ve onlar bu sefer Aynı şeyi yapardı. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> HIKARI: Bir Intel ile Onun yanında 8080 manuel, 187 00:08:34,380 --> 00:08:37,770 Allen oturdu Harvard PDP-10 bilgisayar 188 00:08:37,770 --> 00:08:42,010 ve emülatör ve yazılım yazdı gerekli araçları programlama yapmak için. 189 00:08:42,010 --> 00:08:45,820 Bu arada Gates, gidiş durdu sınıflar ve kendini adamış 190 00:08:45,820 --> 00:08:48,120 BASIC tasarlamaya, Her hile kullanarak 191 00:08:48,120 --> 00:08:53,130 O boyutunu almak biliyordu aşağı 4 kilobayt altında. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Albuquerque Out, Ed Roberts Gates bir çağrı var 193 00:08:55,870 --> 00:08:59,754 hakkında ayrıntılı bilgi için soran Altair belirli rutinleri ele. 194 00:08:59,754 --> 00:09:01,170 Hiç kimse önce sormuştu. 195 00:09:01,170 --> 00:09:02,670 Ve Roberts ilgi almaya başladı. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI: gelişmesiyle birlikte araçları ve tasarım hazır, 198 00:09:07,970 --> 00:09:10,780 Gates, ve Allen yazdı PDP-10 kod, 199 00:09:10,780 --> 00:09:16,060 Başka bir Harvard öğrencisi askere, Monte Davidoff, matematik rutinleri yazmak için. 200 00:09:16,060 --> 00:09:19,450 Son bir gece sonra programlama, Allen uçağa bindi 201 00:09:19,450 --> 00:09:22,970 MITS için onların TEMEL teslim etmek. 202 00:09:22,970 --> 00:09:25,800 O uçak endişe atlatmayı geçirdi. 203 00:09:25,800 --> 00:09:28,490 Ve geri Cambridge Gates, endişe verici. 204 00:09:28,490 --> 00:09:32,100 Onlar test vardı onların TEMEL ve bu emülatör üzerinde çalışmış. 205 00:09:32,100 --> 00:09:35,444 Ama emülatörü yanlış ne olur? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: uçağı olarak , Albuquerque yaklaştı 207 00:09:37,360 --> 00:09:40,070 Allen fark onların TEMEL, şimdi düzgünce yer 208 00:09:40,070 --> 00:09:42,460 küçük bir rulo , kağıt bant olur delikli 209 00:09:42,460 --> 00:09:44,970 Ayrı bir olmadan işe yaramaz olması Program, bu, bir yükleyici adlı 210 00:09:44,970 --> 00:09:47,550 nasıl Altair söylerdim kağıt şerit sağlığını okumak için 211 00:09:47,550 --> 00:09:49,620 teletype makinesine beslenir. 212 00:09:49,620 --> 00:09:52,970 O defter çıkardı ve hızlı bir şekilde Bir yükleyici programı aşağı karalanmış 213 00:09:52,970 --> 00:09:56,819 Assembly dili, daha sonra elle 1 ve 0'ların içine tercüme 214 00:09:56,819 --> 00:09:57,985 Altair anlamak istiyorum. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> HIKARI: Allen bekliyordum bir temiz, küçük, yüksek teknoloji şirketi 217 00:10:03,830 --> 00:10:05,470 iş takım elbiseli erkekler tarafından çalıştırın. 218 00:10:05,470 --> 00:10:09,210 Roberts tanıştığımda Yani o şaşırdı Onu havaalanında bir ahır gibi bakıyor 219 00:10:09,210 --> 00:10:10,270 el. 220 00:10:10,270 --> 00:10:12,070 Roberts şaşırdı. 221 00:10:12,070 --> 00:10:16,340 O Harvard düştü pahalı bir otelde programcı, 222 00:10:16,340 --> 00:10:20,790 Allen itiraf etmek zorunda o oda göze alamazdı. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITs, kendisi oldu Tozlu şerit alışveriş merkezinde bulunan. 224 00:10:24,510 --> 00:10:27,040 Bir darmadağın İçi tezgah bir Altair oldu 225 00:10:27,040 --> 00:10:30,390 5 kilobayt ile yüklü Bellek ve bir kablo ile bağlı 226 00:10:30,390 --> 00:10:32,030 Bir teletype makineye. 227 00:10:32,030 --> 00:10:37,200 Roberts ve Baş Mühendis, Bill Yates, ümitle bekledi 228 00:10:37,200 --> 00:10:40,660 Allen onun yükleyici değiştiriliyor gibi Altair içine programı. 229 00:10:40,660 --> 00:10:44,980 Tele o çekti chugging başladı teyp okuyucu ile kağıt şerit. 230 00:10:44,980 --> 00:10:47,215 Belki 15 dakika sürdü Programı yüklemek için. 231 00:10:47,215 --> 00:10:52,110 Sonra teletype aniden baskılı bir Bellek istemi, daha sonra hazır istemi, 232 00:10:52,110 --> 00:10:55,340 ve Allen yazarak başladı Birkaç test komutları. 233 00:10:55,340 --> 00:10:57,400 Herkesin hayretle için, Yazılım çalıştı. 234 00:10:57,400 --> 00:10:58,525 Böcek elbette vardı. 235 00:10:58,525 --> 00:11:02,070 Ama önemli olan o amele oldu. 236 00:11:02,070 --> 00:11:06,570 >> HIKARI: Daha sonra, yolda bir Pancho en az 3,00 $ öğle yemeği, bir yaban arısı uçtu 237 00:11:06,570 --> 00:11:10,470 kamyonetin penceresinde kamyon ve koluna Allen sokuldu. 238 00:11:10,470 --> 00:11:13,070 Ama bu nokta hiçbir şey ruh yağma. 239 00:11:13,070 --> 00:11:17,210 Altair şimdi BASIC vardı Bir ev için ilk ticari yazılım 240 00:11:17,210 --> 00:11:23,260 Paul Allen ve Bill tarafından yapılan bilgisayar, Gates Microsoft gibi iş yapıyor. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. MALAN: Birçok Bizim iki okuyucu sayesinde. 242 00:11:25,336 --> 00:11:30,690 >> [Alkış] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. MALAN: Şimdi Eğer seçim var, 244 00:11:32,520 --> 00:11:35,880 Eğer bir ışıltılı bir, ayrılmadan önce ya oh dark-- bir kızdırma, 245 00:11:35,880 --> 00:11:40,810 bir saniye bekleyin, ışıltılı bekle-- ve karanlık fil bir kızdırma 246 00:11:40,810 --> 00:11:42,534 CS50 kendi Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 HIKARI: Ah, teşekkür ederim. 248 00:11:43,450 --> 00:11:45,324 David J. MALAN: Tüm Doğru, çok teşekkür ederim. 249 00:11:45,324 --> 00:11:49,855 [Alkış] 250 00:11:49,855 --> 00:11:51,105 DAVID J. MALAN: Yani gerçek bir hikaye. 251 00:11:51,105 --> 00:11:54,380 Bu Bunların hepsi demek ki Makineler ve kolaylığı hangi ile biz 252 00:11:54,380 --> 00:11:56,270 Şimdi bunları kullanmak ve almak verilen, gerçekten 253 00:11:56,270 --> 00:12:00,070 Burada sadece birkaç adım başladı Bu gerçek tiyatrodan. 254 00:12:00,070 --> 00:12:03,930 Ve şimdi, bugün, sen oldum değil, Bu Maxwell Dworkin, bilgisayar 255 00:12:03,930 --> 00:12:05,810 bilimler binası, Ayrıca köşede. 256 00:12:05,810 --> 00:12:09,760 Ve bu ikinci katta Bina üç sayfaları asmak yok 257 00:12:09,760 --> 00:12:12,740 özgün kaynak kodundan o Bill Gates ve Paul Allen yazdı. 258 00:12:12,740 --> 00:12:14,770 Aslında, kullanım eğer Büyütmek Eğer sadece görebilirsiniz içinde 259 00:12:14,770 --> 00:12:17,350 onların isimleri Orijinal tipi, aynı zamanda 260 00:12:17,350 --> 00:12:22,100 onlar süslenmiş kendi imzaları Birkaç yıl önce onlar son ziyaret. 261 00:12:22,100 --> 00:12:25,800 >> Ama özellikle zorlayıcı ne oldu Bu konuda onlar yapmak için yola ne 262 00:12:25,800 --> 00:12:29,760 verecek bir program yazmak oldu yazmak için başka insanları sağlayacak 263 00:12:29,760 --> 00:12:30,950 kendi programları. 264 00:12:30,950 --> 00:12:34,280 Zamanda tüm orada MITS tarafından yapılan bu Altair makinesi. 265 00:12:34,280 --> 00:12:40,020 Ve onlar gerekli tüm bazı yoluydu hobi ve insanlar için kolay yapma 266 00:12:40,020 --> 00:12:45,300 Aslında programı bu odada bizim gibi bu mutlaka anlamadan 267 00:12:45,300 --> 00:12:49,060 Meclis kodu veya makine kodu veya Tanrı, 0 ve 1'lerden korusun. 268 00:12:49,060 --> 00:12:51,190 Biz programcılar gibi Bu odada olanlar, biz 269 00:12:51,190 --> 00:12:54,070 ifade edebilmek olmak istiyorum Kendimizi sahte kodu gibi çok fazla 270 00:12:54,070 --> 00:12:57,330 biraz daha sirke olsa bile Geçen hafta konuştuk daha seçici. 271 00:12:57,330 --> 00:13:00,970 Biz bu gibi bir kod yazmak istemiyorum, Hangi Paul Allen ve Bill Gates, yaptı. 272 00:13:00,970 --> 00:13:04,850 Biz, bunun yerine, kod yazmak istiyorum biraz daha kullanıcı dostu görünüyor. 273 00:13:04,850 --> 00:13:07,150 >> Şimdi bu BASIC olarak bilinen bir dildir. 274 00:13:07,150 --> 00:13:11,497 Ve satır numaraları vardır ne sadece kod satırlarını numara kullanın 275 00:13:11,497 --> 00:13:12,330 Bu sizi yazıyoruz. 276 00:13:12,330 --> 00:13:14,038 Biz bile gerek yok Bu günlerde bunu. 277 00:13:14,038 --> 00:13:16,060 Ama burada görebilirsiniz nasıl BASKI "merhaba dünya" 278 00:13:16,060 --> 00:13:18,660 gerçekten muhtemelen sadece basacaktır. 279 00:13:18,660 --> 00:13:22,710 Ve böylece ne Bill ve Paul yaptım oldu Bu gibi bir kod yazmak için insanları güçlendirmek 280 00:13:22,710 --> 00:13:27,240 yerine bakmak durumunda of-- Bilgisayar bilimi böyle bir kod wall--. 281 00:13:27,240 --> 00:13:29,290 >> Aslında, yakın zamanda CS50 bir fırsat vardı 282 00:13:29,290 --> 00:13:32,540 Profesör Harry Lewis ile oturup Bilgisayar Bilimleri bölümünde, kim 283 00:13:32,540 --> 00:13:34,640 Aslında Bill öğretti Birkaç yıl önce Gates 284 00:13:34,640 --> 00:13:38,460 ve önce burada duruyor alıntılar bu üç sayfa. 285 00:13:38,460 --> 00:13:39,560 Bir göz atalım. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Burada ne var bir olduğunu yazılım erken parçasının listesi 287 00:13:45,520 --> 00:13:50,240 Bill Gates ve Paul tarafından yazılmış Allen, Microsoft kurucuları. 288 00:13:50,240 --> 00:13:52,570 Yani kod ilginç iki nedenden dolayı. 289 00:13:52,570 --> 00:13:55,480 Her şeyden önce, bu oldu Microsoft'un ilk ürünü, 290 00:13:55,480 --> 00:14:01,810 için bir tercüman oldu BASIC programlama dili. 291 00:14:01,810 --> 00:14:04,940 Ve ikincisi, bu oldu ilk girişimlerden biri 292 00:14:04,940 --> 00:14:10,580 yani sıradan bir tercüman oluşturmak için insanların kişisel bilgisayarları kullanabilirsiniz. 293 00:14:10,580 --> 00:14:12,670 >> Peki Bill Gates oldu bir Harvard'da lisans. 294 00:14:12,670 --> 00:14:14,820 Ben 1974 yılında Harvard'da öğretim başladı. 295 00:14:14,820 --> 00:14:16,560 Bu 1975 yılında yapılmıştır. 296 00:14:16,560 --> 00:14:20,180 Yani kariyerinin erken oldu ve erken benim kariyerimde. 297 00:14:20,180 --> 00:14:23,790 Ben aslında Bill öğretti Bu sefer bir ders. 298 00:14:23,790 --> 00:14:27,130 Paul Allen değildi Harvard öğrencisi, ama o 299 00:14:27,130 --> 00:14:31,020 Bir lise olmuştu Bill Gates sınıf arkadaşı. 300 00:14:31,020 --> 00:14:33,740 Gelip bakarsanız liste, sen olacak 301 00:14:33,740 --> 00:14:36,230 Aslında üçüncü bir bulabilirsiniz adı, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 kim Gates'in sınıf arkadaşıydı Burada Harvard'da. 303 00:14:39,260 --> 00:14:41,340 >> Tamam, işte bir var Burada ilginç açıklama kadar. 304 00:14:41,340 --> 00:14:47,150 Bu 4K kare kökünü silebilirsiniz "diyor ama döngüler hala çalışması gerektiğini için. " 305 00:14:47,150 --> 00:14:53,080 Tamam, bu yüzden ne demek olduğunu orada olduğunu Bu programı derlemek için iki yol vardı. 306 00:14:53,080 --> 00:14:57,860 Biri sürümü çalıştırmak oldu Bu Altair bilgisayar 307 00:14:57,860 --> 00:15:04,310 Bu sadece 4K kelime vardı hafıza, 4096 kelimeler. 308 00:15:04,310 --> 00:15:07,050 Ama büyük sürüm 8K vardı. 309 00:15:07,050 --> 00:15:09,770 Ve ne yani bu diyor olduğunu Bu 4K versiyonu 310 00:15:09,770 --> 00:15:12,770 Bazı silmek zorunda kod uygun hale getirmek için. 311 00:15:12,770 --> 00:15:14,790 Ve şeylerden biri silinmiş olacaktır 312 00:15:14,790 --> 00:15:16,290 karekök rutin olacaktır. 313 00:15:16,290 --> 00:15:20,360 Ama görünüşe göre döngüler hala gerektiği için 314 00:15:20,360 --> 00:15:26,392 aşağı derleme yaparken bile işe bilgisayarın sadece 4K sürümü için. 315 00:15:26,392 --> 00:15:29,350 DAVID J. MALAN: temalar Yani bir, Biz bilgisayar bilimi göreceğimiz gibi, 316 00:15:29,350 --> 00:15:31,430 Bu kavram olduğunu katman ve soyutlama, 317 00:15:31,430 --> 00:15:34,670 ve gerçekten omuzlar üzerinde duran Bizden önce gelmiş millet, değil 318 00:15:34,670 --> 00:15:37,890 Bill Gates aksine bazı Burada ve Paul Allen anlatı. 319 00:15:37,890 --> 00:15:40,080 Ve bu ne demektir biz alabilir ki bugün 320 00:15:40,080 --> 00:15:43,490 şeyler aslında verilen bu Bize kod yazmak daha kolay. 321 00:15:43,490 --> 00:15:47,170 Cuma günü yaptığı açıklamada Nitekim kodudur daha teknik kaynak kodu olarak da bilinir. 322 00:15:47,170 --> 00:15:52,210 Ve sözdizimi gibi bu İngilizce var Bu daha doğru ve daha iyi tanımlanmış bulunuyor 323 00:15:52,210 --> 00:15:55,480 sözde kod gibi bir şey daha, için hangi resmi bir tanım yoktur. 324 00:15:55,480 --> 00:15:58,320 >> Ve bugün gidiyoruz odaklanmak kaynak kodu 325 00:15:58,320 --> 00:16:01,010 Bu, bu gibi görünüyor hangi kuşkusuz ilk bakışta 326 00:16:01,010 --> 00:16:02,690 Tamamen şifreli görünüyor. 327 00:16:02,690 --> 00:16:08,540 Ve açıkçası, bu şekilde daha estetik var Karmaşık altta yatan bir program daha. 328 00:16:08,540 --> 00:16:13,300 Tüm bu program yapar hatırlama, biz ne dedin edilir? 329 00:16:13,300 --> 00:16:14,990 Sadece "merhaba dünya." Yazdırır 330 00:16:14,990 --> 00:16:19,600 Ve henüz biz ihtiyacımız şeyler her bakmak Bu çok basit bir ifade etrafına sarmak için. 331 00:16:19,600 --> 00:16:21,750 Ama hepsi uzun zaman önce Bu çizgiler ve daha 332 00:16:21,750 --> 00:16:24,800 Size daha iyi mantıklı olacaktır. 333 00:16:24,800 --> 00:16:26,940 >> Ve akış aşağıdaki gibidir. 334 00:16:26,940 --> 00:16:31,220 Ne bizim emrinde ihtiyacınız kaynak gibi, kod almaktır 335 00:16:31,220 --> 00:16:32,340 biz sadece gördüğümüz kodu. 336 00:16:32,340 --> 00:16:35,060 Ve yeni bir program gerekiyor Bunu aracılığıyla çalıştırmak için. 337 00:16:35,060 --> 00:16:39,130 Biz can algoritmaları gerekir Bu gibi kaynak kodu dönüştürmek, 338 00:16:39,130 --> 00:16:41,932 Nesne kodu, 0 ve 1 içine. 339 00:16:41,932 --> 00:16:43,890 Diğer bir deyişle, Bugün öğrenmek için gidiyoruz 340 00:16:43,890 --> 00:16:46,620 Bu nasıl, yazma kaynak kodu kontör, 341 00:16:46,620 --> 00:16:49,930 Bir özel girdi olarak geçmek Bir derleyici olarak bilinen program, 342 00:16:49,930 --> 00:16:52,140 ve biz nesne kodu üretmek için gidiyoruz. 343 00:16:52,140 --> 00:16:54,600 Hangi sadece bir fantezi yoludur Biz bir şey alacağını söyledi 344 00:16:54,600 --> 00:16:58,350 bu gibi görünüyor, onu geçmek Bir derleyici denilen bir programa, 345 00:16:58,350 --> 00:17:01,210 Nesne kodu üreten bu gibi görünüyor. 346 00:17:01,210 --> 00:17:04,720 >> Peki bu tam anlamıyla 0 ve 1 desenleri 347 00:17:04,720 --> 00:17:08,550 Bir tarafından anlaşılmasını Intel, bilgisayar bu gün, 348 00:17:08,550 --> 00:17:12,480 CPU tarafından yorumlanır eğer, Bir bilgisayarın içinde beyinleri, 349 00:17:12,480 --> 00:17:16,130 kelimenin tam anlamıyla yazdırılır, Oldukça basit, "merhaba dünya." 350 00:17:16,130 --> 00:17:19,670 Şimdi sizden çok daha fazla 0 ve 1'lerden var Bunun için gerekli olabilir umut ediyorum. 351 00:17:19,670 --> 00:17:22,520 Biz inşa ediyoruz çünkü Ama bu karmaşıklık iyi bir anlaşma üzerinde 352 00:17:22,520 --> 00:17:24,270 verilen biz bundan böyle alabilir. 353 00:17:24,270 --> 00:17:27,869 Diğer bir deyişle, akıllı bir çok insan Bize serin araçlar bir sürü verdik 354 00:17:27,869 --> 00:17:32,480 ve güçlü yazılım hangi ile biz Şimdi kendi projelerini yapabilirsiniz. 355 00:17:32,480 --> 00:17:33,400 >> Yani başlayalım. 356 00:17:33,400 --> 00:17:36,640 Geçen Cuma, ve Oysa Sorun Set 0 bu hafta, 357 00:17:36,640 --> 00:17:39,000 Bir de oynuyor olacaksınız Bu gibi görünüyor dünya. 358 00:17:39,000 --> 00:17:42,180 Başlangıç ​​bugün ve Problem , Önümüzdeki hafta kodunu 1 ayarlayın 359 00:17:42,180 --> 00:17:45,410 biraz daha bakmak için gidiyor şifreli, ama işlevsel bir 360 00:17:45,410 --> 00:17:46,940 gidiş aynı olması. 361 00:17:46,940 --> 00:17:50,770 Yani haber, üst Scratch, bir Alt C Açıkçası Scratch 362 00:17:50,770 --> 00:17:52,780 çok daha fazla kullanıcı samimi ve ulaşılabilir. 363 00:17:52,780 --> 00:17:56,890 Ama şimdi görsel üst karşılaştırırsanız alt, bir 1-1 tür var 364 00:17:56,890 --> 00:17:59,690 arasındaki yazışmalar puzzle parçaları ve dil 365 00:17:59,690 --> 00:18:00,870 biz oynamak üzereyiz. 366 00:18:00,870 --> 00:18:04,420 Özellikle, demek Mavi bulmaca parçası kontör, 367 00:18:04,420 --> 00:18:08,370 ne anahtar kelimeyle görünüşte eşdeğer Bu dilde veya özel ifade 368 00:18:08,370 --> 00:18:09,062 C aradı? 369 00:18:09,062 --> 00:18:09,770 HEDEF KİTLE: Printf. 370 00:18:09,770 --> 00:18:10,728 DAVID J. MALAN: Printf. 371 00:18:10,728 --> 00:18:12,140 Yani biçimlendirilmiş baskı anlamına gelir. 372 00:18:12,140 --> 00:18:15,240 Ve bu sadece bir fantezi C printf söyleyerek yolu 373 00:18:15,240 --> 00:18:18,615 Bir açıklama veya bir işlevi olacak Bu ekranda bir şey yazdırır. 374 00:18:18,615 --> 00:18:19,990 Ekranda ne yazdırmak geliyor? 375 00:18:19,990 --> 00:18:23,627 Ne olursa olsun içinizde bunu söylemek Parantez içinde tırnak, bir. 376 00:18:23,627 --> 00:18:25,460 Yani yine, kuşkusuz, bir sürü şey var 377 00:18:25,460 --> 00:18:27,990 Aklınızda tutmanız gerektiğini, Parantez, tırnak, noktalı virgül, 378 00:18:27,990 --> 00:18:28,656 ve bir prosesle giderilmesidir. 379 00:18:28,656 --> 00:18:30,600 Ama hepsi tür noktası yanında. 380 00:18:30,600 --> 00:18:33,660 Şimdi ilginç paket olduğu Scratch diyelim bloğu 381 00:18:33,660 --> 00:18:37,520 hemen hemen eşdeğer olduğunu C. printf ifadesi 382 00:18:37,520 --> 00:18:41,390 >> Bu arada, sarı puzzle parçası kontör, yeşil bayrak tıklandığında, 383 00:18:41,390 --> 00:18:44,736 Muhtemelen eşdeğerdir Burada anahtar kelime ne? 384 00:18:44,736 --> 00:18:45,360 HEDEF KİTLE: Ana. 385 00:18:45,360 --> 00:18:46,359 DAVID J. MALAN: Yani ana. 386 00:18:46,359 --> 00:18:47,410 Belki, belki geçersiz, int. 387 00:18:47,410 --> 00:18:51,280 Ama benzeri sesler ana tür çok önemli ve gerçekten öyle. 388 00:18:51,280 --> 00:18:54,080 Yani yeşil bayrak tıklandığında Yine, bir, bulmaca parçası 389 00:18:54,080 --> 00:18:56,390 Bu başladı bir Tüm Scratch programı. 390 00:18:56,390 --> 00:19:02,140 Ama biz şimdi arayarak başlıyoruz Ana olarak bilinen ana, bu işlev. 391 00:19:02,140 --> 00:19:06,410 >> Şimdi bu arada biz olacak aşağıdaki gibi bu genelleme. 392 00:19:06,410 --> 00:19:08,780 Biz diyoruz bir işlev diyebilirsiniz. 393 00:19:08,780 --> 00:19:10,580 Ve görünebilir özellikle böyle. 394 00:19:10,580 --> 00:19:11,770 Peki, ne döngüler hakkında? 395 00:19:11,770 --> 00:19:16,540 Biz dönüştürme başlatmak istiyorsanız veya C Scratch daha çeviri, 396 00:19:16,540 --> 00:19:19,400 Burada bu şey görünüşte sadece "hello world" sonsuza kadar diyor. 397 00:19:19,400 --> 00:19:23,060 Yani bu ilişkilendirmek ise Scratch bir kedi ile komut, 398 00:19:23,060 --> 00:19:26,560 sadece söylemeye devam edecek karikatür balonu çeşit, 399 00:19:26,560 --> 00:19:29,922 "Merhaba, dünya merhaba dünya merhaba Dünya, "reklam nauseum, sonsuza dek. 400 00:19:29,922 --> 00:19:33,130 Biz benzer bir şey yapmak istiyorsanız, C biraz şifreli bakmaya gidiyor. 401 00:19:33,130 --> 00:19:35,463 Ama biz aynı elde edebilirsiniz olarak biz sonunda olacak, sonuçları 402 00:19:35,463 --> 00:19:36,861 Böyle sözdizimi ile öğrenmek. 403 00:19:36,861 --> 00:19:39,360 Ben, yine printf kullanmak için gidiyorum Çünkü günün sonunda 404 00:19:39,360 --> 00:19:42,040 Ben yazdırmak istiyorum "merhaba dünya." 405 00:19:42,040 --> 00:19:45,610 Ve görünüşe göre bir kullanıyorum sonsuza kadar değil kelime. 406 00:19:45,610 --> 00:19:47,320 Bunun yerine ise kelime. 407 00:19:47,320 --> 00:19:49,650 Ama sadece semantik olarak İngilizce, süre tür 408 00:19:49,650 --> 00:19:52,120 döngü veya döngüsünün bir tür işaret etmektedir. 409 00:19:52,120 --> 00:19:55,070 >> Yani olur C kullandığı kelime. 410 00:19:55,070 --> 00:20:00,700 Ve gerçek iken, niçin süre yok etkili bir sonsuza doğru demek? 411 00:20:00,700 --> 00:20:04,240 Peki, süre gibi biz yakında olacak daha takdir, 412 00:20:04,240 --> 00:20:08,140 Bunun yanında bu parantez vardır nerede bir Boole ifadesini koyabilirsiniz. 413 00:20:08,140 --> 00:20:11,360 Ve o kadar uzun ifadesi doğrudur, bu kod, 414 00:20:11,360 --> 00:20:14,750 Bu iki arasında gösterilen gibi kaşlı biz onları arayacağım gibi, 415 00:20:14,750 --> 00:20:16,880 sadece tekrar ve tekrar yayınlanmaya devam edecektir. 416 00:20:16,880 --> 00:20:18,410 >> Peki gerçek doğrudur. 417 00:20:18,410 --> 00:20:20,900 Yani gerçek araçlarla süre sadece sonsuza kadar bunu. 418 00:20:20,900 --> 00:20:23,480 Neredeyse bir aptal Kendinizi ifade etmek yaparız. 419 00:20:23,480 --> 00:20:26,590 Ama sonsuza dek yok oldu C. anahtar kelime süre vardı. 420 00:20:26,590 --> 00:20:29,390 Ve çok basit oldu Gerçek gibi Boole ifadesi. 421 00:20:29,390 --> 00:20:32,210 Ve böylece bu, biz, göreceğiz aynı sonucu elde edilir. 422 00:20:32,210 --> 00:20:33,890 >> Başka nasıl bir döngü uygulamak olabilir? 423 00:20:33,890 --> 00:20:36,980 Peki, Scratch size olabilir Belirli bir sayıda sert kod 424 00:20:36,980 --> 00:20:39,430 Burada döngü yineleme. 425 00:20:39,430 --> 00:20:43,210 Ve böylece tam olarak ne C bu sürümünde yapabilir, 426 00:20:43,210 --> 00:20:46,140 Biz var sayede döngü sözde. 427 00:20:46,140 --> 00:20:49,850 Ve burada döngü için gidiyor biraz cryptically, yineleme, 428 00:20:49,850 --> 00:20:54,100 yukarı değer 0 dan ancak en az 10. 429 00:20:54,100 --> 00:20:55,955 >> Şimdi Scratch değişkenleri. 430 00:20:55,955 --> 00:20:57,830 Sen sahip olmayabilir vesilesiyle bu kullanmak için. 431 00:20:57,830 --> 00:21:02,516 Ama genel olarak nokta, ne, Bir değişkenin geçen hafta dedin? 432 00:21:02,516 --> 00:21:03,015 Bu da ne? 433 00:21:03,015 --> 00:21:03,780 >> İZLEYİCİ: Puan. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. MALAN: işaret etmek? 435 00:21:05,200 --> 00:21:05,700 Ah, işaret. 436 00:21:05,700 --> 00:21:07,620 Tamam, puan kayıtlarını tutmak, Örneğin, bir oyun. 437 00:21:07,620 --> 00:21:09,510 Ya da daha genel yapıyor değişken ile ne? 438 00:21:09,510 --> 00:21:10,450 Bunların faydası nedir? 439 00:21:10,450 --> 00:21:10,825 >> İZLEYİCİ: Bellek. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. MALAN: Evet, yani bellek. 441 00:21:11,750 --> 00:21:13,000 Bu bir şey saklamak için. 442 00:21:13,000 --> 00:21:17,336 Ve aptal görsel I tür kullanılır son kez bu cam kase gibi oldu. 443 00:21:17,336 --> 00:21:19,710 Ve biz saklamak istedim Bir değişkenin içinde bir şey, 444 00:21:19,710 --> 00:21:21,918 Örneğin şu anda değer altı olduğu için orada 445 00:21:21,918 --> 00:21:23,450 Burada altı ping pong topları vardır. 446 00:21:23,450 --> 00:21:26,158 Bu depolama sadece bazı tür kap, davlumbaz altında 447 00:21:26,158 --> 00:21:30,030 bit, 0 ve 1 ile uygulanan, Ancak bir bilgisayar yapmak olur. 448 00:21:30,030 --> 00:21:32,900 >> Scratch içinde, Yani biz Bir değişken istiyorum, 449 00:21:32,900 --> 00:21:34,840 böyle bir turuncu bloğu kullanabilirsiniz. 450 00:21:34,840 --> 00:21:37,050 Biz bu sayacı arayacağım Bu özel durumda. 451 00:21:37,050 --> 00:21:38,890 Ben 0 olarak başlatıldı. 452 00:21:38,890 --> 00:21:41,080 Ve ben o ne o? 453 00:21:41,080 --> 00:21:44,780 Her zaman, sayaç demek ki eğer Eğer, Scratch o ile oynamak 454 00:21:44,780 --> 00:21:45,780 Sadece Scratch görürsünüz. 455 00:21:45,780 --> 00:21:49,920 Eğer koymak kedi ya da her türlü kostüm Onu söz konusu numarayı konuşacak. 456 00:21:49,920 --> 00:21:52,840 >> 1 ile değiştirme sayacı 1 arttırılmış gibi. 457 00:21:52,840 --> 00:21:56,580 Ve böylece bu gidiyor ne yani ne saymak? 458 00:21:56,580 --> 00:21:59,114 0 sonsuza til, ya da Kazı kırılana kadar, 459 00:21:59,114 --> 00:22:01,030 ya da dek tür izlerken ilgi kaybetmek 460 00:22:01,030 --> 00:22:02,650 o aslında güvenebilirsiniz ne kadar yüksek. 461 00:22:02,650 --> 00:22:04,800 >> Peki C bu dönüştürmek olabilir? 462 00:22:04,800 --> 00:22:06,480 Biraz şifreli bakmaya gidiyor. 463 00:22:06,480 --> 00:22:08,896 Fakat yine de, eğer her bakmak Bu hatların tek 464 00:22:08,896 --> 00:22:10,410 Genellikle serisinde onlar tür. 465 00:22:10,410 --> 00:22:13,526 Yani görünüşte gidiyor int C. bazı özel anlamı var 466 00:22:13,526 --> 00:22:14,400 Biz yine göreceğiz. 467 00:22:14,400 --> 00:22:15,810 Bir kenara gibi tamsayı anlamına gelir. 468 00:22:15,810 --> 00:22:16,990 Yani sadece numarayı demektir. 469 00:22:16,990 --> 00:22:18,920 Yani tipi var Ben istiyorum cam kase, bir 470 00:22:18,920 --> 00:22:21,120 Bu, numaralarını saklayabileceğiniz pong topları ping değil. 471 00:22:21,120 --> 00:22:25,520 Ve ben eşittir işareti kullanmak için gidiyorum o 0 değeri vardır atamak. 472 00:22:25,520 --> 00:22:29,440 Yani oldukça seti gibi sayaç 0, ancak C. 473 00:22:29,440 --> 00:22:32,840 >> Bu arada, doğru olmakla birlikte, oldu eşdeğer, tabii ki, sonsuza kadar, 474 00:22:32,840 --> 00:22:35,980 Biraz şifreli olsa bile, ve daha sonra küme parantezi içinde. 475 00:22:35,980 --> 00:22:39,188 Ve bu küme parantezi düşünebilirsiniz, hangi, klavyenizdeki yazabilirsiniz 476 00:22:39,188 --> 00:22:43,110 gerçekten eğrilik gibi olmak Scratch bu sarı döngü blokları. 477 00:22:43,110 --> 00:22:45,700 Bu kod birden fazla satır kucaklar. 478 00:22:45,700 --> 00:22:48,120 >> Printf elde ettiğini Şimdi korkutucu biraz çünkü ben 479 00:22:48,120 --> 00:22:51,120 sadece parantez içinde tırnak bakın. 480 00:22:51,120 --> 00:22:55,160 Ama başka ne yeni sözdizimsel bu örnekte? 481 00:22:55,160 --> 00:22:57,300 Yüzde d var. 482 00:22:57,300 --> 00:22:58,551 Sonra eğik N vardır. 483 00:22:58,551 --> 00:23:00,883 Hatta, daha önce gördünüz mü Ben söz vermedi gerçi. 484 00:23:00,883 --> 00:23:01,886 Sonra virgül var. 485 00:23:01,886 --> 00:23:03,010 Ve sonra bir sayaç var. 486 00:23:03,010 --> 00:23:05,010 >> Ama biz sadece bir göreceğimiz bu sadece o an 487 00:23:05,010 --> 00:23:09,080 Baskı a söyleyerek bir standart yolu "Ondalık sayı," alıntı, unquote, 488 00:23:09,080 --> 00:23:10,500 Bazı ondalık sayı. 489 00:23:10,500 --> 00:23:13,370 Ama sonra sana söyleyeceğim Bu ondalık sayı nedir. 490 00:23:13,370 --> 00:23:16,835 Bir virgül var aslında Yani Bu hat söyleyerek printf, 491 00:23:16,835 --> 00:23:18,710 go ahead ve baskı anlamına gelir Bazı ondalık sayı. 492 00:23:18,710 --> 00:23:23,110 Oh, ve bu arada, sayıdır ne olursa olsun, bu değişkenin değeridir. 493 00:23:23,110 --> 00:23:25,880 Ve böylece bu daha yapmak için Biz bir örnek net görürsünüz 494 00:23:25,880 --> 00:23:30,930 önce uzun tam printf içeren Gerçek C programları kapsamında. 495 00:23:30,930 --> 00:23:33,472 >> Şimdi sadece bazı sarmak için Bu yapıların. 496 00:23:33,472 --> 00:23:36,680 Boole ifadeleri, sahip olmayabilir fırsat programınızda bu kullanmak için 497 00:23:36,680 --> 00:23:39,450 ancak, çok iyi olabilir Özellikle koşulları kullanarak eğer. 498 00:23:39,450 --> 00:23:43,460 Dan Ve böylece bu iki örnek X y'den daha az ise, yani Kazan, 499 00:23:43,460 --> 00:23:48,770 x ve y daha az ise ve ya da Y, daha az z daha, biz bunu nasıl tercüme olabilir? 500 00:23:48,770 --> 00:23:50,810 >> Peki, C sadece var Bu gibi bakmak olacak. 501 00:23:50,810 --> 00:23:55,300 Biraz şifreli, daha fazla parantez, Bazı garip ve işaretleri, ama temelde 502 00:23:55,300 --> 00:23:59,160 fikirler onlar gibi basit bulmaca parçası dünyada. 503 00:23:59,160 --> 00:24:02,690 Biz sadece bir şey olmadığını kontrol ediyoruz Başka bir şey daha azdır. 504 00:24:02,690 --> 00:24:03,910 >> Nasıl koşulları hakkında? 505 00:24:03,910 --> 00:24:09,710 İngilizce Özetle, bu ne yapar Scratch kod yığın size söyleyebilirim musun? 506 00:24:09,710 --> 00:24:11,050 >> İZLEYİCİ: İki sayıyı karşılaştırır. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. MALAN: iki karşılaştırır sayılar, ve x, y den az ise 508 00:24:13,760 --> 00:24:14,860 o kadar diyor. 509 00:24:14,860 --> 00:24:18,080 X ve y daha büyük olduğu takdirde o kadar çok başka der 510 00:24:18,080 --> 00:24:20,740 X eşit ise o kadar der y. 511 00:24:20,740 --> 00:24:22,180 Şimdi x ve y nereden geldi? 512 00:24:22,180 --> 00:24:22,680 Kim bilir. 513 00:24:22,680 --> 00:24:25,380 Scratch Bu öbek Kod bağlamında dışında. 514 00:24:25,380 --> 00:24:29,050 Ama ne şimdi yapmak istiyorum tercüme olduğunu Sadece bir an için bunu görmek için. 515 00:24:29,050 --> 00:24:31,660 >> Rahat olsun Yani Sorun Set bu hafta 516 00:24:31,660 --> 00:24:34,190 0 Bu dünyada oynarken Soldaki, fark 517 00:24:34,190 --> 00:24:36,940 fikirler değişiyor olmadığını Bir sonraki veya ötesinde ya da bu hafta. 518 00:24:36,940 --> 00:24:38,690 Biz sadece gidiyoruz şeyleri yazmaya başlayın 519 00:24:38,690 --> 00:24:41,240 ile farklı bir şekilde eden yerine bizim fare klavye. 520 00:24:41,240 --> 00:24:44,577 Yani >> x te y den az ve Orada bazı parantezler var, 521 00:24:44,577 --> 00:24:47,160 sonra bazı kaşlı var Tekrar tür onu saklanması 522 00:24:47,160 --> 00:24:48,970 Sarı puzzle parçaları yapmak gibi. 523 00:24:48,970 --> 00:24:53,000 Ve ben x printf gidiyorum vb y ve daha azdır. 524 00:24:53,000 --> 00:24:56,540 >> C hakkında güzel nedir Burada gördüğünüz gibi, 525 00:24:56,540 --> 00:25:00,480 Bu iç içe alamadım ki, yuvalama, bu mutlaka var yuvalama 526 00:25:00,480 --> 00:25:02,220 sağa kodunuzu itmek olacak. 527 00:25:02,220 --> 00:25:04,990 Bunun yerine her şeye sahip olabilir sanatçısını düzgünce bu gibi. 528 00:25:04,990 --> 00:25:08,960 Ama bu sadece bir estetik var Biz uzun zaman önce tekrar görürsünüz detay. 529 00:25:08,960 --> 00:25:09,660 >> Tamam. 530 00:25:09,660 --> 00:25:13,290 Yani bize geri getiriyor Bu şifreli görünümlü programı. 531 00:25:13,290 --> 00:25:15,180 En aslında bazı kod yazalım. 532 00:25:15,180 --> 00:25:16,830 Şimdi nasıl kod yazma konusunda gidiyorsun? 533 00:25:16,830 --> 00:25:21,310 Eğer sahip olduğunuz tüm bu yıllar Mac veya PC, masaüstü veya dizüstü, 534 00:25:21,310 --> 00:25:24,520 aslında yeteneği yaşadım programlama kodu yazmaya başlamak için. 535 00:25:24,520 --> 00:25:27,050 Ama muhtemelen eksik Programın özel bir türü. 536 00:25:27,050 --> 00:25:28,470 Kesinlikle kod yazabilirsiniz. 537 00:25:28,470 --> 00:25:30,740 Ama sen, ille can kutunun dışında, 538 00:25:30,740 --> 00:25:34,210 Bu kaynak kodu dönüştürmek nesne kodu, 0 ve 1 içine 539 00:25:34,210 --> 00:25:35,619 Bilgisayarınızda ne olmadan? 540 00:25:35,619 --> 00:25:36,410 HEDEF KİTLE: Derleyici. 541 00:25:36,410 --> 00:25:37,630 DAVID J. MALAN: Yani derleyici, doğru. 542 00:25:37,630 --> 00:25:39,730 Şimdi size büyük olasılıkla Bir derleyici sahibi ben değilim, 543 00:25:39,730 --> 00:25:41,259 Bir derleyici indirilen hiç. 544 00:25:41,259 --> 00:25:44,300 Ama sen indirebilirsiniz görürsünüz yazılımın en herhangi bir diğer parçası gibi. 545 00:25:44,300 --> 00:25:47,470 Mac OS dünyasında, sen olabilir indirmek ya da zaten indirdiğiniz 546 00:25:47,470 --> 00:25:50,437 Xcode veya GCC ya da Clang denilen şey. 547 00:25:50,437 --> 00:25:52,270 Eğer geliyorsa Windows dünyasında size olabilir 548 00:25:52,270 --> 00:25:56,190 Visual Studio indirdiğiniz, Visual Basic, böyle ortamlarda. 549 00:25:56,190 --> 00:25:59,200 Derleyiciler onlarca var Eğer kullanabilirsiniz bu gün. 550 00:25:59,200 --> 00:26:01,940 Ama burada bunun kısa bir ağrı olurdu olduğunu 551 00:26:01,940 --> 00:26:04,480 ve, açıkçası, teknolojik yüzlerce kabus 552 00:26:04,480 --> 00:26:07,680 Farklı insanların Tüm bilgisayar konfigürasyonları 553 00:26:07,680 --> 00:26:09,800 onların makinelerini yapılandırmak Tam olarak aynı şekilde 554 00:26:09,800 --> 00:26:11,700 Böylece hepimiz aynı sayfada olabilir. 555 00:26:11,700 --> 00:26:15,240 >> Biz bunun yerine, ne Peki CS50 biz size olan 556 00:26:15,240 --> 00:26:18,349 Standart ortam, bir Var Linux ortamında 557 00:26:18,349 --> 00:26:20,140 Biraz bakmak için gidiyor böyle bir şey. 558 00:26:20,140 --> 00:26:22,980 Siz bu daha görürsünüz Sorun Seti 1 şartname hangi 559 00:26:22,980 --> 00:26:25,330 Bu Cuma gece çevrimiçi gidecek. 560 00:26:25,330 --> 00:26:28,360 >> Ve bu ne demek Eğer bundan böyle olduğunu 561 00:26:28,360 --> 00:26:32,060 muktedir olacak indirmek ve bir program yüklemek 562 00:26:32,060 --> 00:26:33,650 CS50 Aletler denir. 563 00:26:33,650 --> 00:26:36,275 Ve indirmek için gidiyoruz ve adlı başka bir program yüklemek 564 00:26:36,275 --> 00:26:40,300 Sadece bir bir hipervizör, Bunu başarmanın yolu süslü. 565 00:26:40,300 --> 00:26:44,600 Eğer bir Mac veya PC ya da a kendi olsun Linux bilgisayar veya Solaris bilgisayar, 566 00:26:44,600 --> 00:26:46,830 veya ne olursa olsun deli işletim Sistem koşuyoruz, 567 00:26:46,830 --> 00:26:49,820 Eğer bir program indirmek için gidiyoruz var hypervisor'u denir 568 00:26:49,820 --> 00:26:53,350 CS50 koşacaklar Bilgisayarınızda Aletler 569 00:26:53,350 --> 00:26:55,430 olursa olsun işletim sistemi ne. 570 00:26:55,430 --> 00:27:00,640 Diğer bir deyişle bir hiper dönüştürür ne olursa olsun dil bizim şeyler, 571 00:27:00,640 --> 00:27:03,850 ne olursa olsun talimatlar senin Kendi bilgisayar anlar. 572 00:27:03,850 --> 00:27:04,962 >> Yani bu bir katman olduğunu. 573 00:27:04,962 --> 00:27:06,920 Ve yine, bu tür bilgisayar tematik arasında 574 00:27:06,920 --> 00:27:08,722 bilim, şeylerin üstüne bina. 575 00:27:08,722 --> 00:27:09,680 Windows'u olabilir. 576 00:27:09,680 --> 00:27:10,710 Mac OS olabilir. 577 00:27:10,710 --> 00:27:12,960 Ama ertesi hafta başlayan sen indirdiğiniz olacak 578 00:27:12,960 --> 00:27:14,980 yazılımın ücretsiz parça hipervizör denir. 579 00:27:14,980 --> 00:27:17,800 Sen bir parça indirdiğiniz için gidiyoruz Yazılımın CS50 Cihazı adı. 580 00:27:17,800 --> 00:27:21,050 >> Bu hiper çalıştırmak için gidiyor, hangi bilgisayarınızda çalıştırmak için gidiyor. 581 00:27:21,050 --> 00:27:23,030 Ve sonucudur hepimiz olacak ki 582 00:27:23,030 --> 00:27:26,220 gibi basit bir pencere var Mac veya PC üzerinde bu 583 00:27:26,220 --> 00:27:30,160 Bu hepimizi yanılsamasını verir Aynı işletim sistemini çalıştıran, 584 00:27:30,160 --> 00:27:32,800 başka olmadan Bilgisayarınızda etkisi. 585 00:27:32,800 --> 00:27:34,870 Ve tam ekran yapabilirsiniz o ve aslında davranır 586 00:27:34,870 --> 00:27:37,550 Eğer çalışan sanki bir Linux işletim sistemi olarak adlandırılan, 587 00:27:37,550 --> 00:27:40,270 hangi ne CS50 olduğunu Eşya üzerine dayanır. 588 00:27:40,270 --> 00:27:42,930 >> Yani aslında bu kullanmasına izin Şimdi bir program yazmak. 589 00:27:42,930 --> 00:27:45,450 Bir programı yazabilirsiniz Microsoft Word kullanarak. 590 00:27:45,450 --> 00:27:48,160 Bir programı yazabilirsiniz TextEdit'i veya Not Defteri kullanarak, 591 00:27:48,160 --> 00:27:51,880 veya WordPad, ya da hemen hemen herhangi bir kelime işleme programı Hiç kullandım. 592 00:27:51,880 --> 00:27:55,174 Ama gerçek olan sen olmamalı gerçekten bu programlardan birini kullanabilirsiniz. 593 00:27:55,174 --> 00:27:57,840 Kesinlikle kullanmamalısınız Microsoft Word gibi bir şey bu 594 00:27:57,840 --> 00:28:01,120 cesur bakan ve italik, ve vardır büyük yazı tipleri ve küçük yazı tipleri, 595 00:28:01,120 --> 00:28:03,560 Bilgisayar yok, çünkü Bu herhangi umurumda. 596 00:28:03,560 --> 00:28:05,600 Tüm bilgisayar olduğu umurumda olacak 597 00:28:05,600 --> 00:28:09,040 C ile yazılmış talimatlar gibi İngilizce 598 00:28:09,040 --> 00:28:12,050 >> İçeri yapacağız Peki CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 özgürce bir programı kullanmak olduğunu mevcuttur, bu ve var 600 00:28:14,290 --> 00:28:17,360 Bu önceden yüklenmiş Cihaz, gedit çağırdı. 601 00:28:17,360 --> 00:28:22,280 Ve gedit sadece bir süper basit Mac OS adlı TextEdit gibi metin editörü, 602 00:28:22,280 --> 00:28:26,200 gidiyor, Windows Not Defteri gibi Bu gibi küçük bir şey bak. 603 00:28:26,200 --> 00:28:28,910 >> Yani aslında 's etmeyelim Bu slaytlar bak. 604 00:28:28,910 --> 00:28:32,580 Ama aslında içine gidelim Çevre kendisi. 605 00:28:32,580 --> 00:28:36,090 Ben önde gitmek için gidiyorum ve Bu, diğer pencerede, giriş, 606 00:28:36,090 --> 00:28:40,910 Ben ettik benim CS50 Aletleri için Burada benim laptop önceden yüklenmiş. 607 00:28:40,910 --> 00:28:43,771 >> Windows gibi bu, dikkat ve Mac OS, bazı menüler var. 608 00:28:43,771 --> 00:28:45,520 Windows gibi o koyar o orada yerine 609 00:28:45,520 --> 00:28:47,020 Orada aşağı koyar, Mac OS, bir. 610 00:28:47,020 --> 00:28:48,930 Ama gerçek bu kadar olduğunu Aynı her türlü. 611 00:28:48,930 --> 00:28:50,770 Ve burada bir bütündür Yazılımın demet. 612 00:28:50,770 --> 00:28:51,770 Dropbox var. 613 00:28:51,770 --> 00:28:54,780 Aksesuar bir sürü var, grafiksel programlar yaparız 614 00:28:54,780 --> 00:28:56,430 Sorun setleri için vadede daha sonra kullanın. 615 00:28:56,430 --> 00:28:59,650 Yani yerleşik bir web tarayıcısı var Bu tam teşekküllü bir bilgisayar olduğunu 616 00:28:59,650 --> 00:29:01,240 Bir bilgisayarın içinde. 617 00:29:01,240 --> 00:29:04,170 >> Ama ben bu tıklayın gidiyorum Burada beyaz simgesini soldaki, 618 00:29:04,170 --> 00:29:05,890 hangi Gedit için simgedir. 619 00:29:05,890 --> 00:29:09,650 Ve bir pencere açmak için gidiyor Bu, ona üç panelleri vardır 620 00:29:09,650 --> 00:29:12,590 sol on, bir üst, bir ve bir alt on. 621 00:29:12,590 --> 00:29:16,071 >> Şimdi bu sağ üst birinde olduğunu Aslında bazı kod yazmak için gidiyorum. 622 00:29:16,071 --> 00:29:16,820 O yüzden bu yapalım ,. 623 00:29:16,820 --> 00:29:19,040 Ben, Kaydet Dosya gidiyorum. 624 00:29:19,040 --> 00:29:22,100 Ve hiç görmemiş olabilir daha önce bu özel pencere. 625 00:29:22,100 --> 00:29:23,620 Ama bu, Mac OS veya Windows gibi. 626 00:29:23,620 --> 00:29:25,490 Sadece bir pencere var klasörlerin tüm 627 00:29:25,490 --> 00:29:27,290 Ben bu bilgisayarın içinde var. 628 00:29:27,290 --> 00:29:30,320 >> Ve ben kurtarmak için gidiyorum hello.c olarak dosya. 629 00:29:30,320 --> 00:29:32,690 Ve ben gidiyorum önde ve Kaydet'i tıklatın. 630 00:29:32,690 --> 00:29:36,364 Ve şimdi ben bir sekme var fark sol üst kısmında merhaba.c denir. 631 00:29:36,364 --> 00:29:38,280 Yani muhtemelen oldukça tanıdık değil ettik bile 632 00:29:38,280 --> 00:29:40,240 daha önce bu özel programı kullanılmıştır. 633 00:29:40,240 --> 00:29:44,890 >> Ve şimdi ben bu yazın gidiyorum komutlar oldukça şifreli dizisi 634 00:29:44,890 --> 00:29:46,360 biz bir an önce gördüm. 635 00:29:46,360 --> 00:29:49,330 Dahil, standart I / O.h. 636 00:29:49,330 --> 00:29:50,600 Yakında Daha. 637 00:29:50,600 --> 00:29:55,670 Int main boşluk, açık kıvırcık ayraç, küme ayracı kapattı. 638 00:29:55,670 --> 00:30:01,570 Ve sonra orada içimde olduğunu düşünüyorum nerede "merhaba dünya" noktalı virgül vardı. 639 00:30:01,570 --> 00:30:03,100 Ve şimdi kaydedin. 640 00:30:03,100 --> 00:30:08,780 >> Peki bu C ile yazılmış bir program, kaynak kodu, bu nedenle, yazılı. 641 00:30:08,780 --> 00:30:10,720 Ama ben sadece bu programı çalıştıramaz. 642 00:30:10,720 --> 00:30:13,390 Ben tür çift istiyorum yerde bir simgeye tıklayın 643 00:30:13,390 --> 00:30:16,390 ama hiçbir simge, diğer var kaynak kodu dosyası daha. 644 00:30:16,390 --> 00:30:20,359 Ne, yine süreç şimdi ise Ben ile bu dosyayı çalıştırmak gerekir mi? 645 00:30:20,359 --> 00:30:21,150 HEDEF KİTLE: Derleyici. 646 00:30:21,150 --> 00:30:22,399 DAVID J. MALAN: Yani bir derleyici. 647 00:30:22,399 --> 00:30:24,890 Yani farklı bilgisayarlarda size farklı şekillerde bunu. 648 00:30:24,890 --> 00:30:27,480 Ama biz burada ne yaptık Var CS50 Aletler 649 00:30:27,480 --> 00:30:31,260 temsilcisi nasıl olabilir Bu çok farklı sistemlerde yapmak, 650 00:30:31,260 --> 00:30:34,036 Ben sadece gidiyorum edilir yapmak adında bir komutunu çalıştırın. 651 00:30:34,036 --> 00:30:35,660 Ve yapmak tam anlamıyla yapacak. 652 00:30:35,660 --> 00:30:36,640 Bana bir program yapın. 653 00:30:36,640 --> 00:30:39,060 >> Peki gidiyor olun Benim için bir derleyici çalıştırın. 654 00:30:39,060 --> 00:30:42,160 Ve programın adı Merhaba yapmak istiyorum. 655 00:30:42,160 --> 00:30:43,510 Şimdi yapmak bir programdır. 656 00:30:43,510 --> 00:30:47,170 Ve yapmak yeterli akıllı olduğunu diyorum, eğer merhaba yapmak fark 657 00:30:47,170 --> 00:30:50,980 otomatik olarak bakmaya gidiyor Bir dosya adı verilen hello.c için 658 00:30:50,980 --> 00:30:53,420 sadece çünkü yolu yapılandırılmış. 659 00:30:53,420 --> 00:31:00,300 >> Peki şimdi vurduğunuzda buraya gir, bu çılgın şifreli hattı sadece idam var. 660 00:31:00,300 --> 00:31:02,720 Ve önce, bana güven Uzun, sadece gün içinde, 661 00:31:02,720 --> 00:31:05,590 ne bütün anlayacaksınız Bu saçma araçlarının. 662 00:31:05,590 --> 00:31:11,150 Ama şimdi, sadece yapmak biliyorum Bir derleyici tetiklenmiş yürütme. 663 00:31:11,150 --> 00:31:13,290 Diğer bir deyişle, bu mu Benim bilgisayarda bir derleyici 664 00:31:13,290 --> 00:31:14,820 Bu önceden yüklenmiş bulunuyor CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 Biz Sorun Set 1 size teslim edeceğiz. 666 00:31:16,560 --> 00:31:20,990 Ve sonra da merhaba.c aldı giriş, ve görünüşe göre üretilen 667 00:31:20,990 --> 00:31:23,040 0'lar ve çıkış olarak 1s. 668 00:31:23,040 --> 00:31:29,410 >> Ve varsayılan olarak ne yapar onu kurtarır olduğunu Bir dosyada bu 0'lar ve 1'ler merhaba çağırdı. 669 00:31:29,410 --> 00:31:33,180 Ve bu sözdizimi olsa da olabilir sadece nokta söyleyerek, sizin için yeni olabilir 670 00:31:33,180 --> 00:31:37,110 çizgi merhaba olacak hangi ben bu programı çalıştırmak demektir. 671 00:31:37,110 --> 00:31:40,360 >> Şu an için ve en azından bir çift için programların haftalık, hemen hemen tüm 672 00:31:40,360 --> 00:31:44,230 biz olacak yazma siyah ve beyaz metin pencereleri. 673 00:31:44,230 --> 00:31:47,006 Hiçbir fareler, hiçbir tıklayarak, penceresiz, hiçbir simge. 674 00:31:47,006 --> 00:31:49,630 Biz basit tutmak için gidiyoruz ve altta yatan fikirler üzerinde odaklanmak 675 00:31:49,630 --> 00:31:52,490 Biz bir şey olsun başlangıçta önce yüksek düzeyde, örneğin, 676 00:31:52,490 --> 00:31:56,410 Biz konuştuk mola dışarı oyun gibi İlk derste geçen hafta hakkında. 677 00:31:56,410 --> 00:32:00,820 Ben buraya gir vurduğunuzda >> Yani, bu kadar Bir metinde sadece çevre eşdeğer 678 00:32:00,820 --> 00:32:03,272 merhaba denilen bir simgeye tıklayarak iki katına. 679 00:32:03,272 --> 00:32:05,480 Eğer irade ne bekliyorsunuz Daha sonra Enter vurduğunuzda ne? 680 00:32:05,480 --> 00:32:07,120 >> İZLEYİCİ: Bu "merhaba dünya." Basalım 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. MALAN: Umarım o "merhaba dünya." yazdıracak 682 00:32:10,000 --> 00:32:11,370 Ve gerçekten de yaptım. 683 00:32:11,370 --> 00:32:13,690 Şimdi orada oldu bazı Burada şifreli sözdizimi. 684 00:32:13,690 --> 00:32:15,950 Sadece için sarma Let Bir anı ve görürseniz biz 685 00:32:15,950 --> 00:32:19,530 tarafından sadece çıkarım açamazsınız , müdahalesi çalışıyor ve başarısız, 686 00:32:19,530 --> 00:32:21,130 Burada neler oluyor olarak. 687 00:32:21,130 --> 00:32:23,609 Ne ters eğik çizgi n kurtulmak olur? 688 00:32:23,609 --> 00:32:25,650 Şimdi size bazı ettik kim Muhtemelen önce programlanmış 689 00:32:25,650 --> 00:32:27,054 Bunun ne anlama geldiğini anında biliyorum. 690 00:32:27,054 --> 00:32:29,220 Ama ettik kim o sizin için daha önce programlanmış asla, 691 00:32:29,220 --> 00:32:34,052 en azından ne olup bittiğini kendinize düşünmek Ben bu programı yeniden ne zaman değiştirmek için? 692 00:32:34,052 --> 00:32:37,010 Yani aşağı geri dönmek için gidiyorum benim küçük siyah ve beyaz pencere, hangi 693 00:32:37,010 --> 00:32:39,290 penceresi olduğu Ben bu derleme yapabilirsiniz. 694 00:32:39,290 --> 00:32:41,130 Ben merhaba yeniden derlemek için gidiyorum. 695 00:32:41,130 --> 00:32:43,520 Biz aynı görmek için gidiyoruz komutlar şifreli dizisi. 696 00:32:43,520 --> 00:32:45,719 Ve ben merhaba nokta çizgi yapacağım. 697 00:32:45,719 --> 00:32:48,260 Ve şimdi birisi, yapacağınız eğer, kim, daha önce programlanmış asla 698 00:32:48,260 --> 00:32:49,770 Bu sefer farklı ne olabilir? 699 00:32:49,770 --> 00:32:50,020 Evet. 700 00:32:50,020 --> 00:32:51,840 >> İZLEYİCİ: Bu durmayacak baskı "merhaba dünya." 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. MALAN: Bu amaçlara yönelik üzgün gidiyor? 702 00:32:52,660 --> 00:32:54,210 >> İZLEYİCİ: Onu baskı duracak değil? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. MALAN: Bu olmaz yazdırmayı durdurmak "merhaba dünya." 704 00:32:55,810 --> 00:32:56,560 Yani kötü bir fikir. 705 00:32:56,560 --> 00:32:58,633 Diğer fikirler? 706 00:32:58,633 --> 00:32:59,132 Evet. 707 00:32:59,132 --> 00:33:00,060 >> İZLEYİCİ: Hata iletisi? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. MALAN: Hata mesajı, tamam, olabilir. 709 00:33:01,750 --> 00:33:02,250 Başka ne? 710 00:33:02,250 --> 00:33:05,479 HEDEF KİTLE: Bu yazdırabilir yanı sıra noktalı virgülle dirsek? 711 00:33:05,479 --> 00:33:08,270 DAVID J. MALAN: yazdırabilirsiniz Olabilir yanı sıra noktalı virgül ile dirsek. 712 00:33:08,270 --> 00:33:11,950 Yani belki de ters eğik çizgi daha sonra bazı önemli terminous tür. 713 00:33:11,950 --> 00:33:14,860 Başka düşünceler? 714 00:33:14,860 --> 00:33:16,412 >> Peki tüm iyi fikirler. 715 00:33:16,412 --> 00:33:18,370 Ve aslında, gidiyor Bir hata mesajı olarak. 716 00:33:18,370 --> 00:33:20,400 Bu büyük olasılıkla muhtemelen genel cevap için 717 00:33:20,400 --> 00:33:22,420 Önümüzdeki birkaç hafta için Burada kod öğrenmek gibi. 718 00:33:22,420 --> 00:33:27,680 >> Ama şimdi bilgisayarlar unutmayın Sadece yapmanız onlara ne. 719 00:33:27,680 --> 00:33:30,400 Saçma fıstık gibi çok tereyağı ve jöle örneği. 720 00:33:30,400 --> 00:33:33,860 İnsan bilgisayarlar yalnızca gerekiyordu Yapmanız onlara ne yapmak. 721 00:33:33,860 --> 00:33:36,250 Bu durumda, eğer Yani Bilgisayarı söyleme 722 00:33:36,250 --> 00:33:41,190 o yanıp sönen imleci hareket ettirmek için Bir sonraki satır, bunu yapmak için gitmiyor. 723 00:33:41,190 --> 00:33:45,390 Yani bu programı çalıştırdığınızda Şimdi, fark. 724 00:33:45,390 --> 00:33:46,900 >> Bir hata gibi görünüyor. 725 00:33:46,900 --> 00:33:49,190 Belki, bir estetik hata var. 726 00:33:49,190 --> 00:33:53,310 Ama bu konuda farklı ne Açıkçası sonuncusu karşı çıktı? 727 00:33:53,310 --> 00:33:53,810 Evet. 728 00:33:53,810 --> 00:33:54,920 >> İZLEYİCİ: Bu yeni bir satır yapmadım. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. MALAN: Bu yeni bir satır yapmadım. 730 00:33:56,586 --> 00:33:58,740 Şimdi o sizin kim belki yapılmış web sayfaları var 731 00:33:58,740 --> 00:34:01,910 önce, sen biliyor olabilir BR etiketi veya paragraf etiketi, 732 00:34:01,910 --> 00:34:03,120 ruhu çok benzer. 733 00:34:03,120 --> 00:34:06,680 Bir web tarayıcısı kadar sizi görmezden edecek Eğer tam olarak ne yapacağını söyle. 734 00:34:06,680 --> 00:34:10,020 Benzer şekilde, C gibi bir dildir sadece Yapmanız bunu söylemek ne yapacaksın. 735 00:34:10,020 --> 00:34:12,730 >> Yani neden o Bu örneklerin tümünü 736 00:34:12,730 --> 00:34:15,350 bugüne kadar, bir tür var raslantı bu ters eğik çizgi vardı 737 00:34:15,350 --> 00:34:18,560 Orada, bu araç bu hangi kendinizi ifade 738 00:34:18,560 --> 00:34:21,380 Yeni bir satır karakteri olarak, tabiri caizse. 739 00:34:21,380 --> 00:34:26,219 Ve ne tür, belki, takdir Bu tür aptalca bakmak olacağını 740 00:34:26,219 --> 00:34:27,070 eğer başka bir şey. 741 00:34:27,070 --> 00:34:29,150 Ben yeni bir satır istedim, sadece isabet tür ardından Enter ve 742 00:34:29,150 --> 00:34:32,219 bu gibi bir kod butchering Gerçekten size doğru yolu ovmak gerekir. 743 00:34:32,219 --> 00:34:33,830 Ve sen yok bile Gerçekten bu noktada bakım, 744 00:34:33,830 --> 00:34:35,830 Bunu fark edeceksiniz Bu özellikle değil 745 00:34:35,830 --> 00:34:37,870 kod iyi görünümlü parçası. 746 00:34:37,870 --> 00:34:39,969 >> Ve bu yüzden ne dünya karar yıl önce 747 00:34:39,969 --> 00:34:43,420 Bu sizi koymak istediğinizde açıkça yeni bir hat üzerine imleç, 748 00:34:43,420 --> 00:34:46,332 Açıkça söylemek gerekir Yeni hat, ters eğik çizgi n. 749 00:34:46,332 --> 00:34:48,040 Ve diğer bazı var Böyle semboller. 750 00:34:48,040 --> 00:34:50,719 Ama Şimdi biz sadece edeceğiz Ters eğik çizgi n odaklanmak. 751 00:34:50,719 --> 00:34:53,790 >> Şimdi programı yapalım Biraz daha ilginç. 752 00:34:53,790 --> 00:34:59,200 Ben önde gitmek için gidiyorum ve Bu sefer yeni bir dosya açmak. 753 00:34:59,200 --> 00:35:02,520 Ben bu kadar merhaba-1.c kaydetmek için gidiyorum. 754 00:35:02,520 --> 00:35:05,540 Ve sadece tekmeler için, ben gidiyorum benim Dropbox klasörüne koymak gidin. 755 00:35:05,540 --> 00:35:09,030 >> Eğer CS50 göreceğiniz gibi Cihazın için dokümantasyon, 756 00:35:09,030 --> 00:35:11,210 Problem daha sonra bu hafta Set 1, biz teşvik edeceğiz 757 00:35:11,210 --> 00:35:13,230 Eğer Dropbox kullanmak veya Bazı eşdeğer hizmet, 758 00:35:13,230 --> 00:35:15,430 kodunuzu en sonra tüm çünkü gidiş otomatik olarak yedeklenmesi. 759 00:35:15,430 --> 00:35:17,830 Ben ettik yüzden böylece var Burada bu klasöre gitti. 760 00:35:17,830 --> 00:35:20,230 >> Ve şimdi ben bir yazmak için gidiyorum biraz daha farklı bir program. 761 00:35:20,230 --> 00:35:24,740 Standart I / O.h, int void main ekleyin. 762 00:35:24,740 --> 00:35:29,660 Ve sonra burada printf, merhaba dünya, önce hangi tam olarak aynıdır. 763 00:35:29,660 --> 00:35:32,450 >> Ama şimdi bir şey yazdırmak istiyorum Bu biraz farklı. 764 00:35:32,450 --> 00:35:34,800 Ben, yazdırmak istediğiniz "Merhaba, David." derler 765 00:35:34,800 --> 00:35:37,590 Pekala, açıkçası bu yüzden, umarım gerektiği 766 00:35:37,590 --> 00:35:40,360 Ben yeniden derlemek eğer durum Bu programın, onu yeniden, 767 00:35:40,360 --> 00:35:41,840 söylemek gidiyor "merhaba, David." 768 00:35:41,840 --> 00:35:45,160 >> Ama ne tanıtmak istiyorum değişken bu tür, 769 00:35:45,160 --> 00:35:49,240 gidiyor, bir kabın kavramı Kod bunu D-a-v-i-d ve zor değil saklamak için 770 00:35:49,240 --> 00:35:50,600 Benim programa. 771 00:35:50,600 --> 00:35:53,430 Peki ben ne başlarsanız Böyle bir şey yapıyor? 772 00:35:53,430 --> 00:35:57,120 >> String s, bu bir değişkendir. 773 00:35:57,120 --> 00:36:00,250 Bir dize istiyorsanız, Bir kelime veya bir cümle olarak da bilinir. 774 00:36:00,250 --> 00:36:03,485 Karakter dizisi ne olduğunu Biz programlama bir dize diyoruz. 775 00:36:03,485 --> 00:36:06,610 Biz sadece jenerik çağrı gidiyoruz güzel bir basit bir isim çünkü, s. 776 00:36:06,610 --> 00:36:08,010 Ama bir şey diyebiliriz. 777 00:36:08,010 --> 00:36:12,920 >> Ben string s eşittir söylemek için gidiyorum unquote, "David," noktalı virgül alıntı. 778 00:36:12,920 --> 00:36:18,330 Ve şimdi ben eklemek istiyorum D-Bir-v-i-d ben baskı değilim ne içine. 779 00:36:18,330 --> 00:36:23,720 Ve biz önce bir teaser gördüm Bazı özel sözdizimi ekran 780 00:36:23,720 --> 00:36:26,050 Bu bize izin Bir değer yerine. 781 00:36:26,050 --> 00:36:29,250 Özel neydi Sembol birkaç slaytlar önce? 782 00:36:29,250 --> 00:36:30,040 >> Yani yüzde. 783 00:36:30,040 --> 00:36:33,830 Zamanda yüzde ondalık sayı d. 784 00:36:33,830 --> 00:36:35,850 Bu gerçekten burada ilgili görünmüyor. 785 00:36:35,850 --> 00:36:38,650 Orada 's çıkıyor Başka yüzde sembolü, 786 00:36:38,650 --> 00:36:42,810 standları olan yüzde s, bir dize için bir yer tutucu için. 787 00:36:42,810 --> 00:36:49,350 >> Peki şimdi, çok basit, ben değilim merhaba-1 yapmak gidecek, 788 00:36:49,350 --> 00:36:54,210 Bu dosya denir çünkü merhaba-1.c ve Enter'a basın. 789 00:36:54,210 --> 00:36:56,230 Ve ben batırdım. 790 00:36:56,230 --> 00:36:57,394 Ne oluyor? 791 00:36:57,394 --> 00:37:00,560 Biz başlamak zorunda nerede Peki, burada Bu komutun olduğumuzu takdir 792 00:37:00,560 --> 00:37:02,810 satırı ortamında, bu Sadece çevreyi metin. 793 00:37:02,810 --> 00:37:06,114 Simgeler üzerinde hiçbir tıklayarak yok Şu anda klasörler gibi. 794 00:37:06,114 --> 00:37:07,280 Ve bir an önce geri düşünüyorum. 795 00:37:07,280 --> 00:37:10,740 Ne klasör diyorum yaptım Benim kod tasarruf oldu? 796 00:37:10,740 --> 00:37:11,657 Yani Dropbox klasörüne. 797 00:37:11,657 --> 00:37:12,989 Bir şey olarak adlandırılabilir. 798 00:37:12,989 --> 00:37:14,530 Ancak Dropbox adı olur. 799 00:37:14,530 --> 00:37:18,380 Yani ben bir şekilde çift tıklayarak gerekir Bu Dropbox klasörüne almak için 800 00:37:18,380 --> 00:37:21,657 ve içine almak benim Kod merhaba-1.c çağırdı. 801 00:37:21,657 --> 00:37:24,490 Aslında, beni go ahead ve en aza indirmek izin Sadece bir an için bu pencere. 802 00:37:24,490 --> 00:37:27,560 Sadece Windows ve Mac OS gibi, Linux klasörler vardır. 803 00:37:27,560 --> 00:37:29,410 CS50 Appliance klasörleri vardır. 804 00:37:29,410 --> 00:37:32,380 Sadece şimdi biz hapsederek ediyoruz bulunuyor Bu metin ortamına kendimizi. 805 00:37:32,380 --> 00:37:34,700 >> Ama ben çift tıklıyoruz eğer Dropbox üzerinde, orada fark 806 00:37:34,700 --> 00:37:37,210 Ben derlemek istediğiniz dosyadır. 807 00:37:37,210 --> 00:37:41,430 Ama bu siyah ve beyaz gerekir terminal penceresi, tabiri caizse. 808 00:37:41,430 --> 00:37:45,750 Ama gerek, bu nedenle, hareket etmek için Bu klasör veya dizine. 809 00:37:45,750 --> 00:37:48,290 Yani biraz gizemli, ama Siz de bu kullanılmış alırsınız. 810 00:37:48,290 --> 00:37:50,430 >> Linux dünyasında, hangi tekrar çalışma olduğunu 811 00:37:50,430 --> 00:37:54,860 Sistem, biz CS50 içinde koşuyoruz Cihaz, CD adında bir komut var. 812 00:37:54,860 --> 00:37:58,310 Hangi Ben CD, uzay, Dropbox yapmak anlamına gelir. 813 00:37:58,310 --> 00:37:59,900 CD, değişim dizini. 814 00:37:59,900 --> 00:38:00,400 Sağ. 815 00:38:00,400 --> 00:38:02,890 Geri gün insanlar vardı bilgisayar icat ve işletim 816 00:38:02,890 --> 00:38:05,806 Bu gibi sistemler, onlar istedi en az tuş vuruşlarını mümkün yazın. 817 00:38:05,806 --> 00:38:08,760 En kolay yolu söylemek Yani change directory CD'si oldu. 818 00:38:08,760 --> 00:38:13,910 >> Yani CD vurmak, uzay Dropbox, Burada ne değişti fark. 819 00:38:13,910 --> 00:38:16,480 Parantez içi Cihaz tür 820 00:38:16,480 --> 00:38:19,360 Beni humoring ve Ben nerede olduğumu bana hatırlatan. 821 00:38:19,360 --> 00:38:21,480 Yani açık klasör Dropbox olduğunu. 822 00:38:21,480 --> 00:38:24,950 Ben şimdi ls yazarsanız Liste, yine özlü, 823 00:38:24,950 --> 00:38:27,540 insanların istemiyordu çünkü Gün l-i s-t geri yazın. 824 00:38:27,540 --> 00:38:29,300 Yani bunun yerine ls yaptı. 825 00:38:29,300 --> 00:38:30,110 >> Girin. 826 00:38:30,110 --> 00:38:35,740 Ben, merhaba-1.c iki şey görmek dikkat edin ve sonra bu şifreli şey, kaynak 1m. 827 00:38:35,740 --> 00:38:38,310 Söyleyerek sadece benim yolu hafta 1 Pazartesi için kaynak kodu. 828 00:38:38,310 --> 00:38:42,020 Ben indirilen bir klasör var Ben bugün erken saatlerde yapılan CS50 web sitesini 829 00:38:42,020 --> 00:38:43,990 ve sadece koydu peşin cihaz. 830 00:38:43,990 --> 00:38:47,550 >> Ama şimdi tek şey Bu programı yapıyor umurumda. 831 00:38:47,550 --> 00:38:50,440 Yani merhaba-1, Enter yapmak yazarken. 832 00:38:50,440 --> 00:38:51,320 Kahretsin. 833 00:38:51,320 --> 00:38:53,060 Bir şeyler yanlış gitti. 834 00:38:53,060 --> 00:38:54,580 Yani bu ayrı kızdırmak verelim. 835 00:38:54,580 --> 00:38:58,489 Ve ne yazık ki bu nerede şeydir ilk başta biraz stresli olsun, 836 00:38:58,489 --> 00:39:00,280 en azından sen yasiyorsaniz daha önce programlanmış asla. 837 00:39:00,280 --> 00:39:00,980 >> Tanrım. 838 00:39:00,980 --> 00:39:04,990 Ben bir iki satırı programı yazdı ve Ben hataların dört satır var. 839 00:39:04,990 --> 00:39:07,180 Yani burada neler oluyor. 840 00:39:07,180 --> 00:39:11,370 Öncelikle her zaman geri kaydırma yukarı ve ilk hata mesajını bulun, 841 00:39:11,370 --> 00:39:15,730 çoğu zaman sadece derleyicileri çünkü Sen ve ben ne kadar karışık. 842 00:39:15,730 --> 00:39:17,000 Derleyiciler oldukça aptal. 843 00:39:17,000 --> 00:39:18,360 Onlar sadece ne yapacağım Yapmanız söyle. 844 00:39:18,360 --> 00:39:21,484 Onları karıştırmayın Ve eğer, onlar sadece konum tür ellerini yukarı atacak 845 00:39:21,484 --> 00:39:25,010 ve belki daha fazla hata iletileri atmak aslında daha önemlidir. 846 00:39:25,010 --> 00:39:26,380 >> Yani ilk bakalım. 847 00:39:26,380 --> 00:39:27,540 İlk süper şifreli. 848 00:39:27,540 --> 00:39:31,050 Ama ihbar, burada adı var Dosya hangi görünüşte berbat. 849 00:39:31,050 --> 00:39:36,570 Colon 5, kolon 5 sadece üzerinde gelir Beşinci karakteri çizgi 5. 850 00:39:36,570 --> 00:39:39,760 Yani karakter beşinci sütun, Hata, eğer olacak. 851 00:39:39,760 --> 00:39:41,870 Bildirilmemiş tanımlayıcı dize kullanılması. 852 00:39:41,870 --> 00:39:43,120 Standart n demek istediniz? 853 00:39:43,120 --> 00:39:44,850 >> Hayır, ben dize geliyordu. 854 00:39:44,850 --> 00:39:47,640 Ve sonra bu tür var kopyalama ve yapıştırma 855 00:39:47,640 --> 00:39:50,700 Ben gerçekten çizmek için ne yazdığınız benim Ben berbat yere dikkat. 856 00:39:50,700 --> 00:39:54,260 Nedense C Yani, ya da en azından derleyici 857 00:39:54,260 --> 00:39:56,470 Kelime dize anlamıyor. 858 00:39:56,470 --> 00:39:57,890 Biz o kadar yaptım çünkü Ve bu. 859 00:39:57,890 --> 00:40:01,440 Yani dize yok C. Ne CS50 yapar içinde, 860 00:40:01,440 --> 00:40:03,380 İlk birkaç hafta için Sadece sınıfın, 861 00:40:03,380 --> 00:40:05,700 bazı eğitim vermek olduğunu jantlar, tabiri caizse. 862 00:40:05,700 --> 00:40:11,160 Ve bu eğitim jantlar koymak CS50.h. adında özel bir dosya içinde 863 00:40:11,160 --> 00:40:14,970 >> Peki bu iki dosyanın ikinci görünüşte nokta h sona isimler. 864 00:40:14,970 --> 00:40:16,300 En geri sarma edelim. 865 00:40:16,300 --> 00:40:19,360 Printf bir ifade ya da işlevi Bu görünüşte bir şey yazdırır 866 00:40:19,360 --> 00:40:20,580 ekrana. 867 00:40:20,580 --> 00:40:23,470 Ama beni görmedi Doğru, printf uygulamak. 868 00:40:23,470 --> 00:40:26,360 Birisi yıl önce printf uyguladı. 869 00:40:26,360 --> 00:40:30,420 Hangi dosya size he bahse ediyorum ya da o uygulama koymak 870 00:40:30,420 --> 00:40:34,270 printf, printf için kodu? 871 00:40:34,270 --> 00:40:36,860 >> Standart I / O.h adlı bir dosyada. 872 00:40:36,860 --> 00:40:39,930 Aslında, bu büyük bir olasılıkla İki dosya, standart I / O.h, 873 00:40:39,930 --> 00:40:42,650 hangi başlık için duruyor Dosya ve standart I / O.c, 874 00:40:42,650 --> 00:40:44,060 hangi C kaynak kodu için duruyor. 875 00:40:44,060 --> 00:40:48,220 Yani o birkaç yıl önce plopped Onlar bu dosyanın içine yazdı kod 876 00:40:48,220 --> 00:40:51,240 Böylece bizim gibi insanlar yıl sonra içerebilir, 877 00:40:51,240 --> 00:40:53,040 böylece kendi programlarında, konuşmak için. 878 00:40:53,040 --> 00:40:56,320 >> Ve gerçekten de, bu ne diyez işareti var kelime takip yapar bulunmaktadır. 879 00:40:56,320 --> 00:41:00,250 Bu, yerel sabit diskinizde görünüyor standart I / O.h adlı dosyayı bulur 880 00:41:00,250 --> 00:41:03,840 ve daha sonra etkin bir kopya ve Kendi dosyanın içine yapıştırır. 881 00:41:03,840 --> 00:41:07,210 Yani şimdi benim programı bilir nasıl ekrana yazdırmak için. 882 00:41:07,210 --> 00:41:11,120 >> Bu mantık, So dize tanımlanır? 883 00:41:11,120 --> 00:41:12,260 >> İZLEYİCİ: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> DAVID J. MALAN: CS50.h. 885 00:41:13,290 --> 00:41:15,540 Ve gerçekten de, bu ne biz çekirdek kadrosu, yapmış. 886 00:41:15,540 --> 00:41:19,590 Biz bir kaç veri türlerini icat ettik, yani bir dize gibi, konuşmak, 887 00:41:19,590 --> 00:41:22,370 olanlar ek olarak size bir int gibi, ücretsiz olsun. 888 00:41:22,370 --> 00:41:26,010 Ve biz bir karakter gibi diğerleri görürsünüz Bir karakter ve bir kaç daha fazla. 889 00:41:26,010 --> 00:41:30,670 CS50.h görünüşte içi dize en azından bazı söz. 890 00:41:30,670 --> 00:41:34,980 >> Peki şimdi beni önde gitmeme izin çalıştırın ve makyaj merhaba-1. 891 00:41:34,980 --> 00:41:37,100 Ben tekrar yakınlaştırmak ve benim parmak arası olacak. 892 00:41:37,100 --> 00:41:41,370 Şimdi tek yapılmış olan Ben birçok şey sabit değiştirin. 893 00:41:41,370 --> 00:41:42,100 Ama kahretsin. 894 00:41:42,100 --> 00:41:44,290 Veri argümanlar daha fazla yüzdeleri. 895 00:41:44,290 --> 00:41:45,980 Ne bu sefer yanlış yaptın? 896 00:41:45,980 --> 00:41:47,420 >> Bu yüzden hala oldukça şifreli var. 897 00:41:47,420 --> 00:41:51,560 Ama bu hata üzerinde satır 7 ve karakter 21. 898 00:41:51,560 --> 00:41:53,880 Yani burada bakmak gidelim. 899 00:41:53,880 --> 00:41:55,350 Biraz ince olduğunu. 900 00:41:55,350 --> 00:41:59,167 Ama düşünmek eğer ne Burada temel fikirler vardır 901 00:41:59,167 --> 00:42:00,500 belki de bu ayrı kızdırmak yapabilirsiniz. 902 00:42:00,500 --> 00:42:02,300 >> Yani printf fonksiyonunun adıdır. 903 00:42:02,300 --> 00:42:04,960 Parantez, bugüne kadar olduğu sadece biz etrafında ne koymak gibi 904 00:42:04,960 --> 00:42:07,005 biz geçen ediyoruz şeyler bir işleve girdi olarak. 905 00:42:07,005 --> 00:42:08,921 Pekala, sadece bir keyfi insan kongre. 906 00:42:08,921 --> 00:42:09,919 Parantez kullanın. 907 00:42:09,919 --> 00:42:12,460 Bu parantez içi Biz çift tırnak koyarak oldum, 908 00:42:12,460 --> 00:42:14,810 ve sonra gibi bir dize "merhaba dünya." 909 00:42:14,810 --> 00:42:18,160 >> Ancak, daha önceki örnekte çok kısaca Scratch ile bakmak yaptım. 910 00:42:18,160 --> 00:42:22,590 Ve biz yüzde d vardı başka ne Bu parantez içinde oldu 911 00:42:22,590 --> 00:42:23,730 Ben sözlü seslendi ki? 912 00:42:23,730 --> 00:42:24,230 Evet. 913 00:42:24,230 --> 00:42:28,166 >> İZLEYİCİ: Eğer alıyorsun ne Yani [Duyulamaz] içinde [duyulamaz] 914 00:42:28,166 --> 00:42:30,200 ne bu [duyulamaz]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. MALAN: Kesinlikle. 916 00:42:31,200 --> 00:42:32,700 Yani biz yüzde d vardı. 917 00:42:32,700 --> 00:42:36,620 Ama sonra yakın vardı alıntı, virgül, sayaç. 918 00:42:36,620 --> 00:42:37,120 Sağ. 919 00:42:37,120 --> 00:42:40,680 Biz istediğimiz belirtilen yer tutucu olarak yapmak. 920 00:42:40,680 --> 00:42:44,621 Peki ben burada yapacağım olduğunu virgül, beni koymak ne istiyorsun? 921 00:42:44,621 --> 00:42:45,120 İZLEYİCİ: S. 922 00:42:45,120 --> 00:42:46,828 David J. MALAN S, çünkü bu durumda, s 923 00:42:46,828 --> 00:42:48,700 saklama kabının adıdır. 924 00:42:48,700 --> 00:42:50,180 O cam kase adı. 925 00:42:50,180 --> 00:42:53,610 O sayaç önce Oysa Basit Scratch örneği biz baktı. 926 00:42:53,610 --> 00:42:56,630 Yani şimdi iki yapılmış olan değişiklikler, beni yakınlaştırmak izin 927 00:42:56,630 --> 00:42:59,800 ve bir kez daha deneyin Bu programı derlemek. 928 00:42:59,800 --> 00:43:01,596 >> Şimdi bu şifreli satır göreceksiniz. 929 00:43:01,596 --> 00:43:03,470 Ama bu aslında derleyici adı. 930 00:43:03,470 --> 00:43:04,886 Clang derleyici adıdır. 931 00:43:04,886 --> 00:43:07,100 Sadece beni kurtaran olun Hiç bir baş ağrısı 932 00:43:07,100 --> 00:43:09,830 uzun çılgın komutu yazarak. 933 00:43:09,830 --> 00:43:14,900 Yani şimdi ben nokta merhaba-1 slash yoksa, Ben "merhaba, David." Görmelisiniz 934 00:43:14,900 --> 00:43:16,450 >> Oldukça underwhelming olsa, değil mi? 935 00:43:16,450 --> 00:43:18,158 Biz yapmış olabilir Bu çok daha basit 936 00:43:18,158 --> 00:43:20,940 değişkenlere ilişkin konuşmadan CS50.h ve bütün vb. 937 00:43:20,940 --> 00:43:23,080 Yani bir yapalım Biraz daha ilginç. 938 00:43:23,080 --> 00:43:31,010 >> CS50.h ek olarak, dize gibi şeyler olan 939 00:43:31,010 --> 00:43:34,550 ilan, CS50 kütüphanesi Ayrıca birkaç işleve sahiptir. 940 00:43:34,550 --> 00:43:38,520 Yani tıpkı yıllar önce, birisi yazdı printf ve standart I / O.h koymak 941 00:43:38,520 --> 00:43:39,530 ve bazı diğer dosya. 942 00:43:39,530 --> 00:43:44,010 >> Biz, CS50 personeli, bir fonksiyon yazdım getChar, GetDouble, GetFloat denilen 943 00:43:44,010 --> 00:43:47,610 GETINT, GetLongLong, GetString, ve biz bir dosya içine bu koymak 944 00:43:47,610 --> 00:43:49,890 CS50.h ve CS50.c. adı 945 00:43:49,890 --> 00:43:51,880 Ve biz onları içeri koymak CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 Ve insanlar da olabilir Onlar eğer onları online indir 947 00:43:53,880 --> 00:43:55,880 onları koymak istiyorum onların Kendi bilgisayarlar yanı sıra. 948 00:43:55,880 --> 00:44:00,880 Yarattığımız söylemek için hangi kullanıcıdan girdi almak fonksiyonlar. 949 00:44:00,880 --> 00:44:02,930 Ne tüm bilmiyorum Bu veri türleri vardır. 950 00:44:02,930 --> 00:44:06,490 GETINT gibi, bir tür basittir kullanıcıdan şekilde bir tamsayı olsun. 951 00:44:06,490 --> 00:44:09,980 Ve GetString olsun gibi muhtemelen Bir kelime veya kullanıcıdan bir cümle. 952 00:44:09,980 --> 00:44:11,770 >> Yani bu odaklanalım. 953 00:44:11,770 --> 00:44:14,710 Ve ben geri gidiyorum Cihaz ve ben önde gitmek için gidiyorum 954 00:44:14,710 --> 00:44:20,790 ve bu dosyayı kaydetmek, en diyelim benim ikinci sürümü gibi merhaba-2.c. 955 00:44:20,790 --> 00:44:23,030 Ve en değişikliklerin bir çift yapalım. 956 00:44:23,030 --> 00:44:25,800 >> Bu kez yerine Sert kodlama David, hangi 957 00:44:25,800 --> 00:44:29,120 inanılmaz tutarlı yapar ama underwhelming program 958 00:44:29,120 --> 00:44:32,640 Ben bunun yerine GetString ne olur? 959 00:44:32,640 --> 00:44:35,660 Şimdi GetString fark açık parantez vardır, 960 00:44:35,660 --> 00:44:38,500 Kapalı parantez, çünkü herhangi bir giriş gerekmez. 961 00:44:38,500 --> 00:44:40,850 Sadece gidip gidiyor kullanıcıdan bir dize. 962 00:44:40,850 --> 00:44:42,460 >> Ve şimdi diğer sözdizimi bir kelime. 963 00:44:42,460 --> 00:44:45,439 Noktalı virgül sadece bir kod satırı bitirmek. 964 00:44:45,439 --> 00:44:46,730 Her yerde onlara ihtiyacım yok. 965 00:44:46,730 --> 00:44:48,896 Ama bu sadece ben değilim demektir Bu kod satırı ile yapılır. 966 00:44:48,896 --> 00:44:51,080 Bana başka geçelim deyimi veya işlev. 967 00:44:51,080 --> 00:44:53,010 String değişkeni bildirir. 968 00:44:53,010 --> 00:44:55,920 Dize söyleyerek gibi Bana bir kase ver lütfen. 969 00:44:55,920 --> 00:44:57,940 Ve bana bunun bir dize koyalım. 970 00:44:57,940 --> 00:44:59,430 >> Ve şimdi eşittir işareti. 971 00:44:59,430 --> 00:45:03,510 Eşittir işareti nedir esas olarak eşdeğer? 972 00:45:03,510 --> 00:45:04,500 >> İZLEYİCİ: atayın. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. MALAN: Evet, bir değer atama. 974 00:45:06,190 --> 00:45:09,872 Yani eğer ben, örneğin, çağrı Bu fonksiyon GetString, 975 00:45:09,872 --> 00:45:12,830 ve biz bu bir anda görürsünüz bir dize için kullanıcı istemi olacak. 976 00:45:12,830 --> 00:45:17,810 Bu beni daha sonra yazmak icar gibi D-A-V-I-d bir kağıt parçası üzerine. 977 00:45:17,810 --> 00:45:21,060 Ve ben dize derken s, GetString eşittir 978 00:45:21,060 --> 00:45:24,140 Eşit gerçekten anlamına gelmez C programlama eşit. 979 00:45:24,140 --> 00:45:27,880 Bu sağdan atamak anlamına gelir sol tarafına tarafta. 980 00:45:27,880 --> 00:45:29,510 >> Yani bir dize aldım. 981 00:45:29,510 --> 00:45:32,785 Ve eşit işareti koymak anlamına gelir depolama konteyner s çağırdı. 982 00:45:32,785 --> 00:45:36,730 Ve sonra kapalı bu geçmek printf aslında kendi şey yapmak. 983 00:45:36,730 --> 00:45:39,790 >> O zaman sonuç gidiyor biraz farklı bakmak için. 984 00:45:39,790 --> 00:45:40,840 En merhaba-2 yapabilirim edelim. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Ya işe yarayabilir. 987 00:45:45,260 --> 00:45:46,450 Sen birlikte aşağıdaki ediyoruz. 988 00:45:46,450 --> 00:45:47,940 Merhaba-2 çalışmış olun. 989 00:45:47,940 --> 00:45:52,640 Dot merhaba-2, Enter çizgi. 990 00:45:52,640 --> 00:45:54,620 >> Ben sonsuz var gibi görünüyor döngü falan. 991 00:45:54,620 --> 00:45:55,453 Hiçbir şey oluyor. 992 00:45:55,453 --> 00:45:56,134 Neden? 993 00:45:56,134 --> 00:45:57,805 >> İZLEYİCİ: Bu sonsuz bir döngüye yapıyor. 994 00:45:57,805 --> 00:45:59,430 DAVID J. MALAN: Bu sonsuz bir döngü olduğunu. 995 00:45:59,430 --> 00:46:02,710 Bu tür benim için bekliyor aslında bazı girişi ile bunu sağlamak. 996 00:46:02,710 --> 00:46:05,800 Bu yüzden bana go ahead ve yazın izin David ve Enter tuşuna basın. 997 00:46:05,800 --> 00:46:07,230 Ve şimdi "merhaba, David." Diyor 998 00:46:07,230 --> 00:46:09,040 Ben tekrar çalıştırın. 999 00:46:09,040 --> 00:46:11,530 En Rob, yazın edelim "merhaba, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Şimdi bu kötü Hiç kullanıcı arayüzü. 1001 00:46:13,900 --> 00:46:16,110 Kullanıcı görünüşte var ne yapacağını bilmek gerekiyordu. 1002 00:46:16,110 --> 00:46:17,120 Ama ne olursa olsun. 1003 00:46:17,120 --> 00:46:19,570 Bu aynı binayı kullanma Sadece Scratch gibi bloklar, 1004 00:46:19,570 --> 00:46:24,980 biz bu sorunu çözmek ve söyleyebiliriz lütfen adı gibi bir şey, kolon, 1005 00:46:24,980 --> 00:46:27,820 uzay, yakın, alıntı kapalı parantez, noktalı virgül. 1006 00:46:27,820 --> 00:46:30,680 Yani bir sürü tekrar sözdizimi ile sersemlik. 1007 00:46:30,680 --> 00:46:34,040 >> Ama ben sadece bir ekledik fark Bu bir üstündeki bulmaca parçası 1008 00:46:34,040 --> 00:46:35,280 ve bu yukarıda. 1009 00:46:35,280 --> 00:46:38,870 Yani şimdi ben bu yeniden eğer, merhaba-2, girin. 1010 00:46:38,870 --> 00:46:41,180 Bir dakika bekle. 1011 00:46:41,180 --> 00:46:41,830 Sorun nedir? 1012 00:46:41,830 --> 00:46:43,570 Bu farklı herhangi davranıyor değil. 1013 00:46:43,570 --> 00:46:44,200 Evet. 1014 00:46:44,200 --> 00:46:46,010 >> İZLEYİCİ: Tekrar yapmak çalıştırmak vermedi. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. MALAN: ben yapmadım Doğru, yeniden yapmak çalıştırın. 1016 00:46:47,968 --> 00:46:49,430 Yani benim kaynak kodunu değiştirdim. 1017 00:46:49,430 --> 00:46:50,638 Fakat yine de, bu akış var. 1018 00:46:50,638 --> 00:46:54,530 Derleyici ile Kaynak kodu verir Eğer yeni bir nesne kodunu veya 0'lar ve 1'ler. 1019 00:46:54,530 --> 00:47:00,209 Yani aslında gerek merhaba-2 girin rerun yapmak. 1020 00:47:00,209 --> 00:47:01,750 Tamam, bir şey olmuş gibi görünüyor. 1021 00:47:01,750 --> 00:47:04,220 Nokta merhaba-2 çizgi. 1022 00:47:04,220 --> 00:47:05,390 Adınız lütfen. 1023 00:47:05,390 --> 00:47:09,990 Ve şimdi açık olmak, neden Aynı hat üzerinde imleç? 1024 00:47:09,990 --> 00:47:10,490 Kesinlikle. 1025 00:47:10,490 --> 00:47:13,020 Ben ters eğik çizgi koymadı n buraya benim kod. 1026 00:47:13,020 --> 00:47:16,110 Yani şimdi ben yazabilirsiniz Daven gibi bir şey, girin. 1027 00:47:16,110 --> 00:47:18,710 Ben tekrar çalıştırın ve yazabilirsiniz Gabe gibi bir şey, Enter 1028 00:47:18,710 --> 00:47:22,250 ve biz farklı bir program olsun Tekrar ve tekrar ve tekrar. 1029 00:47:22,250 --> 00:47:28,940 >> Şimdi sonuçta ihtiyacımız olacak birkaç farklı yetenekleri kullanmak için. 1030 00:47:28,940 --> 00:47:32,860 Biz sonuçta bazı tanıtmak gerekiyor koşulları şartlı şeyler yapmak. 1031 00:47:32,860 --> 00:47:35,550 Belki bu yüzden yapabileceğimiz döngüler Tekrar ve tekrar şeyler. 1032 00:47:35,550 --> 00:47:38,220 >> Belki güzel olurdu biz eğer Kendi fonksiyonları uygulamak, 1033 00:47:38,220 --> 00:47:41,355 gibi biz kendi uygulamak printf veya getString bizim kendi versiyonu 1034 00:47:41,355 --> 00:47:45,870 ve GetFlow, çünkü sonuç olarak, hatta Bu komut satırı ortamı kullanarak 1035 00:47:45,870 --> 00:47:49,780 biz bile en yapabilir şeyleri görsel olarak ilginç. 1036 00:47:49,780 --> 00:47:51,950 >> Aslında sonuç olarak bana yapalım. 1037 00:47:51,950 --> 00:47:54,020 Ben önde gitmek için gidiyorum ve bu pencereleri kapatın 1038 00:47:54,020 --> 00:47:57,400 ve burada bu simgeyi açın, hangi sadece bir büyüktür 1039 00:47:57,400 --> 00:48:00,020 Bu sürümü gömülü Terminal penceresi. 1040 00:48:00,020 --> 00:48:02,329 Böylece gEdit değil, sadece kodumu için yer, 1041 00:48:02,329 --> 00:48:05,620 ama aynı zamanda bir terminal penceresinde inşa, Ben çalıştırabilirsiniz siyah ve beyaz pencere 1042 00:48:05,620 --> 00:48:06,230 komutları. 1043 00:48:06,230 --> 00:48:08,600 >> Ben sadece açmak oldu Bu daha büyük bir versiyonu. 1044 00:48:08,600 --> 00:48:11,170 Ve şimdi ben gitmek için gidiyorum Ben zaten var klasör 1045 00:48:11,170 --> 00:48:13,150 dersin web sitesinde önceden koydu. 1046 00:48:13,150 --> 00:48:16,720 Ve ben önde gitmek için gidiyorum ve , thadgavin.c adlı bir dosyayı açmak 1047 00:48:16,720 --> 00:48:18,710 hangi başkası tarafından yazılmıştır. 1048 00:48:18,710 --> 00:48:21,220 >> Ve biz bu bakarsanız, Bu kodun türden değil 1049 00:48:21,220 --> 00:48:24,370 Biz bu yana yazılı olacak Bu kodun amacı 1050 00:48:24,370 --> 00:48:28,450 güzel yazmak oldu Bu o olabilir kod arıyorum, 1051 00:48:28,450 --> 00:48:31,290 bağımsız olarak olup olmadığını Başka bir insanın hiç olabilir 1052 00:48:31,290 --> 00:48:33,660 Bu kodu anlamak. 1053 00:48:33,660 --> 00:48:37,050 >> Nitekim, her yıl ne var karmaşıklaştırılmış C yarışma denilen hangi 1054 00:48:37,050 --> 00:48:39,570 yazmak gerçek meraklılarının için Başka hiç kimse okuyabilir kod, 1055 00:48:39,570 --> 00:48:42,050 ama bu da bir şey yok Gerçekten basit ya da gerçekten şaşırtıcı. 1056 00:48:42,050 --> 00:48:43,890 Ve biz diye düşündüm Bu görünüm ile sonuçlandırmak 1057 00:48:43,890 --> 00:48:48,300 Oldukça şaşırtıcı bir şey de Eğer daha önce bir kez görmüş olabilir. 1058 00:48:48,300 --> 00:48:52,650 Ama biz bu konuda bitireceğiz Not, nokta çizgi, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Bu daha sonra bekliyor budur. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Bu CS50 için var. 1062 00:48:58,500 --> 00:48:59,935 Çarşamba günü görecek. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [MÜZİK OYUN] 1065 00:49:10,016 --> 00:53:31,883