1 00:00:00,000 --> 00:00:12,410 >> [Nagpe-play ng musika] 2 00:00:12,410 --> 00:00:12,830 >> David MALAN: Lahat ng karapatan. 3 00:00:12,830 --> 00:00:13,370 Maligayang pagbabalik. 4 00:00:13,370 --> 00:00:16,510 Ito ay CS50, at ito ay Isang Linggo, ipinagpatuloy. 5 00:00:16,510 --> 00:00:20,050 Kaya isa sa mga dahilan na aming pagpasa sa paligid ng mga teknolohiya tulad ng 6 00:00:20,050 --> 00:00:24,120 Google Glass ay na ang mga ito ay may isang bagay na kilala bilang isang API, isang 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 At kung ano ang ibig sabihin nito ay na may mga karapatan file at sa mga tamang 9 00:00:28,830 --> 00:00:32,850 dokumentasyon, maaari mong aktwal na magsulat software para sa kahit na aparato tulad ng mga ito. 10 00:00:32,850 --> 00:00:36,200 >> At kaya kung ano ang mayroon kaming nasa isip patungo sa semesters dulo ay, kung ang isang proyekto 11 00:00:36,200 --> 00:00:39,310 kinasasangkutan ng, sabihin nating, ang Google ay maaaring Glass apela, gagamitin namin makita kung ano ang maaari naming gawin sa 12 00:00:39,310 --> 00:00:42,220 mga tuntunin ng hooking up ka na may ilang mga loaner hardware pati na rin ang 13 00:00:42,220 --> 00:00:46,500 Pampublikong-access API sa gayon maaari mong talagang simulan ang paglikha ng software 14 00:00:46,500 --> 00:00:48,630 na tumatakbo sa parehong na Glass Google. 15 00:00:48,630 --> 00:00:51,710 >> Ang isa pang device na aming na-play may ng late na naisip namin na maaaring maging 16 00:00:51,710 --> 00:00:53,910 masaya sa dulo semestre ay ito maliit na bagay dito. 17 00:00:53,910 --> 00:00:56,860 Ito ay tinatawag na lukso ng Paggalaw, at kung ano ang sa iyo tungkol sa upang makita ay technically isang 18 00:00:56,860 --> 00:01:00,280 advertisement para sa mga aparato, ngunit ito ay makipag-usap sa kung ano ang partikular na 19 00:01:00,280 --> 00:01:01,240 aparato ay may kakayahang. 20 00:01:01,240 --> 00:01:05,550 At ito, masyadong, ay may isang API sa pamamagitan ng kung saan maaari kang sumulat sa software 21 00:01:05,550 --> 00:01:10,545 kontrolin ang iyong sariling computer sa isang paraan masyadong gustuhin ang isang minutong film dito. 22 00:01:10,545 --> 00:01:12,070 >> [Video playback] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END-playback ng video] 25 00:02:08,590 --> 00:02:11,190 >> Kaya ngayon, aparato nangyari ito sa ay ipinatupad bilang isang maliit na USB 26 00:02:11,190 --> 00:02:14,290 connector na maaari mong plug sa iyong computer, ngunit hindi ko mabigla 27 00:02:14,290 --> 00:02:17,930 kung matagal bago kami ay may mga ganitong uri ng teknolohiya sa susunod na batch ng mga PC 28 00:02:17,930 --> 00:02:20,510 mga Mac at sa gayon ay maaari mong, sa katunayan, makipag-ugnayan sa ito sa 29 00:02:20,510 --> 00:02:21,650 isang paraan tulad na. 30 00:02:21,650 --> 00:02:24,250 Sa katunayan, kung ano ang naisip ko na gusto kong gawin, masyadong, ay Nakuha ko up ng isang maliit na demonstration 31 00:02:24,250 --> 00:02:25,860 programa na nagmumula sa software na ito. 32 00:02:25,860 --> 00:02:28,700 Kaya ko na ilagay ang maliit na sensor sa harap ng aking laptop. 33 00:02:28,700 --> 00:02:32,420 >> At bilang maaari mong makita, mayroon napagtanto na ang aking kamay ay doon 34 00:02:32,420 --> 00:02:33,400 pagkontrol ito. 35 00:02:33,400 --> 00:02:37,900 At lahat ng mga application na ito ay gumagana tagumpay kaunti mga bagay na tulad nito. 36 00:02:37,900 --> 00:02:41,080 Ngunit maaari mong makita na, sa katunayan, Mayroon akong limang daliri doon. 37 00:02:41,080 --> 00:02:44,270 Kung maaari naming makakuha ng mga ito upang gawin ang lahat ng 10, maaari mong isipin ang isang malinis at maayos piano 38 00:02:44,270 --> 00:02:45,390 application o mga katulad. 39 00:02:45,390 --> 00:02:47,820 Kaya kung nais mong makabuo pagkatapos ng klase ngayon at sa pag-play na bilang 40 00:02:47,820 --> 00:02:49,720 rin, ikaw ay maligayang pagdating sa. 41 00:02:49,720 --> 00:02:52,930 Kaya higit pa sa na patungo sa katapusan ng semestre. 42 00:02:52,930 --> 00:02:54,420 >> Kaya isang pares ng mga administratibong anunsyo. 43 00:02:54,420 --> 00:02:58,690 Ang isa, gawin ang seksyon na ito sa pamamagitan ng Biyernes sa tanghali sa cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 URL na iyon ay nasa kurso ng homepage pati na rin. 45 00:03:01,260 --> 00:03:04,010 Sa habang panahon, bagaman, supersections ay pasinaya ito Linggo. 46 00:03:04,010 --> 00:03:07,800 Supersections ay isang isang-beses na bagay, dahil ito ay tumatagal sa amin ng ilang oras upang gumana 47 00:03:07,800 --> 00:03:09,470 out kung sino ang nasa kung aling mga seksyon at kung saan. 48 00:03:09,470 --> 00:03:12,280 >> Kaya ito darating na Linggo, may makikita maging isa na seksyon para sa mga mas kumportable, 49 00:03:12,280 --> 00:03:14,040 isang seksyon para sa mga mas kumportable. 50 00:03:14,040 --> 00:03:16,110 At doon sa ka sa isang lugar sa sa pagitan ng mga maligayang pagdating sa pumunta sa 51 00:03:16,110 --> 00:03:17,850 alinman sa o parehong o hindi. 52 00:03:17,850 --> 00:03:19,150 Pareho sa mga ito ay kumuha. 53 00:03:19,150 --> 00:03:22,740 Magagawa nilang sa isang mas malaki kaysa sa auditoryum seksyon ng isang normal na magiging in 54 00:03:22,740 --> 00:03:26,110 Ngunit ang layunin dito ay upang bigyan ng kasangkapan sa iyo ng ilang mga kaginhawahan na may problema magtakda ng isa, 55 00:03:26,110 --> 00:03:29,910 may C, na may CS50 appliance, ito katapusan ng linggo, kahit bago mo mahanap ang iyong out 56 00:03:29,910 --> 00:03:31,050 pormal na seksyon pagtatalaga. 57 00:03:31,050 --> 00:03:34,700 Kaya makikita mo matugunan ang iyong mga tf at ang iyong mas maliit pangkat ng mga sectionmates tungkol sa 58 00:03:34,700 --> 00:03:36,350 oras sa isang linggo. 59 00:03:36,350 --> 00:03:38,200 >> Opisina ng oras, samantala, Nai nangyayari. 60 00:03:38,200 --> 00:03:41,020 Gawin samantalahin ang mga ito ngayong gabi o bukas gabi kung nais mong. 61 00:03:41,020 --> 00:03:43,460 Problema hanay 0 ay dahil sa Biyernes. 62 00:03:43,460 --> 00:03:46,680 Ito ay isang araw na lalampas sa regular na naka-iskedyul na-Huwebes. 63 00:03:46,680 --> 00:03:50,410 Ngunit may problema na hanay 1, makikita mo ang na kasama nito ang ilang mga mainit-init-up 64 00:03:50,410 --> 00:03:52,770 pagsasanay na kung saan mo ang iyong sarili maaaring pahabain ang iyong 65 00:03:52,770 --> 00:03:54,660 Huwebes deadline hanggang Biyernes. 66 00:03:54,660 --> 00:03:58,410 Problema sa hanay 1, samantala, ay pasinaya sa website ng kurso ng ito darating 67 00:03:58,410 --> 00:04:02,000 Biyernes, kung nais mong kulutin up sa ito bilang ko ginawa nang matagal nang panahon late 68 00:04:02,000 --> 00:04:04,370 Biyernes gabi sa iyong kuwarto. 69 00:04:04,370 --> 00:04:07,660 >> Kaya cs50.net/appliance ay ang lugar kung saan maaari kang makakuha ng CS50 appliance 70 00:04:07,660 --> 00:04:09,040 na namin simulang gamitin sa Lunes. 71 00:04:09,040 --> 00:04:10,140 Gagamitin namin ang mga ito nang kaunti pa ngayon. 72 00:04:10,140 --> 00:04:14,040 Ngunit makatitiyak na nagpapatuloy ang problema itakda 1 pagtutukoy ay ituturo sa iyo 73 00:04:14,040 --> 00:04:16,490 tumpak na hakbang na kailangan mo upang makakuha ng na up at tumatakbo. 74 00:04:16,490 --> 00:04:22,120 Kaya huwag mag-alala tungkol sa paggawa na bago Pset 1 kung ikaw ay sa halip hindi. 75 00:04:22,120 --> 00:04:22,660 >> Ayos lang. 76 00:04:22,660 --> 00:04:27,180 Kaya kami ay tumingin sa Lunes sa source code, ngunit sa konteksto ng isang bagong 77 00:04:27,180 --> 00:04:30,895 programming language, lalo C. At C, hindi katulad sa simula, ay hindi graphical. 78 00:04:30,895 --> 00:04:32,270 Hindi ito piraso puzzle. 79 00:04:32,270 --> 00:04:34,450 Ito ay higit pang Ingles-tulad ng syntax. 80 00:04:34,450 --> 00:04:37,140 At mayroong isang pares ng mga hakbang na kasangkot sa aktwal na pagsusulat at pagpapatakbo ng isang 81 00:04:37,140 --> 00:04:41,650 programa sa C, dahil bukod sa pinagmulan code na tulad nito, kailangan mo ng isang bagay 82 00:04:41,650 --> 00:04:42,890 tinatawag na tagatala. 83 00:04:42,890 --> 00:04:46,682 At sa mga tuntunin ng karaniwang tao, kung ano tagatala ay isang gawin para sa amin? 84 00:04:46,682 --> 00:04:47,650 Oo. 85 00:04:47,650 --> 00:04:51,040 >> MAG-AARAL: Ito-convert ang code na sinulat mo sa 0s at 1s. 86 00:04:51,040 --> 00:04:51,151 >> David MALAN: Mahusay. 87 00:04:51,151 --> 00:04:53,580 Kaya ito convert ang code na isulat namin sa 0s at 1s. 88 00:04:53,580 --> 00:04:57,730 Ito-convert tinaguriang source code upang object code, sa huli ng na kamukha 89 00:04:57,730 --> 00:04:59,140 isang maliit na isang bagay na katulad nito. 90 00:04:59,140 --> 00:05:02,860 At ito ay ang iyong CPU, ang talino sa loob ng sa iyong computer, na dahil sa ang 91 00:05:02,860 --> 00:05:06,280 mga tao na lumikha ng mga computer, malaman kung ano ang mga pagkakasunud-sunod 92 00:05:06,280 --> 00:05:07,460 ng 0s at 1s mean. 93 00:05:07,460 --> 00:05:08,640 >> Marahil, ito ay nangangahulugan na print. 94 00:05:08,640 --> 00:05:10,265 Siguro ang ibig sabihin nito karagdagan. 95 00:05:10,265 --> 00:05:11,610 Marahil, ito ay nangangahulugan na pagbabawas. 96 00:05:11,610 --> 00:05:13,350 Siguro ang ibig sabihin nito magpakita ng isang graphic. 97 00:05:13,350 --> 00:05:16,870 Walang mga paunang-natukoy na pattern ng mga piraso na ang mundo ay nagpasya sabihin 98 00:05:16,870 --> 00:05:17,700 ilang mga bagay. 99 00:05:17,700 --> 00:05:20,760 Ngunit para sa pinaka-bahagi sa kursong ito, makikipagtulungan kami sa mas mataas na antas, at 100 00:05:20,760 --> 00:05:24,180 isasaalang-alang namin para sa ibinigay na mayroong umiiral mga bagay tulad ng compiler na maaari 101 00:05:24,180 --> 00:05:27,670 gumawa ng aming source code ng function na sa paraang nilayon namin. 102 00:05:27,670 --> 00:05:31,660 >> Kaya ang programa namin unang sinulat noong nakaraang linggo at pagkatapos ay nagsimulang port, kaya upang 103 00:05:31,660 --> 00:05:33,920 makipag-usap, mag-C ito nakalipas Lunes, ito ay. 104 00:05:33,920 --> 00:05:35,700 Kapag berde bandila na-click, kamustahin. 105 00:05:35,700 --> 00:05:37,430 Ito ay, siyempre, nakasulat sa scratch. 106 00:05:37,430 --> 00:05:40,710 At ako na-claim na ang katumbas programa sa C ay tumingin ng kaunti 107 00:05:40,710 --> 00:05:41,520 isang bagay na katulad nito. 108 00:05:41,520 --> 00:05:45,050 >> Kaya kung ano ko naisip naming gawin sa una ay, sabihin mang-ulol apart kung ano hitsura, sa unang 109 00:05:45,050 --> 00:05:48,790 sulyap, tinatanggap na, bilang patas arcane syntax, ngunit ikaw ay magsisimulang upang mapansin 110 00:05:48,790 --> 00:05:50,160 pattern pa masyadong mabilis. 111 00:05:50,160 --> 00:05:53,770 Ano gagamitin din namin gawin ngayon ay magbigay sa iyo ng isang mental na modelo para sa ilang mga 112 00:05:53,770 --> 00:05:57,280 canonical, ang ilang mga karaniwang constructs sa programming. 113 00:05:57,280 --> 00:06:00,420 At pagkatapos ay gagamitin namin talagang makakuha ng aming mga kamay marumi na may ilang mga halimbawa pati na rin. 114 00:06:00,420 --> 00:06:04,140 >> Kaya para sa mga ka ng mas kumportable, Napag-alaman na ito linggo at pagkatapos ay susunod 115 00:06:04,140 --> 00:06:05,940 linggo ay maaaring napakahusay maging isang bit ng pagsusuri. 116 00:06:05,940 --> 00:06:08,810 Ngunit lalo na kapag ang mga Hacker edisyon ng problema sa set 1 napupunta sa labas ng 117 00:06:08,810 --> 00:06:12,330 website kurso sa Biyernes, sa tingin ko makikita mo na kahit na bilang punan mo sa 118 00:06:12,330 --> 00:06:15,390 ilang blangko sa mga susunod na linggo o dalawang, makikita mo simulan upang makakuha ng higit kailanman 119 00:06:15,390 --> 00:06:18,410 hinamon at makatagpo bago at mas bagong mga bagay. 120 00:06:18,410 --> 00:06:21,310 >> Kaya sabihin mang-ulol sa programang ito bukod ng ilang linya sa isang pagkakataon. 121 00:06:21,310 --> 00:06:24,140 Sa pinakatuktok, mayroon kaming kung ano ang technically tinatawag na 122 00:06:24,140 --> 00:06:25,950 Preprocessor direktiba. 123 00:06:25,950 --> 00:06:30,510 Ito ay lamang ng isang linya ng code na nagsasabing upang isama ang mga nilalaman ng isang file, 124 00:06:30,510 --> 00:06:35,080 karaniwang tinatawag na ako / N, standard input - o, paumanhin, standard I / O, karaniwang 125 00:06:35,080 --> 00:06:38,670 input / output,. h, sa loob ng aking sariling programa. 126 00:06:38,670 --> 00:06:41,670 >> Kaya sa ibang salita, kung ako ay nagsulat na ito programa sa isang simpleng text editor tulad ng 127 00:06:41,670 --> 00:06:45,260 gedit, ang mas simple na katumbas ng isang bagay tulad ng Microsoft Word, na 128 00:06:45,260 --> 00:06:50,970 pagtuturo, # isama stdio.h, ay lamang pagpunta sa sabihin ang tagatala, grab ang 129 00:06:50,970 --> 00:06:56,080 mga nilalaman ng iba pang mga na file, stdio.h, at ilagay ang mga ito dito mismo. 130 00:06:56,080 --> 00:06:57,090 >> Ngayon, bakit ko pinapahalagahan? 131 00:06:57,090 --> 00:07:01,850 Ano ang sinabi i-claim sa loob namin ay mga file na ito tinatawag stdio.h, na kung saan ay naka-imbak 132 00:07:01,850 --> 00:07:05,490 sa isang lugar sa aking hard drive, o sa kaso, sa isang lugar sa CS50 appliance? 133 00:07:05,490 --> 00:07:06,635 May ibang ilagay ito doon para sa akin. 134 00:07:06,635 --> 00:07:09,910 Ngunit kung ano ang sa loob nito? 135 00:07:09,910 --> 00:07:13,020 >> Oo, sa gayon ito ay isang pahayag ng function na tinatawag na isang printf. 136 00:07:13,020 --> 00:07:17,400 Kaya printf naalala ang function na display salita at character at 137 00:07:17,400 --> 00:07:20,160 mga numero sa screen sa aking pag-bid. 138 00:07:20,160 --> 00:07:21,220 Ngunit hindi ko isulat ito. 139 00:07:21,220 --> 00:07:22,230 CS50 ay hindi magsulat dito. 140 00:07:22,230 --> 00:07:26,990 May isang taon na ang nakalipas ay nagsulat nito, at sila mahalagang nagbigay sa amin ang recipe para dito 141 00:07:26,990 --> 00:07:29,110 sa isang file na tinatawag na stdio.h. 142 00:07:29,110 --> 00:07:33,240 Kaya na ang unang linya ay nagbibigay lamang sa akin ma-access ang sa mga function na may ibang tao 143 00:07:33,240 --> 00:07:36,500 Nagsulat taon na ang nakakaraan, bukod sa na kung saan ay printf. 144 00:07:36,500 --> 00:07:39,450 >> Ngayon, ang susunod na linya Pupunta ako sa aking iwagayway sa kamay, hindi bababa sa hanggang sa susunod na linggo. 145 00:07:39,450 --> 00:07:43,620 Ngunit para sa ngayon, alam na int pangunahing (walang bisa) ay mahalagang ang katumbas ng ito 146 00:07:43,620 --> 00:07:46,310 dilaw puzzle piraso kapag berde bandila click. 147 00:07:46,310 --> 00:07:49,510 Ang mundo, taon na ang nakalipas, nagpasya na kung sumusulat ka ng isang programa sa 148 00:07:49,510 --> 00:07:53,150 wika na tinatawag na C, simulan mo iyong programa na may linya 149 00:07:53,150 --> 00:07:54,410 na mukhang iyon. 150 00:07:54,410 --> 00:07:57,650 Sa lamang tungkol sa oras sa isang linggo, makikita ito gawin pakiramdam kung ano ang int ay, kung ano ay walang bisa. 151 00:07:57,650 --> 00:08:00,840 Ngunit para sa ngayon, lamang sa tingin ng ito bilang na ito dilaw na piraso puzzle. 152 00:08:00,840 --> 00:08:04,550 >> Ngayon susunod, mayroon kaming isang kulot suhay sinundan sa pamamagitan ng isa pang malapit na kulot suhay, 153 00:08:04,550 --> 00:08:05,240 kaya na magsalita. 154 00:08:05,240 --> 00:08:07,430 At kami na makita ang mga buong mga programa sa C, pati na rin ang 155 00:08:07,430 --> 00:08:08,930 JavaScript at PHP. 156 00:08:08,930 --> 00:08:11,345 At lamang ang mga encapsulate mga kaugnay na mga linya ng code. 157 00:08:11,345 --> 00:08:14,600 Ang open suhay kulot talaga sabi, dito ay ilang mga code. 158 00:08:14,600 --> 00:08:17,590 At ang closed suhay kulot, na siyang angled sa iba pang direksyon, lamang 159 00:08:17,590 --> 00:08:19,920 ibig sabihin, na ito para sa ang may-katuturang mga code. 160 00:08:19,920 --> 00:08:22,970 >> Kaya ang makatas linya sa unang programa ay ang huling, printf, 161 00:08:22,970 --> 00:08:25,080 quote-magpanipi, kumusta mundo. 162 00:08:25,080 --> 00:08:30,670 At ako na tinatawag na ang bagay sa pagitan ng quote kung ano ang huling panahon? 163 00:08:30,670 --> 00:08:31,285 Kaya ito ay isang string. 164 00:08:31,285 --> 00:08:35,309 At isang string lamang ang mga techie termino para sa isang pagkakasunod-sunod ng 165 00:08:35,309 --> 00:08:37,169 character, isang salita, isang parirala. 166 00:08:37,169 --> 00:08:39,380 Kahit isang solong titik ng dati i-double quote. 167 00:08:39,380 --> 00:08:41,840 Ngunit ito ay isang pagkakasunod-sunod ng zero o higit pang mga character. 168 00:08:41,840 --> 00:08:43,650 >> Backslash-n, bagaman, mukhang medyo kakaiba. 169 00:08:43,650 --> 00:08:46,290 Ngunit ito lamang nilalayong isang bagay simple sa computer. 170 00:08:46,290 --> 00:08:48,060 Ano ang backslash-n? 171 00:08:48,060 --> 00:08:48,570 Bagong line. 172 00:08:48,570 --> 00:08:52,490 Kaya ito lamang ang mga espesyal na pagkakasunod-sunod ng character na ang mundo ay nagpasya 173 00:08:52,490 --> 00:08:56,880 Nangangahulugan maglagay ng line break doon, dahil ang tagatala ay talagang makakuha 174 00:08:56,880 --> 00:09:02,280 nalilito, kadalasan, kung, napaka understandably, ngunit hindi tama, lamang 175 00:09:02,280 --> 00:09:04,570 simulan ang pagpindot ng Enter upang ilagay mga bagong linya sa iyong code. 176 00:09:04,570 --> 00:09:07,150 Kailangan mong maging isang kaunti pa tahasang may backslash-n. 177 00:09:07,150 --> 00:09:10,540 >> At kami makita mayroong ilang ibang tulad ng pattern para sa mga espesyal na character. 178 00:09:10,540 --> 00:09:14,340 Halimbawa, kung ginusto mong hayaan ang iyong mga tututol malihis sa isang kaso na sulok, 179 00:09:14,340 --> 00:09:18,080 ipagpalagay na nais kong i-print ang isang double quote sa screen para sa 180 00:09:18,080 --> 00:09:21,840 anumang dahilan, na tila maging isang maliit na problema, tama? 181 00:09:21,840 --> 00:09:24,990 Dahil kung ko bang ilagay ang isang double quote sa gitna ng "kumusta, mundo," para sa anumang 182 00:09:24,990 --> 00:09:30,120 dahilan, kung bakit ay na mukhang potensyal na problemang? 183 00:09:30,120 --> 00:09:32,180 Ito Pinaghihiwa ang string. 184 00:09:32,180 --> 00:09:34,700 >> Ang tagatala lamang ang programa. 185 00:09:34,700 --> 00:09:37,210 Ang isang programa tulad ng isang tagatala ay lamang ng pagpunta na basahin ang iyong code sa itaas hanggang sa ibaba, 186 00:09:37,210 --> 00:09:37,990 pakaliwa sa kanan. 187 00:09:37,990 --> 00:09:41,850 At kung nakikita ng tatlong double quote sa halip ng dalawang, ito ay hindi pagpunta sa alam 188 00:09:41,850 --> 00:09:45,210 kung ibig mong sabihin na ang mga bagay sa kaliwa dapat na ang string, o ang bagay na 189 00:09:45,210 --> 00:09:46,570 sa kanan, o sa buong bagay. 190 00:09:46,570 --> 00:09:50,560 Ito ay hindi maliwanag, at kaya kung ano ang isang karaniwang tagatala nais gawin ay lamang taong kakatuwa out, 191 00:09:50,560 --> 00:09:53,710 at magbibigay sa iyo ng ilang mga error na mensahe, at gumawa ka makitungo sa mga problema. 192 00:09:53,710 --> 00:09:58,120 >> Kaya ibinigay na backslash-n nangangahulugan ng isang bagong linya, ano ang gagawin sa iyong instincts ngayon 193 00:09:58,120 --> 00:10:02,610 simulan upang maging kung ginusto mong isama isang bagay iregular tulad ng isang double 194 00:10:02,610 --> 00:10:06,210 quote sa loob ng ito kung hindi man-quote string? 195 00:10:06,210 --> 00:10:07,640 Backslash-double quote. 196 00:10:07,640 --> 00:10:09,630 At kaya namin makita ito uri ng pattern masyadong. 197 00:10:09,630 --> 00:10:12,490 >> Kung gusto mong gawin ang isang bagay ng kaunti kakaiba, makikita mo na ang mga 198 00:10:12,490 --> 00:10:15,060 solusyon madalas sundin ang isang pattern, at ang backslash 199 00:10:15,060 --> 00:10:17,150 Nagpapahiwatig ng isang escape sequence. 200 00:10:17,150 --> 00:10:20,320 At ito ay nangangahulugan lamang ng isang bagay na espesyal na kailangan namin upang kumatawan sa isang 201 00:10:20,320 --> 00:10:21,060 iba't ibang paraan. 202 00:10:21,060 --> 00:10:23,830 Bilang para sa kung paano kinakatawan mo isang backslash, mahusay, bibigyan namin ng 203 00:10:23,830 --> 00:10:24,550 bumalik sa na. 204 00:10:24,550 --> 00:10:26,930 Ngunit ang sagot, masyadong, ay talagang medyo halata. 205 00:10:26,930 --> 00:10:31,080 >> Kaya natin ngayong ipakilala sa ilang ibang programming constructs 206 00:10:31,080 --> 00:10:31,915 na nakita mo sa scratch. 207 00:10:31,915 --> 00:10:34,790 Marahil Ginawa mo na para sa ipinagkaloob na kung nakalikha ka na dived sa 208 00:10:34,790 --> 00:10:36,060 problema itakda 0. 209 00:10:36,060 --> 00:10:40,950 Ngunit natin ngayon ipakilala ang syntax sa C para sa mga ito kung hindi man ay medyo madaling maunawaan 210 00:10:40,950 --> 00:10:42,300 mga ideya, hindi bababa sa ilan sa kanila. 211 00:10:42,300 --> 00:10:45,570 >> Kaya ito kuru-kuro ng isang kondisyon o isang branch, samantalang dati namin 212 00:10:45,570 --> 00:10:49,330 kinakatawan ito gamit ang code na tumingin tulad nito sa kaliwa sa scratch - 213 00:10:49,330 --> 00:10:52,200 kung x ay mas mababa sa y, pagkatapos ay sabihin sa gayon - 214 00:10:52,200 --> 00:10:56,760 sa halip na ngayon sa C - ipaalam sa akin magtagis in sa pinakasimpleng kaso - 215 00:10:56,760 --> 00:11:01,235 lamang kami ng pagpunta sa sabihin, kung, buksan panaklong, isang bagay ay totoo - ang isang 216 00:11:01,235 --> 00:11:04,190 Boolean expression ay pagpunta sa pumunta kung saan ko sinabi kondisyon - 217 00:11:04,190 --> 00:11:08,170 malapit panaklong, pagkatapos ay kung ano ang sa loob ng mga kulot tirante. 218 00:11:08,170 --> 00:11:11,020 >> Kaya dito, masyadong, ang kulot tirante ay mga uri ng tulad ng scratch ni 219 00:11:11,020 --> 00:11:12,460 Mag-U-shaped piraso puzzle. 220 00:11:12,460 --> 00:11:14,890 Huwag kung ano ang nasa loob ng mga kulot tirante. 221 00:11:14,890 --> 00:11:16,790 Sa kasong ito, slash slash. 222 00:11:16,790 --> 00:11:19,720 At mapansin ito ay isang pasulong iwa, hindi isang backslash. 223 00:11:19,720 --> 00:11:21,440 Forward slash, forward slash, para sa mga taong na-program 224 00:11:21,440 --> 00:11:23,370 bago, nangangahulugan lamang - 225 00:11:23,370 --> 00:11:24,190 ito lamang ay isang komento. 226 00:11:24,190 --> 00:11:26,630 Ang puna ay hindi isang linya ng code, per se. 227 00:11:26,630 --> 00:11:30,200 Ito ay isang linya ng Ingles na ikaw, ang pantao, na nakasulat sa iyong sarili upang 228 00:11:30,200 --> 00:11:33,540 marahil ipaalala sa iyo upang gawin ang isang bagay, i- ipaliwanag sa iyong sarili, upang ipaliwanag sa 229 00:11:33,540 --> 00:11:35,260 ng ibang tao, kung ano ang iyong code ay paggawa. 230 00:11:35,260 --> 00:11:37,050 Ito ay lamang ng isang naglalarawang komento. 231 00:11:37,050 --> 00:11:40,880 >> Ngayon, siyempre, maaari kaming magkaroon ng two-way tinidor sa kalsada lamang sa pamamagitan ng paggawa nito, isang 232 00:11:40,880 --> 00:11:43,930 tatlong-way na tinidor sa kalsada sa pamamagitan ng paggawa ito, at kung patuloy kang ito 233 00:11:43,930 --> 00:11:47,570 pattern, maaari kang magkaroon ng apat na paraan, limang-way, anim-way na tinidor sa kalsada kung 234 00:11:47,570 --> 00:11:50,150 kailangan mo upang mahawakan, sa katunayan, na maraming mga kundisyon. 235 00:11:50,150 --> 00:11:52,010 At pagkatapos mapansin ang paralelismo dito - 236 00:11:52,010 --> 00:11:55,070 kung (kondisyon), iba pa kung (kondisyon), at ang isa lamang na ang isang ilan 237 00:11:55,070 --> 00:11:58,010 kakaiba ay ang huling, na lamang na tao. 238 00:11:58,010 --> 00:12:01,170 Ngunit muli, ito ay kapareho, conceptually, sa kung ano ang ginawa namin 239 00:12:01,170 --> 00:12:04,690 pa, kahit na syntax ang kalooban tumagal nang kaunti nagsisimula ginamit upang. 240 00:12:04,690 --> 00:12:07,730 >> Ngayon, sa halimbawang ito, mayroong ilang iba pang kakaiba syntax. 241 00:12:07,730 --> 00:12:11,220 Nakakakita kami ng printf muli, buksan panaklong, at malapit panaklong. 242 00:12:11,220 --> 00:12:13,190 At sa loob ng mayroong isang naka-quote na string. 243 00:12:13,190 --> 00:12:17,060 Ang mga panaklong, sa konteksto ng printf, pumunta sa kaliwa 244 00:12:17,060 --> 00:12:18,160 at kanan ng kung ano? 245 00:12:18,160 --> 00:12:22,190 Ano ang gagawin namin ilarawan ang naka-quote na string bilang sa mas pangkalahatang? 246 00:12:22,190 --> 00:12:23,320 >> Kaya ito ay isang argumento. 247 00:12:23,320 --> 00:12:26,620 Anumang oras na ikaw ay may isang function, tulad ng printf, at pagkatapos ay isang open paren at isang 248 00:12:26,620 --> 00:12:30,330 malapit paren at isang bagay sa loob ng ito, kung ito ay ang isang string, o isang 249 00:12:30,330 --> 00:12:34,420 integer, o anumang bagay, ang mga bagay sa sa pagitan ng mga panaklong ay tinatawag na 250 00:12:34,420 --> 00:12:35,110 isang argumento. 251 00:12:35,110 --> 00:12:37,910 >> At isang argumento lamang nakakaimpluwensya pag-uugali ng mga function na ito. 252 00:12:37,910 --> 00:12:39,990 Sa kasong ito, maganda ito kung paano i-clear. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 At printf ay pagpunta sa mag-print nang eksakto na. 255 00:12:47,720 --> 00:12:51,590 Dahil tiyak, ang tao taon na ang nakalipas sino ipinatupad printf ay walang ideya 256 00:12:51,590 --> 00:12:55,000 kung ano ang namin ang tagapagmana ng tao ay pagpunta upang gamitin para sa printf. 257 00:12:55,000 --> 00:12:58,610 Kaya na ang dahilan kung bakit argumento umiiral, upang impluwensya sa pag-uugali matapos ang isang function ng 258 00:12:58,610 --> 00:12:59,450 napawalang. 259 00:12:59,450 --> 00:13:00,780 >> Ngayon, Boolean expression. 260 00:13:00,780 --> 00:13:02,470 Nasaksihan namin ang mga bago sa scratch. 261 00:13:02,470 --> 00:13:06,680 Ito ay lumiliko out sa C maaari mo ring "o" ang mga ito nang magkasama, kaya na magsalita. 262 00:13:06,680 --> 00:13:10,930 Dalawang patayong bar ay nangangahulugan na ang bloke ng code, ito gawin ito, kalooban 263 00:13:10,930 --> 00:13:15,350 isakatuparan kung ang unang kondisyon ay totoo o ang ikalawang kondisyon ay totoo. 264 00:13:15,350 --> 00:13:17,710 At kahit na hindi ka maaaring tapos na ito sa wala, magagawa mong talaga 265 00:13:17,710 --> 00:13:20,580 gawin ito sa simula, At maaari ka ring ipahayag ang iyong sarili naiiba - 266 00:13:20,580 --> 00:13:25,300 kung ang unang kondisyon at ang pangalawang kondisyon ay totoo, pagkatapos ay kung ano ang 267 00:13:25,300 --> 00:13:27,160 sa loob ng kulot tirante. 268 00:13:27,160 --> 00:13:31,210 >> At tulad ng isang tabi, dahilan sa ito ay isang double ampersand at isang double 269 00:13:31,210 --> 00:13:34,610 patayong bar, makikita namin kung malaon na isang solong vertical bar at isang 270 00:13:34,610 --> 00:13:38,710 single ampersand talagang magkaroon ng iba't ibang ibig sabihin sa C. So sa ngayon, 271 00:13:38,710 --> 00:13:41,840 na-duplicate ng mga simbolo ay intensyonal. 272 00:13:41,840 --> 00:13:45,070 >> Kaya sabihin ipakilala, Panandalian, ang iba pang mga bit ng syntax. 273 00:13:45,070 --> 00:13:48,940 Ito ay hindi pa masyadong carry sa paglipas ng sa Wala, ngunit inaangkin ko na ang maaari kong 274 00:13:48,940 --> 00:13:55,190 ipatupad ang paniwala ng isang tao kung, kung tao, kung tao, kung iba statement paggamit 275 00:13:55,190 --> 00:13:56,760 isang bagay na tinatawag na isang switch statement. 276 00:13:56,760 --> 00:14:00,820 At ang tanging dahilan na ito talagang umiiral ay upang lamang magbigay sa iyo, ang mga programmer, isang 277 00:14:00,820 --> 00:14:05,470 bahagyang kakaibang paraan ng pag-solve ng ilang problema, kahit na lohikal na ito 278 00:14:05,470 --> 00:14:07,340 ay hindi nagbibigay sa iyo ng anumang mga bagong kakayahan. 279 00:14:07,340 --> 00:14:08,530 >> Sa pamamagitan ng na ibig sabihin ko ito. 280 00:14:08,530 --> 00:14:13,330 Kapag sinabi mong lumipat, at pagkatapos ay isang patlang, at pagkatapos ng isang pares ng mga panaklong, sa loob 281 00:14:13,330 --> 00:14:14,570 ng kung saan napupunta ang isang expression - 282 00:14:14,570 --> 00:14:18,010 at ito ay maaaring maging isang maliit na di-halata sa una, ngunit ito ay hindi isang argument, 283 00:14:18,010 --> 00:14:20,680 technically, dahil lumipat ay hindi isang function. 284 00:14:20,680 --> 00:14:24,230 Kaya sa ngayon, lamang ipagpalagay na ang aming ginagamit panaklong sa iba't-ibang mga lugar 285 00:14:24,230 --> 00:14:25,250 para sa iba't ibang dahilan. 286 00:14:25,250 --> 00:14:29,310 >> Kaya lumipat sa expression Nangangahulugan ang maaari kong ilagay sa isang variable sa loob ng mga 287 00:14:29,310 --> 00:14:31,350 panaklong kung saan sinasabi nito na expression. 288 00:14:31,350 --> 00:14:33,090 At pagkatapos ay kung na variable - 289 00:14:33,090 --> 00:14:35,400 ipagpalagay na ito ay tinatawag na x, at ito lamang ay isang integer - 290 00:14:35,400 --> 00:14:38,900 Maaari ko pagkatapos magbilang sa aking mga slide dito isang bagay na katulad nito. 291 00:14:38,900 --> 00:14:41,690 Kung x ay ang aking mga variable, at ako nais na gawin ang isang bagay kung x 292 00:14:41,690 --> 00:14:43,480 ay katumbas ng 1, ang maaari kong gawin iyon. 293 00:14:43,480 --> 00:14:46,660 >> Kung ako sa halip nais na gawin ang isang bagay kung x ay 2, ang maaari kong gawin iyon. 294 00:14:46,660 --> 00:14:50,390 Iba Pa, kung gusto kong gawin ibang bagay ganap, maaari ba akong magkaroon ng isang default na kaso sa 295 00:14:50,390 --> 00:14:52,750 kung saan gagawin ko ito iba pang mga bagay. 296 00:14:52,750 --> 00:14:58,730 Kaya sa na kahulugan, ito ay katumbas ng isang kung x ay katumbas ng katumbas ng 1, kung iba pang tao, 297 00:14:58,730 --> 00:15:01,150 pero banggitin ko ito ngayon dahil lang ipapakita namin makita ito muli. 298 00:15:01,150 --> 00:15:03,720 Ngunit para sa ngayon, lamang malaman na ito ay umiiral na. 299 00:15:03,720 --> 00:15:04,220 >> Ayos lang. 300 00:15:04,220 --> 00:15:07,660 Kaya ang mga huling ilang ay isang kaunti pa complex sa unang tingin, pero ang ginagawa nila 301 00:15:07,660 --> 00:15:09,385 isang bagay na medyo tuwiran. 302 00:15:09,385 --> 00:15:14,410 Ang isang loop para sa C ay isang tipak ng code na lamang ang isang bagay na muli at 303 00:15:14,410 --> 00:15:15,330 muli at muli. 304 00:15:15,330 --> 00:15:17,590 At ang tanging nakakainis na bagay tungkol dito ay na ay na ito ay isang maliit na misteriyoso 305 00:15:17,590 --> 00:15:21,380 upang ipahayag ang iyong sarili sa ito cyclical pattern, ngunit ang mundo sa Standardized 306 00:15:21,380 --> 00:15:22,450 mga sumusunod na paraan. 307 00:15:22,450 --> 00:15:25,760 >> Kapag gumamit ka ng isang para sa loop, mayroon ka isang pares ng mga panaklong muli. 308 00:15:25,760 --> 00:15:27,570 At mapansin ang dalawang semicolons sa doon. 309 00:15:27,570 --> 00:15:34,380 Yaong dalawang magkahiwalay na semicolons tatlong iba't ibang expression sa loob ng 310 00:15:34,380 --> 00:15:35,020 panaklong. 311 00:15:35,020 --> 00:15:37,170 Ang isa ay ang tinatawag na initializations. 312 00:15:37,170 --> 00:15:38,830 Ang isa ay ang tinatawag na kondisyon. 313 00:15:38,830 --> 00:15:40,210 At ang isa ay ang tinatawag na pag-update. 314 00:15:40,210 --> 00:15:43,240 >> Tiningnan sa abstract, ito ay talagang non-halata, kaya tingnan natin 315 00:15:43,240 --> 00:15:44,630 sa isang kongkreto halimbawa. 316 00:15:44,630 --> 00:15:46,720 Sa scratch nagkaroon kami ng isang umuulit na bloke. 317 00:15:46,720 --> 00:15:50,670 At block ito sinabi ulitin 10 beses, sabihin "Kumusta, mundo." Hayaan ang i-claim para sa akin 318 00:15:50,670 --> 00:15:53,810 ngayon, at kami ay bumalik sa ito, at ito, masyadong, ay makakuha ng higit pang mga pamilyar sa 319 00:15:53,810 --> 00:15:57,345 ka bago mahaba, ang katumbas C code ay maaaring sinabi na maging ito - 320 00:15:57,345 --> 00:16:02,320 para sa isang pahayag at isang puwang, isang pares ng panaklong, mapansin ang semicolons sa 321 00:16:02,320 --> 00:16:05,730 doon, na paghiwalayin ang tatlong natatanging mga bagay, ang Pinasimulan, ang 322 00:16:05,730 --> 00:16:07,320 kalagayan, at ang pag-update. 323 00:16:07,320 --> 00:16:08,840 >> At tumagal ng hula kung ano ang unang ginagawa. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 Sa mga tuntunin lego magaspang, ang kung ano ang na ginagawa para sa atin, marahil? 326 00:16:15,120 --> 00:16:15,590 Kaya oo. 327 00:16:15,590 --> 00:16:19,630 Ito ay deklarasyon ng variable na tinatawag na i, at ito ay nagbibigay ito kung ano ang halaga? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Kaya ito ay ang paglikha ng isang variable na tinatawag na i, pag-iimbak ng mga halaga sa 0 ito. 330 00:16:24,280 --> 00:16:26,420 Iyan ang tinatawag na Pinasimulan. 331 00:16:26,420 --> 00:16:29,360 >> Ang lahat ng mga karapatan, ngayon ko na-claim bago na ang gitnang bagay, i 332 00:16:29,360 --> 00:16:31,760 <10, ay ang kondisyon. 333 00:16:31,760 --> 00:16:32,730 Kaya kung ano ang ginagawa? 334 00:16:32,730 --> 00:16:36,560 Well, kung ano ang para sa loop ang ipinapakita kapag ang isang programa na may isang para sa loop ay tatakbo, ay 335 00:16:36,560 --> 00:16:41,050 sa bawat oras na ang computer ay tumatakbo sa pamamagitan ng ito loop, itaas hanggang sa ibaba, sa tuktok 336 00:16:41,050 --> 00:16:43,740 ibaba, tulad ng sa iyo guys kapag ginawa bilangin ang inyong sarili at sitting down, 337 00:16:43,740 --> 00:16:47,090 muli at muli at muli, ang computer ay pagpunta 338 00:16:47,090 --> 00:16:48,560 upang suriin na kondisyon. 339 00:16:48,560 --> 00:16:51,140 At kung i ay mababa sa 10, Makikita ito gawin itong muli. 340 00:16:51,140 --> 00:16:53,100 Kung i ay mababa sa 10, Makikita ito gawin itong muli. 341 00:16:53,100 --> 00:16:55,030 Kung i ay mas mababa sa sampung, Makikita ito gawin itong muli. 342 00:16:55,030 --> 00:16:57,330 Kaya na tila iminumungkahi na sana ay i ay nagbabago. 343 00:16:57,330 --> 00:16:59,010 Kung hindi man, nais naming magkaroon ng isang walang-katapusang loop. 344 00:16:59,010 --> 00:17:02,590 At sa katunayan, i Nagbabago, dahil ang huling bagay pagkatapos ng tuldok-kuwit doon 345 00:17:02,590 --> 00:17:05,569 ay ang medyo misteriyoso syntax ng i + +. 346 00:17:05,569 --> 00:17:07,630 Ngunit ang mga ng sa iyo na nagawa mo na ito bago, na nangangahulugan lamang 347 00:17:07,630 --> 00:17:08,609 medyo lang ano? 348 00:17:08,609 --> 00:17:09,730 >> ESTUDYANTE: [INTERPOSING boses]. 349 00:17:09,730 --> 00:17:10,740 >> David MALAN: Magdagdag ng 1 upang i. 350 00:17:10,740 --> 00:17:11,819 Dinagdagan i. 351 00:17:11,819 --> 00:17:13,910 Kaya nakita natin ang isang scratch puzzle piraso para sa na, talaga. 352 00:17:13,910 --> 00:17:18,230 Hindi nito magmukhang i + +, ngunit iyon lamang ibig sabihin, medyo simple, dagdagan ang 353 00:17:18,230 --> 00:17:24,040 Pinahahalagahan i ng 1 sa bawat oras na gawin mo ito. 354 00:17:24,040 --> 00:17:26,910 Kaya literal, magsisimula ka sa pamamagitan Sinisimulan ko sa 0. 355 00:17:26,910 --> 00:17:29,520 Ikaw pagkatapos ay suriin ang iyong kalagayan. 356 00:17:29,520 --> 00:17:31,070 0 ay mas mababa sa 10? 357 00:17:31,070 --> 00:17:31,730 Oo. 358 00:17:31,730 --> 00:17:32,910 Pumunta kami sa pamamagitan ng mga loop. 359 00:17:32,910 --> 00:17:35,150 >> Ang susunod na bagay na inaangkin ko ang computer pagpunta sa gawin ay ito ang nangyayari 360 00:17:35,150 --> 00:17:35,910 upang i dinagdagan. 361 00:17:35,910 --> 00:17:37,080 Kaya i ngayon ay 1. 362 00:17:37,080 --> 00:17:37,940 Ito sumusuri sa kalagayan. 363 00:17:37,940 --> 00:17:39,290 1 ay mas mababa sa 10? 364 00:17:39,290 --> 00:17:39,930 Siyempre. 365 00:17:39,930 --> 00:17:41,030 Kaya ginagawa itong muli. 366 00:17:41,030 --> 00:17:43,580 Pagkatapos ito unti i + + sa 2. 367 00:17:43,580 --> 00:17:44,610 2 Ay mas mababa sa 10? 368 00:17:44,610 --> 00:17:45,230 Oo. 369 00:17:45,230 --> 00:17:46,670 At muli at muli at muli. 370 00:17:46,670 --> 00:17:50,070 At sa huli, dahil sa plus-plussing, makuha namin upang i equals 10. 371 00:17:50,070 --> 00:17:51,675 10 Ay mas mababa sa 10? 372 00:17:51,675 --> 00:17:52,990 Well, malinaw naman hindi. 373 00:17:52,990 --> 00:17:55,320 At na ang punto kung saan ang para sa loop lamang tumitigil. 374 00:17:55,320 --> 00:17:58,320 At kung mayroon kang higit pang mga code sa screen pababa sa ibaba, ang computer 375 00:17:58,320 --> 00:18:01,620 nalikom na tumakbo na code sa halip. 376 00:18:01,620 --> 00:18:05,380 >> Kaya muli, kahit na ito ay pagpunta sa tumingin at pakiramdam ng isang maliit na kakaiba sa 377 00:18:05,380 --> 00:18:07,830 una, walang duda para doon sa iyo kung sino na hindi kailanman-program bago, ito 378 00:18:07,830 --> 00:18:11,640 Literal na binabawasan conceptually sa kung ano ang kung hindi man ay isang napaka- 379 00:18:11,640 --> 00:18:14,330 tuwiran puzzle piraso sa scratch. 380 00:18:14,330 --> 00:18:19,130 >> Ang lahat ng mga karapatan, ipinangako ko na may gusto maging iba pang mga analogs sa scratch. 381 00:18:19,130 --> 00:18:20,060 May isang ito masyadong. 382 00:18:20,060 --> 00:18:21,700 At nakita natin ito daglian huling oras. 383 00:18:21,700 --> 00:18:23,530 Ngunit tandaan ang magpakailanman harangan sa scratch? 384 00:18:23,530 --> 00:18:25,490 Ito lamang ang isang bagay na magpakailanman? 385 00:18:25,490 --> 00:18:27,470 I-claim na maaari mong ipatupad ito sa ganitong paraan. 386 00:18:27,470 --> 00:18:29,740 At maaari mong aktwal na ipatupad ang sa isang grupo ng mga iba't-ibang paraan. 387 00:18:29,740 --> 00:18:34,260 >> Ngunit habang ang loop lamang ang iba't ibang paraan sa C ng pagpapahayag ng iyong sarili. 388 00:18:34,260 --> 00:18:37,080 Sa pagtatapos ng araw, hindi mo maaaring gawin anumang bagay na may isang loop habang na sa iyo 389 00:18:37,080 --> 00:18:38,360 Hindi maaari na may para sa loop. 390 00:18:38,360 --> 00:18:41,430 Kaya ang mga ito ay sa dulo ng araw halos pareho sa pagtakbo. 391 00:18:41,430 --> 00:18:43,840 Ngunit ito ay nagbibigay-daan sa iyo upang ipahayag ang iyong sarili medyo naiiba sa 392 00:18:43,840 --> 00:18:44,850 mga sumusunod na paraan. 393 00:18:44,850 --> 00:18:49,720 >> Gamit ang loop habang, ito ay kung ano ang sa panaklong na naka-check muli at 394 00:18:49,720 --> 00:18:51,050 muli at muli. 395 00:18:51,050 --> 00:18:55,100 At sa lalong madaling expression na ay hindi totoo, pagkatapos ay i-loop ang execute tumitigil, 396 00:18:55,100 --> 00:18:57,890 at computer ang naaayos sa magpatakbo ng anumang iba pang mga code mo 397 00:18:57,890 --> 00:18:59,230 mayroon sa iyong file. 398 00:18:59,230 --> 00:19:02,180 >> Ngunit kung ano ang kawili-wiling dito ay na ako literal na-type totoo. 399 00:19:02,180 --> 00:19:06,680 At totoo ay isang uri ng Boolean halaga, isang true o false halaga. 400 00:19:06,680 --> 00:19:09,750 Kaya maaaring totoo kailanman naging hindi totoo kung nag ako nang literal 401 00:19:09,750 --> 00:19:11,970 hard-code ito sa aking mga programa? 402 00:19:11,970 --> 00:19:12,470 Kaya hindi. 403 00:19:12,470 --> 00:19:13,730 Ito ay isang maliit na kakaiba na ginawa ko ito. 404 00:19:13,730 --> 00:19:15,190 Ngunit totoo ay totoo. 405 00:19:15,190 --> 00:19:16,320 Walang plus-plussing. 406 00:19:16,320 --> 00:19:17,820 Walang paggamit ng mga variable in dito. 407 00:19:17,820 --> 00:19:22,740 Kaya dahil ako hard-code habang totoo, ito loop ay palaging pagpunta upang pag-aralan 408 00:19:22,740 --> 00:19:24,090 muli at muli at muli. 409 00:19:24,090 --> 00:19:27,660 >> Kaya kung gaano karaming beses ay kumusta mundo pagpunta sa i-print sa screen? 410 00:19:27,660 --> 00:19:28,170 Magpakailanman. 411 00:19:28,170 --> 00:19:31,980 Isang walang-katapusang bilang ng mga beses hanggang ang baterya namatay o ilang iba pang mga panlabas 412 00:19:31,980 --> 00:19:32,730 kaganapan ang mangyayari. 413 00:19:32,730 --> 00:19:35,880 Kaya ito ay marahil hindi ang pinakamahusay na programa sumulat, dahil kung ang user 414 00:19:35,880 --> 00:19:38,660 Hindi kailanman maaaring lumabas mula sa iyong programa, ito ay marahil hindi kung ano ang iyong nilalayon. 415 00:19:38,660 --> 00:19:41,070 >> Ngunit minsan, programa dapat magkaroon ng isang walang-katapusang loop. 416 00:19:41,070 --> 00:19:44,050 Halimbawa, kung ang iyong computer na may isang orasan sa ito, ito ay tiyak na magiging 417 00:19:44,050 --> 00:19:48,130 maganda kung ang iyong orasan ito ay panatilihin sa pag-update mismo magpakailanman, kahit na isang beses sa isang 418 00:19:48,130 --> 00:19:50,500 pangalawa o isang beses sa isang minuto o isang bagay tulad na. 419 00:19:50,500 --> 00:19:53,690 Kaya kahit walang katapusan na mga loop ang mayroon ang kanilang mga lugar. 420 00:19:53,690 --> 00:19:54,360 >> Ayos lang. 421 00:19:54,360 --> 00:19:55,190 Panghuli, ang isang ito. 422 00:19:55,190 --> 00:19:57,770 At ang isang ito ay Medyo naiiba pagtakbo, at kami ay bumalik sa 423 00:19:57,770 --> 00:19:59,460 marahil ito sa Pset 1. 424 00:19:59,460 --> 00:20:02,370 Subalit mayroong isa pang uri ng loop tinatawag na gawin habang loop. 425 00:20:02,370 --> 00:20:07,100 At ang pagkakaiba lamang dito sa pagitan ng isang gawin habang loop at, sabihin nating, isang habang loop, 426 00:20:07,100 --> 00:20:11,120 ay na ang kundisyon ay naka-check hindi bago mo isagawa ang code, ngunit pagkatapos 427 00:20:11,120 --> 00:20:12,080 execute mo ang code. 428 00:20:12,080 --> 00:20:15,380 Kaya sa tuktok para sa habang loop, samantalang ang gagawin habang 429 00:20:15,380 --> 00:20:16,560 sumusuri ito sa ibaba. 430 00:20:16,560 --> 00:20:21,370 >> At ito lamang ay nangangahulugan na ang habang loop ay karaniwang execute higit pang mga beses 431 00:20:21,370 --> 00:20:24,630 o mas kaunting mga beses kaysa sa isang loop habang? 432 00:20:24,630 --> 00:20:30,810 Potensyal na mas maraming beses, dahil ang isang gawin habang loop ay malinaw na sinasabi gawin ito, 433 00:20:30,810 --> 00:20:34,600 lamang matapos na ituro sa iyo suriin kung ang mga kondisyon sa loob ng 434 00:20:34,600 --> 00:20:35,980 panaklong ay totoo. 435 00:20:35,980 --> 00:20:37,940 >> Kaya naming makita ito muli marahil sa Pset 1. 436 00:20:37,940 --> 00:20:41,150 Kung sakaling nais upang gawin ang isang bagay sa hindi bababa sa isang beses at pagkatapos ay marahil ilang mga higit pa 437 00:20:41,150 --> 00:20:43,350 beses, ito ay isang magandang bumuo gamitin. 438 00:20:43,350 --> 00:20:46,970 Ngunit isang habang loop, sa pamamagitan ng kaibahan, ang kalooban suriin ang kalagayan nito muna. 439 00:20:46,970 --> 00:20:50,660 At na ito para sa mga loop C, huwag habang, habang, at para sa mga loop. 440 00:20:50,660 --> 00:20:54,700 At muli, i-map ang mga ito medyo mahusay pabalik sa simula, maliban sa isa na ito ay hindi 441 00:20:54,700 --> 00:20:57,350 medyo may parehong analog sa scratch. 442 00:20:57,350 --> 00:20:58,880 >> Well, tungkol sa kung paano, ngayon, variable? 443 00:20:58,880 --> 00:21:02,600 Kaya ito ay kung paano ko ipinahayag sa isang variable syntactically ang iba pang mga araw. 444 00:21:02,600 --> 00:21:06,440 Mayroon akong isang int, na aking na-claim ay isang integer. 445 00:21:06,440 --> 00:21:09,690 Ako pagkatapos ay nagkaroon ng isang variable na tinatawag na counter, at pagkatapos ng isang tuldok-kuwit. 446 00:21:09,690 --> 00:21:11,070 Kaya kung ano ito linya ng code ginagawa? 447 00:21:11,070 --> 00:21:14,540 Ito ay, medyo simple, deklarasyon isang variable - 448 00:21:14,540 --> 00:21:17,940 iyon ay, humihiling ang computer, akong bigyan memorya ng ilan, magbigay sa akin ang ilang mga piraso - sa 449 00:21:17,940 --> 00:21:19,450 kung saan ang maaari kong iimbak ano? 450 00:21:19,450 --> 00:21:20,300 Ang isang int. 451 00:21:20,300 --> 00:21:23,570 At ang semicolon ay nangangahulugan lamang dulo ng linya ng code. 452 00:21:23,570 --> 00:21:25,500 >> Ngayon, ang pangalawang linya ay marahil medyo guessable. 453 00:21:25,500 --> 00:21:29,710 Ano ang counter = 0; ginagawa? 454 00:21:29,710 --> 00:21:31,690 Ito ay magtatalaga sa 0 upang kontrahin. 455 00:21:31,690 --> 00:21:33,470 At kaya ito ay ang iba pang mga bagay na ang isang maliit na nakakainis na 456 00:21:33,470 --> 00:21:34,540 kumpara sa, sabihin nating, algebra. 457 00:21:34,540 --> 00:21:39,110 Sapagkat sa algebra, ang pantay na pag-sign nangangahulugan katumbas, dito sa C, ang katumbas 458 00:21:39,110 --> 00:21:40,470 Nangangahulugan sign pagtatalaga. 459 00:21:40,470 --> 00:21:45,380 Kaya ito ay nangangahulugan na ilagay kung ano ang sa kanan sa kung ano ang sa kaliwa. 460 00:21:45,380 --> 00:21:49,030 At kami makita ng isa pang simbolo, ay katumbas ng katumbas, kapag gusto naming subukan ang aktwal 461 00:21:49,030 --> 00:21:50,570 para sa kalidad, medyo annoyingly. 462 00:21:50,570 --> 00:21:52,590 >> Ngunit ito ay isang maliit na hindi mabisa. 463 00:21:52,590 --> 00:21:55,090 Ito ay uri ng nakakainis na mayroon akong idedeklara isang variable at 464 00:21:55,090 --> 00:21:56,110 pagkatapos ay bigyan ito ng isang halaga. 465 00:21:56,110 --> 00:21:59,380 Kaya C aktwal na nagbibigay-daan sa amin pasimplehin ito at lamang gawin ang lahat ng ito sabay-sabay. 466 00:21:59,380 --> 00:22:01,330 Maaari mong ipahayag ang variable sa kaliwa. 467 00:22:01,330 --> 00:22:04,590 Maaari mo pa ring gawin ang pagtatalaga sa karapatan sa pamamagitan ng paglalagay na katumbas ng pag-sign in 468 00:22:04,590 --> 00:22:05,030 sa gitna. 469 00:22:05,030 --> 00:22:08,740 Kaya sa katapusan ng araw, ang dalawang mga katumbas na, ngunit ang isang ito, lantaran, 470 00:22:08,740 --> 00:22:11,840 Marahil ang mas mahusay na ugali upang makakuha ng sa dahil lang sa ito ay isang maliit na mas kaunti 471 00:22:11,840 --> 00:22:15,040 code, ito ay isang maliit na mas madaling basahin, at ito lamang tightens up 472 00:22:15,040 --> 00:22:17,470 ang iyong code, kaya na magsalita. 473 00:22:17,470 --> 00:22:22,120 >> Ang anumang mga katanungan kaya malayo sa mga loop, sa mga variable, sa kondisyon, sa 474 00:22:22,120 --> 00:22:27,001 Booleans, alinman technically o conceptually? 475 00:22:27,001 --> 00:22:28,010 Ayos lang. 476 00:22:28,010 --> 00:22:30,690 Kaya ngayon ito sa tabi ng isa ay makakakuha ng isang kaunti pa kagiliw-giliw. 477 00:22:30,690 --> 00:22:34,790 At ito ay ang halimbawa ko bang ilagay up huling oras na lang ang mga mapa ng scratch halimbawa 478 00:22:34,790 --> 00:22:35,820 sa ibabaw sa C. 479 00:22:35,820 --> 00:22:36,580 >> Kaya isang function na. 480 00:22:36,580 --> 00:22:38,110 Sa mga tuntunin lego, na kung ano ang isang function? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Nakuha na maging mas agresibong sa iyong sagot. 483 00:22:44,350 --> 00:22:45,020 Ano ang pag-andar ng isang? 484 00:22:45,020 --> 00:22:46,320 >> MAG-AARAL: Sinusuportahan ba ng isang bagay. 485 00:22:46,320 --> 00:22:46,780 >> David MALAN: Ano iyon? 486 00:22:46,780 --> 00:22:48,000 >> MAG-AARAL: Sinusuportahan ba ng isang bagay. 487 00:22:48,000 --> 00:22:48,710 >> David MALAN: Sinusuportahan ba ng isang bagay. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Sisimulan naming doon. 490 00:22:49,590 --> 00:22:51,270 Kaya pag-andar ng nagagawa ng isang bagay. 491 00:22:51,270 --> 00:22:55,160 Kaya ito ay isang piraso ng code na mahalagang ipinatupad sa ibang lugar na 492 00:22:55,160 --> 00:22:56,620 sa katunayan ang isang bagay. 493 00:22:56,620 --> 00:23:00,180 Ngayon, kung ano ang kawili-wiling tungkol sa isang function ay na maaari itong tumagal ng input, 494 00:23:00,180 --> 00:23:02,710 at maaari itong makagawa ng output. 495 00:23:02,710 --> 00:23:05,090 At sabihin na aktwal na tumagal tumingin sa ito. 496 00:23:05,090 --> 00:23:09,030 >> Kaya ang mga tao sa likod ng tabing ay sinasadya ng ilang sandali ang nakalipas. 497 00:23:09,030 --> 00:23:10,320 Narito kami ay may isang table. 498 00:23:10,320 --> 00:23:13,010 Ngunit ipagpalagay na ito talaga ay kumakatawan sa isang malaking box. 499 00:23:13,010 --> 00:23:14,940 Kaya ito ay isang tinatawag na itim na kahon. 500 00:23:14,940 --> 00:23:19,800 At sa pangkalahatan, sa disenyo, sa computer agham, black boxes lamang sumangguni sa 501 00:23:19,800 --> 00:23:22,510 piraso ng pag-andar na ang isang tao ay ipinatupad, at hindi mo pag 502 00:23:22,510 --> 00:23:26,140 kinakailangang alam o pakialam kung paano ito ipinatupad sa ilalim ng hood. 503 00:23:26,140 --> 00:23:28,960 Ikaw lang pinapahalagahan na ito itim na kahon, kung saan ipapakita namin ngayon simulan pagtawag ng 504 00:23:28,960 --> 00:23:30,730 function, ang isang bagay. 505 00:23:30,730 --> 00:23:34,710 >> Kaya, halimbawa, kung ang itim na kahon sa ang stage dito ay kumakatawan printf, isang 506 00:23:34,710 --> 00:23:38,040 function, alam ko mula sa nakaraang mga halimbawa printf na tumatagal ng isa o higit pang mga 507 00:23:38,040 --> 00:23:40,910 argumento, at ang una sa mga argument ay dapat na isang string, tulad ng 508 00:23:40,910 --> 00:23:44,780 "Kumusta, mundo." Well, kung ako ang tao Sumulat sa programa, at nais ko 509 00:23:44,780 --> 00:23:50,460 gamitin ang printf, ko, halimbawa, maaari kumuha ng isang piraso ng papel na blangko dito at isang 510 00:23:50,460 --> 00:23:55,060 itim na marker at isulat ito sa - 511 00:23:55,060 --> 00:23:56,580 Ako tamang spelling "mundo" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Kaya Kukunin ko ang aking itim na marker at idedetalye ko magsulat, pati na malaki at maliwanag na magagawa ko sa 514 00:24:04,220 --> 00:24:07,260 ito na piraso ng papel, "kumusta, mundo," At ngayon inaangkin ko ang mga ito ay ang aking argumento. 515 00:24:07,260 --> 00:24:09,740 Ito ay isang string na kinakatawan sa isang piraso ng puting papel. 516 00:24:09,740 --> 00:24:13,030 At ang aking input ngayon upang ang function na printf ay magiging ito. 517 00:24:13,030 --> 00:24:18,250 Kaya ako ay pagtawag printf, pagpasa na argumento bilang input dito. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> At ngayon, hindi ko alam kung paano ang taong Nagsulat printf ginawa ito taon na ang nakaraan, ngunit 520 00:24:26,740 --> 00:24:31,110 Ko alam nito mula sa dokumentasyon na ang layunin nito sa buhay ay upang i-print kung ano ako 521 00:24:31,110 --> 00:24:34,410 ibigay ito sa input. 522 00:24:34,410 --> 00:24:40,630 At nang sa gayon, kahit na ang pagpapatupad na ito ay walang anumang kaalaman sa akin 523 00:24:40,630 --> 00:24:44,170 sa ilalim ng hood, ngayon Nakikita ko, oh, ito ay tapos na. 524 00:24:44,170 --> 00:24:45,740 Ito ay isang bagay na naka-print sa screen. 525 00:24:45,740 --> 00:24:49,070 At ngayon kontrolin ng programa, kung mayroong ay higit pang mga linya ng code, gusto 526 00:24:49,070 --> 00:24:51,070 na ngayon ang ibinalik sa akin. 527 00:24:51,070 --> 00:24:52,290 At sa gayon ang katotohanan na Colton - 528 00:24:52,290 --> 00:24:55,370 pagpalain kanyang puso, ay itinatago dito sa ilalim isang table sa harap ng lahat ng sa iyo - 529 00:24:55,370 --> 00:24:59,530 ay sinadya sa na hindi ko alam at Wala akong pakialam kung paano printf ay 530 00:24:59,530 --> 00:25:00,100 ipinatupad. 531 00:25:00,100 --> 00:25:03,390 Ko lang alam, muli, mula sa kanyang dokumentasyon, kung ano ang ginagawa nito at kung paano ko 532 00:25:03,390 --> 00:25:05,040 ako ay dapat na gamitin ito. 533 00:25:05,040 --> 00:25:09,140 >> Ngayon, isipin ang printf na maaaring makuha ang kaunti pa sopistikadong. 534 00:25:09,140 --> 00:25:12,220 Muli, lamang ang pinag-uusapan natin ang tungkol sa katumbas ng sabihin bloke ng scratch. 535 00:25:12,220 --> 00:25:14,230 Ngunit ko rin ginawa ito huling oras. 536 00:25:14,230 --> 00:25:17,270 Nais kong gumawa ng aking kumusta programa ng kaunti pa dynamic at hindi lamang mahirap 537 00:25:17,270 --> 00:25:19,740 code sa isang bagay tulad ng "mundo," at Talagang hindi na hard code isang bagay 538 00:25:19,740 --> 00:25:22,520 arbitrary tulad ng D-A-V-ko-D sa programa. 539 00:25:22,520 --> 00:25:27,510 Nais kong hilingin ang gumagamit para sa kanyang pangalan, at pagkatapos ay gawin ang isang bagay na may 540 00:25:27,510 --> 00:25:29,720 na string na ibinigay nila. 541 00:25:29,720 --> 00:25:32,690 >> Kaya mayroong isang bagay na medyo naiiba dito. printf, ng ilang sandali ang nakalipas, 542 00:25:32,690 --> 00:25:35,860 ay, sa katunayan, gawin ang isang bagay, ngunit ito ay hindi bumalik sa anumang bagay sa akin. 543 00:25:35,860 --> 00:25:36,020 I-right? 544 00:25:36,020 --> 00:25:38,910 Colton ay hindi ibigay sa akin ng kahit ano pabalik, hindi na piraso ng papel. 545 00:25:38,910 --> 00:25:40,320 Nagkaroon lamang ng isang side effect. 546 00:25:40,320 --> 00:25:44,510 Aking pagbibigay ng "kumusta, mundo" bilang isang argumento sa Colton nagresulta sa 547 00:25:44,510 --> 00:25:48,420 pangalawang epekto ng isang salita, ang ilang mga salita, lumilitaw sa screen. 548 00:25:48,420 --> 00:25:51,350 >> getstring, bagaman, ay isang maliit na naiiba. getstring ding 549 00:25:51,350 --> 00:25:54,590 gumana, ngunit ito ay nagbabalik ng ilang mga halaga. 550 00:25:54,590 --> 00:25:56,370 Hindi ito lamang magkaroon ng isang Aesthetic side effect. 551 00:25:56,370 --> 00:26:00,230 Ito ay talagang nagbibigay sa akin, ang tao pagtawag o paggamit ng function, 552 00:26:00,230 --> 00:26:01,320 isang bagay likod. 553 00:26:01,320 --> 00:26:05,740 Kaya sa kasong ito, ay getstring tinawag gamit ang getstring bukas 554 00:26:05,740 --> 00:26:07,510 paren, malapit paren. 555 00:26:07,510 --> 00:26:11,370 Ba getstring, samakatuwid, ay magkakaroon ng anumang argumento o input? 556 00:26:11,370 --> 00:26:12,340 Hindi, parang hindi. 557 00:26:12,340 --> 00:26:14,460 Ang layunin nito sa buhay ay lamang upang makakuha ng isang string. 558 00:26:14,460 --> 00:26:16,910 Kailangan itong walang karagdagang detalye kaysa sa na. 559 00:26:16,910 --> 00:26:20,430 Kaya ipaalam sa akin sige at magpanggap na, muli, ito itim na kahon ay hindi printf, 560 00:26:20,430 --> 00:26:25,160 ngunit getstring, at ipaalam sa akin, ang tao pagsulat sa programang ito, tumawag o gumamit ng 561 00:26:25,160 --> 00:26:29,720 getstring lamang sa pamamagitan ng pagsusulat G-E-T-S-T-R-I-N-G, open paren, malapit 562 00:26:29,720 --> 00:26:32,170 paren, getstring. 563 00:26:32,170 --> 00:26:36,920 >> Ngayon, mayroon akong mga ideya kung paano ang CS50 staff getstring ipinatupad, ngunit alam ko na 564 00:26:36,920 --> 00:26:41,240 kung naghihintay ako may sapat na katagalan, ito ay ginagawa nito bagay sa ilalim ng hood, siguro gamit 565 00:26:41,240 --> 00:26:44,940 ilang mga variable, marahil gamit ang ilang kondisyon, marahil gamit ang ilang mga loop, 566 00:26:44,940 --> 00:26:48,170 siguro gamit ang ilang mga pag-andar, siguro ay gumagamit ng - 567 00:26:48,170 --> 00:26:52,290 lamang sinusubukang i-stall - siguro paggamit ilang iba pang mga tampok ng programming. 568 00:26:52,290 --> 00:26:55,350 Ngunit kung naghihintay ako mahaba sapat - sa katotohanan, sa mga computer, ito ang mangyayari 569 00:26:55,350 --> 00:26:56,270 napakabilis na - 570 00:26:56,270 --> 00:26:59,910 kung naghihintay ako may sapat na katagalan, ito function na getstring ay pagpunta upang makakuha ng isang string 571 00:26:59,910 --> 00:27:04,060 mula sa gumagamit, kung sino ang pag-type siguro ito sa kanilang mga keyboard, at 572 00:27:04,060 --> 00:27:08,090 pagkatapos, kapag nag-getstring ay tapos na sa pagkuha ng mga character mula sa gumagamit 573 00:27:08,090 --> 00:27:14,080 at pag-iimbak ng mga ito sa isang string, na function, getstring, ay pagpunta sa may 574 00:27:14,080 --> 00:27:17,990 Handa na para sa akin ang ilang output na Ako pagpunta sa mabawi sa pamamagitan ng paraan ng 575 00:27:17,990 --> 00:27:19,470 pagtatalaga operator. 576 00:27:19,470 --> 00:27:25,390 >> At kung pumunta ako, sa katunayan, sa output dito, Obosi ay may maraming 577 00:27:25,390 --> 00:27:29,900 lumahok, nang walang pag-alam ito sa sumulong, sa pamamagitan ng pagsusulat ng kanyang pangalan sa ito 578 00:27:29,900 --> 00:27:33,100 variable, kung saan ay kumakatawan sa isang string. 579 00:27:33,100 --> 00:27:35,640 Ngayon, ang pagtatalaga ay nangangahulugan operator, kahit na bagaman ito ay maaaring pakiramdam ng kaunti 580 00:27:35,640 --> 00:27:38,790 kalabisan, ko talagang gawin kailangan upang gumawa ng aking sariling mga kopya ng mga ito. 581 00:27:38,790 --> 00:27:40,700 Dahil sa kaliwang kamay gilid - Oops! - 582 00:27:40,700 --> 00:27:45,760 napansin ko na mahalagang magkaroon ng string pangalanan sa kaliwang bahagi. 583 00:27:45,760 --> 00:27:48,280 Kaya din ako pupunta upang gawing ang aking sariling mga kopya ng mga ito. 584 00:27:48,280 --> 00:27:50,990 At ito ay isang bit ng isang maliit na kasinungalingan, dahil gagamitin namin makita sa isang linggo o dalawang ni 585 00:27:50,990 --> 00:27:54,100 oras na string ay hindi talaga ano lumilitaw ang mga ito upang maging. 586 00:27:54,100 --> 00:27:56,700 >> Ngunit sa ngayon, narito ang return value. 587 00:27:56,700 --> 00:28:00,160 Narito ang aking sariling kopya nito pagkatapos gamit ang pagtatalaga operator. 588 00:28:00,160 --> 00:28:01,790 At ngayon, kung ano ang gusto kong susunod na gagawin? 589 00:28:01,790 --> 00:28:04,080 Kami ngayon ay mayroon ng ikalawang ng dalawang linya ng code. 590 00:28:04,080 --> 00:28:05,640 Kaya ako ngayon ay nais na tumawag printf. 591 00:28:05,640 --> 00:28:08,500 Sabihin magpanggap na ngayon na ang mga itim kahon ay bumalik muli sa pagiging 592 00:28:08,500 --> 00:28:10,210 printf at hindi getstring. 593 00:28:10,210 --> 00:28:12,200 >> Printf oras na ito ay pagpunta sa gumawa ng kung gaano karaming mga argumento? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Kaya tingnan ito, tulad ng dalawa. 596 00:28:16,770 --> 00:28:18,860 Mayroong dalawang mga kuwit sa doon, ngunit isa sa mga kuwit, ito ay 597 00:28:18,860 --> 00:28:20,220 sa loob ng mga panipi. 598 00:28:20,220 --> 00:28:23,190 Kaya ang unang argumento ay literal pagpunta sa maging ito. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, kuwit, porsiyento s, backslash-n. 600 00:28:31,850 --> 00:28:36,560 At ngayon ako nagbibigay ng hindi isang argument, ngunit dalawang argumento sa printf. 601 00:28:36,560 --> 00:28:39,530 >> At kung ano ang dapat printf ang gagawin sa ang dalawang input pagkatapos makapasa ko ang mga ito sa 602 00:28:39,530 --> 00:28:42,050 bilang argumento? 603 00:28:42,050 --> 00:28:45,360 Ito ay dapat na lumabas sa second na ng sa kanila, na aking tinatawag na pangalan, kaya ang 604 00:28:45,360 --> 00:28:48,660 ikalawang piraso ng papel na sinulat ko out isang sandali ang nakalipas ay tinatawag na pangalan. 605 00:28:48,660 --> 00:28:53,550 Ito ay pagpunta sa plug ng mga halaga sa loob ng na variable sa placeholder, 606 00:28:53,550 --> 00:28:58,310 % S, kaya na, muli, sa sandali lamang ni panahon, kami ay makita ang isang side effect ng 607 00:28:58,310 --> 00:29:04,180 pagkakaroon ng tinatawag printf, kung saan kami ngayon hindi makita "kumusta, mundo," ngunit "kumusta, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Kaya isang malaking ikot ng papuri sa parehong ng aming mga boluntaryo, isa lamang sa kung kanino Alam 610 00:29:08,730 --> 00:29:12,010 ito ay nangyayari. 611 00:29:12,010 --> 00:29:12,990 Ayos lang. 612 00:29:12,990 --> 00:29:16,480 Kaya, marahil, simpleng bilang na noon ay, oo nga, kung ikaw ay isa nang pamilyar 613 00:29:16,480 --> 00:29:20,190 na may tulad na, sana hindi mo na kalooban kalimutan na ang partikular na visual ng kung paano 614 00:29:20,190 --> 00:29:21,220 gumana ang pag-andar. 615 00:29:21,220 --> 00:29:23,000 >> Kaya mayroong higit pa sa getstring. 616 00:29:23,000 --> 00:29:26,020 Sa Loob ng CS50 library, mayroong isang ang maramihang mga pag-andar, ang lahat ay 617 00:29:26,020 --> 00:29:29,510 ay sa malaking titik lamang upang gumawa ng malinaw na aming sinulat ang mga pag-andar. 618 00:29:29,510 --> 00:29:33,610 Karaniwan, sa C, halos bawat iba pang mga function na gagamitin mo ay lowercase. 619 00:29:33,610 --> 00:29:36,190 Ngunit namin sadyang gamitin malalaking titik lamang upang gumawa ng malinaw na ang mga ito 620 00:29:36,190 --> 00:29:39,880 mga pagsasanay gulong ng uri na bibigyan namin ng gamitin para lamang ng ilang linggo na 621 00:29:39,880 --> 00:29:42,890 pasimplehin ang proseso ng pagkuha ng input mula sa user. 622 00:29:42,890 --> 00:29:46,740 >> Ang CS50 library ay hindi gumawa ng kahit ano na hindi mo ma-inyong sarili gawin sa pamamagitan ng 623 00:29:46,740 --> 00:29:50,230 lamang gamit ang C code mula sa isang oldschool aklat-aralin. 624 00:29:50,230 --> 00:29:53,310 Ngunit, muli, ginagamit namin ang mga ito bilang pagsasanay gulong ng klase para lamang ng ilang 625 00:29:53,310 --> 00:29:57,250 linggo upang maaari naming mapupuksa ang mga kumplikado na makikita mo sa lalong madaling panahon maunawaan 626 00:29:57,250 --> 00:30:00,460 iyong sarili ng paggawa ng isang bagay bilang medyo tuwiran bilang pagkuha 627 00:30:00,460 --> 00:30:02,080 input mula sa isang user. 628 00:30:02,080 --> 00:30:05,540 >> Kaya alam na magkakaroon ka ng access sa GetChar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 dalawang beses. 630 00:30:06,050 --> 00:30:07,050 What's - at pagkatapos ay i-GetFloat. 631 00:30:07,050 --> 00:30:07,600 Ano ang isang Float? 632 00:30:07,600 --> 00:30:09,382 Magsimula tayo doon. 633 00:30:09,382 --> 00:30:10,600 >> MAG-AARAL: [hindi marinig]. 634 00:30:10,600 --> 00:30:10,790 >> David MALAN: Oo. 635 00:30:10,790 --> 00:30:12,120 Ito ay isang numero na may isang decimal point. 636 00:30:12,120 --> 00:30:15,930 Kaya habang ang isang int ay isang integer, na lamang ang numero sa 0 hanggang 9, 637 00:30:15,930 --> 00:30:18,940 ilang bilang ng mga repetitions hinggil doon, Float isang ay isang bagay 638 00:30:18,940 --> 00:30:20,100 may isang decimal point. 639 00:30:20,100 --> 00:30:26,090 At isang double, samantala, ay isa ring numero sa isang decimal point, ngunit higit pa 640 00:30:26,090 --> 00:30:28,160 numero pagkatapos ng decimal point, potensyal na. 641 00:30:28,160 --> 00:30:30,040 >> Kaya babalikan ka namin sa ito bago ang haba. 642 00:30:30,040 --> 00:30:34,560 Ngunit karaniwan, ang bawat isa sa mga uri ng data, bawat isa sa mga uri ng mga variable 643 00:30:34,560 --> 00:30:39,380 na ang isang library tulad ng atin makakabalik sa mo, gumamit ng ibang mga numero ng bits upang 644 00:30:39,380 --> 00:30:40,290 imbak ng impormasyon. 645 00:30:40,290 --> 00:30:43,910 Karaniwan, isang pansamantalang trabaho, na kung saan ay nangangahulugan lamang isang character, gumagamit ng 8 bits. 646 00:30:43,910 --> 00:30:47,490 At iyon ang aktwal na pare-pareho sa aming mga byte ng mga boluntaryo noong nakaraang linggo na 647 00:30:47,490 --> 00:30:50,410 dumating up at kinakatawan isa Ascii karakter sa isang pagkakataon. 648 00:30:50,410 --> 00:30:51,850 Kaya isang pansamantalang trabaho ay 8 bits. 649 00:30:51,850 --> 00:30:54,430 >> Float A Nagkataong 32 bits, karaniwang. 650 00:30:54,430 --> 00:30:59,230 At isang double, bilang maaari mong hulaan, ay talaga 64 bits, na kung saan ay higit pa lamang, 651 00:30:59,230 --> 00:31:01,360 na nangangahulugan na maaari kang magkaroon ng mas malaking numero o higit pa katumpakan. 652 00:31:01,360 --> 00:31:03,000 Ngunit muli, higit na sa isa pang oras. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, samantala, bagaman stupidly pinangalanan, ay talagang lamang ng isang 654 00:31:06,550 --> 00:31:10,770 integer na dalawang beses na malaki, dalawang beses bilang mahaba, potensyal na, bilang isang regular 655 00:31:10,770 --> 00:31:12,940 integer, 64 bit sa halip na 32. 656 00:31:12,940 --> 00:31:14,560 At GetString namin na ginagamit mo. 657 00:31:14,560 --> 00:31:18,870 >> Ngunit ito lumiliko out, sa CS50 library, na kung saan ay ipinatupad, dahil kakailanganin naming makita, sa 658 00:31:18,870 --> 00:31:23,560 ang form sa dalawang mga file, ang isa sa kung saan ay tinatawag na cs50.h, ay may dalawang iba pang mga 659 00:31:23,560 --> 00:31:24,770 mga uri ng data sa loob nito. 660 00:31:24,770 --> 00:31:29,700 Booleans hindi umiiral sa C. Maaari mo gayahin ang mga ito sa pamamagitan lamang ng paggamit ng 0s at 1s 661 00:31:29,700 --> 00:31:30,850 sa kabuuan ng iyong mga programa. 662 00:31:30,850 --> 00:31:35,500 Ngunit kami sa CS50 library nalikha ang mga simbolo ng "true" at "hindi totoo" 663 00:31:35,500 --> 00:31:38,580 upang kumatawan sa 1 at 0 kaya hindi mo pag mayroon sa hard code isang bagay 664 00:31:38,580 --> 00:31:39,810 Literal na tulad ng 1 at 0. 665 00:31:39,810 --> 00:31:40,980 Ngunit kailangan naming makita ang mga muli. 666 00:31:40,980 --> 00:31:42,330 >> String, masyado, ay hindi umiiral. 667 00:31:42,330 --> 00:31:44,520 At iyon ang dahilan kung bakit nabanggit ko ito isang bit ng isang maliit na kasinungalingan para sa ngayon. 668 00:31:44,520 --> 00:31:46,660 Ngunit bibigyan namin ng alisan ng balat pabalik na layer bago ang haba. 669 00:31:46,660 --> 00:31:49,540 Ngunit para sa ngayon, ang isang string ay isang pagkakasunud-sunod ng mga character. 670 00:31:49,540 --> 00:31:51,790 >> Samantala, sa C, ikaw talaga magkaroon ng iba't ibang mga uri ng data. 671 00:31:51,790 --> 00:31:53,200 Pansinin ang mga ito ay maliit. 672 00:31:53,200 --> 00:31:56,960 Kaya ang pag-andar na nakita mo ng ilang sandali ang nakalipas mga function na isinulat ng CS50 na 673 00:31:56,960 --> 00:32:02,310 ay magbabalik sa iyo ng isang halaga na babagsak sa isa sa mga kategoryang ito. 674 00:32:02,310 --> 00:32:06,730 >> Ilang mga sheet impostor lamang sa Plant ang binhi dito. printf ay hindi lamang 675 00:32:06,730 --> 00:32:08,600 tumagal% s bilang placeholder. 676 00:32:08,600 --> 00:32:13,490 Tatagal% d para sa decimal integer, % o nais i gumana pati na rin. 677 00:32:13,490 --> 00:32:19,450 F% ay lumulutang halaga punto. % C ay para sa isang pansamantalang trabaho, kung gusto mong i-plug lamang ng isa 678 00:32:19,450 --> 00:32:23,510 na character sa isang string preformatted tulad namin na-paggawa, maaari mong gamitin% c. 679 00:32:23,510 --> 00:32:28,490 >> At pagkatapos, medyo annoyingly,% lld ay para sa isang mahaba, mahaba decimal integer, 680 00:32:28,490 --> 00:32:31,050 na kung saan ay nangangahulugan lamang kung kailangan mo ng isang tunay malaking numero at gumagamit ka ng isang bagay 681 00:32:31,050 --> 00:32:35,450 tinatawag na isang mahabang haba, na makikita namin dumating pabalik sa sa isang pset, maaari mong gamitin% lld sa 682 00:32:35,450 --> 00:32:40,700 sabihin printf, plug sa isang talagang malaking integer dito sa pamamagitan ng paraan ng kanyang ikalawang o 683 00:32:40,700 --> 00:32:41,830 sa ilang ibang mga argumento. 684 00:32:41,830 --> 00:32:45,700 >> At bilang wakas, ipinangako ko na mayroong ilang mga iba pang escape 685 00:32:45,700 --> 00:32:47,670 mga pagkakasunud-sunod na printf sumusuporta sa. 686 00:32:47,670 --> 00:32:49,160 Nasaksihan namin backslash-n. 687 00:32:49,160 --> 00:32:50,510 Backslash-r maaari mong makita. 688 00:32:50,510 --> 00:32:51,780 Ito ay uri ng isang lumang-paaralan na bagay. 689 00:32:51,780 --> 00:32:55,920 Kung sakaling gumamit ka ng real taon makinilya ang nakalipas at nakuha mo sa pihitan 690 00:32:55,920 --> 00:32:59,810 kung saan hindi lamang Pinaikot ang wheel upang ilipat ang lineup, ito rin inilipat ang 691 00:32:59,810 --> 00:33:03,730 buong bagay sa lahat ng mga paraan pabalik sa paglipas ng sa sa kaliwa, mahusay, backslash-r lang 692 00:33:03,730 --> 00:33:06,480 mahalagang gumagalaw ang iyong cursor pabalik sa simula ng linya 693 00:33:06,480 --> 00:33:07,830 nang hindi gumagalaw ito pababa. 694 00:33:07,830 --> 00:33:09,780 Ngunit muli, higit sa na, marahil, sa hinaharap. 695 00:33:09,780 --> 00:33:13,670 >> Backslash-quote, backslash-double quote, backslash-backslash ay ang 696 00:33:13,670 --> 00:33:16,600 solusyon sa mga maliliit na maliit na bugtong Ako alluded upang mas maaga. 697 00:33:16,600 --> 00:33:18,920 At backslash-0 ay talagang medyo kawili-wiling. 698 00:33:18,920 --> 00:33:21,470 Ngunit kami ay bumalik sa na bago ang haba. 699 00:33:21,470 --> 00:33:25,640 >> Kaya hayaan mo akong pumunta sa, ngayon, ang CS50 appliance, at sabihin talagang gawin ang isang 700 00:33:25,640 --> 00:33:28,930 mabilis magpainit gamit ang isa sa mga halimbawa namin ginawa na at pagkatapos ay lumipat sa 701 00:33:28,930 --> 00:33:31,160 isang bagay ng kaunti pa sa kumplikado. 702 00:33:31,160 --> 00:33:34,980 Kaya kung buksan ko ang aking programa tinatawag gedit - 703 00:33:34,980 --> 00:33:36,840 ito ang aking graphical editor. 704 00:33:36,840 --> 00:33:38,460 At maaari kong gawin na - 705 00:33:38,460 --> 00:33:39,820 hayaan mo akong isara ang window na may - 706 00:33:39,820 --> 00:33:42,720 sa pamamagitan ng paraan ng icon na ito pababa dito, gedit, sa ibabang-kaliwa 707 00:33:42,720 --> 00:33:44,170 sulok sa tabi ng menu. 708 00:33:44,170 --> 00:33:48,670 >> Pupunta ako sa sige at isulong, at i-save ang halimbawang ito sa, sabihin nating, John 709 00:33:48,670 --> 00:33:49,660 Harvard na folder. 710 00:33:49,660 --> 00:33:52,690 John Harvard na folder lamang ang kanyang bahay direktoryo kung saan ang lahat ng kanyang mga file na mabuhay 711 00:33:52,690 --> 00:33:53,340 sa pamamagitan ng default. 712 00:33:53,340 --> 00:33:58,410 At ako pagpunta sa i-save ito bilang isang file na tinatawag na halo-0.c. 713 00:33:58,410 --> 00:34:01,260 At pinili ko ang pangalang ito lamang kaya ito mga linya up sa sample code sa 714 00:34:01,260 --> 00:34:04,210 Siyempre website at sa mga YouTube video online. 715 00:34:04,210 --> 00:34:06,320 >> Kaya ngayon ako pagpunta sa magsimula sa isulat ang aking unang programa. 716 00:34:06,320 --> 00:34:08,469 Hayaan akong mag-zoom in para sa kalinawan. 717 00:34:08,469 --> 00:34:12,760 At ako pagpunta sa sige at sabihin int pangunahing walang bisa, na kung saan ay tulad lamang na 718 00:34:12,760 --> 00:34:14,900 dilaw puzzle na piraso Nagsisimula ang isang programa. 719 00:34:14,900 --> 00:34:18,290 Ako nakuha sa mga ugali sa ibabaw ng taon ng pagbubukas ng aking kulot suhay, pagkatapos ay 720 00:34:18,290 --> 00:34:22,000 din ito isara at pagkatapos ng pagpunta pabalik sa kung saan Gusto kong ilagay ang aking code, lamang 721 00:34:22,000 --> 00:34:24,630 dahil ito ay tumutulong sa akin panatilihin ang lahat ng bagay balanced, lalo na bilang aking 722 00:34:24,630 --> 00:34:25,880 programa ay nakakakuha mahaba. 723 00:34:25,880 --> 00:34:29,239 >> At ngayon, sa dito, pupuntahan ko sige at sinasabi, printf, banggit magpanipi, 724 00:34:29,239 --> 00:34:34,330 kumusta mundo, backslash-n, malapit na quote, malapit panaklong, tuldok-kuwit. 725 00:34:34,330 --> 00:34:38,100 Kaya lang ako sa paulit-ulit na ang lahat ng bagay na namin Na-pagkuha para sa ipinagkaloob kaya malayo. 726 00:34:38,100 --> 00:34:39,270 Ngayon ako pagpunta sa mag-zoom out. 727 00:34:39,270 --> 00:34:43,030 >> At ito terminal na window down na dito, kung ano ako pinapayagang gawin ito sa itim 728 00:34:43,030 --> 00:34:44,389 at puting window? 729 00:34:44,389 --> 00:34:46,977 Ano ang maaari kong gamitin ito para sa? 730 00:34:46,977 --> 00:34:49,770 Kaya ito ay kung saan nagpatakbo ako ng mga utos at kung saan ang maaari kong ipunin ang mga bagay. 731 00:34:49,770 --> 00:34:50,620 At ako pagpunta sa panatilihin itong simple. 732 00:34:50,620 --> 00:34:52,780 Pupunta ako sa gumamit ng isang program Gumawa ng tinatawag na, na kung saan ay hindi 733 00:34:52,780 --> 00:34:54,020 technically isang tagatala. 734 00:34:54,020 --> 00:34:56,360 Tinatawag kalatungin Ang tagatala, subalit kami ay bumalik sa na sa isang 735 00:34:56,360 --> 00:34:57,190 o dalawang linggo ng oras. 736 00:34:57,190 --> 00:35:03,410 >> Para sa ngayon, tingin lang ako sa pagpunta sa i-type gumawa halo-0, Ngunit ang mga ng sa iyo kung sino ay 737 00:35:03,410 --> 00:35:07,050 naghahambing sa iyong isip kung ano ko lang nai-type sa kung ano ang dapat kong nai-type maaari 738 00:35:07,050 --> 00:35:10,180 alam na na ginawa ko sira dito. 739 00:35:10,180 --> 00:35:12,160 Ngayon, mayroong malinaw na ang ilang mga error. 740 00:35:12,160 --> 00:35:16,742 Bago ako kahit na tumingin sa kung ano ang mga ito, ang anumang mga saloobin bilang sa kung ano ang ginawa kong mali? 741 00:35:16,742 --> 00:35:18,590 >> ESTUDYANTE: [INTERPOSING boses]. 742 00:35:18,590 --> 00:35:18,840 >> David MALAN: Oo. 743 00:35:18,840 --> 00:35:20,640 Ako nawawala header na file ng library. 744 00:35:20,640 --> 00:35:24,240 Alinman sa mga ito. H file ay tinatawag na header mga file, at sila ay sama-sama 745 00:35:24,240 --> 00:35:25,680 nabibilang sa mga bagay na tinatawag na mga aklatan. 746 00:35:25,680 --> 00:35:28,030 Mga Aklatan lamang ang chunks ng code na ang ibang mga tao ay nagsulat. 747 00:35:28,030 --> 00:35:32,140 Kaya ang pamantayang [? i?] library ay isang koleksyon ng mga file na naglalaman ng code 748 00:35:32,140 --> 00:35:33,330 na ang ibang mga tao ay nagsulat. 749 00:35:33,330 --> 00:35:34,820 >> Kaya ako nawawala na. 750 00:35:34,820 --> 00:35:36,520 Kaya bakit ako nakakakuha ng isang error? 751 00:35:36,520 --> 00:35:40,840 Well, ipaalam sa akin mag-scroll back up sa ang aking mga terminal na window dito. 752 00:35:40,840 --> 00:35:44,310 At sa kasamaang-palad, sa C, bilang ng maraming programming wika, lalo na 753 00:35:44,310 --> 00:35:47,830 kung ang lahat ng ito ay bago sa iyo, ang mga error mensahe ay tumpak, ngunit ang mga ito ay din 754 00:35:47,830 --> 00:35:48,620 masyadong misteriyoso. 755 00:35:48,620 --> 00:35:51,720 At ang mga error dito, sa pula, ay "Nang kataon lamang deklarasyon library function na 756 00:35:51,720 --> 00:35:57,660 printf na may uri, "at pagkatapos ito scroll sa susunod na linya, "int const pansamantalang trabaho *, 757 00:35:57,660 --> 00:36:00,220 ... "Ito lamang ay nakakakuha talaga napakatinding mabilis. 758 00:36:00,220 --> 00:36:04,420 >> Ngunit ano ang dapat mong simulan ang gagawin, kung, muli, bago sa lahat ng ito, ay isa lamang sa 759 00:36:04,420 --> 00:36:06,010 simulan upang tumingin para sa mga keyword. 760 00:36:06,010 --> 00:36:08,770 Malinaw, maaaring hindi ko maintindihan kalahati sa mga salita akong nakikitang pa lamang. 761 00:36:08,770 --> 00:36:10,140 Kalooban mo, bagaman, sa panahon ng linggong ito. 762 00:36:10,140 --> 00:36:11,230 Ngunit nakikita ko printf. 763 00:36:11,230 --> 00:36:14,310 At iyon ay dapat na magsimula, bago mahaba, upang buhayin ang alaala ng iyong memorya, ang lahat ng karapatan, printf. 764 00:36:14,310 --> 00:36:15,210 Isang bagay ang mali sa printf. 765 00:36:15,210 --> 00:36:16,580 Ang ibig kong oras ng paggawa ito mali? 766 00:36:16,580 --> 00:36:18,130 Hindi, hindi ito hitsura - oh. 767 00:36:18,130 --> 00:36:21,350 Hindi ko gamitin ito maliban kung magturo ako ang tagatala na ito ay umiiral na. 768 00:36:21,350 --> 00:36:25,220 At kaya, muli, pumunta sa iyong instincts, kahit na hindi mo talaga maintindihan 769 00:36:25,220 --> 00:36:26,510 ang tunay na mensahe ng error. 770 00:36:26,510 --> 00:36:30,240 >> At sa katunayan, ang solusyon dito ay upang lamang isama ito sa tuktok ng file 771 00:36:30,240 --> 00:36:34,340 tulad na, resaving aking file na may Control-S o ang File menu. 772 00:36:34,340 --> 00:36:36,730 At kung ako ngayon bumalik pababa dito, Pupunta ako upang i-clear ito. 773 00:36:36,730 --> 00:36:39,150 Control-L lamang ang isang magaling na paraan upang i-clear ang screen. 774 00:36:39,150 --> 00:36:44,870 At pagkatapos ay ako pagpunta sa i-type ang "gumawa ng halo 0 "Enter, at ngayon ko pa rin makita ang isang 775 00:36:44,870 --> 00:36:47,710 misteriyoso pagkakasunud-sunod ng mga simbolo, ngunit kami ay bumalik sa na. 776 00:36:47,710 --> 00:36:49,230 Iyon ay kung ano Gawing ay ginagawa para sa iyo. 777 00:36:49,230 --> 00:36:52,590 Ito ay automating ang proseso ng pagkuha ng isang medyo nakakainis na utos na kinasasangkutan 778 00:36:52,590 --> 00:36:54,050 Kalatungin, ang aktwal na tagatala. 779 00:36:54,050 --> 00:36:57,460 Ngunit ang katunayan na ang nakuha ko walang mga error ay nangangahulugan bagay na ito ay dapat na gumana. 780 00:36:57,460 --> 00:37:00,630 >> Kaya ngayon ako pagpunta sa gawin - hayaan mo akong mag-zoom in muli - 781 00:37:00,630 --> 00:37:07,070 Ipasok ./hello-0, at sa katunayan, nakikita ko "Kumusta, mundo." Kaya natin ngayon paghusayin 782 00:37:07,070 --> 00:37:12,105 ito kailanman kaya bahagyang lamang sa magtiklop ang mga hakbang namin nilalayon. 783 00:37:12,105 --> 00:37:15,370 Pupunta ako sa palitan ang pangalan na ito sa I-save Bilang upang hello1.c. 784 00:37:15,370 --> 00:37:20,300 At ngayon ako pupunta na idedeklara ng isang variable tinatawag na pangalan, kaya string pangalan, 785 00:37:20,300 --> 00:37:23,420 at ako pagpunta sa ilagay ito sa ang halaga ng mga quote-magpanipi 786 00:37:23,420 --> 00:37:27,030 D-A-V-ko-D malapit-quote tuldok-kuwit. 787 00:37:27,030 --> 00:37:31,150 At ngayon pupuntahan ko na palitan ang "mundo" may ano placeholder para sa isang string? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> At ngayon, kung gaano karaming mga argumento dapat printf tumagal ng oras na ito? 790 00:37:35,040 --> 00:37:35,700 Kaya dalawa. 791 00:37:35,700 --> 00:37:37,090 Kaya pumunta ako sa labas ng quote. 792 00:37:37,090 --> 00:37:39,330 I-type ang "pangalan" pagkatapos ng isang kuwit. 793 00:37:39,330 --> 00:37:41,550 Pero gumawa ako ng isang bagay iba maling oras na ito. 794 00:37:41,550 --> 00:37:43,940 Ngunit sabihin ipinapalagay na ako ay hindi Napag-alaman na pa. 795 00:37:43,940 --> 00:37:44,910 Hayaan akong pumunta up dito. 796 00:37:44,910 --> 00:37:48,850 >> At notice, masyadong, nakakakuha ako ng isang maliit na nainis ng pag-type ng "gumawa ng halo 0" ang lahat ng mga 797 00:37:48,850 --> 00:37:50,180 oras, "gumawa" at ang lahat ng ito. 798 00:37:50,180 --> 00:37:53,270 Kaya, ito lumiliko out, sa Linus maaari mong madalas pindutin ang Up arrow sa iyong 799 00:37:53,270 --> 00:37:56,850 keyboard, at maaari mong talagang mag-scroll sa pamamagitan ng lahat ng mga utos na nag ako 800 00:37:56,850 --> 00:37:58,830 pinaandar nakaraang sa ngayon lang. 801 00:37:58,830 --> 00:38:02,040 Kaya kung gagawin ko na, Up, Up, mayroong gumawa kumusta 0. 802 00:38:02,040 --> 00:38:02,610 Hindi ko nais na. 803 00:38:02,610 --> 00:38:05,450 Katatapos ko lamang nais na baguhin iyon upang kumusta 1 oras na ito, ang Enter. 804 00:38:05,450 --> 00:38:07,620 Sa paglaon, na kalooban i-save ka ng ilang oras. 805 00:38:07,620 --> 00:38:08,150 >> Ayos lang. 806 00:38:08,150 --> 00:38:09,520 Sa kasamaang palad, mayroong ay isang error. 807 00:38:09,520 --> 00:38:10,980 Kaya hayaan mo akong mag-scroll pataas. 808 00:38:10,980 --> 00:38:13,120 Ito kamukha ko talaga lapa sa programang ito. 809 00:38:13,120 --> 00:38:16,530 Ibig kong sabihin, ang aking diyos, ito ay dalawang linya ng code, at ang 10 mga linya ng mga error. 810 00:38:16,530 --> 00:38:18,800 Ngunit tumingin sa tuktok ng isa muna. 811 00:38:18,800 --> 00:38:21,640 Gumamit ng hindi nagbigay-alam identifier string. 812 00:38:21,640 --> 00:38:23,270 Ang ibig sabihin ko standard n i? 813 00:38:23,270 --> 00:38:23,930 Walang ako ay hindi. 814 00:38:23,930 --> 00:38:24,940 Ako nilalayong string. 815 00:38:24,940 --> 00:38:29,390 >> Ngunit kung saan ay ang string variable uri ipinahayag, DD sabihin namin? 816 00:38:29,390 --> 00:38:30,730 Kaya sa CS50 ang library. 817 00:38:30,730 --> 00:38:33,740 Kaya ito ay hindi makasapat, sa mga unang dalawang linggo, para lang gamitin 818 00:38:33,740 --> 00:38:34,860 ano C ay nagbibigay sa amin. 819 00:38:34,860 --> 00:38:38,120 Din ako ng pagpunta sa pumunta up dito, at ako maaaring ilagay ito sa itaas o sa ibaba, ngunit idedetalye ko 820 00:38:38,120 --> 00:38:40,340 lamang panatilihin ito alpabetikong upang panatilihin ang mga bagay na nasa ayos. 821 00:38:40,340 --> 00:38:43,470 Pupunta ako upang isama cs50.h, na kung saan ay pre-install na para sa 822 00:38:43,470 --> 00:38:44,900 mo sa CS50 appliance. 823 00:38:44,900 --> 00:38:47,640 At ito ay open source, kaya kahit na mga tao sa internet ay gamitin ito sa kanilang 824 00:38:47,640 --> 00:38:48,450 sariling computer. 825 00:38:48,450 --> 00:38:50,700 Ngunit ito ay may mga CS50 appliance. 826 00:38:50,700 --> 00:38:55,320 >> Kaya ngayon hayaan mo akong bumalik at mag-recompile ito may gumawa halo 1. 827 00:38:55,320 --> 00:38:55,710 Diyablo. 828 00:38:55,710 --> 00:38:57,240 Pa rin ng isa pang error. 829 00:38:57,240 --> 00:38:59,370 Hayaan ang mga mag-scroll up ako sa unang, bagaman. 830 00:38:59,370 --> 00:39:00,630 Isa na ito ay isang maliit na mahirap unawain. 831 00:39:00,630 --> 00:39:03,830 Multi-character character na pare-pareho. 832 00:39:03,830 --> 00:39:04,890 Na hindi pagtulong sa akin. 833 00:39:04,890 --> 00:39:08,220 Ngunit paunawa, kalatungin ay hindi bababa sa isang maliit na bit disente, kung saan may isang maliit na 834 00:39:08,220 --> 00:39:11,890 berde kareta simbolo, ito ay sinasabi dito ay kung saan ako screwed up. 835 00:39:11,890 --> 00:39:16,160 Bakit ito na tumuturo, na may kaunti berdeng arrow, upang ang single quote sa tabi 836 00:39:16,160 --> 00:39:18,290 upang ang aking pangalan? 837 00:39:18,290 --> 00:39:20,880 >> Kaya ito ay isa sa mga bagay na ikaw lamang masanay, lalo na kung nakapunta 838 00:39:20,880 --> 00:39:23,980 mga programa sa Python, o JavaScript, o iba pang mga wika kung saan ito detalye 839 00:39:23,980 --> 00:39:24,560 ay hindi mahalaga. 840 00:39:24,560 --> 00:39:25,740 Sa C, ito ang bagay na ito. 841 00:39:25,740 --> 00:39:29,520 Kung ikaw ay deklarasyon ng isang string, na kung saan ay isang pagkakasunod-sunod ng 0 o higit pang mga character, 842 00:39:29,520 --> 00:39:32,280 ikaw talaga dapat gumamit double quotes. 843 00:39:32,280 --> 00:39:36,670 Kaya ko talagang kailangan upang baguhin ito pabalik para buksan ang quote, isara quote, may 844 00:39:36,670 --> 00:39:37,800 double quotes. 845 00:39:37,800 --> 00:39:41,610 Single quotes ang mayroon ang kanilang mga lugar, ngunit lamang kapag gumagamit ka ng mga indibidwal na 846 00:39:41,610 --> 00:39:44,100 char, ngunit higit pa sa na ibang oras. 847 00:39:44,100 --> 00:39:46,550 Para sa ngayon, ang double quote ang kinakailangan. 848 00:39:46,550 --> 00:39:50,460 >> Kaya ngayon, hayaan mo akong bumalik sa aking terminal window, gumawa ng halo 1. 849 00:39:50,460 --> 00:39:51,450 At sino ang may tiwala? 850 00:39:51,450 --> 00:39:53,800 Ay programa na ito ngayon ng pagpunta upang ipunin ang tama? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Kaya tatlo sa amin sa tingin ito. 854 00:39:59,780 --> 00:40:00,280 Ayos lang. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 At talagang ginawa. 857 00:40:02,440 --> 00:40:05,130 Kaya walang mga error sa oras na ito, kahit na kahit na programa na ito ay nakuha ng isang bit 858 00:40:05,130 --> 00:40:05,840 mas kumplikado. 859 00:40:05,840 --> 00:40:10,110 Kung ako ngayon gawin dot slash kumusta 1, Magpasok, ito ay pagpunta sa sabihin "kumusta, si David." 860 00:40:10,110 --> 00:40:11,750 >> Ngunit sabihin gawin ang ikatlong pag-ulit ng mga ito, kung saan ang 861 00:40:11,750 --> 00:40:13,380 programa ay tunay dynamic. 862 00:40:13,380 --> 00:40:16,770 Hayaan akong sige at baguhin ang file pangalan, para lamang sa pagsunod sa mga 863 00:40:16,770 --> 00:40:20,410 mga file magkakaroon ka ng magagamit sa iyo Pagkatapos online. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 At ngayon ako pagpunta sa pumunta sa at hindi imbak ng "David" hard code dito. 866 00:40:25,510 --> 00:40:28,826 Ano ang maaari kong gawin sa napaka-simple mapabuti ang program na ito? 867 00:40:28,826 --> 00:40:30,520 >> Kaya kong tumawag getstring. 868 00:40:30,520 --> 00:40:33,240 Maaaring maging isang maliit na di-halata kung ano ang tungkol sa nangyayari, kaya ako pupunta 869 00:40:33,240 --> 00:40:38,470 upang aktwal na magdagdag ng isa pang linya, printf, at sabihin ang pangalan, colon, malapit quote, lamang 870 00:40:38,470 --> 00:40:40,790 upang bigyan ang mga gumagamit ng prompt sa screen. 871 00:40:40,790 --> 00:40:42,980 At ngayon pupuntahan ko pumunta dito, at ako pagpunta sa gamitin ang aking mga shortcut sa keyboard. 872 00:40:42,980 --> 00:40:47,680 Pupunta ako sa pumunta Up, Up, at baguhin kumusta 1 upang kumusta 2, ang Enter. 873 00:40:47,680 --> 00:40:49,260 At thankfully, ako sa paggawa ng progreso. 874 00:40:49,260 --> 00:40:52,720 >> At ngayon ako pagpunta sa pumunta up sa dot slash kumusta at 875 00:40:52,720 --> 00:40:54,690 palitan na sa 2, ang Enter. 876 00:40:54,690 --> 00:40:55,650 At ngayon ang aking mga program - 877 00:40:55,650 --> 00:40:57,700 Magtatagal ako mag-zoom in - ay hindi nakakakuha medyo prettier. 878 00:40:57,700 --> 00:41:02,190 Pangalan ay magiging, sabihin nating Rob oras na ito, ang Enter, kumusta, Rob. 879 00:41:02,190 --> 00:41:03,260 Maaari naming gawin ito muli. 880 00:41:03,260 --> 00:41:05,360 Pangalan, Lauren, ang Enter. 881 00:41:05,360 --> 00:41:07,820 Pangalan, Joseph, ang Enter. 882 00:41:07,820 --> 00:41:11,596 Pangalan, sabihin subukan upang maging mahirap, ang Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Ito ay hindi talagang isang bug. 885 00:41:14,680 --> 00:41:16,090 Kaya ito ay lamang ng isang maliit na pangit. 886 00:41:16,090 --> 00:41:18,640 Kaya marahil maaari naming malutas ito sa hinaharap, hindi na ngayon. 887 00:41:18,640 --> 00:41:20,840 >> Ngunit paano gagawin mo nang katutubo pumunta tungkol sa pagtugon sa 888 00:41:20,840 --> 00:41:21,990 na partikular na hamon? 889 00:41:21,990 --> 00:41:23,710 Ito lang mukhang bobo. 890 00:41:23,710 --> 00:41:27,320 Paano ninyo iwasan ang mga bagay na Naghahanap bobo? 891 00:41:27,320 --> 00:41:29,890 Kaya maaari naming gawin, OK, Narinig ko ng isang pares ng mga bagay, isang kalagayan at isang loop. 892 00:41:29,890 --> 00:41:33,340 Maaaring gamitin namin, isa, isang kalagayan, upang suriin ano ay ang haba ng string 893 00:41:33,340 --> 00:41:34,190 ang gumagamit ay nagbigay sa amin? 894 00:41:34,190 --> 00:41:37,100 At kung ito ay 0, lamang ito sipiin magpanipi, lang nila pindutin ang Enter, pagkatapos ay 895 00:41:37,100 --> 00:41:38,930 siguro ang dapat kong sumigaw sa kanila at i-prompt ang mga ito muli. 896 00:41:38,930 --> 00:41:39,970 Ngunit paano isang prompt muli ang mga ito? 897 00:41:39,970 --> 00:41:44,230 Well, ako ay nakarinig loop, at maaari ko gawin na muli at muli at muli 898 00:41:44,230 --> 00:41:47,010 pagdikta sa gumagamit para sa mga parehong bagay. 899 00:41:47,010 --> 00:41:48,880 >> Well, sabihin gawin ang isa sa iba pang mga halimbawa paggamit ng ibang 900 00:41:48,880 --> 00:41:50,620 pagpapaandar sa CS50 library. 901 00:41:50,620 --> 00:41:52,330 Hayaan akong isara ang file na ito. 902 00:41:52,330 --> 00:41:53,510 Hayaan akong gumawa ng bago. 903 00:41:53,510 --> 00:41:58,510 At Tatawag ako adder.c ito, dahil lamang madaling gawin simpleng aritmetika, 904 00:41:58,510 --> 00:42:00,890 kahit na ito ay magiging ganap underwhelming sa kung ano ang maaari mong gawin 905 00:42:00,890 --> 00:42:02,250 sa anumang mga modernong computer. 906 00:42:02,250 --> 00:42:03,750 >> Ngunit ipaalam sa akin sige ngayon at - 907 00:42:03,750 --> 00:42:10,680 Natutunan ko ang aking mga aralin huling oras - isama cs50.h, ay kinabibilangan ng stdio.h, int 908 00:42:10,680 --> 00:42:14,170 pangunahing walang bisa, na, sa ngayon, bibigyan ko lang kumuha sa bulag na paniniwala, ngunit gagamitin namin ipinapalagay 909 00:42:14,170 --> 00:42:16,380 na maunawaan kung ano ang na nangangahulugan na bago ang haba. 910 00:42:16,380 --> 00:42:21,030 At ako pagpunta sa sabihin ng isang bagay tulad ng "bigyan ako ng int." 911 00:42:21,030 --> 00:42:22,140 >> At ngayon, paano ako makakakuha ng isang int? 912 00:42:22,140 --> 00:42:26,820 Gusto kong sa huli idedeklara isang variable tinatawag na x uri ng int at 913 00:42:26,820 --> 00:42:29,240 mag-imbak ito sa isang integer mula sa user. 914 00:42:29,240 --> 00:42:29,970 Kaya na ay isang katiting. 915 00:42:29,970 --> 00:42:35,680 Ngunit kung ang isang tao ay nais na imungkahi, paano ako magpahayag ng isang integer na tinatawag na x? 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Kaya ito ay tunay na simple. 918 00:42:37,430 --> 00:42:38,240 Bigyan mo ako ng isang int. 919 00:42:38,240 --> 00:42:39,070 Tumawag ito x. 920 00:42:39,070 --> 00:42:40,580 Ngayon gagamitin ko ang pagtatalaga operator. 921 00:42:40,580 --> 00:42:43,400 At paano ako mag-imbak mula sa iniwan ng isang halaga ng mga gumagamit? 922 00:42:43,400 --> 00:42:47,310 Hindi ko nais na tumawag getstring, malinaw naman, ngunit sa halip getint. 923 00:42:47,310 --> 00:42:49,060 Anumang mga argumento? 924 00:42:49,060 --> 00:42:49,350 Hindi. 925 00:42:49,350 --> 00:42:51,870 Kaya ito ay bukas paren, malapit paren agad, at pagkatapos a 926 00:42:51,870 --> 00:42:53,440 semicolon nagtatapos ang linya. 927 00:42:53,440 --> 00:42:54,930 >> Ngayon ipaalam sa akin gawin ito muli. 928 00:42:54,930 --> 00:42:57,070 Bigyan mo ako ng isa pang int. 929 00:42:57,070 --> 00:43:01,850 Oras na ito kailangan kong gawin int, sabihin tumawag ito y, katumbas getint. 930 00:43:01,850 --> 00:43:05,060 At ngayon hayaan gawin sa akin ng isang bagay na super-simple tulad ng ilang mga matematika. 931 00:43:05,060 --> 00:43:14,340 Kaya printf, ang kabuuan ng% d ay ang placeholder para sa isang int. 932 00:43:14,340 --> 00:43:20,030 At% d, panahon, backslash-n. 933 00:43:20,030 --> 00:43:20,360 >> Ayos lang. 934 00:43:20,360 --> 00:43:21,670 Kaya na hindi talaga math. 935 00:43:21,670 --> 00:43:25,500 Ngunit kung gusto kong sabihin ang kabuuan ng mga ito halaga plus ito ay katumbas ng halaga na ito 936 00:43:25,500 --> 00:43:29,320 iba pang mga halaga, kung gaano karaming mga argumento sa kabuuang dapat kong pagbibigay printf, 937 00:43:29,320 --> 00:43:30,520 sa huli? 938 00:43:30,520 --> 00:43:31,420 Kaya apat, tama? 939 00:43:31,420 --> 00:43:33,790 Ang string na ito at pagkatapos ay ang tatlong mga halaga. 940 00:43:33,790 --> 00:43:37,560 Kaya x ay ang unang Gusto kong maging naka-plug in muna sa% d. 941 00:43:37,560 --> 00:43:39,270 y ay magiging ang susunod. 942 00:43:39,270 --> 00:43:42,030 >> At ngayon ko uri ng nais na sabihin z, ngunit z ay hindi umiiral. 943 00:43:42,030 --> 00:43:43,190 Ngunit hindi iyon isang malaking deal. 944 00:43:43,190 --> 00:43:45,440 Dahil kung ano ang gusto mong gawin nang katutubo, lalo na kung ikaw ay nagkaroon ng isang 945 00:43:45,440 --> 00:43:47,820 graphing calculator, ano ang gagawin mo type? 946 00:43:47,820 --> 00:43:48,760 Paano ang tungkol sa x plus y? 947 00:43:48,760 --> 00:43:50,200 Kaya ito ay hindi isang aktwal na variable. 948 00:43:50,200 --> 00:43:51,820 Ito ay lamang ang kabuuan ng dalawang iba pang mga variable. 949 00:43:51,820 --> 00:43:53,170 At iyon ang perpektong lehitimo. 950 00:43:53,170 --> 00:43:56,630 C tiyak na nauunawaan ng simple pang-aritmetika tulad nito. 951 00:43:56,630 --> 00:43:58,450 >> Tuldok-kuwit, i-save. 952 00:43:58,450 --> 00:44:02,080 Ngayon hayaan mo akong pumunta down na dito at type gawing ahas, ang Enter. 953 00:44:02,080 --> 00:44:04,100 Walang mga error, sa gayon ay ang pag-unlad masyadong. 954 00:44:04,100 --> 00:44:04,890 I-type ang nagsasama. 955 00:44:04,890 --> 00:44:07,100 At isa pang shortcut sa keyboard, kung nagsimula ka upang nababato 956 00:44:07,100 --> 00:44:08,760 sa lahat ng mga utos - 957 00:44:08,760 --> 00:44:12,650 kung sinimulan mo ang pag-type ng isang command, tulad ng tuldok iwa ad, at na kung saan ang iyong 958 00:44:12,650 --> 00:44:16,020 inip kicks in, maaari mong pindutin ang karaniwang Tab na magkaroon ng computer ng tapusin ang 959 00:44:16,020 --> 00:44:20,510 magpahinga ng mga parirala para sa iyo kung ito ay hindi hindi maliwanag kung ano ang dapat dumating pagkatapos ng ad. 960 00:44:20,510 --> 00:44:23,950 >> Kaya ipaalam sa akin sige ngayon at i-click mo ang Enter. 961 00:44:23,950 --> 00:44:27,490 Bigyan ako ng isang int, 1, 2, at thankfully, ito ay 3. 962 00:44:27,490 --> 00:44:29,900 Ngunit gaya ng lagi, programa sa pagsusulit hindi dapat bawasan sa 963 00:44:29,900 --> 00:44:30,820 Sinusubukan lamang ito nang isang beses. 964 00:44:30,820 --> 00:44:35,560 Hayaan akong subukan ang isang sulok kaso, tulad ng mga negatibong 1, akong bigyan 1, at na ang isa 965 00:44:35,560 --> 00:44:36,210 sumusuri out pati na rin. 966 00:44:36,210 --> 00:44:38,870 At ako marahil ay gusto mo upang gumawa ng ilang higit pa mahigpit na pagsubok, ngunit ako ay medyo 967 00:44:38,870 --> 00:44:40,630 komportable sa kung saan na sa. 968 00:44:40,630 --> 00:44:43,110 >> Well, ngayon sabihin sumubok ng isa pang programa oras na ito ay gumagamit ng isang 969 00:44:43,110 --> 00:44:44,620 bit ng iba pang mga syntax. 970 00:44:44,620 --> 00:44:46,100 Hayaan akong lumikha ng isang bagong file. 971 00:44:46,100 --> 00:44:51,050 Tatawag ako ito conditions0.c sa linya up gamit ang ilan sa mga online sample code. 972 00:44:51,050 --> 00:44:55,550 At ipaalam sa akin sige at gawin isama cs50.h, isama 973 00:44:55,550 --> 00:45:00,320 stdio.h, sa main walang bisa - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Nagkaroon kami pumunta. 976 00:45:01,850 --> 00:45:03,010 Mayroon kaming aming karaniwang boilerplate. 977 00:45:03,010 --> 00:45:08,170 >> At oras na ito ako pagpunta sa sabihin printf, "Gusto ko ng isang int, mangyaring," lamang upang 978 00:45:08,170 --> 00:45:10,030 gumawa ng prompt ng kaunti mas friendly. 979 00:45:10,030 --> 00:45:11,620 At ngayon nais ko upang makakuha ng int mula sa user. 980 00:45:11,620 --> 00:45:15,010 Pupunta ako sa call na ito n oras na ito, lamang dahil n tunog tulad ng numero. 981 00:45:15,010 --> 00:45:18,140 getint, at ngayon, kung ano ang ginagawa Gusto kong gawin sa mga ito? 982 00:45:18,140 --> 00:45:21,640 Well, kung n ay - at kukunin ko na mag-zoom in - 983 00:45:21,640 --> 00:45:25,930 kung n ay mas malaki kaysa sa 0, nais ko upang gawin ang mga sumusunod - 984 00:45:25,930 --> 00:45:36,060 printf "Pinili mo ang isang positibong numero." Iba Pa, pupuntahan ko type printf "Ikaw 985 00:45:36,060 --> 00:45:37,870 kinuha ng isang negatibong 986 00:45:37,870 --> 00:45:39,650 numero. "Lahat ng karapatan. 987 00:45:39,650 --> 00:45:44,410 Kaya sa programang ito, kahit na ginawa ko ito mabilis, mukhang tama syntactically. 988 00:45:44,410 --> 00:45:45,010 Hayaan akong subukan ito. 989 00:45:45,010 --> 00:45:46,890 Gawing kundisyon 0. 990 00:45:46,890 --> 00:45:47,710 Mukhang tumakbo. 991 00:45:47,710 --> 00:45:49,230 Kundisyon 0, ipasok. 992 00:45:49,230 --> 00:45:51,910 Sabihin bigyan ito ng isang int na 50. 993 00:45:51,910 --> 00:45:53,160 Ako kinuha ng isang positibong numero. 994 00:45:53,160 --> 00:45:54,230 Tayo'y subukan ito muli. 995 00:45:54,230 --> 00:45:54,930 0 kondisyon. 996 00:45:54,930 --> 00:45:56,260 Negatibong 50. 997 00:45:56,260 --> 00:45:57,290 Ako kinuha ng isang negatibong numero. 998 00:45:57,290 --> 00:46:00,350 >> Ngunit ngayon, hayaan mo akong pumili kung ano ang itinatago namin pagtawag sa isang sulok kaso, na kung saan ay higit pa 999 00:46:00,350 --> 00:46:04,702 isang kawili-wiling case na sa tingin mo maaaring magbigay sa iyo ng ilang mga problema, 0. 1000 00:46:04,702 --> 00:46:07,940 Ngayon, ako ay medyo sigurado na ito ay isa sa mga mga sulok mga kaso kung saan ay zero 1001 00:46:07,940 --> 00:46:12,330 alinma'y hindi positibo o negatibong, kaya ang aking programa, bagaman sa syntactically 1002 00:46:12,330 --> 00:46:15,440 itama - ito compiles, ito ay nagpapatakbo - ay hindi tamang lohikal. 1003 00:46:15,440 --> 00:46:21,050 Kaya kung ano ang mga simpleng pag-aayos dito kung gusto ko upang matagpuan, kapag gusto kong mahawakan ang n 1004 00:46:21,050 --> 00:46:23,840 ay katumbas ng 0 magkahiwalay? 1005 00:46:23,840 --> 00:46:32,980 >> Kaya kung n ay katumbas ng 0, pagkatapos ay gusto kong sabihin isang bagay tulad ng printf "Pinili mo ang 0." 1006 00:46:32,980 --> 00:46:33,990 Hayaan akong subukan ito ngayon. 1007 00:46:33,990 --> 00:46:38,320 Hayaan akong bumalik dito, i-clear aking window, at mag-recompile. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Isang error makabuo. 1010 00:46:39,770 --> 00:46:41,630 Subalit ko nais na tingnan mo kung n ay katumbas ng 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Kaya muli, isa pang bobo bagay upang masanay, katumbas ng pag-sign ay 1013 00:46:47,720 --> 00:46:48,910 ang pagtatalaga operator. 1014 00:46:48,910 --> 00:46:52,240 Kaya ito ay talagang mali sa na, technically, kahit ang tagatala 1015 00:46:52,240 --> 00:46:56,450 protektado sa akin mula sa aking sarili, kami ay technically ay pagkopya 0 sa n, na 1016 00:46:56,450 --> 00:46:57,590 ay hindi kung ano ang gusto ko. 1017 00:46:57,590 --> 00:47:00,950 Gusto kong subukan para sa pagkakapantay-pantay may katumbas ay katumbas. 1018 00:47:00,950 --> 00:47:03,390 At kaya na ngayon ay maaaring maging ang aking mga mas mahusay na solusyon. 1019 00:47:03,390 --> 00:47:07,810 >> Hayaan akong talaga resave ito bilang, sabihin nating, conditions1, upang maging bago at pinahusay na. 1020 00:47:07,810 --> 00:47:10,480 Kaya ngayon kung mag-recompile ko ito, Gusto ito gumawa ng mga kondisyon - 1021 00:47:10,480 --> 00:47:16,960 Oops - gumawa conditions1 dot slash conditions1, Magpasok, "Gusto ko ng isang int, 1022 00:47:16,960 --> 00:47:18,760 pakiusap. "Pupunta ako upang pumunta Magpatuloy at i-type 50. 1023 00:47:18,760 --> 00:47:19,660 Ito ay mabuti pa rin. 1024 00:47:19,660 --> 00:47:21,200 Negatibong 50, mabuti pa rin. 1025 00:47:21,200 --> 00:47:24,920 0, at, sa katunayan, nakita na ako kinuha 0. 1026 00:47:24,920 --> 00:47:28,200 >> Kaya ano pa ang maaari kong gawin ngayon na may ito? 1027 00:47:28,200 --> 00:47:32,280 Well, maaari naming gawin ay tiyak na nagiging kumplikadong mga bagay. 1028 00:47:32,280 --> 00:47:37,240 Ngunit kung ano ang nais kong imungkahi ay kami na magtatapos sa talang ito dito. 1029 00:47:37,240 --> 00:47:41,680 Kung namin hilahin pataas ito, makakakita ka ng, siguro, isang paboritong karikatura ng sa iyo 1030 00:47:41,680 --> 00:47:43,326 hanggang ngayon maaari mo hindi pa maintindihan. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 At iyon ang tungkol sa kalidad ng tawa Dapat kang makakuha ng may CS biro. 1033 00:47:49,520 --> 00:47:51,060 Kaya na ay tungkol sa kanan. 1034 00:47:51,060 --> 00:47:54,900 >> Ngunit higit pa compellingly, naisip ko na gusto ko bigyan kami ng isang maliit na teaser para sa Lunes. 1035 00:47:54,900 --> 00:47:56,430 Kaya namin nasimulan ang paggamit ng integer. 1036 00:47:56,430 --> 00:47:57,510 Na namin ang tinutukoy sa kamay. 1037 00:47:57,510 --> 00:48:00,120 Kahit na namin ang tinutukoy Doubles, kung saan, muli, bigyan ka ng mga numero 1038 00:48:00,120 --> 00:48:01,390 pagkatapos ng decimal point. 1039 00:48:01,390 --> 00:48:04,230 >> Ngunit ito lumiliko out na sa kamay at Doubles, at, talaga, mga computer, 1040 00:48:04,230 --> 00:48:08,470 sa panimula, hindi maaaring ipahayag sa ilang mga halaga tumpak. 1041 00:48:08,470 --> 00:48:12,840 Alam namin mula sa mga klase sa math na maaari mong magkaroon ng anumang bilang ng mga numero pagkatapos ng 1042 00:48:12,840 --> 00:48:13,510 decimal point. 1043 00:48:13,510 --> 00:48:16,460 At maaari ka ring maglagay ng isang patayong bar sasabihin ng mga pumunta sa magpakailanman. 1044 00:48:16,460 --> 00:48:18,810 >> Sa kasamaang palad, hindi mo talaga makakaya gawin iyon sa isang computer. 1045 00:48:18,810 --> 00:48:20,400 At gayon sulok kaso pumailanglang. 1046 00:48:20,400 --> 00:48:23,120 Halimbawa, ipagpalagay na ikaw ay paggawa ng isang bagay sa pananalapi. 1047 00:48:23,120 --> 00:48:25,700 Ikaw ay gumagawa ng matematika may mga porsyento, at 1048 00:48:25,700 --> 00:48:27,030 may dolyar at sentimo. 1049 00:48:27,030 --> 00:48:29,230 At ang mga cents gawin hindi kinakailangang linya up. 1050 00:48:29,230 --> 00:48:34,120 Well, ito lumiliko out na fractions ng pennies maaari simulan upang magdagdag ng hanggang kailan 1051 00:48:34,120 --> 00:48:37,250 imo-modelo sa isang computer na sistema sa paraan na matalino 1052 00:48:37,250 --> 00:48:39,100 kawani na tao ay maaaring samantalahin. 1053 00:48:39,100 --> 00:48:42,650 >> At iyon ng sa iyo na hindi nakita, Gusto ko i upang bigyan ka ng isang 30-segundong teaser ng 1054 00:48:42,650 --> 00:48:48,290 isang kahanga-hangang pelikula na kilala bilang Office Space, na kung saan ay pintura ng isang larawan ng isang 1055 00:48:48,290 --> 00:48:51,205 problema tayo pagharap sa isang bagay unang bagay na sa Lunes. 1056 00:48:51,205 --> 00:48:53,960 Kung maaari naming taasan ang lakas ng tunog Medyo, bigyan mo ako 30 1057 00:48:53,960 --> 00:48:55,495 segundo ng Office Space. 1058 00:48:55,495 --> 00:48:55,770 >> [Video playback] 1059 00:48:55,770 --> 00:48:59,000 >> -Ko ibig sabihin, sa iyo, hindi mo pa nai-nagpapakita up at makakuha ng mong panatilihin ang iyong trabaho. 1060 00:48:59,000 --> 00:49:00,620 >> -Talaga, ako na pino-promote. 1061 00:49:00,620 --> 00:49:03,240 >> -Ako maaaring programa ng virus na gusto punitin na lugar off malaking oras. 1062 00:49:03,240 --> 00:49:04,430 >> -Well, kung paano ito gumagana? 1063 00:49:04,430 --> 00:49:06,782 >> -Sa bawat oras na may isang bank transaksyon kung saan ang interes ay nakalkula, at doon 1064 00:49:06,782 --> 00:49:10,160 libu-libong sa isang araw, ang computer ay nagtatapos up sa mga fractions ng isang sentimo. 1065 00:49:10,160 --> 00:49:12,030 >> -Ngunit hindi ako pagpunta sa gumawa ng kahit ano ilegal. 1066 00:49:12,030 --> 00:49:12,660 >> Ilegal na-? 1067 00:49:12,660 --> 00:49:15,075 Samir, ito ay America. 1068 00:49:15,075 --> 00:49:16,570 >> -Mayroon kaming upang isumpa sa Diyos. 1069 00:49:16,570 --> 00:49:19,070 >> -Kung walang saysay na tao alam tungkol sa ito pero sa amin, ang lahat ng karapatan? 1070 00:49:19,070 --> 00:49:21,920 Walang mga miyembro ng pamilya, walang girlfriends, walang saysay na tao. 1071 00:49:21,920 --> 00:49:22,700 >> -Siyempre. 1072 00:49:22,700 --> 00:49:23,320 >> -Sumang-ayon. 1073 00:49:23,320 --> 00:49:24,280 >> Don't-alala, tao. 1074 00:49:24,280 --> 00:49:25,640 Hindi ko sasabihin sa kahit sino alinman. 1075 00:49:25,640 --> 00:49:26,504 >> [END-playback ng video] 1076 00:49:26,504 --> 00:49:30,030 >> David MALAN: Kaya ito, pagkatapos, ay CS50, na noon ay Office Space, at kalooban ang lahat ng ito 1077 00:49:30,030 --> 00:49:31,465 magkaroon ng kahulugan sa Lunes. 1078 00:49:31,465 --> 00:49:33,940 Tingnan mo pagkatapos. 1079 00:49:33,940 --> 00:49:37,880 >> Tagapagsalaysay: Sa susunod na CS50, Rob nag-aayos sa pagiging off ang 1080 00:49:37,880 --> 00:49:39,130 Harvard meal plan. 1081 00:49:39,130 --> 00:49:56,160