Lucas Freitas: OK, hulaan ko ngayon kami ay live. Maligayang pagdating sa CS50 Supersection. Humihingi kami ng Mas kumportableng. Ang pangalan ko ay Lucas Freitas. Ako ay isa CS50 Head TFs. Ito ay Lauren. Lauren CARVALHO: Hi, Ako Lauren. Nagagalak din ako Head tf para sa CS50. Lucas Freitas: Ngayon kami ay lamang ng pagpunta upang bigyan ang isang pangkalahatang ideya ng kung ano ang lahat ng sa iyo guys na natutunan sa linggo ng isa, sana ay upang bigyan ka ng guys isang magandang kahulugan sa kung ano ang dapat mong malaman para sa problema magtakda ng isang. Ilang lamang mga anunsyo. Una sa lahat, oras ng opisina. Oras ng opisina ay nangyayari mula Lunes hanggang Huwebes sa iba't-ibang mga bahay sa Annenberg sa bawat araw. Ang mga ito ay isang napakahusay na mapagkukunan para sa iyo guys sa darating at magtanong, at makipag-usap sa TFs, at kahit exchange ideya sa iba pang mga mag-aaral. Kaya tiyaking gamitin na mapagkukunan sa iyong pabor. Ang ikalawang bagay ay ang CS50 Appliance. Para sa huling [hindi marinig] ka guys ay walang upang aktwal na magkaroon ng isang appliance. Ginawa mo lang ang lahat sa iyong personal na computer. Ngunit para sa problemang ito, aktwal mong magkaroon ng upang magkaroon ng isang virtual machine, kaya maging Siguraduhin na i-download ang CS50 Appliance at i-set up ito. At ang ikatlong bagay ay tiyaking simulan ang problema itakda sa lalong madaling panahon lamang dahil ito ay lubhang mas madaling mahanap tulungan kapag ikaw ay nasa simula ng linggo. Dahil ang mga tao ay may posibilidad na maghintay hanggang ang huling ikalawang upang simulan ang hanay problema, at pagkatapos ay pumunta ka sa oras ng opisina, at mayroong isang pulutong ng mga tao. Saan kung pumunta ka sa Monday, ka ng pagpunta upang makita na maaari mong makipag-usap sa TFs halos para sa buong gabi, at sila ay pagpunta maging higit sa masaya na tulungan ka. Lauren CARVALHO: Maari ko bang itigil lamang mo para lamang isang segundo? Ay lahat pa magawang i-download ang CS50 Appliance? Sinubukan tao? Lucas Freitas: Upang i-download, sa pamamagitan ng paraan, maaari kang makakuha ng mga tagubilin sa cs50.net/appliance. Lauren CARVALHO: Mag-right. At ginagawa nito tumagal ng ilang sandali para sa aming mga sys admin upang makakuha ka ng lisensya key, kaya't mag-sign up para sa libreng pagsubok muna. Sa ganoong paraan magkakaroon ka ng ito para sa 30 araw, at pagkatapos ay maghintay para sa iyong license key na dapat bigyan ito sa iyo para sa isang taon. Lucas Freitas: Una sa lahat, usapan natin ng kaunting ipaalam tungkol sa CS50 Appliance. Ang CS50 Appliance ay talagang isang virtual na machine na kayo ay pagpunta sa patakbuhin sa iyong sariling computer na kung saan ay talaga tumakbo ang iba pang computer sa loob ng iyong sariling computer. Alin ang medyo cool. At talagang ito ay ginagamit sa lahat ng dako. Ang mga taong sa tech malalaman na ito ay ginagamit sa lahat ng oras. sa iyo? Maaaring magkaroon ng maramihang mga computer sa isang device. Sabihin talagang tingnan sa Appliance. Kapag pumunta ka sa Appliance pagkatapos magparehistro, ikaw ay pagpunta sa may upang ilagay ang iyong pangalan at mag-log in sa Harvard upang maaari naming makuha mo ang lahat ng naka-rehistro. Ikaw pagpunta sa makita talaga lang wallpaper, at pagkatapos ay Home at Basurahan, at pagkatapos ay ang mga maliliit na mga icon. Ito ang tatlong mga icon ay aktwal na ang pinaka- mahalagang mga bagay na maaari mong magkaroon sa ang iyong Appliance. Ang unang isa ay gedit, na isang teksto editor, tulad ng Notepad lamang o katulad anumang uri ng editor ng teksto. Ito ay isang bagay lamang na ginagamit namin upang sumulat code at pagkatapos ay gawin ang mga bagay-bagay na may ito. Ang ikalawang bagay na namin mayroon dito ay Chrome. Kaya kung kailangan mong gumamit ng internet sa Appliance, na kung ano ang maaari mong gamitin. At ang ikatlong bagay ay ang terminal, na kung saan ay talagang napaka matamis. Ang mga tao ay karaniwang ay uri ng natakot ng ang terminal dahil ito napaka lumang moderno application kung saan mo talaga type lamang ang lahat ng bagay na may iyong keyboard. May ay hindi isang pulutong ng mga pakikipag-ugnayan gamit ang iyong mouse. Ngunit talaga ang terminal ang napakagandang bagay. Una sa lahat, ipaalam pumunta lamang sa pamamagitan ng ilang mga utos na iyong Maaaring gamitin sa terminal. Lauren CARVALHO: At huwag mag-atubiling upang itigil ang sa amin kung mayroon kang anumang mga katanungan. Lucas Freitas: Oo. Kaya ang unang utos na mayroon kami para sa terminal ay ls. ls talaga ay nangangahulugan listahan lahat ng bagay, ang lahat ng mga file at ang lahat ng mga direktor, na mayroon akong sa lugar na ako sa. Kaya kung gagawin ko ls dito, pupuntahan ko makita na mayroon akong ilang mga direktoryo. Mayroon akong desktop, ang mga pag-download, ang mga tala, at ang VHOSTs. Iyon ang sa asul dahil sila ang lahat ng mga direktoryo. Pagkatapos ay mayroon kang ilang mga iba pang mga file. Mayroon kang tulad kumusta at hello.c, na lamang ang mga file, at ang mga ito ay sa iba't ibang kulay. Kaya ito ay isang napakahalaga utos lamang makikita mo kung ano ang mga file at mga direktoryo na mayroon kang sa ang direktoryo na ikaw ay nasa sa terminal. Kapag nakita mo jharvard @ appliance at pagkatapos ay ang maliit na simbolo doon, ang bantas, na lamang ay nangangahulugan na iyon ang direktoryo na ikaw ay sa sandaling ito. Lauren CARVALHO: Kaya pag-type ng ls ay halos tulad ng pag-click sa folder na nakalista doon, sa loob nito palabas sa iyo ang lahat ng mga nilalaman na sa loob ng folder na iyon. Madla: Mayroon bang teksto pagkatapos ng hello.c? Lauren CARVALHO: Oh, hindi mo magagawa makita na, dahil ito ay asul. Lucas Freitas: Sinasabi nito logs at VHOSTs. Lauren CARVALHO: Iyon ang lamang iba pang mga folder. Sorry, ito'y talagang mahirap makita. Siguro kung namin pinagana off ang mga ilaw? Colton, ang gusto mong subukan at hanapin ang liwanag switch? Paumanhin tungkol na. Hindi ko naisip tungkol dito. Lucas Freitas: Ngunit ito ay isa lamang - oo, kung dati mo - Lauren CARVALHO: Mag-zoom in sa iyong screen. Lucas Freitas: gagawin ko hindi mayroon na tampok. Lauren CARVALHO: [hindi marinig]. OK. Well, mayroong lamang ng maraming natural liwanag sa pati na rin ang kuwartong ito. Lucas Freitas: Hayaan ang ipinapalagay ni lamang na may dalawang iba pang mga direktoryo doon. Lauren CARVALHO: madala lang sa amin. Ito ay ang tanging bahagi na makakakuha ka tumitingin ka sa mga terminal. Lucas Freitas: Ang susunod na utos ay talaga siguro gusto mong ayusin ang ang iyong mga file - halimbawa, ang lahat ng iyong mga file C sa isa direktoryo-ngunit wala kang isang pa direktoryo para lamang sa mga file na C. Maaari kang isa lamang lumikha ng isang direktoryo gamit ang terminal pati na rin, na kung saan ay ang parehong bagay bilang karapatan pag-click at sinasabi ng Bagong Folder. Ang utos ay gumawa direktoryo, na ay mkdir, kaya isa lamang "gumawa" at "Direktoryo." At pagkatapos ay maaari mong ilagay ang pangalanan ng direktoryo. Sabihin natin na nais kong tawagin, Hindi ko alam, sabihin nating pset1 paggawa ito, lamang na aking nilikha ang isang directory. Suriin ni lamang na ito ay mayroong Hayaan. Kaya kung gagawin ko ls, ngayon ay nakakakita ako ng mga tala, at pagkatapos pset1, at pagkatapos ay VHOSTs. Kaya Mayroon akong bagong direktoryo doon. At pagkatapos ay pagkatapos mong magkaroon ng isang bagong directory, siguro gusto mong i-navigate sa ito, kaya ang susunod na command na ito sa cd, kung saan talaga lang ibig sabihin pumunta sa isang partikular na direktoryo. Kaya kapag gusto kong pumunta sa pset1, Maaari ko lang gawin cd pset1. Lauren CARVALHO: cd nakatayo para sa pagbabago direktoryo, [hindi marinig] ma- tandaan na. Lucas Freitas: At ngayon nakikita mo na sa halip ng pagkakaroon lamang jharvard appliance, na jharvard ko appliance, at pagkatapos ay pset1, dahil ito nagpapakita sa akin kung nasaan ako sa computer na ito. Ngayon kapag gusto kong bumalik sa ang directory na iyon ay bago ang isang ito, ako Maaari gawin ang isang cd tuldok tuldok, na kung saan ay nangangahulugan lamang pumunta sa direktoryo na ako ay bago, tulad ng mga magulang ng ito direktoryo, talaga. At ngayon nakikita ko na ako pabalik sa jharvard. Ang susunod na bagay na maaari kong gawin ito ay rm, na alisin ang isang file. Halimbawa, sabihin muna gawin ls upang makita kung ano ang mayroon ako dito. Mayroon akong halo at hello.c. Ipagpalagay natin na gusto kong alisin ang mga ito. Ang maaari kong gawin rm kumusta. Ito ay pagpunta sa sabihin ang "alisin regular na file kumusta? "At sinasabi ko" oo. "At ngayon kung ako gawin ls, nakikita ko na ito hindi na ngayon doon. Kung sinusubukan kong gamitin ang rm para sa isang direktoryo, bagaman, hindi ito ang nangyayari upang ipaalam gagawin mo kahit ano. Ito ay pagpunta sa sabihin, hey, mo Hindi maaaring alisin ang isang direktoryo. Kaya mayroon kaming ito ng iba pang mga dumating na tinatawag na rmdir, kung saan talaga lang ibig sabihin tanggalin ang directory. Maaari ko, halimbawa, alisin pset1. At kung gagawin ko ls, gagawin ko hindi mayroon nito. Ang anumang mga katanungan tungkol dito? Walang? Oo? Madla: Ito ba ay mahalaga na iniwan mo isang puwang pagkatapos ng - kahit kailan mo magsimulang mag-type ng isang bagay sa? Lucas Freitas: Oo. Kung gagawin ko ng cd at ang direktoryo, Kailangan ko bang ilagay ang isang puwang. Ano space ay pakikipag-usap sa iyo tungkol sa? Lauren CARVALHO: Ang espasyo sa pagitan ng cd at [hindi marinig]. Lucas Freitas: Oo, kailangan mong mag- ilagay ang mga puwang dahil sa cd ay ang utos, at pagkatapos ay ang susunod na string na uri mo ay isa lamang direktoryo. Kaya ito ay tulad ng isang argumento. Oo? Madla: Kapag inilista mo, ang lahat ng mga Naiiba mga direktoryo, i-right? Lucas Freitas: Oo, ang mga ito ay nasa direktoryo. Madla: Ano ang mga pagkakaiba kabilang sa mga direktoryo? Lucas Freitas: Ang mga ito lamang iba't ibang mga folder. Directory ay isang folder sa iyong computer. Madla: Buksan ang folder. Lucas Freitas: Oo, ito ay lamang ng isang bukas na folder. Lauren CARVALHO: Higit dito, ang mga taong Ang mga ad na asul ay mga aktwal na mga direktoryo na maaari kang makakuha sa at pagkatapos makita ng grupo ng mga bagay na sa loob na iyon, na kung saan ay kapus-kapalaran dahil hindi mo talaga maaaring magbasa ng mga mga bago sa asul. At sana ang mga nasa puti lamang ang mga file na sa loob ng kasalukuyang direktoryo. Lucas Freitas: Kaya mga direktoryo ang mga folder. Ang iba pang mga bago ay mga file. Madla: Ano ang na command upang i-reset ito o i-clear ito? Lucas Freitas: Upang limasin? Lauren CARVALHO: Upang limasin? Lucas Freitas: Sa tingin ko ito ay "malinaw." Oo. Kaya lang nagta-type ka malinaw kung iyong screen masyadong maraming kalat. Anumang iba pang mga katanungan? At ikaw ay matuto ng grupo ng mga iba pang utos natural lamang sa panahon ng semestre dahil hindi nila napaka kapaki-pakinabang. Kaya-usapan natin ang tungkol sa kino-compile ang ipaalam ngayon. Usapan natin ang tungkol sa pseudocode at source code at sa bagay na code. At mayroong isang pulutong ng mga code, at siguro ka guys ay naguguluhan tungkol sa mga iyon. Usapan natin nang kaunti tungkol sa kung ano Hayaan ang mangyayari kapag sumusulat ka ng isang programa, at ka-compile ito, at ito ay nagiging isang executable file. Iyon ang lahat ng mga salita na iyong guys Maaaring narinig, at marahil hindi ka talagang sigurado kung ano ay nangyayari. Sabihin natin, halimbawa, na gusto kong magsulat ng isang programa na nagsasabing "kumusta." Ang unang bagay na nanggagaling sa iyong isip ay ka uri ng subukang mag-isip ng kung paano ikaw ay pagpunta sa gawin iyon sa iyong isip, at marahil ang iyong iniisip sa Ingles o ilang iba pang mga wika, tulad ng natural wika, marahil. At pagkatapos mong isipin, na rin, kapag gusto kong, halimbawa, magsulat ng isang programa na sabi ni "kumusta," Gusto ko magsimula ng isang programa, Ako ay i-print kumusta, at pagkatapos ang ko huminto sa programa. Ito ay pseudocode. Ito lang talaga na sinusubukan mong makabuo ng isang pagkakasunod-sunod ng mga kaganapan na kayo ay pagpunta sa gawin upang maging magagawang magsulat ng isang programa. Pagkatapos mayroon kang ang source code, at ang source code ay hindi na kailangang partikular na sa C. naming pinag-uusapan tungkol sa source code sa C dahil na ang wika na aming pag-aaral, ngunit kurso code ay maaaring maging halos anumang programming language na mayroon ka. Mamaya sa semestre, ka ng pagpunta upang matuto nang iba pang mga wika. Iyon din source code. Halimbawa, narito, ito ang aking pinagmulan code, at pagkatapos ay ako kabilang ang isang library, at pagkatapos ay sisimulan ko ang pangunahing, at pagkatapos ko i-print. At Laura ay pagpunta sa makipag-usap ng kaunti bit tungkol sa lahat ng ito. Kaya ito ay ang source code. At kung ano ay ang bagay na code? Ang bagay ay isang bungkos ng mga zero at mga bago, talaga. Ano ang mangyayari ay una mayroon kang pseudocode, na kung saan ay lahat sa wikang Ingles. At Ibig kong sabihin, naiintindihan mo ito. Marahil ang iyong mga kaibigan maunawaan ito, at karamihan ng mga tao gagawin maunawaan ang ideya. Ngunit mga computer ay talagang pipi, at sila hindi maunawaan Ingles, kaya mo Na-translate na sa isang bagay, karaniwang isinalin sa ilang mga programming language. At maaari mong isipin ang isang programming wika bilang uri ng tulad ng isang wika na sabihin sa iyo kung paano ang iyong computer na magsalita at maunawaan. Talaga sumusulat ka ng isang bagay sa isang wika na pareho sa iyo at sa iyong Nauunawaan computer. Iyan ang source code. Kaya pagpunta form na pseudocode sa source code, ito ay nakasalalay sa iyo. Ito ay isa lamang ka sa paggawa ng iyong programa. Ngunit ang problema ay na ang mga computer na hindi gumagana ang kahit na Nauunawaan programming language. Hindi nito maunawaan source code sa lahat. Ito talaga lang naiintindihan mga zero at bago. Kaya mayroon kaming ito napaka magic bagay na tinatawag na isang tagatala, na kung saan talaga ay pagpunta upang makakuha ng mga pinagmulan na tinatawag na sa iyo Sinulat ni sa isang wika ang kapwa mo at ang iyong computer nagsasalita, at ngayon ikaw pagpunta sa ibahin ang anyo na nasa mga zero at bago. Kaya talaga kung ano ang ginagawa tagatala ay nakakakuha ito source code, sa kasong ito C, ito ay pagpunta sa ibahin ang anyo ito sa zeroes at mga bago na ang computer naiintindihan at maaaring gumawa ng isang executable file out ng ito. Ba na magkaroon ng kahulugan? Maaari mong isipin lamang ng tagatala bilang ang ilang mga uri ng tagasalin na pagtulong sa iyo na ipaliwanag sa computer nang eksakto kung ano ang dapat gawin. Ngunit paano ko compile. Sabihin bumalik sa Appliance, at hayaan sabihin na ako paggawa programang iyon. Unang pupuntahan ko upang lumikha ng isang direktoryo dito, at ako pagpunta sa tumawag ito "Kasanayan." Ngayon Pupunta ako upang mag-navigate sa direktoryo, kaya cd kasanayan. Ngayon ako sa loob kasanayan. Ngayon gusto ko bang magsimula gedit, kaya kung paano ang gagawin ko na? Maaari ko alinman sa mag-click dito, o maaari ko lang Literal na nagta-type "gedit," at ito ang nangyayari upang buksan para sa akin. Ngayon pupuntahan ko type ang aking mga programa, kaya kung ano mismo ang ko na sinulat sa slide. Ako deklarasyon isang library. Ako paggawa int main, walang bisa. At ngayon ako paggawa printf, kumusta. Ngayon ako pagpunta sa i-save ito. Hayaan akong ilagay ito sa pagsasanay, at Pupunta ako sa itawag sa hello.c. Kaya ngayon na-save ito. Kung gusto kong i-compile ito, ako talaga Maaari itong gawin sa dalawang magkaibang lugar. Maaari ko alinman sa gawin ito sa isang terminal na window, kaya ito malaki isa, o maaari kang gamitin gedit na aktwal na ay may terminal na window dito mismo. Kaya maaari mong napaka Maginhawang gawin lamang ang iyong code, at pagkatapos ay maaari mo lamang i-type kahit ano dito, at subukan upang ipunin ito. Kaya paano ko compile code? Ang pinakamadaling paraan na mayroon kami ay sa pamamagitan ng paggamit gumawa, na kung saan ay isang function na ay isa lamang ng pagpunta sa compile ang iyong code. Mayroon kang lang sasabihin gumawa ng halo, kaya "Gumawa" at ang pangalan ng program. Oops. Ito ay alanganin. Lauren CARVALHO: Maari ka ni [hindi marinig]? Lucas Freitas: Paumanhin. Hindi ko i-save ito sa karapatan direktoryo. Halika sa pagsasanay, at ngayon i-save ito bilang hello.c. Sorry. Ngayon na-save ito. Hayaan lang gawin sa akin ls at maging siguraduhin na ito meron dito. OK, ngayon na dito. Kaya ngayon kung gagawin ko gawing kumusta, spits ito ng maraming mga bagay-bagay, ngunit pagkatapos ay nagbibigay lamang ito ako ng isa pang linya para sa terminal, na Nangangahulugan na ito ay matagumpay. Kaya ngayon kung gagawin ko muli ng isang ls, ako talaga tingnan ang file na ito sa berde, kung saan ay ang executable file. At pagkatapos ay kung gusto kong patakbuhin ito, ang lahat na Mayroon akong gawin ay tuldok slash kumusta. Ito ay pagpunta sa kamustahin dito mismo, sa gayon ito ay kung ano mismo ang ako nagtatanong ko ito sa. May isa pang paraan ng kino-compile, na kung saan ay gumagamit ng kumalatong. Kumalatong ay isang tagatala lamang na mayroon kami, at ito ay isang maliit na kaunti pang masyadong masalita sa compile ito. Ngunit ito gumagana lamang pati na rin. Kaya kung gagawin ko kumalatong, at pagkatapos ay i-o, at pagkatapos ay ang pangalan na gusto kong ibigay sa ang mga maipapatupad na file, kaya sabihin nating "Kumusta." At pagkatapos ay ang file na gusto ko upang ipunin, hello.c. Ito ay pagpunta rin upang ipunin. At mayroon ka ng mga file dito, at Maaari kong execute lang ito pati na rin. Kaya ang dalawang iyan gumana. Ba na magkaroon ng kahulugan? Ang anumang mga katanungan? Madla: Maaari kang mag-zoom sa ilang sandali? Lucas Freitas: Paumanhin? Madla: Mag-zoom in? Lauren CARVALHO: Sa tingin ko sa iyo Maaari lamang Command plus. Lucas Freitas: Command ano? Lauren CARVALHO: Command plus. Lucas Freitas: Hindi. Lauren CARVALHO: Oh, hindi iyon pagpunta sa gumana dahil - ito ay dahil itinakda namin ang resolution para sa bagay na ito. Lucas Freitas: gagawin ko hindi Sa tingin maaari naming mag-zoom in Oo, hindi namin maaaring mag-zoom. Mayroon ka bang isa pang tanong? Sorry. Madla: Maaari mong ulitin kumalatong? Lucas Freitas: kumalatong Ang? Kumalatong ay ang parehong bagay bilang make, ngunit ang pagkakaiba ay ang unang pupuntahan ko sumulat ng kumalatong, kung saan ay ang utos, pagkatapos ay pupuntahan ko gawin -0, lahat, na siyang lamang kung ano kami ay pagpunta sa matuto sa ibang pagkakataon bilang isang flag. Kaya sa tingin lamang na palagi kang mayroon upang ilagay ang-o. At pagkatapos ay una, ikaw ay pagpunta sa ilagay ang pangalan ng executable file, talaga ang file na ikaw ay pagpunta sa lumikha. Kaya ang maaari kong sabihin, halimbawa, hello2 at pagkatapos ang file na gusto kong i-compile, kung saan ay ang. c file. Kaya na hello.c. Ba na magkaroon ng kahulugan? Madla: Kamusta kung ano? Ano iyon? Lucas Freitas: Hello.c. At kung mag-compile ko ito, at kung Ako ls, mayroon din akong hello2 na ko lang ang pinagsama-sama. At kung sinusubukan kong patakbuhin ito, ito ay pagpunta sa gawin nang eksakto ang parehong bagay bilang kumusta, i-print lamang ang kumusta. Madla: Paano dumating para sa make maaari kang maglagay hello.c pagkatapos? Lucas Freitas: Sa make, mo Hindi mo na kailangang ilagay ang. c. Sa make, sasabihin mo lamang ang pangalanan ng program. Wala kang sasabihin. C. Ngunit para sa kumalatong, dapat mo. Madla: Sa kumalatong gawin mo rin kailangang idagdag ang [hindi marinig] Lauren CARVALHO: Oo. Kaya din mayroon kang mag-library. Lucas Freitas: Oo, iyan ay isang bagay kami pagpunta sa gamitin sa ibang pagkakataon. Iyon ay tinatawag na pag-uugnay, at sa tingin ko na nag-namin pagpunta sa makipag-usap tungkol dito sa ibang pagkakataon. Ang isa pang tanong? Madla: Huwag ilagay mo isang tuldok slash kumalatong? Lucas Freitas: Hindi. Ang tuldok slash ay upang buksan lamang ang executable file. Kaya kumalatong, isulat mo lang ang "kumalatong," at pagkatapos ay ang kung gusto mong buksan ang executable file na mo lamang pinagsama-sama, at pagkatapos mo dot iwa at ang pangalan. Ba na magkaroon ng kahulugan? Madla: Kung ikaw ay upang pagbabago lamang [Hindi marinig] upang kumusta mundo, gawin mo mayroon upang mag-recompile ito? Lucas Freitas: Oo. kung gusto kong sabihin, halimbawa, "kumusta doon, "ako maaaring lamang i-save ito ngayon, at ako sumulat ng libro lamang itong muli. Kaya hayaan mo akong gawin ang isang make kumusta. At kung gagawin ko kumusta, ito ay pagpunta sa sabihin ang "kumusta doon." Saysay ang? Anumang iba pang mga katanungan? Madla: Huwag mayroon kang upang isama ang standard I / O sa coordinate ang trabaho? Lucas Freitas: Oo. Ang karaniwang I / O ay isa lamang ang library na may isang pagpapatupad para sa printf. Kaya na bagay mismo sa tuktok Kasama stdio. Iyon ay kabilang ang isang library na talaga ay may isang bungkos ng iba't ibang mga tool na maaari mong gamitin. isa? Ng mga ito ay printf na ay isang pagpapaandar na talaga mga kopya mga mensahe sa screen. Anumang iba pang mga katanungan? Walang? OK. Kaya-usapan natin ang tungkol sa ipaalam sa ngayon - Lauren CARVALHO: Sabihin lang pumunta sa gabay ng estilo. Nais mo bang maghanap lang ito sa dito? Lucas Freitas: Kaya kami ay pagpunta makipag-usap tungkol sa estilo. Lauren CARVALHO: Oh, si David ay hindi natapos. OK. Bakit hindi bumalik kami sa estilo sa dulo? Ito ay talagang na-update bilang magsalita namin. Lucas Freitas: Oo. Sabihin paraan para sa David upang matapos na. Lauren CARVALHO: Maari bang ma- lumipat kami talaga? Kaya Umaasa ako sa lahat ng tao naging tinatangkilik ang mga scratch. Sa kasamaang palad, oras na upang ilipat ang layo mula sa ito - sa kasamaang-palad ay oras na upang ilipat ang layo mula sa mga kaakit-akit mga bloke programming on sa C. Ngunit sa kabutihang-palad, ang lahat ng mga programming constructs na ikaw ay nagtatrabaho na may sa scratch ay Direktang mga maisasalin sa C, at kami ay pagpunta sa simulan upang malaman ang tungkol ang ilan sa kanila ngayon. Sabihin unang talk tungkol sa kondisyon sa Boolean expression. Ito ay tumatakbo sa reserba lakas ng baterya. Lucas Freitas: Paano ay na hindi gumagana? OK. Ikaw pumunta doon, ako pagpunta upang makuha ang - Lauren CARVALHO: Kaya kundisyon ay Mahalaga ito dahil pinapayagan nila sa amin sa ipakilala ang logic sa aming mga programa. Narito ang isang halimbawa ng isang kundisyon sa loob ng isang programa C. Ni tandaan kung paano ito Hayaan - Kaya dito mismo ito kondisyon bloke, ito printf statement ay hindi maisagawa maliban kung ang kundisyon sa loob ng panaklong, n mas malaki kaysa sa 0, sinusuri sa true. Ngayon, ang lahat ng mga kondisyon sa loob ng f pahayag ay Boolean expression, na nangangahulugan na doon dalawang lang pagpipilian. Maaari nilang alinman suriin sa totoo, o maaari nilang suriin upang hindi totoo. Kaya dito, kaya ito ang may katuturan, tama? n mas malaki kaysa sa 0, nangangahulugan ito ay isang positibong numero, na nangangahulugan na ito ay i-print out "na pinili mo ang isang positibong numero." Mayroong maraming mga Boolean expression na maaaring mabuo ang kundisyon na may isang init statement. Mayroon kaming mga mas mababa. Ito ay mas mababa sa o patas sa. Ito ay lamang ng isang nakakatawa [hindi marinig]. Kung gusto mo na ang printf na mangyari kung ito ay mas malaki kaysa sa o katumbas ng 0, pagkatapos ay pipiliin mo ito. Kaya ang katumbas lamang nagkakabit karapatan pagkatapos ng mas malaki sa pag-sign. Pantay pantay, na kung saan ay naiiba mula sa isa lamang katumbas lagdaan, pantay pantay talaga ay nangangahulugan na kung ano ang sa ang kaliwang bahagi ng ito ay katulad ng kung ano ang nasa kanang bahagi ng ito kung saan ang isa katumbas ng pag-sign ay kung ano? Ano ay isa lamang pantay na pag-sign? Pagtatalaga. Lucas Freitas: Sino ang sinabi iyon? Iyan ba ang kendi? Oh, hindi. Sorry. Sorry. Pareho mong makakuha ng kendi. Oh, OK! Tatlong tao makakuha ng kendi! Lauren CARVALHO: Kaya ang isang ito dito mismo ay ang putok operator nauuna ang katumbas ng pag-sign, kaya na hindi katumbas ng. Kaya kung ito ay sa loob ng aking kondisyon, katawan ng kalagayan ng ginagawa isakatuparan lamang kung ano naman sa kaliwa ay hindi katulad ng kung ano ang nasa kanan. Maaari ko ring magkaroon lamang ng exclamation point. Talaga magpapadala kami makita sa isang tampok slide sa kung paano ito ay ginamit. Lucas Freitas: Anumang mga katanungan? Walang? Lauren CARVALHO: Maaari naming pagsamahin ang mga Boolean expression upang bumuo ng higit pa buhol-buhol na kondisyon pahayag. Kaya dito, kung ano man ni sa kaliwa kamay gilid ng double bar o ano naman ay nasa kanang bahagi ng ang double bar sinusuri sa totoo, pagkatapos ay gagamitin namin i-print ang mga hindi wastong. At pagkatapos ay down na dito, kung ano man ni sa kaliwang bahagi ng dalawang ampersand at ano naman sa kanan bahagi ng dalawang mga ampersand sinusuri sa true, pagkatapos ay Makikita print out namin wasto. Ang double bar ay tinatawag na ang lohikal O operator ang double ampersand ay na tinatawag na ang lohikal AND operator. Oo? Madla: Sigurado mga lang lower case l's? Lauren CARVALHO: Hindi. Ang mga ito ay aktwal na - alam mo ang sumasagot na hampas, tulad ng sa itaas ng iyong Return key? Makita mo ba iyon? Lucas Freitas: Ito ay talagang isang bar. Lauren CARVALHO: Ito ay talagang bar dalawang lamang. Madla: Maaari mong gamitin ang pantay na pantay-pantay para sa mga string? Lucas Freitas: Hindi. Kami ay pagpunta upang matuto mamaya isang bagay tungkol sa na. Lauren CARVALHO: Mayroong isang function na maaari mong gamitin. Ngunit hindi mo kailangang i- mag-alala na ang pa lamang. Paano kung bigyan ko ang program na ito ang bilang 5? Ano ang magiging mag-print? Madla: [hindi marinig] wasto. Lauren CARVALHO: Wastong? Oo. Hindi ko alam kung sino ang nakuha ko na. [Tawa] Lauren CARVALHO: Iyon uri ng nakakatakot [hindi marinig]. Madla: Kaya ang double at, na nangangahulugan lamang at? Lauren CARVALHO: Oo. Kaya bilang 5 ay parehong mas malaki kaysa sa 0 at mas mababa sa 100. Madla: Bakit ito ay magiging isa? Lauren CARVALHO: Isa ampersand ay talagang isang bagay na naiiba, at ito ay isang bitwise operator, na kung saan makakakuha ka malaman ang tungkol sa ibang pagkakataon. Ngunit ito ay isang bagay na talagang gumagana na may mga piraso ng isang ibinigay na numero. Lucas Freitas: tingin lang gawin nila hindi kailangang mag-alala tungkol dito sa ngayon. Lauren CARVALHO: Sa tingin ko ito ay marahil paparating na sa susunod na linggo. Lucas Freitas: Anumang iba pang mga tanong? Walang? Lauren CARVALHO: Kaya nasaksihan namin na ang isang ito harangan ang maaaring tumayo nang mag-isa, ngunit maaari itong din ay pagpaparisin sa at iba block. Kaya sa kasong ito, kung n ay mas malaki sa 0, kami ay pagpunta sa i-print ang "Ikaw kinuha ng isang positibong numero. "tao, ibig sabihin ay kung ito ay 0 o kung ito ay mas mababa kaysa sa 0, kami ay pagpunta sa i-print, "Pinili mo ang isang negatibong numero." Ang mga kawili-wiling bagay dito ay na ang mga ay eksklusibong ng bawat isa. May ay hindi kailanman pagpunta sa maging isang kaso kung saan ito at ito Maaari parehong i-print out. Ako ba na ikaw ay nagtrabaho kasama ang kung / iba box sa simula, kaya ito ay dapat na medyo pamilyar. Oo? Madla: Huwag kailangan namin ang puwang sa pagitan int n katumbas GetInt pagkatapos na puwang sa kung statement? Tulad ng mga gumagamit kami ng isang line [hindi marinig] Lauren CARVALHO: Oh, ang espasyo dito? Madla: Tulad ng mga iyon, ngunit double ka na espasyo. Hindi, pumunta up. Umakyat. Lucas Freitas: lang ang mga linya? Madla: Oo. Lucas Freitas: lang ang mga blangko na linya? Madla: Oo. Lauren CARVALHO: Blangkong line? Hindi. Iyon lang isang pangkakanyahan bagay. Lucas Freitas: Ito ay tulad lang minsan laktawan mo lamang ng ilang mga linya sa gayon na ang code ay hindi mukhang isang malaking bloke ng teksto. Lauren CARVALHO: Sa tingin ko kung ano ang nangyari ay na nagkaroon kami ng isang komento dito, ngunit ko kinuha ito nang sa gayon ay ikaw guys ay magkakaroon upang isipin ang tungkol sa code sa halip kaysa basahin lamang ang aking komento. Sa pangkalahatan, hindi spacing ng habilin talaga makakaapekto sa paraan na tumatakbo ang iyong mga programa. Ito ay higit pa sa isang pangkakanyahan bagay. At kapag mayroon kaming ang estilo gabay na-update at handa na upang pumunta sa pagtatapos ng supersection, magpapadala kami makipag-usap tungkol na higit pa. Mayroong mali sa ang program na ito, i-right? Dahil ang 0 ay hindi talaga isang negatibong numero. Kaya sabihin makita kung maaari naming ayusin iyon. Maaari mong marahil isipin may ganitong sinasabi, tama? Kung n ay mas malaki kaysa sa 0, i-print namin, "Ikaw kinuha ng isang positibong numero. "Pagkatapos pa kung n ay mas mababa kaysa sa 0, "Pinili mo ang isang negatibong numero. "tao," Pinili mo ang 0. " Ngayon ang kagiliw-giliw na bagay ay na ito ay maaaring pumunta sa magpakailanman. Maaari kang magkaroon ng isang kung bloke, ang isang tao kung bloke, ang isa pang tao kung bloke, iba kung, iba kung, iba kung, iba, talaga hangga't gusto mo. At kapag itinayo na tulad nito, ang mga ito ay pagpunta lahat upang maging eksklusibong ng bawat isa. Oo? Madla: Kaya bakit hindi maaaring gamitin mo lang isa pa kung sa halip na [hindi marinig]? Lauren CARVALHO: Sa kasong ito, yes ako maaaring gumamit ng isa pang kung, at magiging walang pasubali fine dahil ang kondisyon ay ang kanilang mga sarili eksklusibong ng bawat isa. Ngunit kung ang mga kondisyon ay hindi eksklusibong ng bawat isa, ito gagawin puwersahin ang mga ito upang hindi kailanman ang parehong pag-aralan, kung na saysay. Madla: Sa kasong iyon, maaari naming ma-nest ang ikalawang kung sa unang kung? Lauren CARVALHO: Kung - kung ano ang ibig mong sabihin? Madla: Kung ang dalawang mga kondisyon ay hindi pare-pareho eksklusibo? Lauren CARVALHO: Kung ang mga kondisyon ay hindi pare-pareho eksklusibo? Ngunit gusto mo ang isa lamang sa mga ito upang tumakbo? Madla: gusto mo lamang kung sa halip ng iba. Lauren CARVALHO: Oo. May ay palaging pagpunta sa maging ng maraming ng mga paraan na maaari mong gawin ito. Maaari mo talagang ma-nest ang mga ito. At makikita mo sa isang susunod na slide na maaari kang magkaroon ng maramihang mga ifs, isa lang pagkatapos ng isa pa. Ngunit ito ay isang paraan ng lohikal pag-aayos sa daloy ng iyong programa. Lucas Freitas: At mayroong isa nang higit pa bagay, ay na nagtanong ka tungkol sa paglalagay kung at pagkatapos ay isa pang kung. Ito ay gumagana ganap na ganap, ngunit ito ay masamang disenyo dahil isa lamang kung ka suriin ang unang kung, at napansin mo na ang bilang na ito ay mas malaki kaysa sa 0, mo Maaari tapusin lang ang program. Wala kang upang suriin kung ito ay mas mababa kaysa sa 0, tama? Ngunit kung mo kung kung, ito ay pagpunta sa suriin pareho, habang kung gagawin ko kung iba ay kung, ito ay pagpunta sa suriin kung ito ay mas malaki kaysa sa 0. Kung ganoon nga, hindi ito ng pagpunta sa kahit tumingin sa iba pang mga linya ng code. Kaya ka talaga ng pagsuri ito tulad ng dalawang beses nang hindi kinakailangan, kaya na ang dahilan kung bakit namin gawin kung iba kung. Anumang iba pang mga katanungan? Madla: Kaya ang pag-andar ng mga tao kung ito ay kapareho ng kung ito ay isa lamang kung? Lauren CARVALHO: Hindi. Talaga ka pagpunta upang makita ang sa aking tabi i-slide ang isang halimbawa kung saan maaari itong maging iba. Sa kasong ito, ito ay halos pareho. Kaya dito, mayroon kaming isang halimbawa ng maramihang kung pahayag, at ang pag-andar ay hindi katulad parang ako sinabi lamang kung tao, kung tao, kung tao. Hayaan ang sa tingin lamang tungkol sa kung ano ang i-print out kung ipasok ko ang numero 95 sa programang ito. Madla: [hindi marinig] Lauren CARVALHO: At pagkatapos? Madla: [hindi marinig] Lauren CARVALHO: Oo. Kaya sa kasong ito, mga kundisyon na ito ay hindi pare-pareho eksklusibo ng bawat isa. At dahil walang tigil ang ito kondisyon mula evaluate kung ito isa ay mayroon, na ang mga ito lamang lahat ng pagpunta sa i-print out. Kaya kung paano ma ko ito aayusin? Madla: iba ifs? Lauren CARVALHO: Maaari mong gamitin ang iba ifs. Maaari ko bang baguhin ang pagkakasunud-sunod sa mga ito, tama? Kung unang ginawa ko ang isang ito? Well, talaga, hindi. Iyon ay hindi gumana para sa 95. Lucas Freitas: Hindi, lamang ang iba ifs. Lauren CARVALHO: iba Ang ifs sana ay naayos na ito. Na ba i-clear up ang pagkalito sa pagitan ng ifs at iba ifs? Madla: ako Nais lamang na magtanong sa iyo, kung ka gumamit iba kung, gusto ito ay titigil? Lauren CARVALHO: Mag-right. Kaya lamang ito sa unang isa. Kung naipasok ko ang bilang 95, lamang ito sana ay naka-print out, at ito ay hindi kailanman sana ay progressed sa iba. Lucas Freitas: Tulad uri ng isipin ito bilang kung nangyari ito, gawin ito. Ang tao ay tulad ng kung hindi, check para sa ito, at pagkatapos ay gawin iyon. Kaya tulad na ang mga ito ang lahat ng kapwa eksklusibo. Hindi ka maaaring makakuha sa dalawang sa paglipas ng mga. Madla: Maaari mong gamitin ang isang makatuwirang AT para sa sitwasyon na? Lauren CARVALHO: Oo. Iyon ang isa pang paraan na maaari naming Naayos ang problemang ito. Ka sana natukoy namin umaabot, tama? Kaya sana sinabi ko kung n ay mas malaki sa 90 at mas mababa sa - well, hulaan ko ang isang ito ay hindi talaga mahalaga, ngunit dito maaari ko pa sinabi kung n ay mas malaki sa 80 at mas mababa sa 90. Mas mataas sa 70, mas mababa sa 80. Iyon sana ay nagtrabaho rin. [Tawa] Lucas Freitas: Siya ang natakot. Lauren CARVALHO: Huwag matakot. Lucas Freitas: Hindi na ito ay mali. Ito ay lamang na ito ay hindi kinakailangan masyadong masalita. Tulad ng sa computer science, dapat isa maging simple hangga't maaari hangga't mayroon kang ang pag-andar. Gusto mo ba ang kendi? Madla: Huwag kailangan ito. Lauren CARVALHO: ka scaring lahat, Lucas. Lucas Freitas: Paumanhin. Lauren CARVALHO: David Binanggit din mga lumipat statement sa klase. Talaga kung ano ang nangyayari sa ang paglipat pahayag tumatagal ng isang variable. Sa kasong ito, kami ay pagsasagawa ng isang integer. Kung ang integer ay 1, kami ay pagpunta sa i-print out, "Pinili mo ang isang maliit na numero. "Kung ang integer ay 1, ang" Ikaw kinuha ang isang medium na numero. "Kung ang integer ay 3, "Pinili mo ang isang mataas na numero. "At ako ay nagkaroon din ng isang default na kaso down na dito, ngunit ito ay hindi nagpapakita up, na ay masyadong masama. Talaga, ito ay isa lamang isa pang syntax. Sana ipinatupad namin ang eksaktong parehong bagay sa kung at iba pa kung pahayag. Ngunit kapag mayroong mga maraming iba't ibang kundisyon at maraming mga iba't ibang pagkakaiba-iba sa kung ano ang gusto mong gawin para sa bawat input, ito ay isang opsyon. Kaya lamang isang mahusay na syntax malaman. Oo? Madla: Bakit mayroong hindi ay isang backslash n sa unang isa? Lauren CARVALHO: Para up doon? Walang backslash n up doon dahil ang GetInt - kung susubukan mo ito, ipapakita ito magbibigay sa iyo ang pagsenyas na ito. Bigyan mo ako ng isang integer sa pagitan ng 1 at 3. At kung ilalagay ko ang mga sumasagot na hampas n, gagawin ito dalhin ako sa susunod na linya, ngunit ko lang Nais i-type ang mga ito ang integer karapatan pagkatapos ng colon. Maaari kang pinagsikapan ng mga sumasagot na hampas n. Ito ay hindi isang malaking pakikitungo. Oo? Madla: Para sa ang code na ito, ay ito kaso isa, ay na dahil ito ang unang kaso? Dahil - Lauren CARVALHO: Hindi, hindi, hindi. Kaya ito ay magbibigay sa akin ng isang integer sa pagitan ng 1 at 3. Kung n ay 1, i-print ko na ito. Kung ako ay tinanong para sa mga titik, maaari akong magkaroon Sinabi ninyo ako ng sulat sa pagitan ng A at C. Pagkatapos ito ay magiging kaso A. Madla: [hindi marinig]. Kaso Ang gusto lamang [hindi marinig] Lauren CARVALHO: Oo, i-right. Oo? Madla: Ano kung nais mong magkaroon ng higit pa sa isang pamanggit expression? Kaya sa halip na nagsasabi n ay katumbas ng 1, [hindi marinig] n ay mas malaki sa 1 sa unang kaso? Lauren CARVALHO: talaga, kung gagawin ko hindi tukuyin ang ilan sa mga kasong ito, ito gagawin ay magtataglay pababa. Kaya talaga, siguro ito ay hindi kung ano ang iyong pagtatanong. Lucas Freitas: Sa tingin ko siya tinatanong kung ang ang kaso ay n mas malaki kaysa sa 0, kasong mas mababa kaysa sa 0. Lauren CARVALHO: Siguro ang paglipat pahayag ay hindi talaga kung ano ang gusto mo gamitin sa kasong iyon. Lucas Freitas: Ang switch statement para lamang sa halaga, kaya ka ng pagsuri ng ang halaga ay tulad nito o iyon. Kaya hindi mo magagawa talaga ilagay kundisyon. Madla: Paano kung ang tao mga uri ng [hindi marinig]? Lauren CARVALHO: Iyon maaaring naging ang aking default na kaso, na sa kasamaang-palad hindi mo makita. Lucas Freitas: [hindi marinig] gawing makita ang mga ito. Lauren CARVALHO: talaga, alam mo kung ano? Hayaan pumunta ni lamang sa pag-aaral 50, at magpo ko mag-zoom in lamang sa mga slide sa pag-aaral 50, dahil ito ay lamang nakakainis. Kaya ipaalam sa akin talagang pumunta sa kondisyon. Ito ay pagpunta lamang sa tumagal ng ilang sandali. Ayos lang. Kaya, Sorry. Hindi bababa sa ngayon magagawa naming upang makita ang ang lahat ng bagay nang wala ito lagtas. Ayos lang. Kaya kung sila ilalagay sa 10, gusto naming default dito sa aking default kaso, at ako Gusto i-print lamang ang mga hindi wastong dahil ako nagtanong sa kanila upang ipasok ang isang integer sa pagitan ng 1 at 3. Anumang iba pang mga katanungan? Oo? Madla: Sabihin natin para sa kaso ng isa, kaso tatlo, sabihin na gusto mo ito upang maging ang lahat ng mga parehong bagay, kaya kinuha mo ang isang numero hindi iyon medium numero. Sa kasong iyon, magiging kalabisan? Gusto mo baguhin lamang ang teksto sa kapwa ng mga ito, o gusto may ilang mga kalabisan? Mayroon bang anumang paraan upang pagsamahin [Hindi marinig]? Lauren CARVALHO: May mga paraan upang pagsamahin ang mga ito, ngunit naniniwala akong kaya mo pagsamahin lamang na magkakaharap na mga bago. Kaya't kung hindi ko tukuyin ang anumang bagay para sa kaso ng dalawa, ito gagawin nalalapat sa parehong mga kaso. Oh, kung hindi ko ilagay ang anumang bagay para sa kaso isa, ito ay nalalapat sa parehong mga kaso isa at dalawa. Kung iyon ang may katuturan. Madla: Maaari mong ulitin ang isa na? Lucas Freitas: OK. Kung ginawa mo talaga, tulad ng, mayroon kang ang parehong bagay, ngunit hindi mo ilalagay kahit ano dito, gusto mo maging alinman sa para sa kaso isa o dalawang kaso, gawin ito. Mag-right? At ito ay nangangahulugan na bakasyon kung makakuha ka sa kasong ito, mag-iwan lamang. Kaya na kung ano ang ibig sabihin nito ang preno. Kaya kung ginawa ko lang ito, tumingin ka, ito ay kaso isa, at nais mong gawin ito lamang. Kung ito ay kaso ng dalawa, gagawin din ito dumating lang dito at gawin iyon. Madla: Ngunit maaari mong gawin ito? Kung mayroong isang bagay para sa kaso dalawang [hindi marinig] Lauren CARVALHO: Hindi ako naniniwala maaari mong gawin iyon. Hindi sa tingin ko maaari mong laktawan sa paligid. Maaari gagawin mo na, Rob? Hindi sa tingin ko. Madla: Kaya lamang ng isang numero maaaring pumunta pagkatapos ng isang kaso, tama? May hindi maaaring maging kaso isa, kuwit, dalawang? Lucas Freitas: Hindi, hindi mo magagawa. Ikaw Talagang maaari hindi. Lauren CARVALHO: Ibig kong sabihin, ang punto ay ito ay isang pagpipiliang ito, at hindi ito puwede umaangkop sa iyong mga pagkakataon ng paggamit, kaya pagkatapos mo Gusto gamitin ang kung kundisyon. Madla: Kaya bakit nais gawin mo ito? Ang paglipat? Lauren CARVALHO: ko ito gamitin kung napaka mo inilarawan - talaga, Lucas, ay ka sa pag-block. Lucas Freitas: Oh, paumanhin. Lauren CARVALHO: Kung mayroon kang napaka tinukoy na pag-uugali na gusto mo para sa ang bawat input, ito ay maaaring maging isang kaunti pa maikli kaysa sa pagsusulat out isang kung pahayag para sa bawat isa. Madla: Ano ang ginagawa ng BREAK ibig sabihin muli? Lauren CARVALHO: Ang ibig sabihin ng break Ang ihinto. Tandaan, kung hindi ko magkaroon ito ng break dito, nais namin na bumagsak lang pababa sa susunod na kaso. Lucas Freitas: Break nangangahulugan upang makakuha ng sa labas ng switch statement. Dahil kung ito ay 1, gusto kong i-print ito at umalis. Hindi ko nais upang suriin ang anumang bagay. Madla: Hindi mo gusto upang i-print ang anumang bagay. Lucas Freitas: Oo. Dahil ito ay kapwa eksklusibong. Madla: At ang mga ito magpatuloy lamang sa susunod na dahilan kung ang unang kaso ay hindi totoo? O kaya ay subukan ito sa lahat ng mga kaso sa parehong oras? Lucas Freitas: Hindi, ito sunud-sunod mga tseke. Sunud-sunod, oo. Isa pang tanong, pagkatapos ay mayroon kaming upang ilipat sa upang maaari naming masaklawan ang lahat. Oo? Madla: Kaya para sa mga kaso, ay maaaring magkaroon ng tapos isang bagay bukod lang ang isa? Puwede bang bigyan ito ng isang hanay? Lucas Freitas: Hindi. Lauren CARVALHO: Hindi sa tingin ko maaari mong bigyan ito ng isang hanay. Lucas Freitas: Hindi mo maaari kang Hindi maaaring bigyan ito ng isang hanay. Madla: kaso ay tiyak [Hindi marinig]. Lucas Freitas: Lumipat ay isang uri ng halaga. Paggawa mo ng iba't ibang mga bagay depende sa isang halaga, ang isang tiyak na halaga. Hindi mo maaaring gawin ng range, hindi mo magagawa gumawa ng kahit ano pa man. Ito ay isa lamang tool na ito upang makita. Lauren CARVALHO: Karamihan sa mga tao ay hindi gumagamit ng lumipat pahayag Sobra sa CS50, subalit ito ay doon. Ayos lang. Kaya ang susunod na bagay kami ay pagpunta sa makipag-usap tungkol ay ang tatlong bagay operator. Ito ay isa lamang uri ng kondisyon. Talaga kung ano ang nangyayari sa dito ay ako humihingi ng isang integer, at kung n ay mas mataas sa 100, pupuntahan ko i-print out "Mataas." Kung ito ay hindi, ako ng pagpunta sa i-print out "mababa." Kaya ano ang ginagawa ay ang kundisyon ay dito mismo sa panaklong, at mo Maaari uri ng tingin ng tanong bilang ako na nagtatanong kung ito ay totoo o hindi. Kung ito ay totoo, ako pagpunta sa gawin muna ito bagay, at kung ito ay hindi totoo, ako pagpunta sa gawin ito ikalawang bagay. Ang anumang mga katanungan tungkol sa tatluhan operator? Lucas Freitas: gusto lang tandaan mula sa Si David ay na sa tuwing mayroon kang isang kondisyon - Lauren CARVALHO: hulaan ko ni David ang nanonood sa pamamagitan ng live na stream. Lucas Freitas: Siya ang ginagawa buhay stream sa ngayon. Kaya sa tuwing mayroon kang isang kondisyon, ikaw ay dapat na ilagay ang kulot tirante, tulad lang mayroon kami sa isang switch pahayag dito. Mayroon kaming kulot tirante dito. Para sa kahit anong kondisyon, ikaw ay dapat din ilagay iyon. Lauren CARVALHO: Makikita mo ang ito sa gabay ng estilo. Hindi namin talagang magkaroon ng gabay sa estilo sa ngayon. Sa tingin ko ni David pa rin gumagana. Lucas Freitas: Sinabi niya na lamang ito ay gumagana na ngayon. Lauren CARVALHO: Oh, ito gumagana ngayon? OK. Kaya sa malas sa taong ito sa estilo gabayan, kahit na mayroon kang lamang isang linya, na kailangan mong ilagay ang mga kulot tirante in Hindi mo kinakailangang kailangan sa para sa pag-andar ng programa. At siguro ay dapat naming tumagal lamang ng pahinga pagkatapos ang mga kondisyon at dumiretso sa estilo gabay upang i-clear up ang ilan sa mga bagay na ito? Lucas Freitas: Oo. Mayroon ka bang katanungan? Madla: Hindi, ako makakakita lang maghintay hanggang ang gabay sa estilo. Madla: Maaari mo bang bumalik sa tatluhan operator? Lauren CARVALHO: tatlong bagay, oo. Lucas Freitas: tatluhan operator ay talaga isang tao kung pahayag, ngunit sa halip ng pagkakaroon upang magkaroon ng dalawang linya ng pag-check ng kung at pagkatapos ay ang tao, mayroon isang linya mo lamang. Kaya talaga kung gusto ko upang bigyan ang isang string ng halaga ng mataas o mababa, at ako nais na gawin ang isang mataas na kung n ay mas malaki sa 100 o mababa kung ito ay mas kaunti, kung ano ang maaari kong gawin ay ito [hindi marinig] ang string ay magiging, at pagkatapos ay ako tanungin ang programa ay n mas mataas sa 100? Kaya na ang dahilan kung bakit mayroon akong ito na expression sa mga panaklong at pagkatapos ay ng tandang pananong. Ako nagtatanong ay ito mas mataas sa 100? Kung ito ay, ito ay magiging mataas. Kung ito ay hindi, ito ay magiging mababa. Kaya talaga kung ano ang sa tingin mo ay hihilingin sa iyo isang tanong, kaya ilagay mo sa panaklong ang kundisyon. Pagkatapos mong ilagay ang tandang pananong dahil naka nagtatanong ito. At kung ito ay totoo, ito ay magiging sa unang halaga [hindi marinig] dito. Kung ito ay hindi, ako pagpunta sa ilagay ang halaga na ay pagkatapos ng colon. Ba gawin itong kahulugan? Ito ay din ng isang bagay na ay tulad ng isang tool sa C ngunit hindi mo kailangang i- partikular na gamitin ito. Ngunit CS mga tao ay karaniwang gusto na dahil sine-save ng lang ito linya. Lauren CARVALHO: Ito ay napaka-eleganteng. Ito ang ginagawa ng maraming sa statement ng isa lang. Madla: Kaya ang porsiyento ng pag-sign ay kahit ano lang ang mga resulta sa ang nakaraang mga line? Lauren CARVALHO: Oh, Sorry. Ang porsiyento ng pag-sign ay ang tunay isang placeholder para ito ay s. Sa isang printf statement, mayroon ka na ito string dito, na kung saan ay kung ano ang nangyayari sa i-print out, ngunit maaari kang hindi lamang ilagay ito ay s sa doon. Kung hindi man gusto itong i-print out ang mga literal. Kaya inilalagay namin ang isang porsyento dito upang panatilihing ang lugar na ito gaganapin para sa anumang nauuna matapos ang kuwit. Kaya para sa isang string, na nakuha na porsiyento s. Para sa isang integer, porsiyento i. Para sa isang float, porsiyento f. Makikita mo ang mga bilang namin makakita ng higit pang mga halimbawa. Ngunit marahil ay dapat kang makipag-usap tungkol sa gabay ng estilo para sa isang kaunti, ngayon na ikaw ang bahala. Lucas Freitas: Kung pupunta ka sa cs50.net/style, ikaw ay pagpunta upang makita ang ang gabay ng estilo. Para sa mga hanay ng problema, ang iyong puntos para sa hanay problema ay binubuo ng mga saklaw, na nangangahulugan talaga kung ginawa mo ang lahat ng ang mga bahagi ng problema itakda o kung ikaw Tinangka ng isang bagay. Ang ikalawang bagay ay ang kawastuhan, na paraan ay ang iyong programa ginagawa kung ano ito ay dapat na ginagawa, o ginagawa nito may mga bug, o ay ito ay hindi ginagawa kung ano ang ito ay dapat na gawin. Ang ikatlong bagay ay ang disenyo, na nangangahulugang ay sa iyo sa pagpapatupad na ito na rin, o mga iyo gamit ang mga hindi kinakailangang mga pahayag? Kaya halimbawa, kung gusto mong ulitin isang numero ng 10 beses, ay mo ang pagsusulat ng para sa loop o ginagawa mo lang 10 beses ang parehong pahayag, paggawa lamang kopya at i-paste. Kaya disenyo ay para sa mga iyon. At panghuli, mayroon kang style. Estilo ay tulad lang ng Pagpili kung ganito ang iyong code nababasa at uri ng kaakit-akit. Ito talaga lang ibig sabihin ay nababasa ang iyong code? Gusto ng ibang tao kung sino ay naghahanap ay ang iyong code magagawang maunawaan kung ano ang ito ginagawa? Mayroon ba itong mga komento at mga katulad? Usapan natin ang tungkol sa mga estilo Hayaan na ka dapat gamitin. Ang unang bagay ay ang mga komento. Ang mga komento ay napakahalaga para sa iyong code dahil minsan ikaw ay gumagawa ng iyong programa, at alam mo kung ano mismo ang Gusto mo bang gawin kaya nagsimula ka lamang coding, i-type up lamang ng grupo ng mga C. Ngunit kung may ibang tao ay naghahanap ay ikaw code, hindi sila nakikipag-pagpunta sa magagawang maunawaan ito dahil hindi nila alam ang mga bagay na sa iyong ulo, tulad ng ang pesudocode, kaya siguro habilin nila mahirapan upang maunawaan ano ang code ay ginagawa. Kaya mga komento ay talagang kapaki-pakinabang na ipaliwanag sa isang tao kung sino ang naghahanap sa ang iyong code kung ano ang ginagawa nito, at talaga kahit na para sa iyo, ang mga ito ay napaka-kapaki-pakinabang. Bilang pumunta ka sa mas mahirap at mahirap Psets, ka pagpunta upang makita na ang code ay makakakuha ng mas mahaba, at pagkatapos ay komento ay talagang mahalaga kaya mo matandaan kung ano ang bawat bahagi ng iyong programa gumagana. Upang ilagay ang isang komento, maaari mo lamang gawin ng iwa slash at pagkatapos makapagsulat ng isang komento. At ang buong linya ay bahagi ng isang komento, at kahit anong mo isulat, hindi ito magiging ginamit para sa iyong code. Ito ay isa lamang tulad ng tagatala ay pagpunta sa huwag pansinin iyon. Ba na magkaroon ng kahulugan? Madla: Ano ang gagawin mo muli upang makapagsulat ng isang komento? Lucas Freitas: Ito? Slash Ang pag-iwa? Sa tuwing nagta-type ka slash slash, ano naman ay nasa linya na ay hindi papunta sa upang maisaalang-alang na maging C. Oo? Madla: Kaya pagkatapos ng komento, mo ipasok lamang at magsimula ng isang bagong linya? Lucas Freitas: Oo, eksakto. Lauren CARVALHO: Ang slash slash ay para sa solong linya ng mga komento. Lucas Freitas: Halimbawa, dito mayroon kaming - hayaan mo akong mag-zoom in - halimbawa, dito ako deklarasyon ng float, pero siguro kung ilagay mo lamang ito sa iyong code, na tulad mo ay walang mga ideya ano ito ay paggawa, tulad ng aktwal na isang tao kung sino ang naghahanap sa ang code na ito ay magiging, tulad ng, kung ano ang ano ba ay pagpunta sa? Kung inilagay mo ng komento na nagsasabi "convert Fahrenheit sa Celsius, ito ay ginagawang mas higit pang mga kahulugan. Ikaw, tulad ng, OK, ikaw ay paggawa ng conversion. Ba na magkaroon ng kahulugan? Kaya ito ay isang bagay na tumutulong sa mga tao lamang Handa na ang iyong code at din gumawa mong ma-aayos ang iyong code mas mahusay. Ang ikalawang bagay ay na maaari mong gawin multi-line komento, kaya magkaroon ng isa magkomento para sa isang bungkos ng mga linya. Sa halip na ilagay slash slash, ang mga komento unang linya, iwa slash, pangalawang linya, at iba pa, mo Maaaring gamitin ang slash star. Ang paraan na gagawin mo ito na para sa unang linya ng puna, ikaw ay pagpunta sa gawin ang isang slash bituin bituin, kaya katulad nito. Tulad dito mayroon kami sa simula ng isang programa, karaniwan mong ilagay sa iyo kung sino ay, kung ano ang ginagawa ng programang ito, at bagay-bagay tulad na. Ito ay uri ng tulad ng isang header para sa programa. Muli, ito ay hindi isang bagay na ang isang tagatala ay pagpunta sa nagmamalasakit sa, ngunit mahalaga para sa iyo na malaman kung ano ito programa gumagana o para sa ibang tao malaman kung ano ang ginagawa ng iyong programa. Kaya mo iwa star star, at pagkatapos ay ang huling linya ka ng pagpunta sa gawin bituin bawasan nang malaki upang magagawang upang isara na komento. Kaya talaga para sa lahat ng iba pang mga linya, Maaari mo lamang isulat ang kahit anong, at ito ay lahat ng pagpunta sa hindi papansinin. At din, tulad ng estilo, nakikita mo na bawat isa sa mga linya ay may star, at lahat ng ang mga bituin ay nakahanay. Ito ang mga mahahalagang bagay kaya na mukhang maganda ang iyong code. Magaling? Ngayon, mga kondisyon. Ano ang sinasabi David na dapat namin talagang ilagay sa mga slide, ay ang kapag mayroon kang anumang mga uri ng kung pahayag o anumang uri ng mga kundisyon, dapat mong gamitin ang kulot tirante upang ipakita na ito ay kung ano ang pagpunta sa mangyayari kapag mayroon kang ang kundisyon. Technically, kapag mayroon kang isang kundisyon at pagkatapos ay ang susunod na linya ay isa lamang sa linya, hindi mo technically mayroon upang ilagay ang kulot tirante. Talaga ang tagatala ay maunawaan ito pa rin bilang implicit. Ngunit para sa CS50, hihingin namin sa iyo guys upang ilagay ang kulot tirante kaya lang na iyong code ay mas organisadong at mas nababasa. Dahil ang nakukuha ng mas mahaba na code kung ikaw walang kulot tirante at tulad. Ito ay nakakakuha ng talagang marumi. Lauren CARVALHO: Ito ay eksaktong ano itinuturo lamang David out sa aking nakaraang mga slide. Ito talagang gumagana nang walang ang kulot tirante, ngunit para sa pangkakanyahan dahilan kami ay pagpunta sa hilingin na mo inilagay ang mga in At kapag nagsimula ka sa pagtakbo style50, na kung saan ay uri ng tseke para sa 50 estilo, ito ay ipaalala sa iyo na gawin ito. Lucas Freitas: At isa pang bagay ay tandaan na ilagay ang kulot tirante sa kahabaan sa bawat linya. Kaya gawin mo, halimbawa, l's. Pumunta sa susunod na linya, buksan ang kulot suhay, pagkatapos ay pumunta ka sa susunod na linya. Indentation, na kung saan ay apat na mga puwang. Pagkatapos ay magsulat ka ng kahit anupamang, pagkatapos ng isa pang linya, at isara ang kulot suhay. Kaya siguraduhin na ang parehong mga kulot tirante ay nasa iba't-ibang linya. Madla: Kaya kung ang code na ito ay may katulad 10 pang tao ifs, ito dapat maging 10 mga hanay ng mga bracket? Lucas Freitas: Oo, para sa bawat isa sa kanila. Oo. Kaya kung, iba kung, at iba pa. Madla: Maaari mong hindi pindutin ang Tab upang ipasok? Lucas Freitas: Hinihingi namin sa iyo guys na gamitin ang apat na mga puwang. Ang ilang mga editor ng teksto isalin tab bilang awtomatikong apat na mga puwang. gedit hindi, kaya wala kayong upang gawin puwang puwang puwang na espasyo. Ito ay din ng isang bagay na ang ilang mga programmer lamang gawin ang mga tab, ang ilang mga programmer lamang gawin apat na mga puwang, at ilang iba pang mga tao kahit na gawin dalawa o tatlong mga puwang. Ito ay lamang na dito ka kami nagtatanong mo guys na gawin apat na mga puwang. Madla: Mayroong halos siguradong Nakakuha na maging isang paraan para sa gedit upang Awtomatikong [hindi marinig]. Tulad ng walang [hindi marinig] gumagana na. Lucas Freitas: Oo. Sa tingin ko maaari kang pumunta sa Mga Setting. Madla: Ginagawa nito na ang lahat ng iyon. Lucas Freitas: ay Ginagawa nito? OK. Kaya siguraduhin lamang na sa iyo may apat na mga puwang. Madla: Huwag mayroon kaming upang ilagay ang kulot bracket in para sa mga loop pati na rin? Lucas Freitas: Oo. Lauren CARVALHO: Sa tuwing iyong encapsulating isang bloke ng code, lamang mangyaring gamitin ang kulot tirante. At bago sa tingin mo na hindi namin lamang pagiging sticklers tungkol na ito para sa hindi magandang dahilan, kung ikaw guys huwag pumunta sa upang makakuha ng tech internships sa malaking mga kumpanya, sila ay magbibigay sa iyo ng isang gabay ng estilo, at sila ay magsasabi sa iyo na ito ay kung ano ang iyong Kailangang ganito ang hitsura ng code. At kahit na natutunan sa code tulad ng ito, siguro sa iyong internship kailangan mong gawin ang isang bagay ganap na naiibang. Sila ay inaasahan mong sumunod upang ang kanilang mga estilo. Lucas Freitas: At isa pang bagay ay na napansin mo kung paano mayroon i tulad ng x, espasyo, mas kaunti, mas espasyo, 0? Tuwing ikaw ay mayroong isang operator - Maaari itong maging tulad ng plus, minus, beses, mas kaunti, mas malaki, kahit anong operator - kailangan mong ilagay ang isang puwang sa kaliwa at sa kanan ng operator. Lauren CARVALHO: Iyon ang tinatawag na binary operands. Siguraduhin lamang na lagi mong puwang out ang iyong binary operands. Lucas Freitas: Ito ay hindi isang binary operand. Lauren CARVALHO: Iyon ay dahil ito ay tumatagal ng dalawang. Lucas Freitas: Oh, oo. OK, ang switch. Una, mayroon kang upang makita na katulad lamang ng sa isang kung o iba statement, mayroon kang upang ilagay ang kulot suhay sa sarili nitong linya at sa ilalim ng kulot suhay dito. Pansinin na mayroong isang solong puwang pagkatapos ng paglipat, i in lamang kung at iba pa namin ay may isang solong puwang sa pagitan ng na at ang mga panaklong. Kaya kailangan mong ilagay iyon. At walang puwang sa kanan pagkatapos ng bawat ng mga panaklong o bago ang katapusan ng panaklong. Kaya nakikita mo na ang lahat ng ito nang magkasama, at i up din dito. Oo? Lauren CARVALHO: Sa tingin ko kailangan namin upang magpatuloy. Lucas Freitas: Kaya ito ay bahagi ng estilo gabay na mayroon ka para sa CS50. Maging sigurado na pumunta sa cs50.net/style at bistahan ito. Ito ang lahat napakahalaga para sa iyong estilo ng kalidad. Hayaan akong bumalik sa statement. Lauren CARVALHO: ako mas gugustuhin gamitin na lamang ang style50. Lamang kami ng pagpunta sa pumunta diretso sa loop. Ayos lang. Kaya sabihin babalikan ang nilalaman, ngayon na-nawala kami sa ibabaw ng gabay ng estilo. Mga Loop, nakita mo ang mga ito sa simula, at kami ay pagpunta sa makipag-usap tungkol sa mga ito sa C. Sa isang para sa loop, may mga tatlong mga bahagi sa deklarasyon ng ito para sa loop. Nakakuha mo na ang iyong Pinasimulan sa kung saan itinakda mo ang iyong mga variable. Nakakuha mo na ang iyong kondisyon, na mga pagsuri upang makita kung ang isang bagay ay totoo o hindi at kung ang loop ay dapat magpatuloy. At mayroon ka ng iyong update, na ina-update ang iyong mga variable. Hayaan ang tumagal lamang ng isang mabilis na pagtingin sa ilan C code ng ito para sa loop sa pagkilos. Ano kaya ang nangyari ay dito sa Pinasimulan, kami ay pagtatakda i sa 0. Sa kalagayan namin Sinusuri kung i Mas mababa sa 10. At sa pag-update kami incrementing i. Kaya kung ano ay magreresulta mula sa ito para sa loop? Lucas Freitas: talaga, una sa lahat, kilala mo guys kung ano i + + ay? Madla: Dinagdagan ng 1. Lucas Freitas: Dinagdagan ng 1, oo. Kaya ito ang parehong bagay bilang paggawa i katumbas i plus 1. At mapapansin na hindi kami magkaroon ng isang puwang sa pagitan ng i at ang + +. Kaya ang kilala mo guys kung ano ito ay gawin? Maaari isang tao sabihin sa akin? At maaaring makakuha ng ilang kendi dahil sa iyon? Madla: [hindi marinig] Lucas Freitas: OK. [Hindi marinig] ipakita ang lahat ng tao sa ibang pagkakataon [hindi marinig]. Oo, ito ay pagpunta upang ipakita ang "Ito ay CS50 "10 ulit. Lauren CARVALHO: hulaan ko ito noon ay sa pamagat ng slide. Lucas Freitas: Oh, oo. [Tawa] Lucas Freitas: Iyon ay nakakatulong. Lauren CARVALHO: Kaya mga ay para sa mga loop. Kami ay pagpunta upang makita ang ilang higit pang mga halimbawa ng para sa mga loop sa susunod. Ngunit ni aktwal na bistahan ang ipaalam pangalawang uri ng loop makakakita ka magkakaproblema sa C, at ito ay tinatawag na ang habang loop. Sa isang habang loop, ikaw Nalaman lamang isang kondisyon. Ang kalagayan ay naka-check sa nagsisimula, at kung kondisyon na sinusuri sa true, pagkatapos ay ang code sa loob katawan ng habang bloke ay isakatuparan. At ang code ay magpapatuloy na execute kaya hangga't na kondisyon ay nananatiling totoo. Narito ang isang halimbawa ng isang habang loop sa C. Kami ay pagpunta upang itakda ang bilang sa 10 sa magsimula sa. Hangga't count ay mas malaki kaysa sa 0, kami ay pagpunta upang panatilihin ang pag-print out ito variable dito. Kami ay pagpunta sa pagbawas ng bilang at pagkatapos suriin muli ang kundisyon. I-print, pagbabawas, tseke ang kundisyon muli. Narito mayroon kaming isang halimbawa na ay hinggil sa iyong katanungan mas maaga. Nagkaroon kami ng porsiyento s kapag kami ay nagpi-print out isang string, at ngayon na kami ay nagpi-print out sa isang int, mayroon kaming isang porsiyento bilang i aming mga placeholder sa halip. Ang mga titik ay dapat na medyo lahat madaling maunawaan, ay s para sa string, i para sa int. Kaya kung ang code na ito executes, dapat mong bilangin down na 10-0, pag-print out bawat integer. Lucas Freitas: At maaari mong isipin ang porsiyento bilang ito nararamdaman tulad ng isang blangko espasyo, at pagkatapos ay naglalagay ka ng ito variable dito sa na blangko ang puwang. Kaya halimbawa, dito ako magkakaroon lamang isang blangko, at pagkatapos ay ako ng paglalagay ng bilangin doon, ang halaga ng count. Ba na magkaroon ng kahulugan? Puwede ko lang gawin tulad ng printf at pagkatapos ay i-quote, bilangin? Gusto na gumagana? Madla: Hindi. Lucas Freitas: Hindi, dahil habilin ito talagang i-print ang salitang "count" sa halip ng pag-print ng mga halaga. Ito ay kung paano mo gawin print ito ang mga halaga patungo sa variable sa halip ng lamang ang pangalan ng variable. Ang anumang mga katanungan? Madla: Bakit ginagamit para sa bilang isang kabaligtaran sa habang? Lauren CARVALHO: Gusto ko gumamit ng para sa loop kung alam ko nang eksakto kung gaano karaming iterations Gusto ko ang aking loop upang tumakbo. Sa kasong ito, hindi mahalaga dahil, Ibig kong sabihin, lamang ako ay sinusubukang i- sa tingin ng isang talagang simple Halimbawa para sa slide na ito. Ngunit sabihin nating gusto ka ng isang bagay upang panatilihin ang pagpunta habang - Lucas Freitas: Halimbawa, ikaw ay humihingi ng input hanggang sa taong Nagbibigay sa iyo ang karapatan ng pag-input. Kaya tulad habang ang input ay hindi OK, panatilihing humihingi ito. O tulad habang ikaw ay magulang ay hindi magbigay ka ng pera, panatilihing humihingi ito. [Tawa] Lauren CARVALHO: Hindi mo alam kung paano maraming beses na magkakaroon ka na gawin ito. Lucas Freitas: Dahil hindi mo gusto alam kung gaano karaming beses na pagpunta sa panatilihin ang pagpunta. Lauren CARVALHO: Ngunit sa isang para sa loop, kailangan mong malaman kung gaano karaming beses. Oo? Madla: lamang na linawin, ang porsiyento sabi ni ito ay isang bagay tungkol sa mangyari, ang i para sa integer, at ang backslash n - Lauren CARVALHO: Means? Sino ang nakakaalam kung ano ang ibig sabihin ng backslash n? Bagong line, oo. Mismong. Lucas Freitas: Maaari mong isipin ng n bilang bagong linya. Lauren CARVALHO: Nice. Madla: Ano ang bilang na gitling gitling [hindi marinig]? Lucas Freitas: Bilang ng minus minus ay ang parehong bagay bilang plus plus, ngunit sa halip ng pagtaas, ito ay mababawasan ng 1. Lauren CARVALHO: Anumang nang higit pa habang loop katanungan? Walang? Oh, kami ay dapat kang na nilaktawan na. Ito ay isang do habang loop. Tunay na katulad ng isang habang loop maliban sa kasong ito sinusuri namin ang kundisyon matapos ang code na ito sa katawan ng loop executes isang beses. Kaya maisagawa namin ang code unang kahit na ano. Pagkatapos suriin namin ang kundisyon, gawin itong muli kung ang kalagayan ay totoo. Makikita mo ang iyong sarili gamit ito kapag ka humihingi ng input ng user. Dahil palagi ka ng pagpunta sa mayroon sa hilingin sa isang beses, at pagkatapos ay depende sa kung ano ang pag-input ng user ay, maaari mong i- reprompt at magtanong muli at muli kung ang input ay hindi kung ano ang iyong inaasahan ito upang maging. Madla: Kaya ito ay tulad ng isang form para sa mga tao upang punan. Lauren CARVALHO: Oo, eksakto. Makikita mo ang, sa palagay ko, sa iyong pinakaunang Pset, ikaw ay pagpunta sa may upang gumamit ng isang do na rin loop upang mangolekta input mula sa user. Madla: Depende sa sitwasyon, iyong habang loop ay may posibilidad na tumakbo nang higit pa madalas kaysa habang loop, tulad ng sa pamamagitan ng isa o ng isang bagay? Lauren CARVALHO: Kung ito ay ang eksaktong - Lucas Freitas: nila dapat palaging tumakbo ang eksaktong halaga ng beses na kayo Gusto ito upang tumakbo. Tulad ng ginagamit namin gawin habang dahil kami talaga Nais upang makuha ang input ng hindi bababa sa isang beses. Sa habang loop, minsan hindi mo nais na upang isakatuparan ito sa lahat kung ito ay hindi ang kaso upang maisagawa. Kaya ito ay depende sa disenyo. Ibig kong sabihin, maaari mong gawin alinman sa paggamit habang o habang hangga't iyong code gumagana na ito ay dapat na gawin. Lauren CARVALHO: Ngunit gagawin ko palagay ang sagot sa iyong tanong ay malamang na oo. Ipagpalagay natin na ang kundisyon ay hindi totoo. Sa isang kaso gusto ito tumakbo nang isang beses, at isa pang kasong ito ay tumakbo zero ulit. Kaya, oo. Anumang higit pang mga tanong? Oo? Madla: Maari ang kundisyon loop maging isang para sa loop sa mga tuntunin ng isang variable ng iba pang mga kaysa [hindi marinig]. Lauren CARVALHO: Oo, Maaari itong maging kahit ano. Marahil para sa mga nagsisimula Psets, mo ay hindi magkakaroon upang makaharap kasong iyon, ngunit Talagang maaari itong maging kahit ano. Lucas Freitas: Sa tingin ko tapos na kami dito. Lauren CARVALHO: Sigurado namin? Walang? Lucas Freitas: Mga Loop? Oo. Lauren CARVALHO: Hindi namin ay dapat na. Oh, kami ay tapos na may mga loop. OK. Talaga, dahil nagsi-uusapan natin kaya magkano, sabihin talagang lahat mag-navigate sa ibabaw sa study.cs50.net/conditions. At ka pagpunta upang mag-navigate pababa sa widget ang problema. Well, talaga, habang ang mga tao ay nakakakuha ng sa set up na, ang CS50 Pag-aaral ay pagpunta sa maging isang tool na pita iyong TFs gamitin upang maghanda para sa mga seksyon at na Maaaring gamitin mo guys kung miss ka na seksyon. Ito ay pagpunta sa maglaman ng isang bungkos ng mga slide, ilang mga tip at trick para sa bawat topic, at ilang mga problema kasanayan may solusyon. Bakit hindi lahat ng tao tumagal lamang ng isang hitsura sa problemang ito dito mismo. Ako ng paumanhin, ako ay dapat na mapaalalahanan mga tao na magdala ng laptop ngayon. Ngunit kung wala kang laptop, na OK lang. Maaari mo lang mag-lista na ito pababa sa isang piraso ng papel o titingin sa balikat ng iyong kapwa. Subukan at magsulat ng isang programa Hayaan na prompt ng gumagamit upang maglaan ng hula, ang average na bilang ng mga bata sa bawat pamilya yunit sa Estados Unidos. Numero Iyon ay 2, sa pamamagitan ng ang paraan, tulad ng sa iyo ang maaaring makakita mula sa mga halimbawa. Gusto naming i-print ang average na bilang ng mga anak ng bawat pamilya sa US, pagkatapos namin gustong ano? Gusto naming mangolekta ng input mula sa user. At pagkatapos ay depende sa kung ano ang gumagamit ng input ay, ka ng pagpunta sa i-print out alinman ito ay tama o ito ay hindi tama. At ang napaka-unang bagay na ikaw ay makita, kung na-click mo ang maliit na arrow sa sa ibaba ng widget problema ay isang kawili-lista ng ilang pseudocode. Kaya hindi pa naka-programa. Lamang ang nakukuha mo ang iyong mga mga ideya sa pagkakasunud-sunod. Gusto ba ng sinuman upang matulungan Lucas makabuo ng mga karapatan pseudocode para sa problemang ito? Lucas Freitas: Ano ang unang bagay na na marahil kami ang dapat gawin dito? Ano ang gagawin mo guys sa tingin? Madla: [hindi marinig] Lucas Freitas: Oo, ang OK. Kaya, pag-print. Sabihin lang ang mga naka-print na ito average bilang ng mga tao? OK. I-print tanong, sabihin nating. Pagkatapos ko i-print ang tanong na ito, ano ang dapat kong gawin? Madla: Kumuha ng input. Lucas Freitas: Kumuha ng input. Ano pa? Madla: Kundisyon. Lucas Freitas: Kundisyon. Lauren CARVALHO: Ano ang na kondisyon ng pagpunta sa maging? Madla: Ang bilang ng [hindi marinig]. Lauren CARVALHO: Mag-right. Lucas Freitas: Kaya kung ano ako ng pagpunta mag-check in ang kundisyon? Madla: Kung katumbas ito ng 2. Lauren CARVALHO: Kung katumbas ito ng 2. Mismong. Lucas Freitas: Mayroon bang anumang bagay bagay na dapat kong gawin? Madla: Bilangin. Lucas Freitas: Kaya kung ito ay katumbas ng 2, sabihin nating - hayaan sumulat sa akin lang kung input ay katumbas ng sa 2, pagkatapos ay kung ano pupuntahan ko upang gawin ay i-print ang tama. At pagkatapos ay iba, pupuntahan ko mag-print ng hindi tama. Ano pa? Walang? Lauren CARVALHO: Kaya mo Maaaring mag-click sa - ang lahat ng tao mayroon down na ito? Lucas Freitas: ba gawin itong kahulugan? Kaya subukan na ang code na ito ngayon hayaan. Lauren CARVALHO: Kung nag-click ang maliit arrow, ito aktwal na sine-save ng iyong pseudocode, na kung saan ay talagang kapana-panabik. At maaari kang magsagawa ng mga komento sa kung gusto mo lang upang ipaalala sa iyong sarili ng ano ang gagawin. Lucas Freitas: Kaya halimbawa, unang Pupunta ako sa i-print ang pinag-uusapan, kaya paano ako pagpunta sa gawin iyon, talaga? printf. Kaya printf, at ang pinag-uusapan ay ang average na bilang ng mga bata sa bawat pamilya sa US. Pagkatapos Pupunta ako upang makakuha ng input mula sa user. Kaya paano ko gawin iyon? Madla: Kumuha ng int. Lauren CARVALHO: GetInt. Lucas Freitas: OK. Kaya unang magpahayag, tama? int, sabihin tawagan ni ito n katumbas GetInt. At ngayon ang kundisyon. Kaya hayaan mo akong sabihin na pupuntahan ko Hanggang dito check sagot. Kaya una, kung input, na n, ay katumbas ng upang - paano ako pagpunta sa magsulat na? Madla: pantay pantay. Lucas Freitas: Perpekto. Kaya n. At mapansin na gagawin ko ang isang puwang, katumbas, katumbas, na espasyo, totoo. At ngayon kung ano ang dapat kong gawin? Isang bagay na napakahalaga para sa estilo. Ang kulot tirante. At pagkatapos ay ako pagpunta sa i-print. Paano ko i-print? printf. Madla: Puwede ito ay naka-capitalize? Lucas Freitas: Hindi. Ito ay dapat na maging lahat ng maliit na. Kaya na ay tama. Gusto ito makasapat para sa printf statement, o ako ay nawawala ako ng kahit ano? Madla: Bagong linya. Lucas Freitas: Bagong linya, oo. At iba ngayon. Madla: Mayroon bang isang puwang pagkatapos ng printf, o hindi? Lauren CARVALHO: dapat namin suriin ang gabay sa estilo. Madla: Hindi ito dapat nasa. Lucas Freitas: hindi kailanman dapat maging, OK. Kaya tao, printf, "Iyon ay hindi tama." Lauren CARVALHO: Oops, ang iyong mga quote. Lucas Freitas: OK. Ano pa? Ito ba ang hitsura magandang? Lauren CARVALHO: Maghahanap subukan namin ito? Lucas Freitas: Oo, magpatakbo ng ito ipaalam. Kaya kino-compile, at ito Mukhang na ito gumagana. Subukan ang dalawang bata Hayaan ang. Iyon ay tama. At ni tumakbo muli ngayon hayaan, ngunit sa halip ngayon ng paglalagay ng dalawang bata, sabihin sabihin na pupuntahan ko ilagay tulad ng limang. Iyon ay hindi tama. Kaya tila na ito gumagana. Lauren CARVALHO: Bakit hindi ipakita sa iyo ang mga ito kung ano ang mangyayari kung inilagay mo ang isang bagay kakaiba, tulad ng ilang mga titik. Lucas Freitas: Oh, oo. Rin suriin na Hayaan. Paano kung ang user ay sumusubok na gulo sa iyong programa, at sila lamang magsulat, hindi ko alam kung dalawa. Ito ay pagpunta sa sabihin ang muling pagsubok. Lauren CARVALHO: Kaya GetInt ay humihingi sa kanila upang subukang muli. Hindi namin kailangang mag-ingat ng na ang ating mga sarili. Lucas Freitas: Oo. Kaya maliban kung talagang ko bang ilagay ang isang numero, ito ay pagpunta sa panatilihin ang humihiling sa akin upang subukang muli. Madla: Paano mo patakbuhin ito? Lucas Freitas: I-click lamang pindutan na star na ito. Lauren CARVALHO: Dapat mong pumunta up. May pumunta ka. Lucas Freitas: bituin Ang pindutan mula doon. Oo? Madla:-prompt ba [hindi marinig] na may masyadong decimal numero? Lauren CARVALHO: Naniniwala ako'y ito. Lucas Freitas: Kung ano? Lauren CARVALHO: Kung nag-type sila sa isang decimal na numero, sa palagay ko ito ang nangyayari upang i-prompt. Lucas Freitas: Sabihin makita. Lauren CARVALHO: Dahil ang hindi ito isang int. Lucas Freitas: Oo. Lauren CARVALHO: Kaya ito ay hindi isang int, Maging int hihilingin sa iyo upang subukang muli. Madla: Kaya kung saan sa ang code na iyon ay magiging ang decimal lugar na prompt ang gumagamit na mayroon sila upang ipasok ang na partikular na isang integer? Lauren CARVALHO: GetInt ay ang tunay paggawa na para sa amin. Madla: Hindi, ako sabihin kung gusto naming upang ipasok ang [hindi marinig] Lucas Freitas: Maaari mong sabihin tulad ng average bilang ng mga bata sa US. Hindi ko alam. Maaari naming sabihin, halimbawa, "Mangyari lamang input ng isang integer. " Lauren CARVALHO: Ang isang integer katumbas upang ang average na bilang. Ibig kong sabihin, ito ay lamang kung paano mo ito salita, tama? Lucas Freitas: Oo. Ito ay hindi bahagi ng aktwal na coding. Ito ay higit pa sa tulad ng kahit anupamang ka pagpunta sa nais na magsulat sa iyong programa. Madla: Paano tumakbo na namin ito kung ito ay talagang sa gedit [hindi marinig]. Sa halip ng pagpindot-play? Lucas Freitas: habilin namin compile muna ito. Maaari naming gawin ito sa pamamagitan ng paggawa make at ang pangalan ng file. At pagkatapos ay upang patakbuhin ito, gagawin namin tuldok slash at ang pangalan ng program. Madla: hulaan ko kung ano ang nilalayong ako ay kung Nais namin ang programang upang tumugon sa kanilang mga maling, hindi wastong entry, hindi mo dapat ilagay sa - Lucas Freitas: Kami ay hindi magagawang upang gawin iyon dahil ang code na ito sabi retry ay mula Kumuha ng int na isang function na ay naka-ipinatupad para sa amin sa pamamagitan ng CS50 library, at dahil na-ipinatupad doon, namin maaari hindi lamang [hindi marinig]. Lauren CARVALHO: Kung hindi ka gumagamit GetInt, pagkatapos ay maaari mong gawin iyon. Lucas Freitas: Oo. Ngunit kung gumagamit ka ng GetInt, hindi mo magagawa. Anumang iba pang mga katanungan? Madla: Puwede mo na nawala na may katulad GetFloat at pagkatapos ay magagawang upang ilagay ito sa isang decimal? Lucas Freitas: Oo. Madla: ang OK. Pagkatapos ay maaari mo lamang input float isang katumbas - Lauren CARVALHO: Oo. Eksaktong pareho maliban sa isang float sa halip ng isang int. Lucas Freitas: ilagay lang ito dito at pagkatapos ay GetFloat doon. Madla: Bilang habilin mo makita o nakita - Lauren CARVALHO: mayroon kami hindi pa nakuha doon. Madla: - paggawa ng hindi pagkakapantay o pagkakapantay-pantay sa sa kamay ay hindi [hindi marinig] Madla: Ano ang ibig sabihin ng semicolons? Lauren CARVALHO: semicolon Ang lamang Ibig sabihin nito na ang pahayag na ito ay kumpleto, at kami ay pagpunta sa pumunta papunta sa susunod na slide. Madla: Kaya ito ay kinakailangan sa bawat panahon? Lauren CARVALHO: Oo. Well, OK, kaya hindi para sa mga kondisyon, dahil hindi nila encapsulating isang bagay. Kaya talaga kung ang isang bagay ay nagdudulot mong pagkatapos ay lumikha ng isang kulot suhay bloke, huwag maglagay ng tuldok-kuwit sa dulo. Lucas Freitas: Ngunit lahat ng bagay tao, oo. Kapag natapos mo ang isang pahayag, ilagay ang tuldok-kuwit. At kung makalimutan mo semicolons, ang tagatala pupuntahan magalit sa iyo, at tapos ka ng pagpunta sa may subukan upang ayusin ito. Lauren CARVALHO: Kung ko bang ilagay ang isang tuldok-kuwit dito, na maaaring ihinto ito, at ako Gusto hindi kailanman makakuha upang maisagawa kung ano ang sa loob, sa pamamagitan ng ang paraan. Kaya ito ay isa sa mga karaniwang mga bug. Madla: Palaging e-execute. Lauren CARVALHO: Oo. Sa kasong ito, kami ay palaging isakatuparan kung ano ang nasa loob. Madla: Ang iyong estilo [hindi marinig] maglakip na para sa iyo, naisip. Lauren CARVALHO: Oh, iyan ay totoo. Madla: [hindi marinig] single linya bagay [hindi marinig] Madla: Oo? Madla: Maari mayroon kang maramihang input sa isang linya? Kaya tulad ng maaari mong hilingin sa mga gumagamit upang i-print ang dalawang bagay? Lauren CARVALHO: Hindi gumagamit ng - Lucas Freitas: Hindi. Sabihin natin na nais ko rin upang makakuha ng mga ito integer m. Kailangan kong gawin ito sa ibang linya. Madla: Kung ikaw ay upang tumakbo na, kung paano [hindi marinig]? Ito i-print ang prompt doon [hindi marinig] at pagkatapos ay nais mong magpasok ng isa at - Lauren CARVALHO: Well, patakbuhin ito. Ibig kong sabihin, walang tigil sa amin mula sa kung lamang na tumatakbo ito at nakikita kung ano ang mangyayari. Lucas Freitas: Sa tingin ko ito pagpunta sa complains sa amin dahil hindi namin ginagamit - Lauren CARVALHO: Oops. Lucas Freitas: Ito nagreklamo sa amin pakanan ngayon dahil hindi namin ginagamit ito variable, ngunit kung ginawa ko, halimbawa, n ay katumbas ng katumbas sa, at m ay katumbas ng ay katumbas ng sa, pagkatapos ay kung ano ang habilin mangyari sa kasong ito? Ano ang gusto gawin sa programang ito? Madla: lang ako nagtataka kung paano ito gagawin - Lamang Nais ni niya: Lauren CARVALHO malaman sa hitsura nito tulad ng, sa palagay ko, tama? Kaya kinuha ito ng isa sa kanila, at pagkatapos ay ito kinuha ang pangalawang isa. Sa tingin ko dapat naming ilipat sa, dahil mayroon kaming isa nang higit pa slide show upang pumunta bago - ang gusto mong makuha ang matematika? Lucas Freitas: Oo, matematika. Lauren CARVALHO: Bigyan sa akin isang segundo lang. Mayroong ilang iba't ibang mga de-numerong mga variable sa C. de-numerong data sa C maaaring inuri sa iba't ibang mga uri, at ang mga ito ay ang mga bago makakakuha ka tingnan ang pinakamadalas. At int ay isang buong numero. Hindi ka maaaring magkaroon ng anumang mga desimal. Sa Appliance, ito ay tumatagal ng 32 bits upang i-imbak sa isang int. Ang isang float ay maaaring magkaroon ng decimal. Din Tumatagal ng 32 bits upang i-imbak isang float sa Appliance. Ang isang double ay isang numero na may decimal puntong iyon ay tumatagal ng 64 bits upang i-imbak ito, na nangangahulugan na maaari kang magkaroon lamang mas mataas na katumpakan dahil maaari kang magkaroon ng higit pa - ano ang gagawin mo pangalanan ito? Lucas Freitas: Oo, na mas. Lauren CARVALHO: Higit pang mga lugar pagkatapos ng decimal point. At mahabang mahaba ay isang buong numero na tumatagal ng 64 bits upang sugat ito sa Appliance. Lucas Freitas: Kaya maaari itong maging mas malaki kaysa sa ints ay maaaring maging. Lauren CARVALHO: Ang bagay tungkol sa data mga uri sa C ay na sabihin mo sila kung ano uri ng data maaari mong i-store sa iyong mga variable. Sabihin mo sa mga ito kung paano mo ito gamitin variable sa iyong programa. Ito ay napakahalaga upang subaybayan lamang ng kung ano ang uri ng data na iyong ginagamit, at kung mo kailangang cast mula sa isang uri ng data sa isa pa, siguraduhin na alam mo eksakto kung ano ang mangyayari kapag na paghahagis maganap. At makikita mo ang isang halimbawa sa ibang pagkakataon sa sa mga slide ng isang pagkakamali na maaaring maganap. Hayaan ang kumuha ng isang pagtingin sa ilang mga matematika sa C at talaga maingat sa tingin, hulaan ko, tungkol sa kung ano ang nangyayari sa kung kailan ito matematika ay nagaganap. Sa napaka unang linya, kung ano ang nangyayari kapag Ipinahahayag ko x? Madla: Ikaw ay nagbibigay-daan sa x na maging isang bagay? Lauren CARVALHO: Oo. Well, talaga ako nagtatanong sa operating sistema para sa 32 piraso ng memorya, i-right? Sa aling ang maaari kong iimbak sa isang int, at Pupunta ako sa tumawag na int x. Lucas Freitas: talaga pagpunta sa memory at paghahanap ng isang lugar na may 32 bits at sinasabi, hey, gusto kong puwang na ito, at ito ay pagpunta sa ay tinatawag na x. Kaya ikaw lamang halos pagkatuklas isang kahon sa iyong memorya upang mga halaga ng store para sa x. Lauren CARVALHO: At pagkatapos ay i-initialize ko x, na nangangahulugan na iimbak ko lang ang halaga ng 2 sa na lugar, na tipak ng memorya, na hiniling namin sa operating sistema para sa. At pababa dito kung anong ginagawa namin ay talaga kami deklarasyon at sa halip ng Sinisimulan y sa isang linya sa dalawang linya tulad ng ginawa namin dito, na kung saan ay isang perpektong fine din, Kami ay pagdaragdag ng 1 sa x, at kami ay nag-iimbak ng na halaga sa y. Lucas Freitas: Kaya talaga kung ano ito line gumagana, nahahanap nito ngayon ng isang kahon para sa y, at pagkatapos ay i-halaga nito, ang bagay na ka pagpunta sa ilagay sa loob ng kahon, ay pagpunta sa maging ang halaga ng x plus 1. Kaya mayroon itong kahon na ito para sa y. Ito ay nakakakuha ng halaga ng mga x, tinitingnan dito, at makita na ito ay 2. Ilagay ninyo roon, plus 1, kaya Inilalagay nito ang isang 3 doon. Ba na magkaroon ng kahulugan? Kaya gusto y maging 2 sa kasong ito. Lauren CARVALHO: Ang lahat ng karapatan, cool. Nakakita kami ng ilang mga karagdagan, kaya ipaalam sa tingin ni ngayon tungkol sa paghahati sa C. Narito ako deklarasyon at Sinisimulan ang isang float tinatawag na sagot at paghahati 1 sa pamamagitan ng 10, at pagkatapos ay ako nagpi-print out ang kasagutan sa dalawang decimal place. At tandaan dito, sa aking printf pahayag, kapag ko nais na i-print ang isang bagay sa dalawang decimal place, 0.2% f ay kung ano ang gusto kong gamitin. Kaya ang punto 2 ay lamang na nagsasabi Kailangan ko ng dalawang mga lugar pagkatapos ng decimal na-print mo. Ngayon, kung ano ang nangyayari sa mangyayari kung nagpatakbo ako ang code na ito? Kahit sino ay may isang ideya ba? Ano ang gusto i-print? Lucas Freitas: Ano ang mga kami na umaasang makakuha. Lauren CARVALHO: Ano ang gagawin gusto namin,? una sa lahat Lucas Freitas: [hindi marinig] Lauren CARVALHO: 0.1, oo. Ngunit kung ano ang i-print out? Madla: [hindi marinig] Lauren CARVALHO: Well, walang, talaga. Ito ay kung ano ang pinag-uusapan ng ako tungkol sa kung bakit mo kailangang magtago maingat track ng ang mga uri ng data. Kaya, kung anong uri ng data ay ito? Ay isang int, tama? Walang decimal lugar. 10 ding isang int. Walang decimal lugar. Kung hahatiin ko sa isang int sa pamamagitan ng isang int, nakakatanggap ako ng isang int na kung saan ay hindi 0.1, dahil ints hindi maaaring magkaroon ng decimal place, pero 0 lang. Dahil sa isang int lang truncates off ang decimal place. Lucas Freitas: Kaya't tuwing ginagawa mo mga pagpapatakbo sa ints, ka ng pagpunta sa makakuha ng isang int bilang sagot. Kaya talaga, kung ano ang computer ay ang paggawa, ito ay divides 1 sa pamamagitan ng 10, at ito ay makakakuha ng 0.1. Ngunit pagkatapos ito ay tulad, maghintay, ito ay dapat maging isang integer, kaya mo lamang huwag pansinin ang 0.1, kaya ngayon 0 lang. Lauren CARVALHO: Kaya kapag i-print ko ito out, nakakatanggap ako ng 0.00 kaysa sa 0.10. Lucas Freitas: ba na magkaroon ng kahulugan? Lauren CARVALHO: Iyon uri ng kapus-palad, tama? Lucas Freitas: Kaya kung paano namin maaaring ayusin ito? Lauren CARVALHO: Sabihin subukan at ayusin iyon. Narito ang isang halimbawa ng kung saan ako talaga paghahagis ng 1 at ang 10 sa kamay. Kaya ngayon, 1 ay hindi na isang int. 1 ay isang float. Sa pamamagitan ng ang paraan, ito ay lamang ang syntax para kapag gusto mong i-cast mula sa isa uri ng data papunta sa iba. Maaari mo lamang ilagay ang uri ng data sa panaklong at mayroon na pangunahan lamang ang halaga na kayo ay paghahagis. Kaya dito, ako paghahati ng float sa pamamagitan ng isang float upang makakuha ng float sagot. At oo, ito gagawin sa katunayan print 0.10. Ba na magkaroon ng kahulugan? Lucas Freitas: Kaya uri ng paghahagis lamang nagko-convert mula sa isang uri sa iba. Kaya float 1 ay talagang 1.000. Hindi eksaktong ito, ngunit ito ay isang bagay may decimal place na ay talagang 1. Ba na magkaroon ng kahulugan? Oo? Madla: Paano kung ginawa mo ng float sagot Kapantay 1.0 na hinati sa 10? Lauren CARVALHO: talaga ka ng pagpunta upang makita na sa susunod na slide. Iyon lang talaga ang aming napaka susunod na slide. Ito ay talagang isang nicer kaysa type paghahagis, sa tingin ko. Kaya ang dalawang mga kamay sa pamamagitan lamang ng likas na katangian ng katotohanan na sila may decimal place. Oo? Madla: Paano kung ginawa mo [hindi marinig] hinati sa 10? Lauren CARVALHO: talagang isang float hinati sa pamamagitan ng isang int aktwal na nagbibigay sa iyo ng float, nang sa gayon ay gagana fine. Maghintay, ang lahat ng tao na maunawaan na ito? Dahil ito ay magiging isang tunay na sang-ayon sa Pset1, talaga. Oo? Madla: ma mabilis ka lang pumunta sa ibabaw ng pulang bahagi? Lauren CARVALHO: Ang mga pulang bahagi, oo. Lucas, ang gusto mong? Lucas Freitas: OK. Kaya tandaan na ang porsiyento ay isang placeholder. Ito ay tulad ng isang blangko ang puwang. Kaya ni subukan upang maunawaan ang lahat ng bagay hayaan na ang nangyayari sa dito. Porsyento na nangangahulugan na ito ay isang placeholder. Pagkatapos mayroon kang ang f, na nangangahulugan na ang ito placeholder ay para sa isang float. Ang huling bagay na mayroon kami dito ay isang 0.2, na nangangahulugan na gusto kong magkaroon ng dalawang decimal place para sa float. Kung lamang nagkaroon ako ng% f, sila ilagay ito ng grupo ng mga decimal na mga lugar. Kaya ko maaaring ilagay lamang 0.2 o 0.1 o 0.5, o kahit ano, at ito ay pagpunta sa ilagay na bilang ng mga decimal na mga lugar. Ang tanging bagay ay kung inilagay mo tulad ng 0.100 o .1,000, ito ay hindi tunay na pagpunta sa ilagay ang lahat ng mga decimal na mga lugar sapagkat ito ay walang sapat na memorya upang magkaroon ng katumpakan na. Anumang iba pang mga katanungan? Oo? Madla: Kaya float ay nagbibigay-daan lamang mong lagpasan integer? Lucas Freitas: Oo. Lauren CARVALHO: Well, isang float lamang ay nagpapahintulot sa iyo na magkaroon ng decimal place. Lucas Freitas: Ito ay nangangahulugan lamang na sa iyo ngayon ay maaaring magkaroon ng decimal numero. Madla: Bakit kami ay kailanman gumamit ng integer? Lucas Freitas: Bakit ginagawa gumamit ka ng integer? Siguro kung gumagamit ka ng pagbibilang 0-10, nais mong gamitin ang aktwal na isang integer. Hindi mo na kailangang gumamit ng float. Sa ilang sitwasyon, hindi mo gusto mayroon upang aktwal na - Lauren CARVALHO: Siguro sa iyo ayaw decimal. Lucas Freitas: Siguro hindi mo gusto nais na gumamit ng float. Lauren CARVALHO: Ang iba pang bagay ay, tandaan, parehong maglagay ng float at isang int tumagal ng 32 bits upang i-imbak ang mga ito, at siguro hindi mo nais na sayangin bits sa decimal place. Lucas Freitas: Oo. Kaya tulad ng, sa tingin lamang tungkol dito. Mayroon kang 32 bits para sa parehong mga isang int at isang float. Para sa isang int, ang lahat ng mga 32 bit pumunta sa integer bahagi. Kung gumamit ka ng float na may 32 bit, mo Mayroon bahagi ng memorya na ginagamit para sa bilang, para sa buong numero, at ang iba pang mga bahagi na ginagamit para sa decimal place. Kaya ibig sabihin nito ay na hindi ka maaaring makakuha sa napakalaking mga numero na may mga kamay dahil ang float ay gumagamit na ng maraming memory para sa decimal place. Oo? Madla: Iyon unang sagot, kung ano ang eksaktong ay ito ginagawa? Nagtatakda ito ang halaga ng float katumbas sa na placeholder sa na maaari mong isipin ito sa susunod na linya? Sinasabi nito float sagot. Lucas Freitas: Oo. Kaya, ang ibig sabihin ng float sagot na makakakuha ka ng ngayon ng kaunti bucket sa memory na pagpipigil ng float, at na ang nangyayari na tinatawag na sagot. Kaya na kung ano ang ginagawa ng float sagot. At pagkatapos ay sabihin sa iyo na nasa loob ng ito, ikaw ay pagpunta sa ilagay ang resulta ng ito. Kaya ka pagpunta sa gawin 1.0 na hinati sa pamamagitan ng 10.0, makakakuha ka ng 0.1, at pagkatapos ay ilagay mo na sa loob ng sagot. Lauren CARVALHO: Kaya sa isang linya, kami ay deklarasyon at Sinisimulan ito ng float tinatawag na sagot. Lucas Freitas: nang kawili-wili, bagaman ito ay lamang isang linya, ito ang ginagawa maramihang pagpapatakbo. Ito ay lamang ng isang paraan ng C pagpapaalam gumamit ka ng mas kaunting code. Ito ay ang parehong bagay bilang ang tatlong bagay operator, kung paano maaari mo lamang gawin ng [Hindi marinig] sa isang linya. Talaga Ito ay ginagawa ang parehong bagay bilang paggawa ng float sagot, tuldok-kuwit, at pagkatapos ay katumbas ng sagot na ito, ngunit sa halip ng paggawa ng gagawin mo dalawang linya para sa iyon, ito ay tulad ng isang shortcut. Oo? Madla: Kaya kung pinatakbo mo ito, magiging 0.10? Lucas Freitas: Oo. Oo? Madla: Ay sagutin ang aktwal na code, o isa lamang ang pangalan? Lauren CARVALHO: Ito ay ang tunay na code. Ito ay kung ano kami ay pagpunta upang pangalanan ang aming variable. Madla: Kaya lamang ng pangalan [hindi marinig]. Lauren CARVALHO: Oo. Kaya kong sinabi ng float x ay katumbas ng 1.0. Lucas Freitas: bagay ay na ang pangalan ng variable ay isang bagay na gamitin mo. Mahalaga para sa iyo. Para sa mga aktwal na programa, ang tanging bagay na mga bagay ay ang halaga na iyong mayroon sa loob ng bucket. Ang dahilan kung bakit mayroon kang mga variable at mga pangalan ng variable ay kaya gusto mo alam kung ano ang iyong pagharap sa, tulad ng kung anong uri ng data ikaw ay pag-access sa isang pagkakataon. Ngunit para sa code mismo, kung tawagan ka ito sagutin o tanong o anumang bagay, halos, hindi mahalaga. Hindi mahalaga. Hangga't ikaw ay pare-pareho sa bawat pangyayari ito at kaya tumawag ka ito ibang bagay. Oo? Madla: Gawin ang mga variable lagpasan ang function? Tulad ng kung ikaw ay lumikha ng isang bracket [Hindi marinig], maaari mo lamang [Hindi marinig] sagutin muli? Lauren CARVALHO: Hindi. Madla: [hindi marinig] Lauren CARVALHO: Hindi. Iyon ay magiging nasa labas ng saklaw ng partikular na variable. At talagang, na uri ng kawili-wili, dahil kapag mayroon kami mga bagay tulad ng mga loop o mga kung kundisyon, kung ipinahayag mo sa isang variable sa loob ng isa pang hanay ng mga kulot tirante, umiiral na ito ay talagang lamang sa loob ng mga kulot tirante. Madla: Isa huling tala tungkol sa ang [hindi marinig] sa kamay. Bakit gusto mo mang gamitin ints? Ito ay higit pa sa isang gilid na tala sa anumang bagay, ngunit ang iyong computer ay makabuluhang mas mahusay sa paghawak ng mga ints kaysa ito ay sa pag-asikaso sa kamay. Ito ay tulad ng isang order ng mas mabilis magnitude. Kaya kung mapangasiwaan namin lamang lamang sa kamay, mga bagay ay magiging marami mas mabagal. Lauren CARVALHO: talaga, parang doon upang maging isang problema sa kamay. Lucas Freitas: Kind ng mga dahilan para sa na iyon, maaari mong isipin, ay kung paano sa binary maaari mong kumatawan integer sa pamamagitan ng paglalagay ng 0 at 1 ni. Lauren CARVALHO: Iyon ang susunod na bagay. Lucas Freitas: OK. Kahanga-hanga. Lauren CARVALHO: lamang pindutin nang matagal-iisip na iyon. Lucas Freitas: OK, idedetalye ko sabihin mo sa ibang pagkakataon. Lauren CARVALHO: Bago kami makarating sa kung ano Ay lamang na sinasabi Lucas, operator higit na kahalagahan. Ito ang bait. Ikaw guys pa ito sapat. Kaya, lamang kung ang isang bagay ay nasa mga panaklong, ito ay unang mangyari. Ito ay pagpaparami tumatagal ng higit na kahalagahan higit sa rito, palabawasan, mga bagay tulad na. Kaya talaga, ang sinuman na nais lamang upang sabihin sa akin kung ano ang numero isa talaga sinusuri upang? Madla: 27. Lauren CARVALHO: 27? Oo. Lucas Freitas: Hayaan akong bigyan candies sa mga tao. Lauren CARVALHO: Lahat ng karapatan. Paano ang tungkol sa numero ng dalawang? Paano ang tungkol sa numero ng dalawang? Madla: 22. Lauren CARVALHO: 22, oo. Hindi ko alam kung sino ang nakuha ko na. Numero ng tatlong? Madla: 10. Lauren CARVALHO: 10, oo. Cool. Kaya modulo. Lucas, ang gusto mong ipaliwanag modulo? Lucas Freitas: Modulo ay ang operator na ito na ay talagang lubhang kapaki-pakinabang para sa isang tungkos ng mga problema. Kung gagawin ko 55 modulo 10, ano ang ginagawa nito ito sabihin nating na gusto kong hatiin ang 55 sa pamamagitan ng 10. Ano ang gagawin ko? Ito nararamdaman tulad ng kung ako ay talagang lamang paggawa ng division, ano ang unang pagkakataon na Nakatanggap ako ng integer? Madla: 5. Lucas Freitas: 5. At pagkatapos ay ang natitira ay 5, tama? Kaya ito ay tulad ng 5 beses 10 plus 5. Talaga, ano ang modulo ay, sinusubukan ito sa hatiin ang bilang na ito sa pamamagitan ng isang ito, at nakikita ito ng kung ano ang natitira ng division. Lauren CARVALHO: Kaya ito lamang nagbabalik ang natitira. Kaya bilang isa ay kung ano? 5. Numero ng dalawang? Madla: 3. Lauren CARVALHO: 3. Numero ng tatlong? 0. At apat ay 1. Mismong. Lucas Freitas: Simple, tama? Lauren CARVALHO: Bakit hindi namin laktawan ito dahil lamang hindi namin talaga magkaroon panahon, at mga tao tila upang maunawaan. Kaya narito ang Lucas noon ay pakikipag-usap lamang tungkol sa. Lucas Freitas: Ang isa pang dahilan kung bakit ko ang maaaring gamitin ng ints sa halip ng sa kamay ay na sa kamay ay napaka imprecise. At kung bakit ay sila imprecise? Sinabi ni David na kinakatawan ang isang integer, halimbawa, gumagamit kami ng 0 at 1 ni, i-right? At pagkatapos mo talaga gawin ang pagpaparami, gawin ang lahat ng mga mga pagpapatakbo upang malaman kung ano ang decimal na numero mayroon kang sa halip na ang binary. Anong mangyayari ngayon kung susubukan ko upang ilagay ang mga decimal point? Talaga, halimbawa, kung mayroon akong ang numero tulad 3.33333? Ito nararamdaman tulad ng 10 mahigit 3. Paano ako pagpunta upang i-imbak ang lahat ng mga 3 ay na mayroon akong matapos na? Ito ay talagang mahirap, i-right? Hindi mo maaaring lamang sabihin ang computer, hey, mayroon akong 3, at pagkatapos mong gawin na magpakailanman. Talaga ang computer ay hindi sapat na smart para sa ito. Kaya talaga ang lahat ng iyong computer ang ginagawa ay na ito sinusubukan upang ilagay ang bilang maraming mga digit bilang ito maaari hanggang sa memorya na mayroon ka. Kaya sabihin nating na ito pupuntahan sabihin 3.3333, at iyon ito. Kaya ito ay hindi magagawang upang aktwal na ipahayag tumpak kung ano na float ay. Lauren CARVALHO: Mayroon kaming tiyak na numero ng mga piraso, na nangangahulugan na hindi bawat decimal numero ay magiging makakapag-katawanin tumpak. At kaya sa halimbawang ito, kung tayo ay nagpi-print out 0.1, hindi namin ngayon ang pag-print out 20 mga lugar. Lucas Freitas: Tulad ng ako ay nagsasabi sa ka guys, maaari mong ilagay ang anumang mga numero. Ngunit kung ginawa mo lamang ang dalawang lugar, gusto mo makakuha ng 0.10, ngunit kung inilagay mo ang 20 mga lugar, ito ay pagpunta upang ipakita sa iyo ng isang buwig ng 's dahil ito ay kung ano ang maaari kang maglagay sa memory, tama? Ngunit dito mismo, hanggang sa ang 0, at pagkatapos ay ilagay ito sa isang lang tungkos ng mga random na numero. Ito ay uri ng tulad ng ilang - Lauren CARVALHO: Ito ay dahil kami hindi magagawang upang kumatawan ito decimal tiyak kasama ang numero ng mga bit na mayroon kami. Lucas Freitas: At pagkatapos ay ang computer na ay isa lamang nagbibigay sa iyo ng isang numero ng basura. Ito ay hindi tunay na ang halaga ng numero. Madla: Ito ay mas malapit hangga't maaari itong makakuha ng [hindi marinig] gamit ang [hindi marinig]. Lauren CARVALHO: Kaya ang implikasyon ng ito ay na sabihin nating sa halip ng pagiging 0.100014, kahit ano, kung ano kung ito ay 0.0999 - well, OK. Ni magpanggap Hayaan na ang aktwal na sagot upang ito ay 0.9999999. Iyon ay napakalapit sa 1, subalit hindi ito eksaktong 1. Ito ay 0.99999. Ibig sabihin na kung gagawin ko na 0.999, at nagsumite ko ito sa isang int, nakakatanggap ako ng 0. Hindi ko nakukuha ang 1. Lucas Freitas: Dahil tandaan, paghahagis mula float sa int, mo lamang huwag pansinin ang lahat ng mga decimal na mga lugar. Huwag pansinin ka lamang sa kanila. Walang ganoong bagay bilang rounding up o na pababa kapag pumili ng aktor sa iyo. Talaga, may ito function na ang rounding, na higit na mahalaga, ngunit sa tingin mo lamang na kapag mong gawin typecasting, ito ay lamang pagpunta sa tanggalin ang lahat. Kaya kahit kung mayroon kang 0.99999, ito ay pagpunta upang bigyan 0 lamang kung ka pumili ng aktor [Hindi marinig] isang integer. Lauren CARVALHO: Kaya maging talagang malaman lamang ng mga lumulutang na tuldok sa katumpakan, lalo na kapag nagsimula ka gamitin sa kamay sa Pset1. Subalit ang lakad sa pamamagitan dapat Binabalaan ka ng din iyon. Lucas Freitas: At talagang talaga matapang, halimbawa, kung ginawa ko float sagot 1 ay katumbas ng 1.0 sa ibabaw 10, at pagkatapos ay i-float sagot 2 ay katumbas ng 10.0 sa paglipas ng 100.0. Ang mga ito ay ang parehong numero, tama? 0.1, tama? 1 higit sa 10 o 10 mahigit sa 100. Ngunit ngayon kung sinusubukan kong tingnan ang pagkakapantay-pantay, tulad ng kung sagot 1 ay katumbas upang sagutin 2, siguro ito ay hindi talagang pagpunta upang maging ang parehong bagay. Kaya sa kamay ay uri ng tulad na. Ang mga ito ay tulad ng paggawa pagkakapantay-pantay.