>> [Nagpe-play ng musika]
>> David MALAN: Lahat ng karapatan.
Maligayang pagbabalik.
Ito ay CS50, at ito ay Isang Linggo, ipinagpatuloy.
Kaya isa sa mga dahilan na aming pagpasa sa paligid ng mga teknolohiya tulad ng
Google Glass ay na ang mga ito ay may isang bagay na kilala bilang isang API, isang
Application Programming Interface.
At kung ano ang ibig sabihin nito ay na may mga karapatan file at sa mga tamang
dokumentasyon, maaari mong aktwal na magsulat software para sa kahit na aparato tulad ng mga ito.
>> At kaya kung ano ang mayroon kaming nasa isip patungo sa semesters dulo ay, kung ang isang proyekto
kinasasangkutan ng, sabihin nating, ang Google ay maaaring Glass apela, gagamitin namin makita kung ano ang maaari naming gawin sa
mga tuntunin ng hooking up ka na may ilang mga loaner hardware pati na rin ang
Pampublikong-access API sa gayon maaari mong talagang simulan ang paglikha ng software
na tumatakbo sa parehong na Glass Google.
>> Ang isa pang device na aming na-play may ng late na naisip namin na maaaring maging
masaya sa dulo semestre ay ito maliit na bagay dito.
Ito ay tinatawag na lukso ng Paggalaw, at kung ano ang sa iyo tungkol sa upang makita ay technically isang
advertisement para sa mga aparato, ngunit ito ay makipag-usap sa kung ano ang partikular na
aparato ay may kakayahang.
At ito, masyadong, ay may isang API sa pamamagitan ng kung saan maaari kang sumulat sa software
kontrolin ang iyong sariling computer sa isang paraan masyadong gustuhin ang isang minutong film dito.
>> [Video playback]
>> [END-playback ng video]
>> Kaya ngayon, aparato nangyari ito sa ay ipinatupad bilang isang maliit na USB
connector na maaari mong plug sa iyong computer, ngunit hindi ko mabigla
kung matagal bago kami ay may mga ganitong uri ng teknolohiya sa susunod na batch ng mga PC
mga Mac at sa gayon ay maaari mong, sa katunayan, makipag-ugnayan sa ito sa
isang paraan tulad na.
Sa katunayan, kung ano ang naisip ko na gusto kong gawin, masyadong, ay Nakuha ko up ng isang maliit na demonstration
programa na nagmumula sa software na ito.
Kaya ko na ilagay ang maliit na sensor sa harap ng aking laptop.
>> At bilang maaari mong makita, mayroon napagtanto na ang aking kamay ay doon
pagkontrol ito.
At lahat ng mga application na ito ay gumagana tagumpay kaunti mga bagay na tulad nito.
Ngunit maaari mong makita na, sa katunayan, Mayroon akong limang daliri doon.
Kung maaari naming makakuha ng mga ito upang gawin ang lahat ng 10, maaari mong isipin ang isang malinis at maayos piano
application o mga katulad.
Kaya kung nais mong makabuo pagkatapos ng klase ngayon at sa pag-play na bilang
rin, ikaw ay maligayang pagdating sa.
Kaya higit pa sa na patungo sa katapusan ng semestre.
>> Kaya isang pares ng mga administratibong anunsyo.
Ang isa, gawin ang seksyon na ito sa pamamagitan ng Biyernes sa tanghali sa cs60.net/section.
URL na iyon ay nasa kurso ng homepage pati na rin.
Sa habang panahon, bagaman, supersections ay pasinaya ito Linggo.
Supersections ay isang isang-beses na bagay, dahil ito ay tumatagal sa amin ng ilang oras upang gumana
out kung sino ang nasa kung aling mga seksyon at kung saan.
>> Kaya ito darating na Linggo, may makikita maging isa na seksyon para sa mga mas kumportable,
isang seksyon para sa mga mas kumportable.
At doon sa ka sa isang lugar sa sa pagitan ng mga maligayang pagdating sa pumunta sa
alinman sa o parehong o hindi.
Pareho sa mga ito ay kumuha.
Magagawa nilang sa isang mas malaki kaysa sa auditoryum seksyon ng isang normal na magiging in
Ngunit ang layunin dito ay upang bigyan ng kasangkapan sa iyo ng ilang mga kaginhawahan na may problema magtakda ng isa,
may C, na may CS50 appliance, ito katapusan ng linggo, kahit bago mo mahanap ang iyong out
pormal na seksyon pagtatalaga.
Kaya makikita mo matugunan ang iyong mga tf at ang iyong mas maliit pangkat ng mga sectionmates tungkol sa
oras sa isang linggo.
>> Opisina ng oras, samantala, Nai nangyayari.
Gawin samantalahin ang mga ito ngayong gabi o bukas gabi kung nais mong.
Problema hanay 0 ay dahil sa Biyernes.
Ito ay isang araw na lalampas sa regular na naka-iskedyul na-Huwebes.
Ngunit may problema na hanay 1, makikita mo ang na kasama nito ang ilang mga mainit-init-up
pagsasanay na kung saan mo ang iyong sarili maaaring pahabain ang iyong
Huwebes deadline hanggang Biyernes.
Problema sa hanay 1, samantala, ay pasinaya sa website ng kurso ng ito darating
Biyernes, kung nais mong kulutin up sa ito bilang ko ginawa nang matagal nang panahon late
Biyernes gabi sa iyong kuwarto.
>> Kaya cs50.net/appliance ay ang lugar kung saan maaari kang makakuha ng CS50 appliance
na namin simulang gamitin sa Lunes.
Gagamitin namin ang mga ito nang kaunti pa ngayon.
Ngunit makatitiyak na nagpapatuloy ang problema itakda 1 pagtutukoy ay ituturo sa iyo
tumpak na hakbang na kailangan mo upang makakuha ng na up at tumatakbo.
Kaya huwag mag-alala tungkol sa paggawa na bago Pset 1 kung ikaw ay sa halip hindi.
>> Ayos lang.
Kaya kami ay tumingin sa Lunes sa source code, ngunit sa konteksto ng isang bagong
programming language, lalo C. At C, hindi katulad sa simula, ay hindi graphical.
Hindi ito piraso puzzle.
Ito ay higit pang Ingles-tulad ng syntax.
At mayroong isang pares ng mga hakbang na kasangkot sa aktwal na pagsusulat at pagpapatakbo ng isang
programa sa C, dahil bukod sa pinagmulan code na tulad nito, kailangan mo ng isang bagay
tinatawag na tagatala.
At sa mga tuntunin ng karaniwang tao, kung ano tagatala ay isang gawin para sa amin?
Oo.
>> MAG-AARAL: Ito-convert ang code na sinulat mo sa 0s at 1s.
>> David MALAN: Mahusay.
Kaya ito convert ang code na isulat namin sa 0s at 1s.
Ito-convert tinaguriang source code upang object code, sa huli ng na kamukha
isang maliit na isang bagay na katulad nito.
At ito ay ang iyong CPU, ang talino sa loob ng sa iyong computer, na dahil sa ang
mga tao na lumikha ng mga computer, malaman kung ano ang mga pagkakasunud-sunod
ng 0s at 1s mean.
>> Marahil, ito ay nangangahulugan na print.
Siguro ang ibig sabihin nito karagdagan.
Marahil, ito ay nangangahulugan na pagbabawas.
Siguro ang ibig sabihin nito magpakita ng isang graphic.
Walang mga paunang-natukoy na pattern ng mga piraso na ang mundo ay nagpasya sabihin
ilang mga bagay.
Ngunit para sa pinaka-bahagi sa kursong ito, makikipagtulungan kami sa mas mataas na antas, at
isasaalang-alang namin para sa ibinigay na mayroong umiiral mga bagay tulad ng compiler na maaari
gumawa ng aming source code ng function na sa paraang nilayon namin.
>> Kaya ang programa namin unang sinulat noong nakaraang linggo at pagkatapos ay nagsimulang port, kaya upang
makipag-usap, mag-C ito nakalipas Lunes, ito ay.
Kapag berde bandila na-click, kamustahin.
Ito ay, siyempre, nakasulat sa scratch.
At ako na-claim na ang katumbas programa sa C ay tumingin ng kaunti
isang bagay na katulad nito.
>> Kaya kung ano ko naisip naming gawin sa una ay, sabihin mang-ulol apart kung ano hitsura, sa unang
sulyap, tinatanggap na, bilang patas arcane syntax, ngunit ikaw ay magsisimulang upang mapansin
pattern pa masyadong mabilis.
Ano gagamitin din namin gawin ngayon ay magbigay sa iyo ng isang mental na modelo para sa ilang mga
canonical, ang ilang mga karaniwang constructs sa programming.
At pagkatapos ay gagamitin namin talagang makakuha ng aming mga kamay marumi na may ilang mga halimbawa pati na rin.
>> Kaya para sa mga ka ng mas kumportable, Napag-alaman na ito linggo at pagkatapos ay susunod
linggo ay maaaring napakahusay maging isang bit ng pagsusuri.
Ngunit lalo na kapag ang mga Hacker edisyon ng problema sa set 1 napupunta sa labas ng
website kurso sa Biyernes, sa tingin ko makikita mo na kahit na bilang punan mo sa
ilang blangko sa mga susunod na linggo o dalawang, makikita mo simulan upang makakuha ng higit kailanman
hinamon at makatagpo bago at mas bagong mga bagay.
>> Kaya sabihin mang-ulol sa programang ito bukod ng ilang linya sa isang pagkakataon.
Sa pinakatuktok, mayroon kaming kung ano ang technically tinatawag na
Preprocessor direktiba.
Ito ay lamang ng isang linya ng code na nagsasabing upang isama ang mga nilalaman ng isang file,
karaniwang tinatawag na ako / N, standard input - o, paumanhin, standard I / O, karaniwang
input / output,. h, sa loob ng aking sariling programa.
>> Kaya sa ibang salita, kung ako ay nagsulat na ito programa sa isang simpleng text editor tulad ng
gedit, ang mas simple na katumbas ng isang bagay tulad ng Microsoft Word, na
pagtuturo, # isama stdio.h, ay lamang pagpunta sa sabihin ang tagatala, grab ang
mga nilalaman ng iba pang mga na file, stdio.h, at ilagay ang mga ito dito mismo.
>> Ngayon, bakit ko pinapahalagahan?
Ano ang sinabi i-claim sa loob namin ay mga file na ito tinatawag stdio.h, na kung saan ay naka-imbak
sa isang lugar sa aking hard drive, o sa kaso, sa isang lugar sa CS50 appliance?
May ibang ilagay ito doon para sa akin.
Ngunit kung ano ang sa loob nito?
>> Oo, sa gayon ito ay isang pahayag ng function na tinatawag na isang printf.
Kaya printf naalala ang function na display salita at character at
mga numero sa screen sa aking pag-bid.
Ngunit hindi ko isulat ito.
CS50 ay hindi magsulat dito.
May isang taon na ang nakalipas ay nagsulat nito, at sila mahalagang nagbigay sa amin ang recipe para dito
sa isang file na tinatawag na stdio.h.
Kaya na ang unang linya ay nagbibigay lamang sa akin ma-access ang sa mga function na may ibang tao
Nagsulat taon na ang nakakaraan, bukod sa na kung saan ay printf.
>> Ngayon, ang susunod na linya Pupunta ako sa aking iwagayway sa kamay, hindi bababa sa hanggang sa susunod na linggo.
Ngunit para sa ngayon, alam na int pangunahing (walang bisa) ay mahalagang ang katumbas ng ito
dilaw puzzle piraso kapag berde bandila click.
Ang mundo, taon na ang nakalipas, nagpasya na kung sumusulat ka ng isang programa sa
wika na tinatawag na C, simulan mo iyong programa na may linya
na mukhang iyon.
Sa lamang tungkol sa oras sa isang linggo, makikita ito gawin pakiramdam kung ano ang int ay, kung ano ay walang bisa.
Ngunit para sa ngayon, lamang sa tingin ng ito bilang na ito dilaw na piraso puzzle.
>> Ngayon susunod, mayroon kaming isang kulot suhay sinundan sa pamamagitan ng isa pang malapit na kulot suhay,
kaya na magsalita.
At kami na makita ang mga buong mga programa sa C, pati na rin ang
JavaScript at PHP.
At lamang ang mga encapsulate mga kaugnay na mga linya ng code.
Ang open suhay kulot talaga sabi, dito ay ilang mga code.
At ang closed suhay kulot, na siyang angled sa iba pang direksyon, lamang
ibig sabihin, na ito para sa ang may-katuturang mga code.
>> Kaya ang makatas linya sa unang programa ay ang huling, printf,
quote-magpanipi, kumusta mundo.
At ako na tinatawag na ang bagay sa pagitan ng quote kung ano ang huling panahon?
Kaya ito ay isang string.
At isang string lamang ang mga techie termino para sa isang pagkakasunod-sunod ng
character, isang salita, isang parirala.
Kahit isang solong titik ng dati i-double quote.
Ngunit ito ay isang pagkakasunod-sunod ng zero o higit pang mga character.
>> Backslash-n, bagaman, mukhang medyo kakaiba.
Ngunit ito lamang nilalayong isang bagay simple sa computer.
Ano ang backslash-n?
Bagong line.
Kaya ito lamang ang mga espesyal na pagkakasunod-sunod ng character na ang mundo ay nagpasya
Nangangahulugan maglagay ng line break doon, dahil ang tagatala ay talagang makakuha
nalilito, kadalasan, kung, napaka understandably, ngunit hindi tama, lamang
simulan ang pagpindot ng Enter upang ilagay mga bagong linya sa iyong code.
Kailangan mong maging isang kaunti pa tahasang may backslash-n.
>> At kami makita mayroong ilang ibang tulad ng pattern para sa mga espesyal na character.
Halimbawa, kung ginusto mong hayaan ang iyong mga tututol malihis sa isang kaso na sulok,
ipagpalagay na nais kong i-print ang isang double quote sa screen para sa
anumang dahilan, na tila maging isang maliit na problema, tama?
Dahil kung ko bang ilagay ang isang double quote sa gitna ng "kumusta, mundo," para sa anumang
dahilan, kung bakit ay na mukhang potensyal na problemang?
Ito Pinaghihiwa ang string.
>> Ang tagatala lamang ang programa.
Ang isang programa tulad ng isang tagatala ay lamang ng pagpunta na basahin ang iyong code sa itaas hanggang sa ibaba,
pakaliwa sa kanan.
At kung nakikita ng tatlong double quote sa halip ng dalawang, ito ay hindi pagpunta sa alam
kung ibig mong sabihin na ang mga bagay sa kaliwa dapat na ang string, o ang bagay na
sa kanan, o sa buong bagay.
Ito ay hindi maliwanag, at kaya kung ano ang isang karaniwang tagatala nais gawin ay lamang taong kakatuwa out,
at magbibigay sa iyo ng ilang mga error na mensahe, at gumawa ka makitungo sa mga problema.
>> Kaya ibinigay na backslash-n nangangahulugan ng isang bagong linya, ano ang gagawin sa iyong instincts ngayon
simulan upang maging kung ginusto mong isama isang bagay iregular tulad ng isang double
quote sa loob ng ito kung hindi man-quote string?
Backslash-double quote.
At kaya namin makita ito uri ng pattern masyadong.
>> Kung gusto mong gawin ang isang bagay ng kaunti kakaiba, makikita mo na ang mga
solusyon madalas sundin ang isang pattern, at ang backslash
Nagpapahiwatig ng isang escape sequence.
At ito ay nangangahulugan lamang ng isang bagay na espesyal na kailangan namin upang kumatawan sa isang
iba't ibang paraan.
Bilang para sa kung paano kinakatawan mo isang backslash, mahusay, bibigyan namin ng
bumalik sa na.
Ngunit ang sagot, masyadong, ay talagang medyo halata.
>> Kaya natin ngayong ipakilala sa ilang ibang programming constructs
na nakita mo sa scratch.
Marahil Ginawa mo na para sa ipinagkaloob na kung nakalikha ka na dived sa
problema itakda 0.
Ngunit natin ngayon ipakilala ang syntax sa C para sa mga ito kung hindi man ay medyo madaling maunawaan
mga ideya, hindi bababa sa ilan sa kanila.
>> Kaya ito kuru-kuro ng isang kondisyon o isang branch, samantalang dati namin
kinakatawan ito gamit ang code na tumingin tulad nito sa kaliwa sa scratch -
kung x ay mas mababa sa y, pagkatapos ay sabihin sa gayon -
sa halip na ngayon sa C - ipaalam sa akin magtagis in sa pinakasimpleng kaso -
lamang kami ng pagpunta sa sabihin, kung, buksan panaklong, isang bagay ay totoo - ang isang
Boolean expression ay pagpunta sa pumunta kung saan ko sinabi kondisyon -
malapit panaklong, pagkatapos ay kung ano ang sa loob ng mga kulot tirante.
>> Kaya dito, masyadong, ang kulot tirante ay mga uri ng tulad ng scratch ni
Mag-U-shaped piraso puzzle.
Huwag kung ano ang nasa loob ng mga kulot tirante.
Sa kasong ito, slash slash.
At mapansin ito ay isang pasulong iwa, hindi isang backslash.
Forward slash, forward slash, para sa mga taong na-program
bago, nangangahulugan lamang -
ito lamang ay isang komento.
Ang puna ay hindi isang linya ng code, per se.
Ito ay isang linya ng Ingles na ikaw, ang pantao, na nakasulat sa iyong sarili upang
marahil ipaalala sa iyo upang gawin ang isang bagay, i- ipaliwanag sa iyong sarili, upang ipaliwanag sa
ng ibang tao, kung ano ang iyong code ay paggawa.
Ito ay lamang ng isang naglalarawang komento.
>> Ngayon, siyempre, maaari kaming magkaroon ng two-way tinidor sa kalsada lamang sa pamamagitan ng paggawa nito, isang
tatlong-way na tinidor sa kalsada sa pamamagitan ng paggawa ito, at kung patuloy kang ito
pattern, maaari kang magkaroon ng apat na paraan, limang-way, anim-way na tinidor sa kalsada kung
kailangan mo upang mahawakan, sa katunayan, na maraming mga kundisyon.
At pagkatapos mapansin ang paralelismo dito -
kung (kondisyon), iba pa kung (kondisyon), at ang isa lamang na ang isang ilan
kakaiba ay ang huling, na lamang na tao.
Ngunit muli, ito ay kapareho, conceptually, sa kung ano ang ginawa namin
pa, kahit na syntax ang kalooban tumagal nang kaunti nagsisimula ginamit upang.
>> Ngayon, sa halimbawang ito, mayroong ilang iba pang kakaiba syntax.
Nakakakita kami ng printf muli, buksan panaklong, at malapit panaklong.
At sa loob ng mayroong isang naka-quote na string.
Ang mga panaklong, sa konteksto ng printf, pumunta sa kaliwa
at kanan ng kung ano?
Ano ang gagawin namin ilarawan ang naka-quote na string bilang sa mas pangkalahatang?
>> Kaya ito ay isang argumento.
Anumang oras na ikaw ay may isang function, tulad ng printf, at pagkatapos ay isang open paren at isang
malapit paren at isang bagay sa loob ng ito, kung ito ay ang isang string, o isang
integer, o anumang bagay, ang mga bagay sa sa pagitan ng mga panaklong ay tinatawag na
isang argumento.
>> At isang argumento lamang nakakaimpluwensya pag-uugali ng mga function na ito.
Sa kasong ito, maganda ito kung paano i-clear.
x <y ay kung ano ang pumasa sa, kaya na magsalita, bilang isang argument.
At printf ay pagpunta sa mag-print nang eksakto na.
Dahil tiyak, ang tao taon na ang nakalipas sino ipinatupad printf ay walang ideya
kung ano ang namin ang tagapagmana ng tao ay pagpunta upang gamitin para sa printf.
Kaya na ang dahilan kung bakit argumento umiiral, upang impluwensya sa pag-uugali matapos ang isang function ng
napawalang.
>> Ngayon, Boolean expression.
Nasaksihan namin ang mga bago sa scratch.
Ito ay lumiliko out sa C maaari mo ring "o" ang mga ito nang magkasama, kaya na magsalita.
Dalawang patayong bar ay nangangahulugan na ang bloke ng code, ito gawin ito, kalooban
isakatuparan kung ang unang kondisyon ay totoo o ang ikalawang kondisyon ay totoo.
At kahit na hindi ka maaaring tapos na ito sa wala, magagawa mong talaga
gawin ito sa simula, At maaari ka ring ipahayag ang iyong sarili naiiba -
kung ang unang kondisyon at ang pangalawang kondisyon ay totoo, pagkatapos ay kung ano ang
sa loob ng kulot tirante.
>> At tulad ng isang tabi, dahilan sa ito ay isang double ampersand at isang double
patayong bar, makikita namin kung malaon na isang solong vertical bar at isang
single ampersand talagang magkaroon ng iba't ibang ibig sabihin sa C. So sa ngayon,
na-duplicate ng mga simbolo ay intensyonal.
>> Kaya sabihin ipakilala, Panandalian, ang iba pang mga bit ng syntax.
Ito ay hindi pa masyadong carry sa paglipas ng sa Wala, ngunit inaangkin ko na ang maaari kong
ipatupad ang paniwala ng isang tao kung, kung tao, kung tao, kung iba statement paggamit
isang bagay na tinatawag na isang switch statement.
At ang tanging dahilan na ito talagang umiiral ay upang lamang magbigay sa iyo, ang mga programmer, isang
bahagyang kakaibang paraan ng pag-solve ng ilang problema, kahit na lohikal na ito
ay hindi nagbibigay sa iyo ng anumang mga bagong kakayahan.
>> Sa pamamagitan ng na ibig sabihin ko ito.
Kapag sinabi mong lumipat, at pagkatapos ay isang patlang, at pagkatapos ng isang pares ng mga panaklong, sa loob
ng kung saan napupunta ang isang expression -
at ito ay maaaring maging isang maliit na di-halata sa una, ngunit ito ay hindi isang argument,
technically, dahil lumipat ay hindi isang function.
Kaya sa ngayon, lamang ipagpalagay na ang aming ginagamit panaklong sa iba't-ibang mga lugar
para sa iba't ibang dahilan.
>> Kaya lumipat sa expression Nangangahulugan ang maaari kong ilagay sa isang variable sa loob ng mga
panaklong kung saan sinasabi nito na expression.
At pagkatapos ay kung na variable -
ipagpalagay na ito ay tinatawag na x, at ito lamang ay isang integer -
Maaari ko pagkatapos magbilang sa aking mga slide dito isang bagay na katulad nito.
Kung x ay ang aking mga variable, at ako nais na gawin ang isang bagay kung x
ay katumbas ng 1, ang maaari kong gawin iyon.
>> Kung ako sa halip nais na gawin ang isang bagay kung x ay 2, ang maaari kong gawin iyon.
Iba Pa, kung gusto kong gawin ibang bagay ganap, maaari ba akong magkaroon ng isang default na kaso sa
kung saan gagawin ko ito iba pang mga bagay.
Kaya sa na kahulugan, ito ay katumbas ng isang kung x ay katumbas ng katumbas ng 1, kung iba pang tao,
pero banggitin ko ito ngayon dahil lang ipapakita namin makita ito muli.
Ngunit para sa ngayon, lamang malaman na ito ay umiiral na.
>> Ayos lang.
Kaya ang mga huling ilang ay isang kaunti pa complex sa unang tingin, pero ang ginagawa nila
isang bagay na medyo tuwiran.
Ang isang loop para sa C ay isang tipak ng code na lamang ang isang bagay na muli at
muli at muli.
At ang tanging nakakainis na bagay tungkol dito ay na ay na ito ay isang maliit na misteriyoso
upang ipahayag ang iyong sarili sa ito cyclical pattern, ngunit ang mundo sa Standardized
mga sumusunod na paraan.
>> Kapag gumamit ka ng isang para sa loop, mayroon ka isang pares ng mga panaklong muli.
At mapansin ang dalawang semicolons sa doon.
Yaong dalawang magkahiwalay na semicolons tatlong iba't ibang expression sa loob ng
panaklong.
Ang isa ay ang tinatawag na initializations.
Ang isa ay ang tinatawag na kondisyon.
At ang isa ay ang tinatawag na pag-update.
>> Tiningnan sa abstract, ito ay talagang non-halata, kaya tingnan natin
sa isang kongkreto halimbawa.
Sa scratch nagkaroon kami ng isang umuulit na bloke.
At block ito sinabi ulitin 10 beses, sabihin "Kumusta, mundo." Hayaan ang i-claim para sa akin
ngayon, at kami ay bumalik sa ito, at ito, masyadong, ay makakuha ng higit pang mga pamilyar sa
ka bago mahaba, ang katumbas C code ay maaaring sinabi na maging ito -
para sa isang pahayag at isang puwang, isang pares ng panaklong, mapansin ang semicolons sa
doon, na paghiwalayin ang tatlong natatanging mga bagay, ang Pinasimulan, ang
kalagayan, at ang pag-update.
>> At tumagal ng hula kung ano ang unang ginagawa.
Int i = 0.
Sa mga tuntunin lego magaspang, ang kung ano ang na ginagawa para sa atin, marahil?
Kaya oo.
Ito ay deklarasyon ng variable na tinatawag na i, at ito ay nagbibigay ito kung ano ang halaga?
0.
Kaya ito ay ang paglikha ng isang variable na tinatawag na i, pag-iimbak ng mga halaga sa 0 ito.
Iyan ang tinatawag na Pinasimulan.
>> Ang lahat ng mga karapatan, ngayon ko na-claim bago na ang gitnang bagay, i
<10, ay ang kondisyon.
Kaya kung ano ang ginagawa?
Well, kung ano ang para sa loop ang ipinapakita kapag ang isang programa na may isang para sa loop ay tatakbo, ay
sa bawat oras na ang computer ay tumatakbo sa pamamagitan ng ito loop, itaas hanggang sa ibaba, sa tuktok
ibaba, tulad ng sa iyo guys kapag ginawa bilangin ang inyong sarili at sitting down,
muli at muli at muli, ang computer ay pagpunta
upang suriin na kondisyon.
At kung i ay mababa sa 10, Makikita ito gawin itong muli.
Kung i ay mababa sa 10, Makikita ito gawin itong muli.
Kung i ay mas mababa sa sampung, Makikita ito gawin itong muli.
Kaya na tila iminumungkahi na sana ay i ay nagbabago.
Kung hindi man, nais naming magkaroon ng isang walang-katapusang loop.
At sa katunayan, i Nagbabago, dahil ang huling bagay pagkatapos ng tuldok-kuwit doon
ay ang medyo misteriyoso syntax ng i + +.
Ngunit ang mga ng sa iyo na nagawa mo na ito bago, na nangangahulugan lamang
medyo lang ano?
>> ESTUDYANTE: [INTERPOSING boses].
>> David MALAN: Magdagdag ng 1 upang i.
Dinagdagan i.
Kaya nakita natin ang isang scratch puzzle piraso para sa na, talaga.
Hindi nito magmukhang i + +, ngunit iyon lamang ibig sabihin, medyo simple, dagdagan ang
Pinahahalagahan i ng 1 sa bawat oras na gawin mo ito.
Kaya literal, magsisimula ka sa pamamagitan Sinisimulan ko sa 0.
Ikaw pagkatapos ay suriin ang iyong kalagayan.
0 ay mas mababa sa 10?
Oo.
Pumunta kami sa pamamagitan ng mga loop.
>> Ang susunod na bagay na inaangkin ko ang computer pagpunta sa gawin ay ito ang nangyayari
upang i dinagdagan.
Kaya i ngayon ay 1.
Ito sumusuri sa kalagayan.
1 ay mas mababa sa 10?
Siyempre.
Kaya ginagawa itong muli.
Pagkatapos ito unti i + + sa 2.
2 Ay mas mababa sa 10?
Oo.
At muli at muli at muli.
At sa huli, dahil sa plus-plussing, makuha namin upang i equals 10.
10 Ay mas mababa sa 10?
Well, malinaw naman hindi.
At na ang punto kung saan ang para sa loop lamang tumitigil.
At kung mayroon kang higit pang mga code sa screen pababa sa ibaba, ang computer
nalikom na tumakbo na code sa halip.
>> Kaya muli, kahit na ito ay pagpunta sa tumingin at pakiramdam ng isang maliit na kakaiba sa
una, walang duda para doon sa iyo kung sino na hindi kailanman-program bago, ito
Literal na binabawasan conceptually sa kung ano ang kung hindi man ay isang napaka-
tuwiran puzzle piraso sa scratch.
>> Ang lahat ng mga karapatan, ipinangako ko na may gusto maging iba pang mga analogs sa scratch.
May isang ito masyadong.
At nakita natin ito daglian huling oras.
Ngunit tandaan ang magpakailanman harangan sa scratch?
Ito lamang ang isang bagay na magpakailanman?
I-claim na maaari mong ipatupad ito sa ganitong paraan.
At maaari mong aktwal na ipatupad ang sa isang grupo ng mga iba't-ibang paraan.
>> Ngunit habang ang loop lamang ang iba't ibang paraan sa C ng pagpapahayag ng iyong sarili.
Sa pagtatapos ng araw, hindi mo maaaring gawin anumang bagay na may isang loop habang na sa iyo
Hindi maaari na may para sa loop.
Kaya ang mga ito ay sa dulo ng araw halos pareho sa pagtakbo.
Ngunit ito ay nagbibigay-daan sa iyo upang ipahayag ang iyong sarili medyo naiiba sa
mga sumusunod na paraan.
>> Gamit ang loop habang, ito ay kung ano ang sa panaklong na naka-check muli at
muli at muli.
At sa lalong madaling expression na ay hindi totoo, pagkatapos ay i-loop ang execute tumitigil,
at computer ang naaayos sa magpatakbo ng anumang iba pang mga code mo
mayroon sa iyong file.
>> Ngunit kung ano ang kawili-wiling dito ay na ako literal na-type totoo.
At totoo ay isang uri ng Boolean halaga, isang true o false halaga.
Kaya maaaring totoo kailanman naging hindi totoo kung nag ako nang literal
hard-code ito sa aking mga programa?
Kaya hindi.
Ito ay isang maliit na kakaiba na ginawa ko ito.
Ngunit totoo ay totoo.
Walang plus-plussing.
Walang paggamit ng mga variable in dito.
Kaya dahil ako hard-code habang totoo, ito loop ay palaging pagpunta upang pag-aralan
muli at muli at muli.
>> Kaya kung gaano karaming beses ay kumusta mundo pagpunta sa i-print sa screen?
Magpakailanman.
Isang walang-katapusang bilang ng mga beses hanggang ang baterya namatay o ilang iba pang mga panlabas
kaganapan ang mangyayari.
Kaya ito ay marahil hindi ang pinakamahusay na programa sumulat, dahil kung ang user
Hindi kailanman maaaring lumabas mula sa iyong programa, ito ay marahil hindi kung ano ang iyong nilalayon.
>> Ngunit minsan, programa dapat magkaroon ng isang walang-katapusang loop.
Halimbawa, kung ang iyong computer na may isang orasan sa ito, ito ay tiyak na magiging
maganda kung ang iyong orasan ito ay panatilihin sa pag-update mismo magpakailanman, kahit na isang beses sa isang
pangalawa o isang beses sa isang minuto o isang bagay tulad na.
Kaya kahit walang katapusan na mga loop ang mayroon ang kanilang mga lugar.
>> Ayos lang.
Panghuli, ang isang ito.
At ang isang ito ay Medyo naiiba pagtakbo, at kami ay bumalik sa
marahil ito sa Pset 1.
Subalit mayroong isa pang uri ng loop tinatawag na gawin habang loop.
At ang pagkakaiba lamang dito sa pagitan ng isang gawin habang loop at, sabihin nating, isang habang loop,
ay na ang kundisyon ay naka-check hindi bago mo isagawa ang code, ngunit pagkatapos
execute mo ang code.
Kaya sa tuktok para sa habang loop, samantalang ang gagawin habang
sumusuri ito sa ibaba.
>> At ito lamang ay nangangahulugan na ang habang loop ay karaniwang execute higit pang mga beses
o mas kaunting mga beses kaysa sa isang loop habang?
Potensyal na mas maraming beses, dahil ang isang gawin habang loop ay malinaw na sinasabi gawin ito,
lamang matapos na ituro sa iyo suriin kung ang mga kondisyon sa loob ng
panaklong ay totoo.
>> Kaya naming makita ito muli marahil sa Pset 1.
Kung sakaling nais upang gawin ang isang bagay sa hindi bababa sa isang beses at pagkatapos ay marahil ilang mga higit pa
beses, ito ay isang magandang bumuo gamitin.
Ngunit isang habang loop, sa pamamagitan ng kaibahan, ang kalooban suriin ang kalagayan nito muna.
At na ito para sa mga loop C, huwag habang, habang, at para sa mga loop.
At muli, i-map ang mga ito medyo mahusay pabalik sa simula, maliban sa isa na ito ay hindi
medyo may parehong analog sa scratch.
>> Well, tungkol sa kung paano, ngayon, variable?
Kaya ito ay kung paano ko ipinahayag sa isang variable syntactically ang iba pang mga araw.
Mayroon akong isang int, na aking na-claim ay isang integer.
Ako pagkatapos ay nagkaroon ng isang variable na tinatawag na counter, at pagkatapos ng isang tuldok-kuwit.
Kaya kung ano ito linya ng code ginagawa?
Ito ay, medyo simple, deklarasyon isang variable -
iyon ay, humihiling ang computer, akong bigyan memorya ng ilan, magbigay sa akin ang ilang mga piraso - sa
kung saan ang maaari kong iimbak ano?
Ang isang int.
At ang semicolon ay nangangahulugan lamang dulo ng linya ng code.
>> Ngayon, ang pangalawang linya ay marahil medyo guessable.
Ano ang counter = 0; ginagawa?
Ito ay magtatalaga sa 0 upang kontrahin.
At kaya ito ay ang iba pang mga bagay na ang isang maliit na nakakainis na
kumpara sa, sabihin nating, algebra.
Sapagkat sa algebra, ang pantay na pag-sign nangangahulugan katumbas, dito sa C, ang katumbas
Nangangahulugan sign pagtatalaga.
Kaya ito ay nangangahulugan na ilagay kung ano ang sa kanan sa kung ano ang sa kaliwa.
At kami makita ng isa pang simbolo, ay katumbas ng katumbas, kapag gusto naming subukan ang aktwal
para sa kalidad, medyo annoyingly.
>> Ngunit ito ay isang maliit na hindi mabisa.
Ito ay uri ng nakakainis na mayroon akong idedeklara isang variable at
pagkatapos ay bigyan ito ng isang halaga.
Kaya C aktwal na nagbibigay-daan sa amin pasimplehin ito at lamang gawin ang lahat ng ito sabay-sabay.
Maaari mong ipahayag ang variable sa kaliwa.
Maaari mo pa ring gawin ang pagtatalaga sa karapatan sa pamamagitan ng paglalagay na katumbas ng pag-sign in
sa gitna.
Kaya sa katapusan ng araw, ang dalawang mga katumbas na, ngunit ang isang ito, lantaran,
Marahil ang mas mahusay na ugali upang makakuha ng sa dahil lang sa ito ay isang maliit na mas kaunti
code, ito ay isang maliit na mas madaling basahin, at ito lamang tightens up
ang iyong code, kaya na magsalita.
>> Ang anumang mga katanungan kaya malayo sa mga loop, sa mga variable, sa kondisyon, sa
Booleans, alinman technically o conceptually?
Ayos lang.
Kaya ngayon ito sa tabi ng isa ay makakakuha ng isang kaunti pa kagiliw-giliw.
At ito ay ang halimbawa ko bang ilagay up huling oras na lang ang mga mapa ng scratch halimbawa
sa ibabaw sa C.
>> Kaya isang function na.
Sa mga tuntunin lego, na kung ano ang isang function?
Nakuha na maging mas agresibong sa iyong sagot.
Ano ang pag-andar ng isang?
>> MAG-AARAL: Sinusuportahan ba ng isang bagay.
>> David MALAN: Ano iyon?
>> MAG-AARAL: Sinusuportahan ba ng isang bagay.
>> David MALAN: Sinusuportahan ba ng isang bagay.
OK.
Sisimulan naming doon.
Kaya pag-andar ng nagagawa ng isang bagay.
Kaya ito ay isang piraso ng code na mahalagang ipinatupad sa ibang lugar na
sa katunayan ang isang bagay.
Ngayon, kung ano ang kawili-wiling tungkol sa isang function ay na maaari itong tumagal ng input,
at maaari itong makagawa ng output.
At sabihin na aktwal na tumagal tumingin sa ito.
>> Kaya ang mga tao sa likod ng tabing ay sinasadya ng ilang sandali ang nakalipas.
Narito kami ay may isang table.
Ngunit ipagpalagay na ito talaga ay kumakatawan sa isang malaking box.
Kaya ito ay isang tinatawag na itim na kahon.
At sa pangkalahatan, sa disenyo, sa computer agham, black boxes lamang sumangguni sa
piraso ng pag-andar na ang isang tao ay ipinatupad, at hindi mo pag
kinakailangang alam o pakialam kung paano ito ipinatupad sa ilalim ng hood.
Ikaw lang pinapahalagahan na ito itim na kahon, kung saan ipapakita namin ngayon simulan pagtawag ng
function, ang isang bagay.
>> Kaya, halimbawa, kung ang itim na kahon sa ang stage dito ay kumakatawan printf, isang
function, alam ko mula sa nakaraang mga halimbawa printf na tumatagal ng isa o higit pang mga
argumento, at ang una sa mga argument ay dapat na isang string, tulad ng
"Kumusta, mundo." Well, kung ako ang tao Sumulat sa programa, at nais ko
gamitin ang printf, ko, halimbawa, maaari kumuha ng isang piraso ng papel na blangko dito at isang
itim na marker at isulat ito sa -
Ako tamang spelling "mundo" -
H-E-L-L-O.
>> Kaya Kukunin ko ang aking itim na marker at idedetalye ko magsulat, pati na malaki at maliwanag na magagawa ko sa
ito na piraso ng papel, "kumusta, mundo," At ngayon inaangkin ko ang mga ito ay ang aking argumento.
Ito ay isang string na kinakatawan sa isang piraso ng puting papel.
At ang aking input ngayon upang ang function na printf ay magiging ito.
Kaya ako ay pagtawag printf, pagpasa na argumento bilang input dito.
>> At ngayon, hindi ko alam kung paano ang taong Nagsulat printf ginawa ito taon na ang nakaraan, ngunit
Ko alam nito mula sa dokumentasyon na ang layunin nito sa buhay ay upang i-print kung ano ako
ibigay ito sa input.
At nang sa gayon, kahit na ang pagpapatupad na ito ay walang anumang kaalaman sa akin
sa ilalim ng hood, ngayon Nakikita ko, oh, ito ay tapos na.
Ito ay isang bagay na naka-print sa screen.
At ngayon kontrolin ng programa, kung mayroong ay higit pang mga linya ng code, gusto
na ngayon ang ibinalik sa akin.
At sa gayon ang katotohanan na Colton -
pagpalain kanyang puso, ay itinatago dito sa ilalim isang table sa harap ng lahat ng sa iyo -
ay sinadya sa na hindi ko alam at Wala akong pakialam kung paano printf ay
ipinatupad.
Ko lang alam, muli, mula sa kanyang dokumentasyon, kung ano ang ginagawa nito at kung paano ko
ako ay dapat na gamitin ito.
>> Ngayon, isipin ang printf na maaaring makuha ang kaunti pa sopistikadong.
Muli, lamang ang pinag-uusapan natin ang tungkol sa katumbas ng sabihin bloke ng scratch.
Ngunit ko rin ginawa ito huling oras.
Nais kong gumawa ng aking kumusta programa ng kaunti pa dynamic at hindi lamang mahirap
code sa isang bagay tulad ng "mundo," at Talagang hindi na hard code isang bagay
arbitrary tulad ng D-A-V-ko-D sa programa.
Nais kong hilingin ang gumagamit para sa kanyang pangalan, at pagkatapos ay gawin ang isang bagay na may
na string na ibinigay nila.
>> Kaya mayroong isang bagay na medyo naiiba dito. printf, ng ilang sandali ang nakalipas,
ay, sa katunayan, gawin ang isang bagay, ngunit ito ay hindi bumalik sa anumang bagay sa akin.
I-right?
Colton ay hindi ibigay sa akin ng kahit ano pabalik, hindi na piraso ng papel.
Nagkaroon lamang ng isang side effect.
Aking pagbibigay ng "kumusta, mundo" bilang isang argumento sa Colton nagresulta sa
pangalawang epekto ng isang salita, ang ilang mga salita, lumilitaw sa screen.
>> getstring, bagaman, ay isang maliit na naiiba. getstring ding
gumana, ngunit ito ay nagbabalik ng ilang mga halaga.
Hindi ito lamang magkaroon ng isang Aesthetic side effect.
Ito ay talagang nagbibigay sa akin, ang tao pagtawag o paggamit ng function,
isang bagay likod.
Kaya sa kasong ito, ay getstring tinawag gamit ang getstring bukas
paren, malapit paren.
Ba getstring, samakatuwid, ay magkakaroon ng anumang argumento o input?
Hindi, parang hindi.
Ang layunin nito sa buhay ay lamang upang makakuha ng isang string.
Kailangan itong walang karagdagang detalye kaysa sa na.
Kaya ipaalam sa akin sige at magpanggap na, muli, ito itim na kahon ay hindi printf,
ngunit getstring, at ipaalam sa akin, ang tao pagsulat sa programang ito, tumawag o gumamit ng
getstring lamang sa pamamagitan ng pagsusulat G-E-T-S-T-R-I-N-G, open paren, malapit
paren, getstring.
>> Ngayon, mayroon akong mga ideya kung paano ang CS50 staff getstring ipinatupad, ngunit alam ko na
kung naghihintay ako may sapat na katagalan, ito ay ginagawa nito bagay sa ilalim ng hood, siguro gamit
ilang mga variable, marahil gamit ang ilang kondisyon, marahil gamit ang ilang mga loop,
siguro gamit ang ilang mga pag-andar, siguro ay gumagamit ng -
lamang sinusubukang i-stall - siguro paggamit ilang iba pang mga tampok ng programming.
Ngunit kung naghihintay ako mahaba sapat - sa katotohanan, sa mga computer, ito ang mangyayari
napakabilis na -
kung naghihintay ako may sapat na katagalan, ito function na getstring ay pagpunta upang makakuha ng isang string
mula sa gumagamit, kung sino ang pag-type siguro ito sa kanilang mga keyboard, at
pagkatapos, kapag nag-getstring ay tapos na sa pagkuha ng mga character mula sa gumagamit
at pag-iimbak ng mga ito sa isang string, na function, getstring, ay pagpunta sa may
Handa na para sa akin ang ilang output na Ako pagpunta sa mabawi sa pamamagitan ng paraan ng
pagtatalaga operator.
>> At kung pumunta ako, sa katunayan, sa output dito, Obosi ay may maraming
lumahok, nang walang pag-alam ito sa sumulong, sa pamamagitan ng pagsusulat ng kanyang pangalan sa ito
variable, kung saan ay kumakatawan sa isang string.
Ngayon, ang pagtatalaga ay nangangahulugan operator, kahit na bagaman ito ay maaaring pakiramdam ng kaunti
kalabisan, ko talagang gawin kailangan upang gumawa ng aking sariling mga kopya ng mga ito.
Dahil sa kaliwang kamay gilid - Oops! -
napansin ko na mahalagang magkaroon ng string pangalanan sa kaliwang bahagi.
Kaya din ako pupunta upang gawing ang aking sariling mga kopya ng mga ito.
At ito ay isang bit ng isang maliit na kasinungalingan, dahil gagamitin namin makita sa isang linggo o dalawang ni
oras na string ay hindi talaga ano lumilitaw ang mga ito upang maging.
>> Ngunit sa ngayon, narito ang return value.
Narito ang aking sariling kopya nito pagkatapos gamit ang pagtatalaga operator.
At ngayon, kung ano ang gusto kong susunod na gagawin?
Kami ngayon ay mayroon ng ikalawang ng dalawang linya ng code.
Kaya ako ngayon ay nais na tumawag printf.
Sabihin magpanggap na ngayon na ang mga itim kahon ay bumalik muli sa pagiging
printf at hindi getstring.
>> Printf oras na ito ay pagpunta sa gumawa ng kung gaano karaming mga argumento?
Kaya tingnan ito, tulad ng dalawa.
Mayroong dalawang mga kuwit sa doon, ngunit isa sa mga kuwit, ito ay
sa loob ng mga panipi.
Kaya ang unang argumento ay literal pagpunta sa maging ito.
H-E-L-L-O, kuwit, porsiyento s, backslash-n.
At ngayon ako nagbibigay ng hindi isang argument, ngunit dalawang argumento sa printf.
>> At kung ano ang dapat printf ang gagawin sa ang dalawang input pagkatapos makapasa ko ang mga ito sa
bilang argumento?
Ito ay dapat na lumabas sa second na ng sa kanila, na aking tinatawag na pangalan, kaya ang
ikalawang piraso ng papel na sinulat ko out isang sandali ang nakalipas ay tinatawag na pangalan.
Ito ay pagpunta sa plug ng mga halaga sa loob ng na variable sa placeholder,
% S, kaya na, muli, sa sandali lamang ni panahon, kami ay makita ang isang side effect ng
pagkakaroon ng tinatawag printf, kung saan kami ngayon hindi makita "kumusta, mundo," ngunit "kumusta,
Obosi. "
>> Kaya isang malaking ikot ng papuri sa parehong ng aming mga boluntaryo, isa lamang sa kung kanino Alam
ito ay nangyayari.
Ayos lang.
Kaya, marahil, simpleng bilang na noon ay, oo nga, kung ikaw ay isa nang pamilyar
na may tulad na, sana hindi mo na kalooban kalimutan na ang partikular na visual ng kung paano
gumana ang pag-andar.
>> Kaya mayroong higit pa sa getstring.
Sa Loob ng CS50 library, mayroong isang ang maramihang mga pag-andar, ang lahat ay
ay sa malaking titik lamang upang gumawa ng malinaw na aming sinulat ang mga pag-andar.
Karaniwan, sa C, halos bawat iba pang mga function na gagamitin mo ay lowercase.
Ngunit namin sadyang gamitin malalaking titik lamang upang gumawa ng malinaw na ang mga ito
mga pagsasanay gulong ng uri na bibigyan namin ng gamitin para lamang ng ilang linggo na
pasimplehin ang proseso ng pagkuha ng input mula sa user.
>> Ang CS50 library ay hindi gumawa ng kahit ano na hindi mo ma-inyong sarili gawin sa pamamagitan ng
lamang gamit ang C code mula sa isang oldschool aklat-aralin.
Ngunit, muli, ginagamit namin ang mga ito bilang pagsasanay gulong ng klase para lamang ng ilang
linggo upang maaari naming mapupuksa ang mga kumplikado na makikita mo sa lalong madaling panahon maunawaan
iyong sarili ng paggawa ng isang bagay bilang medyo tuwiran bilang pagkuha
input mula sa isang user.
>> Kaya alam na magkakaroon ka ng access sa GetChar, GetDouble -
dalawang beses.
What's - at pagkatapos ay i-GetFloat.
Ano ang isang Float?
Magsimula tayo doon.
>> MAG-AARAL: [hindi marinig].
>> David MALAN: Oo.
Ito ay isang numero na may isang decimal point.
Kaya habang ang isang int ay isang integer, na lamang ang numero sa 0 hanggang 9,
ilang bilang ng mga repetitions hinggil doon, Float isang ay isang bagay
may isang decimal point.
At isang double, samantala, ay isa ring numero sa isang decimal point, ngunit higit pa
numero pagkatapos ng decimal point, potensyal na.
>> Kaya babalikan ka namin sa ito bago ang haba.
Ngunit karaniwan, ang bawat isa sa mga uri ng data, bawat isa sa mga uri ng mga variable
na ang isang library tulad ng atin makakabalik sa mo, gumamit ng ibang mga numero ng bits upang
imbak ng impormasyon.
Karaniwan, isang pansamantalang trabaho, na kung saan ay nangangahulugan lamang isang character, gumagamit ng 8 bits.
At iyon ang aktwal na pare-pareho sa aming mga byte ng mga boluntaryo noong nakaraang linggo na
dumating up at kinakatawan isa Ascii karakter sa isang pagkakataon.
Kaya isang pansamantalang trabaho ay 8 bits.
>> Float A Nagkataong 32 bits, karaniwang.
At isang double, bilang maaari mong hulaan, ay talaga 64 bits, na kung saan ay higit pa lamang,
na nangangahulugan na maaari kang magkaroon ng mas malaking numero o higit pa katumpakan.
Ngunit muli, higit na sa isa pang oras.
GetLongLong, samantala, bagaman stupidly pinangalanan, ay talagang lamang ng isang
integer na dalawang beses na malaki, dalawang beses bilang mahaba, potensyal na, bilang isang regular
integer, 64 bit sa halip na 32.
At GetString namin na ginagamit mo.
>> Ngunit ito lumiliko out, sa CS50 library, na kung saan ay ipinatupad, dahil kakailanganin naming makita, sa
ang form sa dalawang mga file, ang isa sa kung saan ay tinatawag na cs50.h, ay may dalawang iba pang mga
mga uri ng data sa loob nito.
Booleans hindi umiiral sa C. Maaari mo gayahin ang mga ito sa pamamagitan lamang ng paggamit ng 0s at 1s
sa kabuuan ng iyong mga programa.
Ngunit kami sa CS50 library nalikha ang mga simbolo ng "true" at "hindi totoo"
upang kumatawan sa 1 at 0 kaya hindi mo pag mayroon sa hard code isang bagay
Literal na tulad ng 1 at 0.
Ngunit kailangan naming makita ang mga muli.
>> String, masyado, ay hindi umiiral.
At iyon ang dahilan kung bakit nabanggit ko ito isang bit ng isang maliit na kasinungalingan para sa ngayon.
Ngunit bibigyan namin ng alisan ng balat pabalik na layer bago ang haba.
Ngunit para sa ngayon, ang isang string ay isang pagkakasunud-sunod ng mga character.
>> Samantala, sa C, ikaw talaga magkaroon ng iba't ibang mga uri ng data.
Pansinin ang mga ito ay maliit.
Kaya ang pag-andar na nakita mo ng ilang sandali ang nakalipas mga function na isinulat ng CS50 na
ay magbabalik sa iyo ng isang halaga na babagsak sa isa sa mga kategoryang ito.
>> Ilang mga sheet impostor lamang sa Plant ang binhi dito. printf ay hindi lamang
tumagal% s bilang placeholder.
Tatagal% d para sa decimal integer, % o nais i gumana pati na rin.
F% ay lumulutang halaga punto. % C ay para sa isang pansamantalang trabaho, kung gusto mong i-plug lamang ng isa
na character sa isang string preformatted tulad namin na-paggawa, maaari mong gamitin% c.
>> At pagkatapos, medyo annoyingly,% lld ay para sa isang mahaba, mahaba decimal integer,
na kung saan ay nangangahulugan lamang kung kailangan mo ng isang tunay malaking numero at gumagamit ka ng isang bagay
tinatawag na isang mahabang haba, na makikita namin dumating pabalik sa sa isang pset, maaari mong gamitin% lld sa
sabihin printf, plug sa isang talagang malaking integer dito sa pamamagitan ng paraan ng kanyang ikalawang o
sa ilang ibang mga argumento.
>> At bilang wakas, ipinangako ko na mayroong ilang mga iba pang escape
mga pagkakasunud-sunod na printf sumusuporta sa.
Nasaksihan namin backslash-n.
Backslash-r maaari mong makita.
Ito ay uri ng isang lumang-paaralan na bagay.
Kung sakaling gumamit ka ng real taon makinilya ang nakalipas at nakuha mo sa pihitan
kung saan hindi lamang Pinaikot ang wheel upang ilipat ang lineup, ito rin inilipat ang
buong bagay sa lahat ng mga paraan pabalik sa paglipas ng sa sa kaliwa, mahusay, backslash-r lang
mahalagang gumagalaw ang iyong cursor pabalik sa simula ng linya
nang hindi gumagalaw ito pababa.
Ngunit muli, higit sa na, marahil, sa hinaharap.
>> Backslash-quote, backslash-double quote, backslash-backslash ay ang
solusyon sa mga maliliit na maliit na bugtong Ako alluded upang mas maaga.
At backslash-0 ay talagang medyo kawili-wiling.
Ngunit kami ay bumalik sa na bago ang haba.
>> Kaya hayaan mo akong pumunta sa, ngayon, ang CS50 appliance, at sabihin talagang gawin ang isang
mabilis magpainit gamit ang isa sa mga halimbawa namin ginawa na at pagkatapos ay lumipat sa
isang bagay ng kaunti pa sa kumplikado.
Kaya kung buksan ko ang aking programa tinatawag gedit -
ito ang aking graphical editor.
At maaari kong gawin na -
hayaan mo akong isara ang window na may -
sa pamamagitan ng paraan ng icon na ito pababa dito, gedit, sa ibabang-kaliwa
sulok sa tabi ng menu.
>> Pupunta ako sa sige at isulong, at i-save ang halimbawang ito sa, sabihin nating, John
Harvard na folder.
John Harvard na folder lamang ang kanyang bahay direktoryo kung saan ang lahat ng kanyang mga file na mabuhay
sa pamamagitan ng default.
At ako pagpunta sa i-save ito bilang isang file na tinatawag na halo-0.c.
At pinili ko ang pangalang ito lamang kaya ito mga linya up sa sample code sa
Siyempre website at sa mga YouTube video online.
>> Kaya ngayon ako pagpunta sa magsimula sa isulat ang aking unang programa.
Hayaan akong mag-zoom in para sa kalinawan.
At ako pagpunta sa sige at sabihin int pangunahing walang bisa, na kung saan ay tulad lamang na
dilaw puzzle na piraso Nagsisimula ang isang programa.
Ako nakuha sa mga ugali sa ibabaw ng taon ng pagbubukas ng aking kulot suhay, pagkatapos ay
din ito isara at pagkatapos ng pagpunta pabalik sa kung saan Gusto kong ilagay ang aking code, lamang
dahil ito ay tumutulong sa akin panatilihin ang lahat ng bagay balanced, lalo na bilang aking
programa ay nakakakuha mahaba.
>> At ngayon, sa dito, pupuntahan ko sige at sinasabi, printf, banggit magpanipi,
kumusta mundo, backslash-n, malapit na quote, malapit panaklong, tuldok-kuwit.
Kaya lang ako sa paulit-ulit na ang lahat ng bagay na namin Na-pagkuha para sa ipinagkaloob kaya malayo.
Ngayon ako pagpunta sa mag-zoom out.
>> At ito terminal na window down na dito, kung ano ako pinapayagang gawin ito sa itim
at puting window?
Ano ang maaari kong gamitin ito para sa?
Kaya ito ay kung saan nagpatakbo ako ng mga utos at kung saan ang maaari kong ipunin ang mga bagay.
At ako pagpunta sa panatilihin itong simple.
Pupunta ako sa gumamit ng isang program Gumawa ng tinatawag na, na kung saan ay hindi
technically isang tagatala.
Tinatawag kalatungin Ang tagatala, subalit kami ay bumalik sa na sa isang
o dalawang linggo ng oras.
>> Para sa ngayon, tingin lang ako sa pagpunta sa i-type gumawa halo-0, Ngunit ang mga ng sa iyo kung sino ay
naghahambing sa iyong isip kung ano ko lang nai-type sa kung ano ang dapat kong nai-type maaari
alam na na ginawa ko sira dito.
Ngayon, mayroong malinaw na ang ilang mga error.
Bago ako kahit na tumingin sa kung ano ang mga ito, ang anumang mga saloobin bilang sa kung ano ang ginawa kong mali?
>> ESTUDYANTE: [INTERPOSING boses].
>> David MALAN: Oo.
Ako nawawala header na file ng library.
Alinman sa mga ito. H file ay tinatawag na header mga file, at sila ay sama-sama
nabibilang sa mga bagay na tinatawag na mga aklatan.
Mga Aklatan lamang ang chunks ng code na ang ibang mga tao ay nagsulat.
Kaya ang pamantayang [? i?] library ay isang koleksyon ng mga file na naglalaman ng code
na ang ibang mga tao ay nagsulat.
>> Kaya ako nawawala na.
Kaya bakit ako nakakakuha ng isang error?
Well, ipaalam sa akin mag-scroll back up sa ang aking mga terminal na window dito.
At sa kasamaang-palad, sa C, bilang ng maraming programming wika, lalo na
kung ang lahat ng ito ay bago sa iyo, ang mga error mensahe ay tumpak, ngunit ang mga ito ay din
masyadong misteriyoso.
At ang mga error dito, sa pula, ay "Nang kataon lamang deklarasyon library function na
printf na may uri, "at pagkatapos ito scroll sa susunod na linya, "int const pansamantalang trabaho *,
... "Ito lamang ay nakakakuha talaga napakatinding mabilis.
>> Ngunit ano ang dapat mong simulan ang gagawin, kung, muli, bago sa lahat ng ito, ay isa lamang sa
simulan upang tumingin para sa mga keyword.
Malinaw, maaaring hindi ko maintindihan kalahati sa mga salita akong nakikitang pa lamang.
Kalooban mo, bagaman, sa panahon ng linggong ito.
Ngunit nakikita ko printf.
At iyon ay dapat na magsimula, bago mahaba, upang buhayin ang alaala ng iyong memorya, ang lahat ng karapatan, printf.
Isang bagay ang mali sa printf.
Ang ibig kong oras ng paggawa ito mali?
Hindi, hindi ito hitsura - oh.
Hindi ko gamitin ito maliban kung magturo ako ang tagatala na ito ay umiiral na.
At kaya, muli, pumunta sa iyong instincts, kahit na hindi mo talaga maintindihan
ang tunay na mensahe ng error.
>> At sa katunayan, ang solusyon dito ay upang lamang isama ito sa tuktok ng file
tulad na, resaving aking file na may Control-S o ang File menu.
At kung ako ngayon bumalik pababa dito, Pupunta ako upang i-clear ito.
Control-L lamang ang isang magaling na paraan upang i-clear ang screen.
At pagkatapos ay ako pagpunta sa i-type ang "gumawa ng halo 0 "Enter, at ngayon ko pa rin makita ang isang
misteriyoso pagkakasunud-sunod ng mga simbolo, ngunit kami ay bumalik sa na.
Iyon ay kung ano Gawing ay ginagawa para sa iyo.
Ito ay automating ang proseso ng pagkuha ng isang medyo nakakainis na utos na kinasasangkutan
Kalatungin, ang aktwal na tagatala.
Ngunit ang katunayan na ang nakuha ko walang mga error ay nangangahulugan bagay na ito ay dapat na gumana.
>> Kaya ngayon ako pagpunta sa gawin - hayaan mo akong mag-zoom in muli -
Ipasok ./hello-0, at sa katunayan, nakikita ko "Kumusta, mundo." Kaya natin ngayon paghusayin
ito kailanman kaya bahagyang lamang sa magtiklop ang mga hakbang namin nilalayon.
Pupunta ako sa palitan ang pangalan na ito sa I-save Bilang upang hello1.c.
At ngayon ako pupunta na idedeklara ng isang variable tinatawag na pangalan, kaya string pangalan,
at ako pagpunta sa ilagay ito sa ang halaga ng mga quote-magpanipi
D-A-V-ko-D malapit-quote tuldok-kuwit.
At ngayon pupuntahan ko na palitan ang "mundo" may ano placeholder para sa isang string?
% S.
>> At ngayon, kung gaano karaming mga argumento dapat printf tumagal ng oras na ito?
Kaya dalawa.
Kaya pumunta ako sa labas ng quote.
I-type ang "pangalan" pagkatapos ng isang kuwit.
Pero gumawa ako ng isang bagay iba maling oras na ito.
Ngunit sabihin ipinapalagay na ako ay hindi Napag-alaman na pa.
Hayaan akong pumunta up dito.
>> At notice, masyadong, nakakakuha ako ng isang maliit na nainis ng pag-type ng "gumawa ng halo 0" ang lahat ng mga
oras, "gumawa" at ang lahat ng ito.
Kaya, ito lumiliko out, sa Linus maaari mong madalas pindutin ang Up arrow sa iyong
keyboard, at maaari mong talagang mag-scroll sa pamamagitan ng lahat ng mga utos na nag ako
pinaandar nakaraang sa ngayon lang.
Kaya kung gagawin ko na, Up, Up, mayroong gumawa kumusta 0.
Hindi ko nais na.
Katatapos ko lamang nais na baguhin iyon upang kumusta 1 oras na ito, ang Enter.
Sa paglaon, na kalooban i-save ka ng ilang oras.
>> Ayos lang.
Sa kasamaang palad, mayroong ay isang error.
Kaya hayaan mo akong mag-scroll pataas.
Ito kamukha ko talaga lapa sa programang ito.
Ibig kong sabihin, ang aking diyos, ito ay dalawang linya ng code, at ang 10 mga linya ng mga error.
Ngunit tumingin sa tuktok ng isa muna.
Gumamit ng hindi nagbigay-alam identifier string.
Ang ibig sabihin ko standard n i?
Walang ako ay hindi.
Ako nilalayong string.
>> Ngunit kung saan ay ang string variable uri ipinahayag, DD sabihin namin?
Kaya sa CS50 ang library.
Kaya ito ay hindi makasapat, sa mga unang dalawang linggo, para lang gamitin
ano C ay nagbibigay sa amin.
Din ako ng pagpunta sa pumunta up dito, at ako maaaring ilagay ito sa itaas o sa ibaba, ngunit idedetalye ko
lamang panatilihin ito alpabetikong upang panatilihin ang mga bagay na nasa ayos.
Pupunta ako upang isama cs50.h, na kung saan ay pre-install na para sa
mo sa CS50 appliance.
At ito ay open source, kaya kahit na mga tao sa internet ay gamitin ito sa kanilang
sariling computer.
Ngunit ito ay may mga CS50 appliance.
>> Kaya ngayon hayaan mo akong bumalik at mag-recompile ito may gumawa halo 1.
Diyablo.
Pa rin ng isa pang error.
Hayaan ang mga mag-scroll up ako sa unang, bagaman.
Isa na ito ay isang maliit na mahirap unawain.
Multi-character character na pare-pareho.
Na hindi pagtulong sa akin.
Ngunit paunawa, kalatungin ay hindi bababa sa isang maliit na bit disente, kung saan may isang maliit na
berde kareta simbolo, ito ay sinasabi dito ay kung saan ako screwed up.
Bakit ito na tumuturo, na may kaunti berdeng arrow, upang ang single quote sa tabi
upang ang aking pangalan?
>> Kaya ito ay isa sa mga bagay na ikaw lamang masanay, lalo na kung nakapunta
mga programa sa Python, o JavaScript, o iba pang mga wika kung saan ito detalye
ay hindi mahalaga.
Sa C, ito ang bagay na ito.
Kung ikaw ay deklarasyon ng isang string, na kung saan ay isang pagkakasunod-sunod ng 0 o higit pang mga character,
ikaw talaga dapat gumamit double quotes.
Kaya ko talagang kailangan upang baguhin ito pabalik para buksan ang quote, isara quote, may
double quotes.
Single quotes ang mayroon ang kanilang mga lugar, ngunit lamang kapag gumagamit ka ng mga indibidwal na
char, ngunit higit pa sa na ibang oras.
Para sa ngayon, ang double quote ang kinakailangan.
>> Kaya ngayon, hayaan mo akong bumalik sa aking terminal window, gumawa ng halo 1.
At sino ang may tiwala?
Ay programa na ito ngayon ng pagpunta upang ipunin ang tama?
OK.
Kaya tatlo sa amin sa tingin ito.
Ayos lang.
Enter.
At talagang ginawa.
Kaya walang mga error sa oras na ito, kahit na kahit na programa na ito ay nakuha ng isang bit
mas kumplikado.
Kung ako ngayon gawin dot slash kumusta 1, Magpasok, ito ay pagpunta sa sabihin "kumusta, si David."
>> Ngunit sabihin gawin ang ikatlong pag-ulit ng mga ito, kung saan ang
programa ay tunay dynamic.
Hayaan akong sige at baguhin ang file pangalan, para lamang sa pagsunod sa mga
mga file magkakaroon ka ng magagamit sa iyo Pagkatapos online.
Enter.
At ngayon ako pagpunta sa pumunta sa at hindi imbak ng "David" hard code dito.
Ano ang maaari kong gawin sa napaka-simple mapabuti ang program na ito?
>> Kaya kong tumawag getstring.
Maaaring maging isang maliit na di-halata kung ano ang tungkol sa nangyayari, kaya ako pupunta
upang aktwal na magdagdag ng isa pang linya, printf, at sabihin ang pangalan, colon, malapit quote, lamang
upang bigyan ang mga gumagamit ng prompt sa screen.
At ngayon pupuntahan ko pumunta dito, at ako pagpunta sa gamitin ang aking mga shortcut sa keyboard.
Pupunta ako sa pumunta Up, Up, at baguhin kumusta 1 upang kumusta 2, ang Enter.
At thankfully, ako sa paggawa ng progreso.
>> At ngayon ako pagpunta sa pumunta up sa dot slash kumusta at
palitan na sa 2, ang Enter.
At ngayon ang aking mga program -
Magtatagal ako mag-zoom in - ay hindi nakakakuha medyo prettier.
Pangalan ay magiging, sabihin nating Rob oras na ito, ang Enter, kumusta, Rob.
Maaari naming gawin ito muli.
Pangalan, Lauren, ang Enter.
Pangalan, Joseph, ang Enter.
Pangalan, sabihin subukan upang maging mahirap, ang Enter.
Eh.
Ito ay hindi talagang isang bug.
Kaya ito ay lamang ng isang maliit na pangit.
Kaya marahil maaari naming malutas ito sa hinaharap, hindi na ngayon.
>> Ngunit paano gagawin mo nang katutubo pumunta tungkol sa pagtugon sa
na partikular na hamon?
Ito lang mukhang bobo.
Paano ninyo iwasan ang mga bagay na Naghahanap bobo?
Kaya maaari naming gawin, OK, Narinig ko ng isang pares ng mga bagay, isang kalagayan at isang loop.
Maaaring gamitin namin, isa, isang kalagayan, upang suriin ano ay ang haba ng string
ang gumagamit ay nagbigay sa amin?
At kung ito ay 0, lamang ito sipiin magpanipi, lang nila pindutin ang Enter, pagkatapos ay
siguro ang dapat kong sumigaw sa kanila at i-prompt ang mga ito muli.
Ngunit paano isang prompt muli ang mga ito?
Well, ako ay nakarinig loop, at maaari ko gawin na muli at muli at muli
pagdikta sa gumagamit para sa mga parehong bagay.
>> Well, sabihin gawin ang isa sa iba pang mga halimbawa paggamit ng ibang
pagpapaandar sa CS50 library.
Hayaan akong isara ang file na ito.
Hayaan akong gumawa ng bago.
At Tatawag ako adder.c ito, dahil lamang madaling gawin simpleng aritmetika,
kahit na ito ay magiging ganap underwhelming sa kung ano ang maaari mong gawin
sa anumang mga modernong computer.
>> Ngunit ipaalam sa akin sige ngayon at -
Natutunan ko ang aking mga aralin huling oras - isama cs50.h, ay kinabibilangan ng stdio.h, int
pangunahing walang bisa, na, sa ngayon, bibigyan ko lang kumuha sa bulag na paniniwala, ngunit gagamitin namin ipinapalagay
na maunawaan kung ano ang na nangangahulugan na bago ang haba.
At ako pagpunta sa sabihin ng isang bagay tulad ng "bigyan ako ng int."
>> At ngayon, paano ako makakakuha ng isang int?
Gusto kong sa huli idedeklara isang variable tinatawag na x uri ng int at
mag-imbak ito sa isang integer mula sa user.
Kaya na ay isang katiting.
Ngunit kung ang isang tao ay nais na imungkahi, paano ako magpahayag ng isang integer na tinatawag na x?
Int x.
>> Kaya ito ay tunay na simple.
Bigyan mo ako ng isang int.
Tumawag ito x.
Ngayon gagamitin ko ang pagtatalaga operator.
At paano ako mag-imbak mula sa iniwan ng isang halaga ng mga gumagamit?
Hindi ko nais na tumawag getstring, malinaw naman, ngunit sa halip getint.
Anumang mga argumento?
Hindi.
Kaya ito ay bukas paren, malapit paren agad, at pagkatapos a
semicolon nagtatapos ang linya.
>> Ngayon ipaalam sa akin gawin ito muli.
Bigyan mo ako ng isa pang int.
Oras na ito kailangan kong gawin int, sabihin tumawag ito y, katumbas getint.
At ngayon hayaan gawin sa akin ng isang bagay na super-simple tulad ng ilang mga matematika.
Kaya printf, ang kabuuan ng% d ay ang placeholder para sa isang int.
At% d, panahon, backslash-n.
>> Ayos lang.
Kaya na hindi talaga math.
Ngunit kung gusto kong sabihin ang kabuuan ng mga ito halaga plus ito ay katumbas ng halaga na ito
iba pang mga halaga, kung gaano karaming mga argumento sa kabuuang dapat kong pagbibigay printf,
sa huli?
Kaya apat, tama?
Ang string na ito at pagkatapos ay ang tatlong mga halaga.
Kaya x ay ang unang Gusto kong maging naka-plug in muna sa% d.
y ay magiging ang susunod.
>> At ngayon ko uri ng nais na sabihin z, ngunit z ay hindi umiiral.
Ngunit hindi iyon isang malaking deal.
Dahil kung ano ang gusto mong gawin nang katutubo, lalo na kung ikaw ay nagkaroon ng isang
graphing calculator, ano ang gagawin mo type?
Paano ang tungkol sa x plus y?
Kaya ito ay hindi isang aktwal na variable.
Ito ay lamang ang kabuuan ng dalawang iba pang mga variable.
At iyon ang perpektong lehitimo.
C tiyak na nauunawaan ng simple pang-aritmetika tulad nito.
>> Tuldok-kuwit, i-save.
Ngayon hayaan mo akong pumunta down na dito at type gawing ahas, ang Enter.
Walang mga error, sa gayon ay ang pag-unlad masyadong.
I-type ang nagsasama.
At isa pang shortcut sa keyboard, kung nagsimula ka upang nababato
sa lahat ng mga utos -
kung sinimulan mo ang pag-type ng isang command, tulad ng tuldok iwa ad, at na kung saan ang iyong
inip kicks in, maaari mong pindutin ang karaniwang Tab na magkaroon ng computer ng tapusin ang
magpahinga ng mga parirala para sa iyo kung ito ay hindi hindi maliwanag kung ano ang dapat dumating pagkatapos ng ad.
>> Kaya ipaalam sa akin sige ngayon at i-click mo ang Enter.
Bigyan ako ng isang int, 1, 2, at thankfully, ito ay 3.
Ngunit gaya ng lagi, programa sa pagsusulit hindi dapat bawasan sa
Sinusubukan lamang ito nang isang beses.
Hayaan akong subukan ang isang sulok kaso, tulad ng mga negatibong 1, akong bigyan 1, at na ang isa
sumusuri out pati na rin.
At ako marahil ay gusto mo upang gumawa ng ilang higit pa mahigpit na pagsubok, ngunit ako ay medyo
komportable sa kung saan na sa.
>> Well, ngayon sabihin sumubok ng isa pang programa oras na ito ay gumagamit ng isang
bit ng iba pang mga syntax.
Hayaan akong lumikha ng isang bagong file.
Tatawag ako ito conditions0.c sa linya up gamit ang ilan sa mga online sample code.
At ipaalam sa akin sige at gawin isama cs50.h, isama
stdio.h, sa main walang bisa -
OK.
Nagkaroon kami pumunta.
Mayroon kaming aming karaniwang boilerplate.
>> At oras na ito ako pagpunta sa sabihin printf, "Gusto ko ng isang int, mangyaring," lamang upang
gumawa ng prompt ng kaunti mas friendly.
At ngayon nais ko upang makakuha ng int mula sa user.
Pupunta ako sa call na ito n oras na ito, lamang dahil n tunog tulad ng numero.
getint, at ngayon, kung ano ang ginagawa Gusto kong gawin sa mga ito?
Well, kung n ay - at kukunin ko na mag-zoom in -
kung n ay mas malaki kaysa sa 0, nais ko upang gawin ang mga sumusunod -
printf "Pinili mo ang isang positibong numero." Iba Pa, pupuntahan ko type printf "Ikaw
kinuha ng isang negatibong
numero. "Lahat ng karapatan.
Kaya sa programang ito, kahit na ginawa ko ito mabilis, mukhang tama syntactically.
Hayaan akong subukan ito.
Gawing kundisyon 0.
Mukhang tumakbo.
Kundisyon 0, ipasok.
Sabihin bigyan ito ng isang int na 50.
Ako kinuha ng isang positibong numero.
Tayo'y subukan ito muli.
0 kondisyon.
Negatibong 50.
Ako kinuha ng isang negatibong numero.
>> Ngunit ngayon, hayaan mo akong pumili kung ano ang itinatago namin pagtawag sa isang sulok kaso, na kung saan ay higit pa
isang kawili-wiling case na sa tingin mo maaaring magbigay sa iyo ng ilang mga problema, 0.
Ngayon, ako ay medyo sigurado na ito ay isa sa mga mga sulok mga kaso kung saan ay zero
alinma'y hindi positibo o negatibong, kaya ang aking programa, bagaman sa syntactically
itama - ito compiles, ito ay nagpapatakbo - ay hindi tamang lohikal.
Kaya kung ano ang mga simpleng pag-aayos dito kung gusto ko upang matagpuan, kapag gusto kong mahawakan ang n
ay katumbas ng 0 magkahiwalay?
>> Kaya kung n ay katumbas ng 0, pagkatapos ay gusto kong sabihin isang bagay tulad ng printf "Pinili mo ang 0."
Hayaan akong subukan ito ngayon.
Hayaan akong bumalik dito, i-clear aking window, at mag-recompile.
Hm.
Isang error makabuo.
Subalit ko nais na tingnan mo kung n ay katumbas ng 0.
>> Kaya muli, isa pang bobo bagay upang masanay, katumbas ng pag-sign ay
ang pagtatalaga operator.
Kaya ito ay talagang mali sa na, technically, kahit ang tagatala
protektado sa akin mula sa aking sarili, kami ay technically ay pagkopya 0 sa n, na
ay hindi kung ano ang gusto ko.
Gusto kong subukan para sa pagkakapantay-pantay may katumbas ay katumbas.
At kaya na ngayon ay maaaring maging ang aking mga mas mahusay na solusyon.
>> Hayaan akong talaga resave ito bilang, sabihin nating, conditions1, upang maging bago at pinahusay na.
Kaya ngayon kung mag-recompile ko ito, Gusto ito gumawa ng mga kondisyon -
Oops - gumawa conditions1 dot slash conditions1, Magpasok, "Gusto ko ng isang int,
pakiusap. "Pupunta ako upang pumunta Magpatuloy at i-type 50.
Ito ay mabuti pa rin.
Negatibong 50, mabuti pa rin.
0, at, sa katunayan, nakita na ako kinuha 0.
>> Kaya ano pa ang maaari kong gawin ngayon na may ito?
Well, maaari naming gawin ay tiyak na nagiging kumplikadong mga bagay.
Ngunit kung ano ang nais kong imungkahi ay kami na magtatapos sa talang ito dito.
Kung namin hilahin pataas ito, makakakita ka ng, siguro, isang paboritong karikatura ng sa iyo
hanggang ngayon maaari mo hindi pa maintindihan.
At iyon ang tungkol sa kalidad ng tawa Dapat kang makakuha ng may CS biro.
Kaya na ay tungkol sa kanan.
>> Ngunit higit pa compellingly, naisip ko na gusto ko bigyan kami ng isang maliit na teaser para sa Lunes.
Kaya namin nasimulan ang paggamit ng integer.
Na namin ang tinutukoy sa kamay.
Kahit na namin ang tinutukoy Doubles, kung saan, muli, bigyan ka ng mga numero
pagkatapos ng decimal point.
>> Ngunit ito lumiliko out na sa kamay at Doubles, at, talaga, mga computer,
sa panimula, hindi maaaring ipahayag sa ilang mga halaga tumpak.
Alam namin mula sa mga klase sa math na maaari mong magkaroon ng anumang bilang ng mga numero pagkatapos ng
decimal point.
At maaari ka ring maglagay ng isang patayong bar sasabihin ng mga pumunta sa magpakailanman.
>> Sa kasamaang palad, hindi mo talaga makakaya gawin iyon sa isang computer.
At gayon sulok kaso pumailanglang.
Halimbawa, ipagpalagay na ikaw ay paggawa ng isang bagay sa pananalapi.
Ikaw ay gumagawa ng matematika may mga porsyento, at
may dolyar at sentimo.
At ang mga cents gawin hindi kinakailangang linya up.
Well, ito lumiliko out na fractions ng pennies maaari simulan upang magdagdag ng hanggang kailan
imo-modelo sa isang computer na sistema sa paraan na matalino
kawani na tao ay maaaring samantalahin.
>> At iyon ng sa iyo na hindi nakita, Gusto ko i upang bigyan ka ng isang 30-segundong teaser ng
isang kahanga-hangang pelikula na kilala bilang Office Space, na kung saan ay pintura ng isang larawan ng isang
problema tayo pagharap sa isang bagay unang bagay na sa Lunes.
Kung maaari naming taasan ang lakas ng tunog Medyo, bigyan mo ako 30
segundo ng Office Space.
>> [Video playback]
>> -Ko ibig sabihin, sa iyo, hindi mo pa nai-nagpapakita up at makakuha ng mong panatilihin ang iyong trabaho.
>> -Talaga, ako na pino-promote.
>> -Ako maaaring programa ng virus na gusto punitin na lugar off malaking oras.
>> -Well, kung paano ito gumagana?
>> -Sa bawat oras na may isang bank transaksyon kung saan ang interes ay nakalkula, at doon
libu-libong sa isang araw, ang computer ay nagtatapos up sa mga fractions ng isang sentimo.
>> -Ngunit hindi ako pagpunta sa gumawa ng kahit ano ilegal.
>> Ilegal na-?
Samir, ito ay America.
>> -Mayroon kaming upang isumpa sa Diyos.
>> -Kung walang saysay na tao alam tungkol sa ito pero sa amin, ang lahat ng karapatan?
Walang mga miyembro ng pamilya, walang girlfriends, walang saysay na tao.
>> -Siyempre.
>> -Sumang-ayon.
>> Don't-alala, tao.
Hindi ko sasabihin sa kahit sino alinman.
>> [END-playback ng video]
>> David MALAN: Kaya ito, pagkatapos, ay CS50, na noon ay Office Space, at kalooban ang lahat ng ito
magkaroon ng kahulugan sa Lunes.
Tingnan mo pagkatapos.
>> Tagapagsalaysay: Sa susunod na CS50, Rob nag-aayos sa pagiging off ang
Harvard meal plan.