[Powered by Google Translate] David MALAN: Ito ang CS50, at ito ay ang simula ng Linggo 1. Ano ang naisip naming gawin ngayon ay tingnan bumalik sa isang bagay na marami sa inyo malamang lumakad nakalipas para sa ilang oras ngayon at maaaring maging pamilyar ang ilang sandali. Ito bagay dito, ito ng kurso ay sa - Madla: Science. David MALAN: Science center. Kaya ito ay talagang isa sa pinakamaagang computer -back mula sa 1940s. Ito ay isa ng unang Electromechanical computer na may kakayahang lalo na mahaba, self-napapanatiling computations, at kung ano ang aming tunay na makita sa ang sentro ng agham ay lamang ng isang maliit na bahagi ng bagay na ito. Ano ang naisip naming gawin pagkatapos ay tumingin pabalik sa isang video na ginawa ng ilang oras ang nakalipas, nagpapakilala ito bagay sa mundo. At makikita mo mula sa musika at boses na sa katunayan mga napakasaya beses. [Playback ng video] Isang pagtatagumpay ng matematika at mechanical kasanayan ito mahusay na bagong awtomatikong calculator sa Harvard University. Buhol-buhol na mga problema sa matematika, ilagay sa pamamagitan ng machine sa code form sa tape, ay tumpak malulutas sa isang minutong bahagi ng oras na kinakailangan para sa tao pagkalkula. Dinisenyo upang mapabilis ang lahat ng mga paraan ng matematika at siyentipikong pananaliksik, ang higanteng mechanical utak ay gumagana para sa Estados Unidos Navy hanggang sa pagtatapos sa digmaan. David MALAN: Kaya kung ano ang hindi mo maaaring malaman na ito ay nasa ito parehong aparato na ang isang term namin ang lahat na ngayong kumuha ng medyo magkano para likha ay nabigyan ng, na ng isang bug. Kaya isa ng mga inhinyero na nagtatrabaho sa computer na ito literal na natagpuan ng isang maliit na mariposa sa machine na nagresulta sa ilang mga hindi tamang kalkulasyon. At bilang napupunta ang kuwento mariposa na tape sa log na ito journal dito, bumalik mula Setyembre 9 sa 1940-isang bagay, at sa gayon ay ipinanganak para sa mundo ng term na "bug". Kaya simula ngayon namin isaalang-alang ang mga bug sa anumang uri ng pagkakamali sa programa, kung ginawa ng tao o, sa kasong ito, insekto. Kaya ng ilang mga anunsyo, bilang namin magpatuloy. Kaya CS50 ay may tradisyon ng nag-aalok ng tanghalian ng mga uri sa pinaka-Biyernes sa panahon ng semestre, kung saan nagsasagawa kami ng 30 hanggang 40 mga mag-aaral sa Sunog at Yelo sa Square para sa casual chitchat, makipag-usap tungkol sa computer science, makipag-usap tungkol sa hinaharap. Namin mag-imbita ng mga alumni at mga kaibigan mula sa industriya upang makipag-chat up mag-aaral pati na rin. Talagang patungo sa isang pagtatapos ng paggawa ng kung ano ang isang medyo malaking klase ang lahat ng mga mas kilalang-kilala, hindi bababa sa isang beses sa habang para sa subset ng mga mag-aaral. Kaya kung nais mong upang sumali sa amin ito Biyernes, 1:15 PM, pumunta sa CS50.net/lunch sa RSVP. At gagawin namin ito recurringly, kaya huwag mag-alala kung hindi ka kabilang sa mga unang 30 o kaya sa linggong ito. Kaya tagasulat tala. Isang salita sa ang mga mapagkukunan na ngayon simulan ang pagiging magagamit sa mga mag-aaral sa klase. Gayon na ang iyong ulo ay kailangang hindi sa panahon ng aralin scribbling down na ang lahat ng sinasabi ko at iba pa, ano ang ginagawa namin sa halip ay magbigay mula sa kawani ng pagtuturo ng canonical na hanay ng mga tala. Kaya kami ay may isa ng aming mga Fellows ng pagtuturo, Andrew Sellergren, na makikita bawat linggo, sumusuri sa video, at pagkatapos ay nagsusulat pababa kung ano ang sa tingin namin ay isang patas makapangyarihan na hanay ng mga tala. At Andrew sa hibang na hibang din, ng paglalagay ng snarky footnote sa ibaba. Kaya mo sana mga bisita mga ito bilang isang reference libro para sa masaya, at din, dumating pagsusulit oras, pati na ang isang pagkakataon upang suriin ang kung ano ang nangyari sa mga indibidwal na mga aralin. Kaya mga naka-link sa pahina ng aralin. Problema set 0, samantala, ay ang. At sa mga tuntunin ng mga mapagkukunan na magagamit sa iyo - ang walkthrough. Milo humantong ang una sa Biyernes. Ito ay kumuha, ilagay ang online ng Sabado. At kaya Napagtanto, kung hindi ka talagang sigurado kung saan magsisimula, para sa o hinaharap p-set, laging i-una sa walkthrough o ang video hinggil doon. Sectioning ay nasa progreso, sa cs50.net/section ay kung saan mo dapat isumite ang iyong mga kagustuhan, kung hindi mo pa na, sa pamamagitan ng ngayon. Dahil ang mga seksyon ay magsisimula na ito darating na Linggo, Lunes, at Martes. Gawin namin ang mga seksyon ng tatlong araw na iyon, bawat linggo ng semestre para sa pinaka-bahagi. At din namin ipakilala, muli, iba't-ibang mga track. Kaya tatanungin ka sa form na ito sectioning, kung hindi nakikita ang mga ito na, kung ikaw ay kabilang sa mga mas kumportable, mas kumportable, o isang lugar sa pagitan. At kung ikaw ay uri ng sa bakod, sa pangkalahatan sa isang lugar sa sa pagitan ng ang karamihan sa mga mag-aaral magtapos check. Office oras magsimula ngayong gabi. Kaya sa simula ay medyo mababa key, kahit na medyo natural upang tumakbo sa iba't ibang mga bug, o hindi tiyak sa kung paano sa ipatupad ang isang bagay. Kaya Napagtanto na magsisimula kami sa oras ng opisina sa linggong ito. Makikita nila sa Annenberg Lunes, Martes, Miyerkules, Huwebes, 20:00-11:00 sa panahon ng utak pahinga. Upper classmen ay maaaring makakuha ng sa, at kung sakaling magkaroon ng problema sa pagkuha ng sa pinto, dahil sila ay swiping, lamang na makipag-usap sa iyong paraan in at ipinapaliwanag ikaw ay may CS50. Karaniwan 20-30 sa atin sa kawani ay doon upang makatulong sa mo ang isa sa isa. Sa pagdating ideya na ito: makikita mo dalhin ang iyong laptop, makikita mo ang iyong charger, makikita namin may karagdagang kapangyarihan tanikala, lalo sa kahabaan ng timog pader ng Annenberg kung saan may maraming mga elektrikong saksakan. At ang pangunahing punto ng entry sa mga oras ng opisina Q & A ay pumunta sa cs50.net/discuss at mag-post ng iyong katanungan doon. At sa label ito may pset 0 o pset 1, anumang linggo maaaring mangyari upang maging. At pagkatapos ay kung ano ang gagawin namin ay magkaroon ng isang talaan ng mga Fellows ng pagtuturo at kurso assistants, pangkalahatang 8 o 10 o kaya sa atin, pagpunta sa pamamagitan, nang pinapanatili ang isang maalaga mata sa board, at plucking off ang mga tanong talaga bilang mabilis hangga't makakaya namin, nagre-refer ka sa mga kaugnay na mga post kung hindi mo pa nahanap mga inyong sarili, online na mga sanggunian, ayon sa naaangkop. At pagkatapos ay kung may mga problema, bilang may hindi maaaring hindi ay, o ito ay ginagawang higit pang kahulugan sa umupo isa sa isa, gumana sa pamamagitan ng mga problema sa isang tao. O mo lamang darating sa oras ng opisina ay talagang nangangailangan ng na mindset. Hindi mo nais na pumunta sa pamamagitan ng electronic form, talagang gusto upang matugunan sa isang tao. Makipag-usap na sa amin, at kung ano ang mangyayari ay kapag ang iyong tanong ay nakikita ng isang miyembro ng kawani, at kami matukoy, yup, ito ay dapat despatsado sa isa ng 20 o 30 miyembro ng koponan dito sa lokal, makikita mo sa tuktok pakaliwa ito kaunti Ipasok ang pindutan ng Queue nagsisimula flashing sa cs50.net / talakayin. At ito ay nagsasabi sa iyo mo na ngayon ay inanyayahan, nang sa gayon magsalita, ipasok ang queue. At sa pamamagitan ng pag-click na pindutan, ang iyong pangalan ay lilitaw sa isang iPad na ang CS50 greeter, isa sa ulo ang kurso, may hawak na malapit ang pasukan ng Annenberg, na ay makita ang bilang itinatanghal dito, ang mga mag-aaral na may mga katanungan sa sa kaliwa, ang mga miyembro ng kawani na sa kanan. At may isang pag-click ng kaliwa at kanang, ang iyong web browser ay simulan ang flashing sa lalong madaling panahon, halimbawa, Propesor McGonnagal ay handa upang makita ka sa isang partikular na talahanayan sa Annenberg. Kaya ginawa namin ang ilan sa mga nakaraang taon na ito. Rebooted namin ang oras ng opisina at muling ipinatupad ng karamihan ng software. Kaya nauunawaan natin na ito ay magpainit sa linggong ito. Kundi pati na rin Napagtanto masyadong, sa mga taon na nakalipas, tulad ng maaaring narinig mo mula sa mga kaibigan, mga oras ng opisina ay may katunayan 50 sa 150 mga mag-aaral nang sabay-sabay. At ito ay simpleng hindi posible para sa amin upang mahawakan na epektibo, isa sa isa, sa buong gabi. At kaya kung ano ang talagang kami ay pagpunta upang subukang gawin ito taon ay mapakinabangan ang katotohanan na ng maraming ng mga tanong madalas na itinatanong at maaaring madalas ay mas mahusay na nasagot asynchronously. Kaya maaari mong pag-uri-uriin ng tingin sa pamamagitan ng pagtugon sa mga tauhan ng, at maaari naming isipin sa pamamagitan ng iyong code, nang walang heated presyon ng kinakailangang struggling sa pamamagitan nito magkatabi. Kaya tinatantya namin na halos isang third o kalahati ng mga tanong ay despatsado sa tao, at susubukan naming kumalbit off bilang marami bilang isang kalahati o mas electronic, sa panahon ng mga opisina oras. At kami na patuloy na gamitin ang Talakayin sa buong linggo pati na rin. At bilang wakas, mapagtanto na ang kursong ito ay dadalhin pumasa / mabibigo. Kaya kung ikaw ay sa bakod o isiping ikaw talaga hindi sigurado kung ito ay ang mundo para sa iyo, o talaga ito medyo banyaga sa iyo, nauunawaan natin na ito ay isang kahanga-hangang paraan ng pagkakaroon ng ilang kumpiyansa sa hakbang sa klase, tulad ng ginawa ko lantaran, taon na ang nakakaraan. At pagkatapos ay limang linggo upang pag-uri-uriin ng figure out para sa ang iyong sarili kung nais mong manatili pumasa / mabibigo, lumipat sa isang sulat grado, o tulad ng. At karaniwang kung ano ang pumasa / mabibigo ay, tingin ko, para sa mga mag-aaral ay , kung inilagay mo sa na 10 oras, 20 oras, anumang ito ay maaaring sa ilang mga problema, at ka banging iyong ulo laban sa pader, at mo ba talagang lamang ay hindi maaaring Chase isang bagay, at may maraming iba pang mga bagay na kailangan mong gawin, totoo lang, kung ano ako tingin pumasa / mabibigo ay, ito ay tumatagal ng sa gilid ng sitwasyon tulad na. Kung saan mo kinuha ang bagay sa 90% ng paraan. Alam mo, ito ay hindi pa perpekto. Subalit ba kayong ng maraming nito, gayunman. Kaya isaalang-alang ang pumasa sa / mabibigo bilang nagbibigay sa iyo na kaisipan modelo, marahil. Lahat ng karapatan, kaya huling linggo na namin kalapati sa simula, at hindi na namin uusapang tungkol sa mga programa sa isang medyo mataas na graphical antas. At ngayon namin ang paglipat sa isang wika na tinatawag na C, ang isang mas mababang antas ng programming language sa itaas ng kung saan maraming modernong wika ay binuo ngayon, kabilang ang ilang mga ng mga gagamitin namin ginagamit patungo sa pagtatapos ng termino. At syntactically, kung ano ang tumingin sila tulad ng lahat ng medyo katulad. Kaya sabihin magsimula sa transition na ito dito. Kaya ito ng programa noong nakaraang linggo na ang pinakasimpleng ng kumusta mundo programa. Naka-print na ito lamang sa mundo screen kumusta, na may maliit na speech bubble darating ng pusa. Well, kung tayo magsimula ngayon upang i-translate ito sa isa pang wika, Napagtanto na ang mga ideya na ngayon at sa Miyerkules ay magkapareho, ngunit syntax magsimula na baguhin. Kaya kung saan noong nakaraang linggo nagkaroon kami, kapag ang berdeng bandila click, sabihin kumusta mundo. Ngayon kami ay pagpunta sa int, pangunahing, walang bisa, printf, return, may ilang iba pang mga syntax sa doon pati na rin. Kulot tirante, at panaklong, at quote, at watnat. Ngunit mapagtanto na ang core ng ideya dito ay ang pag-print, at sa huli ang katotohanan na ang pangunahing ay ngayon pagpunta sa magkasingkahulugan na may sa simula ng isang programa. Pangunahing na kung saan ang berdeng bandila kicks bagay off. Kaya ngayon sabihin manunudyo bukod ang ilan ng ang mga bloke ng gusali dito bago namin sumisid sa ilang mga kongkreto halimbawa. Kaya tinatawag namin ang isang pahayag noong nakaraang linggo, kung saan lang ng pagtuturo. Gawin ito - sa kasong ito, kamustahin mundo. Na rin sa C, kung tiningnan namin sa na linya lamang, ito ay kung paano kami pagpunta upang simulan ang pagpapahayag na partikular na piraso ng puzzle: printf ("Hello World");. At ngayon namin manunudyo mga bukod higit pa at higit pa sa paglipas ng panahon, ngunit mapagtanto na ang isang pattern dito. Kaya isa, mayroon kaming ito bagay na tinatawag na printf, na mahalagang kahalintulad sa salita Sabihing. Iyon ay kung ano ang pagpunta sa gawin. Printf, at f dito ay nangangahulugang "format". Kaya lang ang ibig sabihin nito ay maaari mong ipasok iba't ibang Aesthetic detalye. Kaya quote magpanipi ang simula ng kung ano ang kami ay pagpunta upang simulan ang pagtawag ng isang string. Ang isang salita, parirala, pangungusap. Isang string sa isang wika ng programming ay isang pagkakasunod-sunod ng mga zero o higit pang character. Kaya h-e-l-l-o, kuwit, at iba pa ay, quote magpanipi, isang string. At ngayon backslash n, isang maliit na syntactically kakaiba, ngunit hindi namin natukoy na huling linggo bilang ibig sabihin kung ano? Ito ay isang bagong linya. Ito lamang ang paraan ng conveying sa computer na gusto mo na ang katumbas ng pagpindot sa Ipasok doon, ngunit hindi mo gusto gusto sa aktwal na pindutin ang Enter at samakatuwid Nagkamali ang lahat ng mga -format ng iyong aktwal na programa. Ngayon ang mga panaklong ay ilakip ang string na ito, bukas paren at malapit paren, at sa loob ng na ang aming mga string. Dahil na dahil sa C, at iba pang mga programming wika, ang mga bagay na gusto printf tumagal argumento, o parameter. Kaya simulan ang iniisip ngayon ng ito lilang sabihin bloke bilang isang function, bilang paraan, bilang isang pamamaraan. Maaari mo ba talagang tumawag ito anumang nais mo sa ngayon, ngunit ito ay uri ng isang pinaliit na programa na ginagawa lamang ng isa bagay, sa isang linya, walang mas. Kaya printf ay din kung ano ang namin ang pagpunta upang simulan ang pagtawag ng function, at mga function na gawin ang isang bagay - sa kasong ito mga Kopya ng format na string sa screen - ngunit function ring kumuha ng mga argumento o mga parameter. At sa pamamagitan ng mga argumento o mga parameter, salamat, ibig sabihin namin na ang kanilang pag-uugali ay maaaring naiimpluwensyahan ng kung ano ang pumasa ka sa sa loob ng panaklong. Kaya sa kasong ito, printf pangangailangan nasabihan kung ano ang i-print, at kami lamang pumasa sa, sa double quote dito, ang string na namin aktwal na gustong i-print. At ang semicolon sa pinakadulo ng line na ito ay lamang ng isang makasaysayang istorbo kung saan sa dulo ng karamihan ng mga linya ng code, kang maglagay ng semicolon sa sobrang malinaw sa computer na ang linya ng code na nagtatapos dito. Ngayon ito ay mabuti dahil bilang namin makita ang bilang programa makakuha ng mas maraming complex, semicolon ay sobrang malinaw sa amin mga tao, at din ang computer, kung saan ang mga linya ng code ng pagsisimula at pagtatapos. Mapagtanto na ang ilang mga wika ay hindi magkakaroon ng ilang ng mga parehong mga detalye. At sa katunayan, sa JavaScript, hindi mo laging kailangan ng isang bagay tulad ng semicolon. Ngunit higit pa sa na sa darating. Kaya loop. Nagkaroon kami ng isang bagay na tulad nito, napaka intuitively, halata, isang bagay muli at muli at muli. Gusto ng paglalagay sa mga medyas, o sinasabi kumusta, sa kasong ito. Well, simula ngayon sa C, maaari naming ipahayag ito sa simula harangan ang bilang habang (tama) printf ("hoy mundo"). Kaya mapansin kami ay nagsisimula upang bumuo sa literal ang puzzle piraso mula bago. Mayroon kaming ang parehong mga lilang bloke, ngunit ito sa loob ng mga ito bracketed Habang Panahon bloke, at ang pinakamahusay na paraan upang i-translate na sa C ay tulad ng sumusunod. Walang nang Tuluyan keyword. Hindi lamang mo maaaring i-type f-o-r-e-v-e-r sa C. Kaya ang pinakamalapit na analog ay habang. Ngayon, habang (tama) tila ng kaunti bobo dahil ang halaga ng tunay kailanman pagbabago? Baka hindi. Ito ay tulad ng sinasabi habang isa, habang, habang totoo. Ang lahat ng mga parehong bagay, ang totoo ay palagi ang kaso. Kaya loop na ito ay aktwal na pampalaglag kung anong uri ng loop? Isang walang-katapusang loop, kanan. Isang nang Tuluyan loop o bilang tinatawag namin ito noong nakaraang linggo, isang walang-katapusang loop. Kaya minsan na masamang. Minsan na ang isang bug, minsan na ang dahilan kung bakit kumuha ka ng ang Umiikot na bola ng beach o orasa o ang tulad ng. Ngunit sa kasong ito, hindi namin sadyang, para sa anumang dahilan, gusto upang i-print muli ang parehong bagay at muli at muli. O sa kaso ng tulad ng panonood, gusto mong gawin isang bagay muli at muli at muli. Kaya walang-katapusang loop ay maaaring magkaroon ng kahulugan. At ito ay kung paano sa C maaari naming isalin sa Habang Panahon sa code. Kaya ngayon ang isang ito ng kaunti mas tiyak na. Namin ay ulitin ng 10 beses ang sumusunod na pahayag. Kaya habang (tama) ay hindi pa gumana doon, dahil ang totoo ay laging totoo. Kaya kung sa halip namin tingnan ang bersyon ng C, ngayon syntax nakakakuha ng kaunti pa misteriyoso. Ngunit upang maging matapat sa sandaling sinimulan mo upang makita ito, lahat ng ito ay nakakakuha medyo pamilyar mabilis. Kaya ito ay kung ano ang tinatawag na para sa loop. A para sa loop upang sabihin sa computer upang gawin ang isang bagay muli at muli at muli para sa hangga't mga bagay na ito ay totoo. Ngayon ano ang gagawin namin ibig sabihin sa pamamagitan ng na? Well, may tatlong bahagi sa isang loop, at kami ay pagpunta sa bumalik ito sa konteksto ng aktwal na halimbawa sa isang sandali. Kaya huwag mag-alala kung hindi ito ay medyo mapasubsob sa lahat nang sabay-sabay. Ngunit int i = 0, mahaba kuwento maikling, sinasabi ninyo akong bigyan ng variable na ng uri ng integer, kaya ninyo ako ng isang numero tinatawag i, at initialize ito sa 0. Ninyo ako tulad ng isang algebraic variable x at initialize ito sa 0. Ngunit sa kasong ito tinatawag namin itong i. Pagkatapos ay sa gitna, sabi i ay mas mababa sa 10. Na nagsasabi sa computer ang mga sumusunod na mga bagay-bagay kaya mahaba bilang i ay mas mababa sa 10. At malinaw naman nagsisimula ito sa mas mababa sa 10 dahil nagsisimula ito sa 0. Pagkatapos bilang wakas, maaari mong marahil hulaan kung ano ang i + + paraan. Ng kaunting syntax na lamang ay nangangahulugan dagdagan i. Kaya magdagdag ng 1 sa i, muli at muli at muli. At iba pa bilang namin makita ito loop, ang syntax na ito, sa halip, ipinapatupad tiyak ang parehong bagay na, lantaran, sa simula ay lamang kaya mas madali upang ipahayag. Ulitin 10, at tapos ka na. Sa C, at sa karamihan sa mga wika programming, mayroon kaming isang kaunti pa nakapagtuturo para sa computer at aktwal tukuyin ang isang bagay tulad nito. Ngunit makikita namin bumalik ito at iba pang mga syntax. Paano ang tungkol sa mga variable? Sa simula namin ay may isang bagay tulad ng mga orange na bloke, kung saan maaari kong ipinapahayag sa isang variable. Sabihin mang tumawag ito counter. Natin initialize ito sa 0, at pagkatapos ay sabihin magpakailanman gawin ang isang bagay. Sa kasong ito sa scratch ako sinasabi ng counter, kaya ang pusa pagpunta sa magkaroon ng isang maliit na speech bubble na pagsasalita ang bilang na ito variable. At pagkatapos ay mayroon kaming counter ng pagbabago ng 1. Kaya lahat ng ito ay nakabalot sa loob ng isang lock sa Habang Panahon. Kaya na namin ngayon ang mga bloke ng gusali sa C may kung saan upang i-translate ito. One way kami maaaring gawin na ito. Bigyan mo ako ng isang integer, tumawag ito counter. Initialize ito sa 0 sa unang linya doon. Habang (tama), kaya ako pagnanakaw na ideya mula sa sandali lamang nakalipas, magpatuloy at gawin ang mga sumusunod. I-print ang counter, at pagkatapos ay dagdagan ang counter, muli, at muli, at muli. O muli, + + lamang ay nangangahulugan na magdagdag ng 1 sa isang bagay. Ngunit may isang bagong piraso ng syntax dito. Ano ang paglukso bilang hindi kabilang ang aming mga nakaraang mga halimbawa? Oo,% d na ito. Sa gayon maaari mong maaaring magpakilala kung ano ito ay ginagawa, lantaran, batay sa kung ano ang simula bloke ay ginagawa. Ngunit muli sa C, lang namin ng kaunti pa sa partikular na pagdating sa pagpapahayag ng ating sarili. Kaya printf ("% d \ n"). Na rin ang karamihan ng na maaari naming itapon bilang pamilyar. Lamang ang mga quote ay nangangahulugan na ito ay isang string, backslash n ay isang bagong linya. Kaya lamang bagong bagay dito ay% d. At ang lahat ng iyon ay isang placeholder. % D ay upang tukuyin ang isang decimal na numero. At% d ay nangangahulugan na computer, maglagay ng decimal na numero dito. Well, kung ano ang numero ang gusto mong upang ilagay doon? Well, tulad ng maaari mong marahil magpakilala, pagkatapos ng kuwit sinasabi namin counter, na ang pangalan ng isang variable na ipinahayag namin o nilikha ng ilang linya nang mas maaga. Kaya ito ay C ng paraan ng i-plug sa isang variable sa isang string dynamic. Dahil sa pamamagitan ng kaibahan, kung sa halip ako ay gawin ang isang bagay tulad ng ito, printf ("counter"), ano ang gagawin ito programa sa halip gawin, baka? Ito literal-print "counter". Na kung saan ay hindi ang effect na gusto ko. Kailangan kong ihalili sa ilang mga numerong halaga. Kaya gagamitin namin makita na mga function pagkatapos, tulad ng printf, maaaring tumagal ng hindi lamang lang iisang argumento, tulad ng "Hoy mundo". Maaari silang quote magpanipi kuwit, at ang ilang mga variable na makakuha ng mga nakasaksak sa, dahil kakailanganin namin makita ang mga nakaraang string sa pamamagitan ng mga placeholder sa sign ng%. Na rin kung ano ang tungkol sa Boolean expression? Boolean expression ay mga halagang ito, true o false. Oo o hindi. 1 o 0. On o off. Kaya sa scratch tumingin sila tulad nito, at mapapansin na ang ibaba block dito ay ang tunay ang kasabay ng dalawang mas maliit na mga bloke. Kaya ko uri ng drag at bumaba ng tatlong piraso puzzle magkasama upang doon na mas mahaba na piraso ng puzzle kaya na ako maaaring ihatid ang ideya na gusto kong x sa mas mababa kaysa sa y at y na mas mababa kaysa sa z. At kaya ko isalin ang mga dalawang magkahiwalay na linya tulad ng sumusunod. Sa tuktok napaka trivially isinalin sa C, sa pamamagitan lamang ng x lamang ang aming paraan ng pagsabi sa C, akong bigyan ng access sa mga function na ang ibang tao sinulat ni. At sa kasong ito mahalaga ako dahil gusto ko printf. Ngayon makuha namin ang int pangunahing (walang bisa). Kaya ito ay isa sa mga bagay na ito, lantaran, na sa araw na 0, medyo magkano ang iyong ko sa uri ng zone out, dahil ito lang hindi kawili-wili intellectually, ilang ng syntax. Ngunit sa ngayon malaman na ang mga pag-andar, kung hindi man kilala bilang pamamaraan, o pamamaraan, sa pangkalahatan ay makagawa ng ilang mga halaga. Ginagawa nila ng isang bagay. Ang mga ito ay may isang sagot. Makagawa sila ng output. Kaya int sa tabi ng pangunahing lamang ang aming shorthand paraan ng pagsabi na ito function, ang pamamaraan na ito, ay malaon pagpunta upang bigyan ka ng isang numero. At bakit na, magpapadala kami bumalik sa. Main ay ang default na pamantayan ng mundo para sa default function na upang isinasagawa sa isang C programa kapag patatakbuhin mo. Walang bisa lamang ay nangangahulugan na ang bagay na ito, ang pangunahing, walang argumento, sa kasong ito. Kaya ako sobrang tahasang. Walang string sa doon, may mga kuwit. Walang bisa ay nangangahulugan na walang mga argumento sa main. Ngayon bilang wakas, thankfully, ang huling dalawang linya ay pamilyar. Inside ang kulot tirante mayroon kami ng printf at mayroon kaming isang pagbalik. At return uri ng kapus-palad na mayroon kaming ilagay ito doon, dahil sa kasong ito hindi ito ginagawa ang lahat ng magkano ng interes. Ngunit sa isang computer program, kapag ang isang function na nagbabalik 0, na nangangahulugan lahat na rin. Walang nangyaring mali. Sa pamamagitan ng kaibahan, kung ang isang function na nagbabalik 1, o negatibong 1, o negatibong 1337, o ilang mga random na numero tulad na, na karaniwan ay nangangahulugan ng isang error na aktwal na naganap. Kaya kung ikaw ay sa iyong Mac o iyong PC, kung sakaling mo na nakita ilang mga nakakainis na mensahe dahil ang iyong computer ay nag-crash o frozen, at may isang misteriyoso mensahe ng error, at pagkatapos ay ang ilang mga code, tulad ng sistema code 1,2,3,4, ang ilang mga numero, na sa pangkalahatan ay isang hindi kinakailangang detalye upang sabihin sa karamihan sa atin mga tao, ngunit ang ilang mga function na o ilang programa ay aktwal na ibinalik, di-zero na halaga. At ang mga benepisyo ng ito ay na 0 ay nangangahulugan ng pati na rin, at pagkatapos mo mahalagang ay isang walang-katapusang bilang ng mga bagay na maaaring magkamali. Alin ang kung bakit nila pinili 0 para sa mahusay at ng non-zero na halaga para sa masama, bilang ay namin sa lalong madaling panahon makita. Kaya sabihin sige at isulat ito. Kaya isipin ang na sa iba pang mga araw ginamit ko ang aking Mac upang buksan ang isang terminal na window, at pagkatapos ko binuksan up ng programa sa teksto, tulad ng TextEdit, at ako makapagsimula pagsusulat ng ilang code. Na rin na fine. Ngunit ang iyong karanasan ay iba sa Mac, o sa isang Solaris computer, isang Linux computer, anumang operating sistema mangyari gumagamit. At kaya sa kurso, kung ano ang namin sa halip na gamitin ang isang bagay tinatawag CS50 Appliance. Kaya CS50 Appliance ay isang nada-download na piraso ng software na nagpapahintulot sa iyo na magpatakbo ng isang operating system na tinatawag na Linux, partikular Fedora Linux, sa iyong sariling Mac o PC. At gawin mo ito sa pamamagitan ng pag-download ng isang bagay na tinatawag na hypervisor. Kaya ang lahat ng ito ay dokumentado sa hanay ng problema 1. At makikita mo ginagabayan patungo sa kung ano ang kailangan mong i-download. Ngunit ang resulta, kung mayroon kang isang Mac o PC, ikaw i-download ang ilang mga libreng software. Mo pagkatapos ay i-download ang CS50 Appliance, at sabihin sa iyo na libreng software - ang hypervisor - upang patakbuhin ang CS50 Appliance sa isang window sa iyong computer. At ano ang mangyayari ito. Ako ngayon, mapansin dito, kung ano ang lilitaw sa isang desktop kapaligiran. At ipaalam sa akin aktwal na-urong ito solong window. Kaya ito ngayon ang aking Mac, na may maliit na window dito, at sa loob ng ng window na ito ay mangyayari sa isang ganap na ibang mga operating system. Sa katunayan ito simula menu dito, nakapagpapaalaala ng Windows, na may isang buong grupo ng mga sub menu, kabilang ang isang link sa CS50 manu-manong, Dropbox, at ang mga tulad ng. At kung ano ang kapaligiran ito ngayon ay isang karaniwang kapaligiran na ang lahat sa atin ay maaari na ngayong gamitin, kaya na kahit na ano ang iyong computer ay, kung ano ang iyong na-install ito, kung anong bersyon ng Mac OS o Windows nagpapatakbo ka, tayong lahat ngayon ng parehong kapaligiran. At ngayon sa environment na ito maaari naming simulan ang pagsusulat ng ilang code. Kaya ako pagpunta upang magpatuloy at buksan ang isang programa na tinatawag na gedit. Ito ay maihahambing sa notepad.exe, o TextEdit sa Mac. At ito lamang ang napaka-simpleng programa ng pag-edit ng teksto na ganito ang hitsura sa unang tingin. Ngayon sa pinakatuktok, mayroon akong isang puting palette, sa ibaba ko ito itim na window na nagsasabing appliance jharvard @. At na dahil ang gumagamit ng account na aming pre-nilikha para sa lahat ay tinatawag na John Harvard. Siya ay may isang folder kung saan lahat ng kanyang mga file upang pumunta, at narito ang kung saan maaari naming simulan ang pagsusulat ng ilang code. Kaya hayaan mo akong magpatuloy dito at mag-zoom in ng kaunti lamang, at ako ay pagpunta sa gawin # isama , int pangunahing (walang bisa), at pagkatapos ay ako pagpunta sa gawin printf ("Hello World") ; Bumalik ang 0. Ngayon ito ay ang lahat ng medyo black and white. Hayaan akong magpatuloy at gawin ang isang bagay upang magturo ng gedit kung ano ang ako aktwal na paggawa. Hayaan akong pumunta sa I-save Bilang. Ako pagpunta sa pumili sa kaliwang bahagi dito jharvard. Sa muli, kahit na hindi mo na ginagamit Linux bago, lantaran mga araw na ito, ang lahat ng mga ito ay devolving sa mahalagang parehong uri ng interface - Mac OS, Windows, at Linux. Kaya ko pinili bahay folder jharvard dito. At ako pagpunta sa i-save ang file bilang hello.c. Kaya sa pinakatuktok, ako-type hello.c; pagpapangalan ng isang C programa na may extension na. c kung ano ang karaniwang kasanayan. At ako ay pindutin ang I-save. At ngayon kung ano ang magaling na epektibong ko na nagturo gedit, na ito ay isang C programa. Pansinin na ang aking itim at puting teksto na ngayon ang kulay code, o syntax highlight, na lang humahatak sa aking pansin ang ibang semantiko bahagi ng programa. Sa kaliwang tuktok doon, ng aking mga programa makakuha ng mas kumplikadong, ako pagpunta sa magkaroon ng isang buod ng lahat ng mga bagay na isinulat ko. Kaya na ito doon. Kaya ipaalam sa akin ngayon mag-zoom out at pumunta sa terminal window na ito. Kaya ito ay marahil bago sa maraming tao. Kung hindi mo na ginagamit ang isang kapaligiran sa linya ng command na, hindi mo kailanman ginagamit DOS, o hindi kailanman ginamit mo ang Linux, o hindi mo pa nabuksan iyong Mac OS terminal na window, mayroong maraming mga bagay na maaaring gawin gamit ang GUI, tulad ng pagturo, at pag-click, at pag-drag at drop, at tulad ng, ngunit sa pangkalahatang - tiyak sa mundo ng computer science - gamit ang command line, kung saan hindi mo ang iyong mouse pangkalahatan, mayroon ka lamang ng iyong keyboard, talagang ng maraming mas malakas na kaysa sa interface, sa sandaling ka makapag acclimated sa iba't-ibang mga utos. At ikaw uri ng libreng ang iyong sarili nangangailangan upang ituro at i-click ang sa lahat. Kaya sa gedit magpapadala kami pag-uri-uriin ng may ang pinakamahusay na ng parehong mundo. Maaari naming i-drag at i-drop ang teksto, maaari naming makita ito Nice at kulay code. Ngunit pagdating oras upang patakbuhin ang aming programa, bibigyan namin minsan lamang gamitin ang maliit na window dito. Kaya ako pagpunta upang magpatuloy at gawin ito. Sa ilalim itim at puting window, ako pagpunta sa magpatuloy at isulat kumalatong. At kumalatong ay ang pangalan ng isang tagatala. Ito ay isang programa na-convert sa aking source code sa, kaya, code ng bagay. 0s at 1s, na nakita namin maikling noong nakaraang linggo. Manariwa sa diwa mula sa nakaraang linggo, aming ipinangako na namin ang pagpunta sa pumunta mula sa isang bagay tulad nito - kailangan namin upang maging isang bagay tulad nito - at ito ay tiyak na hindi isang bagay na ang isang tao ay pagpunta gawin mano-mano. Kaya sa halip kami ay pagpunta sa gumamit ng isang programa, at na programa sa kaso na ito ay tinatawag na kumalatong. At ang pangalan ng aking mga programa ay hello.c. Kaya upang makatipon ng hello.c mula sa source code sa object code, o 0s at 1s, dapat sumapat sa lamang gawin ito at pindutin ang Enter. Okay, walang Mukhang nangyari. Ngunit alam ko na ngayon, o mula sa nakaraang linggo, na ang default na pangalan ng isang programa, kapag nakasulat sa C, maloko tinatawag a.out. Karamihan sa mga hindi kawili-wili pangalan maaari mong makabuo ng. Ay ang unang titik ng alpabeto, out ay kung ano ang outputted, ngunit kaya ito. Ito ang aking programa, at ngayon tuldok slash, dahil kakailanganin namin nakikita, ay aktwal na lamang ang uri ng mga tampok sa seguridad, dahil a.out ay isang programa na ako sinulat ni. Hindi ito dumating sa aking computer, hindi sa Program Files. Ito ay wala sa mga folder na Application sa Mac OS. Kailangan ko bang maging sobrang tahasang gamit ang computer, at sabihin programang ito, a.out, sa kasalukuyang folder, ang kasalukuyang direktoryo. At ang paraan na kinakatawan mo ito sa isang kapaligiran tulad nito ay ang tuldok ay kumakatawan sa anumang folder ikaw ay kasalukuyang. At iba pa. / Lamang ay nangangahulugan na ang magpatakbo ng a.out sa kasalukuyang folder. At magpatakbo ko ito sa Ipasok, at voila, ang aking unang programa. Ngayon ipaalam sa akin tumagal ng isang hakbang pabalik. Isang maliit na maliit ang window na ito, at mapagtanto na sa ilalim kaliwa ng appliance dito ang isa pang icon. Isa ay Chrome, na dapat na medyo pamilyar, lamang ng isang web browser sa loob ng appliance. At ang black and white na icon ay lamang mas malaking terminal na window. Kaya kung ito ay nakakakuha ng kaunti nakakainis na upang pag-uri-uriin ng may lamang ito maliliit na maliit na hiwa ng isang window kung saan upang makipag-ugnay sa mga programa, maaari naming sa halip gawin ito. At ngayon hayaan mo akong magsimulang mag-type ng ilang madaling pamilyar utos. ls. Kaya ls command para sa listahan. Kaya sa isang Mac OS o Windows, nais mong pangkalahatang-double-click sa isang folder at pagkatapos, voila, makikita mo ang lahat ng iba't-ibang mga file at mga folder. Sa isang kapaligiran ng command line, kung saan maaari ka lamang mag-type utos o text, ang ls ay ang katumbas. Kaya ipakita sa akin kung ano ang sa direktoryong ito. Ngayon ay mayroong isang bungkos ng mga bagay-bagay dito na parehong maliit pamilyar at isang maliit na pamilyar. Ngunit notice na tulad ng Windows at Mac OS, jharvard may isang desktop folder. Kaya ang anumang mga icon na sa aking desktop mangyari sa folder na iyon. Mayroong isang folder ng mga download, mga bagay-bagay na Chrome ay maaaring ilagay doon. Dropbox. Kaya appliance ay may built-in na suporta para sa Dropbox upang sa ibabaw ng semestre, maaari mong i-sync sa iyong Dropbox account upang ang lahat ng iyong mga programa ay nai-back up. Hindi nila maa-access sa iyong iba pang mga computer. Kung anumang kailanman napupunta mali sa mga appliance, maaari mong napaka madaling mabawi mula sa Dropbox. Kaya folder na doon para sa. Mayroong dalawang mga file na ginawa ko - hello.c at a.out. At pagkatapos ay sa kanan ang ilang iba pang mga folder na bibigyan namin makapunta sa patungo sa katapusan ng semestre, may web programming. Kaya kapag gagawin ko. /, A.out, Ipasok, na sinasabi pumunta sa direktoryo ako sa, ang kasalukuyang direktoryo, at magpatakbo ng programa na tinatawag na a.out doon. Karapatan lahat, kaya na maganda at mahusay, ngunit ito ay hindi lahat na nakapanghihimok upang magsulat ng isang programa na tinatawag na matulungan a.out. Upang maaari naming aktwal na gawin ito ng kaunti naiiba. Kaya sa halip na lamang tumatakbo kumalatong, hello.c, sabihin magdagdag kung ano ang tinatawag na isang argument ng linya ng command na. Kaya isang command line argument, o lumipat sa kasong ito, ay isa pang salita o parirala na nagta-type ka sa prompt pagkatapos ang programa na gusto mong patakbuhin. Kaya sa kasong ito, kumalatong ang programa Gusto kong patakbuhin,-o Nangangahulugan ang output ng isang file na hindi na tinatawag na a.out. Output ng isang file na tinatawag na halo, at gawin ito sa pamamagitan ng kino-compile ang huling salita sa linya, hello.c. Kaya sa maikling salita, ito ay isang napaka nasa gilid pagpapabuti, kung saan sa halip ng pagkakaroon ng ito stupidly na pinangalanang a.out file, Ko na ngayon gawin kumalatong-o kumusta, pagkatapos hello.c, at pagkatapos ay pindutin ang Enter. Walang tila sa mangyayari, ngunit muli mas gusto na may 0 - kapag walang tila mangyari na nangangahulugan na walang maling nangyari - kaya sabihin gawin ng ls ngayon, Ipasok, at sa katunayan ako ngayon magkaroon ng isang halo na programa. Kaya kung type ko kumusta ngayon, ang utos ay hindi nahanap. OK,. /. Kaya akmang-akma. Kaya dahil sa programang ito sinulat ni ko, at hindi ito ay may computer,. / kumusta, Ipasok, ay nangangahulugan na Ako nagpapatakbo ngayon kumusta. Kaya na ito doon. Ngayon kung ano ang makikita namin kalaunan sa higit pa at higit pang mga linya ng command argumento na ay nagbibigay-daan sa amin upang makagawa ng higit pa, ngunit para lamang sa mga para sa kanino maaaring ito ay lumang sumbrero, hayaan mo akong tunay na pumunta sa isang direktoryo dito at magbibigay sa iyo ng isang teaser kung gaano tao namin maaaring pumunta tungkol sa pagpapatupad ng halo mundo. Hayaan akong pumunta sa dito, at ako pagpunta upang buksan ito. Sa aktwal, ako pagpunta sa ipaliwanag kung ano ang ako ginagawa, kaya ito ay kapaki-pakinabang. Hayaan akong muli. Kaya ko na ginagawa ito ng mahabang panahon. Kaya mapapansin sa kanan may isang pares ng mga mga direktoryo na ay nang kakatwa na may pangalang source1m at source1w. Ito ay lamang ulok convention ginagamit namin. Ay nangangahulugan lamang ng Pinagmulan ng source code, 1 ay nangangahulugan na ito ang isang linggo, at m nangangahulugan ito Lunes, at w nangangahulugan ito ay Miyerkules. Kaya walang misteriyoso doon. Shorthand notation. Mga asul na mga bagay ay ang mga folder, kung hindi man kilala bilang mga direktoryo. Gusto kong pumunta sa folder na iyon sa ngayon, at sa isang normal na computer Ko lang double-click sa isang icon ng folder at may lahat ng aking mga file. Ngunit sa isang kapaligiran ng command line, hindi pa ako makapag gawin na, kaya sa halip, mayroon akong upang baguhin nang manu-mano ang mga direktoryo. Kaya kung type ko cd at pagkatapos source1m, Ipasok, mapapansin na ang aking prompt, ang mga bagay ng kulay puti sa kaliwa, lamang ay nagbago. At kaya sa katunayan, kapag ito ay sinabi ng mga panaklong at pagkatapos ay ang maliit squiggle, ang tilda simbolo, na nilalayong lamang ako ay sa home directory John Harvard, ang kanyang My Documents, kanyang mga personal na mga file. Ngunit ngayon sa panaklong sabi ni ~ / source1m. Ito ay nangangahulugan lamang ako sa isang folder na tinatawag na source1m na sa home directory John Harvard. Kaya kung gusto ko ngayon upang ilista ang mga file sa folder na ito, madaling tanong, type ko lang ls. At ngayon ko makita ang lahat ng mga file na ko bang unang nilikha para sa ngayon panayam, ang lahat ng, o karamihan sa mga ito, mangyayari magtapos sa. c. Kaya hayaan mo akong magpatuloy ngayon at patakbuhin ang gedit ng isang programa na tinatawag na holloway.c, na nakasulat sa pamamagitan ng ilang mga random na Hacker sa Internet, na mukhang isang maliit na tulad nito. At hindi namin pagpunta sa pumunta sa pamamagitan ng isang ito sa anumang detalyado, ngunit para sa mga mas kumportable, sa partikular, kung gusto mong tumagal ng hula sa kung ano ang programang ito ang dito. Maging panatag, kung ikaw ay mas mababa o mas kumportable, hindi namin kahit sa ganitong uri ng bagay sa pamamagitan ng pagtatapos ng ito semestre. Ito ay kung ano ang isang halimbawa ng isang paligsahan ng nakapailalim C, na paraan isulat ang pinaka-misteriyoso hinahanap program na posibleng Maaari lumalo ang iba pang mga na smart tao, na katulad pagsubok na magsulat ng mga bagay at ipakita-off na maaari nilang isulat mas misteriyoso mga bagay kaysa sa iyo. Kaya ito ay hindi isang halimbawa ng isang mahusay na nakasulat na programa mula sa pananaw ng estilo, ito ay isang halimbawa ng isang program na panalo sa isang paligsahan, para sa mga taong sinusubukang i- maging malabo at abstract. Kaya kung patatakbuhin namin ang bagay na ito, hayaan mo akong pumunta sa aking terminal na window, kaya magsalita. Kaya ang black and white na kapaligiran ay tinatawag na terminal na window sa pangkalahatan. Hayaan akong magpatuloy at makatipon ito. Hindi ako pagpunta sa gamitin ang kumalatong, dahil ang programa na ito ay isang kaunti misteriyoso at Kailangan ng ibang tagatala, tinatawag GCC. Subalit ipinapakita ang parehong bagay. Ito ay tumatagal ng source code sa code ng bagay. At ngayon kung nagpatakbo ako ng a.out, na programa lamang nakita Ginagawa ito. Upang ang kapwa na taon ay napanalunan na paligsahan. Paano't paano man, hindi namin pagpunta sa na direksyon, per se. Kaya sabihin aktwal na subukan sa ngayon manunudyo bukod kung ano ang maaari naming gawin sa mga pangunahing mga bloke ng gusali upang gumawa ng higit pa at higit pa kawili-wiling programa. Kaya namin ang nakasulat na programa, kami magpatakbo ng programa. Ngayon ay maaari namin ang aktwal na pasimplehin at hindi na na magsulat kumalatong ang salita sa prompt. Ito lumiliko out ng aming mga programa makakuha ng higit pang misteriyoso, kaya namin, o mas kumplikado kaysa, maaari naming aktwal na patakbuhin ang command na ito. Kaya hayaan mo akong bumalik sa aking home directory, kaya na magsalita, hayaan mo akong alisin - rm ay ang alisin ang utos - I'm upang alisin ang file na tinatawag a.out at kumusta. At ngayon ay mapapansin sa isang kapaligiran ng command line, tulad ng sa GUI, makakakuha ka ng prompt. Hindi ko maaaring i-click ng isang pindutan bagaman; ko i-type ang y para sa yes, y para sa yes. At ngayon kung ako type ls muli, notice na mga berde programa - a.out at kumusta - ay nawala. Mag-ingat rm. Maaari itong gumawa ng mga masamang bagay, tulad ng maaari mong sa pamamagitan ng pagkaladkad bagay sa iyong basura. Kaya ngayon sabihin magpatuloy - at maaari kong gawin ito - kumalatong-o kumusta, kumusta - Na ako nababato type na utos. Kahit na-type ko ito ng kaunti mabilis. Upang maaari naming halip gawin gumawa ng halo. Kaya't ay hindi tagatala. Ito ay isang friendly na programa na may Linux, sa kaso - operating system - na automates ang proseso ng kino-compile ang mga programa. Kaya sa halip na alala kumalatong-o filename at pagkatapos iba pa, lalo na sa sandaling mga linya makakuha ng na at na, maaari ko lang magsulat ang gumawa. At ito ay upang sabihin ang lahat ng buong grupo ng mga bagay-bagay na namin ay makakita ang semestre na ito. Ngunit mapansin ngayon kung nagta-type ako ls, kumusta pabalik sa aking direktoryo. At sa katunayan ang maaari kong patakbuhin ito sa. / Kumusta. Kaya gumawa lamang automates ang proseso ng tumatakbo kung ano ang, sa kasong ito, ang isang mas matagal, mas kumplikado command. Kaya kami ay upang simulan ang paggamit ng Magsagawa, dahil lang sa ito ng maraming mas user friendly. Ngunit ngayon sabihin ng mas kawili-wiling programa pa sa kamustahin. Kaya sa mga programa namin na nakasulat sa gayon ay malayo may pangunahing. Na lang ang default na bagay na kicks ng lahat off. Ngunit mayroong iba pang mga function out doon pati na rin, at stdio.h ay ang mga bagay na nakita natin sa tuktok ng aming file bago, at na kung ano ang kilala bilang ang karaniwang library. Sa loob ng standard library ng buong bungkos ng mga function may iba sinulat ni, at maaari naming simulan ang paggamit ng mga function na magsulat ng higit pang mga kawili-wiling programa ating sarili. Kaya hayaan mo akong bumalik sa appliance. Ako pagpunta upang isara ang window ng terminal. Pupunta ako upang isara ang mga bagay na aming sinulat ni mas maaga, at pumunta lamang sa hello.c, at mapapansin ngayon ang maaari kong gawin ang mga sumusunod. Kamusta mundo ay hindi lahat na kawili-wili, nais kong -personalize ang program na ito para sa aking sarili. Kaya sa halip ng mga sinasabi mundo, ako pagpunta sa sige at sabihin - Maaari kong i-type ang David - ngunit ito ay talagang uri ng sa panimula ang parehong. Ngunit sabihin subukan ang placeholder ideya. Manariwa sa diwa na sa C, sa halip na sa printf, nagkaroon kami ng mga placeholder, at mayroong higit pa sa% d. Kaya% d ay, quick katinuan check. Okay, decimal na numero, na. Decimal digit, na ang lahat. Kaya% c, bilang ay nakatagpo namin, pagpunta sa isang character. Ilagay ang isang character dito, isang sulat sa pamamagitan ng z, o simbolo ng bantas. Ang isang character,% f, sinuman malaman mula sa iba pang mga wika? Kaya ng lumulutang na halaga ng point. Ang isang tunay na numero. Kaya hindi decimal numero - ito ay talagang isang tunay na numero na may isang decimal point, at ilang bilang ng mga digit sa kaliwa at kanan nito. % S, string. Na kami ay pagpunta upang makita ang medyo madalas. String A, muli, lamang ang isang salita, parirala, ang pagkakasunud-sunod ng mga indibidwal na mga character. At bilang wakas, lld? Kaya ito ay higit pa ng isang kaso ng sulok. Mahaba, mahaba decimal. Kaya kung nais mong hindi lamang bilang na ito malaki, gusto ng mas malaking numero, ka upang tukuyin ang computer na ito ng isang partikular na laki. Kaya sabihin tweak ito ng kaunti. Sa halip na lamang hard code sa David, hayaan mo akong bahagyang sabihin dynamic s%. Kaya ilagay ang% s dito, kung saan ay isang placeholder para sa isang string. Pagkatapos ipaalam sa akin gawin kuwit, at pagkatapos ay "David" sa paglipas dito. Ngayon, ito ay hindi lahat na intellectually kawili-wili, dahil ang lahat ng nagawa ko na ngayon ay talagang lumikha ng mas maraming trabaho para sa ang computer. Sa halip na sabihin sa computer na ito nang sabay-sabay, ako ngayon sinasabi gawin ito at magpasok ng isang string sa dito sa kalaunan, kuwit, dito ay na string. Kaya ito ay hindi isang mas mahusay na pagpapabuti, ngunit ito ay hindi bababa sa isang hakbang patungo sa mas kawili-wiling programa. Dahil ngayon, hayaan mo akong magpatuloy at ang window na ito ng kaunti mas malaki, hayaan mo akong magpatuloy at patakbuhin ang gumawa ng halo. At ngayon,. / A.out ay hindi gumagana, bakit? Lahat ng karapatan, ngayon kumusta na tinatawag. Kaya muli gumawa, at din kumalatong na may isang-o, pangalanan ang programa ng isang bagay na mas kawili-wiling. At voila: ngayon sabi ni si David. Lahat ng karapatan, pa rin ng bobo programa. Kaya ngayon sabihin aktwal na bumalik dito at ipakilala ang paniwala ng isang variable. Hindi magiging maganda ang kung maaari ko ipinapahayag ng variable na ang uri ay string? At halaga ng variable na aktwal na ay mula sa gumagamit sa kanya o sarili. Sa mang, ako tumawag sa aking mga variable na s, na isang karaniwang convention kapag mayroon kang isang variable na tinatawag na ang string. Ako pagpunta sa gawin ang katumbas sign, at pagkatapos ay ako pagpunta sa tumawag sa isang function na tinatawag GetString. Kaya GetString ay hindi isang bagay na ay binuo sa C. Ito ay isang function na ang CS50 kawani sinulat ni, talagang para lamang sa mga unang ilang linggo, upang pasimplehin ang proseso ng pagkuha ng input ng user at pagkakaroon ng input ng user sa form ng string, o numero, at tulad. Kaya GetString ay tulad ng printf, ngunit malinaw naman sa halip na i-print ito upang gawin kung ano ang pangalan nito sabi, kumuha ng isang string. Ngunit upang gamitin ang GetString, kami ay pagpunta sa may upang gumawa ng isang pagbabago dito, lampas ito. Kaya intuitively, ang program na ito, sana, ay pagpunta sa sa paanuman makakuha ng isang string mula sa gumagamit, at pagkatapos ay kung ano ang pagpunta sa gawin may string na iyon, na tinatawag na mga? Lamang ito upang i-print ito, i-right? Hindi pa rin ng stimulating programa dahil lahat ng ito ay pagpunta gawin ay ang plug sa halaga na kung saan% s sabi na dapat ito pumunta. Kaya hayaan ng hindi bababa sa makita ito sa aksyon. Hayaan akong i-save at mag-zoom out. Ngayon sa aking terminal na window dito, ang maliit na hiwa ng isa, hayaan mo akong muli gawin gumawa ng halo. Okay, at ah, mapahamak; Nakatanggap ako ng isang buong grupo ng mga error. Hayaan ang mag-scroll up ako, at nakikita namin ang aming unang - kaya sabihin aktwal na gawin ito sa isang mas mas malaking window upang maaaring makita kung paano di-wastong ko screwed up - kaya't kumusta. Okay, na kalamidad, tama? Ko ang nakasulat na tatlong linya ng code, at ito ay ibinigay sa akin ang 12 error. Kaya bakit ito? Kaya masuwerte, malimit kapag nakita mo ang marami, maraming mga error pagsigam nang sabay-sabay, talaga lamang dahil ikaw nalilito ang computer dito. At nananatiling nalilito sa pamamagitan ng ang oras ay nakakakuha ito pababa dito. At kaya lamang nagsisimula balakid, at stumbling, at pagsigam mas nakakatakot bagay kaysa sa aktwal na nalalapat. Kaya sa pangkalahatan, palaging magsimula sa sa tuktok. Kaya ang pinakatuktok Halimbawa ng pula, ang mensahe ng error na ito. Gamitin ng hindi nagbigay-alam identifier string, ang nakuha ko ibig sabihin ng pamantayan sa? Ko hindi. Nilalayong ko ang string, ngunit ito ay dahil, masyadong, ang salita string na panatilihing ako gamit pasalita aktwal Hindi umiiral ang sa C alinman. Ito ay isang bagay na gagamitin namin para sa unang linggo o dalawang dito, ngunit ito ay umiiral sa isang file na tinatawag na cs50.h. Kaya sa ngayon, alam na mayroong iba pang mga library na ito na ang kawani sinulat ni, kaya ito ay nakasulat na mas kamakailan kaysa stdio.h. Ngunit sa loob ng cs50.h isang kahulugan, ang isang kasingkahulugan ng uri, na lumilikha ng salita string na ito. Kaya ngayon hayaan mo akong bumalik sa aking terminal na window. Ako pagpunta upang i-clear ang buong gulo sa pamamagitan ng Ctrl-L. Bibigyan namin lamang punasan ang lahat malinis, at ako pagpunta sa sige at gumawa ng kumusta muli, ang Enter. Kaya kung ano ang nangyari ngayon? Ngayon ang lahat ng mga error nagpunta ang layo. Kaya kung ano na ko talagang gawin? Tinuruan ko na ang computer na string umiiral, at ito ay sa file na iyon na tinatawag na cs50.h. Kaya itigil ang nagrereklamo, dahil ngayon ay alam mo kung saan makikita ang deklarasyon na function na upang magsalita. Kung saan ito umiiral sa mundo. Kaya ngayon ako pagpunta upang magpatuloy at magpatakbo ng halo. Mukhang kong magkaroon ng isang walang-katapusang loop, mangyari walang. Kaya kailangan kong i-type ng isang bagay dito, kanan. Ang unang linya ng code sa aking programa GetString. Kaya literal ito ay naghihintay para sa akin upang makakuha ng isang string. Kaya sa pakiramdam na oo, ito ay isang walang-katapusang loop. Tila sa GetString ay default na pag-uugali na namin sinulat ni - sa mga tauhan - na lamang na nagsasabing maghintay at maghintay at maghintay at maghintay at maghintay, hanggang user ang nagbibigay sa iyo ng isang string sa pamamagitan ng pag-type ng isang bagay. Kaya hayaan mo akong magpatuloy at uri sa D-a-v - i-d, Ipasok. At doon ito ay, si David. Ngayon ito tila tulad ng ito ay isang gawa? Hayaan akong magpatuloy at i-type sa Tommy. Ipasok, okay, mukhang nagtatrabaho. Works para sa Rob, gawa para sa Zamyla, ay gumagana para sa - okay. Kaya pagpunta sa gumana, malamang. Kaya dapat itong i-print ang anumang aktwal na namin bigyan ito, at maaari naming ng kaunti mahirap dito. Hayaan ang mga makita kung ginagawa namin ng isang bagay tulad ng halo. Maaaring pumunta dito, sabihin makita, kopyahin, i-paste. Hindi ako pagpunta sa i-paste na maraming beses dito. Paste, okay, Shift + Ctrl + V. Kaya kung ano ang maaari mangyari na ang masamang dito? Okay, sa gayon, segfaults. Kaya ang ilan sa inyo may bago background ay malaman na pangkalahatan, ang pagbibigay ng mga computer ng maraming input kapag sila marahil ay hindi ginawa upang makatanggap ng mahabang pangalan tulad nito - masamang bagay mangyari. Sa katunayan, sa mundo ng web, masyadong, nangyari ito lubos ng kaunti, kung saan kapag ikaw ay pagdidisenyo ng website, kapag handa ka Pagdidisenyo Facebook, mayroon kang gumawa ng mga arbitrary desisyon up harap, tulad ng kung gaano katagal aabutin ng isang tao Facebook username? O kung gaano katagal ang pangalan ng isang tao? Gaano katagal ang numero ng telepono ng isang tao at ang gusto. At kung ang mga programmer gumawa masamang pagpapalagay, ang mga programa ay masira dahil sinubukan mong na nagbibigay sa kanila ng higit na output, higit pang mga input sa halip, kaysa sa mayroon silang memory. O RAM ay inilalaan para dito, at kaya kung ngayon ko pindutin ang Enter, programa na aktwal na nagtrabaho, sapagkat hindi namin nagawang sa library at aktwal na namin inaasahang partikular na kasong ito. Ngunit walang pagsala semestre na ito, ikaw ay sumulat ng hindi bababa sa isang programa na sabihin ng mga salitang ito. Tandaan ang mga linggo mula ngayon, siguro dalawang araw mula ngayon. Segmentation fault ay isang masamang bagay. Ito ay sumangguni sa iyong paggawa ng isang bagay na ang computer ay hindi inaasahan. At sa kasong iyon,, programmer, ay hindi inaasahan. Karamihan bang kung ano ito tumpok ng mga medyas, may mga iba't-ibang sulok kaso kami nakatagpo. Katulad nito sa mga programa kung hindi mo inaasahan kung gaano katagal ay ang pangalan ng isang tao upang maging. O kung ano kung mayroon ako ng nakahahamak na gumagamit, at ang kanyang pangalan ay aktwal na medyo maikling, ngunit lamang sinusubukan nila sa gulo sa akin? Kung ano ang nangyayari na ang pag-uugali ng aking mga programa? Well, sa kasong iyon, isang bagay na maaaring aktwal na pag-crash ng. Kaya sabihin gawin ito. Sa 90 minuto, ito ay isang kahindik-hindik na mahabang panahon computer science. Bakit hindi namin sa ugali ng pagkuha ng limang minuto masira dito, at kapag dumating namin pabalik, makikita namin sumisid sa ilang mas kumplikado at kapansin-pansin na mga programa? Limang minuto. Ayos lang. Kaya isang mabilis na komento. Ako Sinabi na kahit na ito ay sa screen bago, kung ano ang dumating ng aking bibig ay cs50.net/rsvp. Ito ay tama. cs50.net/lunch. Kaya ngayon maaari mong subukan ang RSVPing para ito sa / tanghalian. Ngunit sabihin gawin ito ngayon. Kaya ito ay sobrang mabilis, sobrang bagong para sa maraming mga tao. Lumang sumbrero para sa ilang mga tao. Kaya sabihin rewind para sa sandali lamang, at makita kung paano namin nakuha sa ito kumusta na output ng mundo sandali lamang ang nakalipas. Sa una, ito CS50 Appliance. Muli, ang piraso ng software, problema itakda ang 1 pagpunta sa sabihin sa sa iyo kung paano i-download ito, kung saan upang i-download, kung ano i-click ang at iba pa. At pagkatapos ay sa sandaling sundin mo ang mga tagubilin, makikita mo magagawang upang i-maximize ang iyong window, at iyong Mac o PC ang magiging hitsura ng maliit na isang bagay na tulad nito. Ang isang itim na background, home folder sa itaas kung saan ang lahat ng iyong mga file, ang basura ng lata sa kaliwang tuktok, isang menu sa ibaba. Kaya muli, medyo katulad sa espiritu sa Mac OS o Windows, kahit na ang mangyayari sa Linux. Kaya kung ano ang susunod naming gawin? Well, nagsimula kaming pagsusulat programa. At isipin ang mula sa nakaraang linggo na ang lahat ng ito ay tumatagal upang magsulat ng isang programa ay isang simpleng editor ng teksto, tulad ng Notepad o TextEdit. Lantaran, kahit mo maaaring gamitin ang Microsoft Word. Ngunit ang masamang bagay ay malaon mangyayari, dahil na isang napaka malupit na solusyon para sa pagsusulat ng programa, kasama bibigyan ito i-save ito sa maling format ng file. Subalit isang editor ng teksto, isang word processor, ang lahat ng na kinakailangan upang magsulat ng isang programa. Kaya sa CS50 Appliance, maaari naming gawin ito sa isang simpleng paraan. Maaari naming i-click lamang ang icon na ito sa ibabang kaliwang. At muli, ang problema magtakda ng 1 ay payuhan ng ito, at voila - makakakuha ka ng ito itim at puti interface kung saan maaari naming magsimula sumusulat code. Kaya natin simulan ang muling pagsusulat ng isang napaka-simpleng programa. Ako pagpunta sa pumunta sa File, I-save, at ako pagpunta sa tumawag sa ito, sabihin nating, hello2.c. At ako na nagsasabi sa ito sa pamamagitan ng pag-click sa jharvard, ilagay ito sa home directory nito, hindi ko talagang pakialam kung saan ito napupunta. At pagkatapos ay I-save. At ngayon maaari kong simulan ang pagsusulat ng aking programa. At manariwa sa diwa ko mula sa mas maaga na mayroon akong sumulat int pangunahing (walang bisa). Mag-zoom in sa kaliwang tuktok. At pagkatapos ay gusto kong sabihin printf, magsagawa ng dalawang. At ngayon isang newline, malapit quote, isara panaklong, semicolon. At pagkatapos ay pumunta down na ako dito sa aking terminal na window na naka-embed sa gedit, para sa kaginhawahan. At ako pagpunta upang magpatuloy at isulat ang gumawa kumusta, ngunit hindi kumusta nag-iisa, hello2. Kaya ang aking file ng tinatawag hello2.c. Aking file samakatuwid ay dapat na matawag hello2, sa kasong ito. Dammit, kung ano ang gagawin ko mali? Karapatan lahat, kaya ko malinaw tinanggal ng isang line, kung manariwa sa diwa mo kung ano ang nakaraang programa hitsura. Ngunit sabihin makita kung hindi namin maaaring manunudyo ito bukod. Sa kasamaang palad, ang karamihan ng mga tao na isulat ang mga programa na kung saan isulat namin ang mga programa ay hindi gawing simple ang mga bagay sa lahat ng na mahusay na. Kaya kami ay may sa uri ng sagap sa kung ano ang hindi masyadong gumawa kahulugan dito at makita kung maaari naming malaman kung ano ang mali. Ang unang linya sabi nang kataon lamang deklarasyon C printf may uri int ang function na ng library. OK, naunawaan ko ang bahagi ng na. Ngunit mukhang alluding sa katotohanan na ginamit ko printf mali, sa paanuman. At kung ano ang kahulugan ay mali? Ko lang ay hindi magturo sa computer na ito sa isang file tinatawag stdio.h. Ngayon ko lang lamang kabisaduhin ngayon na printf ay sa stdio.h, at sa katunayan may makikita iba pang mga function sa parehong file na iyon na namin masanay sa. Kaya ngayon hayaan mo akong sige at pindutin ang Ctrl-L lang i-clear na ang layo, muling palabas ng pelikula gumawa hello2, at voila. At sa command na ito muli, mas kumplikado kaysa sa ipapaliwanag namin kung para sa sa mga layuning ngayon. Ngunit ito ay magpatakbo ng kumalatong, at kumalatong tumatagal ng source code at spits 0s at 1s. At ang mga 0s at 1s sa kasong ito ay tinatawag na kung ano? Okay, bagay ang code. At ang file na sila sa tinatawag na, kaya, hello2, sa kasong ito. Dahil ang aking text file ay hello2.c, ang Enter. At ngayon ko dalawang exclamation point, exclamation point, exclamation point. Lahat ng karapatan, kaya na namin ngayon ang kakayahan upang makakuha ng mga string, tila. Well, ano pa ang maaari naming makakuha ng mula sa mga gumagamit? Na rin sa CS50 library, mayroong iba pang mga function na upang gawing simple ang aming mga buhay sa mga unang ilang araw. GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString. Well, sabihin kumalbit off ang pinakamadaling ng mga unang. GetString literal ginagawa na. Lang makikita doon, naghihintay para sa user i-type ang isang bagay sa, at sa lalong madaling panahon bilang ako-type ang isang bagay sa at pindutin ang Enter, ang isang bagay na may halaga na. Kaya sabihin bumalik na halimbawa upang makita kung ano mismo ang GetString ay ginagawa. Hayaan akong sige at buksan sa gedit, hello.c, at isipin ang na kanan bago ang pahinga, ito ay kung saan namin tumigil. Kaya natin ngayon manunudyo ito bukod sa ng kaunti pa sa detalye. Kaya sa linya 6, may dalawang bagay nangyayari sa ngayon. Ang katumbas sign naghihiwalay ng unang kalahati at ikalawang kalahati. Kaya sa kaliwang bahagi ng katumbas sign, hindi namin sinasabi string s. At pagkatapos, sa mga tuntunin lamang lego ng, kung ano ang string s ginagawa, tingin mo? Ito ay ang paglikha ng isang kung ano? Kaya ito ay lumilikha ng isang string na tinatawag na mga. Ngayon kung ano ang na talagang ibig sabihin? Well, ito mapagtipid ng espasyo para sa isang string na tinatawag na mga. Iyon ay hindi masyadong tama. Ano ito ginagawa? Well computer, bilang alam mo, na hard drive, na kung saan ang iyong mga file ay naka-imbak. Computer may RAM, at na kung saan-load ang mga programa habang sila ay tumatakbo. Kaya kapag nag-double-click ang isang icon at Microsoft Word ay bubukas up, Microsoft Word ay tumatakbo, kaya na magsalita, sa RAM, na kung saan ay elektronikong bahagi ng iyong computer. Hindi ang pisikal na, mekanikal bahagi na Umiikot na, kung saan data ay naka-imbak sa pangkalahatan mahabang panahon. Kaya string s ay medyo magkano na nagsasabi sa ang computer ninyo ako sapat na RAM upang magkasya ang isang string. Ngayon na isang bit ng isang oversimplification, dahil kung gaano kalaki ang string sa pagpunta sa na? Na rin ang aktwal na namin ang hindi alam pa, kaya sa linggo darating aktwal na namin hilahin ang layer na string at sasabihin namin sa iyo kung ano ito talaga ay. String, sa ngayon, gandang pagpapagaan ng ating mundo. Ngunit string mga declares isang string na tinatawag na mga, sa ngayon. Declares isang string. Inilalaan ng ilang espasyo sa RAM para sa string ang user ay tungkol sa i-type. Ngayon tingnan natin sa kanan ng katumbas sign. Kaya sabi GetString (). At ng kaunti katinuan suriin. Ang katotohanan na wala sa loob ng panaklong nagpapahiwatig kung ano ang tungkol sa GetString? Ito ay tumatagal ng mga argumento. Iyon ay, hindi mo maaaring maka-impluwensya ang pag-uugali nito sa anumang paraan. Sa bawat oras na gamitin mo ito, ito ay makakuha ng isang string at na ito. Sa pamamagitan ng kaibahan, printf, sana ang pag-uugali nito ginagawa baguhin sa bawat oras. Kung hindi man, ito ay medyo walang silbi ang function sa pag-print kung ginagawa nito ang parehong bagay. Kung ito ay palaging mga Kopya David o isang bagay arbitrary sa lahat ng oras. Kaya printf saysay na magkaroon ng isang argumento. GetString ay talagang hindi kailangan ng argumento, dahil Nais kong upang makakuha ng isang string mula sa gumagamit at ito ay gumagamit na nangyayari upang matustusan ang dynamism sa pamamagitan ng pagta-type sa iba't-ibang mga titik sa bawat oras sa keyboard. Kaya kung ano ang GetString ang huli? Isipin ito bilang ang maliit na itim na kahon na. At ang itim na kahon na ito ay tumatagal ng walang input, ngunit kapag putok mo sa ito, ito spits isang string na ang gumagamit ay nai-type. At ang katotohanan na may katumbas sign ay nangangahulugan tumagal kung ano ang sabihin ang lahat sa kanan at mag-imbak ito sa loob kung ano ang sa kaliwa. Kaya katumbas sign dito, aktwal na ito ay hindi nangangahulugan na pagkakapantay-pantay, sa halip ito technically ay nangangahulugan ng pagtatalaga. Ang halaga sa kanan, at ilagay ang mga ito sa variable sa kaliwa. Kaya na ng lahat na nangyayari doon. Ngayon sa linya 7, kami ay pagtawag printf. Kaya printf sana ng isang maliit na pagbubutas sa ngayon. Kaya mag-print ng isang format na string. Ano ang string? I-print ang, "h-e-l-l-o,% s ! \ N ". Karapatan lahat, kaya kung ano ang gusto kong plug-in para sa% s? Literal, anumang ay naka-imbak sa mga. Kaya sa kasong ito, kaunti katinuan check, kung gaano karaming mga argumento ang printf? Okay, Narinig ko ng isang. Narinig ko ng isang muli. Dalawa, Narinig ko ng dalawang. At kung paano tungkol sa tatlong? Okay, tatlong? Mahusay na. Tatlong posibleng sagot, isa lamang sa mga ito ay tama. Argumento Kaya ang muli makaimpluwensiya sa pag-uugali ng isang function. Sa nakaraan, printf ay lamang ng isang argumento. "Hoy mundo" ng isang argumento. Gayunpaman, ngayon, mapansin kung saan ito ay ang kuwit. Kuwit Ito ay sa labas ng quote / magpanipi, na nangangahulugan na hey printf, dito pagdating ng pangalawang argumento. Kaya kuwit sa karamihan sa mga wika programming hiwalay na ang maramihang mga argumento. Kaya ang sagot dito ay tiyak na hindi isa, dahil may kuwit ito. Kaya Nagnais ng pinakamababang, printf ay tila pagkuha ng dalawang argumento oras na ito. Ngunit ang mga pagkakataon para sa isang nanlilinlang tanong dito ay kung ano ang tungkol sa kuwit? Ba ito magpahiwatig na may aktwal na tatlong argumento? Ito, ito, at ito. Kaya wala, dahil ang kuwit ay nasa loob ng quote, na ay nangangahulugan na ito ay talagang lamang ng isang Aesthetic ng Ingles. Ay walang kinalaman sa bilang ng mga argumento sa programang ito. Kaya kuwit na ito ay nasa labas ng double quote. At pagkatapos ay bumalik 0. Sa ngayon sabihin lamang ang uri ng ang isang ito sa pananampalataya para sa ngayon, at malaman na kapag tapos ka na ang mga function execute linya ng code, dapat silang pangkalahatan ibalik ang ilang mga halaga. Sa kasong ito, dahil lang sa pangunahing dapat ibalik sa isang int, na lamang ang paraan gumagana ang wika C. Kaya dahil walang nangyaring mali, nararamdaman tulad ng programang ito fine, ko lang hard code sa return 0. Ngunit sa kabilang banda, at ako pagpunta sa sumulat ito sa palsipikado code ngayon, tulad ng Joseph kapag ginawa namin ang sumuntok Halimbawa noong nakaraang linggo. Kung may nangyaring mali - ito ay hindi aktwal na code - nagpunta mali, pagkatapos ay bumalik, sabihin nating, 1. Iba Pa ibalik ang 0. Kaya ito ay kung saan kami ay pagpunta na ito. Na ito ay hindi aktwal na C code, pseudocode. Ngunit ito ay kung paano mo maaaring bumalik iba't ibang posibleng halaga. Ngunit sa ngayon ako pagpunta upang magpatuloy at bumalik 0. Lahat ng karapatan, anumang mga katanungan sa gayon ay malayo sa syntax, pag-andar, o ang gusto? Oo, sa likod. Madla: [hindi marinig] David MALAN: Maaari mo bang makipag-usap ng kaunti louder? Bakit ginawa ito programa return 0, at? Madla: [hindi marinig] David MALAN: Oh, na dahil Nakatanggap ako tamad, paumanhin. Walang magandang tugon ng akademikong, bumalik 0. Maaari kong uri ng pagsagip sa dagat na ito, sa pamamagitan ng sinasabi ng technically C, kung pangunahing ay hindi tahasang nagbabalik ng halaga, 0 ibabalik nang awtomatiko para sa iyo. Alin ang totoo, hindi ako lamang sumasaklaw sa. Ngunit, dapat ko nagawa ito sa ganitong paraan. Walang kawili-wili takeaway kaysa sa iba pang mga kaysa sa aking pagkakamali. Oo? Madla: Karaniwan kapag nagta-type ka sa walang bisa, na nangangahulugan na hindi magbalik ng bagay. David MALAN: Tama. Kung sa halip, tinukoy mo bago ang pangalan ng isang function, para sa Halimbawa dito, walang bisa, pagkatapos ang function na ay hindi nagbabalik ng anumang. At samakatuwid Gusto ko lang sabihin, pagbalik o walang sa lahat, at na maging pare-pareho. At kami na bumalik na. At lamang Para sa Iyong Impormasyon, isa ng ang mga catches na may pag-aaral mga programa sa isang mundo na may daan-daang ng mga aklat at daan-daan ng mga website out doon ay ay walang paltos makakita ng iba't ibang syntax sa iba't ibang aklat sa pamamagitan ng iba't ibang mga tao. Napagtanto gagawin namin ang aming pinakamahusay na sa mga seksyon at mga aralin upang maging pare-pareho. Ngunit minsan ay makikita mo ang magkasalungat na syntax. Kaya sa tuwing may pagdududa, magtanong. At sa pangkalahatan, makikita namin alagaan sa mga aralin at mga seksyon sa halos palaging ipakita ito sa tamang paraan. At sabihin ko halos palaging, dahil sa kaso sa point. Iba pang mga tanong? Madla: ba ang% s umiiral sa labas ng appliance? David MALAN: ba% s umiiral sa labas ng appliance? Oo. Kaya% s ay may C. Ang katotohanan na tayo ay gamitin ito sa ang appliance sa panimula ay walang kinalaman sa gamit ang mga tampok ng wika na ginagamit namin. Sa katunayan, noong nakaraang linggo kapag ginamit namin ang aking Mac, sinulat ni ako C code sa aking Mac. Ko ginamit ang% s sa aking Mac, at maaari mong gamitin ang mga ito sa iyong Windows computer kung i-install mo ang isang tagatala, tulad ng Visual Studio mula sa Microsoft. Kaya% s. Lahat ng ginagawa namin sa loob ng window na ito ngayon ay gawin sa C. At sa panimula walang gawin gamit ang operating system na pinag-uusapan. Sa pamamagitan ng kaibahan, ang itim at puting window terminal - kapag Nagta-type ako ng mga bagay tulad ng ls, at rm, at cd - na may sa gawin sa operating system at -navigate sa paligid. Oo. Madla: nilalayong ko ang library, ang CS50 library. David MALAN: Okay, kaya kung ibig sabihin mo ang string ng keyword, na lamang umiiral sa CS50 library, tama. Na hindi umiiral sa C mismo, at sa katunayan sa loob ng ilang linggo namin itapon CS50 library at simulan ang paggawa ng mga bagay mula sa simula ating sarili, kaya na magsalita. Iba pang mga tanong? Oo. Madla: [hindi marinig] David MALAN: Magandang katanungan. Ay ang mga utos case sensitive? At hayaan mo akong gumawa ng isang pagkakaiba dito. Kaya utos sa pangkalahatan ang mga bagay na namin magsulat sa ibaba ng window, sa window ng terminal. Anumang bagay up dito ay pahayag o C code. Ngunit sa parehong mga kaso, ang sagot ay pareho, oo. Parehong ng mga kapaligiran, ang C code sa itaas at ang operating system linya ng command sa ibaba, ay case sensitive. Kaya dapat mong mapakinabangan ang GetString may capital G, capital S. dapat mong isulat ang printf sa lahat ng maliit na. Kailangan mong i-type ang ls sa lahat ng maliit na. Kaya sa halos bawat sitwasyon ito semestre, kaso, sa katotohanan, ang bagay na ito. Oo. Madla: [hindi marinig] David MALAN: Ah, kaya okay, ano kung kami ay may isang file tinatawag hello.d. Kaya ito lumiliko D ay isang programming language. At kaya sa ilang mga kaso, maaari naming aktwal magsulat ng isang programa sa na file at ito ay pinagsama-sama sa na fashion. Aming makakaya, at aktwal, Ang maikling sagot ay, hindi ko alam. Kaya kami ay pagpunta sa gawin ito. Hayaan akong magpatuloy at lumikha ng isang bagong file. At iikot dito, totoo lang sa pangkalahatan, tuwing kayong alinlangan ito semestre, at iyong appliance o computer buksan, sige at subukan ang isang bagay. Kaya ako pagpunta sa i-save ang isang file na tinatawag na hello.d. I-save ito. At ako na tumakbo na kumusta Ipasok. Tila magpakilala na c ay mas malamang kaysa sa d, sa kasong ito. Iba pang mga tanong. Oo. Madla: [hindi marinig] David MALAN: Okay, sabihin na minsan pa. Madla: [hindi marinig] David MALAN: Paano mo pumunta tungkol sa pag-diagnose na o pag-troubleshoot na? Kaya malamang, dahil hindi nila iba't ibang mga wika, pinaka-malamang na nais mong makakuha ng ganap na ibang programa outputted. Gusto kang makakuha ng ganap na iba't ibang mga mensahe ng error. At din lamang sa mga tuntunin ng disenyo, ito ay magdudulot ng arguably isang mahinang disenyo ng desisyon na pagsusulat ng dalawang magkaibang wika sa halos identically na may pangalang na mga file, sa ang eksaktong parehong directory, gamit ang isang awtomatikong tool tulad ng gumawa. Sa gayon ay maaari ko rin uurong at sabihin sa 15 taon ng paggawa nito, hindi kailanman nagkamali na. Maaaring mangyari. Ngunit may lamang iba't-ibang, sa tingin ko, logistical panlaban sa lugar. Plus ang mga mensahe ng error na maganap, na gagawin kalaunan magbunyag kung ano ang isyu. Ngunit isang posibleng kaso ng sulok. Lahat ng karapatan, kaya sabihin ipakilala lamang ng ilang mga iba pang tampok dito ngayon, kaya maaari naming simulan ang pagbuo sa higit at mas kumplikadong programa. Kaya una sa lahat, matematika. Kaya matematika halimbawa lamang ang uri ng madali sa unang linggo. Na ito ay hindi upang sabihin na ang lahat ng programming ay tungkol sa matematika. Tiyak, ang pag-unawa sa iba't ibang mga tampok ng matematika, algebra sa partikular, ay lubos na may-katuturan dito. Sa mas mataas na antas ng CS klase, linear algebra, calculus, at tulad. Ngunit Napagtanto karamihan ng kung ano ang gagawin namin ito semestre binabawasan hindi sa matematika, at tiyak na hindi sa aritmetika, per se, ngunit talagang lang logic at sa maingat na pag-iisip. At kaya Linkage ito na computer science katagal nagkaroon, lalo na sa mataas na antas ng paaralan, sa matematika, ay isang maliit na makapanlinlang. Dahil karamihan ng mga programa na kami magsulat, talagang, uri ng mas mataas na antas at pagtuon sa paglutas ng mga problema na, sigurado, maaaring gamitin ang ilang mga karagdagan, pagbabawas, at iba't-ibang mathematical formula o tulad ng, ngunit sa pagtatapos ng araw, ito ay tungkol sa pag-iisip at hindi lamang pagpapatupad kung ano ang maaari mong gawin tulad ng Ti calculator sa mataas na paaralan. Kaya may na sinabi, sabihin ngayon gawin ang isang bagay na may ganitong mga mathematical operator na umiiral kaya maaari naming trip sa paglipas ng ilang ng nakapailalim na mga aspeto ng programming, o sa kasong ito C. Kaya may mga, ng CS50 library iminungkahing, at ngayon lamang namin ginagamit GetString - at sa isang sandali marahil isa iba pang mga function na - ngunit may mga iba't ibang mga uri ng data sa isang computer. Sa pagtatapos ng araw, ang mga computer lamang alam 0s at 1s. Ngunit isipin ang na noong nakaraang linggo usapan natin ang tungkol sa sistema ng binary sa kumakatawan sa mga numero, tulad ng bilang 0, at 1, at 2, ang lahat ng mga paraan sa hanggang 8, sa Nate ng video. At pagkatapos ay maaari naming bilangin ang mas mataas na bilang namin ginawa sa entablado dito. Ngunit kung nais mong kumatawan sa hindi lamang numero ngunit titik, namin, ang mga tao, ay may ilang arbitrary convention, kung saan kung sa pagtatapos ng araw ang lahat ng computer na aking ay ang kakayahan upang ipahayag ng 0s at 1s, mahusay kami ay mas mahusay na simulang standardizing ang mga pattern ng 0s at 1s na kumakatawan iba't ibang mga bagay. Isang pattern ng 0s at 1s na kumakatawan sa sulat ng. Pattern ng 0s at 1s na kumakatawan sa sulat z. Pattern ng 0s at 1s na kumakatawan sa kulay bughaw, o pula, o tulad ng. Kailangan namin upang magamit ang lahat ng mga 0s at 1s upang ipahayag ang ating sarili sa iba't ibang konteksto, sa iba't ibang paraan na hindi kailangang numeric. Kaya sa mga tuntunin ng representasyon, C ay may iba't ibang mga uri ng data, at nakakita kami ng isa sa mga ito sa ngayon. Namin nakita int, at paunawa kung ano ang hindi sa screen ngayon ay string. String ay hindi, sa katunayan, umiiral sa C. Muli, ito ay isang pagpapagaan namin ang iyong pagtatanghal para sa unang dalawang linggo. Ang isang pansamantalang trabaho ay isang indibidwal na character. Float ay isang tunay na numero, na may decimal point at numero sa sa kaliwa at kanan ng ito. Double ay ang, para sa mga may likod bago background? Kaya double ay dalawang beses isang bagay. Nagdadagdag ng dalawang beses bilang magkano ang katumpakan. Kaya kung ano ang ibig sabihin nito? Kaya sa bawat isa sa mga kasong ito, ang mundo ang may uri ng Standardized kung gaano karaming mga bits ay ginagamit upang kumatawan sa bawat isa sa mga bagay na ito. Kaya kung napanood mo na Nate ng ASCII video na para sa bahagi ng pset 0, o sa ibang pagkakataon sa linggong ito ay sa iyo, marahil mo na alam na ASCII - character na representasyon - gumamit ng kung gaano karaming mga bits? At maaari mong kahit tandaan mula sa huling linggo ng kung paano ang aming demo maraming tao ay sa entablado. Kaya ng 7 o 8, karaniwang. Kaya pangkalahatan 8, at may isang bagay na tinatawag bilang pinahaba ASCII na gumagamit ng lahat ng 8 bits, sa halip na 7. Ngunit sa pangkalahatan, makipag-usap namin sa kapangyarihan ng 2, kaya sa kasong ito, 8. Kaya ng pansamantalang trabaho sa isang wika ng programming ay karaniwang 8 bit. Kaya int ay 32 bits. Float ay 32 bits. Double ay 64 bits. At kung ano ang na ibig sabihin nito? Ito ay nangangahulugan na maaari mong kumatawan sa mas malaking numero, o sa kaso ng mga tunay na numero, maaari kang magkaroon ng maraming higit pa numero pagkatapos ng decimal lugar. A maraming higit pa katumpakan, sa kasong iyon. Ngayon ng mahabang mahaba ay sa kasamaang-palad na may pangalang. Kaya may isang int na 32 bit. May ay isang mahabang na, nope, 32 bit. At ng mahabang mahaba na 64 bit. Subalit ang ilan sa mga konteksto sensitive, ito depende kung anong uri ng computer na mayroon ka. Kaya sa pangkalahatan, na aming tinukoy sa isang homework o sa isang pagsusulit kapag aktwal na mahalaga. Ngunit ang punto ay mayroong lahat ng iba't ibang mga representasyon dito. Kaya sabihin aktwal na sumisid sa isang programa. Sa halip na isulat ang isang ito mula sa simula, ipaalam sa akin pumunta magpatuloy at buksan mula sa source code ngayon - ang lahat ng online - kung gusto mong maghinang sa online, o return on Miyerkules sa appliance sa iyong computer, mga tagubilin na link sa homepage ng kurso. Narito ang isang napaka-simpleng programa. Ngunit ito ay nakuha ng isang maliit na isang bagay na bago sa tuktok na hindi namin ginawa bago. Ang isang buong maraming ng mga asul na linya ng teksto. Kaya ang mga asul na linya ay kumakatawan komento. Kaya lubos na kapaki-pakinabang sa isang programa na magsulat ilang mga komento sa iyong sarili, o sa mga kasamahan, o mga kaibigan, o Fellows pagtuturo, na uri ng ilarawan kung ano ang nangyayari sa ang file na ito, ngunit walang kinalaman sa may C code mismo. Walang gawin sa mga programa sa pagtakbo, lang aesthetics. Kaya ang paraan na gagawin mo ito sa C mo sa pangkalahatan simulan ang iyong mga komento na may / *, at tapusin ang iyong mga komento sa * /. At kung ikaw ay talagang anal at tulad upang gumuhit ng uri ng mga larawan, nais mong ilagay ang isang buong maraming ng mga bituin, na nais mong gumawa ng isang maliit na kahon tulad nito. Ngunit wala na usapin. Ang tanging bagay na mahalaga ay ang unang at ang napaka-huling. Ito ay kung ano ang tinatawag na multi-line komento. At lang tao convention sa madalas na gawin ang mga bituin at box mga bagay na tulad nito kung mayroon kang maraming libreng oras. Kaya pagkatapos mong nakasulat sa ilang mga komento, pangkalahatan, darating ang aktwal na lakas ng loob ng programa. Narito ang aming pamilyar # include . At mabilis, ito ay kinakailangan o hindi kinakailangang? Madla: Kinakailangang. David MALAN: Kaya ito ay aktwal na hindi kinakailangan. Kaya bakit, bagaman, ay hindi kinakailangan? Kaya walang printf. Katunayan. Lahat ng ginagawa namin sa programang ito ay matematika. Kaya ang maaari kong tanggalin ang aktwal na. Kaya hindi mo palaging kasama sa kahit ano sa sa tuktok ng isang programa. Kaya sabihin pasimplehin ito ng kaunti. At ngayon mapansin kung ano ang programang ito. Hindi magkano ng interes. int x = 1. Well, kung ano ang ito ginagawa? Well, sa tingin bumalik sa kaisipan modelo mula sa bago. Ang kaliwang bahagi ng expression na ito ay hindi kung ano ang? Lumikha ng puwang para sa isang integer. Kaya kung magkano ang espasyo? Well, mangyari naming malaman ngayon na 32 bit. Dati, ang isang string ay technically 32 bit, ngunit higit pa sa sa hinaharap. Ngunit int isang 32 bit. Kaya ito expression sa kaliwa dito, int x lang sabi ni hey operating system, magbibigay sa akin ng 32 piraso ng RAM - na kilala bilang 4 na bytes ng RAM - sa gayon ay maaari ko bang ilagay ang isang integer sa puwang na iyon. Anong integer ay gusto mong ilagay? Well, lamang ang bilang 1. int y nakakakuha ng 2, ipinapakita ang eksaktong parehong bagay kahit na ang numero ay mas malaki, sa mga tuntunin ng nito magnitude. Ang bilang mismo pa rin ang 32 bit lamang. Lang ang pattern ng mga bits ay iba sa kumatawan sa 1 kumpara sa 2. int z ngayon nagsasabing bigyan ako ng isa pang 32 bit, tumawag ito z, at ilagay ang pagbubuo ng 1 at 2 sa doon. Kaya na ngayon z ay baka pag-iimbak ang halaga 3, at pagkatapos ay bumalik 0. Ngayon programang ito, ang anumang gawin ito ng interes? Kaya aktwal ay hindi gawin kawili-wili, sa anumang kahulugan, dahil bakit? Ito ay paggawa ng ilang matematika. Ngunit hindi ito bumabalik ang sagot, kanan. Ito ay bumabalik na 0. Hindi ito pag-print ang sagot. Kaya ang programang ito sa panimula walang kapararakan, dahil nakatayo ngayon. Ito ay paggawa ng ilang trabaho. Ito ay pagpunta sa tumagal ng ilang bilang ng mga segundo, o microseconds, upang patakbuhin, ngunit hindi ito aktwal na paggawa ng anumang kapaki-pakinabang para sa mga tao. Kaya sabihin aktwal na ngayon buksan math2, kung saan ngayon ako aktwal pag-print ang resulta. Kaya ito ay masyadong maaaring natukoy na mula sa aming mga nakaraang mga halimbawa. Kung gusto kong gawin ang ilang mga simpleng matematika, int x = 1, y = 2. z ay 1 plus 2 ngayon. Ano ito upang i-print ang malinaw naman? Lamang 3. Kaya mabilis katinuan check. Hayaan akong lumipat sa direktoryong ito. Kaya cd source1m. Hayaan akong magpatuloy at i-type ang gumawa ng math2. Walang mga mensahe ng error ay dumating out, kaya hayaan mo akong patakbuhin - hindi a.out hayaan mo akong magpatakbo ng math2. Enter. At sa katunayan, ito print mo 3. Well sabihin kumuha ng isang pagtingin sa isang variant ng ito. Sa Sa math3.c, na namin ngayon ang halimbawang ito dito. Kaya ang isang ito uri ng kawili-wiling. Kaya ito dito, ang sagot ay pagpunta upang makakuha ng 1 hinati sa pamamagitan ng 10, at mapansin ko na ipinahayag ito bilang isang Float. Bakit ko gusto ang mga ito sa isang Float? Well, isang fraction. Ito ay pagpunta sa maging isang tunay na numero. Kaya pagpunta sa 0.1, sana - 10%, sa kasong ito. At ano ang gagawin ko pagkatapos ay nais na i-print? Well, ang sagot na ito. Well, sabihin manunudyo mga bukod unang. Kaya sa kaliwang bahagi, ipinapahayag ng lumutang, tumawag ito sagutin. Sa kanang bahagi, 1 hinati sa pamamagitan ng 10 at ilagay na answer loob ng variable. Ngayon, ang hitsura ng linyang ito ng kaunti pa misteriyoso. Ngunit mapansin ng ilang mga pamilyar na tampok. % Ay nangangahulugang dito ay isang placeholder. f ay nangangahulugan dito ng lumulutang na halaga ng point, lamang real numero, isang bagay na may decimal point. 0.2 paraan kung ano? Sinuman alam mula sa naunang karanasan? Dalawang decimal place. Kaya hindi namin nasaksihan ito bago, ngunit ito lamang ang paraan ng ehersisyo ng kaunti pa kontrol sa printf at sinasabi hindi ninyo akong bigyan ng 30 puntos pagkatapos ng decimal point, sa halip ninyo ako may 2. At pagkatapos ay sabihin sige at patakbuhin ang. Kaya matematika 3, at ngayon hayaan mo akong magpatakbo ng matematika 3, Ipasok. At na hindi tama. Mukhang namin na nagkaroon ng aming unang tunay na bug. Well, siguro lang ako hindi naghahanap malapit-lapit. Kaya hayaan mo akong pumunta dito, at ipaalam sa akin ilagay 20 decimal punto lugar doon. At ipaalam sa akin makatipon ito, gumawa ng math3, patakbuhin. Pretty bang 1 na hinati sa pamamagitan ng 10 ay hindi 0. Kaya kung ano ang nangyayari sa? Na rin okay, kaya aktwal hindi ito ay upang gawin na ito. Iyon ay isang mahusay na pag-iisip. Ito ay talagang lamang pagkakataon na ginagawa namin ito. Ngunit lamang upang patunayan na ito ay hindi ito, bibigyan ko magbalik ng bagay random. Huwag gawin ito sa bahay, dahil lamang mali. Ngunit gumawa math3, hayaan mo akong patakbuhin ito. Kaya ay walang kinalaman sa kung ano ang ako bumabalik, lamang gawin sa kung ano ang ako pag-print. Ngunit narinig ko ito dito. Ano? Madla: Kaya kailangan namin upang isulat ang mga numero sa division bilang - David MALAN: Okay magandang. Kaya kailangan namin upang isulat ang mga numero na lumahok sa division dito bilang lumulutang point halaga ang kanilang mga sarili. Kaya ang problema dito ay tulad ng dati: C, na may maraming mga wika, ay may iba't ibang mga uri ng data. At ang mga uri ng data, halimbawa, ang mga ito dito. At ang mga uri ng data na pinag-uusapan dito, kapag ako ay nag-type 1 at pagkatapos ko uri 10, marahil kung ano ang uri ng data? Kaya marahil ito ay isang int, i-right? Ito ay talagang hindi isang Float dahil ang walang decimal point o anumang bagay tulad na. Kaya talaga, mayroon akong isang int na hinati sa pamamagitan ng isang int. Kaya ang kawili-wiling bagay tungkol sa matematika at computer na kung ikaw ay gumagawa ng division gamit integer - 1 na hinati sa pamamagitan ng 10, oo ay 0.1. Subalit, kapag ikaw ay paghahati isang integer sa pamamagitan ng isang integer, ang sagot ring maging isang integer dahil lang, sa ngayon. At kung ano ang implikasyon pagkatapos? Well, kung ang sagot ay 1 hinati sa pamamagitan ng 10 katumbas ng 0.1, kung ano ang computer ay pagpunta sa gawin Mayroon akong walang ideya kung paano sa kumakatawan sa 0.1, dahil na lumulutang na halaga ng point, hindi isang integer; ito pagpunta sa pagpura-pirasuhin-off ang lahat pagkatapos ng decimal point at ipakita sa iyo ang 0 sa umpisa. At ang katotohanan na ito ay pag-print bilang isang lumulutang point halaga, ito ay isang Aesthetic bagay. Iyon ay dahil ako pagpilit ang computer upang i-print ito bilang isang lumulutang point halaga. At sa katunayan ko na ipinahayag ito bilang isang Float, ngunit matematika ay nangyayari sa paglipas dito. Kaya ipaalam sa akin aktwal na ayusin ito sa isang medyo madaling paraan. Bakit hindi ko lang gawin ang 10.0 at 1.0, bagaman technically ako makakakuha ng ang layo sa pamamagitan lamang ng paggawa ng isa sa mga. Ngayon ipaalam sa akin magpatuloy at gumawa ng math3. Hayaan akong magpatuloy at ngayon patakbuhin math3, Ipasok. At ngayon, oh batang lalaki. Ngayon kami ay may isang bagong problema sama-sama. Kaya mas mahusay, i-right, hindi namin mas malapit sa 0.1, ngunit kung ano ang malinaw ay mali dito? Maliban kami namamalagi sa iyo para sa taon, i-right? 1 hinati sa pamamagitan ng 10 ay talagang hindi pa 0.1, kaya kung ano ang talagang pagpunta sa dito? Well maaari mong uri ng dahilan sa pamamagitan ng lohikal. Kung ang computer ng isang lamang ay may isang tiyak na halaga ng RAM upang simulan , at sa katunayan lamang ng computer ng isang gumagamit 32 bit para sa isang lumulutang point halaga, nakatayo sa dahilan na may isang tiyak na bilang ng mga bits, 32 sa kasong ito, oo, maaari mong kumakatawan sa isang maraming mga bagay-bagay. Aktwal na apat na bilyong iba't ibang mga halaga ay maaaring maging kinakatawan may 32 bit, 2 sa 32, ngunit pa rin ito tiyak. Kaya ang problema ay may isang walang-katapusang bilang ng real numero, kanan. Kung ba ninyo akong bigyan ng isang real numero, maaari ko laging mahanap mo ang isa bahagyang mas malaki, bahagyang mas mababa, sa pamamagitan lamang pag-aayos ng numero na pagkatapos ng decimal point. Kaya kung hindi mo na magkaroon ng isang walang-katapusang bilang ng mga bits, hindi maaaring posibleng kumakatawan sa isang walang-katapusang bilang ng mga tunay na numero. Kaya ito taglay imprecision sa mga computer, at ito ay makakakuha ng tripped higit sa lahat ng oras kahit na sa pinakasimpleng ng programa tulad nito. Kundi pati na rin sa ilang mga tunay na problema ng mundo pati na rin. Sa katunayan, sabihin maglaan ng sandali upang lamang tingnan ang isang bagay na aktwal na naganap sa katotohanan. Susubukan naming panoorin ang unang ilang minuto, at pagkatapos ay namin post ang link sa online. Ngunit ito ay testamento lamang kung ano ang maaaring magkamali, medyo totoo lang, sa trahedya paraan kapag ang mga bagay na ito ay hindi pinapahalagahan o lamang namin ang mga tao ay gumawa ng mga pagkakamali pagdating sa mga ganitong uri ng mga detalye ng pagpapatupad ng mga modernong computer. [Nagpe-play ng VIDEO] Na namin ngayon bumalik sa kalamidad sa engineering sa Modern Marvels. Computer. Lahat namin na dumating upang tanggapin ang madalas na nakakabigo problema na pumunta sa kanila. Mga bug, mga virus, at software glitches maliit na presyo upang magbayad para sa kaginhawahan. Ngunit sa mataas na tech at high speed militar at espasyo application programa, ang pinakamaliit na problema ay maaaring maging Pinalaking sa kalamidad. Sa Hunyo 4, 1996, mga siyentipiko ay handa upang maglunsad ng isang hindi pinuno ang mga tauhan Ariane 5 rocket. Ito ay nagdadala ng mga pang-agham satellite na dinisenyo upang magtatag tiyak kung paano magnetic field sa earth nakikipag-ugnayan sa solar wind. Rocket ay binuo para sa European Agency Space at itinaas mula sa pasilidad sa baybayin ng Pranses Guyana. Sa tungkol sa 37 segundo sa flight, sila muna Napansin ng isang bagay ay pagpunta mali, na ang mga nozzles ay swiveling sa isang paraan na sila dapat talagang hindi. Sa paligid ng 40 segundo sa flight, malinaw ang sasakyan ay sa problema, at na kapag sila ay ginawa ang desisyon sa wasakin ito. Isang hanay ng kaligtasan ng opisyal na may napakalaking tapang pinindot ang pindutan, blew sa rocket bago ito maging isang Hazard sa kaligtasan ng publiko. -Ito ay ang unang paglalayag ng Ariane 5, at ang mga pagkawasak naganap dahil sa isang basag na naka-embed sa rocket ng software. -Ang problema sa Ariane na may isang numero na nangangailangan ng 64 bit na ipahayag at ninais nilang i-convert ito ng 16 bit na numero. Ipinapalagay nila na ang numero ay hindi kailanman pagpunta sa napaka malaking, na ang karamihan ng mga digit sa 64 bit bilang ay 0s. Sila ay mali. Ang kawalan ng kakayahan ng isang software program upang tanggapin ang uri ng bilang na nabuo ng isa pang ay sa root ng ang pagkabigo. Software development ay naging isang napaka-mahal na bahagi ng bagong teknolohiya. Ang Ariane 4 rocket ay lubhang matagumpay. Kaya magkano ng software na nilikha para dito ay ginagamit din sa Ariane 5. -Ang pangunahing problema ay na ang Ariane 5 ay mas mabilis, pinabilis na mas mabilis. At software ay hindi para na. Ang pagkawasak ng rocket ay isang malaking sa pananalapi kalamidad, ang lahat ng dahil sa isang minutong software error. Ngunit ito ay hindi ang unang pagkakataon na data mga problema ng conversion ay may plagued ng modernong mga kuwitis teknolohiya. David MALAN: makikita namin iwanan ito sa na. Ngunit ito ay testamento sa lamang kung paano naaangkop kahit na ang ilan sa mga pinakamababang antas ng detalye na namin na nagsimula sa galugarin ngayon ay. Kaya kahit kumuha ka ng isang maliit na ginulo marahil sa pamamagitan ng ilan sa mga syntax at arcaneness dito, Napagtanto na sa ibabaw ng termino na makikita namin nakatutok lamang sa kung paano naaangkop ito ay mundo malayo sa CS. Makikita natin sa Miyerkules.