1 00:00:00,000 --> 00:00:03,353 >> [MÜZİK OYUN] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID MALAN: Herkese merhaba. 4 00:00:06,050 --> 00:00:07,777 Bu CS50 en supersection olduğunu. 5 00:00:07,777 --> 00:00:09,860 Atanan Bölümler olmaz Bir hafta başlayacak. 6 00:00:09,860 --> 00:00:11,580 Ve bu yüzden bugün, ben buradayım Şarkı söylemeyi kes 7 00:00:11,580 --> 00:00:12,122 >> MARIA: Maria. 8 00:00:12,122 --> 00:00:14,163 DAVID MALAN: aslında --to sorunun bir göz atın 9 00:00:14,163 --> 00:00:16,110 birini, ders en set malzemenin ilk hafta 10 00:00:16,110 --> 00:00:19,780 Eğer CS50 IDE ile odaklı olsun, biraz Linux, bu işletim sisteminin 11 00:00:19,780 --> 00:00:22,290 IDE üzerinde çalışan, aynı zamanda geçiş bazı bakmak 12 00:00:22,290 --> 00:00:25,730 C lider için Sıfırdan soruna bir tane ayarlayın. 13 00:00:25,730 --> 00:00:28,340 >> Bu yüzden daha fazla uzatmadan, probleminde, bir set 14 00:00:28,340 --> 00:00:30,520 olmak için gidiyoruz CS50 IDE, kişiye hangi 15 00:00:30,520 --> 00:00:33,230 Bu web tabanlı programlama Biz sırayla kullanın çevre 16 00:00:33,230 --> 00:00:34,280 programları yazmak için. 17 00:00:34,280 --> 00:00:37,280 Çok bakmak için tasarlanmıştır oldu Tipik bir bilgisayar anımsatan 18 00:00:37,280 --> 00:00:39,430 Bir işletim sistemi çalıştıran Linux denilen sistem. 19 00:00:39,430 --> 00:00:42,440 Ama sözde bulut var, hangi sınıfta herkesi demektir 20 00:00:42,440 --> 00:00:45,100 aslında olabilir onun ya da onu kendi hesabına, hem de bunu kullanmak ve. 21 00:00:45,100 --> 00:00:48,950 >> Yani sizin muhtemelen kullanılan hiç önce ya da belki bir Linux ortamında 22 00:00:48,950 --> 00:00:50,447 Hatta bir komut satırı ortamı. 23 00:00:50,447 --> 00:00:52,280 Ve bir komut satırı Çevre farklıdır. 24 00:00:52,280 --> 00:00:53,200 Her metinsel bu. 25 00:00:53,200 --> 00:00:54,730 Tüm klavye komutlarını var. 26 00:00:54,730 --> 00:00:59,480 Ve hiçbir mousing, hiçbir simge değil, Hiçbir diyalog pencereleri, hiçbir menüler. 27 00:00:59,480 --> 00:01:00,212 Bu tamamen metin var. 28 00:01:00,212 --> 00:01:01,920 Yani ilk başta, bu tür Bir adım gibi hissediyor 29 00:01:01,920 --> 00:01:04,434 geriye gelişmişliği açısından. 30 00:01:04,434 --> 00:01:06,600 Ama bir sürü olmak biter daha güçlü, kesinlikle, 31 00:01:06,600 --> 00:01:08,510 Bir bilgisayar bilimcisi için sonuçta. 32 00:01:08,510 --> 00:01:09,540 >> Yani bir göz atalım. 33 00:01:09,540 --> 00:01:13,850 İşte ben, CS50.io de olduğum aracılığıyla Eğer CS50 IDE oturum açabilirsiniz. 34 00:01:13,850 --> 00:01:17,414 Ve çok Scratch gibi, var Bu ekranda üç temel alanları. 35 00:01:17,414 --> 00:01:20,080 Yani sol tarafta, biz hangi dosya tarayıcısı olacak. 36 00:01:20,080 --> 00:01:22,413 Ve bu klasör de var Şu anda boş top, 37 00:01:22,413 --> 00:01:24,690 Tüm kurtuldum beri benim supersection önce dosyaları. 38 00:01:24,690 --> 00:01:27,599 Ve bu nerede olacak bulunuyor Biz yazmak C dosyaları kaydetmek. 39 00:01:27,599 --> 00:01:30,890 Sağ üst köşesinde, biz bir yere nerede var Bizim tüm kodu yazılı almak için gidiyor. 40 00:01:30,890 --> 00:01:34,610 Ve gerçekten, ben bu artı tıklarsanız, bu Beni Yeni Dosya seçmesine izin gidiyor. 41 00:01:34,610 --> 00:01:38,310 Ve burada ben veya C kod yazmaya başlayabilirsiniz, Gerçekten, diğer dillerin herhangi bir sayı. 42 00:01:38,310 --> 00:01:42,670 >> Ve sonra nereye dibinde diyor jharvard @ ide50-- ve seninki olacak 43 00:01:42,670 --> 00:01:45,080 bir şeyler söylemek different-- Bu ne denirdi? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Terminal penceresi. 46 00:01:49,310 --> 00:01:49,570 Evet. 47 00:01:49,570 --> 00:01:51,810 Yani terminal penceresi olan Sözde komut satırı 48 00:01:51,810 --> 00:01:55,540 etkileşim hangi aracılığıyla arabirimi Altta yatan işletim sistemi ile. 49 00:01:55,540 --> 00:01:58,220 Ve şimdi, biz gidiyoruz bu-- çok az faydalanmak 50 00:01:58,220 --> 00:02:01,170 Sadece bakmak, derlemek Gördüğümüz hata mesajları, 51 00:02:01,170 --> 00:02:02,347 ve bizim programları çalıştırmak için. 52 00:02:02,347 --> 00:02:04,680 Ama sonuçta, biz gidiyoruz yanı sıra, çok daha fazlasını yapmak için. 53 00:02:04,680 --> 00:02:07,490 Ve hatta yazılımı yükleyebilirsiniz ve Çalışma alanınızı yönetmek 54 00:02:07,490 --> 00:02:09,066 CS50 IDE içinde, hem de. 55 00:02:09,066 --> 00:02:10,440 Ama bu başka bir zaman daha. 56 00:02:10,440 --> 00:02:12,689 >> O yüzden go ahead ve yazalım çok basit bir program, sadece 57 00:02:12,689 --> 00:02:15,064 bir ısınma geçmesi belki de merhaba.c, 58 00:02:15,064 --> 00:02:16,480 Biz yazabilirsiniz basit bir program. 59 00:02:16,480 --> 00:02:18,330 Zaten yeni bir sekme açtık. 60 00:02:18,330 --> 00:02:24,310 Ben devam edeceğim ve Standart io.h dahil söylüyor 61 00:02:24,310 --> 00:02:25,325 Sonra ana (void) int. 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 Ve sonra printf ("hello, world" ters eğik çizgi n, yakın alıntı, 64 00:02:35,200 --> 00:02:39,480 yakın parantez ve noktalı virgül. 65 00:02:39,480 --> 00:02:39,990 >> Pekala. 66 00:02:39,990 --> 00:02:41,700 Yani şimdi benim pencere isimsiz olduğunu fark. 67 00:02:41,700 --> 00:02:44,840 Yani çok hızlı gidiyorum Kaydet Dosya kadar gitmek. 68 00:02:44,840 --> 00:02:46,910 Ve o önemli Ben "merhaba". Bu yok diyoruz 69 00:02:46,910 --> 00:02:49,243 Yani çok yaygın bir hatadır, Özellikle problem biri set 70 00:02:49,243 --> 00:02:52,530 yanlışlıkla sadece aramak aşağıdadır Program, "su" ya da "açgözlü" ya da "Mario" 71 00:02:52,530 --> 00:02:53,890 "Kredi" veya benzeri ya da. 72 00:02:53,890 --> 00:02:55,970 Ama aslında yapmak istiyorum emin dosya uzantısı 73 00:02:55,970 --> 00:02:58,928 Bu tek yol olduğunu, çünkü derleyici ve ayrıca kod editörü 74 00:02:58,928 --> 00:03:00,710 sen biliyor Aslında C kod yazma. 75 00:03:00,710 --> 00:03:02,280 Bu yüzden bana go ahead ve Kaydet'i tıklatın edelim. 76 00:03:02,280 --> 00:03:05,710 >> Ve şimdi de ne CS50 IDE o da var olan bizim için yapmış 77 00:03:05,710 --> 00:03:07,120 sözdizimi her şeyi vurguladı. 78 00:03:07,120 --> 00:03:08,822 Bu yüzden her şey çok renkli hale getirdi. 79 00:03:08,822 --> 00:03:10,780 Ve bütün amacı Bu işlevsel değildir. 80 00:03:10,780 --> 00:03:14,290 O benim gözleri çizmek için sadece var kavramsal olarak farklı parçalar 81 00:03:14,290 --> 00:03:15,310 Bu programın. 82 00:03:15,310 --> 00:03:17,570 O yüzden go ahead ve bu derleme edelim. 83 00:03:17,570 --> 00:03:19,490 Ve ben bu derleyebilirsiniz şekillerde birkaç. 84 00:03:19,490 --> 00:03:22,010 Ve haftada tek yer, eski okul yolu yaptığımız 85 00:03:22,010 --> 00:03:26,250 en tam anlamıyla komutunun LINE "clang merhaba.c." 86 00:03:26,250 --> 00:03:27,596 Ve sonra Enter tuşuna basın. 87 00:03:27,596 --> 00:03:29,720 Ve hiçbir şey olmuyor Terminal penceresinde. 88 00:03:29,720 --> 00:03:32,654 Ama IDE değişikliği ne yaptı? 89 00:03:32,654 --> 00:03:35,320 Nerede, yine IDE sadece anlamına gelir Entegre geliştirme ortamı. 90 00:03:35,320 --> 00:03:38,360 Bu söylemenin süslü yolu Bu entegre kalkınma 91 00:03:38,360 --> 00:03:40,620 yazılım geliştirme için ortam. 92 00:03:40,620 --> 00:03:42,477 Yani UI ne değişti? 93 00:03:42,477 --> 00:03:44,310 Ne fark ettiniz O Maria, farklı? 94 00:03:44,310 --> 00:03:47,100 >> MARIA: Ben bir şey fark ettim IDE50 altında burada klasörü. 95 00:03:47,100 --> 00:03:47,850 >> DAVID MALAN: Evet. 96 00:03:47,850 --> 00:03:50,230 Yani burada, sadece Elimizde "hello.c dosyasını." 97 00:03:50,230 --> 00:03:53,120 Biz de hangi ", a.out" var Bir program için bir aptal isim tür. 98 00:03:53,120 --> 00:03:56,430 Ama gerçekten, bu varsayılan isim Eğer sadece kodunuzu derlemek programı 99 00:03:56,430 --> 00:03:59,110 ve derleyici söyleme çıktı ne dosyası. 100 00:03:59,110 --> 00:04:01,790 Yani bu çalıştırmak istiyorsanız, ben compiler-- söylememe gerek 101 00:04:01,790 --> 00:04:05,340 ya da daha doğrusu, ben gerek Çalışma alanını söyle ben 102 00:04:05,340 --> 00:04:09,780 denilen bir programı çalıştırmak istiyorum "a.out." 103 00:04:09,780 --> 00:04:10,550 Girin. 104 00:04:10,550 --> 00:04:12,474 Ve, merhaba "var dünya. "şimdi" ./ ". 105 00:04:12,474 --> 00:04:13,390 Aslında önemli. 106 00:04:13,390 --> 00:04:16,050 Hatta normalde biz sadece olsa komutların adlarını yazma, 107 00:04:16,050 --> 00:04:19,060 Eğer ettik bir program olduğunda yazılı, siz "./" demek istiyorsun 108 00:04:19,060 --> 00:04:22,460 açıkça Linux söyler çünkü adlı bir programı çalıştırmak istiyorum 109 00:04:22,460 --> 00:04:26,930 Bu öyle "a.out", nokta Şu anda ben bu dizinin anlamı 110 00:04:26,930 --> 00:04:31,600 olur yılında, "a.out, çalışma alanı olarak adlandırılır. 111 00:04:31,600 --> 00:04:35,410 Ben sadece söylediğim Çünkü eğer "a.out," Enter, Ben komuta a.out "değil alacağım 112 00:04:35,410 --> 00:04:38,035 Bulunan "computer-- çünkü Ben icat çünkü "a.out;" 113 00:04:38,035 --> 00:04:40,910 o computer-- ile gelmedi Nerede bunun için bakmak bilmiyor, 114 00:04:40,910 --> 00:04:43,590 Hatta doğru olsa Burnumun altında, tabiri caizse. 115 00:04:43,590 --> 00:04:44,090 TAMAM. 116 00:04:44,090 --> 00:04:49,910 Yani biz bu değişebilir "merhaba -o clang merhaba.c." olarak 117 00:04:49,910 --> 00:04:53,030 Ve ben Enter hit eğer, ne programı Bu benim için çıkış olacak? 118 00:04:53,030 --> 00:04:55,710 Dosyanın adı nedir? 119 00:04:55,710 --> 00:04:57,500 Evet, arkada. 120 00:04:57,500 --> 00:04:58,479 Doğru. "Merhaba." 121 00:04:58,479 --> 00:05:00,520 Yani "merhaba" olacak Programın adı 122 00:05:00,520 --> 00:05:04,610 kullandığımız için sözde Sadece bir komut satırı argümanı, 123 00:05:04,610 --> 00:05:08,120 davranışını değiştirmenin bir yolu aslında çıkışa derleyici 124 00:05:08,120 --> 00:05:09,450 belirli bir dosya adı. 125 00:05:09,450 --> 00:05:12,400 Ve gerçekten, ben Büyütmek eğer dışarı ve buraya bak, 126 00:05:12,400 --> 00:05:17,430 şimdi ben sadece "a.out" ve hem de "merhaba.c" ama aynı zamanda "merhaba". 127 00:05:17,430 --> 00:05:22,410 Yani şimdi ben bunu "./hello," Enter olabilir. 128 00:05:22,410 --> 00:05:23,640 Ve "merhaba dünya" var. 129 00:05:23,640 --> 00:05:25,640 Lastly-- ve Ancak Şimdi kongre olacak 130 00:05:25,640 --> 00:05:27,590 biz boyunca kullanmak yarıyıl, typically-- 131 00:05:27,590 --> 00:05:30,070 Ayrıca sadece söyleyebiliriz "Merhaba olun." 132 00:05:30,070 --> 00:05:33,370 Ve gerçekten, o kadar olduğunu söylüyor Bugüne kadar zaten varolduğundan. 133 00:05:33,370 --> 00:05:37,860 Beni go ahead ve birlikte kaldırmak edelim rm komutu, "a.out" hem - 134 00:05:37,860 --> 00:05:39,644 ve demek "normal dosya a.out kaldırılsın mı?" 135 00:05:39,644 --> 00:05:41,810 Sadece anlamına gelir, sen Emin bunu silmek istiyor? 136 00:05:41,810 --> 00:05:42,880 Ben evet demek için gidiyorum. 137 00:05:42,880 --> 00:05:46,690 Ve sonra kaldırmak için gidiyorum "Merhaba" değil "merhaba.c." 138 00:05:46,690 --> 00:05:49,920 Ben açıkça "evet" demek için gidiyorum ama "y", hem de yeterlidir. 139 00:05:49,920 --> 00:05:52,140 >> Ve şimdi eğer fark ben , ls-- ki, geri çağırma yazın 140 00:05:52,140 --> 00:05:55,540 tüm listeler list-- demektir Benim Klasördeki dosyaların. 141 00:05:55,540 --> 00:05:57,850 Ve gerçekten, ben Büyütmek eğer dışarı ve sol üst bakmak, 142 00:05:57,850 --> 00:05:59,730 ne olduğunu doğruladı Bu klasörde, hatta 143 00:05:59,730 --> 00:06:04,990 o kadar burada IDE50 olarak etiketlenmiş gerçi ve çalışma alanı, sadece "merhaba.c." var 144 00:06:04,990 --> 00:06:09,152 Yani şimdi buraya, ben ise Enter "Merhaba, yapmak" do, 145 00:06:09,152 --> 00:06:12,360 şimdi çok daha uzun bir komutu görüyoruz, ama gidiyor daha sofistike bir komut 146 00:06:12,360 --> 00:06:13,940 gelecek hafta içerisinde faydalı olması. 147 00:06:13,940 --> 00:06:16,720 Ve şimdi "./hello." Diyebilirsiniz 148 00:06:16,720 --> 00:06:19,257 >> Yani hızlı bir tur atalım Bazı diğer Linux komutları. 149 00:06:19,257 --> 00:06:21,840 O zaman neden bir adım yapmayız sırt ve aslında daha C bakmak 150 00:06:21,840 --> 00:06:25,020 Genellikle, Sıfırdan geçiş C ve daha sonra bir göz ile sonuçlandırmak 151 00:06:25,020 --> 00:06:27,305 İlk soruna C. set Pekala. 152 00:06:27,305 --> 00:06:30,430 Yani ileride sadece temiz gidiyorum Kontrol-L sadece benim çalışma alanı kadar 153 00:06:30,430 --> 00:06:31,429 temiz ekran tutmak için. 154 00:06:31,429 --> 00:06:33,520 Ama bu hiçbir fonksiyonel vardır Aksi takdirde etkilemektedir. 155 00:06:33,520 --> 00:06:35,820 >> Gördüğümüz hatırlayın Şimdi bir kaç komutlar. 156 00:06:35,820 --> 00:06:39,900 Bu yüzden hangi genellikle clang gördüm seni Artık elle yürütmek zorunda kalmazsınız. 157 00:06:39,900 --> 00:06:41,650 Biz bunun yerine make kullanacağız. 158 00:06:41,650 --> 00:06:45,290 Ama biz de bir gösteren, ls gördüm Benim dizindeki dosyaların listesi. 159 00:06:45,290 --> 00:06:48,750 Ve şimdi neden orada-- iki tane var olduğunu Şimdi dosyalar "merhaba" ve "merhaba.c." 160 00:06:48,750 --> 00:06:52,240 Neden bir yıldız ya da orada "merhaba" sonra yıldız? 161 00:06:52,240 --> 00:06:54,900 Bu esaslı, ne ifade vermedi Biz hafta biri gördüm ne? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Ne düşünüyorsun? 164 00:07:00,400 --> 00:07:02,742 Yıldız ne anlama geliyor? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: "merhaba" programı For--? 166 00:07:04,614 --> 00:07:05,530 DAVID MALAN: "Merhaba *". 167 00:07:05,530 --> 00:07:06,330 Evet. 168 00:07:06,330 --> 00:07:07,760 Ah evet? 169 00:07:07,760 --> 00:07:08,639 Ah, çalıştırılabilir. 170 00:07:08,639 --> 00:07:09,180 Doğru. 171 00:07:09,180 --> 00:07:10,890 Yani bunun anlamı "merhaba" yürütülebilir. 172 00:07:10,890 --> 00:07:13,430 Yani aslında, bu yüzden Ben "./hello." Yapabilirsiniz 173 00:07:13,430 --> 00:07:13,930 Pekala. 174 00:07:13,930 --> 00:07:15,179 Peki başka ne ben burada yapabilirim? 175 00:07:15,179 --> 00:07:17,290 Eh, ben can çıkıyor Ayrıca dizinleri oluşturun. 176 00:07:17,290 --> 00:07:20,924 Bu yüzden bana go ahead ve yapalım, Örneğin, bir "pset1" dizin. 177 00:07:20,924 --> 00:07:23,590 Ve sorun set şartname tam olarak bunu yapmak zorunda olacak, 178 00:07:23,590 --> 00:07:25,260 bu yüzden bugün hatırlamak zorunda değilsiniz. 179 00:07:25,260 --> 00:07:27,340 Ama "mkdir pset1" görünüyor Hiçbir etkiye sahip. 180 00:07:27,340 --> 00:07:30,540 Fakat yine de, hiçbir hata mesajı Genellikle iyi bir şeydir. 181 00:07:30,540 --> 00:07:34,060 Yani, ah şimdi-- şimdi "ls" yazarsanız Aradım bir yürütülebilir dosya var 182 00:07:34,060 --> 00:07:36,570 "Merhaba," C dosyası "hello.c dosyasını" denir. 183 00:07:36,570 --> 00:07:40,860 Ve sonra firar çizgi, böylece konuşmak, bu bir dizin olduğu anlamına gelir. 184 00:07:40,860 --> 00:07:42,510 >> Yani aslında, şimdi onu açmak istiyorum. 185 00:07:42,510 --> 00:07:45,730 Ve ben gibi üzerine çift tıklayın yok Bir GUI, grafiksel bir ortamda. 186 00:07:45,730 --> 00:07:48,550 Bunun yerine "cd pset1." Demek 187 00:07:48,550 --> 00:07:49,640 Girin. 188 00:07:49,640 --> 00:07:53,100 Ilginç bir şey var gibi görünüyor Benim küçük istemi dışında oldu 189 00:07:53,100 --> 00:07:57,300 burada-- bu hatırlatan Linux'un yoludur Bana nerede olduğumu, bu yüzden hangi klasörün açıktır. 190 00:07:57,300 --> 00:08:00,080 Sadece açıkça bana söylüyor grafiksel olarak karşı çıktı. 191 00:08:00,080 --> 00:08:05,100 Ben yazarsanız Ve "ls," neden başka görüyorum Sizce, hemen istemi, 192 00:08:05,100 --> 00:08:07,269 Ben pset1 içeriğini listelemek zaman? 193 00:08:07,269 --> 00:08:09,310 MARIA: Muhtemelen değil Orada bir şey var. 194 00:08:09,310 --> 00:08:09,630 DAVID MALAN: Evet. 195 00:08:09,630 --> 00:08:11,510 Öyleyse biz tabii ki değil var Orada bir şey yarattı 196 00:08:11,510 --> 00:08:13,150 Ben sadece dizin yarattı çünkü. 197 00:08:13,150 --> 00:08:17,690 Şimdi, ben bir file-- yaratmak istedim örnek, ben yeni bir dosya oluşturabilirsiniz. 198 00:08:17,690 --> 00:08:20,190 Ve sonra ben gidebilirim Kaydet ve olarak kaydetmek, 199 00:08:20,190 --> 00:08:23,090 gibi "mario.c" Eğer yapıyoruz pset biri standart edition. 200 00:08:23,090 --> 00:08:27,610 Ve sonra, herhangi bir Mac veya PC gibi, sadece Kaydet klasör "pset1 seçin. 201 00:08:27,610 --> 00:08:28,740 Ve şimdi dosya boş. 202 00:08:28,740 --> 00:08:31,160 Ama bir saniye için yine yakınlaştırmak verelim. 203 00:08:31,160 --> 00:08:32,470 Burada ls yapalım. 204 00:08:32,470 --> 00:08:34,470 Şimdi "mario.c" bölümüne bakınız. 205 00:08:34,470 --> 00:08:37,850 >> Yani birkaç diğer komutları var ki seferinde-- üzerinde akılda tutmakta fayda vardır 206 00:08:37,850 --> 00:08:41,200 açık ya da Kontrol-L Birkaç gün önce ne isabet olmuş; mkdir gördüğümüz; 207 00:08:41,200 --> 00:08:45,240 rm biz hangi yanı sıra, gördüm kaldırma veya bir dosyayı silmek için. 208 00:08:45,240 --> 00:08:49,310 Eğer bakarsanız also-- edebilirsiniz sakının ve çevrimiçi öğreticiler, sen -rf rm edeceğiz 209 00:08:49,310 --> 00:08:52,630 diyerek çok yaygın bir şekilde İçinde şeyler vardır bir klasörü silin. 210 00:08:52,630 --> 00:08:54,280 Sadece süper dikkatli, süper olacak. 211 00:08:54,280 --> 00:08:58,780 -rf recursively demektir ne olursa olsun silmek 212 00:08:58,780 --> 00:09:01,150 Silmek için çalışıyoruz ve zorla silin. 213 00:09:01,150 --> 00:09:04,630 Bir klasör ile eğer araçları Yani özyinelemeli bir klasör ile bir klasör bir klasör, 214 00:09:04,630 --> 00:09:05,690 hepsini silin. 215 00:09:05,690 --> 00:09:08,680 Ve zorla bile yapmak anlamına gelir evet bana soracak ya da hayır, eminim? 216 00:09:08,680 --> 00:09:11,960 Yani süper tehlikeli bir yoldur hızla sürü silme. 217 00:09:11,960 --> 00:09:17,210 Ama beware-- çok sık bir cesur yapar Öğrenci yanlışlıkla, diyelim ki, pset silmek 218 00:09:17,210 --> 00:09:18,000 Örneğin, bir,. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: Ve onlar eğer sadece -r yapmak, onlar gidiyoruz 220 00:09:19,833 --> 00:09:21,870 her dosya hakkında onlara sormak. 221 00:09:21,870 --> 00:09:22,790 >> DAVID MALAN: is orta can sıkıcı. 222 00:09:22,790 --> 00:09:23,480 >> MARIA: Evet. 223 00:09:23,480 --> 00:09:25,813 >> DAVID MALAN: Yani bu yüzden Bize o kadar çok, kendini dahil, 224 00:09:25,813 --> 00:09:27,070 rf kullanma alışkanlığı duyuyorum. 225 00:09:27,070 --> 00:09:27,861 Ama tehlikeli. 226 00:09:27,861 --> 00:09:29,010 Yani alıcı sakının. 227 00:09:29,010 --> 00:09:31,050 Ve sonra mv tür bir İlginçtir atadı. 228 00:09:31,050 --> 00:09:33,600 Yani bu hareket komutu, hangi biraz garip hissediyor 229 00:09:33,600 --> 00:09:37,260 Eğer gerçekten bunu kullanabilirsiniz, çünkü başka bir yerden dosyaları taşıyın. 230 00:09:37,260 --> 00:09:39,970 Örneğin, ben berbat olduğunu varsayalım. 231 00:09:39,970 --> 00:09:43,660 Ben yarattığını varsayalım pset için yeni bir dosya. 232 00:09:43,660 --> 00:09:46,320 Ve ben sakladım "greedy.c." 233 00:09:46,320 --> 00:09:49,970 Ama yanlışlıkla ben varsayalım kaydetmek IDE50-- benim çalışma alanında kendisinde böylece 234 00:09:49,970 --> 00:09:51,580 olup pset1 bölgesindeki. 235 00:09:51,580 --> 00:09:53,960 >> Sen sol üst kısmında kadar görebilirsiniz. 236 00:09:53,960 --> 00:09:55,284 "Greedy.c." Orada 237 00:09:55,284 --> 00:09:56,450 Ve birkaç çözüm var. 238 00:09:56,450 --> 00:09:58,324 Yani biri kullanabilir miyim Süper kullanıcı dostu bir şekilde 239 00:09:58,324 --> 00:09:59,740 sadece sürükleyip bırakarak. 240 00:09:59,740 --> 00:10:01,910 Ve aslında olur Bu sorunu gidermek. 241 00:10:01,910 --> 00:10:04,967 Ama bugün, biz bakmak için çalışıyoruz daha gizemli ama güçlü yolları 242 00:10:04,967 --> 00:10:05,550 Bu yapıyorum. 243 00:10:05,550 --> 00:10:07,880 Bu yüzden bana pset1 içinde "ls" atalım. 244 00:10:07,880 --> 00:10:09,690 Ve ben sadece "mario.c." Bkz 245 00:10:09,690 --> 00:10:13,450 Beni go ahead ve yapalım "cd ..". 246 00:10:13,450 --> 00:10:15,320 Yani CD tekrar değişiklik dizin. 247 00:10:15,320 --> 00:10:18,130 ".." Olsa ne demek? 248 00:10:18,130 --> 00:10:21,100 Son kez dedim "cd pset1 "pset1 gitmek. 249 00:10:21,100 --> 00:10:24,360 Ben "cd .." derken Peki, ben ne yapıyorum? 250 00:10:24,360 --> 00:10:24,910 Geriye doğru. 251 00:10:24,910 --> 00:10:25,150 Evet. 252 00:10:25,150 --> 00:10:26,750 >> Yani sözde ebeveyne gidiyor. 253 00:10:26,750 --> 00:10:29,730 Gibi, bir seviye yukarı git Bir klasörün dışına çıkmadan. 254 00:10:29,730 --> 00:10:30,500 Yani girin. 255 00:10:30,500 --> 00:10:31,900 Ve gerçekten de yaptığına bak. 256 00:10:31,900 --> 00:10:37,070 Bunun yerine sadece çalışma alanına bana taşındı bir çalışma alanında olduğu pset1 içine. 257 00:10:37,070 --> 00:10:39,710 Ve şimdi "ls" yazarsanız, şeyler bir sürü var. 258 00:10:39,710 --> 00:10:41,650 In "greedy.c" var. 259 00:10:41,650 --> 00:10:48,720 Yani şimdi beni tam anlamıyla için mv kullanmasına izin pset1 içine "greedy.c" hareket ettirin. 260 00:10:48,720 --> 00:10:51,120 Ve böylece Linux'un bir sürü komutları aynen böyle çalışır. 261 00:10:51,120 --> 00:10:54,470 Onlar hiçbir argüman alabilir ya da birini almak argüman ya da iki komut satırı almak 262 00:10:54,470 --> 00:10:55,449 argümanlar ve benzeri. 263 00:10:55,449 --> 00:10:57,240 Bu durumda, var: Kelimenin tam anlamıyla ne yapıyor 264 00:10:57,240 --> 00:11:01,670 o succinctly-- olsa diyor pset1 içine greedy.c hareket eder. 265 00:11:01,670 --> 00:11:02,310 Girin. 266 00:11:02,310 --> 00:11:03,310 Hiçbir şey gibi görünüyor. 267 00:11:03,310 --> 00:11:06,180 Ben yine ls Ama eğer, açgözlü gitti. 268 00:11:06,180 --> 00:11:12,437 Ben "cd pset1" yaparsanız, o zaman girin ve ls yine şimdi doğru yerde var. 269 00:11:12,437 --> 00:11:14,270 Bir kenara, için sanki Bazı özellikle nedenden 270 00:11:14,270 --> 00:11:16,194 Eğer aralıklı varsa Ağ bağlantısı 271 00:11:16,194 --> 00:11:18,360 ya da çevrede yürüyorsun dizüstü kapaklı kampüs 272 00:11:18,360 --> 00:11:20,180 kapalı ve daha sonra o kadar açık Tekrar ve çalışma alanı 273 00:11:20,180 --> 00:11:21,730 biraz senkron, hiçbir büyük anlaşma dışında görünüyor. 274 00:11:21,730 --> 00:11:23,646 Sadece tarayıcınızı yeniden Pencere ve olması gerektiği 275 00:11:23,646 --> 00:11:26,339 yeniden senkronizasyonu ve böylece sol-taraf Dosya tarayıcısı tam olarak görünüyor 276 00:11:26,339 --> 00:11:27,380 terminal penceresinde gibi. 277 00:11:27,380 --> 00:11:27,921 Endişe etmeyin. 278 00:11:27,921 --> 00:11:31,460 Şüpheye düşerseniz, bu yüzden, sayfayı yeniden Uzun zaten dosyaları kaydettiğiniz olarak. 279 00:11:31,460 --> 00:11:31,960 TAMAM. 280 00:11:31,960 --> 00:11:34,710 Yani mv ayrıca dosyaları yeniden adlandırmak için kullanılır. 281 00:11:34,710 --> 00:11:36,760 Ve en az bir göz atalım Burada bu son komutu. 282 00:11:36,760 --> 00:11:39,950 Böylece suppose-- ve bu Süper ortak da erken. 283 00:11:39,950 --> 00:11:46,400 Bazı öğrenciler bazen bir dosya oluşturmak denilen en bir tane ne say-- izin mi verdin? 284 00:11:46,400 --> 00:11:47,730 "WATER.C." Gibi 285 00:11:47,730 --> 00:11:51,080 Yani sadece için, bağırma olacak Tüm kapaklar hiçbir sebep. 286 00:11:51,080 --> 00:11:53,190 Ancak bu değildir dosyası için doğru isim 287 00:11:53,190 --> 00:11:56,660 bizim sorunumuz set sadece çünkü eğer şartname sana söylemedim 288 00:11:56,660 --> 00:11:59,430 Tüm kapaklar dosyası olarak kaydetmek için "WATER.C." 289 00:11:59,430 --> 00:12:01,320 Bunun yerine, biz bekliyoruz küçük harflerle "water.c". 290 00:12:01,320 --> 00:12:03,140 Ve, aslında, bu sorunlu çünkü check50, 291 00:12:03,140 --> 00:12:04,370 Gittiğin bir program problem karşılamak için 292 00:12:04,370 --> 00:12:07,350 otomatik test bir set kodunuzu doğruluğu 293 00:12:07,350 --> 00:12:11,615 sen bağırma olacak eğer yapamaz Bütün küçük harflerle "water.c" bulmak. 294 00:12:11,615 --> 00:12:12,712 >> Yani bu düzeltmek gerekir. 295 00:12:12,712 --> 00:12:14,920 Yani birçok farklı yolu İlki bunu 296 00:12:14,920 --> 00:12:18,330 Kontrol tıklayın veya sağ tıklama olacaktır Dosya adı sadece Yeniden Adlandır değiştirin ve. 297 00:12:18,330 --> 00:12:19,740 Bunu yapmak için tamamen iyi. 298 00:12:19,740 --> 00:12:21,820 Fakat yine de, bugün, haydi biraz meraklısı yok. 299 00:12:21,820 --> 00:12:26,680 En değiştirmek için mv kullanın Let Için "WATER.C" "water.c." 300 00:12:26,680 --> 00:12:30,690 Yani aynı zamanda ilk argümanını kullanabilirsiniz İkinci argüman olarak yeniden adlandırın için 301 00:12:30,690 --> 00:12:34,455 İkinci argüman değil, eğer Aslında, bir klasör veya dizin adı. 302 00:12:34,455 --> 00:12:35,120 >> Pekala. 303 00:12:35,120 --> 00:12:39,560 Ve son olarak, küçük bir trick-- yüzden ben de varım Şu anda benim çalışma dizini. 304 00:12:39,560 --> 00:12:43,660 Ben pset biri içine almak istiyorsanız, Ben kesinlikle "cd pset1." Yazabilirsiniz 305 00:12:43,660 --> 00:12:47,260 Ama "pset1" yazmanız çok sıkıcı olduğunu veya dosya adları veya dizin adları daha uzun 306 00:12:47,260 --> 00:12:47,980 Hala. 307 00:12:47,980 --> 00:12:51,960 Bu yüzden çok sık Linux ne Eğer "PSE" yazmaya başlayın olduğunu yapabilirim 308 00:12:51,960 --> 00:12:56,100 ve sadece bıkmak Tab vurdu ve izin Sizin için bilgisayar rakam dışarı. 309 00:12:56,100 --> 00:12:58,190 Bu alışkanlık haline almak için Süper yararlı. 310 00:12:58,190 --> 00:13:01,079 Eğer varsa sadece yakalamak olduğunu Başlangıç ​​birden fazla dosya veya klasörleri 311 00:13:01,079 --> 00:13:02,870 harfi "p" ile ya da "ps" aklınıza gelebilecek 312 00:13:02,870 --> 00:13:05,525 önce birkaç daha yazın bilgisayar ne yapacağını bilir. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: Biz kısayolları gibi. 314 00:13:06,820 --> 00:13:08,695 >> DAVID MALAN: Bu irade Seni çok zaman kazandırabilir. 315 00:13:08,695 --> 00:13:11,930 Ve ayrıca, biz, derste söylediği gibi yukarı ve aşağı, tarihin kadar ilerleyebilirsiniz, 316 00:13:11,930 --> 00:13:15,461 son çalıştırılan bulmak için komutlar yanı sıra. 317 00:13:15,461 --> 00:13:15,960 Pekala. 318 00:13:15,960 --> 00:13:20,904 Yani şimdi, en dikkatimizi geri dönelim Basit bir program, merhaba dünya. 319 00:13:20,904 --> 00:13:22,195 Yani biz tam bu derledik. 320 00:13:22,195 --> 00:13:24,050 Ve şimdi neden yapmayız veri türleri bir göz 321 00:13:24,050 --> 00:13:26,776 ve daha sonra bazı geçiş C Kazı blok tekabül 322 00:13:26,776 --> 00:13:27,400 MARIA: Korku. 323 00:13:27,400 --> 00:13:30,031 Yani şimdi başladım o C programları yazarken, 324 00:13:30,031 --> 00:13:32,530 biz konuşmaya başlamak için gidiyoruz veri tipleri ve değişkenler hakkında. 325 00:13:32,530 --> 00:13:37,570 Bu yüzden bazı veri türleri olduğunu sen şimdi başlıyor bilmek isteyeyim 326 00:13:37,570 --> 00:13:39,400 olanlardır mavi vurgulanır. 327 00:13:39,400 --> 00:13:42,420 Bu yüzden, ilk int var Hangi tamsayı anlamına gelir. 328 00:13:42,420 --> 00:13:46,075 Ve bu senin gibi tamsayılar tutar sahip olabilir, böylece guessed-- 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 ve diğer tamsayı aklınıza gelebilecek söyledi. 330 00:13:47,950 --> 00:13:48,730 >> DAVID MALAN: Ve ayrıca negatif. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: Ve ayrıca negatif olanlar, evet. 332 00:13:50,220 --> 00:13:51,450 Ve 0. 333 00:13:51,450 --> 00:13:54,250 Sonra yüzer, sahip olduğu kayan nokta sayıları vardır. 334 00:13:54,250 --> 00:13:58,360 Böylece tüm gerçek sayılar var Bu ondalık noktaları var. 335 00:13:58,360 --> 00:14:03,960 Böylece 5,0, 5,2, ve hatta daha da noktadan sonraki basamak, 336 00:14:03,960 --> 00:14:05,620 yanı sıra, aynı zamanda negatif olanlar. 337 00:14:05,620 --> 00:14:07,530 Sonra bir karakter olan karakter var. 338 00:14:07,530 --> 00:14:10,240 Yani konuştuğumuz düşünüyorum Bu derste bugün. 339 00:14:10,240 --> 00:14:15,682 Ama biz, A example-- için, mektuplar var Char olarak saklanabilir B, C-. 340 00:14:15,682 --> 00:14:18,390 Ama sonra çok daha fazla sembol var bu char olarak saklanabilir. 341 00:14:18,390 --> 00:14:22,380 Ve bu ASCII olarak depolanır. 342 00:14:22,380 --> 00:14:25,280 >> Sonra bool, bu Boolean bulunmaktadır. 343 00:14:25,280 --> 00:14:29,067 Ve bu true değerlendirmek veya Yanlış veya sırasıyla 1 ve 0,. 344 00:14:29,067 --> 00:14:31,650 DAVID MALAN: Ve hatırlama o bool CS50 kütüphanesinden gelir. 345 00:14:31,650 --> 00:14:33,300 Yani yerleşik değil C ama süper kullanışlı 346 00:14:33,300 --> 00:14:34,850 doğru ve yanlış kavramı var. 347 00:14:34,850 --> 00:14:36,990 Ve hatta sana rağmen Eğlenceli gerçeği bence-- olabilir. 348 00:14:36,990 --> 00:14:43,700 Bir bool teknik kaç bit ihtiyacı Gerçekten, yanlış karşısında doğru temsil etmek? 349 00:14:43,700 --> 00:14:47,910 Kaç bit sizce Eğer maksimum, gerekir? 350 00:14:47,910 --> 00:14:48,790 Evet, sadece bir. 351 00:14:48,790 --> 00:14:52,077 Yani o C çıkıyor Size sadece bir bit veremem. 352 00:14:52,077 --> 00:14:54,160 Ölçü küçük birimi alabilirsiniz sekiz olduğunu. 353 00:14:54,160 --> 00:14:57,090 Bu yüzden onlar sen biraz savurgan Bütün bir bayt veya sekiz bit kullanarak, 354 00:14:57,090 --> 00:14:58,340 Doğru veya Yanlış temsil etmek. 355 00:14:58,340 --> 00:15:01,807 Ama bu bu sadece yolu CS50 kütüphanesi tarafından C uyguladı. 356 00:15:01,807 --> 00:15:04,890 MARIA: Biz konum Ve sonra olanlar olarak yaygın hakkında konuşmak için gitmiyorum 357 00:15:04,890 --> 00:15:08,060 sağ çift şimdi--, Bu büyük yüzen için. 358 00:15:08,060 --> 00:15:09,811 Uzun uzun ve kısa tamsayılar için de vardır. 359 00:15:09,811 --> 00:15:10,643 DAVID MALAN: Gerçekten. 360 00:15:10,643 --> 00:15:13,190 Pset biri hacker baskısında, biz aslında uzun uzun kullanın. 361 00:15:13,190 --> 00:15:15,801 Ama standart edition için, gerekli olmamalıdır. 362 00:15:15,801 --> 00:15:16,300 MARIA: Serin. 363 00:15:16,300 --> 00:15:17,361 TAMAM. 364 00:15:17,361 --> 00:15:20,110 Yani olması gerektiği operators-- Bunların çoğu muhtemelen tanıdık. 365 00:15:20,110 --> 00:15:22,620 Toplama +; çıkarma, -. 366 00:15:22,620 --> 00:15:24,070 Çarpma için, * var. 367 00:15:24,070 --> 00:15:25,900 Bu yüzden değil X genellikle kullandığınız. 368 00:15:25,900 --> 00:15:27,840 Bölümü, biz ters eğik çizgi var. 369 00:15:27,840 --> 00:15:31,380 Ve modulo son operatörü olduğunu şu anda hakkında konuşmak için gidiyoruz. 370 00:15:31,380 --> 00:15:35,610 Bu bize sağlayan bir operatör var bir bölümü kalanını alır. 371 00:15:35,610 --> 00:15:40,630 Biz% 4 varsa 2, 4 bölünmüş Yani 2 ile 0 bir geri kalan kısmı ile 2 'dir. 372 00:15:40,630 --> 00:15:41,740 Yani% 4 2 0 olduğunu. 373 00:15:41,740 --> 00:15:42,950 4,% 3 1. 374 00:15:42,950 --> 00:15:44,870 Tahmin olabilirdi% 4 5 4 olduğunu. 375 00:15:44,870 --> 00:15:48,860 Ve tüm bunları kullanırken hatırlıyorum operatörler PEMDAS kurallarını kullanın. 376 00:15:48,860 --> 00:15:54,060 >> DAVID MALAN: Yani, açık olmak eğer 4,% 2 yapmak, tam olarak neden bu 0 mı? 377 00:15:54,060 --> 00:15:57,480 >> Maria: 4 için bölünmesi 2 0 bir geri kalan kısmı ile 2 'dir. 378 00:15:57,480 --> 00:16:00,752 Yani modulo bize kadar o kalanı verir bölünme sonucu karşı. 379 00:16:00,752 --> 00:16:02,960 DAVID MALAN: Ve gerçekten, Bu yararlı ne bulacaksınız 380 00:16:02,960 --> 00:16:05,640 bazı sorunlar olduğu Bu, mutlaka biri değil 381 00:16:05,640 --> 00:16:08,040 Eğer yapmak istiyorsanız kendinizi kısıtlayan etkisi 382 00:16:08,040 --> 00:16:10,720 bir sayı aralığı şey aracılığıyla 0 gibi, 383 00:16:10,720 --> 00:16:13,904 etrafında sarmak için modulo kullanabilirsiniz Daha önce 2 milyar gibi daha 384 00:16:13,904 --> 00:16:16,320 ya da 4 milyar değer olduğunu Biz derste konuştuk. 385 00:16:16,320 --> 00:16:16,870 >> MARIA: Evet. 386 00:16:16,870 --> 00:16:19,429 Ve hatta belki "açgözlü" olarak. 387 00:16:19,429 --> 00:16:21,345 DAVID MALAN: Evet, içinde Sorun, hem de bir set. 388 00:16:21,345 --> 00:16:22,520 MARIA: Evet, güzel. 389 00:16:22,520 --> 00:16:24,340 DAVID MALAN: İyi ipucu. 390 00:16:24,340 --> 00:16:25,750 MARIA: Özür dilerim. 391 00:16:25,750 --> 00:16:28,590 Boolean yani expressions-- Boole operatörleri için, 392 00:16:28,590 --> 00:16:31,770 Biz ilgili tüm konuşmak için gidiyoruz Bu Bunun burada gördüğünüz. 393 00:16:31,770 --> 00:16:35,310 Yani şu anda, biz iki tane var Eşit işaretler eşittir için sıraladı. 394 00:16:35,310 --> 00:16:38,650 Yani bu karşılaştırma için vardır. 395 00:16:38,650 --> 00:16:40,830 Şimdiye kadar, sadece gördüğüm tek eşittir işareti. 396 00:16:40,830 --> 00:16:44,870 Biz atamak o zaman Bir değişkene bir değer. 397 00:16:44,870 --> 00:16:50,160 O halde, biz int n = 5 gördüm eğer Biz değişken n 5 atadık. 398 00:16:50,160 --> 00:16:55,600 Ama biz için == kullanmak istiyorsanız Karşılaştırma, biz eğer n == 5 kontrol edebilirsiniz. 399 00:16:55,600 --> 00:16:58,310 Ve n == 5 ise, o doğru. 400 00:16:58,310 --> 00:17:01,950 >> Yani Boole işleçleri temelde bize izin, 401 00:17:01,950 --> 00:17:04,670 Boole değerlendirmek Doğru veya yanlış olarak ifadeler. 402 00:17:04,670 --> 00:17:07,819 Yani biz var equals-- değil Ünlem işareti ve eşittir. 403 00:17:07,819 --> 00:17:14,240 Bu yüzden de n ise kontrol edebilir yapar eşit değildir 5-- yüzden n! = 5. 404 00:17:14,240 --> 00:17:17,640 Daha az veya eşit, daha az, daha büyük veya eşit, daha büyük, 405 00:17:17,640 --> 00:17:20,720 ve sonra biz mantıklı var AND ve mantıksal VEYA. 406 00:17:20,720 --> 00:17:24,060 Ve bu bize değerlendirmek için izin birlikte birden fazla Boole ifadeleri 407 00:17:24,060 --> 00:17:27,930 temelde bir araya gelmek olarak bir bütün Boole ifadesi. 408 00:17:27,930 --> 00:17:34,970 Biz numarasını bulmak istiyorsanız Yani, demek bu daha büyük 5 15'den az olduğu 409 00:17:34,970 --> 00:17:39,810 Aynı zamanda, biz kullanmak n olup olmadığını görmek için mantıksal AND işleci 410 00:17:39,810 --> 00:17:42,937 daha büyük 5 && az 15 n. 411 00:17:42,937 --> 00:17:44,770 DAVID MALAN: Ve burada, çok gerçekten kolay 412 00:17:44,770 --> 00:17:47,290 erken yanlışlıkla Sadece tek bir işareti kullanın 413 00:17:47,290 --> 00:17:48,572 ya da tek bir dikey çubuk. 414 00:17:48,572 --> 00:17:51,280 Ve umarım derleyici olacak bağırma aslında çünkü onlar 415 00:17:51,280 --> 00:17:52,530 çok farklı bir anlamı vardır. 416 00:17:52,530 --> 00:17:55,660 Bu meraklı için, onlar Bitsel işlemleri için kullanılan, 417 00:17:55,660 --> 00:17:57,197 Bireysel bit işletim. 418 00:17:57,197 --> 00:17:58,780 Ama burada onları çifti istiyorsun. 419 00:17:58,780 --> 00:18:01,560 Ve süper önemli olduğunu İlki, eşittir işareti, 420 00:18:01,560 --> 00:18:05,270 Eşitlik operatörü olarak hangi atama operatörü karşı. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: Ve dikey çubuk olduğunu Sil ve İade arasında yer. 422 00:18:08,552 --> 00:18:09,260 DAVID MALAN: Evet. 423 00:18:09,260 --> 00:18:11,420 Tipik bir Amerikan klavyesinde. 424 00:18:11,420 --> 00:18:13,190 >> MARIA: Evet. 425 00:18:13,190 --> 00:18:15,890 Yani sağ içine atlamak izin koşullu ifadeler. 426 00:18:15,890 --> 00:18:18,300 Scratch, sen ettik Zaten görüldüğü gibi, muhtemelen, 427 00:18:18,300 --> 00:18:22,730 eğer size izin ifadeleri bir şey doğruysa o zaman, kontrol 428 00:18:22,730 --> 00:18:23,660 başka bir şey yapmak. 429 00:18:23,660 --> 00:18:28,410 Yani istemiş olabilir senin sprite olup olmadığını kontrol etmek 430 00:18:28,410 --> 00:18:31,410 başka bir hareketli grafik dokunmadan veya ekranın sınır. 431 00:18:31,410 --> 00:18:35,520 Ve sonra istedik olabilir oyunu bitirmek ya da başka bir şey yapmak. 432 00:18:35,520 --> 00:18:40,000 Bunun için sözdizimi Yani "if (koşul)" dir. 433 00:18:40,000 --> 00:18:46,820 Yani eğer sizin sprite şey dokunuyor, Daha sonra küme parantezi içinde olduğunu yoktur. 434 00:18:46,820 --> 00:18:48,980 >> Sonra if-else ifadeleri var. 435 00:18:48,980 --> 00:18:54,080 Başka bize bir şeyler yapmanızı sağlar durum eğer biz 436 00:18:54,080 --> 00:18:55,870 Başlangıçta kontrol doğru değildir. 437 00:18:55,870 --> 00:19:01,530 Sprite dokunuyor Yani eğer Sınır başka, bunu başka bir şey yapmak. 438 00:19:01,530 --> 00:19:04,030 Yani, aksi takdirde başka bir şey yapmak. 439 00:19:04,030 --> 00:19:07,530 Sonra bunun için kısa bir örnek var. 440 00:19:07,530 --> 00:19:11,551 Yani eğer (military_time <12), biz printf istiyorum "Günaydın!" 441 00:19:11,551 --> 00:19:13,300 Else biz gidiyoruz printf "İyi akşamlar!" 442 00:19:13,300 --> 00:19:14,860 Temel bir örnek. 443 00:19:14,860 --> 00:19:15,680 >> DAVID MALAN: İyi. 444 00:19:15,680 --> 00:19:16,760 >> MARIA: Serin. 445 00:19:16,760 --> 00:19:18,560 Yani şimdi biz switch ifadeleri var. 446 00:19:18,560 --> 00:19:21,960 Genel can ifadeleri Anahtarı Bize aynı şey bir sürü yapmak için izin 447 00:19:21,960 --> 00:19:25,070 biz sadece konuştuk ifadeleri ise yaklaşık. 448 00:19:25,070 --> 00:19:29,440 Örneğin, şu anda elimizde switch ifadesinin genel formu 449 00:19:29,440 --> 00:19:33,870 bu bizi almasına izin veriyor Değişken olarak adlandırılan N 450 00:19:33,870 --> 00:19:37,670 ve bir sürü karşılaştırın farklı değerler, hangi burada 451 00:19:37,670 --> 00:19:40,010 CONSTANT1, CONSTANT2 çağrıda bulundular. 452 00:19:40,010 --> 00:19:41,150 Biz çok daha fazla olabilir. 453 00:19:41,150 --> 00:19:42,930 Ve bu davaları denir. 454 00:19:42,930 --> 00:19:46,280 >> Biz bir geçiş var ise statement-- ve bu eserler 455 00:19:46,280 --> 00:19:50,580 Sadece biz bir var integers-- için n var bu durumda değişken. 456 00:19:50,580 --> 00:19:53,840 N değişkeni ise , biz CONSTANT1 eşit 457 00:19:53,840 --> 00:19:59,720 kod bazı pasajı yürütecek ya da biz yapmak istediğim bir şey. 458 00:19:59,720 --> 00:20:01,280 Ve sonra kıracak. 459 00:20:01,280 --> 00:20:04,820 Yani sonu anlamına gelir switch deyimi 460 00:20:04,820 --> 00:20:08,120 eğer yürütme durur n, CONSTANT1 eşittir 461 00:20:08,120 --> 00:20:09,752 ve sonra programı devam edecek. 462 00:20:09,752 --> 00:20:11,835 Bu dışarı çıkar deyimi geçiş ve olacak 463 00:20:11,835 --> 00:20:13,520 Başka bir şey yapmaya devam. 464 00:20:13,520 --> 00:20:17,204 >> Bununla birlikte, n eşit değilse CONSTANT2 için CONSTANT1, o durumda 465 00:20:17,204 --> 00:20:17,870 kontrol edilecektir. 466 00:20:17,870 --> 00:20:21,750 Yani n, diğer CONSTANT2 eşitse kod pasajı idam edilecek. 467 00:20:21,750 --> 00:20:23,850 Ve o zaman kırarım bunun eşit ise. 468 00:20:23,850 --> 00:20:27,580 Ve sonra biz also-- değil olabilir mutlaka, varsayılan bir davayı rağmen-- 469 00:20:27,580 --> 00:20:32,290 n eşit yapmazsa hangi olur Eğer listelenen durumlardan herhangi. 470 00:20:32,290 --> 00:20:35,400 Ve varsayılan durumda, biz de mutlaka bir molaya ihtiyacım yok 471 00:20:35,400 --> 00:20:39,271 switch deyimi bilecek, çünkü varsayılan sonra sona gerektiğini 472 00:20:39,271 --> 00:20:40,270 dava eğer durum buysa. 473 00:20:40,270 --> 00:20:42,140 >> DAVID MALAN: Ama üslup, biz her zaman orada koydum. 474 00:20:42,140 --> 00:20:42,540 >> MARIA: Evet. 475 00:20:42,540 --> 00:20:42,710 >> DAVID MALAN: Evet. 476 00:20:42,710 --> 00:20:44,750 Yani özellikle başlarken Özellikle kişiler arasında daha eğer 477 00:20:44,750 --> 00:20:47,458 rahat, ben şahsen olur sadece IFS sopa ile tavsiye 478 00:20:47,458 --> 00:20:51,564 ve IFS-birinin ve if-else-if-birinin ve benzeri halinde 479 00:20:51,564 --> 00:20:53,480 onlar biraz çünkü daha basit. 480 00:20:53,480 --> 00:20:56,142 Bu güzel bir optimizasyon, ya hatta bazen estetik onu 481 00:20:56,142 --> 00:20:57,350 Kod daha okunabilir hale getirir. 482 00:20:57,350 --> 00:20:59,599 Ve aslında, muhtemelen orta dönem bir sorun görürsünüz 483 00:20:59,599 --> 00:21:02,504 sadece daha iyi görünüyor nerede set ve daha kolay insanlar için okuma 484 00:21:02,504 --> 00:21:03,670 Bir anahtar deyimini kullanarak. 485 00:21:03,670 --> 00:21:05,460 Ama dert etmeyin çok erken bu tutunarak. 486 00:21:05,460 --> 00:21:05,680 >> MARIA: Evet. 487 00:21:05,680 --> 00:21:08,840 Eğer ifadeleri eğer bir sürü varsa, sadece çok okunabilir olmayabilir. 488 00:21:08,840 --> 00:21:10,965 Çok hızlı olmayabilir için bunun üzerinden gitmek. 489 00:21:10,965 --> 00:21:13,230 Yani ifadeleri edebilirsiniz anahtarı çok yararlı kullanımları da bu. 490 00:21:13,230 --> 00:21:17,900 Ve aynı zamanda, unutma-- değil yapmayın Orada sonları koymak unutma. 491 00:21:17,900 --> 00:21:20,330 >> DAVID MALAN: Bu hatırlamıyorum. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: o zaman düşebilirsin Çünkü aracılığıyla başka bir davadan. 493 00:21:24,890 --> 00:21:27,930 Yani bu durumda CONSTANT1 diyelim o bir break deyimi yoktu. 494 00:21:27,930 --> 00:21:31,920 Sonra biz aracılığıyla düşebilirsin iç kutunun CONSTANT2. 495 00:21:31,920 --> 00:21:35,070 Ve biz eğer bunu yapmak istemiyorum biz zaten dava CONSTANT1 ulaştınız 496 00:21:35,070 --> 00:21:37,830 ve n eşittir var. 497 00:21:37,830 --> 00:21:45,100 >> Bu nedenle, örneğin, bir değişken varsa Bir sınıf numarası içeren n, 498 00:21:45,100 --> 00:21:48,990 ve ne olduğunu görmek istiyorum n 50 eşitse, sınıf, bu-- 499 00:21:48,990 --> 00:21:51,957 Biz CS50 ise "yazdırmak için gidiyoruz Bilgisayar Bilimi I. Giriş " 500 00:21:51,957 --> 00:21:53,040 Sonra kırmak için gidiyoruz. 501 00:21:53,040 --> 00:21:53,920 Ve bu kadar. 502 00:21:53,920 --> 00:21:55,950 Ancak, n eşittir 51, biz gidiyoruz 503 00:21:55,950 --> 00:21:58,494 CS51 Giriş olduğunu "yazdırmak için Bilgisayar Bilimi II. " 504 00:21:58,494 --> 00:21:59,910 Sonra, yine biz kırmaya gidiyoruz. 505 00:21:59,910 --> 00:22:05,080 Ancak, eğer o zaman koymak 124, 61, herhangi bir Aklınıza belki başka bir numara, 506 00:22:05,080 --> 00:22:06,890 veya program gitmiyor tanımasını. 507 00:22:06,890 --> 00:22:09,010 Yani Üzgünüm, ben "demek oluyor o sınıfın aşina olmayan. " 508 00:22:09,010 --> 00:22:10,009 Ve kırmaya gidiyor. 509 00:22:10,009 --> 00:22:12,847 DAVID MALAN: Yani gerçekten görebilirsiniz , eğer burada başka başka fikir, eğer. 510 00:22:12,847 --> 00:22:15,430 Bunun için sadece farklı sözdizimi aynı fikri ifade. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: Kesinlikle. 512 00:22:17,690 --> 00:22:19,480 Şimdi bizim üçlü operatörler var. 513 00:22:19,480 --> 00:22:24,900 Yani üçlü operatörler var Üç, bir durumun parts-- 514 00:22:24,900 --> 00:22:27,220 eğer yapacak bir şey Bu koşul, doğrudur 515 00:22:27,220 --> 00:22:29,730 ve sonra bir şeyler yapmak eğer bu koşul yanlıştır. 516 00:22:29,730 --> 00:22:33,400 Yani, temelde, bkz burada sözdizimi. 517 00:22:33,400 --> 00:22:37,792 Biz soru işareti var ve Sonra Şeyin ne bu diyorsun? 518 00:22:37,792 --> 00:22:38,750 DAVID MALAN: kolon. 519 00:22:38,750 --> 00:22:39,100 MARIA: Kolon. 520 00:22:39,100 --> 00:22:39,599 Teşekkür ederim. 521 00:22:39,599 --> 00:22:41,880 Üzgünüm. 522 00:22:41,880 --> 00:22:45,800 Yani bizim örneğe bakalım Biz bu-- mantıklı olmadığını görmek 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 Yani burada biz == bizim Boolean operatörü bakın Bu değişken class_num karşılaştırır 525 00:22:52,580 --> 00:22:53,100 50. 526 00:22:53,100 --> 00:22:55,150 Yani class_num depolar bir tamsayı. 527 00:22:55,150 --> 00:22:58,180 Ve bu tamsayı ise o zaman sen, 50 eşittir 528 00:22:58,180 --> 00:23:02,810 saklamak için gidiyoruz "David Malan" Dize profesörü içinde. 529 00:23:02,810 --> 00:23:05,912 Sınıf numarası değilse "not David Malan", 50 eşit 530 00:23:05,912 --> 00:23:07,120 Profesör olacak. 531 00:23:07,120 --> 00:23:08,630 >> DAVID MALAN: Teşekkür ederim. 532 00:23:08,630 --> 00:23:12,110 Ve böylece bu eşdeğer gibi görünüyor İlk bakışta, ne söyleyebilirim? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: Benim için öyle görünüyor gibi if-else deyimleri. 535 00:23:19,960 --> 00:23:20,709 >> DAVID MALAN: Evet. 536 00:23:20,709 --> 00:23:24,020 Ve aslında, bu tür güzel bir tek liner, 537 00:23:24,020 --> 00:23:27,520 yani uygulanması için, konuşmak için tam mantığı if-else 538 00:23:27,520 --> 00:23:29,010 ancak tek bir adımda her şeyi yapıyor. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: Kesinlikle. 540 00:23:29,860 --> 00:23:30,360 Evet. 541 00:23:30,360 --> 00:23:33,520 Yani if-else ifadeleri olabilir çok yer kaplar. 542 00:23:33,520 --> 00:23:36,283 Onlar için çok uzun olabilir Bu gibi basit bir şey. 543 00:23:36,283 --> 00:23:38,350 Yani bu çok olabilir özlü ve çok güzel. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 Yani şimdi baktığımız içine gidiyoruz tekrar tekrar bir şey yürütme, 546 00:23:46,820 --> 00:23:50,060 böylece kontrol birden çok kez şart 547 00:23:50,060 --> 00:23:53,510 ve sonra bir şeyler yapmak için devam Bu koşul doğru ise. 548 00:23:53,510 --> 00:23:56,740 Yani bu bize getiriyor güzel ise ilmeklere. 549 00:23:56,740 --> 00:23:59,270 >> Sol tarafta, biz İlk while döngüsü. 550 00:23:59,270 --> 00:24:03,840 Şey doğrudur süre Yani, tekrar tekrar bir şeyler yapmak. 551 00:24:03,840 --> 00:24:08,850 Yani fark emin olun bizim durum burada üst kısmında doğrulanmıştır. 552 00:24:08,850 --> 00:24:14,150 Dediğimiz bizim ikinci loop-- oysa do-while bir şey yapmak loop-- olduğunu, 553 00:24:14,150 --> 00:24:15,890 o zaman biz bir durumun olup olmadığını kontrol edin. 554 00:24:15,890 --> 00:24:17,980 Ve şartıyla eğer Gerçek olmaya devam ediyor 555 00:24:17,980 --> 00:24:20,150 Biz geri dönün ve tekrar şeyi yaparlar. 556 00:24:20,150 --> 00:24:23,360 Yani temel fark nerede koşul kontrol edilir. 557 00:24:23,360 --> 00:24:29,260 Ve kod asla olabilir durum değilse idam 558 00:24:29,260 --> 00:24:30,430 while döngüsünde ile gerçek. 559 00:24:30,430 --> 00:24:33,050 Do-süre ile Oysa Döngü, biz kodu var 560 00:24:33,050 --> 00:24:35,380 O zaman en az bir kez yürütülür. 561 00:24:35,380 --> 00:24:37,470 Sonra durumu ise Gerçek olmaya devam ediyor 562 00:24:37,470 --> 00:24:39,960 Biz geri gitmek ve içeride tekrar yineleme yapabilirsiniz. 563 00:24:39,960 --> 00:24:43,625 Peki neden biz kullanmak istiyorum sizce a while döngüsünde üzerinde döngü do-while? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Sağ. 566 00:24:48,720 --> 00:24:52,600 Biz istemi istiyorsanız Yani girdi çeşit için kullanıcı, 567 00:24:52,600 --> 00:24:55,400 Biz onlara sormak istiyorsanız Onların adını girmek için, 568 00:24:55,400 --> 00:24:57,342 en az bir kez onlara sormak istiyorum. 569 00:24:57,342 --> 00:24:59,050 Ve onlar girin yoksa Bu isim, biz değiliz 570 00:24:59,050 --> 00:25:00,740 Onları tekrar soracağım biz zaten bunu biliyorum çünkü. 571 00:25:00,740 --> 00:25:02,656 Ama girmezseniz ad, ya da eğer 572 00:25:02,656 --> 00:25:05,787 olan bir şey girin Açıkçası bir isim, 573 00:25:05,787 --> 00:25:08,120 biz hala devam etmek istiyor Onların adını onlara soruyorum. 574 00:25:08,120 --> 00:25:10,710 >> DAVID MALAN: Ve derste biz vardı olsun pozitif int ile böyle 575 00:25:10,710 --> 00:25:13,550 hiçbir şey yok örnek, Hatta değil çünkü ilk başta kontrol 576 00:25:13,550 --> 00:25:14,190 bir int kazanılmış. 577 00:25:14,190 --> 00:25:16,680 Yani biz bu-- yapmak istiyorum user-- bir int almak 578 00:25:16,680 --> 00:25:18,860 o zaman belki, kontrol, Tekrar ve tekrar ve tekrar. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: Kesinlikle. 580 00:25:21,030 --> 00:25:22,060 Loops-- Tamam. 581 00:25:22,060 --> 00:25:25,842 Döngüler izin verebilirsiniz bizim için neredeyse yapmak aynı şey de. 582 00:25:25,842 --> 00:25:27,300 Aslında aynı şey. 583 00:25:27,300 --> 00:25:30,190 Yani hiçbir şey var ki Eğer döngüler için yapabileceğiniz 584 00:25:30,190 --> 00:25:32,840 Eğer mümkün olmaz süre döngüler ile yapmak. 585 00:25:32,840 --> 00:25:36,900 Ama döngüler için biraz görünebilir biraz daha karmaşık sözdizimsel 586 00:25:36,900 --> 00:25:39,730 Onlar çünkü Üç parça içinde ne 587 00:25:39,730 --> 00:25:42,990 hemen önce oldu süre döngüler ile durum. 588 00:25:42,990 --> 00:25:48,260 Yani ilk bölümü bu deniz, sol-En, biz "int Cüceler = 0" 589 00:25:48,260 --> 00:25:51,490 Yani bu nerede biz Bizim değişkeni başlatmak. 590 00:25:51,490 --> 00:25:55,210 >> Sonra bir noktalı virgül var ve "Cüceler 7. <" 591 00:25:55,210 --> 00:25:57,100 Yani bu nerede olduğunu durum aslında. 592 00:25:57,100 --> 00:26:00,170 Yani biz olurdu ne süre sadece koymak loop-- 593 00:26:00,170 --> 00:26:01,880 "Cüceler 7. 00:26:05,380 İşte o gider Bizim döngü için orta. 595 00:26:05,380 --> 00:26:07,190 Yani "dwaves 7. <" 596 00:26:07,190 --> 00:26:11,350 Ve sonra son bölümü ", cüceler ++" dir hangi bizim değişkeni güncellemek yerdir. 597 00:26:11,350 --> 00:26:15,470 Önemli şey So gerçekleştirmek için bu böyledir 598 00:26:15,470 --> 00:26:22,010 for döngüsü bu geçmesi için gidiyor yedi kez ve yürütmek yedi kez. 599 00:26:22,010 --> 00:26:24,020 Yani biz yedi var Cüceler, ve hepsi sensin 600 00:26:24,020 --> 00:26:26,020 Ben buradayım "demek için gidiyor size yardım etmek için, Snow White " 601 00:26:26,020 --> 00:26:28,860 Onlar hazır olduğundan Pamuk Prenses yardım etmek. 602 00:26:28,860 --> 00:26:33,600 >> Döngüler, biz yapardı süre ile başlatma ve güncelleme 603 00:26:33,600 --> 00:26:37,490 kaydıyla içinde tekrar ancak önce veya while döngüsünde ya 604 00:26:37,490 --> 00:26:40,210 emin olmak için biz-- çünkü biz her zaman bu parçaların gerekir. 605 00:26:40,210 --> 00:26:42,835 Bu yüzden sahip olduğundan emin olmak için Onları, biz hala var onları ekledi olurdu 606 00:26:42,835 --> 00:26:44,580 üzerine, adil değil parantez içinde. 607 00:26:44,580 --> 00:26:47,288 >> DAVID MALAN: Ve öyledir öyle gözüküyor ki-- Teorik olarak, örneğin, 608 00:26:47,288 --> 00:26:50,250 Ben hemen hemen her zaman kullanmak gibi, ben ve n ve oldukça sıkıcı değişkenler. 609 00:26:50,250 --> 00:26:53,050 Daha kullanabilirsiniz gibi görünüyor zekice, çok değişken adında. 610 00:26:53,050 --> 00:26:56,300 >> MARIA: Evet, gerçekten çok güzel Biraz daha açıklayıcı değişkenleri kullanmak için 611 00:26:56,300 --> 00:26:59,400 başkası, özellikle çünkü senin code-- okuma belki sen greyder 612 00:26:59,400 --> 00:27:00,940 veya işbirliği yapıyorsanız somebody-- ile 613 00:27:00,940 --> 00:27:03,481 Eğer emin olmak istiyorum onlar Ne yaptığını anlıyorum. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> TAMAM. 616 00:27:06,400 --> 00:27:11,435 Yani bu şey çok funky-- olduğunu for döngüsü bir iç döngü. 617 00:27:11,435 --> 00:27:13,060 Daha önce bu gördüm eğer ben bilmiyorum. 618 00:27:13,060 --> 00:27:13,830 Muhtemelen değil. 619 00:27:13,830 --> 00:27:17,750 Ama biz aslında paha olabilir bunun yerine döngüler döngüler. 620 00:27:17,750 --> 00:27:25,130 Yani herkes belki yürümek istiyor Bana ne ile oluyor burada? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID MALAN: Ben bir deneyeceğim. 623 00:27:29,490 --> 00:27:29,970 MARIA: Serin. 624 00:27:29,970 --> 00:27:30,636 DAVID MALAN: Tamam. 625 00:27:30,636 --> 00:27:34,690 Yani, biz bir şeyler yazdırmak istediğiniz spoiler-- Bu sağ alt köşede bulunuyor 626 00:27:34,690 --> 00:27:35,190 Orada. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: Doğru. 628 00:27:35,450 --> 00:27:35,710 Evet evet. 629 00:27:35,710 --> 00:27:38,043 >> DAVID MALAN: Yani biz ettik sadece Oradaki örnek çıktı koydu. 630 00:27:38,043 --> 00:27:42,590 Yani gelen çıkarabileceği sen üstteki döngü 631 00:27:42,590 --> 00:27:45,680 satır yineleme dıştaki döngü, tabiri caizse. 632 00:27:45,680 --> 00:27:48,107 Ve yineleme ediyoruz En içteki döngü ile sütunlar. 633 00:27:48,107 --> 00:27:50,190 Ve sezgisel, bu Umarım mantıklı olmalı 634 00:27:50,190 --> 00:27:52,070 Çünkü doğası gereği gördüğümüz her program 635 00:27:52,070 --> 00:27:55,570 önce, printf, Fonksiyon biz sonuçta kullanıyorsanız 636 00:27:55,570 --> 00:27:58,190 şeyler yazdırmak için yeteneği vardır hat tarafından esas çizgi. 637 00:27:58,190 --> 00:27:59,960 Gibi, bir kez çıkışı ettik Yeni hat, var 638 00:27:59,960 --> 00:28:02,876 Hiçbir geri katlama ve bir şey yazdırırken en azından ekran yüksek 639 00:28:02,876 --> 00:28:04,530 Böyle printf kullanarak değil. 640 00:28:04,530 --> 00:28:07,750 >> Ve böylece bu konuda, o yapar duygusu o dıştaki döngü 641 00:28:07,750 --> 00:28:10,930 satır atıfta olmalıdır Her satır verilen için, çünkü 642 00:28:10,930 --> 00:28:13,650 istediğiniz gidiyoruz Daha sonra XXXXX çıktısını ve 643 00:28:13,650 --> 00:28:15,520 Bir sonraki satırda, XXXXX için hareket. 644 00:28:15,520 --> 00:28:17,317 Yani satırlar önce gelir. 645 00:28:17,317 --> 00:28:19,150 Sonra içinde her satır, sen sütunları yazdırmak. 646 00:28:19,150 --> 00:28:21,160 Bunu yapmak için çalıştı Eğer karşısında, muhtemelen olmaz 647 00:28:21,160 --> 00:28:21,690 amaçladığınız gibi çıkıyor. 648 00:28:21,690 --> 00:28:22,190 >> MARIA: Evet. 649 00:28:22,190 --> 00:28:24,950 Biz sadece geri gidemedim printf önceki satır. 650 00:28:24,950 --> 00:28:27,658 >> DAVID MALAN: Ve ne ilginç kapsamı hakkında bugünün sohbet başına 651 00:28:27,658 --> 00:28:31,600 Aslında, satır bir int olduğunu O üstteki döngü içinde beyan ediyor. 652 00:28:31,600 --> 00:28:34,030 Ama yine de olduğunu fark içinde, tabiri caizse, 653 00:28:34,030 --> 00:28:35,982 kaşlı olduğunu hemen izleyin 654 00:28:35,982 --> 00:28:38,440 teknik olmasa bile Bu küme parantezi içinde. 655 00:28:38,440 --> 00:28:41,750 Yani satır kapsamı içinde kod parçacığını tamamı, 656 00:28:41,750 --> 00:28:44,690 Her iki döngü için dış içinde ve döngü için iç içinde. 657 00:28:44,690 --> 00:28:48,050 Ancak bunun aksine, burada Sütun kapsamı içinde mi? 658 00:28:48,050 --> 00:28:49,810 Değişken sütun? 659 00:28:49,810 --> 00:28:51,310 Evet, sadece içerden gözüne tahsis edilmiştir. 660 00:28:51,310 --> 00:28:54,280 Biz erişim yok çünkü bu Tamam onun kıvırcık parantez dışında. 661 00:28:54,280 --> 00:28:57,280 Yaptığımız tüm yeni çıktısı olan Orada çok sonunda hattı. 662 00:28:57,280 --> 00:28:58,670 Aslında Böylece OK. 663 00:28:58,670 --> 00:29:03,740 >> Yani bu etkiye sahiptir, bu gibi görünüyor Üç satır ve dört sütun yapıyor. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: Doğru. 665 00:29:04,370 --> 00:29:06,270 Bu yüzden ilk bizim ilk satırda geçiyor. 666 00:29:06,270 --> 00:29:10,520 Ve sadece bizim ilk satırda, yapmamız İlk satırda içinde dört sütun. 667 00:29:10,520 --> 00:29:11,980 Yani biz dört X 's çıktı. 668 00:29:11,980 --> 00:29:15,800 Ve sonra biz bu yana, for döngüsü çıkabilirsiniz Biz zaten dört X 's yazdırılır ettik. 669 00:29:15,800 --> 00:29:17,100 Ve biz yeni bir satır yazdırın. 670 00:29:17,100 --> 00:29:19,920 Ve sonra biz geçmesi iki veya daha fazla sıra için aynı işlem 671 00:29:19,920 --> 00:29:21,170 Üç toplam yapmak. 672 00:29:21,170 --> 00:29:23,530 >> DAVID MALAN: Ve bu kadar fazlalaştı yazı sadece bir obje, aslında 673 00:29:23,530 --> 00:29:25,680 Örnek çıktı o , çok uzun boylu görünmek 674 00:29:25,680 --> 00:29:27,520 dahası var sanki sütunlar daha satırlar. 675 00:29:27,520 --> 00:29:29,824 Sadece X çünkü Ama var eninden daha uzundur. 676 00:29:29,824 --> 00:29:32,740 Yani, orada oluyor hepsi bu satır aralarını artı beyaz boşluk. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: Doğru. 678 00:29:33,281 --> 00:29:34,792 Güzel. 679 00:29:34,792 --> 00:29:35,750 DAVID MALAN: Pekala. 680 00:29:35,750 --> 00:29:39,830 Yani sorunun hızlı bir bakış, bir set Herhangi bir sorunuz almak ve sonra da ertelemek? 681 00:29:39,830 --> 00:29:40,330 Pekala. 682 00:29:40,330 --> 00:29:43,164 Sorun bir set Yani, üç var Birincil zorluklar sonuçta. 683 00:29:43,164 --> 00:29:44,955 Ama önce, bulacaksınız Sorun ayarladığınız 684 00:29:44,955 --> 00:29:47,900 gibi özellikleri, bir çok psets bu sonbaharda, size yol gidiyor 685 00:29:47,900 --> 00:29:50,691 Bir kaç ısınma egzersizleri ile, Birkaç kaynak sizi işaret 686 00:29:50,691 --> 00:29:52,440 Bu olabilir ya da may Zaten gördük değil. 687 00:29:52,440 --> 00:29:54,440 Örneğin, CS50 , şort bir paketi var 688 00:29:54,440 --> 00:29:56,481 kısa videolar ki vardır, olup, bu farklı olarak, ancak 689 00:29:56,481 --> 00:29:58,460 çok konu specific-- vardır Belki beş dakika, 690 00:29:58,460 --> 00:30:02,360 Döngüler üzerinde uzunluğu 10 dakika veya koşullara ya da algoritmalar 691 00:30:02,360 --> 00:30:04,125 veya daha sonra more ileri konular yanı sıra. 692 00:30:04,125 --> 00:30:06,000 Ve biz genelde embed problem haline o 693 00:30:06,000 --> 00:30:07,950 setleri böylece öğrenciler bu bir kaynak var 694 00:30:07,950 --> 00:30:10,840 olabilir malzemeyi yorumlayan Zaten ders ya da bölümünde buluyor. 695 00:30:10,840 --> 00:30:13,220 Ama bu şekilde daha odaklanmış bulunuyor ve parmaklarınızın ucunda daha fazla. 696 00:30:13,220 --> 00:30:15,928 >> Biz de problem gömmek eğilimindedir izlenecek denilen şeyler ayarlar. 697 00:30:15,928 --> 00:30:20,790 Yani hemen hemen tüm yapmam örnekler derste, burada sahnede, biz de 698 00:30:20,790 --> 00:30:24,565 kamera çektiğiniz Bir daha yavaş ilerlemek, 699 00:30:24,565 --> 00:30:28,760 bana göre daha samimi bir walkthrough Bu kod benim laptop, satır satır 700 00:30:28,760 --> 00:30:31,427 böylece sınıfta, biz sık sık olacak şeye ya da birine yoluyla yağsız 701 00:30:31,427 --> 00:30:33,260 Bir ile Araya olacak Bir soruya cevap. 702 00:30:33,260 --> 00:30:35,820 Ama ille de lavabo değil seyirci herkes için de. 703 00:30:35,820 --> 00:30:38,230 Yani kod walkthroughs bulacaksınız örneklerin çoğunda 704 00:30:38,230 --> 00:30:40,950 Biz derste burada yapmak böylece Kendi hızınızda içinden yürümek 705 00:30:40,950 --> 00:30:43,580 ve ileri hızlı geri sarma da İsterseniz tamamen atlayın. 706 00:30:43,580 --> 00:30:45,356 >> Genellikle birkaç var ısınma soruları o 707 00:30:45,356 --> 00:30:47,105 sıralamak istiyoruz Bu malzeme takviye 708 00:30:47,105 --> 00:30:50,250 ve daha önce rahat olduğunuzdan emin olun Eğer pset geri kalanı ile devam edin. 709 00:30:50,250 --> 00:30:51,700 Sonra, tabii ki, pset kendisi var. 710 00:30:51,700 --> 00:30:53,450 Ve şeylerden biri Çok kasten biz 711 00:30:53,450 --> 00:30:57,202 CS50 yapmak hemen hemen her ilgi çekmeyen veya entelektüel ilgi çekmeyen 712 00:30:57,202 --> 00:30:58,910 Mekanik adım olduğunu Yapmanız gereken olabilir 713 00:30:58,910 --> 00:31:00,519 Hemen hemen her zaman çok iyi belgelenmiştir. 714 00:31:00,519 --> 00:31:03,560 Dönem boyunca, yaparız daha retorik sorular sormaya başlar 715 00:31:03,560 --> 00:31:06,187 gibi şu ya da bu nasıl hatırlıyor musun? 716 00:31:06,187 --> 00:31:08,520 Ama genelde, bulacaksınız Sorun setleri almak olduğunu 717 00:31:08,520 --> 00:31:10,269 mekaniği ile şey, böylece 718 00:31:10,269 --> 00:31:14,160 ilginç, entelektüel zorluklar sonuçta size öğrenci bırakılır. 719 00:31:14,160 --> 00:31:17,390 >> Bunu dedi, Zamyla, kime biz Derste bugün atıfta tuttu, 720 00:31:17,390 --> 00:31:20,190 Bizim uzun zamandır personel biridir Ayrıca, izlenecek yollar tutan üye 721 00:31:20,190 --> 00:31:24,520 Mario gibi belirli pset sorunlar üzerinde ve açgözlü olsa bu sene su değil. 722 00:31:24,520 --> 00:31:26,540 Ve o öyle she sık sık izlenecek yollar 723 00:31:26,540 --> 00:31:29,450 için bazı ipuçlarını sunar nasıl asla söylüyorum, devam etmek 724 00:31:29,450 --> 00:31:31,810 Tam ne, ama bir durum gibi rather--, 725 00:31:31,810 --> 00:31:35,200 Eğer vererek will-- eğer en azından böylece fikir çift o size kalmış 726 00:31:35,200 --> 00:31:37,830 sonuçta karar onları nasıl yaklaşmak. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: Sıralama yüksek düzeyli gibi mantığı anlayışı nedir 728 00:31:41,200 --> 00:31:42,220 Yapmamız rica edilmektedir. 729 00:31:42,220 --> 00:31:42,485 >> DAVID MALAN: Kesinlikle. 730 00:31:42,485 --> 00:31:44,190 Ve, aslında, en Zamyla izlenecek kastedilmektedir 731 00:31:44,190 --> 00:31:46,190 Sık sık cevap ve sorulan soru 732 00:31:46,190 --> 00:31:48,610 Ben, özellikle yapmaya başladı Bu uzun değerlerdir 733 00:31:48,610 --> 00:31:51,960 biraz zor tüm metin verilmiş ve onlar içinde görüntüleri var. 734 00:31:51,960 --> 00:31:54,890 >> Yani water.c, bulacaksınız Bunu tamamladıktan sonra, 735 00:31:54,890 --> 00:31:56,920 aslında oldukça basittir. 736 00:31:56,920 --> 00:31:58,882 Kesinlikle bir demet Eğer patlama gitmekten 737 00:31:58,882 --> 00:32:01,840 çalışırken duvara kafa o derleme değil neden anlamaya 738 00:32:01,840 --> 00:32:03,450 ya da neden düzgün çalışmasını değil. 739 00:32:03,450 --> 00:32:05,040 Ama bitirdiniz kez onunla ve bir kez ettik 740 00:32:05,040 --> 00:32:07,620 herhangi güreş biraz zaman geçirdim aklınıza gelebilecek hataların, 741 00:32:07,620 --> 00:32:09,490 Eğer bu kadar olduğunu göreceksiniz çok kısa bir programdır. 742 00:32:09,490 --> 00:32:11,770 Sadece birkaç yapılabilir kod satırları, çoğu 743 00:32:11,770 --> 00:32:15,030 Biz eğer zaten derste burada gördüğüm Doğru yapı taşlarını bir araya getirin. 744 00:32:15,030 --> 00:32:16,810 >> Ve biz önermek gibi Burada, bunu sormak için gidiyor 745 00:32:16,810 --> 00:32:22,250 kaç dakika belirtmek için Birisi kampüsünde bir duş alıyor. 746 00:32:22,250 --> 00:32:24,779 Biz sorunu belirttiğiniz Suyun akış hızını ayarlamak 747 00:32:24,779 --> 00:32:27,320 gibi, düşük akımlı duş Baş, çok Seinfeld klip gibi 748 00:32:27,320 --> 00:32:29,180 Dün gördüğümüz ya da bunların tersi. 749 00:32:29,180 --> 00:32:30,971 Ve sonra sadece var matematik biraz yapmak, 750 00:32:30,971 --> 00:32:34,710 anlatmak için C kullanarak aritmetik gerçekten-- Bize nasıl suyun birçok kabaca, şişeler 751 00:32:34,710 --> 00:32:37,720 Biz eğer bu eşdeğerdir n-dakikalık duş alarak. 752 00:32:37,720 --> 00:32:41,389 >> Şimdi, mario.c olarak, bu oluyor biraz daha uzun bir program olması. 753 00:32:41,389 --> 00:32:42,930 Hala bu kadar uzun olacak değil. 754 00:32:42,930 --> 00:32:45,130 Sadece birkaç satır water.c daha uzun. 755 00:32:45,130 --> 00:32:48,230 Ama fırsat olacak eski okul Mario yeniden 756 00:32:48,230 --> 00:32:50,670 Süper Mario piramit Kardeşler ya da bazı takip gör. 757 00:32:50,670 --> 00:32:53,510 Bu güzel bakmak için gitmiyor ya da orada o biri olarak renkli. 758 00:32:53,510 --> 00:32:56,468 Biz sadece küçük Hashtag'leri kullanmak için gidiyoruz gibi biz ekranda burada var 759 00:32:56,468 --> 00:32:58,120 ASCII metin kullanarak. 760 00:32:58,120 --> 00:33:00,362 Ama aynı fikri yaklaştığı olacaktır. 761 00:33:00,362 --> 00:33:02,570 Ve bu bir olacak İlk bakışta bu egzersiz 762 00:33:02,570 --> 00:33:04,720 sadece güzel simple-- görünüyor Basit bir piramit yazdırın. 763 00:33:04,720 --> 00:33:07,345 Ama bir kaç özellikleri var Burada ilginç olduğunu. 764 00:33:07,345 --> 00:33:12,400 En sağdaki kenarına dikkat edin piramit aslında genişliği iki sahiptir. 765 00:33:12,400 --> 00:33:14,570 Yani eşit iki var Yükseklik sütunları, burada 766 00:33:14,570 --> 00:33:16,804 Biraz gerektirir yapar düşünce bit yapmak 767 00:33:16,804 --> 00:33:19,720 emin olarak, bu tam olarak doğru olsun Sadece mükemmel açılı karşı 768 00:33:19,720 --> 00:33:20,220 çizgi. 769 00:33:20,220 --> 00:33:23,340 Yani bir köşe davanın biraz ama gerçek oyun eşleşir. 770 00:33:23,340 --> 00:33:27,610 >> Ve aynı zamanda, ilk sigara açıktır boşluk yazdırmak nasıl bakışta. 771 00:33:27,610 --> 00:33:29,430 Yani baktığınızda Örnek çıktı burada-- 772 00:33:29,430 --> 00:33:32,440 ve spec-- de var o tür, bir dikdörtgen gibi görünüyor 773 00:33:32,440 --> 00:33:35,120 ancak bir çapraz dikdörtgen, kapalı kıyılmış olmuştur 774 00:33:35,120 --> 00:33:37,320 ve sadece beyaz boşluk, tabiri caizse var. 775 00:33:37,320 --> 00:33:40,100 Ve böylece sık sorulan Soru de burada, her zaman, 776 00:33:40,100 --> 00:33:43,302 Ben Hashtag'leri taşırım nasıl Doğru üzerinde? 777 00:33:43,302 --> 00:33:44,760 Ya da nasıl boşluk yazdırırım? 778 00:33:44,760 --> 00:33:46,860 Ve aslında kolay Çoğu öğrenci düşündüğünden daha. 779 00:33:46,860 --> 00:33:47,360 Sağ? 780 00:33:47,360 --> 00:33:51,620 Sadece görsel olarak tahmin edebilirsiniz bir veya iki kez boşluk çubuğuna vurmak 781 00:33:51,620 --> 00:33:52,700 ya da üç kez. 782 00:33:52,700 --> 00:33:56,260 >> Ve bu yüzden bile neredeyse printf ile olsa Her zaman bir dize ya da bir int çıktı 783 00:33:56,260 --> 00:33:59,950 ya merhaba "gibi bir kelime, kelimelerin dünyası "ya da dizi 784 00:33:59,950 --> 00:34:03,560 Ayrıca sadece yazdırabilirsiniz alıntı, uzay, unquote. 785 00:34:03,560 --> 00:34:06,320 Ve aslında verecek Orada bir boşluk. 786 00:34:06,320 --> 00:34:08,330 Böylece akılda tutmak ve Bu overthink yoktur. 787 00:34:08,330 --> 00:34:10,570 Gerçekten var satırda tarafından satır satır karar 788 00:34:10,570 --> 00:34:14,280 değil örneğin aksine Bunların önce, kaç tane anı 789 00:34:14,280 --> 00:34:18,420 sütunlar beyaz boşluk olmalı ve hashtag nasıl olması gerektiğini birçoğu. 790 00:34:18,420 --> 00:34:21,560 Bu biraz zaman alacak, ama bu türlü sonuçta mantık bulmacası. 791 00:34:21,560 --> 00:34:22,060 >> MARIA: Evet. 792 00:34:22,060 --> 00:34:25,060 Ama satır satır gidiyor mantığı Burada çok faydalı olacak. 793 00:34:25,060 --> 00:34:25,810 DAVID MALAN: Evet. 794 00:34:25,810 --> 00:34:28,976 Ben örnek kod bile gave-- düşünüyorum tam bir program değil olsa. 795 00:34:28,976 --> 00:34:34,247 Hala int ve ana ihtiyaç ve geçersiz ve #include stdio.h, 796 00:34:34,247 --> 00:34:35,580 dersin gelen bir sürü şey. 797 00:34:35,580 --> 00:34:37,629 Ama yapı taşları Orada görünmektedir. 798 00:34:37,629 --> 00:34:39,920 Ve sonra son olarak bir şey Biraz daha algoritmik. 799 00:34:39,920 --> 00:34:43,210 Bu yüzden herhangi bir zamanda çıkıyor sen CVS veya herhangi bir marketten gitmek 800 00:34:43,210 --> 00:34:47,810 ve birisi sizi eller kasiyer faturaları veya değişiklik olarak paralar, 801 00:34:47,810 --> 00:34:50,620 çıkıyor onlar, insan, bunu biliyorum ya olsun ya da olmasın, 802 00:34:50,620 --> 00:34:53,300 Muhtemelen ne kullanıyorsunuz Açgözlü algoritma denir, 803 00:34:53,300 --> 00:34:58,170 Eğer borçlu eğer, demek bu sayede, 21 $ değişimi nedeniyle bir nedenle 804 00:34:58,170 --> 00:35:01,580 Eğer çok ucuz bir şey aldım CVS de çok büyük bir fatura ile, 805 00:35:01,580 --> 00:35:05,910 o takdirde gerçekten can sıkıcı olurdu Kasiyer size 21 single ya da daha kötüsü verdi 806 00:35:05,910 --> 00:35:07,629 henüz sikke bir sürü. 807 00:35:07,629 --> 00:35:10,670 Aksine, makul bir kişi nedir Muhtemelen yapacaksın onlar gidiyoruz olduğunu 808 00:35:10,670 --> 00:35:14,224 Bir $ 20- ve daha sonra 1 $-fatura ve kapmak için Sana bu durumda sadece iki faturaları ver. 809 00:35:14,224 --> 00:35:17,390 MARIA: Yani en aza indirmek için aradığınız onlar size geri vermek değişiklik. 810 00:35:17,390 --> 00:35:17,850 DAVID MALAN: Kesinlikle. 811 00:35:17,850 --> 00:35:19,540 Ve aynı anlaşma sikke ile, hem de. 812 00:35:19,540 --> 00:35:23,040 Eğer borçlu ediyorsanız, $ 0.50, demek umarım 50 kuruş istemiyorum. 813 00:35:23,040 --> 00:35:25,500 Bunun yerine iki istiyorum Örneğin dörtte. 814 00:35:25,500 --> 00:35:27,540 Şimdi, bu varsayalım yapar kasiyer vardır 815 00:35:27,540 --> 00:35:29,940 Her mezhep yeterli olduğunu o sana vermek isteyebilirsiniz. 816 00:35:29,940 --> 00:35:32,148 Ama biz size varsaymak izin veriyoruz problem kadar. 817 00:35:32,148 --> 00:35:35,590 Ve gol, nihayetinde için C kodu açgözlü bir algoritma. 818 00:35:35,590 --> 00:35:37,344 Yani kullanıcı izin ne kadar yazmanız 819 00:35:37,344 --> 00:35:40,510 he değiştirmek veya o dolar ile borçlu olduğunu ve cent, kayan nokta çeşit 820 00:35:40,510 --> 00:35:41,590 Muhtemelen değer. 821 00:35:41,590 --> 00:35:45,530 Ve sonra matematik yapmak ve iyi, algoritmik anlamaya, 822 00:35:45,530 --> 00:35:49,020 kaç jeton verebilirim Eğer minimal size vermek 823 00:35:49,020 --> 00:35:50,270 değişim tam da miktarı. 824 00:35:50,270 --> 00:35:53,470 Ama orada oluyor Burada birkaç zor parçalar, değil mi? 825 00:35:53,470 --> 00:35:56,236 Bütün var gibi tutarsızlık sorunu. 826 00:35:56,236 --> 00:35:56,860 MARIA: Kesinlikle. 827 00:35:56,860 --> 00:35:59,114 Yani kayan nokta değerler belirsizlik var. 828 00:35:59,114 --> 00:36:00,780 Bugün derste bu konuda konuşmak mı? 829 00:36:00,780 --> 00:36:02,340 >> DAVID MALAN: Yaptığımız konuşmasında son kez. 830 00:36:02,340 --> 00:36:03,506 Biz imprecision hakkında konuştuk. 831 00:36:03,506 --> 00:36:08,840 Ve kullanıcı hile istemiyorum ne kadar değişikliği o borçlu olduğunu. 832 00:36:08,840 --> 00:36:11,290 Ve böylece örneklerde, içinde Sorun set şartname, 833 00:36:11,290 --> 00:36:15,990 olarak, sonuçta biraz düşünmek O azaltabilir nasıl tutarsızlık 834 00:36:15,990 --> 00:36:17,280 hatalar, potansiyel. 835 00:36:17,280 --> 00:36:21,050 Bunun için, kesinlikle önlenebilir Bahsettiğimiz girdiler. 836 00:36:21,050 --> 00:36:23,590 Ve, aslında, pennies-- belki Zamyla erteleme edeceğiz 837 00:36:23,590 --> 00:36:25,136 Orada hileler için düşünüyorum. 838 00:36:25,136 --> 00:36:27,760 Yani sonuçta, bir bulacaksınız sorunların ilerlemesi bu hafta, 839 00:36:27,760 --> 00:36:30,700 İlk, oldukça küçük Daha sonra orta ve sonra biraz daha büyük. 840 00:36:30,700 --> 00:36:33,200 Ama hepsi binayı kullanmak Geçtiğimiz hafta blok, 841 00:36:33,200 --> 00:36:35,280 Bu supersection dan Sorun set şartname 842 00:36:35,280 --> 00:36:36,710 sayısız kaynaklara koyar. 843 00:36:36,710 --> 00:36:41,000 Ama yine de, eğer hiç mücadele, Özellikle daha az rahat olanlar arasında 844 00:36:41,000 --> 00:36:42,917 hiçbir önceden arka plan ile, Mesai saatleri gelmek 845 00:36:42,917 --> 00:36:44,958 Pazartesi ve Salı ve üzerinde Çarşamba ve Perşembe. 846 00:36:44,958 --> 00:36:46,950 Aracılığıyla tartışın CS50 git dersin web sitesi 847 00:36:46,950 --> 00:36:49,080 hangi aracılığıyla sohbet edebilirsiniz personel ve sınıf arkadaşları ile. 848 00:36:49,080 --> 00:36:51,670 >> Ama sonuçta, bence En iyi tavsiye, sadece erken başlamak olduğunu. 849 00:36:51,670 --> 00:36:54,711 Bu sınıfın bir tür olmadığını size Çarşamba günü psets başlayan olmalıdır 850 00:36:54,711 --> 00:36:56,640 gece, ya da daha kötüsü Perşembe gecesi. 851 00:36:56,640 --> 00:36:59,067 >> MARIA: Benim en iyi tavsiyem Pazartesi günü başladığı. 852 00:36:59,067 --> 00:36:59,900 DAVID MALAN: Pazartesi. 853 00:36:59,900 --> 00:37:02,490 Yani hayır already-- başlamış değil eğer. 854 00:37:02,490 --> 00:37:04,732 Ama bile değil Pazartesi, Salı sonra. 855 00:37:04,732 --> 00:37:05,690 Daha iyi daha önceki. 856 00:37:05,690 --> 00:37:08,605 Ve bu nedeni derstir çok geç gün var 857 00:37:08,605 --> 00:37:10,535 size biraz vermek psikolojik baskı 858 00:37:10,535 --> 00:37:13,684 Daha önce başlar ama yine de izin işler uzun sürer zaman işler kayma 859 00:37:13,684 --> 00:37:14,350 beklediğinizden daha. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: Ve faydalanmak istiyorum mesai saatleri de, mümkün olduğunca fazla. 861 00:37:17,950 --> 00:37:20,291 >> DAVID MALAN: Herhangi bir sorunuz? 862 00:37:20,291 --> 00:37:20,790 Pekala. 863 00:37:20,790 --> 00:37:22,930 Peki, neden buradayız ertelemek değil mi? 864 00:37:22,930 --> 00:37:23,487