1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> David J. MALAN: Kaya ito ay CS50. 3 00:00:13,800 --> 00:00:18,970 At ito ay sariling Colton Ogden CS50 ni, para sa higit pa sa kung sino ang musika maaari mong 4 00:00:18,970 --> 00:00:22,820 i-download sa soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Kaya ngayon namin ituon ang lahat ng higit pa sa sining ng programming. 6 00:00:26,690 --> 00:00:28,980 At tumagal kami kung saan kami pakaliwa off noong nakaraang linggo, ay nagbibigay-diin 7 00:00:28,980 --> 00:00:31,660 sa simula, na kung saan ay ito graphical programming language. 8 00:00:31,660 --> 00:00:35,490 At kumuha ng mga bagay down sa isang mas mababang antas, gamit ang isang mas tradisyonal na programming 9 00:00:35,490 --> 00:00:38,420 wika na kilala bilang C. Ngunit sa kahabaan ng paraan, napagtatanto 10 00:00:38,420 --> 00:00:40,730 na ang parehong mga ideya namin usapan tungkol sa huling Biyernes 11 00:00:40,730 --> 00:00:44,390 ay magbalik hindi lamang sa isang ito wika C, ngunit sa karamihan ng bawat iba pang mga 12 00:00:44,390 --> 00:00:46,350 na tinitingnan namin ang semestre na ito. 13 00:00:46,350 --> 00:00:50,247 >> Kaya tinatawag namin ang bagay na ito dito kung ano ang huling beses? 14 00:00:50,247 --> 00:00:51,830 Ito ay kinatawan ng isang statement. 15 00:00:51,830 --> 00:00:53,080 Kaya tinatawag namin itong isang pahayag. 16 00:00:53,080 --> 00:00:54,100 At ginagawa nito ang isang bagay. 17 00:00:54,100 --> 00:00:56,910 Ito ay isang pagtuturo na ang isang Maaaring magsagawa ng computer o sa simula. 18 00:00:56,910 --> 00:00:59,910 At henceforth, sabihin ring magsimula ng pagtawag ng isang bagay na tulad nito ng isang function, 19 00:00:59,910 --> 00:01:02,070 para sa mga kadahilanang ay dapat sa lalong madaling panahon namin makita. 20 00:01:02,070 --> 00:01:03,681 >> Samantala, nakita namin ang mga bagay na katulad nito. 21 00:01:03,681 --> 00:01:05,680 At ang mga ito ay sa pangkalahatan na kilala bilang kung ano bumuo? 22 00:01:05,680 --> 00:01:06,240 >> Madla: Loop. 23 00:01:06,240 --> 00:01:06,860 >> David J. MALAN: Kaya isang loop. 24 00:01:06,860 --> 00:01:07,943 Kaya medyo prangka. 25 00:01:07,943 --> 00:01:09,470 Ito Literal na ginagawa kung ano ang sinasabi nito. 26 00:01:09,470 --> 00:01:12,210 At sa simula, kung nais mong Cram higit pang mga piraso puzzle sa doon, 27 00:01:12,210 --> 00:01:13,950 ang piraso ay lalaki upang magkasya ito. 28 00:01:13,950 --> 00:01:16,790 At kami makita sa C na maaari naming gawin ang parehong bagay. 29 00:01:16,790 --> 00:01:20,000 >> Ang isa pang uri ng loop, bagaman, sa simula ay maaaring maging walang hanggan, 30 00:01:20,000 --> 00:01:21,820 o mayroong anumang bilang ng iba pang mga diskarte. 31 00:01:21,820 --> 00:01:24,150 Ngunit ng tumagal ng higit pang ipaalam generalist hitsura, na may isang mukha 32 00:01:24,150 --> 00:01:27,402 na malamang medyo pamilyar, sa mga loop sa mas pangkalahatang paraan. 33 00:01:27,402 --> 00:01:29,110 MARK ZUCKERBERG: Isa bagay na mga computer 34 00:01:29,110 --> 00:01:31,860 ay talagang magandang sa ay paulit-ulit na mga utos. 35 00:01:31,860 --> 00:01:33,910 Bilang isang tao, dapat mong makakuha ng talaga ay nababato kung 36 00:01:33,910 --> 00:01:36,730 ay kinailangang gawin ang parehong bagay maraming beses sa isang hilera. 37 00:01:36,730 --> 00:01:40,530 Ngunit maaari gawin ang parehong bagay sa isang computer milyun-milyong o kahit na bilyun-bilyong beses, 38 00:01:40,530 --> 00:01:43,290 at hindi makakuha ng nababato, at magagawa upang isakatuparan na out talagang mahusay. 39 00:01:43,290 --> 00:01:45,650 >> Kaya halimbawa, kung ako nais na nais lahat ng tao 40 00:01:45,650 --> 00:01:48,840 sa Facebook ng masaya kaarawan sa pamamagitan ng pagpapadala sa kanila ng isang email, 41 00:01:48,840 --> 00:01:51,550 maaaring tumagal ng akin ang higit pa kaysa sa isang siglo upang aktwal na isulat 42 00:01:51,550 --> 00:01:53,000 lahat ng mga email na iyon sa lahat ng tao. 43 00:01:53,000 --> 00:01:57,780 Ngunit sa loob lamang ng ilang linya ng code, maaari ko magkaroon ng isang sistema magpadala ng email sa lahat ng tao 44 00:01:57,780 --> 00:01:59,930 sa Facebook na nagnanais ang mga ito ng masaya kaarawan. 45 00:01:59,930 --> 00:02:02,730 Nang sa gayon ay ang kung ano ang mga loop ay at kung bakit ang mga ito ay mahalaga at isang bagay 46 00:02:02,730 --> 00:02:04,740 na maaaring gawin nang napakahusay na mga computer. 47 00:02:04,740 --> 00:02:05,630 >> David J. MALAN: Kaya kung ikaw pa ang tatanggap 48 00:02:05,630 --> 00:02:07,820 ng ilan sa CS50 at Espasyo ng late Dropbox ni, 49 00:02:07,820 --> 00:02:10,590 na talagang tiyak kung ano ang namin gawin, gamit ang code masyadong tulad na. 50 00:02:10,590 --> 00:02:12,600 Lubos kaming magkaroon ng malaki spreadsheet sa kung saan 51 00:02:12,600 --> 00:02:15,016 kakailanganin ng mga tao ay na-inputting ang kanilang pangalan at email address. 52 00:02:15,016 --> 00:02:18,160 At ay nagsulat kami ng isang maliit na maliit bit ng code na Maaari umulit sa paglipas ng mga address na iyon 53 00:02:18,160 --> 00:02:21,860 at dumura out natatanging address sa isinumite kaso sinuman maraming beses. 54 00:02:21,860 --> 00:02:25,120 At pagkatapos noon, nagpapadala kami ng isang awtomatikong email mula sa bot CS50 ni, 55 00:02:25,120 --> 00:02:27,190 kabilang ang code ng kupon. 56 00:02:27,190 --> 00:02:29,290 >> Ngayon kami ay tumingin din sa ito ay makagawa ng huling beses. 57 00:02:29,290 --> 00:02:33,100 At ito ay isang partikular na Halimbawa ng kung ano? 58 00:02:33,100 --> 00:02:35,050 Kaya, Oo, isang Boolean expression. 59 00:02:35,050 --> 00:02:37,050 At ang mga hugis ay sinadya upang makuha din iyon. 60 00:02:37,050 --> 00:02:39,966 Ang lahat ng mga naturang katanungan ng bumuo ng tama o mali sa scratch 61 00:02:39,966 --> 00:02:41,590 ang magiging hitsura ng kaunti ng isang bagay na katulad nito. 62 00:02:41,590 --> 00:02:43,200 At tinatawag naming ito ng Boolean expression. 63 00:02:43,200 --> 00:02:46,170 Iyon ay sa katunayan totoo o hindi, oo o hindi. 64 00:02:46,170 --> 00:02:49,150 Ito ay isang paraan ng pagsagot ng tanong. 65 00:02:49,150 --> 00:02:52,420 >> At Samantala maaari mong gamitin ang mga Boolean expression sa loob ng constructs 66 00:02:52,420 --> 00:02:54,720 tulad ng mga ito, na ng Siyempre mga kondisyon 67 00:02:54,720 --> 00:02:57,259 o sangay, proverbial tinidor sa kalsada. 68 00:02:57,259 --> 00:02:59,550 At maaari silang tumingin hindi lamang tulad nito, ngunit maaari rin silang 69 00:02:59,550 --> 00:03:02,080 elses na nauugnay sa mga ito. 70 00:03:02,080 --> 00:03:05,820 At maaari mong aktwal na magkaroon ng isang tatlong paraan tinidor sa kalsada o ang isang apat na paraan tinidor 71 00:03:05,820 --> 00:03:08,340 sa kalsada, sa pamamagitan lamang ng nesting mga bagay na ito, 72 00:03:08,340 --> 00:03:10,510 bilang iyong makikita sa scratch kung hindi mo pa nagagawa. 73 00:03:10,510 --> 00:03:13,550 At bilang maaari mong gawin sa C pati na rin. 74 00:03:13,550 --> 00:03:16,810 >> Tingnan natin ang isa pang generalist Tingnan natin ang isang alumnist, pati na rin, na nag- 75 00:03:16,810 --> 00:03:21,490 Maaaring ipakita ng iba't ibang mga diskarte sa mga bagay na ito na tinatawag na kundisyon. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: gumawa ng mga tao pagpapasya sa araw-araw. 77 00:03:24,060 --> 00:03:27,530 Halimbawa, bago ka pumunta sa labas ka uri ng magkaroon ng isang kung pahayag na nagsasabing, 78 00:03:27,530 --> 00:03:31,480 kung ito ay umulan pagkatapos ko kailangan upang makakuha ng aking jacket. 79 00:03:31,480 --> 00:03:36,820 At computer ay kamangha-manghang sa sandaling magpasya ang mga uri ng mga pahayag, 80 00:03:36,820 --> 00:03:42,280 na maaari nilang isagawa mapagkakatiwlaan mga bagay sa unbelievable bilis. 81 00:03:42,280 --> 00:03:48,240 At kaya isang computer program talaga Medyo ng matematika at ang ilan 82 00:03:48,240 --> 00:03:53,050 kung pahayag kung saan ang desisyon ay makakakuha ng ginawa. 83 00:03:53,050 --> 00:03:55,020 >> David J. MALAN: Kaya bilang maaaring alam mo na, ito ay 84 00:03:55,020 --> 00:03:57,880 kakailanganin ng mga tao tulad ng Bill Gates, Paul Allen, at iba pa 85 00:03:57,880 --> 00:04:00,240 na tunay na kicked off ang tinatawag na personal na computer 86 00:04:00,240 --> 00:04:01,990 rebolusyon ng ilang taon na ang nakakaraan. 87 00:04:01,990 --> 00:04:04,140 Akala ko, bago namin sumisid sa ilang mga administrivia, 88 00:04:04,140 --> 00:04:09,920 nais naming nauugnay ang isang kuwento mula sa Albuquerque, New Mexico museo ng Natural History 89 00:04:09,920 --> 00:04:13,650 at agham kung saan ang ilan sa Bill Gates ' at pinakamaagang mga kuwento Paul Allen ni 90 00:04:13,650 --> 00:04:17,470 ay recounted kung paano namin ay mayroon na ngayong mga PC ngayong araw at sa mga Mac at higit pa. 91 00:04:17,470 --> 00:04:22,390 Para sa mga ito, bagaman, kailangan namin ng dalawang mga boluntaryo na may napakagandang boses pagsasalaysay 92 00:04:22,390 --> 00:04:23,735 basahin ang isang script nang malakas. 93 00:04:23,735 --> 00:04:25,530 >> Ang lahat ng mga karapatan, kung paano tungkol sa likod doon. 94 00:04:25,530 --> 00:04:26,120 Halika sa up. 95 00:04:26,120 --> 00:04:27,770 At kung paano tungkol sa harap dito. 96 00:04:27,770 --> 00:04:28,340 Halika at pababa. 97 00:04:28,340 --> 00:04:29,600 Dalhin ang iyong mga lugar dito. 98 00:04:29,600 --> 00:04:32,444 Habang ikaw ay guys makabuo, ng ilang ng mga anunsyo administratibo. 99 00:04:32,444 --> 00:04:34,360 sectioning, ang proseso ng ng pagpili ng isang seksyon, 100 00:04:34,360 --> 00:04:36,068 Magsisimulang ito Miyerkules hanggang Biyernes. 101 00:04:36,068 --> 00:04:38,400 Higit pa sa na ito darating Miyerkules sa panayam. 102 00:04:38,400 --> 00:04:41,770 >> Super seksyon, samantala, ay isang bagay na nag-aalok kami sa susunod na linggo 103 00:04:41,770 --> 00:04:45,310 kung saan ang buong klase ay inanyayahan upang lumahok sa medyo malaki ang sukat 104 00:04:45,310 --> 00:04:47,690 mga seksyon, isa pang comfy, mas kumportable. 105 00:04:47,690 --> 00:04:51,340 At kami ay ipahayag ang mga detalye ng na, pati na rin, sa ibang pagkakataon sa linggong ito. 106 00:04:51,340 --> 00:04:53,310 >> Mga seksyon Samantala, kanilang sarili, ay magsisimula 107 00:04:53,310 --> 00:04:57,241 sa linggo tatlong ng mga kurso, zero index, na nangangahulugan na ang mga ilang mga linggo 108 00:04:57,241 --> 00:04:57,740 out. 109 00:04:57,740 --> 00:04:58,450 Kaya huwag mag-alala. 110 00:04:58,450 --> 00:05:01,014 Hindi ka pa napalampas na anumang bagay sa kahabaan ng mga linya. 111 00:05:01,014 --> 00:05:03,930 Samantala sa ngayon, kung iyong mayroon kayong mga katanungan administratively, 112 00:05:03,930 --> 00:05:08,120 email sa aking sarili at Devon at Gabe at Rob sa address na ito dito. 113 00:05:08,120 --> 00:05:10,320 >> Panghuli, itakda ang problema 0 ay, siyempre, out. 114 00:05:10,320 --> 00:05:12,320 Maaaring napansin mo ito sa website ng kurso ni. 115 00:05:12,320 --> 00:05:14,840 Dapat itong magbigay sa iyo ng lahat ng mga sagot sa mga tanong 116 00:05:14,840 --> 00:05:18,250 maaaring mayroon ka sa kahabaan ng paraan para sa pagsisimula sa mga hanay problema. 117 00:05:18,250 --> 00:05:21,430 Ngunit kung nakita mo ang iyong sarili nangangailangan ng isang pagtulong sa kamay, 118 00:05:21,430 --> 00:05:25,020 sa pamamagitan ng lahat ng paraan dumalo sa oras ng opisina, Monday, Tuesday, Miyerkules, Huwebes 119 00:05:25,020 --> 00:05:27,290 ng linggong ito sa gabi sa apat na dining hall. 120 00:05:27,290 --> 00:05:31,650 Tingnan ang mga URL na iyon doon para sa mga particular ng kung saan ang mga oras ng opisina ay dapat. 121 00:05:31,650 --> 00:05:34,000 >> Ngayon Magkita tayo ng ating dalawang bisita dito ngayon. 122 00:05:34,000 --> 00:05:34,740 Ano ang inyong pangalan? 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, mabait sa matugunan mo. 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 Nice upang matugunan mo pati na rin. 130 00:05:39,790 --> 00:05:42,123 Jay si Pablo at Hikari mayroon sa harap ng mga ito sa mga musika 131 00:05:42,123 --> 00:05:45,100 Sinusubaybayan ng dalawang mga script na ako naka-print out na ito umaga mula sa New Mexico 132 00:05:45,100 --> 00:05:46,692 museo ng Natural History and Science. 133 00:05:46,692 --> 00:05:48,400 At kung ano naisip ko Gusto kong gawin sa overhead 134 00:05:48,400 --> 00:05:52,830 ay samahan ang iyong recitation ng script at kasaysayan ito 135 00:05:52,830 --> 00:05:54,700 na may ilang mga visual na mga imahe, walang mga sorpresa. 136 00:05:54,700 --> 00:05:57,512 >> At kung ano ang nagawa ko nang maaga ay prehighlight sa iyong script 137 00:05:57,512 --> 00:05:59,470 kung ano ang dapat mong basahin, at kung ano ang dapat mong basahin. 138 00:05:59,470 --> 00:06:00,920 At idedetalye namin mahalagang lamang kahaliling mga talata. 139 00:06:00,920 --> 00:06:03,211 Kaya ito ay halos tulad ng maaari mong ginawa sa klase Ingles. 140 00:06:03,211 --> 00:06:06,875 Iyon talaga ang pilitin ang madla upang maniwala sa iyong kuwento dito. 141 00:06:06,875 --> 00:06:07,600 Ay dapat namin? 142 00:06:07,600 --> 00:06:13,272 Kaya ang kuwento dito ay, mayroon kaming isang BATAYANG, at ito ay nagsisimula sa Cambridge. 143 00:06:13,272 --> 00:06:18,750 >> Jay Paul: Ito ay taglamig, 1974, sa Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 kung saan Winters ay maaaring maging malamig. 145 00:06:20,240 --> 00:06:22,800 Ang isang may balbas, mahabang buhok dropout sa kolehiyo na may pangalang 146 00:06:22,800 --> 00:06:27,280 Paul Allen ay drudging sa Harvard Square, hinihigop sa kanyang mga saloobin. 147 00:06:27,280 --> 00:06:31,050 Ang kanyang pangunahing preoccupation sa mga araw na iyon ay kung paano makakuha ng kanyang kaibigan, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 na umalis sa paaralan at pumunta sa negosyo na kasama niya. 149 00:06:34,974 --> 00:06:37,890 HIKARI: Ang dalawang ay na nawala sa pamamagitan ng isang bilang ng mga pakikipagsapalaran sa negosyo 150 00:06:37,890 --> 00:06:40,850 nang sama-sama, simula sa Lakeside paaralan sa Seattle kung saan 151 00:06:40,850 --> 00:06:45,220 sila ay mababayaran sa libreng oras computer upang subukan ang isang PDP-10 computer sa isang lokal na oras 152 00:06:45,220 --> 00:06:46,580 pagbabahagi ng kumpanya. 153 00:06:46,580 --> 00:06:50,930 Ang pinaka-kamakailang mga plano ay hindi naging upang tumigil paaralan at bumubuo ng isang kumpanya ng software. 154 00:06:50,930 --> 00:06:53,440 Allen ay iniwan Washington State University. 155 00:06:53,440 --> 00:06:58,380 Ngunit sa huling minuto, Gates nagpasyang manatili sa Harvard. 156 00:06:58,380 --> 00:07:02,080 >> Jay Paul: araw na iyon, na tumatawid sa Harvard Square, Allen nakita ang Enero, 157 00:07:02,080 --> 00:07:07,530 1975 isyu ng mga Sikat na Electronics sa lupa pagtigil ng ulo ng ad, 158 00:07:07,530 --> 00:07:11,900 Una Minicomputer Kit mundo sa karibal Commercial na mga modelo. 159 00:07:11,900 --> 00:07:14,430 Sa ilalim ng headline ay isang larawan ng isang maliit na kahon 160 00:07:14,430 --> 00:07:16,160 adorned na may ilaw at switch. 161 00:07:16,160 --> 00:07:19,770 Ito ay tinatawag na ang MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 At alam Allen ito ay kung ano ang siya ay naghahanap para sa. 163 00:07:24,100 --> 00:07:26,350 >> HIKARI: Mga Araw ng talakayan sinundan. 164 00:07:26,350 --> 00:07:30,170 Naunawaan Allen at Gates ang kabuluhan ng mga Altair. 165 00:07:30,170 --> 00:07:32,480 Madalas Sila ay usapan tungkol sa microprocessors 166 00:07:32,480 --> 00:07:35,250 at ay naghihintay upang makita kung ano ay tapos na sa kanila. 167 00:07:35,250 --> 00:07:39,770 Ngayon nagkaroon ng minicomputer kit sa ang takip ng Mga patok na Electronics. 168 00:07:39,770 --> 00:07:42,830 Tila ito pa ay walang na software. 169 00:07:42,830 --> 00:07:46,830 Naisip nila ang isang bansa ng programmer pababang sa MITS. 170 00:07:46,830 --> 00:07:49,590 At kaya sila tinatawag Ed Roberts, ang pinuno ng kumpanya, 171 00:07:49,590 --> 00:07:53,330 nagke-claim na magkaroon ng isang bersyon ng BATAYANG wika programming halos handa na 172 00:07:53,330 --> 00:07:54,710 para sa Altair. 173 00:07:54,710 --> 00:07:55,570 Sila ang hindi. 174 00:07:55,570 --> 00:07:58,910 At Roberts ay dapat na kilala nila ang hindi. 175 00:07:58,910 --> 00:08:03,170 Siya ay nakakakuha ng 10 mga tawag sa isang araw mula sa mga tao na nagkaroon ng isang BATAYANG halos handa na. 176 00:08:03,170 --> 00:08:05,570 At ang kanyang tugon stock ay, "Ang unang tao 177 00:08:05,570 --> 00:08:11,090 na nagpapakita up sa isang gumaganang BATAYANG nakakakuha ng kontrata. " 178 00:08:11,090 --> 00:08:13,910 >> Jay Paul: Gates at Allen ay hindi kailanman nakita ang isang Altair. 179 00:08:13,910 --> 00:08:17,600 Sila ay hindi kailanman kahit na nakita ang Intel 8080 microprocessor 180 00:08:17,600 --> 00:08:19,060 sa gitna ng Altair. 181 00:08:19,060 --> 00:08:21,470 Ngunit pagkatapos ng dalawang taon mas maaga Allen ay nagsulat ng isang programa 182 00:08:21,470 --> 00:08:25,220 sa isang mainframe computer na emulated sa pagpapatakbo ng isang nakaraang Intel 183 00:08:25,220 --> 00:08:26,217 microprocessor. 184 00:08:26,217 --> 00:08:28,300 At oras na ito sa palibot nila Gusto gawin ang parehong bagay. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> HIKARI: Gamit ang isang Intel 8080 manu-manong sa kanyang tagiliran, 187 00:08:34,380 --> 00:08:37,770 Allen nakaupo pababa sa isang Harvard PDP-10 na computer 188 00:08:37,770 --> 00:08:42,010 at sinulat emulator at software mga tool na kailangan upang gawin ang programming. 189 00:08:42,010 --> 00:08:45,820 Samantala tumigil Gates ng pagpunta sa klase at nakatuon ang kanyang sarili 190 00:08:45,820 --> 00:08:48,120 sa pagdidisenyo sa BATAYANG, gamit ang bawat nanlilinlang 191 00:08:48,120 --> 00:08:53,130 alam niya upang makuha ang laki down na mababa sa 4 kilobytes. 192 00:08:53,130 --> 00:08:55,870 >> Jay Paul: Out sa Albuquerque, Ed Roberts nakuha ng isang tawag mula sa Gates 193 00:08:55,870 --> 00:08:59,754 pagtatanong para sa mga detalye tungkol sa kung paano ang Altair mapangasiwaan tiyak na gawain. 194 00:08:59,754 --> 00:09:01,170 Walang isa ay kailanman tinanong na dati. 195 00:09:01,170 --> 00:09:02,670 At nagsimula Roberts upang makakuha ng interesado. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI: Gamit ang pag-unlad mga tool at handa na ang disenyo, 198 00:09:07,970 --> 00:09:10,780 Isinulat ni pintuan at Allen ang code sa PDP-10, 199 00:09:10,780 --> 00:09:16,060 enlisting isa pang Harvard mag-aaral, Monte Davidoff, magsulat ng matematika gawain. 200 00:09:16,060 --> 00:09:19,450 Pagkatapos ng isang pangwakas na gabi ng programming, nakuha ko Allen sa isang plane 201 00:09:19,450 --> 00:09:22,970 upang maihatid ang kanilang BATAYANG sa MITS. 202 00:09:22,970 --> 00:09:25,800 Ginugol niya biyahe ang eroplano nag-aalala. 203 00:09:25,800 --> 00:09:28,490 At bumalik sa Cambridge Gate ay nag-aalala. 204 00:09:28,490 --> 00:09:32,100 Sila ay nasubok ang kanilang BATAYANG at ito ay nagtrabaho sa emulator. 205 00:09:32,100 --> 00:09:35,444 Ngunit paano kung ang emulator ay mali? 206 00:09:35,444 --> 00:09:37,360 Jay Paul: Bilang ng eroplano ay lumapit sa Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen natanto na ang kanilang BATAYANG, maaayos nang ngayon contained 208 00:09:40,070 --> 00:09:42,460 sa isang maliit na roll ng punched papel tape, ay 209 00:09:42,460 --> 00:09:44,970 maging walang kasaysayan nang walang isang hiwalay na programa, na tinatawag na isang loader, na 210 00:09:44,970 --> 00:09:47,550 Gusto sabihin sa Altair kung paano upang basahin ang papel na tape pagkatao 211 00:09:47,550 --> 00:09:49,620 fed sa teletype machine. 212 00:09:49,620 --> 00:09:52,970 Kinuha niya ang kanyang notebook at mabilis nagsulat pababa sa isang programa loader 213 00:09:52,970 --> 00:09:56,819 sa wikang Asembleya, pagkatapos ay manu-mano naisalin na sa 1s at 0s 214 00:09:56,819 --> 00:09:57,985 ang Altair ay maunawaan. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> HIKARI: Allen ay umaasa sa isang malinis, maliit, mataas na tech na kumpanya 217 00:10:03,830 --> 00:10:05,470 pinapatakbo ng lalaki sa demanda ng negosyo. 218 00:10:05,470 --> 00:10:09,210 Kaya siya ay magulat kapag natugunan Roberts sa kanya sa airport naghahanap tulad ng isang Ranch 219 00:10:09,210 --> 00:10:10,270 kamay. 220 00:10:10,270 --> 00:10:12,070 Roberts ay magulat din. 221 00:10:12,070 --> 00:10:16,340 Kapag bumaba siya sa Harvard programmer sa isang mamahaling hotel, 222 00:10:16,340 --> 00:10:20,790 Allen nagkaroon sa aminin na Hindi siya maaaring kayang bayaran ang kuwarto. 223 00:10:20,790 --> 00:10:24,510 >> Jay Paul: MITS, mismo, ay matatagpuan sa isang maalikabok strip mall. 224 00:10:24,510 --> 00:10:27,040 Inside sa isang cluttered workbench ng Altair 225 00:10:27,040 --> 00:10:30,390 load ng hanggang sa 5 kilobytes ng memorya at konektado sa pamamagitan ng isang cable 226 00:10:30,390 --> 00:10:32,030 sa isang teletype machine. 227 00:10:32,030 --> 00:10:37,200 Roberts at Chief Engineer, Bill Yates, naghintay expectantly 228 00:10:37,200 --> 00:10:40,660 bilang Allen toggle ang kanyang loader programa sa Altair. 229 00:10:40,660 --> 00:10:44,980 Teletype ang nagsimulang chugging bilang na nakuha ito ang papel tape sa pamamagitan ng tape reader. 230 00:10:44,980 --> 00:10:47,215 Ito kinuha marahil 15 minuto upang i-load ang programa. 231 00:10:47,215 --> 00:10:52,110 Pagkatapos ang teletype biglang-print ng maagap na memorya, pagkatapos ay handa na ang isang prompt, 232 00:10:52,110 --> 00:10:55,340 at nagsimulang mag-type Allen ang ilang mga pagsubok na utos. 233 00:10:55,340 --> 00:10:57,400 Upang pagkamangha ng lahat, ang software na nagtrabaho. 234 00:10:57,400 --> 00:10:58,525 Nagkaroon ng mga bug, siyempre. 235 00:10:58,525 --> 00:11:02,070 Ngunit ang pangunahing bagay noon ay nagtrabaho ito. 236 00:11:02,070 --> 00:11:06,570 >> HIKARI: Sa paglaon, sa kanilang mga paraan sa isang $ 3.00 tanghalian sa Pancho, ang nagsakay ng isang wasp 237 00:11:06,570 --> 00:11:10,470 sa window ng pickup trak at stung Allen sa braso. 238 00:11:10,470 --> 00:11:13,070 Ngunit sa puntong iyon wala maaaring palayawin ang mood. 239 00:11:13,070 --> 00:11:17,210 Ngayon ay nagkaroon ng Altair nito BATAYANG, ang unang komersyal na software para sa isang bahay 240 00:11:17,210 --> 00:11:23,260 computer, na ginawa sa pamamagitan ng Paul Allen at Bill Gate, na nagnenegosyo bilang Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> David J. MALAN: Maraming mga salamat sa aming dalawang mga mambabasa. 242 00:11:25,336 --> 00:11:30,690 >> [APPLAUSE] 243 00:11:30,690 --> 00:11:32,520 >> David J. MALAN: Ngayon mayroon kang ang iyong mga pagpipilian, 244 00:11:32,520 --> 00:11:35,880 bago umalis ka, ng isang sparkly o isang glow sa dark-- oh, 245 00:11:35,880 --> 00:11:40,810 maghintay ng isa seg, wait-- sparkly at isang glow sa dark elephant 246 00:11:40,810 --> 00:11:42,534 mula sa sariling Cheng Gong CS50 ni. 247 00:11:42,534 --> 00:11:43,450 HIKARI: Ay, salamat sa iyo. 248 00:11:43,450 --> 00:11:45,324 David J. MALAN: Lahat karapatan, salamat sa iyo kaya magkano. 249 00:11:45,324 --> 00:11:49,855 [APPLAUSE] 250 00:11:49,855 --> 00:11:51,105 David J. MALAN: Kaya tunay na kuwento. 251 00:11:51,105 --> 00:11:54,380 Ito ay upang sabihin na ang lahat ng mga machine at ang kadalian na kung saan namin 252 00:11:54,380 --> 00:11:56,270 gamitin ang mga ito ngayon at kumuha para sa ipinagkaloob, talaga 253 00:11:56,270 --> 00:12:00,070 Nagsimula dito, may ilang paces mula sa aktwal na teatro. 254 00:12:00,070 --> 00:12:03,930 At ngayon ngayon, kung hindi mo pa, ito ay Maxwell Dworkin, ang computer 255 00:12:03,930 --> 00:12:05,810 mga agham na gusali, ring sa palibot ng sulok. 256 00:12:05,810 --> 00:12:09,760 At sa ikalawang palapag ng ito hang tatlong pahina gusali gumagana 257 00:12:09,760 --> 00:12:12,740 mula sa orihinal na source code na Isinulat ni Bill Gates at Paul Allen. 258 00:12:12,740 --> 00:12:14,770 Sa katunayan, kung ang paggamit mo mag-zoom sa maaari mong makita hindi lamang 259 00:12:14,770 --> 00:12:17,350 ang kanilang mga pangalan sa orihinal na uri, kundi pati na rin 260 00:12:17,350 --> 00:12:22,100 ang kanilang mga pirma na sila adorned isang ilang taon bumalik noong huli nilang binisita. 261 00:12:22,100 --> 00:12:25,800 >> Ngunit kung ano ang partikular na nakakahimok tungkol sa ito ay kung ano ang set nila out na gawin 262 00:12:25,800 --> 00:12:29,760 ay magsulat ng isang programa na gagana paganahin ang iba pang mga tao na magsulat 263 00:12:29,760 --> 00:12:30,950 kanilang sariling mga programa. 264 00:12:30,950 --> 00:12:34,280 Sa oras na ang lahat ng nagkaroon sa ito ginawa ng MITS Altair machine. 265 00:12:34,280 --> 00:12:40,020 At ang lahat na kailangan nila ay ang ilang mga paraan ng ginagawa nitong madali para sa hobbyists at mga taong 266 00:12:40,020 --> 00:12:45,300 i amin sa kuwartong ito upang aktwal na programa na walang kinakailangang pag-unawa 267 00:12:45,300 --> 00:12:49,060 Asembleya code, o machine code, o Diyos pagbawalan, 0s at 1s. 268 00:12:49,060 --> 00:12:51,190 Kami programmer, tulad ng mga nasa kuwartong ito, kami 269 00:12:51,190 --> 00:12:54,070 nais na magagawang upang ipahayag ang ang ating mga sarili magkano ang mas katulad pseudo code 270 00:12:54,070 --> 00:12:57,330 kahit na ito ay isang kaunti pa nit picky kaysa usapan natin noong nakaraang linggo. 271 00:12:57,330 --> 00:13:00,970 Hindi namin gustong magsulat ng code tulad nito, kung saan ginawa Paul Allen at Bill Gates. 272 00:13:00,970 --> 00:13:04,850 Kami, sa halip, gusto upang isulat ang code na mukhang ng kaunti pa user friendly. 273 00:13:04,850 --> 00:13:07,150 >> Ngayon ito ay isang wika na kilala bilang BATAYANG. 274 00:13:07,150 --> 00:13:11,497 At ang mga numero ng linya doon ay kung ano ang iyong gamitin upang numero lamang ang mga linya ng code 275 00:13:11,497 --> 00:13:12,330 na ikaw ay sumusulat. 276 00:13:12,330 --> 00:13:14,038 Hindi namin kahit na mayroon sa gawin na mga araw na ito. 277 00:13:14,038 --> 00:13:16,060 Ngunit maaari mong makita dito kung paano i-print ang "kumusta, mundo" 278 00:13:16,060 --> 00:13:18,660 Gusto talaga baka i-print lamang iyon. 279 00:13:18,660 --> 00:13:22,710 At kaya kung ano ang Bill at Paul ginawa noon ay bigyang kapangyarihan ang mga tao na magsulat code na tulad nito 280 00:13:22,710 --> 00:13:27,240 sa halip of-- kung kumuha ka ng isang pagtingin sa wall-- computer science code na katulad nito. 281 00:13:27,240 --> 00:13:29,290 >> Sa katunayan, CS50 kamakailan ay nagkaroon ng isang pagkakataon 282 00:13:29,290 --> 00:13:32,540 upang umupo sa Propesor Harry Lewis sa Computer Science kagawaran, na nag- 283 00:13:32,540 --> 00:13:34,640 talagang tinuruan Bill Gate ilang taon na ang nakakaraan, 284 00:13:34,640 --> 00:13:38,460 at ito ay nakatayo dito bago mga tatlong mga pahina ng sipi. 285 00:13:38,460 --> 00:13:39,560 Tingnan natin ang isang hitsura. 286 00:13:39,560 --> 00:13:45,520 >> Harry Lewis: Ano ang mayroon kang dito ay isang listahan ng maagang bahagi ng software 287 00:13:45,520 --> 00:13:50,240 isinulat ni Bill Gates at Paul Allen, ang tagapagtatag ng Microsoft. 288 00:13:50,240 --> 00:13:52,570 Kaya ang code ay kawili-wiling para sa dalawang mga kadahilanan. 289 00:13:52,570 --> 00:13:55,480 Una sa lahat, naging ito Unang produkto ng Microsoft sa, 290 00:13:55,480 --> 00:14:01,810 na kung saan ay isang interpreter para sa ang BATAYANG wika programming. 291 00:14:01,810 --> 00:14:04,940 At ikalawa, ito ay isa sa mga unang pagtatangka 292 00:14:04,940 --> 00:14:10,580 upang lumikha ng isang interpreter kaya ordinaryong maaaring gamitin ng mga taong personal na mga computer. 293 00:14:10,580 --> 00:14:12,670 >> Kaya Bill Gates ay isang undergraduate sa Harvard. 294 00:14:12,670 --> 00:14:14,820 Nagsimula ako nagtuturo sa Harvard sa 1974. 295 00:14:14,820 --> 00:14:16,560 Ito ay tapos noong 1975. 296 00:14:16,560 --> 00:14:20,180 Kaya ito ay maaga sa kanyang karera at maaga sa aking karera. 297 00:14:20,180 --> 00:14:23,790 Talagang tinuruan ko Bill sa isang kurso sa oras na ito. 298 00:14:23,790 --> 00:14:27,130 Paul Allen ay hindi isang Harvard mag-aaral, ngunit siya 299 00:14:27,130 --> 00:14:31,020 naging isang mataas na paaralan kaklase ng Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Kung darating at tumingin sa listahan, ikaw ay 301 00:14:33,740 --> 00:14:36,230 aktwal na mahanap ang isang third pangalan, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 na naging kaklase Gates ni dito sa Harvard. 303 00:14:39,260 --> 00:14:41,340 >> OK, kaya narito ang isang dito kawili-wiling mga komento up. 304 00:14:41,340 --> 00:14:47,150 Sinasabi nito na "Sa 4K maaaring tanggalin ang parisukat na ugat ngunit para sa mga loop ay dapat pa ring gagana. " 305 00:14:47,150 --> 00:14:53,080 OK, kaya kung ano ang ibig sabihin nito ay ay na mayroong ay dalawang paraan upang ipunin ang programang ito. 306 00:14:53,080 --> 00:14:57,860 Ang isa ay upang tumakbo sa isang bersyon ng ito Altair computer na 307 00:14:57,860 --> 00:15:04,310 na lamang nagkaroon 4K salita ng memorya, 4096 mga salita ng memorya. 308 00:15:04,310 --> 00:15:07,050 Subalit ang malaking bersyon ay may 8K. 309 00:15:07,050 --> 00:15:09,770 At kaya kung ano ang sinasabi ay na sa bersyon ng 4K 310 00:15:09,770 --> 00:15:12,770 kayo ay nagkaroon ng upang magtanggal ng ilang mga code upang gawin itong akma. 311 00:15:12,770 --> 00:15:14,790 At isa sa mga bagay na ay tinanggal 312 00:15:14,790 --> 00:15:16,290 ay magiging mga parisukat ugat routine. 313 00:15:16,290 --> 00:15:20,360 Ngunit tila ang para sa mga loop ay dapat pa rin 314 00:15:20,360 --> 00:15:26,392 gumana kahit na kapag ikaw ay kino-compile ang pababa para lamang sa 4K na bersyon ng computer. 315 00:15:26,392 --> 00:15:29,350 David J. MALAN: Kaya isa sa mga tema, dahil kakailanganin namin makita sa computer science, 316 00:15:29,350 --> 00:15:31,430 ay ang paniwala ng layering at abstraction, 317 00:15:31,430 --> 00:15:34,670 at talagang nakatayo sa mga balikat mga tao na nag-dumating bago sa amin, hindi 318 00:15:34,670 --> 00:15:37,890 hindi tulad ng ilan sa mga Bill Gates at Paul Allen sanaysay dito. 319 00:15:37,890 --> 00:15:40,080 At kung ano ang ibig sabihin nito ay na ngayon maaari naming tumagal para sa 320 00:15:40,080 --> 00:15:43,490 Binigyan na bagay ay aktwal na madali para sa amin upang isulat ang code. 321 00:15:43,490 --> 00:15:47,170 Sa katunayan code, tulad ng sinabi namin sa Biyernes, ay higit pa technically na kilala bilang source code. 322 00:15:47,170 --> 00:15:52,210 At ito ay Ingles na ito tulad ng syntax na mas wastong at higit pa rin tinukoy 323 00:15:52,210 --> 00:15:55,480 kaysa sa isang bagay tulad ng pseudo code, para sa na walang mga pormal na kahulugan. 324 00:15:55,480 --> 00:15:58,320 >> At ngayon kung ano kami ay pagpunta mag-focus sa ay source code 325 00:15:58,320 --> 00:16:01,010 na ganito ang hitsura, na admittedly sa unang tingin 326 00:16:01,010 --> 00:16:02,690 mukhang ganap cryptic. 327 00:16:02,690 --> 00:16:08,540 At tapat, ito ay paraan higit pa aesthetically kumplikadong kaysa sa napapailalim na programa ay. 328 00:16:08,540 --> 00:16:13,300 Ang lahat ng mga program na ito ginagawa, pagpapabalik, ay kung ano ang sinabi namin? 329 00:16:13,300 --> 00:16:14,990 Pini-print ito lang ang "kumusta mundo." 330 00:16:14,990 --> 00:16:19,600 At gayon pa man tumingin sa lahat ng mga bagay-bagay na kailangan namin upang balutin sa paligid na napaka-simpleng parirala. 331 00:16:19,600 --> 00:16:21,750 Ngunit bago mahaba ang lahat ng mga linyang ito at higit pa 332 00:16:21,750 --> 00:16:24,800 Gagawing mas mas mahusay na pakiramdam sa iyo. 333 00:16:24,800 --> 00:16:26,940 >> At ang daloy ay ang mga sumusunod. 334 00:16:26,940 --> 00:16:31,220 Ano ang kailangan namin sa aming pagtatapon ay gumawa ng code, tulad ng pinagmulan 335 00:16:31,220 --> 00:16:32,340 code na nakita natin lamang. 336 00:16:32,340 --> 00:16:35,060 At kailangan namin ng isang bagong programa upang patakbuhin ito sa pamamagitan ng. 337 00:16:35,060 --> 00:16:39,130 Kailangan namin ng algorithm na maaari convert ang source code, tulad nito, 338 00:16:39,130 --> 00:16:41,932 sa bagay code, 0s at 1s. 339 00:16:41,932 --> 00:16:43,890 Sa ibang salita, kung ano ang kami ay pagpunta upang matuto ngayon 340 00:16:43,890 --> 00:16:46,620 ay kung paano gawin ito, isulat source code up tuktok, 341 00:16:46,620 --> 00:16:49,930 pumasa ito bilang input sa isang espesyal na programa na kilala bilang isang Compiler, 342 00:16:49,930 --> 00:16:52,140 at kami ay pagpunta upang makabuo ng object code. 343 00:16:52,140 --> 00:16:54,600 Aling lamang magarbong paraan ng sinasabi magsasagawa kami ng isang bagay 344 00:16:54,600 --> 00:16:58,350 na mukhang ganito, ipasa ito sa isang programa na tinatawag na isang Compiler, 345 00:16:58,350 --> 00:17:01,210 paggawa object code na ganito ang hitsura. 346 00:17:01,210 --> 00:17:04,720 >> Kaya ito ay literal ang mga pattern ng 0s at 1s 347 00:17:04,720 --> 00:17:08,550 na maunawaan ng isang Intel computer na mga araw na ito, 348 00:17:08,550 --> 00:17:12,480 na kung ipakahulugan ng CPU, ang brains sa loob ng isang computer, 349 00:17:12,480 --> 00:17:16,130 ay literal na i-print out, masyadong simple, "kumusta mundo." 350 00:17:16,130 --> 00:17:19,670 Ngayon ay mayroong paraan nang higit pa 0s at 1s kaysa sa iyo Gusto Umaasa maaaring kinakailangan para sa iyon. 351 00:17:19,670 --> 00:17:22,520 Ngunit iyon dahil kami ay pagbuo sa isang magandang deal ng pagiging kumplikado 352 00:17:22,520 --> 00:17:24,270 na maaari henceforth namin tumagal para sa ipinagkaloob. 353 00:17:24,270 --> 00:17:27,869 Sa ibang salita, ng maraming ng smart mga tao Nagbigay kami ng maraming cool na mga tool 354 00:17:27,869 --> 00:17:32,480 at malakas na software na kung saan namin Maaari na ngayong magsagawa ng mga proyekto ng ating sariling. 355 00:17:32,480 --> 00:17:33,400 >> Kaya sabihin makapagsimula. 356 00:17:33,400 --> 00:17:36,640 Sapagkat ang huling Biyernes, at para sa Problema Set 0 sa linggong ito, 357 00:17:36,640 --> 00:17:39,000 ikaw ay ipinapalabas sa isang mundo na ganito ang hitsura. 358 00:17:39,000 --> 00:17:42,180 Simula ngayon at para sa Problema Itakda ang 1 sa susunod na linggo, ang code 359 00:17:42,180 --> 00:17:45,410 Pupunta upang tumingin ng kaunti pa cryptic, ngunit sa pagtakbo ay 360 00:17:45,410 --> 00:17:46,940 magiging pareho. 361 00:17:46,940 --> 00:17:50,770 Kaya paunawa, nangungunang ay wala, ibaba ay C. tapat scratch 362 00:17:50,770 --> 00:17:52,780 ay isang pulutong mas user friendly at naa-access. 363 00:17:52,780 --> 00:17:56,890 Ngunit kung mong ihambing ngayon biswal na tuktok upang ibaba, mayroong uri ng isang 00:59 364 00:17:56,890 --> 00:17:59,690 pagsusulatan sa pagitan ng mga palaisipan piraso at ang wika 365 00:17:59,690 --> 00:18:00,870 Ikinalulungkot namin tungkol sa upang i-play na may. 366 00:18:00,870 --> 00:18:04,420 Sa partikular, sabihin nating, ang asul na palaisipan piraso up tuktok, 367 00:18:04,420 --> 00:18:08,370 ay tila katumbas ng kung ano ang keyword o espesyal na mga parirala sa wikang ito 368 00:18:08,370 --> 00:18:09,062 na tinatawag na C? 369 00:18:09,062 --> 00:18:09,770 Madla: Printf. 370 00:18:09,770 --> 00:18:10,728 David J. MALAN: Printf. 371 00:18:10,728 --> 00:18:12,140 Nangangahulugan iyon na format sa pag-print. 372 00:18:12,140 --> 00:18:15,240 At iyon ang isang magarbong lamang paraan ng pagsabi printf sa C 373 00:18:15,240 --> 00:18:18,615 ay magiging isang pahayag o ng isang function na mga Kopya ng isang bagay sa screen. 374 00:18:18,615 --> 00:18:19,990 Ano ang ibig ito mag-print sa screen? 375 00:18:19,990 --> 00:18:23,627 Anuman mong sabihin ito sa loob ng mga quote, sa loob ng panaklong. 376 00:18:23,627 --> 00:18:25,460 Kaya muli, admittedly, maraming ng mga bagay-bagay 377 00:18:25,460 --> 00:18:27,990 na mayroon ka na dapat tandaan, panaklong, quote, semicolons, 378 00:18:27,990 --> 00:18:28,656 at lahat ng mga ito. 379 00:18:28,656 --> 00:18:30,600 Ngunit lahat ng iyon ay isang uri ng sa tabi ng point. 380 00:18:30,600 --> 00:18:33,660 Ang kawili-wiling mga takeaway para sa ngayon ay ang sabihin nating bloke sa scratch 381 00:18:33,660 --> 00:18:37,520 ay halos katumbas ng ang printf pahayag sa C. 382 00:18:37,520 --> 00:18:41,390 >> Samantala, ang dilaw na piraso palaisipan up tuktok, kapag nag-click ang berdeng flag, 383 00:18:41,390 --> 00:18:44,736 Marahil katumbas sa kung anong mga dito? 384 00:18:44,736 --> 00:18:45,360 Madla: Main. 385 00:18:45,360 --> 00:18:46,359 David J. MALAN: Kaya pangunahing. 386 00:18:46,359 --> 00:18:47,410 Siguro int, siguro ay walang bisa. 387 00:18:47,410 --> 00:18:51,280 Ngunit pangunahing uri ng mga tunog tulad ng mahalaga, at sa katunayan ito ay. 388 00:18:51,280 --> 00:18:54,080 Kaya kapag nag-click ang berdeng bandila ay, muli, ang piraso palaisipan 389 00:18:54,080 --> 00:18:56,390 na kicks-off ang isang buong programa sa simula. 390 00:18:56,390 --> 00:19:02,140 Ngunit kami ay pagpunta sa ngayon simulan ang pagtawag na pangunahing, na kilala bilang pangunahing ito function. 391 00:19:02,140 --> 00:19:06,410 >> Ngayon samantala na aming tuntuning panlahat ito tulad ng sumusunod. 392 00:19:06,410 --> 00:19:08,780 Maaari naming tawagan ang sinasabi ng isang function. 393 00:19:08,780 --> 00:19:10,580 At ito ay maaaring tumingin partikular na tulad nito. 394 00:19:10,580 --> 00:19:11,770 Well, kung ano ang tungkol sa mga loop? 395 00:19:11,770 --> 00:19:16,540 Kung gusto namin upang simulan ang nagko-convert o isinasalin nang higit pa sa scratch sa C, 396 00:19:16,540 --> 00:19:19,400 ito bagay dito tila lamang sabi ni "kumusta mundo" magpakailanman. 397 00:19:19,400 --> 00:19:23,060 Kaya kung nag-ugnay ka ng mga mga script na may pusa sa simula, 398 00:19:23,060 --> 00:19:26,560 lamang ito ng pagpunta sa panatilihin ang sinasabi ng sa ilang mga uri ng cartoon ng bubble, 399 00:19:26,560 --> 00:19:29,922 "Kumusta mundo, kumusta mundo, kumusta mundo, "ad nauseum, magpakailanman. 400 00:19:29,922 --> 00:19:33,130 Kung gusto naming gawin ang isang bagay na katulad sa C, ito ay pagpunta upang tumingin ng kaunti cryptic. 401 00:19:33,130 --> 00:19:35,463 Ngunit maaari naming makamit ang parehong Mga resulta, pati na aming kalaunan 402 00:19:35,463 --> 00:19:36,861 malaman, na may syntax tulad nito. 403 00:19:36,861 --> 00:19:39,360 Pupunta ako upang magamit muli printf, dahil sa pagtatapos ng araw 404 00:19:39,360 --> 00:19:42,040 Gusto kong i-print "kumusta mundo." 405 00:19:42,040 --> 00:19:45,610 At tila gumagamit ako ng isang sa keyword na iyon ay hindi magpakailanman. 406 00:19:45,610 --> 00:19:47,320 Ito ay sa halip ang salita habang. 407 00:19:47,320 --> 00:19:49,650 Ngunit lamang magkakahulugang sa Ingles, habang ang uri ng 408 00:19:49,650 --> 00:19:52,120 Iminumungkahi ng ilang mga uri ng loop o pag-ikot. 409 00:19:52,120 --> 00:19:55,070 >> Kaya nangyari iyon upang maging ang keyword na gumagamit ng C. 410 00:19:55,070 --> 00:20:00,700 At habang totoo, bakit ginagawa habang tunay na epektibo ang ibig sabihin nang pirmihan? 411 00:20:00,700 --> 00:20:04,240 Well, habang, bilang na aming lalong madaling panahon Pinahahalagahan ang lahat ng higit pa, 412 00:20:04,240 --> 00:20:08,140 May ito parenthetical sa tabi nito kung saan maaari kang maglagay ng Boolean expression. 413 00:20:08,140 --> 00:20:11,360 At kaya hangga't na expression ay totoo, ang code na ito, 414 00:20:11,360 --> 00:20:14,750 bilang naitala sa pagitan ng dalawang kulot braces bilang namin tumawag sa kanila, 415 00:20:14,750 --> 00:20:16,880 ay lamang na patuloy na tumatakbo muli at muli. 416 00:20:16,880 --> 00:20:18,410 >> Kaya totoo ay totoo. 417 00:20:18,410 --> 00:20:20,900 Kaya habang tunay na paraan gawin lamang ito nang permanente. 418 00:20:20,900 --> 00:20:23,480 Ito ay halos isang hangal bumuo upang ipahayag ang iyong sarili. 419 00:20:23,480 --> 00:20:26,590 Ngunit walang magpakailanman keyword sa C. Nagkaroon habang. 420 00:20:26,590 --> 00:20:29,390 At nagkaroon ng isang napaka-simpleng Boolean expression tulad ng totoo. 421 00:20:29,390 --> 00:20:32,210 At kaya ito, sisimulan naming makita, Nakakamit ang parehong resulta. 422 00:20:32,210 --> 00:20:33,890 >> Paano pa ang maaari mong ipatupad ang isang loop? 423 00:20:33,890 --> 00:20:36,980 Well, sa scratch maaari mo matapang na code isang tiyak na bilang 424 00:20:36,980 --> 00:20:39,430 ng iterations sa loop dito. 425 00:20:39,430 --> 00:20:43,210 At kaya iyon mismo ang namin maaaring gawin sa bersyong ito ng C, 426 00:20:43,210 --> 00:20:46,140 kung saan mayroon kaming tinatawag na para sa loop. 427 00:20:46,140 --> 00:20:49,850 At ang para sa loop dito ay pagpunta upang umulit, medyo cryptically, 428 00:20:49,850 --> 00:20:54,100 mula sa halaga sa 0 hanggang ngunit sa mas mababa sa 10. 429 00:20:54,100 --> 00:20:55,955 >> Ngayon mga variable sa simula. 430 00:20:55,955 --> 00:20:57,830 Hindi mo maaaring nagkaroon Paminsan-minsan na gamitin ang mga ito. 431 00:20:57,830 --> 00:21:02,516 Ngunit ano ang punto, sa pangkalahatan, ng isang variable na sinabi namin noong nakaraang linggo? 432 00:21:02,516 --> 00:21:03,015 Ano iyan? 433 00:21:03,015 --> 00:21:03,780 >> Madla: Mga Punto. 434 00:21:03,780 --> 00:21:05,200 >> David J. MALAN: Upang ituro? 435 00:21:05,200 --> 00:21:05,700 Oh, tumuturo. 436 00:21:05,700 --> 00:21:07,620 OK, nang pinapanatili ang track ng mga punto, halimbawa, sa isang laro. 437 00:21:07,620 --> 00:21:09,510 O sa mas pangkalahatang paraan ng paggawa ano may variable? 438 00:21:09,510 --> 00:21:10,450 Ano ang utility ng mga ito? 439 00:21:10,450 --> 00:21:10,825 >> Madla: Memory. 440 00:21:10,825 --> 00:21:11,750 >> David J. MALAN: Oo, kaya memorya. 441 00:21:11,750 --> 00:21:13,000 Ito ay para sa pag-iimbak ng isang bagay. 442 00:21:13,000 --> 00:21:17,336 At ang uri ng Silly visual na ginamit ko huling oras ay tulad nito glass mangkok. 443 00:21:17,336 --> 00:21:19,710 At kung gusto naming mag-imbak isang bagay sa loob ng isang variable, 444 00:21:19,710 --> 00:21:21,918 halimbawa ngayon ang halaga ay anim dahil doon 445 00:21:21,918 --> 00:21:23,450 anim na bola ping pong in dito. 446 00:21:23,450 --> 00:21:26,158 Ito ay ilan lamang uri ng imbakan lalagyan na sa ilalim ng hood 447 00:21:26,158 --> 00:21:30,030 ay ipinatupad gamit ang mga piraso, 0s at 1s, gayunpaman isang computer mangyayari upang gawin iyon. 448 00:21:30,030 --> 00:21:32,900 >> Kaya sa simula, kung namin nais na magkaroon ng isang variable, 449 00:21:32,900 --> 00:21:34,840 maaari naming gamitin ang isang orange bloke na katulad nito. 450 00:21:34,840 --> 00:21:37,050 Susubukan naming tumawag na counter sa partikular na kasong ito. 451 00:21:37,050 --> 00:21:38,890 Nasimulan ko ito sa 0. 452 00:21:38,890 --> 00:21:41,080 At kung ano ito pagkatapos gagawin ko? 453 00:21:41,080 --> 00:21:44,780 Habang Panahon, sabihin natin na counter, na kung i-play sa iyo ng na sa simula, 454 00:21:44,780 --> 00:21:45,780 makikita mo lamang makita sa simula. 455 00:21:45,780 --> 00:21:49,920 Ang pusa o kahit anong costume mong ilagay sa ay makipag-usap sa kanya ang numero na pinag-uusapan. 456 00:21:49,920 --> 00:21:52,840 >> Baguhin ang counter ng 1 ay tulad ng incrementing sa pamamagitan 1. 457 00:21:52,840 --> 00:21:56,580 At kaya ito ay pagpunta sa bilangin mula sa kung ano ang kaya kung ano? 458 00:21:56,580 --> 00:21:59,114 Mula sa 0 til infinity, o hanggang sa wala ng pahinga, 459 00:21:59,114 --> 00:22:01,030 o hanggang sa i-isang uri ng mawalan ng interes sa panonood ng 460 00:22:01,030 --> 00:22:02,650 kung gaano kataas maaari siya talaga bibilangin. 461 00:22:02,650 --> 00:22:04,800 >> Kaya kung paano na maaari naming i-convert ito sa C? 462 00:22:04,800 --> 00:22:06,480 Ito ay pagpunta upang tumingin ng kaunti cryptic. 463 00:22:06,480 --> 00:22:08,896 Ngunit muli, kung tiningnan mo ang bawat ng mga linyang ito nang isa-isa 464 00:22:08,896 --> 00:22:10,410 sila uri ng lineup sa pangkalahatan. 465 00:22:10,410 --> 00:22:13,526 Kaya tila int ay pagpunta sa kumuha ng mga espesyal na kahulugan sa C. 466 00:22:13,526 --> 00:22:14,400 Susubukan naming makita na muli. 467 00:22:14,400 --> 00:22:15,810 Bilang isang bukod ito ay nangangahulugan na integer. 468 00:22:15,810 --> 00:22:16,990 Kaya nangangahulugan lang ito na numero. 469 00:22:16,990 --> 00:22:18,920 Kaya iyon ang uri ng glass mangkok gusto ko, isa 470 00:22:18,920 --> 00:22:21,120 na maaaring mag-imbak ng mga numero, hindi i-ping pong bola. 471 00:22:21,120 --> 00:22:25,520 At ako pupunta na gamitin ang katumbas sign doon upang magtalaga dito ng isang halaga ng 0. 472 00:22:25,520 --> 00:22:29,440 Kaya na Medyo tulad ng hanay counter sa 0, ngunit sa C. 473 00:22:29,440 --> 00:22:32,840 >> Samantala, habang totoo, na noon ay katumbas, siyempre, sa habang panahon, 474 00:22:32,840 --> 00:22:35,980 kahit na medyo cryptic, at pagkatapos ay sa loob ng kulot braces. 475 00:22:35,980 --> 00:22:39,188 At maaari mong isipin na ang mga kulot braces, kung saan maaari mong i-type sa iyong keyboard, 476 00:22:39,188 --> 00:22:43,110 bilang pagiging talagang tulad ng curvature sa mga kulay-dilaw na mga bloke loop sa simula. 477 00:22:43,110 --> 00:22:45,700 Embraces ito sa maramihang mga linya ng code. 478 00:22:45,700 --> 00:22:48,120 >> Printf ay nakakakuha ng isang maliit na nakakatakot ngayon dahil ako 479 00:22:48,120 --> 00:22:51,120 makita quote hindi lamang sa mga panaklong. 480 00:22:51,120 --> 00:22:55,160 Ngunit ano pa ang bagong syntactically sa halimbawang ito? 481 00:22:55,160 --> 00:22:57,300 Mayroong isang porsiyento d. 482 00:22:57,300 --> 00:22:58,551 At pagkatapos ay backslash n ay doon. 483 00:22:58,551 --> 00:23:00,883 Ay namin makita na bago, kahit bagaman hindi ko babanggitin dito. 484 00:23:00,883 --> 00:23:01,886 Pagkatapos ay mayroong isang kuwit. 485 00:23:01,886 --> 00:23:03,010 At pagkatapos ay mayroong isang counter. 486 00:23:03,010 --> 00:23:05,010 >> Ngunit kami ay makita sa loob lamang ng sandali na ito ay isa lamang 487 00:23:05,010 --> 00:23:09,080 isang karaniwang paraan ng pagsabi sa pag-print ng "Numero ng decimal," quote, unquote, 488 00:23:09,080 --> 00:23:10,500 ang ilang mga decimal na numero. 489 00:23:10,500 --> 00:23:13,370 Ngunit Pupunta ako sa sabihin sa iyo sa ibang pagkakataon ano na decimal na numero ay. 490 00:23:13,370 --> 00:23:16,835 Kaya ang katotohanan na mayroong isang kuwit sa linyang ito sinasabi printf, 491 00:23:16,835 --> 00:23:18,710 Ibig sabihin sige at i-print ang ilang mga decimal na numero. 492 00:23:18,710 --> 00:23:23,110 Oh, at sa pamamagitan ng mga paraan, ang bilang ay anuman ang halaga ng variable na ito ay. 493 00:23:23,110 --> 00:23:25,880 At kaya upang gawin itong higit pa malinaw, magpapadala kami makakita ng halimbawa 494 00:23:25,880 --> 00:23:30,930 bago mahaba na kinasasangkutan ng eksaktong printf sa konteksto ng totoong C programa. 495 00:23:30,930 --> 00:23:33,472 >> Ngayon lang sa wrap up ilang ng mga constructs. 496 00:23:33,472 --> 00:23:36,680 Boolean expression, hindi mo na maaaring mayroon okasyon upang gamitin ang mga ito sa iyong programa 497 00:23:36,680 --> 00:23:39,450 ngunit maaari mo nang napakahusay, lalo na kung gumagamit ng mga kundisyon. 498 00:23:39,450 --> 00:23:43,460 At kaya ang dalawang mga halimbawa mula sa Sa simula ibig sabihin kung x ay mas mababa sa y, 499 00:23:43,460 --> 00:23:48,770 o kung x mas mababa sa y at y Mababa kaysa z, kung paano maaari naming isalin iyon? 500 00:23:48,770 --> 00:23:50,810 >> Well, sa C ito lamang pagpunta sa magmukhang ganito. 501 00:23:50,810 --> 00:23:55,300 Ang isang maliit na cryptic, higit pang mga panaklong, ang ilang mga kakatwang mga ampersand, ngunit fundamentally 502 00:23:55,300 --> 00:23:59,160 ang mga ideya ay kasing simple ng mga ito ay nasa piraso puzzle mundo. 503 00:23:59,160 --> 00:24:02,690 Lang namin Sinusuri kung may isang bagay Mababa sa ibang bagay. 504 00:24:02,690 --> 00:24:03,910 >> Paano ang tungkol sa mga kondisyon? 505 00:24:03,910 --> 00:24:09,710 Sa isang maikling salita sa Ingles, ano ang ginagawa ito chunk ng scratch code ko nais mong sabihin? 506 00:24:09,710 --> 00:24:11,050 >> Madla: Inihahambing ng dalawang numero. 507 00:24:11,050 --> 00:24:13,760 >> David J. MALAN: Inihahambing ng dalawang numero, at kung x mas mababa sa y 508 00:24:13,760 --> 00:24:14,860 sabi ni ito bilang magkano. 509 00:24:14,860 --> 00:24:18,080 Kung x ay mas malaki kaysa sa y sinasabi nito ng maraming, tao 510 00:24:18,080 --> 00:24:20,740 kung x ay katumbas ng y sinasabi nito bilang magkano. 511 00:24:20,740 --> 00:24:22,180 Ngayon kung saan ay x at y nanggaling? 512 00:24:22,180 --> 00:24:22,680 Sino ang nakakaalam. 513 00:24:22,680 --> 00:24:25,380 Ito chunk ng scratch code ay nasa labas ng konteksto. 514 00:24:25,380 --> 00:24:29,050 Ngunit kung ano ang gusto naming gawin ngayon ay i-translate ito para sa isang sandali lamang upang makita. 515 00:24:29,050 --> 00:24:31,660 >> Kaya habang ikaw ay komportable sa linggong ito sa Problema Set 516 00:24:31,660 --> 00:24:34,190 0 ipinapalabas sa mundong ito sa kaliwa, Napagtanto 517 00:24:34,190 --> 00:24:36,940 na ang mga ideya ay hindi nagbabago sa linggong ito o sa susunod na o lagpas. 518 00:24:36,940 --> 00:24:38,690 Lamang kami ng pagpunta sa simulan ang pagsusulat ng mga bagay 519 00:24:38,690 --> 00:24:41,240 sa ibang paraan gamit ang aming keyboard sa halip ng aming mouse. 520 00:24:41,240 --> 00:24:44,577 >> Kaya kung x mas mababa sa y, at mayroong ilang mga panaklong doon, 521 00:24:44,577 --> 00:24:47,160 pagkatapos ay mayroong ilang mga kulot braces muli sa uri ng encapsulate ito 522 00:24:47,160 --> 00:24:48,970 tulad lamang ang dilaw na mga piraso palaisipan gawin. 523 00:24:48,970 --> 00:24:53,000 At Pupunta ako sa printf x Mababa sa y at iba pa. 524 00:24:53,000 --> 00:24:56,540 >> Ano ang maganda ang tungkol sa C, bilang maaari mong makita dito, 525 00:24:56,540 --> 00:25:00,480 ay na hindi mo makuha ang nesting, nesting, nesting na kinakailangan 526 00:25:00,480 --> 00:25:02,220 pagpunta sa itulak ang iyong code sa kanan. 527 00:25:02,220 --> 00:25:04,990 Maaari mong sa halip mayroon ang lahat ng bagay lineup maaayos nang i ito. 528 00:25:04,990 --> 00:25:08,960 Ngunit ito lamang ay isang Aesthetic detalye magpapadala kami makita muli bago ang haba. 529 00:25:08,960 --> 00:25:09,660 >> Lahat ng karapatan. 530 00:25:09,660 --> 00:25:13,290 Kaya na pinagsasama sa amin pabalik sa ito cryptic naghahanap ng programa. 531 00:25:13,290 --> 00:25:15,180 Ng aktwal na sumulat ng ilang code Hayaan. 532 00:25:15,180 --> 00:25:16,830 Ngayon paano mo pumunta tungkol sa pagsusulat ng code? 533 00:25:16,830 --> 00:25:21,310 Ang lahat ng mga taon na iyong pag-aari Mac o PC, desktop o laptop, 534 00:25:21,310 --> 00:25:24,520 talaga nagkaroon ka ng kakayahan upang simulan ang pagsusulat ng programming code. 535 00:25:24,520 --> 00:25:27,050 Ngunit marahil ka nawawala ng isang espesyal na uri ng programa. 536 00:25:27,050 --> 00:25:28,470 Maaari mong isulat ay tiyak na code. 537 00:25:28,470 --> 00:25:30,740 Ngunit hindi mo magagawa kinakailangan, sa labas ng kahon, 538 00:25:30,740 --> 00:25:34,210 convert na source code sa bagay code, 0s at 1s 539 00:25:34,210 --> 00:25:35,619 nang walang ano sa iyong computer? 540 00:25:35,619 --> 00:25:36,410 Madla: Compiler. 541 00:25:36,410 --> 00:25:37,630 David J. MALAN: Kaya isang Compiler, i-right. 542 00:25:37,630 --> 00:25:39,730 Ngayon karamihan ng marahil hindi pagmamay-ari ng Compiler, 543 00:25:39,730 --> 00:25:41,259 na hindi kailanman na-download ng isang Compiler. 544 00:25:41,259 --> 00:25:44,300 Ngunit makikita mo ang maaari mong i-download ito tulad ng karamihan sa anumang iba pang mga piraso ng software. 545 00:25:44,300 --> 00:25:47,470 Sa mundo ng Mac OS, maaari mong i-download o na-download na 546 00:25:47,470 --> 00:25:50,437 isang bagay na tinatawag Xcode o GCC o Clang. 547 00:25:50,437 --> 00:25:52,270 Kung dumating ka mula sa Windows mundo mo maaari 548 00:25:52,270 --> 00:25:56,190 na-download ang Visual Studio, Visual Basic, tulad ng mga kapaligiran na iyon. 549 00:25:56,190 --> 00:25:59,200 Mayroong dose-dosenang mga compiler mga araw na ito na maaari mong gamitin. 550 00:25:59,200 --> 00:26:01,940 Subalit ang maikling ng ito dito ay ang magiging sakit ng 551 00:26:01,940 --> 00:26:04,480 at, tapat, isang teknolohikal bangungot para sa daan-daang 552 00:26:04,480 --> 00:26:07,680 ng mga taong may iba't-ibang configuration ng computer upang ang lahat 553 00:26:07,680 --> 00:26:09,800 i-configure ang kanilang mga makina sa eksaktong parehong paraan 554 00:26:09,800 --> 00:26:11,700 sa gayon ay maaari naming lahat maging sa parehong pahina. 555 00:26:11,700 --> 00:26:15,240 >> Kaya kung ano ang namin, sa halip, gawin sa CS50 ay magbibigay kami sa iyo 556 00:26:15,240 --> 00:26:18,349 isang karaniwang kapaligiran, isang Linux environment na 557 00:26:18,349 --> 00:26:20,140 pagpunta sa tumingin ng kaunti isang bagay na katulad nito. 558 00:26:20,140 --> 00:26:22,980 Makakakita ka ng higit pa sa ito sa Problema Set 1 ng detalye na 559 00:26:22,980 --> 00:26:25,330 ay pupunta sa online na ito Biyernes gabi. 560 00:26:25,330 --> 00:26:28,360 >> At kung ano ang ibig sabihin nito ay na henceforth 561 00:26:28,360 --> 00:26:32,060 ay pagpunta sa magagawang i- i-download at i-install ng isang program 562 00:26:32,060 --> 00:26:33,650 na tinatawag na CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 At ka ng pagpunta upang i-download at i-install ng isa pang programa na tinatawag na 564 00:26:36,275 --> 00:26:40,300 isang hypervisor, na kung saan ay isa lamang magarbong paraan ng pagkamit na ito. 565 00:26:40,300 --> 00:26:44,600 Kung nagmamay-ari ka ng Mac o PC o isang Linux computer o isang Solaris computer, 566 00:26:44,600 --> 00:26:46,830 o kahit anong mabaliw operating sistema nagpapatakbo ka, 567 00:26:46,830 --> 00:26:49,820 ka ng pagpunta sa i-download ang isang program na tinatawag na hypervisor na 568 00:26:49,820 --> 00:26:53,350 pagpunta upang patakbuhin ang CS50 Appliance sa iyong computer 569 00:26:53,350 --> 00:26:55,430 kahit na ano ang iyong operating system. 570 00:26:55,430 --> 00:27:00,640 Ang isang hypervisor sa ibang salita ay nag-convert ang aming mga bagay-bagay sa kahit anong wika, 571 00:27:00,640 --> 00:27:03,850 anumang mga tagubilin sa iyong Naiintindihan ng sariling computer. 572 00:27:03,850 --> 00:27:04,962 >> Kaya ito ay isang layering. 573 00:27:04,962 --> 00:27:06,920 At muli, ito ang uri ng thematic sa computer 574 00:27:06,920 --> 00:27:08,722 agham, ang gusali sa tuktok ng mga bagay. 575 00:27:08,722 --> 00:27:09,680 Maaaring mayroon kang Windows. 576 00:27:09,680 --> 00:27:10,710 Maaaring mayroon kang Mac OS. 577 00:27:10,710 --> 00:27:12,960 Pero simula sa susunod na linggo ikaw ay pagpunta sa na-download 578 00:27:12,960 --> 00:27:14,980 isang libreng piraso ng software na tinatawag na hypervisor. 579 00:27:14,980 --> 00:27:17,800 Ka ng pagpunta sa na-download ng isang piraso ng software na tinatawag na CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> Na nangyayari na tumakbo sa hypervisor, na kung saan ay pagpunta upang tumakbo sa iyong computer. 581 00:27:21,050 --> 00:27:23,030 At ang resulta ay na ang lahat sa atin ay 582 00:27:23,030 --> 00:27:26,220 mayroon isang simpleng window tulad ng ito sa iyong Mac o PC 583 00:27:26,220 --> 00:27:30,160 na nagbibigay sa amin ang ilusyon ng lahat ang pagpapatakbo ng parehong operating system, 584 00:27:30,160 --> 00:27:32,800 nang walang anumang iba pang mga epekto sa iyong computer. 585 00:27:32,800 --> 00:27:34,870 At maaari kang buong screen ito at mahalagang kumilos 586 00:27:34,870 --> 00:27:37,550 na waring nagpapatakbo ka ng isang operating system na tinatawag na Linux, 587 00:27:37,550 --> 00:27:40,270 na kung saan ay kung ano ang CS50 Appliance ay batay sa. 588 00:27:40,270 --> 00:27:42,930 >> Kaya ang aktwal na itong gamitin ng ipaalam ngayon upang magsulat ng isang programa. 589 00:27:42,930 --> 00:27:45,450 Maaari kang magsulat ng isang programa gamit ang Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Maaari kang magsulat ng isang programa gamit ang TextEdit, o Notepad, 591 00:27:48,160 --> 00:27:51,880 o WordPad, o halos anumang salita pagpoproseso ng programa na iyong ginagamit. 592 00:27:51,880 --> 00:27:55,174 Ngunit ang katotohanang ay hindi mo dapat gamitin talaga ang alinman sa mga program. 593 00:27:55,174 --> 00:27:57,840 Hindi mo dapat gamitin ang tiyak isang bagay tulad ng Microsoft Word, na 594 00:27:57,840 --> 00:28:01,120 May naka-bold nakaharap at italics, at mas malaking mga font at mas maliit na mga font, 595 00:28:01,120 --> 00:28:03,560 dahil ang computer ay hindi nagmamalasakit sa anuman sa mga iyon. 596 00:28:03,560 --> 00:28:05,600 Ang lahat ng mga computer ay pagpunta sa nagmamalasakit sa ay 597 00:28:05,600 --> 00:28:09,040 Ingles tulad ng mga tagubilin na nakasulat sa C. 598 00:28:09,040 --> 00:28:12,050 >> Kaya kung ano ang gagawin namin sa loob ng CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 ay gumamit ng isang program malayang magagamit, at ito ay 600 00:28:14,290 --> 00:28:17,360 paunang na-install sa appliance, na tinatawag na Gedit. 601 00:28:17,360 --> 00:28:22,280 At Gedit lamang ang napaka-simpleng editor ng teksto tulad ng TextEdit sa Mac OS ni, 602 00:28:22,280 --> 00:28:26,200 tulad ng Windows Notepad na pupuntahan Inaasahan ng kaunti ng isang bagay na katulad nito. 603 00:28:26,200 --> 00:28:28,910 >> Kaya sabihin aktwal na hindi tumingin sa mga slide ng ito. 604 00:28:28,910 --> 00:28:32,580 Ngunit ng aktwal na pumunta sa ipaalam ang kapaligiran mismo. 605 00:28:32,580 --> 00:28:36,090 Pupunta ako sa magpatuloy at mag-log in, sa ibang window, 606 00:28:36,090 --> 00:28:40,910 sa aking CS50 Appliance, na kung saan na hindi ko na paunang na-install sa aking laptop dito. 607 00:28:40,910 --> 00:28:43,771 >> Pansinin na, tulad ng Windows at Mac OS, ito ay nakuha ang ilang mga menu. 608 00:28:43,771 --> 00:28:45,520 Tulad ng Windows ito ay naglalagay ito sa halip down na doon 609 00:28:45,520 --> 00:28:47,020 ng Mac OS, na naglalagay ito pababa doon. 610 00:28:47,020 --> 00:28:48,930 Ngunit ang katotohanang ay ito ang lahat ng uri ng pareho. 611 00:28:48,930 --> 00:28:50,770 At in dito ay isang buong bungkos ng software. 612 00:28:50,770 --> 00:28:51,770 Mayroong Dropbox. 613 00:28:51,770 --> 00:28:54,780 Mayroong isang buong bungkos ng mga accessory, graphical na mga programa na idedetalye namin 614 00:28:54,780 --> 00:28:56,430 gamitin sa ibang pagkakataon sa mga termino para sa mga hanay ng problema. 615 00:28:56,430 --> 00:28:59,650 Mayroong isang web browser na binuo sa gayon na ito ay isang buong fledged na computer 616 00:28:59,650 --> 00:29:01,240 sa loob ng isang computer. 617 00:29:01,240 --> 00:29:04,170 >> Ngunit Pupunta ako sa i-click ito leftmost puting icon dito, 618 00:29:04,170 --> 00:29:05,890 kung saan ay ang icon para sa Gedit. 619 00:29:05,890 --> 00:29:09,650 At ito ang nangyayari upang buksan ang isang window na may tatlong mga panel dito, 620 00:29:09,650 --> 00:29:12,590 isang kaliwang isa, isang nangungunang isa, at isa ibaba. 621 00:29:12,590 --> 00:29:16,071 >> Ngayon, sa tuktok na kanang isa na Pupunta ako sa aktwal na sumulat ng ilang code. 622 00:29:16,071 --> 00:29:16,820 Kaya ni gawin ito ipaalam ,. 623 00:29:16,820 --> 00:29:19,040 Pupunta ako sa pumunta sa File, I-save. 624 00:29:19,040 --> 00:29:22,100 At mo ay maaaring hindi kailanman nakita ang partikular na window bago. 625 00:29:22,100 --> 00:29:23,620 Ngunit ito ay tulad ng Mac OS o Windows. 626 00:29:23,620 --> 00:29:25,490 Ito ay isang window lamang kasama ang lahat ng mga folder 627 00:29:25,490 --> 00:29:27,290 na mayroon akong sa loob ng computer na ito. 628 00:29:27,290 --> 00:29:30,320 >> At pupuntahan ko upang i-save ang file bilang hello.c. 629 00:29:30,320 --> 00:29:32,690 At pupuntahan ko pumunta Magpatuloy at i-click ang I-save. 630 00:29:32,690 --> 00:29:36,364 At ngayon mapansin mayroon akong isang tab sa kaliwang tuktok na tinatawag na hello.c. 631 00:29:36,364 --> 00:29:38,280 Kaya marahil maganda pamilyar na kahit na hindi mo ay hindi 632 00:29:38,280 --> 00:29:40,240 ginagamit sa partikular na programa bago. 633 00:29:40,240 --> 00:29:44,890 >> At ngayon pupuntahan ko mag-type ng mga medyo cryptic pagkakasunud-sunod ng mga utos 634 00:29:44,890 --> 00:29:46,360 na nakita natin ng ilang sandali ang nakalipas. 635 00:29:46,360 --> 00:29:49,330 Isama, karaniwang ako / O.h. 636 00:29:49,330 --> 00:29:50,600 Higit pa sa na sa lalong madaling panahon. 637 00:29:50,600 --> 00:29:55,670 Int pangunahing walang bisa, buksan ang kulot Brace, sarado kulot Brace. 638 00:29:55,670 --> 00:30:01,570 At pagkatapos ay sa loob ng doon sa palagay ko ay kung saan kami ay may "kumusta mundo," semicolon. 639 00:30:01,570 --> 00:30:03,100 At ngayon i-save. 640 00:30:03,100 --> 00:30:08,780 >> Kaya ito ay isang programa na nakasulat sa C, nakasulat, samakatuwid, sa source code. 641 00:30:08,780 --> 00:30:10,720 Ngunit hindi ko maaaring tumakbo lamang sa programang ito. 642 00:30:10,720 --> 00:30:13,390 Ako uri ng gusto mong i-double mag-click sa isang icon sa isang lugar, 643 00:30:13,390 --> 00:30:16,390 ngunit walang umiiral na icon iba pang kaysa sa source code na file. 644 00:30:16,390 --> 00:30:20,359 Ano, muli, ay ang proseso ngayon na Kailangan ko bang patakbuhin ang file na ito sa pamamagitan ng? 645 00:30:20,359 --> 00:30:21,150 Madla: Compiler. 646 00:30:21,150 --> 00:30:22,399 David J. MALAN: Kaya isang Compiler. 647 00:30:22,399 --> 00:30:24,890 Kaya sa iba't-ibang mga computer mo gawin ito sa iba't ibang paraan. 648 00:30:24,890 --> 00:30:27,480 Ngunit kung ano ang nagawa namin dito sa ang CS50 Appliance na 649 00:30:27,480 --> 00:30:31,260 kinatawan ng kung paano mo maaari gawin ito sa maraming iba't ibang mga sistema, 650 00:30:31,260 --> 00:30:34,036 ay nagre pupuntahan ko magpatakbo ng isang command na tinatawag na make. 651 00:30:34,036 --> 00:30:35,660 At make Literal na pagpunta sa gawin iyon. 652 00:30:35,660 --> 00:30:36,640 Gumawa ako ng program. 653 00:30:36,640 --> 00:30:39,060 >> Kaya gumawa ay pagpunta sa magpatakbo ng isang Compiler para sa akin. 654 00:30:39,060 --> 00:30:42,160 At ang pangalan ng programa Gusto kong gumawa ay kumusta. 655 00:30:42,160 --> 00:30:43,510 Ngayon gumawa ay isang program. 656 00:30:43,510 --> 00:30:47,170 At gawin ay mataas na para sa smart Napag-alaman na kung sinasabi ba akong gumawa kumusta, 657 00:30:47,170 --> 00:30:50,980 ito ang nangyayari upang awtomatikong hanapin para sa isang file na tinatawag na hello.c 658 00:30:50,980 --> 00:30:53,420 dahil lang iyon ang paraan ito ay naka-configure. 659 00:30:53,420 --> 00:31:00,300 >> Kaya kapag ako ay pindutin ang Enter ngayon dito, ito mabaliw cryptic linya Naging pinaandar. 660 00:31:00,300 --> 00:31:02,720 At pinagkakatiwalaan sa akin, bago ang haba, sa loob lamang araw, 661 00:31:02,720 --> 00:31:05,590 makikita mo maunawaan kung ano ang lahat ng walang katuturang na paraan. 662 00:31:05,590 --> 00:31:11,150 Ngunit sa ngayon, alam lamang na gumawa trigger pagpapatupad ng isang Compiler. 663 00:31:11,150 --> 00:31:13,290 Sa madaling salita, ang nahanap na ito isang Compiler sa aking computer 664 00:31:13,290 --> 00:31:14,820 na paunang naka-install sa CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 na aming ibigay sa iyo sa Problema Set 1. 666 00:31:16,560 --> 00:31:20,990 At pagkatapos ay kinuha bilang hello.c input, at gumawa ng tila 667 00:31:20,990 --> 00:31:23,040 0s at 1s bilang output. 668 00:31:23,040 --> 00:31:29,410 >> At sa pamamagitan ng default kung ano ang ginagawa nito ay nakatipid ito mga 0s at 1s sa isang file na tinatawag na kumusta. 669 00:31:29,410 --> 00:31:33,180 At bagaman ang syntax na ito masyadong maaari maging bagong sa iyo, sa pamamagitan lamang ng sinasabi ng mga tuldok 670 00:31:33,180 --> 00:31:37,110 iwa kumusta ay magiging ang Ang ibig sabihin sa pamamagitan ng kung saan ba akong magpatakbo ng program na ito. 671 00:31:37,110 --> 00:31:40,360 >> Para sa ngayon at para sa hindi bababa sa loob ng ilang ng linggo, halos lahat ng mga programang 672 00:31:40,360 --> 00:31:44,230 write kami ay magiging sa itim at puting teksto bintana. 673 00:31:44,230 --> 00:31:47,006 Walang Mice, walang mga pag-click, Walang bintana, walang mga icon. 674 00:31:47,006 --> 00:31:49,630 Kami ay pagpunta sa panatilihin itong simple at tumuon sa mga kaisipan 675 00:31:49,630 --> 00:31:52,490 sa una bago namin makuha sa isang bagay mas mataas na antas, halimbawa, 676 00:31:52,490 --> 00:31:56,410 tulad ng mga break na out game na namin ang usapan tungkol sa unang panayam noong nakaraang linggo. 677 00:31:56,410 --> 00:32:00,820 >> Kaya kapag pindutin ko Ipasok dito, ito ay katumbas sa isang text lamang sa kapaligiran 678 00:32:00,820 --> 00:32:03,272 i-double click ang isang icon na tinatawag na kumusta. 679 00:32:03,272 --> 00:32:05,480 Ano ang gagawin mong asahan kalooban mangyari kapag pindutin ko ang Enter pagkatapos? 680 00:32:05,480 --> 00:32:07,120 >> Madla: Ito i-print ang "kumusta mundo." 681 00:32:07,120 --> 00:32:10,000 >> David J. MALAN: Sana ito ay i-print ang "kumusta mundo." 682 00:32:10,000 --> 00:32:11,370 At sa katunayan ginawa ito. 683 00:32:11,370 --> 00:32:13,690 Ngayon ay mayroong Naging ilang cryptic syntax dito. 684 00:32:13,690 --> 00:32:15,950 Ni-rewind para lamang Hayaan ng ilang sandali at tingnan kung namin 685 00:32:15,950 --> 00:32:19,530 hindi maaaring magsimula inferring sa pamamagitan lamang ng tinkering, sinusubukan at hindi pagtupad, 686 00:32:19,530 --> 00:32:21,130 bilang sa kung ano ang nangyayari sa dito. 687 00:32:21,130 --> 00:32:23,609 Paano kung ko mapupuksa ang mga backslash n? 688 00:32:23,609 --> 00:32:25,650 Ngayon ang ilan sa iyo kung sino nai -program bago marahil 689 00:32:25,650 --> 00:32:27,054 Alam agad kung ano ang ibig sabihin nito ay. 690 00:32:27,054 --> 00:32:29,220 Ngunit para sa mga ng sa iyo kung sino nai hindi kailanman-program bago, 691 00:32:29,220 --> 00:32:34,052 hindi bababa sa tingin sa iyong sarili kung ano ang pagpunta baguhin kapag muling patakbuhin ko sa programang ito? 692 00:32:34,052 --> 00:32:37,010 Kaya ako pupunta upang bumalik pababa sa aking maliit na itim at puti na window, na 693 00:32:37,010 --> 00:32:39,290 ay ang window kung saan Maaari ba akong mag-compile na ito. 694 00:32:39,290 --> 00:32:41,130 Pupunta ako sa mag-recompile kumusta. 695 00:32:41,130 --> 00:32:43,520 Kami ay pagpunta upang makita ang parehong cryptic pagkakasunud-sunod ng mga utos. 696 00:32:43,520 --> 00:32:45,719 At ako pagpunta sa gawin tuldok slash kumusta. 697 00:32:45,719 --> 00:32:48,260 At ngayon may isang taong, kung gagawin mo, sino ang kailanman-program bago, 698 00:32:48,260 --> 00:32:49,770 kung ano ang maaaring maging iba't ibang mga oras na ito? 699 00:32:49,770 --> 00:32:50,020 Oo. 700 00:32:50,020 --> 00:32:51,840 >> Madla: Hindi ito ay hihinto pag-print "kumusta mundo." 701 00:32:51,840 --> 00:32:52,660 >> David J. MALAN: Ito ay pagpunta to-- ng paumanhin? 702 00:32:52,660 --> 00:32:54,210 >> Madla: Hindi ito ay titigil sa pag-print ito? 703 00:32:54,210 --> 00:32:55,810 >> David J. MALAN: Ito ay hindi ihinto ang pag-print "kumusta mundo." 704 00:32:55,810 --> 00:32:56,560 Kaya hindi isang masamang ideya. 705 00:32:56,560 --> 00:32:58,633 Iba pang mga ideya? 706 00:32:58,633 --> 00:32:59,132 Oo. 707 00:32:59,132 --> 00:33:00,060 >> Madla: Mensahe ng error? 708 00:33:00,060 --> 00:33:01,750 >> David J. MALAN: Error mensahe, OK, maaaring maging. 709 00:33:01,750 --> 00:33:02,250 Ano pa? 710 00:33:02,250 --> 00:33:05,479 Madla: Maaaring i-print ang bracket na may semicolon pati na rin? 711 00:33:05,479 --> 00:33:08,270 David J. MALAN: maaaring i-print ang bracket na may semicolon pati na rin. 712 00:33:08,270 --> 00:33:11,950 Kaya marahil na backslash pagkatapos ay ilang uri ng terminous na mahalaga. 713 00:33:11,950 --> 00:33:14,860 Anumang iba pang mga saloobin? 714 00:33:14,860 --> 00:33:16,412 >> Kaya ang lahat ng mga mahusay na ideya. 715 00:33:16,412 --> 00:33:18,370 At sa katunayan, ay ito pagpunta upang maging isang mensahe ng error. 716 00:33:18,370 --> 00:33:20,400 Iyon ay marahil na mas malamang maging ang kasagutan sa pangkalahatan 717 00:33:20,400 --> 00:33:22,420 para sa susunod na ilang linggo bilang matuto namin sa code dito. 718 00:33:22,420 --> 00:33:27,680 >> Ngunit sa ngayon tandaan na mga computer lamang ko kung ano ang sabihin sa kanila na gawin. 719 00:33:27,680 --> 00:33:30,400 Halos tulad ng katawa-tawa mani butter at halaya halimbawa. 720 00:33:30,400 --> 00:33:33,860 Ang aming mga computer pantao ay dapat lamang gawin ang sinabi mong gawin nila. 721 00:33:33,860 --> 00:33:36,250 Kaya sa kasong ito, kung ikaw huwag sabihin ang computer 722 00:33:36,250 --> 00:33:41,190 upang ilipat na nagbi-blink na cursor sa susunod na linya, hindi ito ng pagpunta sa gawin ito. 723 00:33:41,190 --> 00:33:45,390 Kaya kapag nagpatakbo ako ng programang ito ngayon, mapansin ang pagkakaiba. 724 00:33:45,390 --> 00:33:46,900 >> Mukhang isang bug. 725 00:33:46,900 --> 00:33:49,190 Ito ay isang Aesthetic bug, marahil. 726 00:33:49,190 --> 00:33:53,310 Ngunit ano ay naiiba tungkol sa output kumpara sa nakaraang isang malinaw naman? 727 00:33:53,310 --> 00:33:53,810 Oo. 728 00:33:53,810 --> 00:33:54,920 >> Madla: Hindi ito ginawa ng isang bagong linya. 729 00:33:54,920 --> 00:33:56,586 >> David J. MALAN: Hindi ito ginawa ng isang bagong linya. 730 00:33:56,586 --> 00:33:58,740 Ngayon doon sa iyo kung sino mayroon siguro ginawa mga web page 731 00:33:58,740 --> 00:34:01,910 bago, maaaring kilala mo sa mga BR tag o ang tag talata, 732 00:34:01,910 --> 00:34:03,120 na halos kapareho sa espiritu. 733 00:34:03,120 --> 00:34:06,680 Babalewalain mo Ang isang web browser hanggang sa sabihin mo ito nang eksakto kung ano ang gagawin. 734 00:34:06,680 --> 00:34:10,020 Katulad nito, ay isang wika tulad ng C lamang pagpunta sa gawin kung ano ang iyong sasabihin nito. 735 00:34:10,020 --> 00:34:12,730 >> Kaya ang dahilan na lahat ng mga ito halimbawa, 736 00:34:12,730 --> 00:34:15,350 kaya sa ngayon, mayroon uri ng casually nagkaroon ito backslash 737 00:34:15,350 --> 00:34:18,560 doon, iyon ang paraan sa pamamagitan ng kung saan ipahayag mo ang iyong sarili 738 00:34:18,560 --> 00:34:21,380 bilang isang bagong linya ng character, kaya na magsalita. 739 00:34:21,380 --> 00:34:26,219 At maaari mong uri ng Pinahahalagahan, siguro, na ito magiging ganito ang uri ng hangal 740 00:34:26,219 --> 00:34:27,070 kung walang ibang tao. 741 00:34:27,070 --> 00:34:29,150 Kung gusto ko ng isang bagong linya, lamang Ipasok ang pagpindot at pagkatapos ay i-uri 742 00:34:29,150 --> 00:34:32,219 ng butchering ang code na tulad nang hindi dapat talagang RUB kang tamang paraan. 743 00:34:32,219 --> 00:34:33,830 At kahit na hindi mo gusto talagang nagmamalasakit sa puntong ito, 744 00:34:33,830 --> 00:34:35,830 ikaw ay mapagtanto na ito ay hindi isang partikular na 745 00:34:35,830 --> 00:34:37,870 mahusay na naghahanap piraso ng code. 746 00:34:37,870 --> 00:34:39,969 >> At kaya kung ano ang mundo Nagpasya taon na ang nakalipas ay 747 00:34:39,969 --> 00:34:43,420 na kapag nais mong ilagay ang cursor sa isang bagong linya ng tahasan, 748 00:34:43,420 --> 00:34:46,332 dapat mong tahasang sabihin bagong linya, backslash n. 749 00:34:46,332 --> 00:34:48,040 At mayroong ilang iba pang mga mga simbolo tulad na. 750 00:34:48,040 --> 00:34:50,719 Ngunit sa ngayon na aming lamang tumuon sa backslash n. 751 00:34:50,719 --> 00:34:53,790 >> Ngayon gumawa ng mga programa hayaan ng kaunti pa sa kawili-wiling. 752 00:34:53,790 --> 00:34:59,200 Pupunta ako sa magpatuloy at oras na ito buksan up ng isang bagong file. 753 00:34:59,200 --> 00:35:02,520 Pupunta ako upang i-save ito bilang kumusta-1.c. 754 00:35:02,520 --> 00:35:05,540 At para lamang sa mga kicks, pupuntahan ko pumunta ilagay ito sa aking folder Dropbox. 755 00:35:05,540 --> 00:35:09,030 >> Tulad ng makikita mo sa CS50 dokumento para sa appliance, 756 00:35:09,030 --> 00:35:11,210 sa ibang pagkakataon sa linggong ito para sa Problema Itakda ang 1, agad naming hinihikayat 757 00:35:11,210 --> 00:35:13,230 mong gamitin ang Dropbox o ilang katumbas serbisyo, 758 00:35:13,230 --> 00:35:15,430 dahil pagkatapos ang lahat ng iyong code ni pagpunta sa i-back up nang awtomatiko. 759 00:35:15,430 --> 00:35:17,830 At sa gayon ay ang dahilan kung bakit na hindi ko na nawala na sa folder na ito dito. 760 00:35:17,830 --> 00:35:20,230 >> At ngayon pupuntahan ko magsulat ng isang bahagyang naiiba programa. 761 00:35:20,230 --> 00:35:24,740 Isama, karaniwang ako / O.h, int pangunahing walang bisa. 762 00:35:24,740 --> 00:35:29,660 At pagkatapos in dito printf, kumusta mundo, kung saan ay ang eksaktong pareho tulad ng dati. 763 00:35:29,660 --> 00:35:32,450 >> Ngunit ngayon gusto kong i-print ang isang bagay na ang isang ilan naiiba. 764 00:35:32,450 --> 00:35:34,800 Gusto kong i-print out, sabihing, "Kumusta, si David." 765 00:35:34,800 --> 00:35:37,590 Ang lahat ng mga karapatan, kaya malinaw naman, ito dapat sana ay 766 00:35:37,590 --> 00:35:40,360 maging ang kaso na kung mag-recompile ko programang ito, muling patakbuhin ito, 767 00:35:40,360 --> 00:35:41,840 ito ay pagpunta sa sabihin ang "kumusta, David." 768 00:35:41,840 --> 00:35:45,160 >> Ngunit ano kung gusto ko upang ipakilala ang ganitong uri ng variable, 769 00:35:45,160 --> 00:35:49,240 ang paniwala ng isang lalagyan na ang nangyayari upang mag-imbak D-a-v-i-d at hindi na hard code ito 770 00:35:49,240 --> 00:35:50,600 sa aking programa. 771 00:35:50,600 --> 00:35:53,430 Well kung ano kung sisimulan ko ang paggawa ng isang bagay na tulad nito? 772 00:35:53,430 --> 00:35:57,120 >> String s, kaya't ito ay isang variable. 773 00:35:57,120 --> 00:36:00,250 Kung nais mo ang isang string, kilala ng isang salita o parirala. 774 00:36:00,250 --> 00:36:03,485 Ang isang pagkakasunod-sunod ng mga character ay kung ano ang namin sa programming tumawag sa isang string. 775 00:36:03,485 --> 00:36:06,610 Lamang kami ng pagpunta sa generically call ito s, dahil ito ay isang magaling simpleng pangalan. 776 00:36:06,610 --> 00:36:08,010 Ngunit maaari kong tumawag ito ng kahit ano. 777 00:36:08,010 --> 00:36:12,920 >> Pupunta ako sa sabihin ay katumbas ng string s quote unquote, "David," semicolon. 778 00:36:12,920 --> 00:36:18,330 At ngayon nais ko upang ipasok D-a-v-i-d sa kung ano ako sa pag-print. 779 00:36:18,330 --> 00:36:23,720 At bago kami nakakita ng isang teaser sa ang screen ng ilang mga espesyal na syntax 780 00:36:23,720 --> 00:36:26,050 na nagpahintulot sa amin upang panghalili sa isang halaga. 781 00:36:26,050 --> 00:36:29,250 Ano ang espesyal na simbolo ng ilang mga slide nakaraan? 782 00:36:29,250 --> 00:36:30,040 >> Kaya porsiyento. 783 00:36:30,040 --> 00:36:33,830 Sa oras na iyon ay porsiyento d para sa numero ng decimal. 784 00:36:33,830 --> 00:36:35,850 Hindi iyon mukhang talagang may-katuturan dito. 785 00:36:35,850 --> 00:36:38,650 Ginagawang out doon ni isa pang simbolo porsyento, 786 00:36:38,650 --> 00:36:42,810 na porsiyento s, na ang ibig sabihin ay para sa isang placeholder para sa isang string. 787 00:36:42,810 --> 00:36:49,350 >> Kaya ngayon, napaka-simple, hindi ako pagpunta sa gawin pumunta kumusta-1, 788 00:36:49,350 --> 00:36:54,210 dahil ang file na ito ay tinatawag na kumusta-1.c, at pindutin ang Enter. 789 00:36:54,210 --> 00:36:56,230 At screwed ko up. 790 00:36:56,230 --> 00:36:57,394 Ano kaya ang nangyari? 791 00:36:57,394 --> 00:37:00,560 Well, narito kung saan mayroon kaming upang magsimulang Pinahahalagahan na kami sa command na ito 792 00:37:00,560 --> 00:37:02,810 linya kapaligiran, ito text kapaligiran lamang. 793 00:37:02,810 --> 00:37:06,114 Walang pag-click sa mga icon tulad ng mga folder sa ngayon. 794 00:37:06,114 --> 00:37:07,280 At sa tingin pabalik ng ilang sandali ang nakalipas. 795 00:37:07,280 --> 00:37:10,740 Sa anong mga folder ang sinabi ko Ako ay sine-save ang aking code? 796 00:37:10,740 --> 00:37:11,657 Kaya ang folder Dropbox. 797 00:37:11,657 --> 00:37:12,989 Ay maaaring tinatawag na kahit ano. 798 00:37:12,989 --> 00:37:14,530 Ngunit ang mangyayari ito na tinatawag na Dropbox. 799 00:37:14,530 --> 00:37:18,380 Kaya kahit papaano kailangan kong i-double-click sa na folder Dropbox sa pagkakasunud-sunod upang makakuha ng mga 800 00:37:18,380 --> 00:37:21,657 sa ito at makakuha ng sa aking na tinatawag na code kumusta-1.c. 801 00:37:21,657 --> 00:37:24,490 Sa katunayan, hayaan mo akong magpatuloy at i-minimize ang window na ito para sa isang sandali lamang. 802 00:37:24,490 --> 00:37:27,560 Tulad ng sa Windows at Mac OS, may mga folder sa Linux. 803 00:37:27,560 --> 00:37:29,410 Mayroong mga folder sa CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 Ito ay lamang sa ngayon kami ay confining ang ating mga sarili sa environment na ito ng teksto. 805 00:37:32,380 --> 00:37:34,700 >> Ngunit kung i-double click ako sa Dropbox, mapapansin doon 806 00:37:34,700 --> 00:37:37,210 ay ang file na gusto kong i-compile. 807 00:37:37,210 --> 00:37:41,430 Ngunit kailangan ko ito itim at puti terminal na window, kaya upang makipag-usap. 808 00:37:41,430 --> 00:37:45,750 Ngunit kailangan ko, samakatuwid, upang ilipat sa na folder o direktoryo. 809 00:37:45,750 --> 00:37:48,290 Kaya bahagyang arcane, ngunit makakakuha ka ng gamit na ito sa masyadong. 810 00:37:48,290 --> 00:37:50,430 >> Sa mundo ng Linux, na muli ay ang operating 811 00:37:50,430 --> 00:37:54,860 sistema nagpapatakbo ka namin sa loob ng CS50 Appliance, mayroong isang command na tinatawag na CD. 812 00:37:54,860 --> 00:37:58,310 Na nangangahulugan na maaari kong gawin CD, espasyo, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, pagbabago sa direktoryo. 814 00:37:59,900 --> 00:38:00,400 I-right. 815 00:38:00,400 --> 00:38:02,890 Bumalik sa araw kapag ang mga tao ay inventing mga computer at operating 816 00:38:02,890 --> 00:38:05,806 mga system na tulad nito, ninais nilang i-type ang fewest mga keystroke maaari. 817 00:38:05,806 --> 00:38:08,760 Kaya ang pinakamadaling paraan upang sabihin pagbabago na direktoryo ay CD. 818 00:38:08,760 --> 00:38:13,910 >> Kaya kung pindutin ko CD, espasyo Dropbox, mapansin kung ano ang nagbago dito. 819 00:38:13,910 --> 00:38:16,480 Sa loob ng panaklong ang appliance ay uri 820 00:38:16,480 --> 00:38:19,360 ng humoring sa akin at nagpapaalala sa akin kung saan ako. 821 00:38:19,360 --> 00:38:21,480 Kaya ang bukas folder ay Dropbox. 822 00:38:21,480 --> 00:38:24,950 Kung ngayon nagta-type ako ls para sa listahan, muli succinct, 823 00:38:24,950 --> 00:38:27,540 dahil hindi gusto ng mga tao sa i-type pabalik sa araw l-i-t-s. 824 00:38:27,540 --> 00:38:29,300 Kaya sa halip sila ginawa ito ls. 825 00:38:29,300 --> 00:38:30,110 >> Ipasok. 826 00:38:30,110 --> 00:38:35,740 Pansinin nakikita ko ang dalawang bagay, kumusta-1.c, at pagkatapos na ito cryptic bagay, pinagmulan 1m. 827 00:38:35,740 --> 00:38:38,310 Iyon lamang ang aking paraan ng pagsabi source code para sa linggong 1 Lunes. 828 00:38:38,310 --> 00:38:42,020 Iyon ang isang folder na-download ko mula sa CS50 website na ginawa ko nang mas maaga sa araw na ito 829 00:38:42,020 --> 00:38:43,990 at ilagay lamang ito sa appliance nang maaga. 830 00:38:43,990 --> 00:38:47,550 >> Ngunit sa ngayon ang tanging bagay namin nagmamalasakit sa gumagawa ng programang ito. 831 00:38:47,550 --> 00:38:50,440 Kaya kapag nagta-type ako gumawa kumusta-1, ang Enter. 832 00:38:50,440 --> 00:38:51,320 Damn ito. 833 00:38:51,320 --> 00:38:53,060 May nangyaring mali. 834 00:38:53,060 --> 00:38:54,580 Kaya ni tease ito bukod ipaalam. 835 00:38:54,580 --> 00:38:58,489 At sa kasamaang palad, ito ay kung saan bagay makakuha ng isang maliit na mabigat sa una, 836 00:38:58,489 --> 00:39:00,280 hindi bababa sa kung hindi mo hindi kailanman-program bago. 837 00:39:00,280 --> 00:39:00,980 >> Aking diyos. 838 00:39:00,980 --> 00:39:04,990 Ay sumulat ako ng isang programa ng dalawang linya at Mayroon akong apat na linya ng mga error. 839 00:39:04,990 --> 00:39:07,180 Kaya kung ano ang nangyayari sa dito. 840 00:39:07,180 --> 00:39:11,370 Una sa lahat palaging mag-scroll pabalik up at hanapin ang unang mensahe ng error, 841 00:39:11,370 --> 00:39:15,730 dahil oftentimes compiler lamang makakuha ng nalilito sa pamamagitan ng kung ano ang at kong gawin. 842 00:39:15,730 --> 00:39:17,000 Compiler ay medyo pipi. 843 00:39:17,000 --> 00:39:18,360 Makikita lang nila kung ano ang gagawin sabihin mo ang mga ito upang gawin. 844 00:39:18,360 --> 00:39:21,484 At kung lituhin ang mga ito, ang mga ito ay lamang pagpunta sa uri ng magtapon up ng kanilang mga kamay 845 00:39:21,484 --> 00:39:25,010 at marahil magtapon ng higit pang mga mensahe ng error kaysa ay aktwal na may-katuturan. 846 00:39:25,010 --> 00:39:26,380 >> Kaya tingnan natin ang unang ipaalam. 847 00:39:26,380 --> 00:39:27,540 Super cryptic sa unang. 848 00:39:27,540 --> 00:39:31,050 Ngunit paunawa, narito ang pangalan ng file kung saan ako screwed up tila. 849 00:39:31,050 --> 00:39:36,570 Colon 5, tutuldok 5 lamang ay nangangahulugan sa 5 linya sa ikalimang character. 850 00:39:36,570 --> 00:39:39,760 Kaya panlimang hanay ng mga character, kung gagawin mo, error. 851 00:39:39,760 --> 00:39:41,870 Paggamit ng undeclared identifier string. 852 00:39:41,870 --> 00:39:43,120 Ibig mo bang sabihin standard n? 853 00:39:43,120 --> 00:39:44,850 >> Hindi, sinadya ko string. 854 00:39:44,850 --> 00:39:47,640 At pagkatapos ito ay uri ng pagkopya at pag-paste 855 00:39:47,640 --> 00:39:50,700 kung ano ang aking nai-type upang gumuhit talaga ang aking atensyon sa kung saan ako screwed up. 856 00:39:50,700 --> 00:39:54,260 Kaya para sa ilang kadahilanan C, o hindi bababa sa Compiler 857 00:39:54,260 --> 00:39:56,470 hindi maunawaan ang salita string. 858 00:39:56,470 --> 00:39:57,890 At iyon ay dahil binubuo namin ito. 859 00:39:57,890 --> 00:40:01,440 Kaya string ay hindi umiiral sa C. Ano ang ginagawa CS50, 860 00:40:01,440 --> 00:40:03,380 para sa unang ilang linggo lamang ng klase, 861 00:40:03,380 --> 00:40:05,700 ay nagbibigay kami ng ilang mga pagsasanay mga gulong, kaya upang makipag-usap. 862 00:40:05,700 --> 00:40:11,160 At ilalagay namin ang mga pagsasanay gulong sa loob ng isang espesyal na file na tinatawag na CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Kaya ito ay ang pangalawang ng dalawang mga file mga pangalan na tila nagtatapos sa tuldok h. 864 00:40:14,970 --> 00:40:16,300 Ni-rewind Hayaan. 865 00:40:16,300 --> 00:40:19,360 Printf ay isang pahayag o function na na tila mga Kopya isang bagay 866 00:40:19,360 --> 00:40:20,580 sa screen. 867 00:40:20,580 --> 00:40:23,470 Ngunit hindi mo makita sa akin ipatupad printf, i-right. 868 00:40:23,470 --> 00:40:26,360 May nag-taon na ang nakakaraan ipinatupad printf. 869 00:40:26,360 --> 00:40:30,420 Sa anong mga file na nais mong wager siya o siya ilagay ang pagpapatupad 870 00:40:30,420 --> 00:40:34,270 para sa printf, ang code para sa printf? 871 00:40:34,270 --> 00:40:36,860 >> Sa isang file na tinatawag na standard I / O.h. 872 00:40:36,860 --> 00:40:39,930 Sa katunayan, ito ay marahil sa dalawang mga file, karaniwang ako / O.h, 873 00:40:39,930 --> 00:40:42,650 na ang ibig sabihin ay header file, at mga karaniwang ako / O.c, 874 00:40:42,650 --> 00:40:44,060 na ang ibig sabihin ay C source code. 875 00:40:44,060 --> 00:40:48,220 Kaya siya ng ilang mga taon na nakalipas plopped ang code na sila ay nagsulat sa file na iyon 876 00:40:48,220 --> 00:40:51,240 upang ang mga taong katulad sa amin taon na ang lumipas maaaring isama ito, 877 00:40:51,240 --> 00:40:53,040 kaya upang makipag-usap, sa aming sariling mga programa. 878 00:40:53,040 --> 00:40:56,320 >> At sa katunayan, iyon ang pound ang pag-sign Kasama na sinusundan ng salita ginagawa. 879 00:40:56,320 --> 00:41:00,250 Mukhang sa lokal na hard drive, hahanapin ng file na tinatawag na standard I / O.h, 880 00:41:00,250 --> 00:41:03,840 at pagkatapos ay epektibong mga kopya at pastes ito sa loob ng aking sariling mga file. 881 00:41:03,840 --> 00:41:07,210 Kaya ngayon ay alam ng aking programa kung paano mag-print sa screen. 882 00:41:07,210 --> 00:41:11,120 >> Kaya sa pamamagitan ng logic na iyon, kung saan ay tinukoy string? 883 00:41:11,120 --> 00:41:12,260 >> Madla: 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 At sa katunayan, iyon ang namin, core kawani, nagawa na. 886 00:41:15,540 --> 00:41:19,590 Imbento kami ng ilang mga uri ng data, kaya upang makipag-usap, tulad ng isang string, 887 00:41:19,590 --> 00:41:22,370 bilang karagdagan sa iyong mga nai- makakuha ng libre, tulad ng isang int. 888 00:41:22,370 --> 00:41:26,010 At kami makita ang mga tulad ng char para sa isang character at ang ilang higit pa. 889 00:41:26,010 --> 00:41:30,670 Sa loob ng CS50.h tila ay ng hindi bababa sa ilang mga pagbanggit ng string. 890 00:41:30,670 --> 00:41:34,980 >> Kaya ngayon hayaan mo akong sige at muling patakbuhin make kumusta-1. 891 00:41:34,980 --> 00:41:37,100 Magtatagal ako mag-zoom in muli at mag-krus ang mga daliri ng aking. 892 00:41:37,100 --> 00:41:41,370 Ngayon sa pamamagitan ng pagkakaroon ng ginawa ng isa baguhin naayos ko pinaka-bagay. 893 00:41:41,370 --> 00:41:42,100 Ngunit damn ito. 894 00:41:42,100 --> 00:41:44,290 Higit pang mga percents kaysa sa mga argumento ng data. 895 00:41:44,290 --> 00:41:45,980 Ano ang gagawin ko mali oras na ito? 896 00:41:45,980 --> 00:41:47,420 >> Kaya pa rin ito medyo cryptic. 897 00:41:47,420 --> 00:41:51,560 Ngunit ang error na ito ay nasa linya 7 at 21 na character. 898 00:41:51,560 --> 00:41:53,880 Kaya sabihin pumunta tumingin hanggang dito. 899 00:41:53,880 --> 00:41:55,350 Ito ay isang maliit na banayad. 900 00:41:55,350 --> 00:41:59,167 Ngunit kung sa tingin mo tungkol sa kung ano sa pangunahing mga ideya dito ay, 901 00:41:59,167 --> 00:42:00,500 marahil maaari naming tease ito bukod. 902 00:42:00,500 --> 00:42:02,300 >> Kaya printf ay ang pangalan ng function. 903 00:42:02,300 --> 00:42:04,960 Panaklong, kaya sa ngayon, ay tulad lamang ng kung ano ang ilalagay namin sa paligid 904 00:42:04,960 --> 00:42:07,005 ang mga bagay na namin ang pagpasa bilang input sa isang function. 905 00:42:07,005 --> 00:42:08,921 Ang lahat ng mga karapatan, tulad ng isang arbitrary convention ng tao. 906 00:42:08,921 --> 00:42:09,919 Gamitin ang mga panaklong. 907 00:42:09,919 --> 00:42:12,460 Sa loob ng mga panaklong Na-putting namin double quote, 908 00:42:12,460 --> 00:42:14,810 at pagkatapos ay isang string tulad ng "kumusta mundo." 909 00:42:14,810 --> 00:42:18,160 >> Ngunit sa na mas maaga halimbawa napaka May ginawang mabilis tinitingnan namin ang may scratch. 910 00:42:18,160 --> 00:42:22,590 At nagkaroon kami ng porsiyento d, kung ano pa ay sa loob ng mga panaklong 911 00:42:22,590 --> 00:42:23,730 na tinatawag na akong hindi sumali sa salita? 912 00:42:23,730 --> 00:42:24,230 Oo. 913 00:42:24,230 --> 00:42:28,166 >> Madla: Kaya kung ano ang iyong pagkuha [INAUDIBLE] mula sa loob ng [INAUDIBLE] 914 00:42:28,166 --> 00:42:30,200 kung ano ang [INAUDIBLE]? 915 00:42:30,200 --> 00:42:31,200 David J. MALAN: Eksaktong. 916 00:42:31,200 --> 00:42:32,700 Kaya nagkaroon kami ng porsiyento d. 917 00:42:32,700 --> 00:42:36,620 Ngunit pagkatapos namin ay may malapit quote, kuwit, counter. 918 00:42:36,620 --> 00:42:37,120 I-right. 919 00:42:37,120 --> 00:42:40,680 Tinukoy na namin kung ano ang gusto namin gawin ang bilang placeholder. 920 00:42:40,680 --> 00:42:44,621 Kaya kung ano ako pagpunta sa gawin dito ay kuwit, ano ang gusto ninyo sa akin ang ilalagay? 921 00:42:44,621 --> 00:42:45,120 Madla: S. 922 00:42:45,120 --> 00:42:46,828 David J. MALAN: S, dahil s sa kasong ito 923 00:42:46,828 --> 00:42:48,700 ay ang pangalan ng imbakan lalagyan. 924 00:42:48,700 --> 00:42:50,180 Ito ay ang pangalan ng glass na mangkok. 925 00:42:50,180 --> 00:42:53,610 Sapagkat bago ito ay kontra sa na simpleng halimbawa scratch itinuturing namin ang. 926 00:42:53,610 --> 00:42:56,630 Kaya ngayon pagkakaroon ng ginawa ng dalawang mga pagbabago, hayaan mo akong mag-zoom in 927 00:42:56,630 --> 00:42:59,800 at subukan nang isa pang beses upang ipunin ang programang ito. 928 00:42:59,800 --> 00:43:01,596 >> Ngayon nakikita ko na cryptic linya. 929 00:43:01,596 --> 00:43:03,470 Ngunit iyon lamang ang aktwal na ang pangalanan ng Compiler. 930 00:43:03,470 --> 00:43:04,886 Clang ay ang pangalan ng Compiler. 931 00:43:04,886 --> 00:43:07,100 Gawing ay lamang sa pag-save sa akin ang sakit ng ulo ng kailanman 932 00:43:07,100 --> 00:43:09,830 pag-type na mahaba mabaliw utos out. 933 00:43:09,830 --> 00:43:14,900 Kaya ngayon kung tuldok ko iwa kumusta-1, Dapat kong tingnan ang "kumusta, David." 934 00:43:14,900 --> 00:43:16,450 >> Pretty underwhelming, bagaman, i-right? 935 00:43:16,450 --> 00:43:18,158 Na namin ma-tapos ito ng maraming higit pa lamang 936 00:43:18,158 --> 00:43:20,940 nang walang pakikipag-usap tungkol sa mga variable at CS50.h at ang lahat ng iyon. 937 00:43:20,940 --> 00:43:23,080 Kaya sabihin gawin itong isang maliit na mas kawili-wiling. 938 00:43:23,080 --> 00:43:31,010 >> Bilang karagdagan sa CS50.h, pagkakaroon ng mga bagay tulad ng string 939 00:43:31,010 --> 00:43:34,550 ipinahayag, ang CS50 library May ilang mga pag-andar rin. 940 00:43:34,550 --> 00:43:38,520 Kaya lang tulad ng taon na ang nakakaraan, isinulat ng isang tao printf at ilagay ito sa karaniwang ako / O.h 941 00:43:38,520 --> 00:43:39,530 at ilang iba pang mga file. 942 00:43:39,530 --> 00:43:44,010 >> Kami, ang CS50 kawani, ay nagsulat ng isang function na tinatawag na GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, at inilalagay namin ang mga ito sa loob ng file 944 00:43:47,610 --> 00:43:49,890 na tinatawag na CS50.h at CS50.c. 945 00:43:49,890 --> 00:43:51,880 At inilalagay namin ang mga ito sa loob ng ng CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 At mga taong maaari ring i-download ang mga ito sa online kung ang mga ito 947 00:43:53,880 --> 00:43:55,880 nais na ilagay ang mga ito sa kanilang sariling computer pati na rin. 948 00:43:55,880 --> 00:44:00,880 Aling ay upang sabihin na lumikha kami mga function na makakuha ng input mula sa user. 949 00:44:00,880 --> 00:44:02,930 Hindi ko alam kung ano ang lahat ng ng mga uri ng data ay. 950 00:44:02,930 --> 00:44:06,490 GetInt ay uri ng prangka, tulad ng makakuha ng isang integer kahit papaano mula sa user. 951 00:44:06,490 --> 00:44:09,980 At GetString ay marahil tulad ng get isang salita o isang pangungusap mula sa user. 952 00:44:09,980 --> 00:44:11,770 >> Kaya sabihin tumuon sa na. 953 00:44:11,770 --> 00:44:14,710 At ako pupunta upang bumalik sa appliance at pupuntahan ko sige 954 00:44:14,710 --> 00:44:20,790 at i-save ang file bilang, sabihin tumawag sa ito kumusta-2.c bilang aking pangalawang bersyon. 955 00:44:20,790 --> 00:44:23,030 At gumawa ng ilang mga pagbabago ipaalam. 956 00:44:23,030 --> 00:44:25,800 >> Ito oras sa halip ng mahirap coding David, na 957 00:44:25,800 --> 00:44:29,120 Ginagawang isang tuloy-tuloy na hindi kapani-paniwalang ngunit underwhelming programa, 958 00:44:29,120 --> 00:44:32,640 paano kung sa halip gagawin ko GetString? 959 00:44:32,640 --> 00:44:35,660 Mapansin Ngayon GetString May open panaklong, 960 00:44:35,660 --> 00:44:38,500 closed panaklong, dahil hindi nito kailangan ng anumang pag-input. 961 00:44:38,500 --> 00:44:40,850 Lamang Ito ay pagpunta sa pumunta makakuha ng isang string mula sa user. 962 00:44:40,850 --> 00:44:42,460 >> At ngayon ang isang salita sa iba pang mga syntax. 963 00:44:42,460 --> 00:44:45,439 Magtapos lamang Semicolons isang linya ng code. 964 00:44:45,439 --> 00:44:46,730 Hindi mo na kailangan ang mga ito sa lahat ng dako. 965 00:44:46,730 --> 00:44:48,896 Ngunit iyon lamang ay nangangahulugan na ako tapos na may ganitong linya ng code. 966 00:44:48,896 --> 00:44:51,080 Hayaan akong ilipat papunta sa isa pang statement o function. 967 00:44:51,080 --> 00:44:53,010 String declares isang variable. 968 00:44:53,010 --> 00:44:55,920 String ay tulad ng sinasabi ninyo ako ng mangkok, mangyaring. 969 00:44:55,920 --> 00:44:57,940 At hayaan mo akong ilagay ang isang string sa loob nito. 970 00:44:57,940 --> 00:44:59,430 >> At ngayon ang katumbas sign. 971 00:44:59,430 --> 00:45:03,510 Ano ang katumbas ng pag-sign lubos na katumbas ng? 972 00:45:03,510 --> 00:45:04,500 >> Madla: Magtalaga. 973 00:45:04,500 --> 00:45:06,190 >> David J. MALAN: Oo, magtatalaga ng isang halaga. 974 00:45:06,190 --> 00:45:09,872 Kaya kung ako, halimbawa, tawag ito function na GetString, 975 00:45:09,872 --> 00:45:12,830 at kami makita ang ilang mga sandali na pagpunta upang i-prompt ang user para sa isang string. 976 00:45:12,830 --> 00:45:17,810 Ito ay tulad ng pagpapaalam sa akin pagkatapos ay isulat D-a-v-i-d sa isang piraso ng papel. 977 00:45:17,810 --> 00:45:21,060 At kapag sinabi ko string s ay katumbas GetString, 978 00:45:21,060 --> 00:45:24,140 ay hindi nangangahulugan na talagang katumbas katumbas sa C programming. 979 00:45:24,140 --> 00:45:27,880 Ang ibig sabihin nito magtalaga mula sa kanan bahagi sa kaliwang bahagi. 980 00:45:27,880 --> 00:45:29,510 >> Kaya nakuha ko na isang string. 981 00:45:29,510 --> 00:45:32,785 At ang pantay na pag-sign ay nangangahulugan ilagay ito sa imbakan ng lalagyan na tinatawag s. 982 00:45:32,785 --> 00:45:36,730 At Pagkatapos ay pumasa ito off sa printf upang aktwal na gawin bagay nito. 983 00:45:36,730 --> 00:45:39,790 >> Kaya pagkatapos ay ang resulta ay pagpunta upang tumingin ng kaunti naiiba. 984 00:45:39,790 --> 00:45:40,840 Ni huwag gumawa kumusta-2 Hayaan. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Alinman ay maaaring gumana. 987 00:45:45,260 --> 00:45:46,450 Sinusundan mo ang kasama. 988 00:45:46,450 --> 00:45:47,940 Gawing kumusta-2 nagtrabaho. 989 00:45:47,940 --> 00:45:52,640 Dot iwa kumusta-2, ang Enter. 990 00:45:52,640 --> 00:45:54,620 >> Mukhang kong magkaroon ng isang walang-katapusang loop o isang bagay. 991 00:45:54,620 --> 00:45:55,453 Wala ang nangyayari. 992 00:45:55,453 --> 00:45:56,134 Bakit? 993 00:45:56,134 --> 00:45:57,805 >> Madla: ang paggawa nito ang isang walang-katapusang loop. 994 00:45:57,805 --> 00:45:59,430 David J. MALAN: Ito ay isang walang-katapusang loop. 995 00:45:59,430 --> 00:46:02,710 Uri ng ito ay naghihintay para sa akin upang aktwal na magbigay ng ito na may ilang mga input. 996 00:46:02,710 --> 00:46:05,800 Kaya ipaalam sa akin sige at i-type sa David, at pindutin ang Enter. 997 00:46:05,800 --> 00:46:07,230 At ngayon sinasabi nito na "kumusta, David." 998 00:46:07,230 --> 00:46:09,040 Kung nagpapatakbo ko ito muli. 999 00:46:09,040 --> 00:46:11,530 Ni-type sa Rob, Hayaan ang "kumusta, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Ngayon ito ay ang pinakamasamang user interface kailanman. 1001 00:46:13,900 --> 00:46:16,110 Ang user ay tila dapat mong malaman kung ano ang gagawin. 1002 00:46:16,110 --> 00:46:17,120 Ngunit hindi mahalaga. 1003 00:46:17,120 --> 00:46:19,570 Gamit ang parehong mga gusali bloke tulad ng sa simula, 1004 00:46:19,570 --> 00:46:24,980 maaari naming malutas ang problemang iyon at sabihin isang bagay tulad ng iyong pangalan ninyo, tutuldok, 1005 00:46:24,980 --> 00:46:27,820 espasyo, sarado quote, isara ang panaklong, semicolon. 1006 00:46:27,820 --> 00:46:30,680 Kaya ng maraming muli kalokohan na may syntax. 1007 00:46:30,680 --> 00:46:34,040 >> Ngunit mapansin lang nagdagdag ako ng palaisipan piraso sa itaas ang isang ito 1008 00:46:34,040 --> 00:46:35,280 at sa itaas ng isang ito. 1009 00:46:35,280 --> 00:46:38,870 Kaya ngayon kung muling patakbuhin ko ito, kumusta-2, ang Enter. 1010 00:46:38,870 --> 00:46:41,180 Maghintay ng isang minuto. 1011 00:46:41,180 --> 00:46:41,830 Ano ang mali? 1012 00:46:41,830 --> 00:46:43,570 Hindi ito gumagana ng anumang magkakaiba. 1013 00:46:43,570 --> 00:46:44,200 Oo. 1014 00:46:44,200 --> 00:46:46,010 >> Madla: ay Hindi ka patakbuhin muli gumawa. 1015 00:46:46,010 --> 00:46:47,968 >> David J. MALAN: ako ginawang hindi tumakbo gawing muli, i-right. 1016 00:46:47,968 --> 00:46:49,430 Kaya nabago ko ang aking mga source code. 1017 00:46:49,430 --> 00:46:50,638 Ngunit muli, may na daloy. 1018 00:46:50,638 --> 00:46:54,530 Source code sa pamamagitan ng Compiler ay nagbibigay sa ka ng mga bagong bagay na code, o 0s at 1s. 1019 00:46:54,530 --> 00:47:00,209 Kaya kailangan ko upang aktwal na Patakbuhing muli ang make kumusta-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 OK, isang bagay na tila ang nangyari. 1021 00:47:01,750 --> 00:47:04,220 Dot iwa kumusta-2. 1022 00:47:04,220 --> 00:47:05,390 Ang iyong pangalan pakiusap. 1023 00:47:05,390 --> 00:47:09,990 At upang maging malinaw ngayon, kung bakit ay ang cursor sa parehong linya? 1024 00:47:09,990 --> 00:47:10,490 Mismong. 1025 00:47:10,490 --> 00:47:13,020 Hindi ko ilalagay ang backslash n up dito sa aking code. 1026 00:47:13,020 --> 00:47:16,110 Kaya ngayon maaari kong isulat isang bagay tulad ng Daven, ang Enter. 1027 00:47:16,110 --> 00:47:18,710 Maaari ko ba itong tumakbo muli at i-type isang bagay tulad ng Gabe, Magpasok, 1028 00:47:18,710 --> 00:47:22,250 at kumuha kami ng isang iba't ibang mga programa at muli at muli muli. 1029 00:47:22,250 --> 00:47:28,940 >> Ngayon huli kami ng pagpunta sa kailangan upang gamitin ang ilang naiibang mga kakayahan. 1030 00:47:28,940 --> 00:47:32,860 Kailangan namin upang ipakilala sa huli ilang kondisyon upang gawin ang mga bagay conditionally. 1031 00:47:32,860 --> 00:47:35,550 Siguro mga loop upang maaari naming gawin muli at muli bagay. 1032 00:47:35,550 --> 00:47:38,220 >> Siguro magiging maganda kung namin maaaring ipatupad ang aming sariling mga pag-andar, 1033 00:47:38,220 --> 00:47:41,355 tulad namin ma-ipatupad ang aming sariling printf o sa aming sariling bersyon ng GetString 1034 00:47:41,355 --> 00:47:45,870 at GetFlow, dahil sa huli kahit na gamit ang command na kapaligiran linya 1035 00:47:45,870 --> 00:47:49,780 maaari naming gawin kahit na ang pinaka- biswal kagiliw-giliw na mga bagay. 1036 00:47:49,780 --> 00:47:51,950 >> Sa katunayan sa pagtatapos hayaan mo akong gawin ito. 1037 00:47:51,950 --> 00:47:54,020 Pupunta ako sa sige at isara ang mga bintana 1038 00:47:54,020 --> 00:47:57,400 at buksan ang icon na ito dito, kung saan ay isang mas malaking lamang 1039 00:47:57,400 --> 00:48:00,020 bersyon ng naka-embed na terminal na window. 1040 00:48:00,020 --> 00:48:02,329 Kaya Gedit ay hindi lamang ang lugar para sa aking code, 1041 00:48:02,329 --> 00:48:05,620 kundi pati na rin ang isang built in na terminal na window, ang itim at puting window kung saan maaari kong patakbuhin 1042 00:48:05,620 --> 00:48:06,230 utos. 1043 00:48:06,230 --> 00:48:08,600 >> Lamang nangyari ko upang buksan ng mas malaking bersyon ng ito. 1044 00:48:08,600 --> 00:48:11,170 At ngayon pupuntahan ko pumunta sa ang folder na iyon na hindi ko na 1045 00:48:11,170 --> 00:48:13,150 ilagay nang maaga sa website ng kurso ni. 1046 00:48:13,150 --> 00:48:16,720 At ako pagpunta sa sige at buksan ang isang file na tinatawag na thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 na kung saan ay isinulat sa pamamagitan ng ibang tao. 1048 00:48:18,710 --> 00:48:21,220 >> At kung tinitingnan namin ang na ito, hindi ito ang uri ng code 1049 00:48:21,220 --> 00:48:24,370 Makakakita ay sumusulat kami mula noong ang layunin ng code na ito 1050 00:48:24,370 --> 00:48:28,450 ay upang isulat ang prettiest naghahanap ng code na siya ng dati, 1051 00:48:28,450 --> 00:48:31,290 kanikanilang mga man o hindi isa pang tao ay maaaring kailanman 1052 00:48:31,290 --> 00:48:33,660 maunawaan ang code na ito. 1053 00:48:33,660 --> 00:48:37,050 >> Sa katunayan, bawat taon mayroong kung ano ang na tinatawag na isang nakapailalim C paligsahan, na 1054 00:48:37,050 --> 00:48:39,570 ay para sa real geeks na magsulat code na walang sinuman ang maaaring basahin, 1055 00:48:39,570 --> 00:48:42,050 ngunit na ang isang bagay na alinman talagang simple o talagang kamangha-manghang. 1056 00:48:42,050 --> 00:48:43,890 At naisip namin na gusto namin tapusin na may ganitong hitsura 1057 00:48:43,890 --> 00:48:48,300 sa isang bagay na medyo kahanga-hangang maaaring nakakita ka ng isang beses bago. 1058 00:48:48,300 --> 00:48:52,650 Ngunit kami ay nagtatapos sa ito tala, tuldok slash, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Ito pagkatapos ay kung ano ang naghihintay. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Iyon lang para sa CS50. 1062 00:48:58,500 --> 00:48:59,935 Makikita natin sa iyo sa Miyerkules. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Musika nagpe-play] 1065 00:49:10,016 --> 00:53:31,883