1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] David MALAN: Ito ang CS50, at ito ay ang simula ng Linggo 1. 2 00:00:12,200 --> 00:00:15,520 Ano ang naisip naming gawin ngayon ay tingnan bumalik sa 3 00:00:15,520 --> 00:00:18,290 isang bagay na marami sa inyo malamang lumakad nakalipas para sa ilang 4 00:00:18,290 --> 00:00:20,570 oras ngayon at maaaring maging pamilyar ang ilang sandali. 5 00:00:20,570 --> 00:00:23,720 Ito bagay dito, ito ng kurso ay sa - 6 00:00:23,720 --> 00:00:24,155 Madla: Science. 7 00:00:24,155 --> 00:00:26,030 David MALAN: Science center. 8 00:00:26,030 --> 00:00:28,940 Kaya ito ay talagang isa sa pinakamaagang computer 9 00:00:28,940 --> 00:00:30,220 -back mula sa 1940s. 10 00:00:30,220 --> 00:00:33,790 Ito ay isa ng unang Electromechanical computer 11 00:00:33,790 --> 00:00:35,730 na may kakayahang lalo na mahaba, 12 00:00:35,730 --> 00:00:38,450 self-napapanatiling computations, at kung ano ang aming tunay na makita sa 13 00:00:38,450 --> 00:00:41,580 ang sentro ng agham ay lamang ng isang maliit na bahagi ng bagay na ito. 14 00:00:41,580 --> 00:00:44,170 Ano ang naisip naming gawin pagkatapos ay tumingin pabalik sa isang video 15 00:00:44,170 --> 00:00:46,670 na ginawa ng ilang oras ang nakalipas, nagpapakilala ito 16 00:00:46,670 --> 00:00:47,520 bagay sa mundo. 17 00:00:47,520 --> 00:00:50,200 At makikita mo mula sa musika at boses na sa katunayan mga 18 00:00:50,200 --> 00:00:52,070 napakasaya beses. 19 00:00:54,885 --> 00:00:59,700 >> [Playback ng video] 20 00:00:59,700 --> 00:01:02,490 Isang pagtatagumpay ng matematika at mechanical kasanayan ito 21 00:01:02,490 --> 00:01:06,340 mahusay na bagong awtomatikong calculator sa Harvard University. 22 00:01:06,340 --> 00:01:08,620 Buhol-buhol na mga problema sa matematika, ilagay sa pamamagitan ng 23 00:01:08,620 --> 00:01:12,420 machine sa code form sa tape, ay tumpak malulutas sa isang 24 00:01:12,420 --> 00:01:15,200 minutong bahagi ng oras na kinakailangan para sa tao 25 00:01:15,200 --> 00:01:16,450 pagkalkula. 26 00:01:27,050 --> 00:01:30,600 Dinisenyo upang mapabilis ang lahat ng mga paraan ng matematika at siyentipikong 27 00:01:30,600 --> 00:01:34,610 pananaliksik, ang higanteng mechanical utak ay gumagana para sa Estados 28 00:01:34,610 --> 00:01:36,570 Unidos Navy hanggang sa pagtatapos sa digmaan. 29 00:01:50,280 --> 00:01:52,980 >> David MALAN: Kaya kung ano ang hindi mo maaaring malaman na ito ay nasa 30 00:01:52,980 --> 00:01:56,310 ito parehong aparato na ang isang term namin ang lahat na ngayong kumuha ng medyo magkano 31 00:01:56,310 --> 00:01:59,300 para likha ay nabigyan ng, na ng isang bug. 32 00:01:59,300 --> 00:02:01,140 Kaya isa ng mga inhinyero na nagtatrabaho sa computer na ito 33 00:02:01,140 --> 00:02:05,280 literal na natagpuan ng isang maliit na mariposa sa machine na nagresulta 34 00:02:05,280 --> 00:02:07,580 sa ilang mga hindi tamang kalkulasyon. 35 00:02:07,580 --> 00:02:10,410 At bilang napupunta ang kuwento mariposa na tape sa log na ito 36 00:02:10,410 --> 00:02:14,180 journal dito, bumalik mula Setyembre 9 sa 1940-isang bagay, 37 00:02:14,180 --> 00:02:16,550 at sa gayon ay ipinanganak para sa mundo ng term na "bug". 38 00:02:16,550 --> 00:02:19,880 Kaya simula ngayon namin isaalang-alang ang mga bug sa anumang uri ng pagkakamali sa 39 00:02:19,880 --> 00:02:23,290 programa, kung ginawa ng tao o, sa kasong ito, insekto. 40 00:02:23,290 --> 00:02:25,030 >> Kaya ng ilang mga anunsyo, bilang namin magpatuloy. 41 00:02:25,030 --> 00:02:29,160 Kaya CS50 ay may tradisyon ng nag-aalok ng tanghalian ng mga uri sa 42 00:02:29,160 --> 00:02:31,600 pinaka-Biyernes sa panahon ng semestre, kung saan nagsasagawa kami ng 30 hanggang 43 00:02:31,600 --> 00:02:34,650 40 mga mag-aaral sa Sunog at Yelo sa Square para sa casual 44 00:02:34,650 --> 00:02:36,390 chitchat, makipag-usap tungkol sa computer science, 45 00:02:36,390 --> 00:02:37,420 makipag-usap tungkol sa hinaharap. 46 00:02:37,420 --> 00:02:40,000 Namin mag-imbita ng mga alumni at mga kaibigan mula sa industriya upang makipag-chat up 47 00:02:40,000 --> 00:02:40,690 mag-aaral pati na rin. 48 00:02:40,690 --> 00:02:44,020 Talagang patungo sa isang pagtatapos ng paggawa ng kung ano ang isang medyo malaking klase 49 00:02:44,020 --> 00:02:46,740 ang lahat ng mga mas kilalang-kilala, hindi bababa sa isang beses sa habang para sa 50 00:02:46,740 --> 00:02:47,710 subset ng mga mag-aaral. 51 00:02:47,710 --> 00:02:50,940 Kaya kung nais mong upang sumali sa amin ito Biyernes, 1:15 PM, pumunta sa 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch sa RSVP. 53 00:02:53,340 --> 00:02:55,840 At gagawin namin ito recurringly, kaya huwag mag-alala kung hindi ka 54 00:02:55,840 --> 00:02:57,930 kabilang sa mga unang 30 o kaya sa linggong ito. 55 00:02:57,930 --> 00:02:59,070 >> Kaya tagasulat tala. 56 00:02:59,070 --> 00:03:01,500 Isang salita sa ang mga mapagkukunan na ngayon simulan ang pagiging magagamit 57 00:03:01,500 --> 00:03:03,040 sa mga mag-aaral sa klase. 58 00:03:03,040 --> 00:03:05,540 Gayon na ang iyong ulo ay kailangang hindi sa panahon ng aralin 59 00:03:05,540 --> 00:03:08,560 scribbling down na ang lahat ng sinasabi ko at iba pa, ano ang ginagawa namin 60 00:03:08,560 --> 00:03:10,765 sa halip ay magbigay mula sa kawani ng pagtuturo ng 61 00:03:10,765 --> 00:03:11,920 canonical na hanay ng mga tala. 62 00:03:11,920 --> 00:03:14,850 Kaya kami ay may isa ng aming mga Fellows ng pagtuturo, Andrew Sellergren, 63 00:03:14,850 --> 00:03:17,830 na makikita bawat linggo, sumusuri sa video, at pagkatapos ay 64 00:03:17,830 --> 00:03:19,730 nagsusulat pababa kung ano ang sa tingin namin ay isang patas 65 00:03:19,730 --> 00:03:21,840 makapangyarihan na hanay ng mga tala. 66 00:03:21,840 --> 00:03:24,180 At Andrew sa hibang na hibang din, ng paglalagay ng snarky footnote sa 67 00:03:24,180 --> 00:03:24,820 ibaba. 68 00:03:24,820 --> 00:03:27,300 Kaya mo sana mga bisita mga ito bilang isang reference libro para sa 69 00:03:27,300 --> 00:03:30,230 masaya, at din, dumating pagsusulit oras, pati na ang isang pagkakataon upang suriin ang 70 00:03:30,230 --> 00:03:31,830 kung ano ang nangyari sa mga indibidwal na mga aralin. 71 00:03:31,830 --> 00:03:33,580 Kaya mga naka-link sa pahina ng aralin. 72 00:03:33,580 --> 00:03:35,300 >> Problema set 0, samantala, ay ang. 73 00:03:35,300 --> 00:03:37,470 At sa mga tuntunin ng mga mapagkukunan na magagamit sa iyo - 74 00:03:37,470 --> 00:03:38,020 ang walkthrough. 75 00:03:38,020 --> 00:03:39,730 Milo humantong ang una sa Biyernes. 76 00:03:39,730 --> 00:03:41,470 Ito ay kumuha, ilagay ang online ng Sabado. 77 00:03:41,470 --> 00:03:44,030 At kaya Napagtanto, kung hindi ka talagang sigurado kung saan magsisimula, 78 00:03:44,030 --> 00:03:47,280 para sa o hinaharap p-set, laging i-una sa 79 00:03:47,280 --> 00:03:49,300 walkthrough o ang video hinggil doon. 80 00:03:49,300 --> 00:03:52,950 Sectioning ay nasa progreso, sa cs50.net/section ay kung saan mo 81 00:03:52,950 --> 00:03:54,540 dapat isumite ang iyong mga kagustuhan, kung hindi mo pa 82 00:03:54,540 --> 00:03:55,880 na, sa pamamagitan ng ngayon. 83 00:03:55,880 --> 00:03:58,140 Dahil ang mga seksyon ay magsisimula na ito darating na Linggo, Lunes, 84 00:03:58,140 --> 00:03:58,760 at Martes. 85 00:03:58,760 --> 00:04:02,470 Gawin namin ang mga seksyon ng tatlong araw na iyon, bawat linggo ng 86 00:04:02,470 --> 00:04:03,870 semestre para sa pinaka-bahagi. 87 00:04:03,870 --> 00:04:06,600 At din namin ipakilala, muli, iba't-ibang mga track. 88 00:04:06,600 --> 00:04:08,270 Kaya tatanungin ka sa form na ito sectioning, kung 89 00:04:08,270 --> 00:04:10,350 hindi nakikita ang mga ito na, kung ikaw ay kabilang sa mga mas 90 00:04:10,350 --> 00:04:12,800 kumportable, mas kumportable, o isang lugar sa pagitan. 91 00:04:12,800 --> 00:04:14,960 At kung ikaw ay uri ng sa bakod, sa pangkalahatan sa isang lugar sa 92 00:04:14,960 --> 00:04:18,160 sa pagitan ng ang karamihan sa mga mag-aaral magtapos check. 93 00:04:18,160 --> 00:04:19,579 Office oras magsimula ngayong gabi. 94 00:04:19,579 --> 00:04:23,020 >> Kaya sa simula ay medyo mababa key, kahit na medyo natural 95 00:04:23,020 --> 00:04:25,300 upang tumakbo sa iba't ibang mga bug, o hindi tiyak sa kung paano sa 96 00:04:25,300 --> 00:04:26,550 ipatupad ang isang bagay. 97 00:04:26,550 --> 00:04:28,880 Kaya Napagtanto na magsisimula kami sa oras ng opisina sa linggong ito. 98 00:04:28,880 --> 00:04:30,500 Makikita nila sa Annenberg Lunes, Martes, Miyerkules, 99 00:04:30,500 --> 00:04:34,300 Huwebes, 20:00-11:00 sa panahon ng utak pahinga. 100 00:04:34,300 --> 00:04:38,160 Upper classmen ay maaaring makakuha ng sa, at kung sakaling magkaroon ng problema sa pagkuha ng 101 00:04:38,160 --> 00:04:40,720 sa pinto, dahil sila ay swiping, lamang na makipag-usap sa iyong paraan 102 00:04:40,720 --> 00:04:42,560 in at ipinapaliwanag ikaw ay may CS50. 103 00:04:42,560 --> 00:04:45,230 Karaniwan 20-30 sa atin sa kawani ay doon upang makatulong sa 104 00:04:45,230 --> 00:04:46,190 mo ang isa sa isa. 105 00:04:46,190 --> 00:04:48,980 >> Sa pagdating ideya na ito: makikita mo dalhin ang iyong laptop, 106 00:04:48,980 --> 00:04:51,300 makikita mo ang iyong charger, makikita namin may karagdagang kapangyarihan tanikala, 107 00:04:51,300 --> 00:04:53,320 lalo sa kahabaan ng timog pader ng Annenberg kung saan 108 00:04:53,320 --> 00:04:55,080 may maraming mga elektrikong saksakan. 109 00:04:55,080 --> 00:04:59,290 At ang pangunahing punto ng entry sa mga oras ng opisina Q & A ay pumunta sa 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss at mag-post ng 111 00:05:01,690 --> 00:05:02,580 iyong katanungan doon. 112 00:05:02,580 --> 00:05:05,600 At sa label ito may pset 0 o pset 1, anumang linggo 113 00:05:05,600 --> 00:05:06,810 maaaring mangyari upang maging. 114 00:05:06,810 --> 00:05:09,240 At pagkatapos ay kung ano ang gagawin namin ay magkaroon ng isang talaan ng mga Fellows ng pagtuturo 115 00:05:09,240 --> 00:05:12,040 at kurso assistants, pangkalahatang 8 o 10 o kaya sa atin, 116 00:05:12,040 --> 00:05:14,430 pagpunta sa pamamagitan, nang pinapanatili ang isang maalaga mata sa board, at 117 00:05:14,430 --> 00:05:16,810 plucking off ang mga tanong talaga bilang mabilis hangga't makakaya namin, 118 00:05:16,810 --> 00:05:19,600 nagre-refer ka sa mga kaugnay na mga post kung hindi mo pa nahanap mga 119 00:05:19,600 --> 00:05:22,220 inyong sarili, online na mga sanggunian, ayon sa naaangkop. 120 00:05:22,220 --> 00:05:24,280 At pagkatapos ay kung may mga problema, bilang may hindi maaaring hindi 121 00:05:24,280 --> 00:05:27,190 ay, o ito ay ginagawang higit pang kahulugan sa umupo isa sa isa, 122 00:05:27,190 --> 00:05:28,660 gumana sa pamamagitan ng mga problema sa isang tao. 123 00:05:28,660 --> 00:05:30,810 >> O mo lamang darating sa oras ng opisina ay talagang 124 00:05:30,810 --> 00:05:31,640 nangangailangan ng na mindset. 125 00:05:31,640 --> 00:05:33,400 Hindi mo nais na pumunta sa pamamagitan ng electronic form, 126 00:05:33,400 --> 00:05:34,410 talagang gusto upang matugunan sa isang tao. 127 00:05:34,410 --> 00:05:37,240 Makipag-usap na sa amin, at kung ano ang mangyayari ay kapag ang iyong 128 00:05:37,240 --> 00:05:40,620 tanong ay nakikita ng isang miyembro ng kawani, at kami 129 00:05:40,620 --> 00:05:43,660 matukoy, yup, ito ay dapat despatsado sa isa ng 20 o 130 00:05:43,660 --> 00:05:47,800 30 miyembro ng koponan dito sa lokal, makikita mo sa tuktok pakaliwa ito 131 00:05:47,800 --> 00:05:51,590 kaunti Ipasok ang pindutan ng Queue nagsisimula flashing sa cs50.net / 132 00:05:51,590 --> 00:05:52,165 talakayin. 133 00:05:52,165 --> 00:05:55,260 At ito ay nagsasabi sa iyo mo na ngayon ay inanyayahan, nang sa gayon 134 00:05:55,260 --> 00:05:56,880 magsalita, ipasok ang queue. 135 00:05:56,880 --> 00:05:59,090 At sa pamamagitan ng pag-click na pindutan, ang iyong pangalan ay lilitaw sa 136 00:05:59,090 --> 00:06:02,660 isang iPad na ang CS50 greeter, isa sa ulo ang kurso, 137 00:06:02,660 --> 00:06:05,250 may hawak na malapit ang pasukan ng Annenberg, na ay 138 00:06:05,250 --> 00:06:08,630 makita ang bilang itinatanghal dito, ang mga mag-aaral na may mga katanungan sa 139 00:06:08,630 --> 00:06:11,630 sa kaliwa, ang mga miyembro ng kawani na sa kanan. 140 00:06:11,630 --> 00:06:14,830 At may isang pag-click ng kaliwa at kanang, ang iyong web browser ay 141 00:06:14,830 --> 00:06:18,610 simulan ang flashing sa lalong madaling panahon, halimbawa, Propesor McGonnagal 142 00:06:18,610 --> 00:06:21,460 ay handa upang makita ka sa isang partikular na talahanayan sa Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Kaya ginawa namin ang ilan sa mga nakaraang taon na ito. 144 00:06:23,340 --> 00:06:25,430 Rebooted namin ang oras ng opisina at 145 00:06:25,430 --> 00:06:26,980 muling ipinatupad ng karamihan ng software. 146 00:06:26,980 --> 00:06:29,940 Kaya nauunawaan natin na ito ay magpainit sa linggong ito. 147 00:06:29,940 --> 00:06:32,970 Kundi pati na rin Napagtanto masyadong, sa mga taon na nakalipas, tulad ng maaaring narinig mo 148 00:06:32,970 --> 00:06:35,710 mula sa mga kaibigan, mga oras ng opisina ay may katunayan 50 sa 149 00:06:35,710 --> 00:06:37,040 150 mga mag-aaral nang sabay-sabay. 150 00:06:37,040 --> 00:06:39,300 At ito ay simpleng hindi posible para sa amin upang mahawakan na 151 00:06:39,300 --> 00:06:42,060 epektibo, isa sa isa, sa buong gabi. 152 00:06:42,060 --> 00:06:44,570 At kaya kung ano ang talagang kami ay pagpunta upang subukang gawin ito taon ay 153 00:06:44,570 --> 00:06:46,590 mapakinabangan ang katotohanan na ng maraming ng mga tanong 154 00:06:46,590 --> 00:06:49,050 madalas na itinatanong at maaaring madalas ay mas mahusay na nasagot 155 00:06:49,050 --> 00:06:50,030 asynchronously. 156 00:06:50,030 --> 00:06:52,140 Kaya maaari mong pag-uri-uriin ng tingin sa pamamagitan ng pagtugon sa mga tauhan ng, 157 00:06:52,140 --> 00:06:54,360 at maaari naming isipin sa pamamagitan ng iyong code, nang walang heated 158 00:06:54,360 --> 00:06:57,050 presyon ng kinakailangang struggling 159 00:06:57,050 --> 00:06:58,210 sa pamamagitan nito magkatabi. 160 00:06:58,210 --> 00:07:00,980 Kaya tinatantya namin na halos isang third o kalahati ng mga tanong 161 00:07:00,980 --> 00:07:03,500 ay despatsado sa tao, at susubukan naming kumalbit off bilang 162 00:07:03,500 --> 00:07:05,530 marami bilang isang kalahati o mas electronic, 163 00:07:05,530 --> 00:07:06,710 sa panahon ng mga opisina oras. 164 00:07:06,710 --> 00:07:08,070 At kami na patuloy na gamitin ang Talakayin 165 00:07:08,070 --> 00:07:09,990 sa buong linggo pati na rin. 166 00:07:09,990 --> 00:07:12,680 >> At bilang wakas, mapagtanto na ang kursong ito ay dadalhin pumasa / mabibigo. 167 00:07:12,680 --> 00:07:16,230 Kaya kung ikaw ay sa bakod o isiping ikaw talaga 168 00:07:16,230 --> 00:07:18,650 hindi sigurado kung ito ay ang mundo para sa iyo, o talaga ito 169 00:07:18,650 --> 00:07:21,310 medyo banyaga sa iyo, nauunawaan natin na ito ay isang kahanga-hangang paraan 170 00:07:21,310 --> 00:07:24,840 ng pagkakaroon ng ilang kumpiyansa sa hakbang sa 171 00:07:24,840 --> 00:07:26,780 klase, tulad ng ginawa ko lantaran, taon na ang nakakaraan. 172 00:07:26,780 --> 00:07:28,630 At pagkatapos ay limang linggo upang pag-uri-uriin ng figure out para sa 173 00:07:28,630 --> 00:07:30,850 ang iyong sarili kung nais mong manatili pumasa / mabibigo, lumipat sa isang sulat 174 00:07:30,850 --> 00:07:31,800 grado, o tulad ng. 175 00:07:31,800 --> 00:07:34,050 At karaniwang kung ano ang pumasa / mabibigo ay, tingin ko, para sa mga mag-aaral ay 176 00:07:34,050 --> 00:07:36,700 , kung inilagay mo sa na 10 oras, 20 oras, anumang ito 177 00:07:36,700 --> 00:07:38,830 ay maaaring sa ilang mga problema, at ka banging iyong ulo 178 00:07:38,830 --> 00:07:39,690 laban sa pader, 179 00:07:39,690 --> 00:07:41,750 at mo ba talagang lamang ay hindi maaaring Chase isang bagay, at 180 00:07:41,750 --> 00:07:44,230 may maraming iba pang mga bagay na kailangan mong gawin, totoo lang, kung ano ako 181 00:07:44,230 --> 00:07:46,070 tingin pumasa / mabibigo ay, ito ay tumatagal ng sa gilid ng 182 00:07:46,070 --> 00:07:47,250 sitwasyon tulad na. 183 00:07:47,250 --> 00:07:49,350 Kung saan mo kinuha ang bagay sa 90% ng paraan. 184 00:07:49,350 --> 00:07:50,830 Alam mo, ito ay hindi pa perpekto. 185 00:07:50,830 --> 00:07:52,950 Subalit ba kayong ng maraming nito, gayunman. 186 00:07:52,950 --> 00:07:55,440 Kaya isaalang-alang ang pumasa sa / mabibigo bilang nagbibigay sa iyo na 187 00:07:55,440 --> 00:07:57,590 kaisipan modelo, marahil. 188 00:07:57,590 --> 00:08:00,680 >> Lahat ng karapatan, kaya huling linggo na namin kalapati sa simula, at hindi na namin 189 00:08:00,680 --> 00:08:03,610 uusapang tungkol sa mga programa sa isang medyo mataas na graphical antas. 190 00:08:03,610 --> 00:08:05,340 At ngayon namin ang paglipat sa isang wika 191 00:08:05,340 --> 00:08:08,300 na tinatawag na C, ang isang mas mababang antas ng programming language sa itaas ng 192 00:08:08,300 --> 00:08:11,260 kung saan maraming modernong wika ay binuo ngayon, kabilang ang ilang mga 193 00:08:11,260 --> 00:08:13,010 ng mga gagamitin namin ginagamit patungo sa pagtatapos ng termino. 194 00:08:13,010 --> 00:08:15,530 At syntactically, kung ano ang tumingin sila tulad ng 195 00:08:15,530 --> 00:08:17,330 lahat ng medyo katulad. 196 00:08:17,330 --> 00:08:19,080 Kaya sabihin magsimula sa transition na ito dito. 197 00:08:19,080 --> 00:08:21,730 Kaya ito ng programa noong nakaraang linggo na ang pinakasimpleng ng 198 00:08:21,730 --> 00:08:22,910 kumusta mundo programa. 199 00:08:22,910 --> 00:08:25,560 Naka-print na ito lamang sa mundo screen kumusta, na may 200 00:08:25,560 --> 00:08:27,650 maliit na speech bubble darating ng pusa. 201 00:08:27,650 --> 00:08:30,590 Well, kung tayo magsimula ngayon upang i-translate ito sa isa pang 202 00:08:30,590 --> 00:08:33,419 wika, Napagtanto na ang mga ideya na ngayon at sa Miyerkules 203 00:08:33,419 --> 00:08:36,450 ay magkapareho, ngunit syntax magsimula na baguhin. 204 00:08:36,450 --> 00:08:39,370 Kaya kung saan noong nakaraang linggo nagkaroon kami, kapag ang berdeng bandila click, sabihin 205 00:08:39,370 --> 00:08:40,340 kumusta mundo. 206 00:08:40,340 --> 00:08:43,870 Ngayon kami ay pagpunta sa int, pangunahing, walang bisa, printf, 207 00:08:43,870 --> 00:08:46,350 return, may ilang iba pang mga syntax sa doon pati na rin. 208 00:08:46,350 --> 00:08:49,200 Kulot tirante, at panaklong, at quote, at watnat. 209 00:08:49,200 --> 00:08:54,520 Ngunit mapagtanto na ang core ng ideya dito ay ang pag-print, 210 00:08:54,520 --> 00:08:58,470 at sa huli ang katotohanan na ang pangunahing ay ngayon pagpunta sa 211 00:08:58,470 --> 00:09:00,770 magkasingkahulugan na may sa simula ng isang programa. 212 00:09:00,770 --> 00:09:04,250 Pangunahing na kung saan ang berdeng bandila kicks bagay off. 213 00:09:04,250 --> 00:09:06,390 >> Kaya ngayon sabihin manunudyo bukod ang ilan ng ang mga bloke ng gusali dito 214 00:09:06,390 --> 00:09:08,650 bago namin sumisid sa ilang mga kongkreto halimbawa. 215 00:09:08,650 --> 00:09:11,620 Kaya tinatawag namin ang isang pahayag noong nakaraang linggo, kung saan lang 216 00:09:11,620 --> 00:09:12,470 ng pagtuturo. 217 00:09:12,470 --> 00:09:15,660 Gawin ito - sa kasong ito, kamustahin mundo. 218 00:09:15,660 --> 00:09:18,400 Na rin sa C, kung tiningnan namin sa na linya lamang, ito ay kung paano kami 219 00:09:18,400 --> 00:09:20,920 pagpunta upang simulan ang pagpapahayag na partikular na piraso ng puzzle: 220 00:09:20,920 --> 00:09:24,780 printf ("Hello World");. 221 00:09:24,780 --> 00:09:27,330 At ngayon namin manunudyo mga bukod higit pa at higit pa sa paglipas ng panahon, 222 00:09:27,330 --> 00:09:29,330 ngunit mapagtanto na ang isang pattern dito. 223 00:09:29,330 --> 00:09:31,870 Kaya isa, mayroon kaming ito bagay na tinatawag na printf, na 224 00:09:31,870 --> 00:09:34,310 mahalagang kahalintulad sa salita Sabihing. 225 00:09:34,310 --> 00:09:35,800 Iyon ay kung ano ang pagpunta sa gawin. 226 00:09:35,800 --> 00:09:37,870 Printf, at f dito ay nangangahulugang "format". 227 00:09:37,870 --> 00:09:39,270 Kaya lang ang ibig sabihin nito ay maaari mong ipasok 228 00:09:39,270 --> 00:09:41,600 iba't ibang Aesthetic detalye. 229 00:09:41,600 --> 00:09:43,770 Kaya quote magpanipi ang simula ng kung ano ang kami ay pagpunta 230 00:09:43,770 --> 00:09:45,340 upang simulan ang pagtawag ng isang string. 231 00:09:45,340 --> 00:09:47,110 Ang isang salita, parirala, pangungusap. 232 00:09:47,110 --> 00:09:50,220 Isang string sa isang wika ng programming ay isang pagkakasunod-sunod ng mga zero 233 00:09:50,220 --> 00:09:51,330 o higit pang character. 234 00:09:51,330 --> 00:09:54,390 Kaya h-e-l-l-o, kuwit, at iba pa ay, 235 00:09:54,390 --> 00:09:56,290 quote magpanipi, isang string. 236 00:09:56,290 --> 00:09:58,710 At ngayon backslash n, isang maliit na syntactically kakaiba, ngunit hindi namin 237 00:09:58,710 --> 00:10:01,780 natukoy na huling linggo bilang ibig sabihin kung ano? 238 00:10:01,780 --> 00:10:02,630 Ito ay isang bagong linya. 239 00:10:02,630 --> 00:10:05,000 Ito lamang ang paraan ng conveying sa computer na gusto mo na ang 240 00:10:05,000 --> 00:10:07,700 katumbas ng pagpindot sa Ipasok doon, ngunit hindi mo gusto 241 00:10:07,700 --> 00:10:10,460 gusto sa aktwal na pindutin ang Enter at samakatuwid Nagkamali ang lahat ng mga 242 00:10:10,460 --> 00:10:12,130 -format ng iyong aktwal na programa. 243 00:10:12,130 --> 00:10:15,500 Ngayon ang mga panaklong ay ilakip ang string na ito, bukas paren at 244 00:10:15,500 --> 00:10:18,130 malapit paren, at sa loob ng na ang aming mga string. 245 00:10:18,130 --> 00:10:22,600 Dahil na dahil sa C, at iba pang mga programming 246 00:10:22,600 --> 00:10:27,510 wika, ang mga bagay na gusto printf tumagal argumento, o 247 00:10:27,510 --> 00:10:28,420 parameter. 248 00:10:28,420 --> 00:10:31,490 >> Kaya simulan ang iniisip ngayon ng ito lilang sabihin bloke bilang isang 249 00:10:31,490 --> 00:10:34,890 function, bilang paraan, bilang isang pamamaraan. 250 00:10:34,890 --> 00:10:36,890 Maaari mo ba talagang tumawag ito anumang nais mo sa ngayon, ngunit 251 00:10:36,890 --> 00:10:39,260 ito ay uri ng isang pinaliit na programa na ginagawa lamang ng isa 252 00:10:39,260 --> 00:10:41,480 bagay, sa isang linya, walang mas. 253 00:10:41,480 --> 00:10:43,620 Kaya printf ay din kung ano ang namin ang pagpunta upang simulan ang pagtawag ng 254 00:10:43,620 --> 00:10:46,680 function, at mga function na gawin ang isang bagay - sa kasong ito 255 00:10:46,680 --> 00:10:49,320 mga Kopya ng format na string sa screen - 256 00:10:49,320 --> 00:10:53,220 ngunit function ring kumuha ng mga argumento o mga parameter. 257 00:10:53,220 --> 00:10:55,880 At sa pamamagitan ng mga argumento o mga parameter, salamat, ibig sabihin namin 258 00:10:55,880 --> 00:11:01,220 na ang kanilang pag-uugali ay maaaring naiimpluwensyahan ng kung ano ang pumasa ka sa 259 00:11:01,220 --> 00:11:03,420 sa loob ng panaklong. 260 00:11:03,420 --> 00:11:06,460 Kaya sa kasong ito, printf pangangailangan nasabihan kung ano ang i-print, at kami 261 00:11:06,460 --> 00:11:09,520 lamang pumasa sa, sa double quote dito, ang string na namin 262 00:11:09,520 --> 00:11:11,270 aktwal na gustong i-print. 263 00:11:11,270 --> 00:11:14,060 At ang semicolon sa pinakadulo ng line na ito ay lamang ng isang 264 00:11:14,060 --> 00:11:18,020 makasaysayang istorbo kung saan sa dulo ng karamihan ng mga linya ng code, 265 00:11:18,020 --> 00:11:21,170 kang maglagay ng semicolon sa sobrang malinaw sa computer 266 00:11:21,170 --> 00:11:23,020 na ang linya ng code na nagtatapos dito. 267 00:11:23,020 --> 00:11:25,600 Ngayon ito ay mabuti dahil bilang namin makita ang bilang programa makakuha ng mas maraming 268 00:11:25,600 --> 00:11:29,030 complex, semicolon ay sobrang malinaw sa amin mga tao, 269 00:11:29,030 --> 00:11:32,280 at din ang computer, kung saan ang mga linya ng code ng pagsisimula at pagtatapos. 270 00:11:32,280 --> 00:11:34,360 Mapagtanto na ang ilang mga wika ay hindi magkakaroon ng ilang 271 00:11:34,360 --> 00:11:35,045 ng mga parehong mga detalye. 272 00:11:35,045 --> 00:11:37,870 At sa katunayan, sa JavaScript, hindi mo laging kailangan ng isang bagay 273 00:11:37,870 --> 00:11:38,670 tulad ng semicolon. 274 00:11:38,670 --> 00:11:40,210 Ngunit higit pa sa na sa darating. 275 00:11:40,210 --> 00:11:41,170 >> Kaya loop. 276 00:11:41,170 --> 00:11:43,520 Nagkaroon kami ng isang bagay na tulad nito, napaka intuitively, halata, 277 00:11:43,520 --> 00:11:44,860 isang bagay muli at muli at muli. 278 00:11:44,860 --> 00:11:47,720 Gusto ng paglalagay sa mga medyas, o sinasabi kumusta, sa kasong ito. 279 00:11:47,720 --> 00:11:51,090 Well, simula ngayon sa C, maaari naming ipahayag ito sa simula 280 00:11:51,090 --> 00:11:54,970 harangan ang bilang habang (tama) printf ("hoy mundo"). 281 00:11:54,970 --> 00:11:57,630 Kaya mapansin kami ay nagsisimula upang bumuo sa literal ang puzzle 282 00:11:57,630 --> 00:11:58,480 piraso mula bago. 283 00:11:58,480 --> 00:12:01,310 Mayroon kaming ang parehong mga lilang bloke, ngunit ito sa loob ng mga ito 284 00:12:01,310 --> 00:12:04,880 bracketed Habang Panahon bloke, at ang pinakamahusay na paraan upang i-translate na 285 00:12:04,880 --> 00:12:06,480 sa C ay tulad ng sumusunod. 286 00:12:06,480 --> 00:12:08,130 Walang nang Tuluyan keyword. 287 00:12:08,130 --> 00:12:10,940 Hindi lamang mo maaaring i-type f-o-r-e-v-e-r sa C. 288 00:12:10,940 --> 00:12:13,440 Kaya ang pinakamalapit na analog ay habang. 289 00:12:13,440 --> 00:12:17,050 >> Ngayon, habang (tama) tila ng kaunti bobo dahil ang halaga 290 00:12:17,050 --> 00:12:18,700 ng tunay kailanman pagbabago? 291 00:12:18,700 --> 00:12:19,810 Baka hindi. 292 00:12:19,810 --> 00:12:22,770 Ito ay tulad ng sinasabi habang isa, habang, habang totoo. 293 00:12:22,770 --> 00:12:25,430 Ang lahat ng mga parehong bagay, ang totoo ay palagi ang kaso. 294 00:12:25,430 --> 00:12:29,860 Kaya loop na ito ay aktwal na pampalaglag kung anong uri ng loop? 295 00:12:29,860 --> 00:12:31,210 Isang walang-katapusang loop, kanan. 296 00:12:31,210 --> 00:12:32,930 Isang nang Tuluyan loop o bilang tinatawag namin ito noong nakaraang linggo, 297 00:12:32,930 --> 00:12:33,870 isang walang-katapusang loop. 298 00:12:33,870 --> 00:12:35,250 Kaya minsan na masamang. 299 00:12:35,250 --> 00:12:37,060 Minsan na ang isang bug, minsan na ang dahilan kung bakit kumuha ka ng 300 00:12:37,060 --> 00:12:39,340 ang Umiikot na bola ng beach o orasa o ang tulad ng. 301 00:12:39,340 --> 00:12:41,260 Ngunit sa kasong ito, hindi namin sadyang, para sa anumang 302 00:12:41,260 --> 00:12:43,040 dahilan, gusto upang i-print muli ang parehong bagay 303 00:12:43,040 --> 00:12:43,970 at muli at muli. 304 00:12:43,970 --> 00:12:45,900 O sa kaso ng tulad ng panonood, gusto mong gawin 305 00:12:45,900 --> 00:12:47,470 isang bagay muli at muli at muli. 306 00:12:47,470 --> 00:12:49,070 Kaya walang-katapusang loop ay maaaring magkaroon ng kahulugan. 307 00:12:49,070 --> 00:12:53,560 At ito ay kung paano sa C maaari naming isalin sa Habang Panahon sa code. 308 00:12:53,560 --> 00:12:55,570 >> Kaya ngayon ang isang ito ng kaunti mas tiyak na. 309 00:12:55,570 --> 00:12:58,880 Namin ay ulitin ng 10 beses ang sumusunod na pahayag. 310 00:12:58,880 --> 00:13:02,490 Kaya habang (tama) ay hindi pa gumana doon, dahil ang totoo ay 311 00:13:02,490 --> 00:13:03,590 laging totoo. 312 00:13:03,590 --> 00:13:07,060 Kaya kung sa halip namin tingnan ang bersyon ng C, ngayon syntax nakakakuha ng 313 00:13:07,060 --> 00:13:08,180 kaunti pa misteriyoso. 314 00:13:08,180 --> 00:13:11,380 Ngunit upang maging matapat sa sandaling sinimulan mo upang makita ito, lahat ng ito ay nakakakuha 315 00:13:11,380 --> 00:13:12,600 medyo pamilyar mabilis. 316 00:13:12,600 --> 00:13:14,370 Kaya ito ay kung ano ang tinatawag na para sa loop. 317 00:13:14,370 --> 00:13:17,210 A para sa loop upang sabihin sa computer upang gawin ang isang bagay 318 00:13:17,210 --> 00:13:20,710 muli at muli at muli para sa hangga't 319 00:13:20,710 --> 00:13:21,850 mga bagay na ito ay totoo. 320 00:13:21,850 --> 00:13:23,370 Ngayon ano ang gagawin namin ibig sabihin sa pamamagitan ng na? 321 00:13:23,370 --> 00:13:25,470 Well, may tatlong bahagi sa isang loop, at kami ay pagpunta sa 322 00:13:25,470 --> 00:13:28,240 bumalik ito sa konteksto ng aktwal na 323 00:13:28,240 --> 00:13:29,100 halimbawa sa isang sandali. 324 00:13:29,100 --> 00:13:31,650 Kaya huwag mag-alala kung hindi ito ay medyo mapasubsob sa lahat nang sabay-sabay. 325 00:13:31,650 --> 00:13:35,400 Ngunit int i = 0, mahaba kuwento maikling, sinasabi ninyo akong bigyan ng 326 00:13:35,400 --> 00:13:38,290 variable na ng uri ng integer, kaya ninyo ako ng isang numero 327 00:13:38,290 --> 00:13:40,890 tinatawag i, at initialize ito sa 0. 328 00:13:40,890 --> 00:13:43,460 Ninyo ako tulad ng isang algebraic variable x at 329 00:13:43,460 --> 00:13:44,580 initialize ito sa 0. 330 00:13:44,580 --> 00:13:46,250 Ngunit sa kasong ito tinatawag namin itong i. 331 00:13:46,250 --> 00:13:49,120 Pagkatapos ay sa gitna, sabi i ay mas mababa sa 10. 332 00:13:49,120 --> 00:13:52,150 Na nagsasabi sa computer ang mga sumusunod na mga bagay-bagay kaya mahaba 333 00:13:52,150 --> 00:13:53,770 bilang i ay mas mababa sa 10. 334 00:13:53,770 --> 00:13:55,370 At malinaw naman nagsisimula ito sa mas mababa sa 10 dahil 335 00:13:55,370 --> 00:13:56,550 nagsisimula ito sa 0. 336 00:13:56,550 --> 00:13:59,150 Pagkatapos bilang wakas, maaari mong marahil hulaan kung ano ang i + + paraan. 337 00:13:59,150 --> 00:14:02,140 Ng kaunting syntax na lamang ay nangangahulugan dagdagan i. 338 00:14:02,140 --> 00:14:05,270 Kaya magdagdag ng 1 sa i, muli at muli at muli. 339 00:14:05,270 --> 00:14:09,260 >> At iba pa bilang namin makita ito loop, ang syntax na ito, sa halip, ipinapatupad 340 00:14:09,260 --> 00:14:12,160 tiyak ang parehong bagay na, lantaran, sa simula ay lamang kaya 341 00:14:12,160 --> 00:14:13,250 mas madali upang ipahayag. 342 00:14:13,250 --> 00:14:15,170 Ulitin 10, at tapos ka na. 343 00:14:15,170 --> 00:14:17,690 Sa C, at sa karamihan sa mga wika programming, mayroon kaming isang 344 00:14:17,690 --> 00:14:20,190 kaunti pa nakapagtuturo para sa computer at aktwal 345 00:14:20,190 --> 00:14:21,630 tukuyin ang isang bagay tulad nito. 346 00:14:21,630 --> 00:14:23,730 Ngunit makikita namin bumalik ito at iba pang mga syntax. 347 00:14:23,730 --> 00:14:24,780 >> Paano ang tungkol sa mga variable? 348 00:14:24,780 --> 00:14:26,940 Sa simula namin ay may isang bagay tulad ng mga orange na bloke, 349 00:14:26,940 --> 00:14:28,180 kung saan maaari kong ipinapahayag sa isang variable. 350 00:14:28,180 --> 00:14:30,000 Sabihin mang tumawag ito counter. 351 00:14:30,000 --> 00:14:31,880 Natin initialize ito sa 0, at pagkatapos ay 352 00:14:31,880 --> 00:14:33,240 sabihin magpakailanman gawin ang isang bagay. 353 00:14:33,240 --> 00:14:35,760 Sa kasong ito sa scratch ako sinasabi ng counter, kaya ang 354 00:14:35,760 --> 00:14:38,230 pusa pagpunta sa magkaroon ng isang maliit na speech bubble na pagsasalita 355 00:14:38,230 --> 00:14:40,010 ang bilang na ito variable. 356 00:14:40,010 --> 00:14:42,460 At pagkatapos ay mayroon kaming counter ng pagbabago ng 1. 357 00:14:42,460 --> 00:14:45,760 Kaya lahat ng ito ay nakabalot sa loob ng isang lock sa Habang Panahon. 358 00:14:45,760 --> 00:14:48,960 Kaya na namin ngayon ang mga bloke ng gusali sa C may 359 00:14:48,960 --> 00:14:50,040 kung saan upang i-translate ito. 360 00:14:50,040 --> 00:14:51,650 >> One way kami maaaring gawin na ito. 361 00:14:51,650 --> 00:14:53,890 Bigyan mo ako ng isang integer, tumawag ito counter. 362 00:14:53,890 --> 00:14:55,190 Initialize ito sa 0 363 00:14:55,190 --> 00:14:56,490 sa unang linya doon. 364 00:14:56,490 --> 00:14:59,390 Habang (tama), kaya ako pagnanakaw na ideya mula sa sandali lamang 365 00:14:59,390 --> 00:15:01,300 nakalipas, magpatuloy at gawin ang mga sumusunod. 366 00:15:01,300 --> 00:15:04,880 I-print ang counter, at pagkatapos ay dagdagan ang counter, 367 00:15:04,880 --> 00:15:06,930 muli, at muli, at muli. 368 00:15:06,930 --> 00:15:09,380 O muli, + + lamang ay nangangahulugan na magdagdag ng 1 sa isang bagay. 369 00:15:09,380 --> 00:15:11,030 Ngunit may isang bagong piraso ng syntax dito. 370 00:15:11,030 --> 00:15:15,730 Ano ang paglukso bilang hindi kabilang ang aming mga nakaraang mga halimbawa? 371 00:15:15,730 --> 00:15:17,190 Oo,% d na ito. 372 00:15:17,190 --> 00:15:19,810 Sa gayon maaari mong maaaring magpakilala kung ano ito ay ginagawa, lantaran, batay 373 00:15:19,810 --> 00:15:21,410 sa kung ano ang simula bloke ay ginagawa. 374 00:15:21,410 --> 00:15:24,510 Ngunit muli sa C, lang namin ng kaunti pa sa partikular na 375 00:15:24,510 --> 00:15:25,990 pagdating sa pagpapahayag ng ating sarili. 376 00:15:25,990 --> 00:15:30,560 >> Kaya printf ("% d \ n"). 377 00:15:30,560 --> 00:15:32,320 Na rin ang karamihan ng na maaari naming itapon bilang pamilyar. 378 00:15:32,320 --> 00:15:34,910 Lamang ang mga quote ay nangangahulugan na ito ay isang string, backslash n 379 00:15:34,910 --> 00:15:35,970 ay isang bagong linya. 380 00:15:35,970 --> 00:15:38,860 Kaya lamang bagong bagay dito ay% d. 381 00:15:38,860 --> 00:15:40,390 At ang lahat ng iyon ay isang placeholder. 382 00:15:40,390 --> 00:15:43,510 % D ay upang tukuyin ang isang decimal na numero. 383 00:15:43,510 --> 00:15:47,820 At% d ay nangangahulugan na computer, maglagay ng decimal na numero dito. 384 00:15:47,820 --> 00:15:49,450 Well, kung ano ang numero ang gusto mong upang ilagay doon? 385 00:15:49,450 --> 00:15:52,400 Well, tulad ng maaari mong marahil magpakilala, pagkatapos ng kuwit sinasabi namin 386 00:15:52,400 --> 00:15:55,480 counter, na ang pangalan ng isang variable na ipinahayag namin o 387 00:15:55,480 --> 00:15:57,260 nilikha ng ilang linya nang mas maaga. 388 00:15:57,260 --> 00:16:02,420 Kaya ito ay C ng paraan ng i-plug sa isang variable sa isang 389 00:16:02,420 --> 00:16:04,480 string dynamic. 390 00:16:04,480 --> 00:16:07,350 Dahil sa pamamagitan ng kaibahan, kung sa halip ako ay gawin ang isang bagay tulad ng 391 00:16:07,350 --> 00:16:12,470 ito, printf ("counter"), ano ang gagawin ito 392 00:16:12,470 --> 00:16:15,220 programa sa halip gawin, baka? 393 00:16:15,220 --> 00:16:17,260 Ito literal-print "counter". 394 00:16:17,260 --> 00:16:18,750 Na kung saan ay hindi ang effect na gusto ko. 395 00:16:18,750 --> 00:16:20,920 Kailangan kong ihalili sa ilang mga numerong halaga. 396 00:16:20,920 --> 00:16:24,340 Kaya gagamitin namin makita na mga function pagkatapos, tulad ng printf, maaaring tumagal ng hindi 397 00:16:24,340 --> 00:16:26,930 lamang lang iisang argumento, tulad ng 398 00:16:26,930 --> 00:16:28,150 "Hoy mundo". 399 00:16:28,150 --> 00:16:32,050 Maaari silang quote magpanipi kuwit, at ang ilang mga variable 400 00:16:32,050 --> 00:16:35,830 na makakuha ng mga nakasaksak sa, dahil kakailanganin namin makita ang mga nakaraang string 401 00:16:35,830 --> 00:16:38,280 sa pamamagitan ng mga placeholder sa sign ng%. 402 00:16:38,280 --> 00:16:39,660 >> Na rin kung ano ang tungkol sa Boolean expression? 403 00:16:39,660 --> 00:16:42,200 Boolean expression ay mga halagang ito, true o false. 404 00:16:42,200 --> 00:16:42,830 Oo o hindi. 405 00:16:42,830 --> 00:16:44,020 1 o 0. 406 00:16:44,020 --> 00:16:45,190 On o off. 407 00:16:45,190 --> 00:16:47,570 Kaya sa scratch tumingin sila tulad nito, at mapapansin na ang 408 00:16:47,570 --> 00:16:50,170 ibaba block dito ay ang tunay ang kasabay 409 00:16:50,170 --> 00:16:51,500 ng dalawang mas maliit na mga bloke. 410 00:16:51,500 --> 00:16:53,610 Kaya ko uri ng drag at bumaba ng tatlong piraso puzzle 411 00:16:53,610 --> 00:16:56,450 magkasama upang doon na mas mahaba na piraso ng puzzle kaya na ako 412 00:16:56,450 --> 00:17:00,420 maaaring ihatid ang ideya na gusto kong x sa mas mababa kaysa sa y at 413 00:17:00,420 --> 00:17:02,540 y na mas mababa kaysa sa z. 414 00:17:02,540 --> 00:17:05,790 At kaya ko isalin ang mga dalawang magkahiwalay na linya tulad ng sumusunod. 415 00:17:05,790 --> 00:17:08,650 Sa tuktok napaka trivially isinalin sa C, 416 00:17:08,650 --> 00:17:10,069 sa pamamagitan lamang ng x 00:17:11,990 Siguro may ilang mga panaklong para sa mabuting panukala. 418 00:17:11,990 --> 00:17:15,520 At pagkatapos ay sa C, hindi mo sumulat at upang tukuyin ang 419 00:17:15,520 --> 00:17:16,819 kasama ng isang bagay. 420 00:17:16,819 --> 00:17:19,585 Sa halip kang sumulat &&. 421 00:17:19,585 --> 00:17:22,849 At bilang namin ay makakita, ng isang ampersand ang mangyayari 422 00:17:22,849 --> 00:17:23,880 ibig sabihin kakaiba. 423 00:17:23,880 --> 00:17:27,530 Kaya && lamang Nagpapahiwatig ang ideya ng AT. 424 00:17:27,530 --> 00:17:30,040 >> Kaya muli, kahit nagsimulang upang tumingin sa halip kumplikadong, 425 00:17:30,040 --> 00:17:32,560 isa sa mga layunin ng nagpapakilala sa simula, bukod sa 426 00:17:32,560 --> 00:17:34,810 lamang pagkakaroon ng uri ng isang masaya-rampa kung saan maaari mong gawin 427 00:17:34,810 --> 00:17:36,590 isang bagay na napaka graphical, at animated, at 428 00:17:36,590 --> 00:17:39,000 naibabahaging at tulad, din upang ihatid ang ideya na 429 00:17:39,000 --> 00:17:42,010 lahat ng mga ideya simulan namin diving sa ngayon at pasulong 430 00:17:42,010 --> 00:17:44,300 ay katawanin sa kahit na simpleng 431 00:17:44,300 --> 00:17:46,850 interface dahil sa araw isa. 432 00:17:46,850 --> 00:17:47,790 Paano ang tungkol sa dito? 433 00:17:47,790 --> 00:17:48,860 >> Kaya kondisyon. 434 00:17:48,860 --> 00:17:50,590 Kaya ang scratch block sa kaliwa may hitsura 435 00:17:50,590 --> 00:17:51,610 ng kaunti pa sa complex. 436 00:17:51,610 --> 00:17:52,650 Ngunit ito lamang ang ilang mga pag-drag at 437 00:17:52,650 --> 00:17:54,140 drop ng mga pamilyar na piraso. 438 00:17:54,140 --> 00:17:56,690 Kung ang x ay mas mababa kaysa sa y, sabihin ito. 439 00:17:56,690 --> 00:17:59,900 Else kung x ay mas malaki kaysa sa y, sabihin kaya. 440 00:17:59,900 --> 00:18:02,460 Iba Pa, maaari naming lohikal na ipinapalagay ito ay natukoy na 441 00:18:02,460 --> 00:18:03,580 dapat silang pantay. 442 00:18:03,580 --> 00:18:05,220 Kaya sabihin na ang mga ito ay pantay-pantay. 443 00:18:05,220 --> 00:18:07,690 Ngayon C sa kanan, parehong eksaktong bagay. 444 00:18:07,690 --> 00:18:09,730 At mapansin na ang mga kulot tirante ay isang 445 00:18:09,730 --> 00:18:12,190 tampok ng C at iba pang mga wika na gawin ang ganitong uri 446 00:18:12,190 --> 00:18:13,210 ng encapsulation. 447 00:18:13,210 --> 00:18:15,470 Lamang tulad ng kung ang block ito dilaw na bagay na uri ng 448 00:18:15,470 --> 00:18:17,770 daklot ang mga lilang bloke sa loob nito. 449 00:18:17,770 --> 00:18:19,480 Katulad nito ang mga tirante - 450 00:18:19,480 --> 00:18:20,870 mga kulot tirante - 451 00:18:20,870 --> 00:18:24,710 sinadya upang manawagan na parehong ideya ng embracing ng isa o higit pang mga 452 00:18:24,710 --> 00:18:27,680 mga linya ng code na naka-indent sa loob ng mga ito. 453 00:18:27,680 --> 00:18:31,270 Kaya sa kanang bahagi dito, kung x mas mababa sa y, printf 454 00:18:31,270 --> 00:18:32,270 ("X ay mas mababa kaysa sa y"). 455 00:18:32,270 --> 00:18:34,980 Iba Pa kung ang x ay mas malaki kaysa sa y, i-print ang parehong. 456 00:18:34,980 --> 00:18:38,360 Iba Pa i-print na ang mga ito ay pantay-pantay. 457 00:18:38,360 --> 00:18:41,750 >> Kaya sa maikling salita, mayroong patas direktang sa pagmamapa o translation 458 00:18:41,750 --> 00:18:44,720 ng wika nasaksihan namin sa gayon ngayon, kabilang ang para sa ilang 459 00:18:44,720 --> 00:18:45,940 ng mas sopistikadong mga tampok. 460 00:18:45,940 --> 00:18:48,680 Kaya hindi mo maaaring gamit ang para sa iyong proyekto, o maaaring hindi 461 00:18:48,680 --> 00:18:51,150 ginagamit ito para sa iyong proyekto sa linggong ito. 462 00:18:51,150 --> 00:18:54,650 Ngunit namin ang mga bagay na ito na tinatawag na array sa C. Sa simula, 463 00:18:54,650 --> 00:18:55,680 sila ay tinatawag na mga listahan. 464 00:18:55,680 --> 00:18:59,370 At nakita namin ito na may RPG ang Fruitcraft noong nakaraang linggo. 465 00:18:59,370 --> 00:19:01,320 Ang maliit na asul na tao na paglalakad sa paligid, tumatawag 466 00:19:01,320 --> 00:19:03,010 seresa at dalandan at tulad. 467 00:19:03,010 --> 00:19:05,110 Maayos sa simula, na ay ipinatupad gamit ang orange 468 00:19:05,110 --> 00:19:09,000 i-block na naglalaman ng mga salita, sa kasong ito, hindi namin literal 469 00:19:09,000 --> 00:19:10,800 pagdaragdag ng "orange" sa isang 470 00:19:10,800 --> 00:19:12,460 variable na tinatawag na imbentaryo. 471 00:19:12,460 --> 00:19:14,910 Kaya sa C, ang syntax na ito ay pagpunta upang makakuha ng kaunti pa misteriyoso. 472 00:19:14,910 --> 00:19:17,250 At kami na bumalik sa susunod na linggo na ito at makagawa ng higit pa 473 00:19:17,250 --> 00:19:21,060 kawili-wiling mga bagay-bagay sa mundo ng cryptography dito. 474 00:19:21,060 --> 00:19:23,990 Ngunit sa ibaba dito, ang dalawang linya ay mahalagang 475 00:19:23,990 --> 00:19:27,550 isalin ang sa kung anong ginagawa namin sa isang scratch harangan up doon. 476 00:19:27,550 --> 00:19:30,120 Ngunit higit pa sa na sa darating. 477 00:19:30,120 --> 00:19:34,120 >> Kaya paglalagay ng ito nang magkasama, narito ang isang programa sa C. Kaya natin 478 00:19:34,120 --> 00:19:36,590 mabilis manunudyo bukod ang ilan sa mga piraso ng syntax dito, ngunit 479 00:19:36,590 --> 00:19:40,300 pagkatapos sabihin aktwal na simulan ang pagsusulat ng ilang code, maging pamilyar 480 00:19:40,300 --> 00:19:42,440 sa ilan sa mga tool na namin ginagamit, at makita kung namin 481 00:19:42,440 --> 00:19:45,400 maaaring bumuo sa ngayon ang ilan sa mga pangunahing mga bloke ng gusali mula sa 482 00:19:45,400 --> 00:19:49,150 noong nakaraang linggo, ngayon syntactically sa C. Kaya sa tuktok dito, ito 483 00:19:49,150 --> 00:19:51,380 ay marahil isa ng ang pinaka-pagbubutas programa maaari mong 484 00:19:51,380 --> 00:19:53,130 sumulat sa karamihan sa anumang wika programming. 485 00:19:53,130 --> 00:19:55,010 Ngunit ito uri ng ay may espesyal na kahulugan dahil ito ay 486 00:19:55,010 --> 00:19:58,120 canonical programa na ang anumang computer siyentipiko nagsusulat kapag 487 00:19:58,120 --> 00:19:59,620 pagtuturo sa isang tao ng programming language - 488 00:19:59,620 --> 00:20:01,230 kumusta na programa ng mundo. 489 00:20:01,230 --> 00:20:05,120 >> Kaya sa pinakatuktok, hindi namin makita ang paniwala na ito ng # include 490 00:20:05,120 --> 00:20:08,180 at pagkatapos, sa angled bracket, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Kami ay pagpunta sa bumalik na, ngunit talaga kung ano na 492 00:20:10,580 --> 00:20:13,770 ay nangangahulugan na may isang file sa mundong ito na tinatawag na standard 493 00:20:13,770 --> 00:20:17,670 I / O, stdio tuldok h, at ito lamang ay isang text file na 494 00:20:17,670 --> 00:20:19,240 may sinulat ni taon na ang nakakaraan. 495 00:20:19,240 --> 00:20:22,550 At sa loob ng text file na iyon ang maramihang mga 496 00:20:22,550 --> 00:20:25,840 andar, o pamamaraan, o pamamaraan, na ibang tao 497 00:20:25,840 --> 00:20:28,970 sinulat ni na namin ang mga makikinabang ng dahil namin 498 00:20:28,970 --> 00:20:31,420 ay maaari na ngayong gamitin ang code na tao. 499 00:20:31,420 --> 00:20:33,070 Ng mga pagpapaandar na siya sinulat ni. 500 00:20:33,070 --> 00:20:36,320 Sa kasong ito, printf ay hindi isang bagay na sinulat ni ko, 501 00:20:36,320 --> 00:20:37,500 hindi isang bagay na CS50 sinulat ni. 502 00:20:37,500 --> 00:20:40,290 Ito ay isang bagay na may sinulat ni taon na ang nakakaraan at ilagay sa isang 503 00:20:40,290 --> 00:20:43,450 file na tinatawag na stdio.h at pagkatapos, bilang isang bukod, ilagay 504 00:20:43,450 --> 00:20:45,830 isa pang bahagi ng pag-andar sa isa pang file. 505 00:20:45,830 --> 00:20:46,940 Ngunit magkakaroon kami makarating doon. 506 00:20:46,940 --> 00:20:50,070 >> Kaya # include lamang ang aming paraan ng pagsabi sa 507 00:20:50,070 --> 00:20:53,110 C, akong bigyan ng access sa mga function na ang ibang tao sinulat ni. 508 00:20:53,110 --> 00:20:55,490 At sa kasong ito mahalaga ako dahil gusto ko printf. 509 00:20:55,490 --> 00:20:57,530 Ngayon makuha namin ang int pangunahing (walang bisa). 510 00:20:57,530 --> 00:21:00,160 Kaya ito ay isa sa mga bagay na ito, lantaran, na sa araw na 0, 511 00:21:00,160 --> 00:21:02,400 medyo magkano ang iyong ko sa uri ng zone out, dahil ito lang 512 00:21:02,400 --> 00:21:03,260 hindi kawili-wili 513 00:21:03,260 --> 00:21:04,780 intellectually, ilang ng syntax. 514 00:21:04,780 --> 00:21:07,940 Ngunit sa ngayon malaman na ang mga pag-andar, kung hindi man kilala bilang 515 00:21:07,940 --> 00:21:11,660 pamamaraan, o pamamaraan, sa pangkalahatan ay makagawa ng ilang mga halaga. 516 00:21:11,660 --> 00:21:12,520 Ginagawa nila ng isang bagay. 517 00:21:12,520 --> 00:21:13,810 Ang mga ito ay may isang sagot. 518 00:21:13,810 --> 00:21:15,020 Makagawa sila ng output. 519 00:21:15,020 --> 00:21:18,780 Kaya int sa tabi ng pangunahing lamang ang aming shorthand paraan ng pagsabi 520 00:21:18,780 --> 00:21:21,380 na ito function, ang pamamaraan na ito, ay malaon pagpunta 521 00:21:21,380 --> 00:21:22,650 upang bigyan ka ng isang numero. 522 00:21:22,650 --> 00:21:24,370 At bakit na, magpapadala kami bumalik sa. 523 00:21:24,370 --> 00:21:27,810 Main ay ang default na pamantayan ng mundo para sa default 524 00:21:27,810 --> 00:21:30,990 function na upang isinasagawa sa isang C programa kapag 525 00:21:30,990 --> 00:21:31,860 patatakbuhin mo. 526 00:21:31,860 --> 00:21:34,160 Walang bisa lamang ay nangangahulugan na ang bagay na ito, ang pangunahing, walang 527 00:21:34,160 --> 00:21:35,270 argumento, sa kasong ito. 528 00:21:35,270 --> 00:21:36,400 Kaya ako sobrang tahasang. 529 00:21:36,400 --> 00:21:38,160 Walang string sa doon, may mga kuwit. 530 00:21:38,160 --> 00:21:40,690 Walang bisa ay nangangahulugan na walang mga argumento sa main. 531 00:21:40,690 --> 00:21:44,350 >> Ngayon bilang wakas, thankfully, ang huling dalawang linya ay pamilyar. 532 00:21:44,350 --> 00:21:46,160 Inside ang kulot tirante mayroon kami ng printf 533 00:21:46,160 --> 00:21:47,620 at mayroon kaming isang pagbalik. 534 00:21:47,620 --> 00:21:50,450 At return uri ng kapus-palad na mayroon kaming 535 00:21:50,450 --> 00:21:53,510 ilagay ito doon, dahil sa kasong ito hindi ito ginagawa ang lahat ng 536 00:21:53,510 --> 00:21:54,600 magkano ng interes. 537 00:21:54,600 --> 00:21:58,790 Ngunit sa isang computer program, kapag ang isang function na nagbabalik 0, 538 00:21:58,790 --> 00:22:00,610 na nangangahulugan lahat na rin. 539 00:22:00,610 --> 00:22:01,820 Walang nangyaring mali. 540 00:22:01,820 --> 00:22:06,170 Sa pamamagitan ng kaibahan, kung ang isang function na nagbabalik 1, o negatibong 1, o 541 00:22:06,170 --> 00:22:11,670 negatibong 1337, o ilang mga random na numero tulad na, na 542 00:22:11,670 --> 00:22:14,020 karaniwan ay nangangahulugan ng isang error na aktwal na naganap. 543 00:22:14,020 --> 00:22:16,150 Kaya kung ikaw ay sa iyong Mac o iyong PC, kung sakaling mo na nakita 544 00:22:16,150 --> 00:22:18,590 ilang mga nakakainis na mensahe dahil ang iyong computer ay nag-crash o 545 00:22:18,590 --> 00:22:20,660 frozen, at may isang misteriyoso mensahe ng error, 546 00:22:20,660 --> 00:22:23,320 at pagkatapos ay ang ilang mga code, tulad ng sistema code 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, ang ilang mga numero, 548 00:22:25,110 --> 00:22:29,270 na sa pangkalahatan ay isang hindi kinakailangang detalye upang sabihin sa 549 00:22:29,270 --> 00:22:32,110 karamihan sa atin mga tao, ngunit ang ilang mga function na o ilang 550 00:22:32,110 --> 00:22:34,890 programa ay aktwal na ibinalik, di-zero na halaga. 551 00:22:34,890 --> 00:22:38,540 At ang mga benepisyo ng ito ay na 0 ay nangangahulugan ng pati na rin, at 552 00:22:38,540 --> 00:22:40,470 pagkatapos mo mahalagang ay isang walang-katapusang bilang ng mga bagay na 553 00:22:40,470 --> 00:22:41,130 maaaring magkamali. 554 00:22:41,130 --> 00:22:44,700 Alin ang kung bakit nila pinili 0 para sa mahusay at ng non-zero na halaga para sa 555 00:22:44,700 --> 00:22:46,450 masama, bilang ay namin sa lalong madaling panahon makita. 556 00:22:46,450 --> 00:22:47,870 >> Kaya sabihin sige at isulat ito. 557 00:22:47,870 --> 00:22:51,610 Kaya isipin ang na sa iba pang mga araw ginamit ko ang aking Mac upang buksan ang isang 558 00:22:51,610 --> 00:22:53,970 terminal na window, at pagkatapos ko binuksan up ng programa sa teksto, tulad ng 559 00:22:53,970 --> 00:22:55,900 TextEdit, at ako makapagsimula pagsusulat ng ilang code. 560 00:22:55,900 --> 00:22:56,580 Na rin na fine. 561 00:22:56,580 --> 00:22:58,636 Ngunit ang iyong karanasan ay iba sa Mac, o 562 00:22:58,636 --> 00:23:01,220 sa isang Solaris computer, isang Linux computer, anumang operating 563 00:23:01,220 --> 00:23:02,810 sistema mangyari gumagamit. 564 00:23:02,810 --> 00:23:04,970 At kaya sa kurso, kung ano ang namin sa halip na gamitin ang isang bagay 565 00:23:04,970 --> 00:23:07,010 tinatawag CS50 Appliance. 566 00:23:07,010 --> 00:23:10,420 Kaya CS50 Appliance ay isang nada-download na piraso ng software 567 00:23:10,420 --> 00:23:13,640 na nagpapahintulot sa iyo na magpatakbo ng isang operating system na tinatawag na Linux, 568 00:23:13,640 --> 00:23:16,810 partikular Fedora Linux, sa iyong sariling Mac o PC. 569 00:23:16,810 --> 00:23:20,810 At gawin mo ito sa pamamagitan ng pag-download ng isang bagay na tinatawag na hypervisor. 570 00:23:20,810 --> 00:23:23,100 Kaya ang lahat ng ito ay dokumentado sa hanay ng problema 1. 571 00:23:23,100 --> 00:23:25,240 At makikita mo ginagabayan patungo sa kung ano ang kailangan mong i-download. 572 00:23:25,240 --> 00:23:27,510 Ngunit ang resulta, kung mayroon kang isang Mac o PC, ikaw 573 00:23:27,510 --> 00:23:29,080 i-download ang ilang mga libreng software. 574 00:23:29,080 --> 00:23:32,340 Mo pagkatapos ay i-download ang CS50 Appliance, at sabihin sa iyo na 575 00:23:32,340 --> 00:23:33,960 libreng software - ang hypervisor - 576 00:23:33,960 --> 00:23:38,080 upang patakbuhin ang CS50 Appliance sa isang window sa iyong computer. 577 00:23:38,080 --> 00:23:39,490 At ano ang mangyayari ito. 578 00:23:39,490 --> 00:23:43,660 >> Ako ngayon, mapansin dito, kung ano ang lilitaw sa isang desktop 579 00:23:43,660 --> 00:23:44,130 kapaligiran. 580 00:23:44,130 --> 00:23:46,150 At ipaalam sa akin aktwal na-urong ito solong window. 581 00:23:46,150 --> 00:23:49,640 Kaya ito ngayon ang aking Mac, na may maliit na window dito, at sa loob ng 582 00:23:49,640 --> 00:23:51,300 ng window na ito ay mangyayari sa isang ganap na 583 00:23:51,300 --> 00:23:52,380 ibang mga operating system. 584 00:23:52,380 --> 00:23:55,250 Sa katunayan ito simula menu dito, nakapagpapaalaala ng 585 00:23:55,250 --> 00:23:57,990 Windows, na may isang buong grupo ng mga sub menu, kabilang ang 586 00:23:57,990 --> 00:24:00,720 isang link sa CS50 manu-manong, Dropbox, at ang mga tulad ng. 587 00:24:00,720 --> 00:24:03,480 At kung ano ang kapaligiran ito ngayon ay isang karaniwang kapaligiran 588 00:24:03,480 --> 00:24:06,280 na ang lahat sa atin ay maaari na ngayong gamitin, kaya na kahit na ano ang iyong 589 00:24:06,280 --> 00:24:08,960 computer ay, kung ano ang iyong na-install ito, kung anong bersyon 590 00:24:08,960 --> 00:24:11,430 ng Mac OS o Windows nagpapatakbo ka, tayong lahat ngayon ng 591 00:24:11,430 --> 00:24:12,800 parehong kapaligiran. 592 00:24:12,800 --> 00:24:15,850 At ngayon sa environment na ito maaari naming simulan ang pagsusulat ng ilang code. 593 00:24:15,850 --> 00:24:18,480 >> Kaya ako pagpunta upang magpatuloy at buksan ang isang programa na tinatawag na gedit. 594 00:24:18,480 --> 00:24:21,500 Ito ay maihahambing sa notepad.exe, o 595 00:24:21,500 --> 00:24:22,790 TextEdit sa Mac. 596 00:24:22,790 --> 00:24:25,390 At ito lamang ang napaka-simpleng programa ng pag-edit ng teksto 597 00:24:25,390 --> 00:24:27,500 na ganito ang hitsura sa unang tingin. 598 00:24:27,500 --> 00:24:30,640 Ngayon sa pinakatuktok, mayroon akong isang puting palette, sa ibaba ko 599 00:24:30,640 --> 00:24:33,860 ito itim na window na nagsasabing appliance jharvard @. 600 00:24:33,860 --> 00:24:36,440 At na dahil ang gumagamit ng account na aming pre-nilikha 601 00:24:36,440 --> 00:24:38,430 para sa lahat ay tinatawag na John Harvard. 602 00:24:38,430 --> 00:24:41,490 Siya ay may isang folder kung saan lahat ng kanyang mga file upang pumunta, at 603 00:24:41,490 --> 00:24:43,500 narito ang kung saan maaari naming simulan ang pagsusulat ng ilang code. 604 00:24:43,500 --> 00:24:45,810 Kaya hayaan mo akong magpatuloy dito at mag-zoom in ng kaunti lamang, at ako ay 605 00:24:45,810 --> 00:24:51,550 pagpunta sa gawin # isama , int pangunahing (walang bisa), at 606 00:24:51,550 --> 00:24:57,470 pagkatapos ay ako pagpunta sa gawin printf ("Hello World") 607 00:24:57,470 --> 00:24:59,490 ; Bumalik ang 0. 608 00:24:59,490 --> 00:25:01,400 Ngayon ito ay ang lahat ng medyo black and white. 609 00:25:01,400 --> 00:25:03,830 >> Hayaan akong magpatuloy at gawin ang isang bagay upang magturo ng gedit kung ano ang ako 610 00:25:03,830 --> 00:25:04,510 aktwal na paggawa. 611 00:25:04,510 --> 00:25:06,140 Hayaan akong pumunta sa I-save Bilang. 612 00:25:06,140 --> 00:25:08,560 Ako pagpunta sa pumili sa kaliwang bahagi dito jharvard. 613 00:25:08,560 --> 00:25:11,010 Sa muli, kahit na hindi mo na ginagamit Linux bago, lantaran 614 00:25:11,010 --> 00:25:13,680 mga araw na ito, ang lahat ng mga ito ay devolving sa mahalagang 615 00:25:13,680 --> 00:25:14,590 parehong uri ng interface - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows, at Linux. 617 00:25:16,030 --> 00:25:18,680 Kaya ko pinili bahay folder jharvard dito. 618 00:25:18,680 --> 00:25:21,120 At ako pagpunta sa i-save ang file bilang hello.c. 619 00:25:21,120 --> 00:25:24,260 Kaya sa pinakatuktok, ako-type hello.c; pagpapangalan ng isang C 620 00:25:24,260 --> 00:25:26,520 programa na may extension na. c 621 00:25:26,520 --> 00:25:27,570 kung ano ang karaniwang kasanayan. 622 00:25:27,570 --> 00:25:28,650 At ako ay pindutin ang I-save. 623 00:25:28,650 --> 00:25:32,510 At ngayon kung ano ang magaling na epektibong ko na nagturo gedit, 624 00:25:32,510 --> 00:25:33,690 na ito ay isang C programa. 625 00:25:33,690 --> 00:25:36,470 Pansinin na ang aking itim at puting teksto na ngayon ang kulay code, o 626 00:25:36,470 --> 00:25:39,330 syntax highlight, na lang humahatak sa aking pansin ang 627 00:25:39,330 --> 00:25:41,540 ibang semantiko bahagi ng programa. 628 00:25:41,540 --> 00:25:44,260 Sa kaliwang tuktok doon, ng aking mga programa makakuha ng mas kumplikadong, ako 629 00:25:44,260 --> 00:25:47,060 pagpunta sa magkaroon ng isang buod ng lahat ng mga bagay na isinulat ko. 630 00:25:47,060 --> 00:25:48,050 Kaya na ito doon. 631 00:25:48,050 --> 00:25:52,350 Kaya ipaalam sa akin ngayon mag-zoom out at pumunta sa terminal window na ito. 632 00:25:52,350 --> 00:25:54,570 >> Kaya ito ay marahil bago sa maraming tao. 633 00:25:54,570 --> 00:25:57,260 Kung hindi mo na ginagamit ang isang kapaligiran sa linya ng command na, hindi mo kailanman 634 00:25:57,260 --> 00:26:00,020 ginagamit DOS, o hindi kailanman ginamit mo ang Linux, o hindi mo pa nabuksan 635 00:26:00,020 --> 00:26:02,550 iyong Mac OS terminal na window, mayroong maraming mga bagay na 636 00:26:02,550 --> 00:26:04,820 maaaring gawin gamit ang GUI, tulad ng pagturo, at pag-click, at 637 00:26:04,820 --> 00:26:07,080 pag-drag at drop, at tulad ng, ngunit sa pangkalahatang - 638 00:26:07,080 --> 00:26:09,360 tiyak sa mundo ng computer science - 639 00:26:09,360 --> 00:26:11,580 gamit ang command line, kung saan hindi mo ang iyong mouse 640 00:26:11,580 --> 00:26:14,220 pangkalahatan, mayroon ka lamang ng iyong keyboard, talagang ng maraming 641 00:26:14,220 --> 00:26:17,260 mas malakas na kaysa sa interface, sa sandaling ka makapag acclimated sa 642 00:26:17,260 --> 00:26:18,580 iba't-ibang mga utos. 643 00:26:18,580 --> 00:26:20,940 At ikaw uri ng libreng ang iyong sarili nangangailangan upang ituro at i-click ang 644 00:26:20,940 --> 00:26:21,690 sa lahat. 645 00:26:21,690 --> 00:26:23,890 Kaya sa gedit magpapadala kami pag-uri-uriin ng may ang pinakamahusay na ng parehong mundo. 646 00:26:23,890 --> 00:26:25,600 Maaari naming i-drag at i-drop ang teksto, maaari naming makita ito 647 00:26:25,600 --> 00:26:26,840 Nice at kulay code. 648 00:26:26,840 --> 00:26:29,630 Ngunit pagdating oras upang patakbuhin ang aming programa, bibigyan namin minsan 649 00:26:29,630 --> 00:26:31,750 lamang gamitin ang maliit na window dito. 650 00:26:31,750 --> 00:26:33,460 >> Kaya ako pagpunta upang magpatuloy at gawin ito. 651 00:26:33,460 --> 00:26:36,420 Sa ilalim itim at puting window, ako pagpunta sa magpatuloy 652 00:26:36,420 --> 00:26:37,890 at isulat kumalatong. 653 00:26:37,890 --> 00:26:40,130 At kumalatong ay ang pangalan ng isang tagatala. 654 00:26:40,130 --> 00:26:43,310 Ito ay isang programa na-convert sa aking source code 655 00:26:43,310 --> 00:26:48,770 sa, kaya, code ng bagay. 656 00:26:48,770 --> 00:26:51,270 0s at 1s, na nakita namin maikling noong nakaraang linggo. 657 00:26:51,270 --> 00:26:53,700 Manariwa sa diwa mula sa nakaraang linggo, aming ipinangako na namin ang pagpunta sa 658 00:26:53,700 --> 00:26:55,920 pumunta mula sa isang bagay tulad nito - kailangan namin upang maging 659 00:26:55,920 --> 00:26:57,010 isang bagay tulad nito - 660 00:26:57,010 --> 00:26:58,700 at ito ay tiyak na hindi isang bagay na ang isang tao ay pagpunta 661 00:26:58,700 --> 00:26:59,690 gawin mano-mano. 662 00:26:59,690 --> 00:27:01,980 Kaya sa halip kami ay pagpunta sa gumamit ng isang programa, at na programa sa 663 00:27:01,980 --> 00:27:03,430 kaso na ito ay tinatawag na kumalatong. 664 00:27:03,430 --> 00:27:06,020 At ang pangalan ng aking mga programa ay hello.c. 665 00:27:06,020 --> 00:27:09,670 Kaya upang makatipon ng hello.c mula sa source code sa 666 00:27:09,670 --> 00:27:12,930 object code, o 0s at 1s, dapat sumapat sa lamang gawin 667 00:27:12,930 --> 00:27:14,820 ito at pindutin ang Enter. 668 00:27:14,820 --> 00:27:16,850 >> Okay, walang Mukhang nangyari. 669 00:27:16,850 --> 00:27:20,450 Ngunit alam ko na ngayon, o mula sa nakaraang linggo, na ang default na pangalan ng 670 00:27:20,450 --> 00:27:24,920 isang programa, kapag nakasulat sa C, maloko tinatawag a.out. 671 00:27:24,920 --> 00:27:26,610 Karamihan sa mga hindi kawili-wili pangalan maaari mong makabuo ng. 672 00:27:26,610 --> 00:27:28,790 Ay ang unang titik ng alpabeto, out ay kung ano ang 673 00:27:28,790 --> 00:27:29,960 outputted, ngunit kaya ito. 674 00:27:29,960 --> 00:27:33,570 Ito ang aking programa, at ngayon tuldok slash, dahil kakailanganin namin nakikita, ay 675 00:27:33,570 --> 00:27:36,170 aktwal na lamang ang uri ng mga tampok sa seguridad, dahil 676 00:27:36,170 --> 00:27:38,250 a.out ay isang programa na ako sinulat ni. 677 00:27:38,250 --> 00:27:39,650 Hindi ito dumating sa aking computer, 678 00:27:39,650 --> 00:27:40,790 hindi sa Program Files. 679 00:27:40,790 --> 00:27:42,910 Ito ay wala sa mga folder na Application sa Mac OS. 680 00:27:42,910 --> 00:27:45,740 Kailangan ko bang maging sobrang tahasang gamit ang computer, at sabihin 681 00:27:45,740 --> 00:27:49,030 programang ito, a.out, sa kasalukuyang folder, ang 682 00:27:49,030 --> 00:27:50,260 kasalukuyang direktoryo. 683 00:27:50,260 --> 00:27:53,160 At ang paraan na kinakatawan mo ito sa isang kapaligiran tulad nito 684 00:27:53,160 --> 00:27:57,070 ay ang tuldok ay kumakatawan sa anumang folder ikaw ay kasalukuyang. 685 00:27:57,070 --> 00:27:59,420 At iba pa. / Lamang ay nangangahulugan na ang magpatakbo ng a.out 686 00:27:59,420 --> 00:28:00,530 sa kasalukuyang folder. 687 00:28:00,530 --> 00:28:04,830 At magpatakbo ko ito sa Ipasok, at voila, ang aking unang programa. 688 00:28:04,830 --> 00:28:05,990 >> Ngayon ipaalam sa akin tumagal ng isang hakbang pabalik. 689 00:28:05,990 --> 00:28:08,280 Isang maliit na maliit ang window na ito, at mapagtanto na sa ilalim 690 00:28:08,280 --> 00:28:10,340 kaliwa ng appliance dito ang isa pang icon. 691 00:28:10,340 --> 00:28:12,660 Isa ay Chrome, na dapat na medyo pamilyar, lamang ng isang web 692 00:28:12,660 --> 00:28:14,350 browser sa loob ng appliance. 693 00:28:14,350 --> 00:28:16,340 At ang black and white na icon ay lamang 694 00:28:16,340 --> 00:28:17,720 mas malaking terminal na window. 695 00:28:17,720 --> 00:28:19,830 Kaya kung ito ay nakakakuha ng kaunti nakakainis na upang pag-uri-uriin ng may lamang 696 00:28:19,830 --> 00:28:22,270 ito maliliit na maliit na hiwa ng isang window kung saan upang makipag-ugnay 697 00:28:22,270 --> 00:28:24,370 sa mga programa, maaari naming sa halip gawin ito. 698 00:28:24,370 --> 00:28:26,640 At ngayon hayaan mo akong magsimulang mag-type ng ilang madaling 699 00:28:26,640 --> 00:28:27,980 pamilyar utos. 700 00:28:27,980 --> 00:28:28,900 ls. 701 00:28:28,900 --> 00:28:31,410 Kaya ls command para sa listahan. 702 00:28:31,410 --> 00:28:33,900 Kaya sa isang Mac OS o Windows, nais mong pangkalahatang-double-click sa isang 703 00:28:33,900 --> 00:28:36,510 folder at pagkatapos, voila, makikita mo ang lahat ng iba't-ibang mga file 704 00:28:36,510 --> 00:28:37,210 at mga folder. 705 00:28:37,210 --> 00:28:39,650 Sa isang kapaligiran ng command line, kung saan maaari ka lamang mag-type 706 00:28:39,650 --> 00:28:42,390 utos o text, ang ls ay ang katumbas. 707 00:28:42,390 --> 00:28:44,380 Kaya ipakita sa akin kung ano ang sa direktoryong ito. 708 00:28:44,380 --> 00:28:46,540 >> Ngayon ay mayroong isang bungkos ng mga bagay-bagay dito na parehong maliit 709 00:28:46,540 --> 00:28:48,190 pamilyar at isang maliit na pamilyar. 710 00:28:48,190 --> 00:28:50,740 Ngunit notice na tulad ng Windows at Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 may isang desktop folder. 712 00:28:52,190 --> 00:28:54,520 Kaya ang anumang mga icon na sa aking desktop mangyari 713 00:28:54,520 --> 00:28:55,650 sa folder na iyon. 714 00:28:55,650 --> 00:28:57,250 Mayroong isang folder ng mga download, mga bagay-bagay na 715 00:28:57,250 --> 00:28:58,890 Chrome ay maaaring ilagay doon. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Kaya appliance ay may built-in na suporta para sa Dropbox 718 00:29:01,820 --> 00:29:04,500 upang sa ibabaw ng semestre, maaari mong i-sync sa iyong Dropbox 719 00:29:04,500 --> 00:29:06,420 account upang ang lahat ng iyong mga programa ay nai-back up. 720 00:29:06,420 --> 00:29:08,050 Hindi nila maa-access sa iyong iba pang mga computer. 721 00:29:08,050 --> 00:29:09,780 Kung anumang kailanman napupunta mali sa mga appliance, maaari mong 722 00:29:09,780 --> 00:29:11,340 napaka madaling mabawi mula sa Dropbox. 723 00:29:11,340 --> 00:29:12,940 Kaya folder na doon para sa. 724 00:29:12,940 --> 00:29:14,660 Mayroong dalawang mga file na ginawa ko - hello.c 725 00:29:14,660 --> 00:29:16,540 at a.out. 726 00:29:16,540 --> 00:29:18,530 At pagkatapos ay sa kanan ang ilang iba pang mga folder na bibigyan namin 727 00:29:18,530 --> 00:29:20,710 makapunta sa patungo sa katapusan ng semestre, may web 728 00:29:20,710 --> 00:29:21,540 programming. 729 00:29:21,540 --> 00:29:26,160 Kaya kapag gagawin ko. /, A.out, Ipasok, na sinasabi pumunta 730 00:29:26,160 --> 00:29:29,460 sa direktoryo ako sa, ang kasalukuyang direktoryo, at magpatakbo ng 731 00:29:29,460 --> 00:29:32,465 programa na tinatawag na a.out doon. 732 00:29:32,465 --> 00:29:35,810 >> Karapatan lahat, kaya na maganda at mahusay, ngunit ito ay hindi lahat na 733 00:29:35,810 --> 00:29:38,550 nakapanghihimok upang magsulat ng isang programa na tinatawag na matulungan a.out. 734 00:29:38,550 --> 00:29:40,790 Upang maaari naming aktwal na gawin ito ng kaunti naiiba. 735 00:29:40,790 --> 00:29:43,980 Kaya sa halip na lamang tumatakbo kumalatong, hello.c, sabihin magdagdag 736 00:29:43,980 --> 00:29:46,850 kung ano ang tinatawag na isang argument ng linya ng command na. 737 00:29:46,850 --> 00:29:50,730 Kaya isang command line argument, o lumipat sa kasong ito, ay 738 00:29:50,730 --> 00:29:54,930 isa pang salita o parirala na nagta-type ka sa prompt pagkatapos 739 00:29:54,930 --> 00:29:56,290 ang programa na gusto mong patakbuhin. 740 00:29:56,290 --> 00:29:59,970 Kaya sa kasong ito, kumalatong ang programa Gusto kong patakbuhin,-o 741 00:29:59,970 --> 00:30:03,480 Nangangahulugan ang output ng isang file na hindi na tinatawag na a.out. 742 00:30:03,480 --> 00:30:07,510 Output ng isang file na tinatawag na halo, at gawin ito sa pamamagitan ng kino-compile ang 743 00:30:07,510 --> 00:30:10,200 huling salita sa linya, hello.c. 744 00:30:10,200 --> 00:30:13,200 Kaya sa maikling salita, ito ay isang napaka nasa gilid pagpapabuti, kung saan 745 00:30:13,200 --> 00:30:15,850 sa halip ng pagkakaroon ng ito stupidly na pinangalanang a.out file, 746 00:30:15,850 --> 00:30:21,430 Ko na ngayon gawin kumalatong-o kumusta, pagkatapos hello.c, at 747 00:30:21,430 --> 00:30:22,530 pagkatapos ay pindutin ang Enter. 748 00:30:22,530 --> 00:30:25,510 Walang tila sa mangyayari, ngunit muli mas gusto na may 0 - kapag 749 00:30:25,510 --> 00:30:28,510 walang tila mangyari na nangangahulugan na walang maling nangyari - 750 00:30:28,510 --> 00:30:31,460 kaya sabihin gawin ng ls ngayon, Ipasok, at sa katunayan ako ngayon 751 00:30:31,460 --> 00:30:32,780 magkaroon ng isang halo na programa. 752 00:30:32,780 --> 00:30:38,510 Kaya kung type ko kumusta ngayon, ang utos ay hindi nahanap. 753 00:30:38,510 --> 00:30:39,440 OK,. /. 754 00:30:39,440 --> 00:30:40,220 Kaya akmang-akma. 755 00:30:40,220 --> 00:30:43,170 Kaya dahil sa programang ito sinulat ni ko, at hindi ito ay may 756 00:30:43,170 --> 00:30:45,810 computer,. / kumusta, Ipasok, ay nangangahulugan na 757 00:30:45,810 --> 00:30:47,350 Ako nagpapatakbo ngayon kumusta. 758 00:30:47,350 --> 00:30:48,440 >> Kaya na ito doon. 759 00:30:48,440 --> 00:30:51,070 Ngayon kung ano ang makikita namin kalaunan sa higit pa at higit pang mga linya ng command 760 00:30:51,070 --> 00:30:54,110 argumento na ay nagbibigay-daan sa amin upang makagawa ng higit pa, ngunit para lamang sa mga para sa 761 00:30:54,110 --> 00:30:57,760 kanino maaaring ito ay lumang sumbrero, hayaan mo akong tunay na pumunta sa isang 762 00:30:57,760 --> 00:31:01,910 direktoryo dito at magbibigay sa iyo ng isang teaser kung gaano tao namin 763 00:31:01,910 --> 00:31:05,770 maaaring pumunta tungkol sa pagpapatupad ng halo mundo. 764 00:31:05,770 --> 00:31:10,730 Hayaan akong pumunta sa dito, at ako pagpunta upang buksan ito. 765 00:31:10,730 --> 00:31:13,090 Sa aktwal, ako pagpunta sa ipaliwanag kung ano ang ako ginagawa, kaya 766 00:31:13,090 --> 00:31:15,610 ito ay kapaki-pakinabang. 767 00:31:15,610 --> 00:31:17,410 Hayaan akong muli. 768 00:31:17,410 --> 00:31:19,620 >> Kaya ko na ginagawa ito ng mahabang panahon. 769 00:31:19,620 --> 00:31:23,030 Kaya mapapansin sa kanan may isang pares ng mga 770 00:31:23,030 --> 00:31:26,940 mga direktoryo na ay nang kakatwa na may pangalang source1m at source1w. 771 00:31:26,940 --> 00:31:28,830 Ito ay lamang ulok convention ginagamit namin. 772 00:31:28,830 --> 00:31:31,825 Ay nangangahulugan lamang ng Pinagmulan ng source code, 1 ay nangangahulugan na ito ang isang linggo, at 773 00:31:31,825 --> 00:31:34,000 m nangangahulugan ito Lunes, at w nangangahulugan ito ay Miyerkules. 774 00:31:34,000 --> 00:31:34,900 Kaya walang misteriyoso doon. 775 00:31:34,900 --> 00:31:37,830 Shorthand notation. 776 00:31:37,830 --> 00:31:39,860 Mga asul na mga bagay ay ang mga folder, kung hindi man kilala bilang 777 00:31:39,860 --> 00:31:40,630 mga direktoryo. 778 00:31:40,630 --> 00:31:43,870 Gusto kong pumunta sa folder na iyon sa ngayon, at sa isang normal na computer 779 00:31:43,870 --> 00:31:45,710 Ko lang double-click sa isang icon ng folder at 780 00:31:45,710 --> 00:31:46,810 may lahat ng aking mga file. 781 00:31:46,810 --> 00:31:49,270 Ngunit sa isang kapaligiran ng command line, hindi pa ako makapag gawin 782 00:31:49,270 --> 00:31:52,640 na, kaya sa halip, mayroon akong upang baguhin nang manu-mano ang mga direktoryo. 783 00:31:52,640 --> 00:31:57,900 Kaya kung type ko cd at pagkatapos source1m, Ipasok, mapapansin na ang 784 00:31:57,900 --> 00:32:01,180 aking prompt, ang mga bagay ng kulay puti sa kaliwa, lamang ay nagbago. 785 00:32:01,180 --> 00:32:03,690 At kaya sa katunayan, kapag ito ay sinabi ng mga panaklong at pagkatapos ay ang 786 00:32:03,690 --> 00:32:06,450 maliit squiggle, ang tilda simbolo, na nilalayong lamang ako ay 787 00:32:06,450 --> 00:32:08,800 sa home directory John Harvard, ang kanyang My Documents, 788 00:32:08,800 --> 00:32:10,390 kanyang mga personal na mga file. 789 00:32:10,390 --> 00:32:14,000 Ngunit ngayon sa panaklong sabi ni ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 Ito ay nangangahulugan lamang ako sa isang folder na tinatawag na source1m 791 00:32:17,090 --> 00:32:19,160 na sa home directory John Harvard. 792 00:32:19,160 --> 00:32:22,030 Kaya kung gusto ko ngayon upang ilista ang mga file sa folder na ito, madaling 793 00:32:22,030 --> 00:32:25,300 tanong, type ko lang ls. 794 00:32:25,300 --> 00:32:28,860 At ngayon ko makita ang lahat ng mga file na ko bang unang nilikha para sa ngayon 795 00:32:28,860 --> 00:32:31,020 panayam, ang lahat ng, o karamihan sa mga ito, mangyayari 796 00:32:31,020 --> 00:32:32,740 magtapos sa. c. 797 00:32:32,740 --> 00:32:36,210 >> Kaya hayaan mo akong magpatuloy ngayon at patakbuhin ang gedit ng isang programa na tinatawag na 798 00:32:36,210 --> 00:32:39,140 holloway.c, na nakasulat sa pamamagitan ng ilang mga random na Hacker 799 00:32:39,140 --> 00:32:42,920 sa Internet, na mukhang isang maliit na tulad nito. 800 00:32:42,920 --> 00:32:44,880 At hindi namin pagpunta sa pumunta sa pamamagitan ng isang ito sa anumang 801 00:32:44,880 --> 00:32:48,530 detalyado, ngunit para sa mga mas kumportable, sa partikular, kung 802 00:32:48,530 --> 00:32:50,935 gusto mong tumagal ng hula sa kung ano ang programang ito ang dito. 803 00:32:57,950 --> 00:32:59,990 Maging panatag, kung ikaw ay mas mababa o mas kumportable, 804 00:32:59,990 --> 00:33:01,655 hindi namin kahit sa ganitong uri ng bagay sa pamamagitan ng pagtatapos ng 805 00:33:01,655 --> 00:33:02,160 ito semestre. 806 00:33:02,160 --> 00:33:05,390 Ito ay kung ano ang isang halimbawa ng isang paligsahan ng nakapailalim C, na 807 00:33:05,390 --> 00:33:08,390 paraan isulat ang pinaka-misteriyoso hinahanap program na posibleng 808 00:33:08,390 --> 00:33:10,820 Maaari lumalo ang iba pang mga na smart tao, na katulad 809 00:33:10,820 --> 00:33:13,010 pagsubok na magsulat ng mga bagay at ipakita-off na maaari nilang isulat 810 00:33:13,010 --> 00:33:14,280 mas misteriyoso mga bagay kaysa sa iyo. 811 00:33:14,280 --> 00:33:17,290 Kaya ito ay hindi isang halimbawa ng isang mahusay na nakasulat na programa mula sa 812 00:33:17,290 --> 00:33:21,260 pananaw ng estilo, ito ay isang halimbawa ng isang program na 813 00:33:21,260 --> 00:33:22,860 panalo sa isang paligsahan, para sa mga taong sinusubukang i- 814 00:33:22,860 --> 00:33:24,090 maging malabo at abstract. 815 00:33:24,090 --> 00:33:27,670 >> Kaya kung patatakbuhin namin ang bagay na ito, hayaan mo akong pumunta sa aking terminal na window, 816 00:33:27,670 --> 00:33:28,110 kaya magsalita. 817 00:33:28,110 --> 00:33:29,650 Kaya ang black and white na kapaligiran ay tinatawag na 818 00:33:29,650 --> 00:33:31,160 terminal na window sa pangkalahatan. 819 00:33:31,160 --> 00:33:32,600 Hayaan akong magpatuloy at makatipon ito. 820 00:33:32,600 --> 00:33:34,440 Hindi ako pagpunta sa gamitin ang kumalatong, dahil ang programa na ito ay isang 821 00:33:34,440 --> 00:33:36,340 kaunti misteriyoso at Kailangan ng ibang 822 00:33:36,340 --> 00:33:38,190 tagatala, tinatawag GCC. 823 00:33:38,190 --> 00:33:39,200 Subalit ipinapakita ang parehong bagay. 824 00:33:39,200 --> 00:33:41,130 Ito ay tumatagal ng source code sa code ng bagay. 825 00:33:41,130 --> 00:33:43,940 At ngayon kung nagpatakbo ako ng a.out, na programa 826 00:33:43,940 --> 00:33:46,065 lamang nakita Ginagawa ito. 827 00:33:49,220 --> 00:33:51,170 Upang ang kapwa na taon ay napanalunan na paligsahan. 828 00:33:51,170 --> 00:33:54,020 Paano't paano man, hindi namin pagpunta sa na direksyon, per se. 829 00:33:54,020 --> 00:33:57,400 >> Kaya sabihin aktwal na subukan sa ngayon manunudyo bukod kung ano ang maaari naming gawin 830 00:33:57,400 --> 00:33:59,540 sa mga pangunahing mga bloke ng gusali upang gumawa ng higit pa at higit pa 831 00:33:59,540 --> 00:34:00,590 kawili-wiling programa. 832 00:34:00,590 --> 00:34:02,800 Kaya namin ang nakasulat na programa, kami magpatakbo ng programa. 833 00:34:02,800 --> 00:34:05,780 Ngayon ay maaari namin ang aktwal na pasimplehin at hindi na na magsulat 834 00:34:05,780 --> 00:34:07,210 kumalatong ang salita sa prompt. 835 00:34:07,210 --> 00:34:10,710 Ito lumiliko out ng aming mga programa makakuha ng higit pang misteriyoso, kaya namin, o 836 00:34:10,710 --> 00:34:14,699 mas kumplikado kaysa, maaari naming aktwal na patakbuhin ang command na ito. 837 00:34:14,699 --> 00:34:17,610 Kaya hayaan mo akong bumalik sa aking home directory, kaya na magsalita, hayaan mo akong 838 00:34:17,610 --> 00:34:20,750 alisin - rm ay ang alisin ang utos - I'm upang alisin 839 00:34:20,750 --> 00:34:23,060 ang file na tinatawag a.out at kumusta. 840 00:34:23,060 --> 00:34:25,489 At ngayon ay mapapansin sa isang kapaligiran ng command line, tulad ng sa 841 00:34:25,489 --> 00:34:27,800 GUI, makakakuha ka ng prompt. Hindi ko maaaring i-click ng isang pindutan bagaman; ko 842 00:34:27,800 --> 00:34:31,040 i-type ang y para sa yes, y para sa yes. 843 00:34:31,040 --> 00:34:33,460 At ngayon kung ako type ls muli, notice na mga berde 844 00:34:33,460 --> 00:34:35,469 programa - a.out at kumusta - 845 00:34:35,469 --> 00:34:35,734 ay nawala. 846 00:34:35,734 --> 00:34:37,340 Mag-ingat rm. 847 00:34:37,340 --> 00:34:39,739 Maaari itong gumawa ng mga masamang bagay, tulad ng maaari mong sa pamamagitan ng pagkaladkad 848 00:34:39,739 --> 00:34:40,810 bagay sa iyong basura. 849 00:34:40,810 --> 00:34:43,989 >> Kaya ngayon sabihin magpatuloy - at maaari kong gawin ito - kumalatong-o 850 00:34:43,989 --> 00:34:45,139 kumusta, kumusta - 851 00:34:45,139 --> 00:34:46,884 Na ako nababato type na utos. 852 00:34:46,884 --> 00:34:48,080 Kahit na-type ko ito ng kaunti mabilis. 853 00:34:48,080 --> 00:34:51,870 Upang maaari naming halip gawin gumawa ng halo. 854 00:34:51,870 --> 00:34:53,880 Kaya't ay hindi tagatala. 855 00:34:53,880 --> 00:34:57,720 Ito ay isang friendly na programa na may Linux, sa 856 00:34:57,720 --> 00:34:59,070 kaso - operating system - 857 00:34:59,070 --> 00:35:02,480 na automates ang proseso ng kino-compile ang mga programa. 858 00:35:02,480 --> 00:35:05,555 Kaya sa halip na alala kumalatong-o filename at 859 00:35:05,555 --> 00:35:08,190 pagkatapos iba pa, lalo na sa sandaling mga linya makakuha ng na at 860 00:35:08,190 --> 00:35:10,110 na, maaari ko lang magsulat ang gumawa. 861 00:35:10,110 --> 00:35:12,030 At ito ay upang sabihin ang lahat ng buong grupo ng mga bagay-bagay na 862 00:35:12,030 --> 00:35:13,940 namin ay makakita ang semestre na ito. 863 00:35:13,940 --> 00:35:17,500 Ngunit mapansin ngayon kung nagta-type ako ls, kumusta pabalik sa aking direktoryo. 864 00:35:17,500 --> 00:35:19,850 At sa katunayan ang maaari kong patakbuhin ito sa. / Kumusta. 865 00:35:19,850 --> 00:35:23,330 Kaya gumawa lamang automates ang proseso ng tumatakbo kung ano ang, 866 00:35:23,330 --> 00:35:26,910 sa kasong ito, ang isang mas matagal, mas kumplikado command. 867 00:35:26,910 --> 00:35:29,060 Kaya kami ay upang simulan ang paggamit ng Magsagawa, dahil lang sa ito ng maraming 868 00:35:29,060 --> 00:35:30,530 mas user friendly. 869 00:35:30,530 --> 00:35:32,770 >> Ngunit ngayon sabihin ng mas kawili-wiling programa 870 00:35:32,770 --> 00:35:34,650 pa sa kamustahin. 871 00:35:34,650 --> 00:35:38,680 Kaya sa mga programa namin na nakasulat sa gayon ay malayo may pangunahing. 872 00:35:38,680 --> 00:35:40,890 Na lang ang default na bagay na kicks ng lahat off. 873 00:35:40,890 --> 00:35:43,340 Ngunit mayroong iba pang mga function out doon pati na rin, at 874 00:35:43,340 --> 00:35:45,890 stdio.h ay ang mga bagay na nakita natin sa tuktok ng aming 875 00:35:45,890 --> 00:35:48,480 file bago, at na kung ano ang kilala bilang ang karaniwang library. 876 00:35:48,480 --> 00:35:51,300 Sa loob ng standard library ng buong bungkos ng mga function 877 00:35:51,300 --> 00:35:53,850 may iba sinulat ni, at maaari naming simulan ang paggamit ng mga 878 00:35:53,850 --> 00:35:55,050 function na magsulat ng higit pang mga 879 00:35:55,050 --> 00:35:56,760 kawili-wiling programa ating sarili. 880 00:35:56,760 --> 00:35:58,370 >> Kaya hayaan mo akong bumalik sa appliance. 881 00:35:58,370 --> 00:35:59,820 Ako pagpunta upang isara ang window ng terminal. 882 00:35:59,820 --> 00:36:02,630 Pupunta ako upang isara ang mga bagay na aming sinulat ni mas maaga, at pumunta lamang 883 00:36:02,630 --> 00:36:07,350 sa hello.c, at mapapansin ngayon ang maaari kong gawin ang mga sumusunod. 884 00:36:07,350 --> 00:36:09,730 Kamusta mundo ay hindi lahat na kawili-wili, nais kong 885 00:36:09,730 --> 00:36:11,770 -personalize ang program na ito para sa aking sarili. 886 00:36:11,770 --> 00:36:13,440 Kaya sa halip ng mga sinasabi mundo, ako pagpunta sa 887 00:36:13,440 --> 00:36:14,830 sige at sabihin - 888 00:36:14,830 --> 00:36:16,880 Maaari kong i-type ang David - ngunit ito ay talagang uri ng 889 00:36:16,880 --> 00:36:18,050 sa panimula ang parehong. 890 00:36:18,050 --> 00:36:19,970 Ngunit sabihin subukan ang placeholder ideya. 891 00:36:19,970 --> 00:36:24,460 Manariwa sa diwa na sa C, sa halip na sa printf, nagkaroon kami ng mga 892 00:36:24,460 --> 00:36:28,110 placeholder, at mayroong higit pa sa% d. 893 00:36:28,110 --> 00:36:31,150 Kaya% d ay, quick katinuan check. 894 00:36:31,150 --> 00:36:32,310 Okay, decimal na numero, na. 895 00:36:32,310 --> 00:36:33,860 Decimal digit, na ang lahat. 896 00:36:33,860 --> 00:36:37,755 Kaya% c, bilang ay nakatagpo namin, pagpunta sa isang character. 897 00:36:37,755 --> 00:36:40,530 Ilagay ang isang character dito, isang sulat sa pamamagitan ng z, 898 00:36:40,530 --> 00:36:41,600 o simbolo ng bantas. 899 00:36:41,600 --> 00:36:45,590 Ang isang character,% f, sinuman malaman mula sa iba pang mga wika? 900 00:36:45,590 --> 00:36:47,020 Kaya ng lumulutang na halaga ng point. 901 00:36:47,020 --> 00:36:47,880 Ang isang tunay na numero. 902 00:36:47,880 --> 00:36:51,550 Kaya hindi decimal numero - ito ay talagang isang tunay na numero na may 903 00:36:51,550 --> 00:36:54,130 isang decimal point, at ilang bilang ng mga digit sa kaliwa 904 00:36:54,130 --> 00:36:55,520 at kanan nito. 905 00:36:55,520 --> 00:36:58,060 % S, string. 906 00:36:58,060 --> 00:36:59,530 Na kami ay pagpunta upang makita ang medyo madalas. 907 00:36:59,530 --> 00:37:02,140 String A, muli, lamang ang isang salita, parirala, ang pagkakasunud-sunod ng mga 908 00:37:02,140 --> 00:37:03,330 indibidwal na mga character. 909 00:37:03,330 --> 00:37:06,730 At bilang wakas, lld? 910 00:37:06,730 --> 00:37:08,210 Kaya ito ay higit pa ng isang kaso ng sulok. 911 00:37:08,210 --> 00:37:09,850 Mahaba, mahaba decimal. 912 00:37:09,850 --> 00:37:12,035 Kaya kung nais mong hindi lamang bilang na ito malaki, 913 00:37:12,035 --> 00:37:14,160 gusto ng mas malaking numero, ka upang tukuyin 914 00:37:14,160 --> 00:37:16,400 ang computer na ito ng isang partikular na laki. 915 00:37:16,400 --> 00:37:17,610 >> Kaya sabihin tweak ito ng kaunti. 916 00:37:17,610 --> 00:37:20,610 Sa halip na lamang hard code sa David, hayaan mo akong bahagyang 917 00:37:20,610 --> 00:37:22,460 sabihin dynamic s%. 918 00:37:22,460 --> 00:37:25,790 Kaya ilagay ang% s dito, kung saan ay isang placeholder para sa isang string. 919 00:37:25,790 --> 00:37:30,500 Pagkatapos ipaalam sa akin gawin kuwit, at pagkatapos ay "David" sa paglipas dito. 920 00:37:30,500 --> 00:37:32,770 Ngayon, ito ay hindi lahat na intellectually kawili-wili, 921 00:37:32,770 --> 00:37:35,060 dahil ang lahat ng nagawa ko na ngayon ay talagang lumikha ng mas maraming trabaho para sa 922 00:37:35,060 --> 00:37:35,790 ang computer. 923 00:37:35,790 --> 00:37:39,660 Sa halip na sabihin sa computer na ito nang sabay-sabay, ako ngayon 924 00:37:39,660 --> 00:37:43,760 sinasabi gawin ito at magpasok ng isang string sa dito sa kalaunan, kuwit, 925 00:37:43,760 --> 00:37:44,950 dito ay na string. 926 00:37:44,950 --> 00:37:47,220 Kaya ito ay hindi isang mas mahusay na pagpapabuti, ngunit ito ay hindi bababa sa 927 00:37:47,220 --> 00:37:49,010 isang hakbang patungo sa mas kawili-wiling programa. 928 00:37:49,010 --> 00:37:51,240 Dahil ngayon, hayaan mo akong magpatuloy at ang window na ito ng kaunti 929 00:37:51,240 --> 00:37:56,850 mas malaki, hayaan mo akong magpatuloy at patakbuhin ang gumawa ng halo. 930 00:37:56,850 --> 00:38:01,340 At ngayon,. / A.out ay hindi gumagana, bakit? 931 00:38:03,880 --> 00:38:05,570 Lahat ng karapatan, ngayon kumusta na tinatawag. 932 00:38:05,570 --> 00:38:09,400 Kaya muli gumawa, at din kumalatong na may isang-o, pangalanan ang 933 00:38:09,400 --> 00:38:11,120 programa ng isang bagay na mas kawili-wiling. 934 00:38:11,120 --> 00:38:13,060 At voila: ngayon sabi ni si David. 935 00:38:13,060 --> 00:38:14,590 >> Lahat ng karapatan, pa rin ng bobo programa. 936 00:38:14,590 --> 00:38:18,070 Kaya ngayon sabihin aktwal na bumalik dito at ipakilala ang paniwala 937 00:38:18,070 --> 00:38:18,810 ng isang variable. 938 00:38:18,810 --> 00:38:21,600 Hindi magiging maganda ang kung maaari ko ipinapahayag ng variable 939 00:38:21,600 --> 00:38:23,150 na ang uri ay string? 940 00:38:23,150 --> 00:38:26,720 At halaga ng variable na aktwal na ay mula sa gumagamit 941 00:38:26,720 --> 00:38:27,810 sa kanya o sarili. 942 00:38:27,810 --> 00:38:30,240 Sa mang, ako tumawag sa aking mga variable na s, na 943 00:38:30,240 --> 00:38:32,410 isang karaniwang convention kapag mayroon kang isang variable na tinatawag na 944 00:38:32,410 --> 00:38:33,250 ang string. 945 00:38:33,250 --> 00:38:35,670 Ako pagpunta sa gawin ang katumbas sign, at pagkatapos ay ako pagpunta sa tumawag sa isang 946 00:38:35,670 --> 00:38:38,030 function na tinatawag GetString. 947 00:38:38,030 --> 00:38:40,830 Kaya GetString ay hindi isang bagay na ay binuo sa C. Ito ay 948 00:38:40,830 --> 00:38:43,330 isang function na ang CS50 kawani sinulat ni, talagang para lamang sa 949 00:38:43,330 --> 00:38:45,670 mga unang ilang linggo, upang pasimplehin ang proseso ng 950 00:38:45,670 --> 00:38:49,450 pagkuha ng input ng user at pagkakaroon ng input ng user sa form 951 00:38:49,450 --> 00:38:51,960 ng string, o numero, at tulad. 952 00:38:51,960 --> 00:38:55,520 Kaya GetString ay tulad ng printf, ngunit malinaw naman sa halip na 953 00:38:55,520 --> 00:38:58,700 i-print ito upang gawin kung ano ang pangalan nito sabi, kumuha ng isang string. 954 00:38:58,700 --> 00:39:00,970 Ngunit upang gamitin ang GetString, kami ay pagpunta sa may upang gumawa ng isang pagbabago 955 00:39:00,970 --> 00:39:03,180 dito, lampas ito. 956 00:39:03,180 --> 00:39:07,170 Kaya intuitively, ang program na ito, sana, ay pagpunta sa sa paanuman 957 00:39:07,170 --> 00:39:09,700 makakuha ng isang string mula sa gumagamit, at pagkatapos ay kung ano ang pagpunta sa gawin 958 00:39:09,700 --> 00:39:11,460 may string na iyon, na tinatawag na mga? 959 00:39:15,060 --> 00:39:16,470 Lamang ito upang i-print ito, i-right? 960 00:39:16,470 --> 00:39:18,870 Hindi pa rin ng stimulating programa dahil lahat ng ito ay pagpunta 961 00:39:18,870 --> 00:39:22,160 gawin ay ang plug sa halaga na kung saan% s 962 00:39:22,160 --> 00:39:23,750 sabi na dapat ito pumunta. 963 00:39:23,750 --> 00:39:25,290 >> Kaya hayaan ng hindi bababa sa makita ito sa aksyon. 964 00:39:25,290 --> 00:39:27,040 Hayaan akong i-save at mag-zoom out. 965 00:39:27,040 --> 00:39:30,280 Ngayon sa aking terminal na window dito, ang maliit na hiwa ng isa, 966 00:39:30,280 --> 00:39:32,760 hayaan mo akong muli gawin gumawa ng halo. 967 00:39:32,760 --> 00:39:35,160 Okay, at ah, mapahamak; Nakatanggap ako ng isang buong grupo ng mga error. 968 00:39:35,160 --> 00:39:38,020 Hayaan ang mag-scroll up ako, at nakikita namin ang aming unang - 969 00:39:38,020 --> 00:39:40,430 kaya sabihin aktwal na gawin ito sa isang mas mas malaking window upang 970 00:39:40,430 --> 00:39:42,110 maaaring makita kung paano di-wastong ko screwed up - 971 00:39:42,110 --> 00:39:44,460 kaya't kumusta. 972 00:39:44,460 --> 00:39:46,540 Okay, na kalamidad, tama? 973 00:39:46,540 --> 00:39:48,740 Ko ang nakasulat na tatlong linya ng code, at 974 00:39:48,740 --> 00:39:50,070 ito ay ibinigay sa akin ang 12 error. 975 00:39:50,070 --> 00:39:51,980 Kaya bakit ito? 976 00:39:51,980 --> 00:39:55,720 Kaya masuwerte, malimit kapag nakita mo ang marami, maraming mga error 977 00:39:55,720 --> 00:39:57,730 pagsigam nang sabay-sabay, talaga lamang dahil ikaw 978 00:39:57,730 --> 00:39:59,760 nalilito ang computer dito. 979 00:39:59,760 --> 00:40:02,330 At nananatiling nalilito sa pamamagitan ng ang oras ay nakakakuha ito pababa dito. 980 00:40:02,330 --> 00:40:04,400 At kaya lamang nagsisimula balakid, at stumbling, at 981 00:40:04,400 --> 00:40:07,310 pagsigam mas nakakatakot bagay kaysa sa aktwal na nalalapat. 982 00:40:07,310 --> 00:40:10,120 Kaya sa pangkalahatan, palaging magsimula sa sa tuktok. 983 00:40:10,120 --> 00:40:13,320 >> Kaya ang pinakatuktok Halimbawa ng pula, ang 984 00:40:13,320 --> 00:40:14,740 mensahe ng error na ito. 985 00:40:14,740 --> 00:40:17,750 Gamitin ng hindi nagbigay-alam identifier string, ang nakuha ko 986 00:40:17,750 --> 00:40:19,160 ibig sabihin ng pamantayan sa? 987 00:40:19,160 --> 00:40:19,900 Ko hindi. 988 00:40:19,900 --> 00:40:24,180 Nilalayong ko ang string, ngunit ito ay dahil, masyadong, ang salita string 989 00:40:24,180 --> 00:40:26,020 na panatilihing ako gamit pasalita aktwal 990 00:40:26,020 --> 00:40:27,240 Hindi umiiral ang sa C alinman. 991 00:40:27,240 --> 00:40:29,470 Ito ay isang bagay na gagamitin namin para sa unang linggo o dalawang 992 00:40:29,470 --> 00:40:34,500 dito, ngunit ito ay umiiral sa isang file na tinatawag na cs50.h. 993 00:40:34,500 --> 00:40:37,110 Kaya sa ngayon, alam na mayroong iba pang mga library na ito na ang 994 00:40:37,110 --> 00:40:39,330 kawani sinulat ni, kaya ito ay nakasulat na mas kamakailan kaysa 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 Ngunit sa loob ng cs50.h isang kahulugan, ang isang kasingkahulugan ng 997 00:40:45,020 --> 00:40:48,310 uri, na lumilikha ng salita string na ito. 998 00:40:48,310 --> 00:40:50,890 >> Kaya ngayon hayaan mo akong bumalik sa aking terminal na window. 999 00:40:50,890 --> 00:40:53,200 Ako pagpunta upang i-clear ang buong gulo sa pamamagitan ng Ctrl-L. Bibigyan namin lamang 1000 00:40:53,200 --> 00:40:55,700 punasan ang lahat malinis, at ako pagpunta sa sige at gumawa ng 1001 00:40:55,700 --> 00:40:57,860 kumusta muli, ang Enter. 1002 00:40:57,860 --> 00:40:59,440 Kaya kung ano ang nangyari ngayon? 1003 00:40:59,440 --> 00:41:01,150 Ngayon ang lahat ng mga error nagpunta ang layo. 1004 00:41:01,150 --> 00:41:02,230 Kaya kung ano na ko talagang gawin? 1005 00:41:02,230 --> 00:41:05,920 Tinuruan ko na ang computer na string umiiral, at ito ay 1006 00:41:05,920 --> 00:41:07,890 sa file na iyon na tinatawag na cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Kaya itigil ang nagrereklamo, dahil ngayon ay alam mo kung saan makikita ang 1008 00:41:10,930 --> 00:41:13,220 deklarasyon na function na upang magsalita. 1009 00:41:13,220 --> 00:41:15,200 Kung saan ito umiiral sa mundo. 1010 00:41:15,200 --> 00:41:18,820 >> Kaya ngayon ako pagpunta upang magpatuloy at magpatakbo ng halo. 1011 00:41:18,820 --> 00:41:22,300 Mukhang kong magkaroon ng isang walang-katapusang loop, mangyari walang. 1012 00:41:25,530 --> 00:41:26,870 Kaya kailangan kong i-type ng isang bagay dito, kanan. 1013 00:41:26,870 --> 00:41:29,650 Ang unang linya ng code sa aking programa GetString. 1014 00:41:29,650 --> 00:41:31,750 Kaya literal ito ay naghihintay para sa akin upang makakuha ng isang string. 1015 00:41:31,750 --> 00:41:33,680 Kaya sa pakiramdam na oo, ito ay isang walang-katapusang loop. 1016 00:41:33,680 --> 00:41:36,520 Tila sa GetString ay default na pag-uugali na namin 1017 00:41:36,520 --> 00:41:37,510 sinulat ni - sa mga tauhan - 1018 00:41:37,510 --> 00:41:39,550 na lamang na nagsasabing maghintay at maghintay at maghintay at maghintay at maghintay, 1019 00:41:39,550 --> 00:41:42,550 hanggang user ang nagbibigay sa iyo ng isang string sa pamamagitan ng pag-type ng isang bagay. 1020 00:41:42,550 --> 00:41:46,000 Kaya hayaan mo akong magpatuloy at uri sa D-a-v - i-d, Ipasok. 1021 00:41:46,000 --> 00:41:47,420 At doon ito ay, si David. 1022 00:41:47,420 --> 00:41:50,430 >> Ngayon ito tila tulad ng ito ay isang gawa? 1023 00:41:50,430 --> 00:41:52,810 Hayaan akong magpatuloy at i-type sa Tommy. 1024 00:41:52,810 --> 00:41:54,740 Ipasok, okay, mukhang nagtatrabaho. 1025 00:41:54,740 --> 00:41:59,130 Works para sa Rob, gawa para sa Zamyla, ay gumagana para sa - okay. 1026 00:41:59,130 --> 00:42:01,000 Kaya pagpunta sa gumana, malamang. 1027 00:42:01,000 --> 00:42:05,030 Kaya dapat itong i-print ang anumang aktwal na namin bigyan ito, 1028 00:42:05,030 --> 00:42:07,830 at maaari naming ng kaunti mahirap dito. 1029 00:42:07,830 --> 00:42:12,130 Hayaan ang mga makita kung ginagawa namin ng isang bagay tulad ng halo. 1030 00:42:12,130 --> 00:42:18,000 Maaaring pumunta dito, sabihin makita, kopyahin, i-paste. 1031 00:42:18,000 --> 00:42:19,950 Hindi ako pagpunta sa i-paste na maraming beses dito. 1032 00:42:19,950 --> 00:42:24,410 Paste, okay, Shift + Ctrl + V. Kaya kung ano ang maaari 1033 00:42:24,410 --> 00:42:26,970 mangyari na ang masamang dito? 1034 00:42:26,970 --> 00:42:27,770 >> Okay, sa gayon, segfaults. 1035 00:42:27,770 --> 00:42:29,710 Kaya ang ilan sa inyo may bago background ay malaman na 1036 00:42:29,710 --> 00:42:32,710 pangkalahatan, ang pagbibigay ng mga computer ng maraming input kapag sila 1037 00:42:32,710 --> 00:42:36,140 marahil ay hindi ginawa upang makatanggap ng mahabang pangalan tulad nito - masamang 1038 00:42:36,140 --> 00:42:36,740 bagay mangyari. 1039 00:42:36,740 --> 00:42:39,230 Sa katunayan, sa mundo ng web, masyadong, nangyari ito lubos ng kaunti, 1040 00:42:39,230 --> 00:42:41,000 kung saan kapag ikaw ay pagdidisenyo ng website, kapag handa ka 1041 00:42:41,000 --> 00:42:43,850 Pagdidisenyo Facebook, mayroon kang gumawa ng mga arbitrary desisyon up 1042 00:42:43,850 --> 00:42:45,370 harap, tulad ng kung gaano katagal aabutin ng isang tao 1043 00:42:45,370 --> 00:42:46,360 Facebook username? 1044 00:42:46,360 --> 00:42:48,050 O kung gaano katagal ang pangalan ng isang tao? 1045 00:42:48,050 --> 00:42:50,110 Gaano katagal ang numero ng telepono ng isang tao at ang gusto. 1046 00:42:50,110 --> 00:42:53,580 At kung ang mga programmer gumawa masamang pagpapalagay, ang mga programa ay masira 1047 00:42:53,580 --> 00:42:56,640 dahil sinubukan mong na nagbibigay sa kanila ng higit na output, higit pang mga input 1048 00:42:56,640 --> 00:42:58,330 sa halip, kaysa sa mayroon silang memory. 1049 00:42:58,330 --> 00:43:01,860 O RAM ay inilalaan para dito, at kaya kung ngayon ko pindutin ang Enter, 1050 00:43:01,860 --> 00:43:04,640 programa na aktwal na nagtrabaho, sapagkat hindi namin nagawang sa library 1051 00:43:04,640 --> 00:43:06,790 at aktwal na namin inaasahang partikular na kasong ito. 1052 00:43:06,790 --> 00:43:10,900 Ngunit walang pagsala semestre na ito, ikaw ay sumulat ng hindi bababa sa isang 1053 00:43:10,900 --> 00:43:13,280 programa na sabihin ng mga salitang ito. 1054 00:43:13,280 --> 00:43:16,520 Tandaan ang mga linggo mula ngayon, siguro dalawang araw mula ngayon. 1055 00:43:16,520 --> 00:43:18,760 Segmentation fault ay isang masamang bagay. 1056 00:43:18,760 --> 00:43:21,920 Ito ay sumangguni sa iyong paggawa ng isang bagay na ang computer 1057 00:43:21,920 --> 00:43:23,310 ay hindi inaasahan. 1058 00:43:23,310 --> 00:43:25,810 At sa kasong iyon,, programmer, ay hindi inaasahan. 1059 00:43:25,810 --> 00:43:27,720 Karamihan bang kung ano ito tumpok ng mga medyas, may mga iba't-ibang 1060 00:43:27,720 --> 00:43:29,520 sulok kaso kami nakatagpo. 1061 00:43:29,520 --> 00:43:32,340 Katulad nito sa mga programa kung hindi mo inaasahan kung gaano katagal ay 1062 00:43:32,340 --> 00:43:33,310 ang pangalan ng isang tao upang maging. 1063 00:43:33,310 --> 00:43:35,890 O kung ano kung mayroon ako ng nakahahamak na gumagamit, at ang kanyang pangalan ay 1064 00:43:35,890 --> 00:43:37,230 aktwal na medyo maikling, ngunit lamang sinusubukan nila 1065 00:43:37,230 --> 00:43:37,960 sa gulo sa akin? 1066 00:43:37,960 --> 00:43:40,490 Kung ano ang nangyayari na ang pag-uugali ng aking mga programa? 1067 00:43:40,490 --> 00:43:43,930 Well, sa kasong iyon, isang bagay na maaaring aktwal na pag-crash ng. 1068 00:43:43,930 --> 00:43:44,750 >> Kaya sabihin gawin ito. 1069 00:43:44,750 --> 00:43:46,860 Sa 90 minuto, ito ay isang kahindik-hindik na mahabang panahon 1070 00:43:46,860 --> 00:43:47,780 computer science. 1071 00:43:47,780 --> 00:43:49,550 Bakit hindi namin sa ugali ng pagkuha ng limang minuto 1072 00:43:49,550 --> 00:43:51,520 masira dito, at kapag dumating namin pabalik, makikita namin sumisid sa ilang 1073 00:43:51,520 --> 00:43:53,430 mas kumplikado at kapansin-pansin na mga programa? 1074 00:43:53,430 --> 00:43:54,680 Limang minuto. 1075 00:43:56,910 --> 00:43:58,160 >> Ayos lang. 1076 00:44:01,138 --> 00:44:02,780 Kaya isang mabilis na komento. 1077 00:44:02,780 --> 00:44:05,590 Ako Sinabi na kahit na ito ay sa screen bago, kung ano ang 1078 00:44:05,590 --> 00:44:08,880 dumating ng aking bibig ay cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 Ito ay tama. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Kaya ngayon maaari mong subukan ang RSVPing para ito sa / tanghalian. 1081 00:44:16,030 --> 00:44:16,980 Ngunit sabihin gawin ito ngayon. 1082 00:44:16,980 --> 00:44:20,150 Kaya ito ay sobrang mabilis, sobrang bagong para sa maraming mga tao. 1083 00:44:20,150 --> 00:44:21,560 Lumang sumbrero para sa ilang mga tao. 1084 00:44:21,560 --> 00:44:24,930 Kaya sabihin rewind para sa sandali lamang, at makita kung paano namin nakuha sa 1085 00:44:24,930 --> 00:44:29,350 ito kumusta na output ng mundo sandali lamang ang nakalipas. 1086 00:44:29,350 --> 00:44:31,780 >> Sa una, ito CS50 Appliance. 1087 00:44:31,780 --> 00:44:34,270 Muli, ang piraso ng software, problema itakda ang 1 pagpunta sa sabihin sa 1088 00:44:34,270 --> 00:44:36,610 sa iyo kung paano i-download ito, kung saan upang i-download, kung ano i-click ang 1089 00:44:36,610 --> 00:44:37,430 at iba pa. 1090 00:44:37,430 --> 00:44:39,670 At pagkatapos ay sa sandaling sundin mo ang mga tagubilin, makikita mo magagawang 1091 00:44:39,670 --> 00:44:42,840 upang i-maximize ang iyong window, at iyong Mac o PC ang magiging hitsura ng 1092 00:44:42,840 --> 00:44:43,910 maliit na isang bagay na tulad nito. 1093 00:44:43,910 --> 00:44:47,170 Ang isang itim na background, home folder sa itaas kung saan ang lahat ng 1094 00:44:47,170 --> 00:44:49,850 iyong mga file, ang basura ng lata sa kaliwang tuktok, 1095 00:44:49,850 --> 00:44:51,130 isang menu sa ibaba. 1096 00:44:51,130 --> 00:44:54,010 Kaya muli, medyo katulad sa espiritu sa Mac OS o Windows, 1097 00:44:54,010 --> 00:44:56,040 kahit na ang mangyayari sa Linux. 1098 00:44:56,040 --> 00:44:58,120 Kaya kung ano ang susunod naming gawin? 1099 00:44:58,120 --> 00:44:59,580 Well, nagsimula kaming pagsusulat programa. 1100 00:44:59,580 --> 00:45:02,260 At isipin ang mula sa nakaraang linggo na ang lahat ng ito ay tumatagal upang magsulat ng isang 1101 00:45:02,260 --> 00:45:04,970 programa ay isang simpleng editor ng teksto, 1102 00:45:04,970 --> 00:45:06,550 tulad ng Notepad o TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Lantaran, kahit mo maaaring gamitin ang Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 Ngunit ang masamang bagay ay malaon mangyayari, dahil na isang napaka 1105 00:45:11,170 --> 00:45:13,930 malupit na solusyon para sa pagsusulat ng programa, kasama bibigyan ito 1106 00:45:13,930 --> 00:45:15,400 i-save ito sa maling format ng file. 1107 00:45:15,400 --> 00:45:18,150 Subalit isang editor ng teksto, isang word processor, ang lahat ng na 1108 00:45:18,150 --> 00:45:19,390 kinakailangan upang magsulat ng isang programa. 1109 00:45:19,390 --> 00:45:23,420 >> Kaya sa CS50 Appliance, maaari naming gawin ito sa isang simpleng paraan. 1110 00:45:23,420 --> 00:45:25,580 Maaari naming i-click lamang ang icon na ito sa ibabang kaliwang. 1111 00:45:25,580 --> 00:45:28,790 At muli, ang problema magtakda ng 1 ay payuhan ng ito, at voila - 1112 00:45:28,790 --> 00:45:31,210 makakakuha ka ng ito itim at puti interface kung saan maaari naming magsimula 1113 00:45:31,210 --> 00:45:32,160 sumusulat code. 1114 00:45:32,160 --> 00:45:34,960 Kaya natin simulan ang muling pagsusulat ng isang napaka-simpleng programa. 1115 00:45:34,960 --> 00:45:38,890 Ako pagpunta sa pumunta sa File, I-save, at ako pagpunta sa tumawag sa 1116 00:45:38,890 --> 00:45:42,870 ito, sabihin nating, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 At ako na nagsasabi sa ito sa pamamagitan ng pag-click sa jharvard, ilagay ito 1118 00:45:45,410 --> 00:45:46,750 sa home directory nito, hindi ko talagang pakialam 1119 00:45:46,750 --> 00:45:47,980 kung saan ito napupunta. 1120 00:45:47,980 --> 00:45:49,090 At pagkatapos ay I-save. 1121 00:45:49,090 --> 00:45:50,880 At ngayon maaari kong simulan ang pagsusulat ng aking programa. 1122 00:45:50,880 --> 00:45:53,560 At manariwa sa diwa ko mula sa mas maaga na mayroon akong sumulat int 1123 00:45:53,560 --> 00:45:55,400 pangunahing (walang bisa). 1124 00:45:55,400 --> 00:45:57,000 Mag-zoom in sa kaliwang tuktok. 1125 00:45:57,000 --> 00:46:02,670 At pagkatapos ay gusto kong sabihin printf, magsagawa ng dalawang. 1126 00:46:02,670 --> 00:46:05,690 At ngayon isang newline, malapit quote, isara 1127 00:46:05,690 --> 00:46:07,820 panaklong, semicolon. 1128 00:46:07,820 --> 00:46:10,560 At pagkatapos ay pumunta down na ako dito sa aking terminal na window na 1129 00:46:10,560 --> 00:46:12,840 naka-embed sa gedit, para sa kaginhawahan. 1130 00:46:12,840 --> 00:46:15,200 At ako pagpunta upang magpatuloy at isulat ang gumawa kumusta, ngunit hindi 1131 00:46:15,200 --> 00:46:17,500 kumusta nag-iisa, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Kaya ang aking file ng tinatawag hello2.c. Aking file samakatuwid 1133 00:46:20,490 --> 00:46:23,510 ay dapat na matawag hello2, sa kasong ito. 1134 00:46:23,510 --> 00:46:26,490 Dammit, kung ano ang gagawin ko mali? 1135 00:46:26,490 --> 00:46:29,490 Karapatan lahat, kaya ko malinaw tinanggal ng isang line, kung manariwa sa diwa mo kung ano ang 1136 00:46:29,490 --> 00:46:31,020 nakaraang programa hitsura. 1137 00:46:31,020 --> 00:46:32,480 Ngunit sabihin makita kung hindi namin maaaring manunudyo ito bukod. 1138 00:46:32,480 --> 00:46:35,310 Sa kasamaang palad, ang karamihan ng mga tao na isulat ang mga programa na kung saan 1139 00:46:35,310 --> 00:46:38,820 isulat namin ang mga programa ay hindi gawing simple ang mga bagay sa lahat ng na mahusay na. 1140 00:46:38,820 --> 00:46:41,520 Kaya kami ay may sa uri ng sagap sa kung ano ang hindi masyadong gumawa 1141 00:46:41,520 --> 00:46:44,050 kahulugan dito at makita kung maaari naming malaman kung ano ang mali. 1142 00:46:44,050 --> 00:46:46,700 Ang unang linya sabi nang kataon lamang deklarasyon C 1143 00:46:46,700 --> 00:46:49,310 printf may uri int ang function na ng library. 1144 00:46:49,310 --> 00:46:51,210 OK, naunawaan ko ang bahagi ng na. 1145 00:46:51,210 --> 00:46:54,570 Ngunit mukhang alluding sa katotohanan na ginamit ko printf 1146 00:46:54,570 --> 00:46:55,700 mali, sa paanuman. 1147 00:46:55,700 --> 00:46:56,930 At kung ano ang kahulugan ay mali? 1148 00:46:56,930 --> 00:46:59,970 Ko lang ay hindi magturo sa computer na ito sa isang file 1149 00:46:59,970 --> 00:47:01,420 tinatawag stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Ngayon ko lang lamang kabisaduhin ngayon na printf ay 1151 00:47:04,120 --> 00:47:06,540 sa stdio.h, at sa katunayan may makikita iba pang 1152 00:47:06,540 --> 00:47:08,900 mga function sa parehong file na iyon na namin masanay sa. 1153 00:47:08,900 --> 00:47:12,490 >> Kaya ngayon hayaan mo akong sige at pindutin ang Ctrl-L lang i-clear na 1154 00:47:12,490 --> 00:47:16,050 ang layo, muling palabas ng pelikula gumawa hello2, at voila. 1155 00:47:16,050 --> 00:47:19,490 At sa command na ito muli, mas kumplikado kaysa sa ipapaliwanag namin kung para sa 1156 00:47:19,490 --> 00:47:20,520 sa mga layuning ngayon. 1157 00:47:20,520 --> 00:47:23,570 Ngunit ito ay magpatakbo ng kumalatong, at kumalatong tumatagal ng source code at 1158 00:47:23,570 --> 00:47:24,870 spits 0s at 1s. 1159 00:47:24,870 --> 00:47:28,610 At ang mga 0s at 1s sa kasong ito ay tinatawag na kung ano? 1160 00:47:28,610 --> 00:47:29,470 Okay, bagay ang code. 1161 00:47:29,470 --> 00:47:32,210 At ang file na sila sa tinatawag na, kaya, 1162 00:47:32,210 --> 00:47:33,820 hello2, sa kasong ito. 1163 00:47:33,820 --> 00:47:37,040 Dahil ang aking text file ay hello2.c, ang Enter. 1164 00:47:37,040 --> 00:47:39,820 At ngayon ko dalawang exclamation point, exclamation 1165 00:47:39,820 --> 00:47:41,880 point, exclamation point. 1166 00:47:41,880 --> 00:47:45,430 Lahat ng karapatan, kaya na namin ngayon ang kakayahan upang makakuha ng mga string, 1167 00:47:45,430 --> 00:47:46,280 tila. 1168 00:47:46,280 --> 00:47:48,190 Well, ano pa ang maaari naming makakuha ng mula sa mga gumagamit? 1169 00:47:48,190 --> 00:47:51,010 >> Na rin sa CS50 library, mayroong iba pang mga function na 1170 00:47:51,010 --> 00:47:53,300 upang gawing simple ang aming mga buhay sa mga unang ilang araw. 1171 00:47:53,300 --> 00:47:56,350 GetChar, GetDouble, GetFloat, GetInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, GetString. 1173 00:47:57,290 --> 00:47:59,550 Well, sabihin kumalbit off ang pinakamadaling ng mga unang. 1174 00:47:59,550 --> 00:48:01,430 GetString literal ginagawa na. 1175 00:48:01,430 --> 00:48:04,210 Lang makikita doon, naghihintay para sa user i-type ang isang bagay sa, 1176 00:48:04,210 --> 00:48:07,170 at sa lalong madaling panahon bilang ako-type ang isang bagay sa at pindutin ang Enter, 1177 00:48:07,170 --> 00:48:08,860 ang isang bagay na may halaga na. 1178 00:48:08,860 --> 00:48:11,700 Kaya sabihin bumalik na halimbawa upang makita kung ano mismo ang 1179 00:48:11,700 --> 00:48:12,950 GetString ay ginagawa. 1180 00:48:12,950 --> 00:48:17,445 Hayaan akong sige at buksan sa gedit, hello.c, at isipin ang 1181 00:48:17,445 --> 00:48:20,590 na kanan bago ang pahinga, ito ay kung saan namin tumigil. 1182 00:48:20,590 --> 00:48:23,240 >> Kaya natin ngayon manunudyo ito bukod sa ng kaunti pa sa detalye. 1183 00:48:23,240 --> 00:48:27,190 Kaya sa linya 6, may dalawang bagay 1184 00:48:27,190 --> 00:48:28,450 nangyayari sa ngayon. 1185 00:48:28,450 --> 00:48:32,630 Ang katumbas sign naghihiwalay ng unang kalahati at ikalawang kalahati. 1186 00:48:32,630 --> 00:48:34,670 Kaya sa kaliwang bahagi ng katumbas sign, hindi namin 1187 00:48:34,670 --> 00:48:35,580 sinasabi string s. 1188 00:48:35,580 --> 00:48:37,580 At pagkatapos, sa mga tuntunin lamang lego ng, kung ano ang string s 1189 00:48:37,580 --> 00:48:41,040 ginagawa, tingin mo? 1190 00:48:41,040 --> 00:48:42,990 Ito ay ang paglikha ng isang kung ano? 1191 00:48:42,990 --> 00:48:44,930 Kaya ito ay lumilikha ng isang string na tinatawag na mga. 1192 00:48:44,930 --> 00:48:46,370 Ngayon kung ano ang na talagang ibig sabihin? 1193 00:48:46,370 --> 00:48:51,540 Well, ito mapagtipid ng espasyo para sa isang string na tinatawag na mga. 1194 00:48:51,540 --> 00:48:52,490 Iyon ay hindi masyadong tama. 1195 00:48:52,490 --> 00:48:53,120 Ano ito ginagawa? 1196 00:48:53,120 --> 00:48:55,400 Well computer, bilang alam mo, na hard drive, na kung saan 1197 00:48:55,400 --> 00:48:56,300 ang iyong mga file ay naka-imbak. 1198 00:48:56,300 --> 00:48:59,100 Computer may RAM, at na kung saan-load ang mga programa 1199 00:48:59,100 --> 00:49:00,240 habang sila ay tumatakbo. 1200 00:49:00,240 --> 00:49:02,470 Kaya kapag nag-double-click ang isang icon at Microsoft Word ay bubukas 1201 00:49:02,470 --> 00:49:06,380 up, Microsoft Word ay tumatakbo, kaya na magsalita, sa RAM, na kung saan ay 1202 00:49:06,380 --> 00:49:08,160 elektronikong bahagi ng iyong computer. 1203 00:49:08,160 --> 00:49:10,660 Hindi ang pisikal na, mekanikal bahagi na Umiikot na, kung saan 1204 00:49:10,660 --> 00:49:12,640 data ay naka-imbak sa pangkalahatan mahabang panahon. 1205 00:49:12,640 --> 00:49:15,810 Kaya string s ay medyo magkano na nagsasabi sa ang computer ninyo ako 1206 00:49:15,810 --> 00:49:18,150 sapat na RAM upang magkasya ang isang string. 1207 00:49:18,150 --> 00:49:20,450 Ngayon na isang bit ng isang oversimplification, dahil 1208 00:49:20,450 --> 00:49:22,300 kung gaano kalaki ang string sa pagpunta sa na? 1209 00:49:22,300 --> 00:49:24,410 Na rin ang aktwal na namin ang hindi alam pa, kaya sa linggo darating 1210 00:49:24,410 --> 00:49:27,290 aktwal na namin hilahin ang layer na string at 1211 00:49:27,290 --> 00:49:28,510 sasabihin namin sa iyo kung ano ito talaga ay. 1212 00:49:28,510 --> 00:49:31,050 String, sa ngayon, gandang pagpapagaan ng ating mundo. 1213 00:49:31,050 --> 00:49:35,700 Ngunit string mga declares isang string na tinatawag na mga, sa ngayon. 1214 00:49:35,700 --> 00:49:36,520 Declares isang string. 1215 00:49:36,520 --> 00:49:39,310 Inilalaan ng ilang espasyo sa RAM para sa string ang user ay 1216 00:49:39,310 --> 00:49:40,150 tungkol sa i-type. 1217 00:49:40,150 --> 00:49:41,840 >> Ngayon tingnan natin sa kanan ng katumbas sign. 1218 00:49:41,840 --> 00:49:44,110 Kaya sabi GetString (). 1219 00:49:44,110 --> 00:49:45,070 At ng kaunti katinuan suriin. 1220 00:49:45,070 --> 00:49:47,940 Ang katotohanan na wala sa loob ng panaklong 1221 00:49:47,940 --> 00:49:50,810 nagpapahiwatig kung ano ang tungkol sa GetString? 1222 00:49:50,810 --> 00:49:52,180 Ito ay tumatagal ng mga argumento. 1223 00:49:52,180 --> 00:49:55,290 Iyon ay, hindi mo maaaring maka-impluwensya ang pag-uugali nito sa anumang paraan. 1224 00:49:55,290 --> 00:49:58,940 Sa bawat oras na gamitin mo ito, ito ay makakuha ng isang string at na ito. 1225 00:49:58,940 --> 00:50:02,210 Sa pamamagitan ng kaibahan, printf, sana ang pag-uugali nito ginagawa 1226 00:50:02,210 --> 00:50:03,010 baguhin sa bawat oras. 1227 00:50:03,010 --> 00:50:05,230 Kung hindi man, ito ay medyo walang silbi ang function sa pag-print kung 1228 00:50:05,230 --> 00:50:06,480 ginagawa nito ang parehong bagay. 1229 00:50:06,480 --> 00:50:07,970 Kung ito ay palaging mga Kopya David o isang bagay 1230 00:50:07,970 --> 00:50:09,500 arbitrary sa lahat ng oras. 1231 00:50:09,500 --> 00:50:11,540 Kaya printf saysay na magkaroon ng isang argumento. 1232 00:50:11,540 --> 00:50:14,240 GetString ay talagang hindi kailangan ng argumento, dahil Nais kong 1233 00:50:14,240 --> 00:50:16,700 upang makakuha ng isang string mula sa gumagamit at ito ay gumagamit na nangyayari 1234 00:50:16,700 --> 00:50:19,580 upang matustusan ang dynamism sa pamamagitan ng pagta-type sa iba't-ibang mga titik 1235 00:50:19,580 --> 00:50:20,850 sa bawat oras sa keyboard. 1236 00:50:20,850 --> 00:50:23,140 >> Kaya kung ano ang GetString ang huli? 1237 00:50:23,140 --> 00:50:25,080 Isipin ito bilang ang maliit na itim na kahon na. 1238 00:50:25,080 --> 00:50:29,340 At ang itim na kahon na ito ay tumatagal ng walang input, ngunit kapag putok mo sa 1239 00:50:29,340 --> 00:50:33,240 ito, ito spits isang string na ang gumagamit ay nai-type. 1240 00:50:33,240 --> 00:50:36,660 At ang katotohanan na may katumbas sign ay nangangahulugan tumagal 1241 00:50:36,660 --> 00:50:39,890 kung ano ang sabihin ang lahat sa kanan at mag-imbak ito sa loob 1242 00:50:39,890 --> 00:50:41,390 kung ano ang sa kaliwa. 1243 00:50:41,390 --> 00:50:43,470 Kaya katumbas sign dito, aktwal na ito ay hindi nangangahulugan na 1244 00:50:43,470 --> 00:50:46,490 pagkakapantay-pantay, sa halip ito technically ay nangangahulugan ng pagtatalaga. 1245 00:50:46,490 --> 00:50:49,330 Ang halaga sa kanan, at ilagay ang mga ito sa 1246 00:50:49,330 --> 00:50:51,050 variable sa kaliwa. 1247 00:50:51,050 --> 00:50:52,820 Kaya na ng lahat na nangyayari doon. 1248 00:50:52,820 --> 00:50:55,640 >> Ngayon sa linya 7, kami ay pagtawag printf. 1249 00:50:55,640 --> 00:50:58,170 Kaya printf sana ng isang maliit na pagbubutas sa ngayon. 1250 00:50:58,170 --> 00:50:59,530 Kaya mag-print ng isang format na string. 1251 00:50:59,530 --> 00:51:00,440 Ano ang string? 1252 00:51:00,440 --> 00:51:05,460 I-print ang, "h-e-l-l-o,% s 1253 00:51:05,460 --> 00:51:07,840 ! \ N ". 1254 00:51:07,840 --> 00:51:10,470 Karapatan lahat, kaya kung ano ang gusto kong plug-in para sa% s? 1255 00:51:10,470 --> 00:51:12,960 Literal, anumang ay naka-imbak sa mga. 1256 00:51:12,960 --> 00:51:15,570 Kaya sa kasong ito, kaunti katinuan check, kung gaano karaming mga argumento ang 1257 00:51:15,570 --> 00:51:16,820 printf? 1258 00:51:19,860 --> 00:51:21,110 Okay, Narinig ko ng isang. 1259 00:51:23,840 --> 00:51:26,330 Narinig ko ng isang muli. 1260 00:51:26,330 --> 00:51:27,730 Dalawa, Narinig ko ng dalawang. 1261 00:51:27,730 --> 00:51:29,920 At kung paano tungkol sa tatlong? 1262 00:51:29,920 --> 00:51:30,450 Okay, tatlong? 1263 00:51:30,450 --> 00:51:30,930 Mahusay na. 1264 00:51:30,930 --> 00:51:33,170 Tatlong posibleng sagot, isa lamang sa mga ito ay tama. 1265 00:51:33,170 --> 00:51:36,390 Argumento Kaya ang muli makaimpluwensiya sa pag-uugali ng isang function. 1266 00:51:36,390 --> 00:51:39,380 Sa nakaraan, printf ay lamang ng isang argumento. 1267 00:51:39,380 --> 00:51:42,260 "Hoy mundo" ng isang argumento. 1268 00:51:42,260 --> 00:51:45,190 Gayunpaman, ngayon, mapansin kung saan ito ay ang kuwit. 1269 00:51:45,190 --> 00:51:49,600 Kuwit Ito ay sa labas ng quote / magpanipi, na nangangahulugan na 1270 00:51:49,600 --> 00:51:52,170 hey printf, dito pagdating ng pangalawang argumento. 1271 00:51:52,170 --> 00:51:54,240 >> Kaya kuwit sa karamihan sa mga wika programming 1272 00:51:54,240 --> 00:51:57,300 hiwalay na ang maramihang mga argumento. 1273 00:51:57,300 --> 00:51:59,600 Kaya ang sagot dito ay tiyak na hindi isa, dahil 1274 00:51:59,600 --> 00:52:00,390 may kuwit ito. 1275 00:52:00,390 --> 00:52:03,680 Kaya Nagnais ng pinakamababang, printf ay tila pagkuha ng dalawang 1276 00:52:03,680 --> 00:52:04,940 argumento oras na ito. 1277 00:52:04,940 --> 00:52:07,050 Ngunit ang mga pagkakataon para sa isang nanlilinlang tanong dito ay kung ano ang 1278 00:52:07,050 --> 00:52:07,990 tungkol sa kuwit? 1279 00:52:07,990 --> 00:52:11,260 Ba ito magpahiwatig na may aktwal na tatlong argumento? 1280 00:52:11,260 --> 00:52:13,820 Ito, ito, at ito. 1281 00:52:13,820 --> 00:52:18,820 Kaya wala, dahil ang kuwit ay nasa loob ng quote, na 1282 00:52:18,820 --> 00:52:20,890 ay nangangahulugan na ito ay talagang lamang ng isang Aesthetic ng Ingles. 1283 00:52:20,890 --> 00:52:23,180 Ay walang kinalaman sa bilang ng mga 1284 00:52:23,180 --> 00:52:24,890 argumento sa programang ito. 1285 00:52:24,890 --> 00:52:27,670 Kaya kuwit na ito ay nasa labas ng double quote. 1286 00:52:27,670 --> 00:52:28,850 At pagkatapos ay bumalik 0. 1287 00:52:28,850 --> 00:52:30,980 Sa ngayon sabihin lamang ang uri ng ang isang ito sa pananampalataya para sa 1288 00:52:30,980 --> 00:52:34,460 ngayon, at malaman na kapag tapos ka na ang mga function execute 1289 00:52:34,460 --> 00:52:37,950 linya ng code, dapat silang pangkalahatan ibalik ang ilang mga halaga. 1290 00:52:37,950 --> 00:52:42,010 Sa kasong ito, dahil lang sa pangunahing dapat ibalik sa isang int, 1291 00:52:42,010 --> 00:52:44,320 na lamang ang paraan gumagana ang wika C. 1292 00:52:44,320 --> 00:52:47,040 >> Kaya dahil walang nangyaring mali, nararamdaman tulad ng programang ito 1293 00:52:47,040 --> 00:52:49,960 fine, ko lang hard code sa return 0. 1294 00:52:49,960 --> 00:52:52,980 Ngunit sa kabilang banda, at ako pagpunta sa sumulat ito sa palsipikado code 1295 00:52:52,980 --> 00:52:55,020 ngayon, tulad ng Joseph kapag ginawa namin ang sumuntok 1296 00:52:55,020 --> 00:52:56,220 Halimbawa noong nakaraang linggo. 1297 00:52:56,220 --> 00:53:00,440 Kung may nangyaring mali - ito ay hindi aktwal na code - nagpunta 1298 00:53:00,440 --> 00:53:06,570 mali, pagkatapos ay bumalik, sabihin nating, 1. 1299 00:53:06,570 --> 00:53:08,770 Iba Pa ibalik ang 0. 1300 00:53:08,770 --> 00:53:10,070 Kaya ito ay kung saan kami ay pagpunta na ito. 1301 00:53:10,070 --> 00:53:12,090 Na ito ay hindi aktwal na C code, pseudocode. 1302 00:53:12,090 --> 00:53:14,010 Ngunit ito ay kung paano mo maaaring bumalik 1303 00:53:14,010 --> 00:53:15,580 iba't ibang posibleng halaga. 1304 00:53:15,580 --> 00:53:19,520 Ngunit sa ngayon ako pagpunta upang magpatuloy at bumalik 0. 1305 00:53:19,520 --> 00:53:24,410 Lahat ng karapatan, anumang mga katanungan sa gayon ay malayo sa syntax, pag-andar, 1306 00:53:24,410 --> 00:53:25,000 o ang gusto? 1307 00:53:25,000 --> 00:53:26,280 Oo, sa likod. 1308 00:53:26,280 --> 00:53:27,530 >> Madla: [hindi marinig] 1309 00:53:30,510 --> 00:53:32,210 David MALAN: Maaari mo bang makipag-usap ng kaunti louder? 1310 00:53:32,210 --> 00:53:34,325 Bakit ginawa ito programa return 0, at? 1311 00:53:34,325 --> 00:53:35,575 Madla: [hindi marinig] 1312 00:53:39,910 --> 00:53:43,450 David MALAN: Oh, na dahil Nakatanggap ako tamad, paumanhin. 1313 00:53:43,450 --> 00:53:48,290 Walang magandang tugon ng akademikong, bumalik 0. 1314 00:53:48,290 --> 00:53:52,690 Maaari kong uri ng pagsagip sa dagat na ito, sa pamamagitan ng sinasabi ng technically C, kung pangunahing 1315 00:53:52,690 --> 00:53:55,900 ay hindi tahasang nagbabalik ng halaga, 0 ibabalik 1316 00:53:55,900 --> 00:53:57,730 nang awtomatiko para sa iyo. 1317 00:53:57,730 --> 00:54:00,290 Alin ang totoo, hindi ako lamang sumasaklaw sa. 1318 00:54:00,290 --> 00:54:03,270 Ngunit, dapat ko nagawa ito sa ganitong paraan. 1319 00:54:03,270 --> 00:54:05,250 Walang kawili-wili takeaway kaysa sa iba pang mga kaysa sa aking pagkakamali. 1320 00:54:05,250 --> 00:54:06,170 Oo? 1321 00:54:06,170 --> 00:54:08,470 >> Madla: Karaniwan kapag nagta-type ka sa walang bisa, na nangangahulugan na 1322 00:54:08,470 --> 00:54:10,770 hindi magbalik ng bagay. 1323 00:54:10,770 --> 00:54:11,420 David MALAN: Tama. 1324 00:54:11,420 --> 00:54:15,800 Kung sa halip, tinukoy mo bago ang pangalan ng isang function, para sa 1325 00:54:15,800 --> 00:54:18,590 Halimbawa dito, walang bisa, pagkatapos ang function na 1326 00:54:18,590 --> 00:54:20,480 ay hindi nagbabalik ng anumang. 1327 00:54:20,480 --> 00:54:25,210 At samakatuwid Gusto ko lang sabihin, pagbalik o walang sa lahat, 1328 00:54:25,210 --> 00:54:26,730 at na maging pare-pareho. 1329 00:54:26,730 --> 00:54:27,750 At kami na bumalik na. 1330 00:54:27,750 --> 00:54:31,030 At lamang Para sa Iyong Impormasyon, isa ng ang mga catches na may pag-aaral 1331 00:54:31,030 --> 00:54:33,450 mga programa sa isang mundo na may daan-daang ng mga aklat at 1332 00:54:33,450 --> 00:54:36,180 daan-daan ng mga website out doon ay ay walang paltos 1333 00:54:36,180 --> 00:54:38,220 makakita ng iba't ibang syntax sa iba't ibang aklat 1334 00:54:38,220 --> 00:54:40,220 sa pamamagitan ng iba't ibang mga tao. 1335 00:54:40,220 --> 00:54:42,100 Napagtanto gagawin namin ang aming pinakamahusay na sa mga seksyon at mga aralin upang maging 1336 00:54:42,100 --> 00:54:42,960 pare-pareho. 1337 00:54:42,960 --> 00:54:46,660 Ngunit minsan ay makikita mo ang magkasalungat na syntax. 1338 00:54:46,660 --> 00:54:48,540 Kaya sa tuwing may pagdududa, magtanong. 1339 00:54:48,540 --> 00:54:51,100 At sa pangkalahatan, makikita namin alagaan sa mga aralin at mga seksyon sa 1340 00:54:51,100 --> 00:54:53,710 halos palaging ipakita ito sa tamang paraan. 1341 00:54:53,710 --> 00:54:56,070 At sabihin ko halos palaging, dahil sa kaso sa point. 1342 00:54:56,070 --> 00:54:56,860 Iba pang mga tanong? 1343 00:54:56,860 --> 00:55:01,590 >> Madla: ba ang% s umiiral sa labas ng appliance? 1344 00:55:01,590 --> 00:55:03,710 David MALAN: ba% s umiiral sa labas ng appliance? 1345 00:55:03,710 --> 00:55:04,180 Oo. 1346 00:55:04,180 --> 00:55:07,760 Kaya% s ay may C. Ang katotohanan na tayo ay gamitin ito sa 1347 00:55:07,760 --> 00:55:10,290 ang appliance sa panimula ay walang kinalaman sa gamit ang 1348 00:55:10,290 --> 00:55:12,080 mga tampok ng wika na ginagamit namin. 1349 00:55:12,080 --> 00:55:15,990 Sa katunayan, noong nakaraang linggo kapag ginamit namin ang aking Mac, sinulat ni ako 1350 00:55:15,990 --> 00:55:17,160 C code sa aking Mac. 1351 00:55:17,160 --> 00:55:20,020 Ko ginamit ang% s sa aking Mac, at maaari mong gamitin ang mga ito sa 1352 00:55:20,020 --> 00:55:22,400 iyong Windows computer kung i-install mo ang isang tagatala, tulad ng 1353 00:55:22,400 --> 00:55:24,070 Visual Studio mula sa Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Kaya% s. 1355 00:55:24,990 --> 00:55:27,860 Lahat ng ginagawa namin sa loob ng window na ito ngayon ay 1356 00:55:27,860 --> 00:55:31,140 gawin sa C. At sa panimula walang gawin gamit ang 1357 00:55:31,140 --> 00:55:33,450 operating system na pinag-uusapan. 1358 00:55:33,450 --> 00:55:35,900 Sa pamamagitan ng kaibahan, ang itim at puting window terminal - kapag 1359 00:55:35,900 --> 00:55:40,160 Nagta-type ako ng mga bagay tulad ng ls, at rm, at cd - 1360 00:55:40,160 --> 00:55:42,020 na may sa gawin sa operating system at 1361 00:55:42,020 --> 00:55:43,562 -navigate sa paligid. 1362 00:55:43,562 --> 00:55:44,546 Oo. 1363 00:55:44,546 --> 00:55:46,520 Madla: nilalayong ko ang library, ang CS50 library. 1364 00:55:46,520 --> 00:55:49,960 David MALAN: Okay, kaya kung ibig sabihin mo ang string ng keyword, na 1365 00:55:49,960 --> 00:55:52,460 lamang umiiral sa CS50 library, tama. 1366 00:55:52,460 --> 00:55:55,350 Na hindi umiiral sa C mismo, at sa katunayan sa loob ng ilang 1367 00:55:55,350 --> 00:55:58,220 linggo namin itapon CS50 library at simulan ang 1368 00:55:58,220 --> 00:56:02,290 paggawa ng mga bagay mula sa simula ating sarili, kaya na magsalita. 1369 00:56:02,290 --> 00:56:02,940 Iba pang mga tanong? 1370 00:56:02,940 --> 00:56:04,577 Oo. 1371 00:56:04,577 --> 00:56:05,827 >> Madla: [hindi marinig] 1372 00:56:09,470 --> 00:56:10,160 David MALAN: Magandang katanungan. 1373 00:56:10,160 --> 00:56:11,720 Ay ang mga utos case sensitive? 1374 00:56:11,720 --> 00:56:13,710 At hayaan mo akong gumawa ng isang pagkakaiba dito. 1375 00:56:13,710 --> 00:56:15,840 Kaya utos sa pangkalahatan ang mga bagay na namin magsulat sa 1376 00:56:15,840 --> 00:56:17,940 ibaba ng window, sa window ng terminal. 1377 00:56:17,940 --> 00:56:21,770 Anumang bagay up dito ay pahayag o C code. 1378 00:56:21,770 --> 00:56:24,490 Ngunit sa parehong mga kaso, ang sagot ay pareho, oo. 1379 00:56:24,490 --> 00:56:27,800 Parehong ng mga kapaligiran, ang C code sa itaas at ang 1380 00:56:27,800 --> 00:56:29,910 operating system linya ng command sa 1381 00:56:29,910 --> 00:56:31,440 ibaba, ay case sensitive. 1382 00:56:31,440 --> 00:56:33,830 Kaya dapat mong mapakinabangan ang GetString may capital G, 1383 00:56:33,830 --> 00:56:37,050 capital S. dapat mong isulat ang printf sa lahat ng maliit na. 1384 00:56:37,050 --> 00:56:39,520 Kailangan mong i-type ang ls sa lahat ng maliit na. 1385 00:56:39,520 --> 00:56:43,260 Kaya sa halos bawat sitwasyon ito semestre, kaso, sa 1386 00:56:43,260 --> 00:56:44,820 katotohanan, ang bagay na ito. 1387 00:56:44,820 --> 00:56:46,148 Oo. 1388 00:56:46,148 --> 00:56:47,398 >> Madla: [hindi marinig] 1389 00:56:54,770 --> 00:56:56,480 David MALAN: Ah, kaya okay, ano kung kami ay may isang file 1390 00:56:56,480 --> 00:56:57,840 tinatawag hello.d. 1391 00:56:57,840 --> 00:57:00,090 Kaya ito lumiliko D ay isang programming language. 1392 00:57:00,090 --> 00:57:02,790 At kaya sa ilang mga kaso, maaari naming aktwal magsulat ng isang programa sa 1393 00:57:02,790 --> 00:57:06,190 na file at ito ay pinagsama-sama sa na fashion. 1394 00:57:06,190 --> 00:57:09,090 Aming makakaya, at aktwal, Ang maikling sagot ay, hindi ko alam. 1395 00:57:09,090 --> 00:57:10,440 Kaya kami ay pagpunta sa gawin ito. 1396 00:57:10,440 --> 00:57:13,040 Hayaan akong magpatuloy at lumikha ng isang bagong file. 1397 00:57:13,040 --> 00:57:15,580 At iikot dito, totoo lang sa pangkalahatan, tuwing kayong alinlangan 1398 00:57:15,580 --> 00:57:18,130 ito semestre, at iyong appliance o computer 1399 00:57:18,130 --> 00:57:20,030 buksan, sige at subukan ang isang bagay. 1400 00:57:20,030 --> 00:57:23,740 Kaya ako pagpunta sa i-save ang isang file na tinatawag na hello.d. 1401 00:57:23,740 --> 00:57:25,010 I-save ito. 1402 00:57:25,010 --> 00:57:29,070 At ako na tumakbo na kumusta Ipasok. 1403 00:57:29,070 --> 00:57:31,660 Tila magpakilala na c ay mas malamang 1404 00:57:31,660 --> 00:57:35,920 kaysa sa d, sa kasong ito. 1405 00:57:35,920 --> 00:57:38,046 Iba pang mga tanong. 1406 00:57:38,046 --> 00:57:40,456 Oo. 1407 00:57:40,456 --> 00:57:41,706 >> Madla: [hindi marinig] 1408 00:57:48,170 --> 00:57:49,837 David MALAN: Okay, sabihin na minsan pa. 1409 00:57:49,837 --> 00:57:51,087 Madla: [hindi marinig] 1410 00:58:04,250 --> 00:58:05,780 David MALAN: Paano mo pumunta tungkol sa pag-diagnose na o 1411 00:58:05,780 --> 00:58:06,380 pag-troubleshoot na? 1412 00:58:06,380 --> 00:58:08,800 Kaya malamang, dahil hindi nila iba't ibang mga wika, 1413 00:58:08,800 --> 00:58:10,280 pinaka-malamang na nais mong makakuha ng ganap na 1414 00:58:10,280 --> 00:58:11,580 ibang programa outputted. 1415 00:58:11,580 --> 00:58:14,140 Gusto kang makakuha ng ganap na iba't ibang mga mensahe ng error. 1416 00:58:14,140 --> 00:58:16,750 At din lamang sa mga tuntunin ng disenyo, ito ay magdudulot ng arguably isang 1417 00:58:16,750 --> 00:58:19,140 mahinang disenyo ng desisyon na pagsusulat ng dalawang magkaibang 1418 00:58:19,140 --> 00:58:21,510 wika sa halos identically na may pangalang na mga file, sa 1419 00:58:21,510 --> 00:58:23,000 ang eksaktong parehong directory, gamit ang isang 1420 00:58:23,000 --> 00:58:24,550 awtomatikong tool tulad ng gumawa. 1421 00:58:24,550 --> 00:58:27,750 Sa gayon ay maaari ko rin uurong at sabihin sa 15 taon ng paggawa nito, 1422 00:58:27,750 --> 00:58:29,190 hindi kailanman nagkamali na. 1423 00:58:29,190 --> 00:58:30,030 Maaaring mangyari. 1424 00:58:30,030 --> 00:58:31,190 Ngunit may lamang iba't-ibang, sa tingin ko, 1425 00:58:31,190 --> 00:58:33,180 logistical panlaban sa lugar. 1426 00:58:33,180 --> 00:58:35,440 Plus ang mga mensahe ng error na maganap, na gagawin 1427 00:58:35,440 --> 00:58:37,260 kalaunan magbunyag kung ano ang isyu. 1428 00:58:37,260 --> 00:58:39,120 Ngunit isang posibleng kaso ng sulok. 1429 00:58:39,120 --> 00:58:41,730 >> Lahat ng karapatan, kaya sabihin ipakilala lamang ng ilang mga iba pang 1430 00:58:41,730 --> 00:58:45,600 tampok dito ngayon, kaya maaari naming simulan ang pagbuo sa higit 1431 00:58:45,600 --> 00:58:47,140 at mas kumplikadong programa. 1432 00:58:47,140 --> 00:58:49,000 Kaya una sa lahat, matematika. 1433 00:58:49,000 --> 00:58:51,520 Kaya matematika halimbawa lamang ang uri ng madali sa unang linggo. 1434 00:58:51,520 --> 00:58:53,560 Na ito ay hindi upang sabihin na ang lahat ng programming ay tungkol sa 1435 00:58:53,560 --> 00:58:54,390 matematika. 1436 00:58:54,390 --> 00:58:57,890 Tiyak, ang pag-unawa sa iba't ibang mga tampok ng 1437 00:58:57,890 --> 00:58:59,610 matematika, algebra sa partikular, ay 1438 00:58:59,610 --> 00:59:00,330 lubos na may-katuturan dito. 1439 00:59:00,330 --> 00:59:03,010 Sa mas mataas na antas ng CS klase, linear algebra, 1440 00:59:03,010 --> 00:59:03,920 calculus, at tulad. 1441 00:59:03,920 --> 00:59:06,500 Ngunit Napagtanto karamihan ng kung ano ang gagawin namin ito semestre binabawasan hindi 1442 00:59:06,500 --> 00:59:09,230 sa matematika, at tiyak na hindi sa aritmetika, per se, ngunit talagang 1443 00:59:09,230 --> 00:59:11,570 lang logic at sa maingat na pag-iisip. 1444 00:59:11,570 --> 00:59:14,310 At kaya Linkage ito na computer science katagal nagkaroon, 1445 00:59:14,310 --> 00:59:16,570 lalo na sa mataas na antas ng paaralan, sa matematika, ay isang 1446 00:59:16,570 --> 00:59:17,370 maliit na makapanlinlang. 1447 00:59:17,370 --> 00:59:20,090 Dahil karamihan ng mga programa na kami magsulat, talagang, 1448 00:59:20,090 --> 00:59:23,290 uri ng mas mataas na antas at pagtuon sa paglutas ng mga problema na, 1449 00:59:23,290 --> 00:59:26,410 sigurado, maaaring gamitin ang ilang mga karagdagan, pagbabawas, at iba't-ibang 1450 00:59:26,410 --> 00:59:28,650 mathematical formula o tulad ng, 1451 00:59:28,650 --> 00:59:30,860 ngunit sa pagtatapos ng araw, ito ay tungkol sa pag-iisip at hindi 1452 00:59:30,860 --> 00:59:33,240 lamang pagpapatupad kung ano ang maaari mong gawin tulad ng Ti 1453 00:59:33,240 --> 00:59:35,050 calculator sa mataas na paaralan. 1454 00:59:35,050 --> 00:59:38,410 >> Kaya may na sinabi, sabihin ngayon gawin ang isang bagay na may ganitong mga 1455 00:59:38,410 --> 00:59:40,980 mathematical operator na umiiral kaya maaari naming trip 1456 00:59:40,980 --> 00:59:43,950 sa paglipas ng ilang ng nakapailalim na mga aspeto ng programming, o sa 1457 00:59:43,950 --> 00:59:48,930 kasong ito C. Kaya may mga, ng CS50 library iminungkahing, 1458 00:59:48,930 --> 00:59:51,520 at ngayon lamang namin ginagamit GetString - at sa isang sandali 1459 00:59:51,520 --> 00:59:52,940 marahil isa iba pang mga function na - 1460 00:59:52,940 --> 00:59:55,380 ngunit may mga iba't ibang mga uri ng data sa isang computer. 1461 00:59:55,380 --> 00:59:58,550 Sa pagtatapos ng araw, ang mga computer lamang alam 0s at 1s. 1462 00:59:58,550 --> 01:00:01,880 Ngunit isipin ang na noong nakaraang linggo usapan natin ang tungkol sa sistema ng binary 1463 01:00:01,880 --> 01:00:05,000 sa kumakatawan sa mga numero, tulad ng bilang 0, at 1, at 2, 1464 01:00:05,000 --> 01:00:07,480 ang lahat ng mga paraan sa hanggang 8, sa Nate ng video. 1465 01:00:07,480 --> 01:00:08,840 At pagkatapos ay maaari naming bilangin ang mas mataas na bilang namin 1466 01:00:08,840 --> 01:00:10,000 ginawa sa entablado dito. 1467 01:00:10,000 --> 01:00:15,660 Ngunit kung nais mong kumatawan sa hindi lamang numero ngunit titik, 1468 01:00:15,660 --> 01:00:18,240 namin, ang mga tao, ay may ilang arbitrary 1469 01:00:18,240 --> 01:00:21,180 convention, kung saan kung sa pagtatapos ng araw ang lahat ng computer na aking 1470 01:00:21,180 --> 01:00:24,260 ay ang kakayahan upang ipahayag ng 0s at 1s, mahusay kami ay mas mahusay na 1471 01:00:24,260 --> 01:00:27,990 simulang standardizing ang mga pattern ng 0s at 1s na kumakatawan 1472 01:00:27,990 --> 01:00:28,800 iba't ibang mga bagay. 1473 01:00:28,800 --> 01:00:32,370 Isang pattern ng 0s at 1s na kumakatawan sa sulat ng. 1474 01:00:32,370 --> 01:00:34,840 Pattern ng 0s at 1s na kumakatawan sa sulat z. 1475 01:00:34,840 --> 01:00:37,600 Pattern ng 0s at 1s na kumakatawan sa kulay bughaw, o 1476 01:00:37,600 --> 01:00:38,600 pula, o tulad ng. 1477 01:00:38,600 --> 01:00:42,360 Kailangan namin upang magamit ang lahat ng mga 0s at 1s upang ipahayag ang ating sarili sa 1478 01:00:42,360 --> 01:00:45,140 iba't ibang konteksto, sa iba't ibang paraan na hindi 1479 01:00:45,140 --> 01:00:46,470 kailangang numeric. 1480 01:00:46,470 --> 01:00:51,150 >> Kaya sa mga tuntunin ng representasyon, C ay may iba't ibang mga uri ng data, 1481 01:00:51,150 --> 01:00:52,550 at nakakita kami ng isa sa mga ito sa ngayon. 1482 01:00:52,550 --> 01:00:54,940 Namin nakita int, at paunawa kung ano ang hindi sa screen 1483 01:00:54,940 --> 01:00:56,140 ngayon ay string. 1484 01:00:56,140 --> 01:00:58,550 String ay hindi, sa katunayan, umiiral sa C. Muli, ito ay isang 1485 01:00:58,550 --> 01:01:00,610 pagpapagaan namin ang iyong pagtatanghal para sa unang 1486 01:01:00,610 --> 01:01:01,570 dalawang linggo. 1487 01:01:01,570 --> 01:01:03,770 Ang isang pansamantalang trabaho ay isang indibidwal na character. 1488 01:01:03,770 --> 01:01:07,050 Float ay isang tunay na numero, na may decimal point at numero sa 1489 01:01:07,050 --> 01:01:09,066 sa kaliwa at kanan ng ito. 1490 01:01:09,066 --> 01:01:16,040 Double ay ang, para sa mga may likod bago background? 1491 01:01:16,040 --> 01:01:19,720 Kaya double ay dalawang beses isang bagay. 1492 01:01:19,720 --> 01:01:21,240 Nagdadagdag ng dalawang beses bilang magkano ang katumpakan. 1493 01:01:21,240 --> 01:01:22,440 Kaya kung ano ang ibig sabihin nito? 1494 01:01:22,440 --> 01:01:26,090 Kaya sa bawat isa sa mga kasong ito, ang mundo ang may uri ng Standardized 1495 01:01:26,090 --> 01:01:27,960 kung gaano karaming mga bits ay ginagamit upang kumatawan 1496 01:01:27,960 --> 01:01:29,160 sa bawat isa sa mga bagay na ito. 1497 01:01:29,160 --> 01:01:31,590 Kaya kung napanood mo na Nate ng ASCII video na para sa bahagi 1498 01:01:31,590 --> 01:01:36,170 ng pset 0, o sa ibang pagkakataon sa linggong ito ay sa iyo, marahil mo na alam 1499 01:01:36,170 --> 01:01:37,450 na ASCII - 1500 01:01:37,450 --> 01:01:38,610 character na representasyon - 1501 01:01:38,610 --> 01:01:40,670 gumamit ng kung gaano karaming mga bits? 1502 01:01:40,670 --> 01:01:43,410 At maaari mong kahit tandaan mula sa huling linggo ng kung paano ang aming demo 1503 01:01:43,410 --> 01:01:45,500 maraming tao ay sa entablado. 1504 01:01:45,500 --> 01:01:46,840 Kaya ng 7 o 8, karaniwang. 1505 01:01:46,840 --> 01:01:49,230 Kaya pangkalahatan 8, at may isang bagay na tinatawag bilang pinahaba 1506 01:01:49,230 --> 01:01:51,240 ASCII na gumagamit ng lahat ng 8 bits, sa halip na 7. 1507 01:01:51,240 --> 01:01:54,710 Ngunit sa pangkalahatan, makipag-usap namin sa kapangyarihan ng 2, kaya sa kasong ito, 8. 1508 01:01:54,710 --> 01:01:58,900 Kaya ng pansamantalang trabaho sa isang wika ng programming ay karaniwang 8 bit. 1509 01:01:58,900 --> 01:02:02,550 Kaya int ay 32 bits. 1510 01:02:02,550 --> 01:02:04,810 Float ay 32 bits. 1511 01:02:04,810 --> 01:02:08,060 Double ay 64 bits. 1512 01:02:08,060 --> 01:02:08,870 At kung ano ang na ibig sabihin nito? 1513 01:02:08,870 --> 01:02:11,500 Ito ay nangangahulugan na maaari mong kumatawan sa mas malaking numero, o sa kaso 1514 01:02:11,500 --> 01:02:15,490 ng mga tunay na numero, maaari kang magkaroon ng maraming higit pa numero pagkatapos ng 1515 01:02:15,490 --> 01:02:16,240 decimal lugar. 1516 01:02:16,240 --> 01:02:18,980 A maraming higit pa katumpakan, sa kasong iyon. 1517 01:02:18,980 --> 01:02:21,780 Ngayon ng mahabang mahaba ay sa kasamaang-palad na may pangalang. 1518 01:02:21,780 --> 01:02:24,340 Kaya may isang int na 32 bit. 1519 01:02:24,340 --> 01:02:29,800 May ay isang mahabang na, nope, 32 bit. 1520 01:02:29,800 --> 01:02:32,610 At ng mahabang mahaba na 64 bit. 1521 01:02:32,610 --> 01:02:34,830 Subalit ang ilan sa mga konteksto sensitive, ito depende 1522 01:02:34,830 --> 01:02:36,190 kung anong uri ng computer na mayroon ka. 1523 01:02:36,190 --> 01:02:40,510 Kaya sa pangkalahatan, na aming tinukoy sa isang homework o sa isang pagsusulit kapag 1524 01:02:40,510 --> 01:02:41,180 aktwal na mahalaga. 1525 01:02:41,180 --> 01:02:43,080 Ngunit ang punto ay mayroong lahat ng iba't ibang mga 1526 01:02:43,080 --> 01:02:44,250 representasyon dito. 1527 01:02:44,250 --> 01:02:45,950 >> Kaya sabihin aktwal na sumisid sa isang programa. 1528 01:02:45,950 --> 01:02:48,300 Sa halip na isulat ang isang ito mula sa simula, ipaalam sa akin pumunta magpatuloy 1529 01:02:48,300 --> 01:02:50,940 at buksan mula sa source code ngayon - ang lahat ng 1530 01:02:50,940 --> 01:02:54,980 online - kung gusto mong maghinang sa online, o return on 1531 01:02:54,980 --> 01:02:57,120 Miyerkules sa appliance sa iyong computer, mga tagubilin 1532 01:02:57,120 --> 01:02:59,160 na link sa homepage ng kurso. 1533 01:02:59,160 --> 01:03:00,830 Narito ang isang napaka-simpleng programa. 1534 01:03:00,830 --> 01:03:02,520 Ngunit ito ay nakuha ng isang maliit na isang bagay na bago sa tuktok na 1535 01:03:02,520 --> 01:03:03,650 hindi namin ginawa bago. 1536 01:03:03,650 --> 01:03:05,800 Ang isang buong maraming ng mga asul na linya ng teksto. 1537 01:03:05,800 --> 01:03:08,410 Kaya ang mga asul na linya ay kumakatawan komento. 1538 01:03:08,410 --> 01:03:10,620 Kaya lubos na kapaki-pakinabang sa isang programa na magsulat 1539 01:03:10,620 --> 01:03:13,160 ilang mga komento sa iyong sarili, o sa mga kasamahan, o mga kaibigan, o 1540 01:03:13,160 --> 01:03:15,700 Fellows pagtuturo, na uri ng ilarawan kung ano ang nangyayari sa 1541 01:03:15,700 --> 01:03:18,500 ang file na ito, ngunit walang kinalaman sa may C code mismo. 1542 01:03:18,500 --> 01:03:20,860 Walang gawin sa mga programa sa pagtakbo, lang 1543 01:03:20,860 --> 01:03:21,760 aesthetics. 1544 01:03:21,760 --> 01:03:24,580 Kaya ang paraan na gagawin mo ito sa C mo sa pangkalahatan simulan ang iyong 1545 01:03:24,580 --> 01:03:29,860 mga komento na may / *, at tapusin ang iyong mga komento sa 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 At kung ikaw ay talagang anal at tulad upang gumuhit ng uri ng mga larawan, 1548 01:03:34,140 --> 01:03:35,870 nais mong ilagay ang isang buong maraming ng mga bituin, na nais mong gumawa ng isang 1549 01:03:35,870 --> 01:03:36,970 maliit na kahon tulad nito. 1550 01:03:36,970 --> 01:03:37,990 Ngunit wala na usapin. 1551 01:03:37,990 --> 01:03:40,230 Ang tanging bagay na mahalaga ay ang unang 1552 01:03:40,230 --> 01:03:41,620 at ang napaka-huling. 1553 01:03:41,620 --> 01:03:43,820 Ito ay kung ano ang tinatawag na multi-line komento. 1554 01:03:43,820 --> 01:03:46,610 At lang tao convention sa madalas na gawin ang mga bituin at box 1555 01:03:46,610 --> 01:03:48,420 mga bagay na tulad nito kung mayroon kang maraming libreng oras. 1556 01:03:48,420 --> 01:03:51,550 >> Kaya pagkatapos mong nakasulat sa ilang mga komento, pangkalahatan, darating 1557 01:03:51,550 --> 01:03:53,160 ang aktwal na lakas ng loob ng programa. 1558 01:03:53,160 --> 01:03:55,630 Narito ang aming pamilyar # include . 1559 01:03:55,630 --> 01:04:00,410 At mabilis, ito ay kinakailangan o hindi kinakailangang? 1560 01:04:00,410 --> 01:04:02,860 Madla: Kinakailangang. 1561 01:04:02,860 --> 01:04:04,390 David MALAN: Kaya ito ay aktwal na hindi kinakailangan. 1562 01:04:04,390 --> 01:04:07,070 Kaya bakit, bagaman, ay hindi kinakailangan? 1563 01:04:07,070 --> 01:04:08,170 Kaya walang printf. 1564 01:04:08,170 --> 01:04:08,510 Katunayan. 1565 01:04:08,510 --> 01:04:10,470 Lahat ng ginagawa namin sa programang ito ay matematika. 1566 01:04:10,470 --> 01:04:11,640 Kaya ang maaari kong tanggalin ang aktwal na. 1567 01:04:11,640 --> 01:04:14,330 Kaya hindi mo palaging kasama sa kahit ano sa 1568 01:04:14,330 --> 01:04:15,420 sa tuktok ng isang programa. 1569 01:04:15,420 --> 01:04:17,020 >> Kaya sabihin pasimplehin ito ng kaunti. 1570 01:04:17,020 --> 01:04:18,650 At ngayon mapansin kung ano ang programang ito. 1571 01:04:18,650 --> 01:04:19,920 Hindi magkano ng interes. 1572 01:04:19,920 --> 01:04:21,410 int x = 1. 1573 01:04:21,410 --> 01:04:22,550 Well, kung ano ang ito ginagawa? 1574 01:04:22,550 --> 01:04:25,130 Well, sa tingin bumalik sa kaisipan modelo mula sa bago. 1575 01:04:25,130 --> 01:04:27,500 Ang kaliwang bahagi ng expression na ito ay hindi kung ano ang? 1576 01:04:31,440 --> 01:04:32,830 Lumikha ng puwang para sa isang integer. 1577 01:04:32,830 --> 01:04:33,930 Kaya kung magkano ang espasyo? 1578 01:04:33,930 --> 01:04:36,980 Well, mangyari naming malaman ngayon na 32 bit. 1579 01:04:36,980 --> 01:04:40,070 Dati, ang isang string ay technically 32 bit, ngunit higit pa 1580 01:04:40,070 --> 01:04:40,950 sa sa hinaharap. 1581 01:04:40,950 --> 01:04:42,240 Ngunit int isang 32 bit. 1582 01:04:42,240 --> 01:04:45,590 Kaya ito expression sa kaliwa dito, int x lang sabi ni hey 1583 01:04:45,590 --> 01:04:48,490 operating system, magbibigay sa akin ng 32 piraso ng RAM - 1584 01:04:48,490 --> 01:04:50,450 na kilala bilang 4 na bytes ng RAM - 1585 01:04:50,450 --> 01:04:53,930 sa gayon ay maaari ko bang ilagay ang isang integer sa puwang na iyon. 1586 01:04:53,930 --> 01:04:55,330 Anong integer ay gusto mong ilagay? 1587 01:04:55,330 --> 01:04:56,640 Well, lamang ang bilang 1. 1588 01:04:56,640 --> 01:04:59,530 int y nakakakuha ng 2, ipinapakita ang eksaktong parehong bagay kahit na ang 1589 01:04:59,530 --> 01:05:02,160 numero ay mas malaki, sa mga tuntunin ng nito magnitude. 1590 01:05:02,160 --> 01:05:04,790 Ang bilang mismo pa rin ang 32 bit lamang. 1591 01:05:04,790 --> 01:05:06,520 Lang ang pattern ng mga bits ay iba sa 1592 01:05:06,520 --> 01:05:08,260 kumatawan sa 1 kumpara sa 2. 1593 01:05:08,260 --> 01:05:11,980 int z ngayon nagsasabing bigyan ako ng isa pang 32 bit, tumawag ito z, at ilagay ang 1594 01:05:11,980 --> 01:05:14,210 pagbubuo ng 1 at 2 sa doon. 1595 01:05:14,210 --> 01:05:18,050 Kaya na ngayon z ay baka pag-iimbak ang halaga 3, 1596 01:05:18,050 --> 01:05:19,360 at pagkatapos ay bumalik 0. 1597 01:05:19,360 --> 01:05:23,020 >> Ngayon programang ito, ang anumang gawin ito ng interes? 1598 01:05:23,020 --> 01:05:26,170 Kaya aktwal ay hindi gawin kawili-wili, sa anumang 1599 01:05:26,170 --> 01:05:28,450 kahulugan, dahil bakit? Ito ay paggawa ng ilang matematika. 1600 01:05:28,450 --> 01:05:30,590 Ngunit hindi ito bumabalik ang sagot, kanan. 1601 01:05:30,590 --> 01:05:31,790 Ito ay bumabalik na 0. 1602 01:05:31,790 --> 01:05:33,440 Hindi ito pag-print ang sagot. 1603 01:05:33,440 --> 01:05:35,760 Kaya ang programang ito sa panimula walang kapararakan, dahil 1604 01:05:35,760 --> 01:05:36,350 nakatayo ngayon. 1605 01:05:36,350 --> 01:05:37,220 Ito ay paggawa ng ilang trabaho. 1606 01:05:37,220 --> 01:05:39,530 Ito ay pagpunta sa tumagal ng ilang bilang ng mga segundo, o microseconds, upang 1607 01:05:39,530 --> 01:05:41,510 patakbuhin, ngunit hindi ito aktwal na paggawa ng anumang 1608 01:05:41,510 --> 01:05:42,770 kapaki-pakinabang para sa mga tao. 1609 01:05:42,770 --> 01:05:46,810 >> Kaya sabihin aktwal na ngayon buksan math2, kung saan ngayon ako aktwal 1610 01:05:46,810 --> 01:05:48,250 pag-print ang resulta. 1611 01:05:48,250 --> 01:05:51,260 Kaya ito ay masyadong maaaring natukoy na mula sa aming mga nakaraang mga halimbawa. 1612 01:05:51,260 --> 01:05:54,320 Kung gusto kong gawin ang ilang mga simpleng matematika, int x = 1, y 1613 01:05:54,320 --> 01:05:56,820 = 2. z ay 1 plus 2 ngayon. 1614 01:05:56,820 --> 01:05:59,240 Ano ito upang i-print ang malinaw naman? 1615 01:05:59,240 --> 01:06:00,120 Lamang 3. 1616 01:06:00,120 --> 01:06:01,590 Kaya mabilis katinuan check. 1617 01:06:01,590 --> 01:06:03,830 Hayaan akong lumipat sa direktoryong ito. 1618 01:06:03,830 --> 01:06:06,480 Kaya cd source1m. 1619 01:06:06,480 --> 01:06:09,370 Hayaan akong magpatuloy at i-type ang gumawa ng math2. 1620 01:06:09,370 --> 01:06:11,510 Walang mga mensahe ng error ay dumating out, kaya hayaan mo akong patakbuhin - 1621 01:06:11,510 --> 01:06:14,800 hindi a.out hayaan mo akong magpatakbo ng math2. Enter. 1622 01:06:14,800 --> 01:06:16,750 At sa katunayan, ito print mo 3. 1623 01:06:16,750 --> 01:06:18,460 Well sabihin kumuha ng isang pagtingin sa isang variant ng ito. 1624 01:06:18,460 --> 01:06:23,870 Sa Sa math3.c, na namin ngayon ang halimbawang ito dito. 1625 01:06:23,870 --> 01:06:26,540 >> Kaya ang isang ito uri ng kawili-wiling. 1626 01:06:26,540 --> 01:06:32,000 Kaya ito dito, ang sagot ay pagpunta upang makakuha ng 1 hinati sa pamamagitan ng 10, 1627 01:06:32,000 --> 01:06:33,910 at mapansin ko na ipinahayag ito bilang isang Float. 1628 01:06:33,910 --> 01:06:35,200 Bakit ko gusto ang mga ito sa isang Float? 1629 01:06:35,200 --> 01:06:36,110 Well, isang fraction. 1630 01:06:36,110 --> 01:06:37,140 Ito ay pagpunta sa maging isang tunay na numero. 1631 01:06:37,140 --> 01:06:40,970 Kaya pagpunta sa 0.1, sana - 10%, sa kasong ito. 1632 01:06:40,970 --> 01:06:42,610 At ano ang gagawin ko pagkatapos ay nais na i-print? 1633 01:06:42,610 --> 01:06:43,440 Well, ang sagot na ito. 1634 01:06:43,440 --> 01:06:44,760 Well, sabihin manunudyo mga bukod unang. 1635 01:06:44,760 --> 01:06:47,020 Kaya sa kaliwang bahagi, ipinapahayag ng 1636 01:06:47,020 --> 01:06:49,410 lumutang, tumawag ito sagutin. 1637 01:06:49,410 --> 01:06:52,280 Sa kanang bahagi, 1 hinati sa pamamagitan ng 10 at ilagay na 1638 01:06:52,280 --> 01:06:54,370 answer loob ng variable. 1639 01:06:54,370 --> 01:06:56,410 Ngayon, ang hitsura ng linyang ito ng kaunti pa misteriyoso. 1640 01:06:56,410 --> 01:06:59,440 Ngunit mapansin ng ilang mga pamilyar na tampok. % Ay nangangahulugang dito ay isang 1641 01:06:59,440 --> 01:07:00,490 placeholder. 1642 01:07:00,490 --> 01:07:03,230 f ay nangangahulugan dito ng lumulutang na halaga ng point, lamang real 1643 01:07:03,230 --> 01:07:05,490 numero, isang bagay na may decimal point. 1644 01:07:05,490 --> 01:07:07,330 0.2 paraan kung ano? 1645 01:07:07,330 --> 01:07:10,740 Sinuman alam mula sa naunang karanasan? 1646 01:07:10,740 --> 01:07:12,010 Dalawang decimal place. 1647 01:07:12,010 --> 01:07:14,050 Kaya hindi namin nasaksihan ito bago, ngunit ito lamang ang paraan ng 1648 01:07:14,050 --> 01:07:16,360 ehersisyo ng kaunti pa kontrol sa printf at 1649 01:07:16,360 --> 01:07:20,840 sinasabi hindi ninyo akong bigyan ng 30 puntos pagkatapos ng decimal point, 1650 01:07:20,840 --> 01:07:22,490 sa halip ninyo ako may 2. 1651 01:07:22,490 --> 01:07:23,960 >> At pagkatapos ay sabihin sige at patakbuhin ang. 1652 01:07:23,960 --> 01:07:30,160 Kaya matematika 3, at ngayon hayaan mo akong magpatakbo ng matematika 3, Ipasok. 1653 01:07:30,160 --> 01:07:34,630 At na hindi tama. 1654 01:07:34,630 --> 01:07:37,390 Mukhang namin na nagkaroon ng aming unang tunay na bug. 1655 01:07:37,390 --> 01:07:39,400 Well, siguro lang ako hindi naghahanap malapit-lapit. 1656 01:07:39,400 --> 01:07:41,960 Kaya hayaan mo akong pumunta dito, at ipaalam sa akin ilagay 20 decimal 1657 01:07:41,960 --> 01:07:43,300 punto lugar doon. 1658 01:07:43,300 --> 01:07:47,950 At ipaalam sa akin makatipon ito, gumawa ng math3, patakbuhin. 1659 01:07:47,950 --> 01:07:50,960 Pretty bang 1 na hinati sa pamamagitan ng 10 ay hindi 0. 1660 01:07:50,960 --> 01:07:54,270 Kaya kung ano ang nangyayari sa? 1661 01:07:54,270 --> 01:07:56,740 Na rin okay, kaya aktwal hindi ito ay upang gawin na ito. 1662 01:07:56,740 --> 01:07:57,600 Iyon ay isang mahusay na pag-iisip. 1663 01:07:57,600 --> 01:07:59,140 Ito ay talagang lamang pagkakataon 1664 01:07:59,140 --> 01:08:00,220 na ginagawa namin ito. 1665 01:08:00,220 --> 01:08:02,010 Ngunit lamang upang patunayan na ito ay hindi ito, bibigyan ko 1666 01:08:02,010 --> 01:08:03,160 magbalik ng bagay random. 1667 01:08:03,160 --> 01:08:05,160 Huwag gawin ito sa bahay, dahil lamang mali. 1668 01:08:05,160 --> 01:08:08,000 Ngunit gumawa math3, hayaan mo akong patakbuhin ito. 1669 01:08:08,000 --> 01:08:10,690 Kaya ay walang kinalaman sa kung ano ang ako bumabalik, lamang gawin 1670 01:08:10,690 --> 01:08:11,940 sa kung ano ang ako pag-print. 1671 01:08:11,940 --> 01:08:14,150 Ngunit narinig ko ito dito. 1672 01:08:14,150 --> 01:08:15,270 Ano? 1673 01:08:15,270 --> 01:08:17,524 Madla: Kaya kailangan namin upang isulat ang mga numero sa 1674 01:08:17,524 --> 01:08:19,680 division bilang - 1675 01:08:19,680 --> 01:08:20,319 >> David MALAN: Okay magandang. 1676 01:08:20,319 --> 01:08:22,810 Kaya kailangan namin upang isulat ang mga numero na lumahok sa 1677 01:08:22,810 --> 01:08:25,979 division dito bilang lumulutang point halaga ang kanilang mga sarili. 1678 01:08:25,979 --> 01:08:29,359 Kaya ang problema dito ay tulad ng dati: C, na may maraming mga 1679 01:08:29,359 --> 01:08:31,819 wika, ay may iba't ibang mga uri ng data. 1680 01:08:31,819 --> 01:08:34,600 At ang mga uri ng data, halimbawa, ang mga ito dito. 1681 01:08:34,600 --> 01:08:37,430 At ang mga uri ng data na pinag-uusapan dito, kapag ako ay nag-type 1 at pagkatapos ko 1682 01:08:37,430 --> 01:08:40,870 uri 10, marahil kung ano ang uri ng data? 1683 01:08:40,870 --> 01:08:42,170 Kaya marahil ito ay isang int, i-right? 1684 01:08:42,170 --> 01:08:44,149 Ito ay talagang hindi isang Float dahil ang walang decimal 1685 01:08:44,149 --> 01:08:45,460 point o anumang bagay tulad na. 1686 01:08:45,460 --> 01:08:48,270 Kaya talaga, mayroon akong isang int na hinati sa pamamagitan ng isang int. 1687 01:08:48,270 --> 01:08:52,160 >> Kaya ang kawili-wiling bagay tungkol sa matematika at computer na 1688 01:08:52,160 --> 01:08:54,840 kung ikaw ay gumagawa ng division gamit integer - 1689 01:08:54,840 --> 01:08:57,310 1 na hinati sa pamamagitan ng 10, oo ay 0.1. 1690 01:08:57,310 --> 01:09:01,420 Subalit, kapag ikaw ay paghahati isang integer sa pamamagitan ng isang integer, ang 1691 01:09:01,420 --> 01:09:06,859 sagot ring maging isang integer dahil lang, sa ngayon. 1692 01:09:06,859 --> 01:09:08,630 At kung ano ang implikasyon pagkatapos? 1693 01:09:08,630 --> 01:09:13,640 Well, kung ang sagot ay 1 hinati sa pamamagitan ng 10 katumbas ng 0.1, kung ano ang 1694 01:09:13,640 --> 01:09:15,680 computer ay pagpunta sa gawin Mayroon akong walang ideya kung paano sa 1695 01:09:15,680 --> 01:09:19,270 kumakatawan sa 0.1, dahil na lumulutang na halaga ng point, hindi isang 1696 01:09:19,270 --> 01:09:21,910 integer; ito pagpunta sa pagpura-pirasuhin-off ang lahat pagkatapos ng 1697 01:09:21,910 --> 01:09:27,470 decimal point at ipakita sa iyo ang 0 sa umpisa. 1698 01:09:27,470 --> 01:09:29,540 At ang katotohanan na ito ay pag-print bilang isang lumulutang point 1699 01:09:29,540 --> 01:09:31,200 halaga, ito ay isang Aesthetic bagay. 1700 01:09:31,200 --> 01:09:34,279 Iyon ay dahil ako pagpilit ang computer upang i-print ito bilang isang 1701 01:09:34,279 --> 01:09:35,229 lumulutang point halaga. 1702 01:09:35,229 --> 01:09:37,720 At sa katunayan ko na ipinahayag ito bilang isang Float, ngunit matematika ay 1703 01:09:37,720 --> 01:09:39,010 nangyayari sa paglipas dito. 1704 01:09:39,010 --> 01:09:41,859 >> Kaya ipaalam sa akin aktwal na ayusin ito sa isang medyo madaling paraan. 1705 01:09:41,859 --> 01:09:45,250 Bakit hindi ko lang gawin ang 10.0 at 1.0, bagaman 1706 01:09:45,250 --> 01:09:47,609 technically ako makakakuha ng ang layo sa pamamagitan lamang ng paggawa ng isa sa mga. 1707 01:09:47,609 --> 01:09:50,630 Ngayon ipaalam sa akin magpatuloy at gumawa ng math3. 1708 01:09:50,630 --> 01:09:56,350 Hayaan akong magpatuloy at ngayon patakbuhin math3, Ipasok. 1709 01:09:56,350 --> 01:09:57,500 At ngayon, oh batang lalaki. 1710 01:09:57,500 --> 01:10:00,050 Ngayon kami ay may isang bagong problema sama-sama. 1711 01:10:00,050 --> 01:10:05,600 Kaya mas mahusay, i-right, hindi namin mas malapit sa 0.1, ngunit kung ano ang malinaw ay 1712 01:10:05,600 --> 01:10:06,240 mali dito? 1713 01:10:06,240 --> 01:10:08,260 Maliban kami namamalagi sa iyo para sa taon, i-right? 1714 01:10:08,260 --> 01:10:13,660 1 hinati sa pamamagitan ng 10 ay talagang hindi pa 0.1, kaya kung ano ang 1715 01:10:13,660 --> 01:10:14,700 talagang pagpunta sa dito? 1716 01:10:14,700 --> 01:10:16,420 Well maaari mong uri ng dahilan sa pamamagitan ng lohikal. 1717 01:10:16,420 --> 01:10:19,200 Kung ang computer ng isang lamang ay may isang tiyak na halaga ng RAM upang simulan 1718 01:10:19,200 --> 01:10:23,530 , at sa katunayan lamang ng computer ng isang gumagamit 32 bit para sa isang 1719 01:10:23,530 --> 01:10:26,200 lumulutang point halaga, nakatayo sa dahilan na may isang 1720 01:10:26,200 --> 01:10:29,870 tiyak na bilang ng mga bits, 32 sa kasong ito, oo, maaari mong 1721 01:10:29,870 --> 01:10:31,050 kumakatawan sa isang maraming mga bagay-bagay. 1722 01:10:31,050 --> 01:10:33,220 Aktwal na apat na bilyong iba't ibang mga halaga ay maaaring maging 1723 01:10:33,220 --> 01:10:38,040 kinakatawan may 32 bit, 2 sa 32, ngunit pa rin ito tiyak. 1724 01:10:38,040 --> 01:10:40,730 Kaya ang problema ay may isang walang-katapusang bilang ng real 1725 01:10:40,730 --> 01:10:41,370 numero, kanan. 1726 01:10:41,370 --> 01:10:43,560 Kung ba ninyo akong bigyan ng isang real numero, maaari ko laging mahanap mo ang isa 1727 01:10:43,560 --> 01:10:46,080 bahagyang mas malaki, bahagyang mas mababa, sa pamamagitan lamang pag-aayos ng 1728 01:10:46,080 --> 01:10:47,970 numero na pagkatapos ng decimal point. 1729 01:10:47,970 --> 01:10:50,870 Kaya kung hindi mo na magkaroon ng isang walang-katapusang bilang ng mga bits, 1730 01:10:50,870 --> 01:10:52,940 hindi maaaring posibleng kumakatawan sa isang walang-katapusang 1731 01:10:52,940 --> 01:10:54,800 bilang ng mga tunay na numero. 1732 01:10:54,800 --> 01:10:58,090 >> Kaya ito taglay imprecision sa mga computer, at 1733 01:10:58,090 --> 01:11:00,930 ito ay makakakuha ng tripped higit sa lahat ng oras kahit na sa pinakasimpleng ng 1734 01:11:00,930 --> 01:11:02,260 programa tulad nito. 1735 01:11:02,260 --> 01:11:05,640 Kundi pati na rin sa ilang mga tunay na problema ng mundo pati na rin. 1736 01:11:05,640 --> 01:11:07,790 Sa katunayan, sabihin maglaan ng sandali upang lamang tingnan ang 1737 01:11:07,790 --> 01:11:09,530 isang bagay na aktwal na naganap sa katotohanan. 1738 01:11:09,530 --> 01:11:11,620 Susubukan naming panoorin ang unang ilang minuto, at pagkatapos ay 1739 01:11:11,620 --> 01:11:13,270 namin post ang link sa online. 1740 01:11:13,270 --> 01:11:16,700 Ngunit ito ay testamento lamang kung ano ang maaaring magkamali, medyo 1741 01:11:16,700 --> 01:11:19,680 totoo lang, sa trahedya paraan kapag ang mga bagay na ito ay hindi 1742 01:11:19,680 --> 01:11:23,870 pinapahalagahan o lamang namin ang mga tao ay gumawa ng mga pagkakamali pagdating sa 1743 01:11:23,870 --> 01:11:26,792 mga ganitong uri ng mga detalye ng pagpapatupad ng mga modernong computer. 1744 01:11:26,792 --> 01:11:27,284 >> [Nagpe-play ng VIDEO] 1745 01:11:27,284 --> 01:11:30,730 Na namin ngayon bumalik sa kalamidad sa engineering sa Modern Marvels. 1746 01:11:30,730 --> 01:11:32,200 Computer. 1747 01:11:32,200 --> 01:11:34,920 Lahat namin na dumating upang tanggapin ang madalas na nakakabigo problema 1748 01:11:34,920 --> 01:11:36,750 na pumunta sa kanila. 1749 01:11:36,750 --> 01:11:40,690 Mga bug, mga virus, at software glitches maliit na presyo upang 1750 01:11:40,690 --> 01:11:42,550 magbayad para sa kaginhawahan. 1751 01:11:42,550 --> 01:11:45,170 Ngunit sa mataas na tech at high speed militar at espasyo 1752 01:11:45,170 --> 01:11:48,450 application programa, ang pinakamaliit na problema ay maaaring maging 1753 01:11:48,450 --> 01:11:52,220 Pinalaking sa kalamidad. 1754 01:11:52,220 --> 01:11:56,780 Sa Hunyo 4, 1996, mga siyentipiko ay handa upang maglunsad ng isang hindi pinuno ang mga tauhan 1755 01:11:56,780 --> 01:11:58,430 Ariane 5 rocket. 1756 01:11:58,430 --> 01:12:00,750 Ito ay nagdadala ng mga pang-agham satellite na dinisenyo upang 1757 01:12:00,750 --> 01:12:03,580 magtatag tiyak kung paano magnetic field sa earth 1758 01:12:03,580 --> 01:12:06,900 nakikipag-ugnayan sa solar wind. 1759 01:12:06,900 --> 01:12:10,330 Rocket ay binuo para sa European Agency Space at 1760 01:12:10,330 --> 01:12:13,450 itinaas mula sa pasilidad sa baybayin ng Pranses Guyana. 1761 01:12:13,450 --> 01:12:16,970 >> Sa tungkol sa 37 segundo sa flight, sila muna 1762 01:12:16,970 --> 01:12:19,700 Napansin ng isang bagay ay pagpunta mali, na ang mga nozzles ay 1763 01:12:19,700 --> 01:12:21,590 swiveling sa isang paraan na sila dapat talagang hindi. 1764 01:12:21,590 --> 01:12:25,020 Sa paligid ng 40 segundo sa flight, malinaw ang sasakyan 1765 01:12:25,020 --> 01:12:27,340 ay sa problema, at na kapag sila ay ginawa ang desisyon sa 1766 01:12:27,340 --> 01:12:28,136 wasakin ito. 1767 01:12:28,136 --> 01:12:31,450 Isang hanay ng kaligtasan ng opisyal na may napakalaking tapang pinindot ang 1768 01:12:31,450 --> 01:12:34,160 pindutan, blew sa rocket bago ito maging isang 1769 01:12:34,160 --> 01:12:37,470 Hazard sa kaligtasan ng publiko. 1770 01:12:37,470 --> 01:12:40,750 >> -Ito ay ang unang paglalayag ng Ariane 5, at ang mga 1771 01:12:40,750 --> 01:12:43,990 pagkawasak naganap dahil sa isang basag na naka-embed sa 1772 01:12:43,990 --> 01:12:45,480 rocket ng software. 1773 01:12:45,480 --> 01:12:47,660 >> -Ang problema sa Ariane na may isang numero na 1774 01:12:47,660 --> 01:12:51,245 nangangailangan ng 64 bit na ipahayag at ninais nilang i-convert ito 1775 01:12:51,245 --> 01:12:53,010 ng 16 bit na numero. 1776 01:12:53,010 --> 01:12:54,900 Ipinapalagay nila na ang numero ay hindi kailanman 1777 01:12:54,900 --> 01:12:56,280 pagpunta sa napaka malaking, 1778 01:12:56,280 --> 01:12:59,920 na ang karamihan ng mga digit sa 64 bit bilang ay 0s. 1779 01:12:59,920 --> 01:13:01,860 Sila ay mali. 1780 01:13:01,860 --> 01:13:04,550 >> Ang kawalan ng kakayahan ng isang software program upang tanggapin ang 1781 01:13:04,550 --> 01:13:07,730 uri ng bilang na nabuo ng isa pang ay sa root ng 1782 01:13:07,730 --> 01:13:08,930 ang pagkabigo. 1783 01:13:08,930 --> 01:13:11,490 Software development ay naging isang napaka-mahal na bahagi ng 1784 01:13:11,490 --> 01:13:13,280 bagong teknolohiya. 1785 01:13:13,280 --> 01:13:16,530 Ang Ariane 4 rocket ay lubhang matagumpay. 1786 01:13:16,530 --> 01:13:19,100 Kaya magkano ng software na nilikha para dito ay ginagamit din 1787 01:13:19,100 --> 01:13:21,050 sa Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> -Ang pangunahing problema ay na ang Ariane 5 ay mas mabilis, 1789 01:13:25,530 --> 01:13:27,280 pinabilis na mas mabilis. 1790 01:13:27,280 --> 01:13:30,590 At software ay hindi para na. 1791 01:13:30,590 --> 01:13:33,060 >> Ang pagkawasak ng rocket ay isang malaking sa pananalapi 1792 01:13:33,060 --> 01:13:37,670 kalamidad, ang lahat ng dahil sa isang minutong software error. 1793 01:13:37,670 --> 01:13:40,750 Ngunit ito ay hindi ang unang pagkakataon na data mga problema ng conversion ay may 1794 01:13:40,750 --> 01:13:43,680 plagued ng modernong mga kuwitis teknolohiya. 1795 01:13:43,680 --> 01:13:44,390 >> David MALAN: makikita namin iwanan ito sa na. 1796 01:13:44,390 --> 01:13:46,870 Ngunit ito ay testamento sa lamang kung paano naaangkop kahit na ang ilan sa 1797 01:13:46,870 --> 01:13:48,750 mga pinakamababang antas ng detalye na namin na nagsimula sa 1798 01:13:48,750 --> 01:13:50,040 galugarin ngayon ay. 1799 01:13:50,040 --> 01:13:52,510 Kaya kahit kumuha ka ng isang maliit na ginulo marahil sa pamamagitan ng ilan sa mga 1800 01:13:52,510 --> 01:13:55,240 syntax at arcaneness dito, Napagtanto na sa ibabaw ng 1801 01:13:55,240 --> 01:13:57,690 termino na makikita namin nakatutok lamang sa kung paano naaangkop ito ay 1802 01:13:57,690 --> 01:13:59,530 mundo malayo sa CS. 1803 01:13:59,530 --> 01:14:00,780 Makikita natin sa Miyerkules.