>> Rob BOWDEN: Ito ang mas kumportable seksyon,
ngunit na ay hindi nangangahulugan na kung iyong parang hindi ka mas kumportable
hindi mo na malaman ang mga bagay-bagay dito.
Kaya sabihin makapagsimula.
Mayroon ba kayong mga slide pagpunta pakanan papunta bagay.
Ako tungkol na kumuha lang ito ngayon?
Pagpapalit ng mga laptop.
>> Allison: Hindi mo nais na ipakilala ang iyong sarili, Rob?
>> Rob BOWDEN: Oh, ako Rob.
Ito ang aking ika-limang taon tf-ING CS50.
>> Gabriel: Ako Gabriel.
Ako ulo tf ng CS50.
Ako ay tf noong nakaraang taon at sa taong ito.
Allison: At ako Alison, at ito ang aking pangalawang taon tf-ING CS50.
>> Rob BOWDEN: Ang lahat ng mga karapatan, sa gayon ito bagay sa kaliwa,
sana ay nakita mo ito bago.
Kung hindi dahil sa iyo i-download ito para sa iyong sarili,
Dapat na nakita mo ito sa aralin.
Kaya ito ay ang CS50 appliance, at siya May ginawang isang medyo ng isang paglalarawan ng ito
sa aralin.
Ngunit talaga na ikaw ito lamang ay nagpapatakbo ng operating
sistema sa loob ng iyong operating sistema upang maaari naming magbigay sa iyo
mga programang hindi nangangailangan mag-alala, oh ay ito
pagpunta sa gumana sa parehong Windows at Mac, o kung ilan sa inyo
ay gumagamit na ng Linux, Linux.
Lamang ito ay dapat na maging isang karaniwang nagpe-play
field kaya lahat ay mayroong mga parehong eksaktong kapaligiran.
>> Kaya kung hindi mo pa -download ito nagagawa,
dapat mong i-download ito, dahil ikaw ay pagpunta sa kailangan ito para sa hanay ng problema.
At ito ay isang dalawang gigabyte -download, kaya maaari itong tumagal ng sandali.
Sa Harvard magkakaroon ito pumunta mabilis.
Kaya CS50 appliance.
>> Ngayon sa simula, kami ay pagpunta sa -usapan lamang ng grupo ng mga command line
mga bagay-bagay, at ito sa pamamagitan ng na, ako ay nangangahulugang gumagana sa maliit na kapaligiran sa paglipas dito.
At mapansin ang lahat ng mga bagay Sabihin ko dito mismo ngayon
pupunta upang gumana kung ikaw ay nasa loob ng isang terminal sa loob ng appliance,
o kung ikaw ay nasa loob ng ang gedit terminal na window
sa loob ng appliance.
Kaya mga kapaligiran ay magkapareho.
>> Ngunit ako pagpunta sa pumunta sa isang third ruta.
At mapansin pababa dito ito maliit na IP address dito mismo.
Kaya hindi mo na kailangang mag gawin ito, ngunit IP na ito
address-- ngayon kung I-- maliban ito ay naka-block sa pamamagitan ng bagay na ito.
OK, kaya na IP address sa ibabaw sa isang terminal
here-- kaya ito terminal sa ibabaw dito ay isang terminal sa aking Mac.
Kaya ito ay hindi sa anumang paraan sa kasalukuyan na nauugnay sa appliance sa lahat.
At kung ikaw ay nasa Windows, pagkatapos ikaw ay pagpunta sa kailangan upang i-download ang isang bagay
partikular para sa ito, sa partikular na mga tao ay madalas gamitin masilya, P-U-T-T-Y.
>> Kaya kung ano ang ako pagpunta sa gawin ay ang uri ng SSH at pagkatapos na IP address.
Well, jharvard sa na IP address.
Kaya 192.168.24.220.
Ang nakakatakot na mensahe, huwag itong pansinin.
I-type lamang ang oo.
Ito ay CS50 sa isang kahon.
Humihingi ito para sa iyong password.
>> At kaya ng maraming mga konteksto kung saan ito ay humihingi para sa password, [hindi marinig].
Nakakuha kami ng maraming ng mga tanong kung saan sinasabi nito na hindi ito aktwal na pag-type.
Hindi nito ipapakita sa iyo ang mga character ng ang password habang nagta-type ka, kung anuman,
para sa isang tampok sa seguridad, dahil kung may isang taong naghahanap sa iyong balikat
at makikita nila ang star star star star, pagkatapos nilang
malaman na ang iyong password ay apat na mga character.
Kaya ang ideya ay ito ay tanungin iyo ang iyong password, i-type.
Hindi ito nangyayari upang ipakita ang mo ang mga character,
pero sa totoo ito ay tumatanggap ng mga ito.
Sa kasong ito, anumang oras mo kailanman makita ang isang prompt na password
pagharap sa mga appliance, ang password ay magiging pulang-pula.
Kaya ang Crimson.
>> At ngayon dito sa loob ng window na nasa aking Mac,
Talaga Nagkakaroon ako ng ang parehong eksaktong pagtingin
bilang sa loob ng isang terminal sa appliance.
Kaya hindi mo na kailangang gawin ito.
Maaari mong gawin mo ang lahat Gusto loob ng appliance.
Ako halos hindi kailanman talagang gawin kahit ano sa appliance.
Ako halos palaging i-minimize na at ngayon Ako ay nagtatrabaho SSH sa appliance.
>> Kung ang anumang bagay, kung magkaroon ng isang mas mabagal na computer,
maaari mong mapansin ang isang pagkakaiba.
Gagawin ko ito dahil Mas gusto ko ang terminal na window.
Ito ay may ilang mga tampok tulad ng Maaari ko bang hatiin ang window,
at ngayon ang maaari kong SSH sa sa pamamagitan ng appliance.
Mayroon akong dalawang SSH nangyayari sa nang sabay-sabay.
Kung ang iyong computer ay partikular na mabagal at nagtatrabaho ka sa appliance,
at natanto na ito ay talaga laggy, anumang.
Ay may gawi na maging mas mabilis kung ikaw ay SSH-ed sa.
Ngunit kung hindi man ay maaari kang magtrabaho sa alinman paraan.
>> Madla: Ano ang ibig sabihin ng SSH?
>> Rob BOWDEN: Secure shell, isang bagay tulad na?
Ano ang ibig sabihin ng SSH?
Gabriel: Secure shell.
Allison: Ito ay secure na lamang shell.
Rob BOWDEN: Secure shell.
Ito ay isang protocol na you-- ito isang secure na protocol, kaya naka-encrypt.
Ang mga tao ay hindi maaaring subukan ang network at makita kung ano ang iyong sinasabi sa anumang bagay
ikaw ay SSH-ed sa.
At sa katunayan, sa noong unang araw ng CS50, kaya sa 2009
kapag ako ay isang primer anyo, ang paraan sa ka nagtrabaho sa CS50 mga hanay ng problema,
ikaw SSH-ed sa ilang server na nagbigay kami sa iyo ng access sa,
at nagtrabaho sa doon.
Kaya mo ay walang ito graphical appliance.
Hindi mo kinailangang gedit.
Hindi ninyo ang lahat ng mga bagay na maaari mong biswal point at i-click ang.
Nagkaroon ka ng upang gumana sa interface na ito.
Mas gusto ko upang gumana sa interface na ito.
Kaya bahagi ng kung ano kami ay pagpunta na pagpunta sa paglipas ngayon
ay isang bungkos ng utos na dapat mong
simulan upang maging pamilyar sa bilang kang pumunta sa kahabaan sa kurso.
At totoo lang, sa sandaling masanay sa kanila, ito
ay kaya magkano ang mas mabilis na gumagana sa environment na ito
kaysa ito ay upang gumana sa mga tagahanap, pag-drag at pag-click sa mga bagay.
>> Kaya dito tayo.
Ngayon ko lang SSH-ed sa, at sa gayon ang default na location-- mo
Nakita ang ilan sa mga command sa klase, ngunit kami ay pumunta sa paglipas ng lahat ng mga ito muli.
Ang default na lokasyon Ikinalulungkot namin sa ang home directory.
At direktoryo, lamang isa pang salita para sa folder.
Kaya hindi namin sa home directory.
I-type ang l, ilista ang mga file sa direktoryong ito.
Maliwanag Lumikha ako ng blah.c mas maaga.
Kaya mayroon kaming isang direktoryo desktop.
Mapansin mo ang syntax-highlight?
Ang mapusyaw na asul na-highlight ay nagpapahiwatig ang isang direktoryo at ang mga matuwid na puti
Ipinapahiwatig lamang ng isang plain na file.
Kaya doon ay magiging ilang iba pang mga kulay na nakikita mo.
Isang executable file ay marahil pagpunta maging berde o isang bagay tulad na.
OK, kaya hindi namin sa home directory.
>> Ngayon kapag gusto kong pumunta sa ibang direktoryo, cd ay ang command na nais ko.
Kaya baguhin ang direktoryo, at pagkatapos ay sa iyo ipasa ang pangalan ng direktoryo
na nais mong pumunta sa.
Kaya dito mayroon kaming apat na mga pagpipilian.
Maaari ba akong pumunta sa pag-download, at ngayon nakikita namin dito ay na-update na ito sa ganitong nakakahinto
sasabihin ako sa ~ / download.
>> Kaya kung ano ang tilda?
Ito ay isang shorthand para sa iyong home directory.
Kaya halos lahat ng bagay gagawin mo ay pagpunta sa maging may pagsasaalang-alang sa iyong home directory,
at PWD ay isang utos lamang Gumagamit ako ng isang beses sa isang taon na
Pini-print lamang ang kasalukuyang direktoryo.
At kaya nakikita mo dito na ~ / Pag-download talagang lumulutas
sa / tahanan / jharvard / download.
Kaya / bahay / jharvard ang aking home directory.
>> Kaya namin cd tuldok na tuldok.
Ngayon na tuldok na tuldok ay isang espesyal na direktoryo na palaging ay tumutukoy sa isang direktoryo up.
Kaya kung ako sa ~ / pag-download, pagkatapos ay i-cd tuldok tuldok ay pagpunta upang dalhin ako sa tilda.
Ano sa tingin namin cd tuldok tuldok Mawawala upang dalhin ako sa ngayon?
Ito dalhin ako sa / tahanan.
Kaya tilda ng naka-print na direktoryo ng pagtatrabaho, Ako sa ngayon / bahay / jharvard.
isang direktoryo up mula sa na, ngayon sinasabi nito dito / bahay.
>> Ngayon cd tuldok na tuldok.
Ngayon ako sa root directory, at hindi mo maaaring gawin itong muli.
Makikita mo lamang manatili sa root directory magpakailanman.
Ang root directory ay may buong bungkos ng mga bagay na iyon, kung gusto mong hanapin sa,
magagawa mo na.
Halimbawa, kung pumunta ako sa bin, na naglalaman ng
lahat ng mga binary, tulad ng l, at cd, at lahat ng mga bagay.
Kaya ang mga utos kailangang umiiral sa isang lugar sa system,
at ito ay sa / bin direktoryo.
Pero halos lahat ng bagay gagawin mo ay magiging mula sa iyong home directory.
At cd nang walang anumang mga argument kung ano pa man, maaari mong sabihin cd ~, hindi mo na kailangang.
cd ay pagpunta upang dalhin sa iyo pabalik sa iyong home directory.
>> Isang huling isa.
cd - ay pagpunta upang dalhin sa iyo pabalik sa huling direktoryo na ikaw ay sa.
Kaya lang cd'd ako nang dalawang beses sa isang hilera, kaya ang aking huling direktoryo ay ang home directory.
Kung pumunta ako sa pag-iwa bin, at ngayon hana up at sa gumagamit.
Magbahagi ng mga user.
Sabihin pumunta sa magbahagi ng mga gumagamit.
Ngayon ako ngayon sa magbahagi ng mga gumagamit.
cd -, pabalik sa bin.
Kaya ito ay makakakuha ng partikular na kapaki-pakinabang kapag have-- mo at makikita ito i-toggle.
Kaya magbahagi ng user, bumalik bin, magbahagi bin.
>> Kaya kapaki-pakinabang na ito ay nakakakuha.
Maaari mong mahanap ang iyong sarili pagkakaroon ng marami, maraming, maraming Nested mga direktoryo.
At gusto mong gawin ang isang bagay tunay mabilis sa isang mas mataas na direktoryo.
Pumunta ka sa directory na iyon, gumawa mga pagbabago at mga bagay-bagay na tulad nang,
at ngayon ay nais mong pumunta Bumalik sa kung saan kayo ay.
cd -.
Ako palaging bigo kapag mangyari kong pumunta
sa na direktoryo ko Nais upang gawin ang trabaho sa.
Palagi akong makakuha ng bigo kapag ginawa ko ito sa dalawang hakbang na ito sa halip na isang hakbang,
dahil na ay nangangahulugan na ang cd - ay pagpunta upang dalhin sa intermediate na lokasyon
sa halip na kung saan ko gustong pumunta.
>> Kaya nakikita natin ang lahat ng listahan ng mga file.
Alam namin kung paano makakuha ng paligid sa ngayon.
Kaya makipag-usap tungkol sa pag-edit ng mga file ipaalam sa ngayon.
Kaya sa kursong ito, ikaw ay halos laging inaasahan na gamitin ang gedit.
Kung gusto mo, maaari mong gawin ang mga susunod na hakbang at simulan ang pag-aaral ng isang command line na teksto
editor.
Kaya umiiral ang iba't ibang mga pagpipilian.
>> At ang mga iyon ay marahil magiging may-katuturan sa iyo,
mayroon kaming Nano, Vim, at GNU Emacs.
Kaya Nano ay ang mga nagsisimula editor ng teksto ng linya ng command.
Kaya ipaalam Nano ng pumunta sa blah.c aking nilikha nang mas maaga.
Ito ay lamang ang pamantayang ito C file.
At makakita ka ng buong bungkos ng mga bagay-bagay nagaganap sa ibaba ng screen,
at tila blah.c Naglalaman ito C code.
>> Kaya sa partikular na editor, kung ano ang sinasabi sa bottom--
ngayon simbolong ito caret, nakikita namin ito ^ G, ^ X, ^ O.
Upang sa halos lahat konteksto na iyong nakikita,
maaari mong makita na simbolo caret sa iba pang mga lugar sa online, sa Stack Umaapaw,
isang bagay tulad na.
Halos palaging ito ay tumutukoy sa kontrolin.
Kaya upang lumabas sa gusto kong gawin Control X. Control X, lumabas.
At maaari ko bang gamitin ang aking mga arrow key upang gumalaw sa paligid.
Pansinin Hindi ko ma-ituro at i-click ang maluwag sa loob.
Kailangan mong gamitin ang iyong mga arrow key upang gumalaw sa paligid.
Maaaring may isang setting upang ituro at i-click.
>> Subalit gumawa ng ilang mga pagbabago ipaalam.
Ngayon Control X upang pumunta sa exit.
Ito ay pagpunta sa sabihin-save binagong buffer.
Ngayon prompt, y para sa yes, n para sa walang.
Control C para kanselahin.
Kukunin ko na lang sabihin ninyo ang oo.
Pangalan upang magsulat ng file.
Ang default ay ang file na ito na ay.
Pindutin ang Enter.
OK.
Ngayon ay na-edit na lang ako ng file na iyon, -save ito, at ito ay nagbago.
>> Kaya Nano ay ang pinakamadaling editor ng teksto masanay.
Ang mga alternatibong mga Vim at GNU Emacs.
Iyon ang mga editor ng teksto mas mataas na antas na magkaroon ng isang napaka matarik na kurba sa pagkatuto.
Kaya ang aking personal na kagustuhan ay Vim.
At ito ay may iba't ibang uri ng mga pagpipilian.
At sa sandaling masanay dito, ikaw ay hindi kailanman
gustong pumunta sa anumang iba pang editor ng teksto dahil ikaw lamang
may kaya maraming bagay magagamit mo sa mga ito,
ngunit ito ay tumatagal ng isang talagang mahabang panahon upang matuto.
Kaya marahil gusto mo lamang na puwersahin iyong sarili ngayon upang makakuha ng gamit na ito,
ngunit Gusto ko sabihin ito ay nagkakahalaga ito.
Ngunit ito ay mahirap.
>> At pagkatapos ay GNU Emacs.
Palagi akong nagpupumilit sa GNU Emacs dahil Alam ko kung paano gawin ganap na walang.
Sa malas GNU Emacs ay hindi sa pamamagitan ng default -install sa appliance.
Ay malamang na magdagdag namin na bilang isang default na pag-install.
Sa sandaling matuto mo ang isa sa Kalakasan o GNU Emacs, mayroong
walang nakapanghihimok na dahilan upang kailanman malaman ang iba pang,
ngunit ito ay isang ganap na naiibang mga estilo.
OK kaya na-e-edit na mga tekstong file.
>> Madla: Kung ikaw ay natigil sa Vim ngayon, paano mo we--
>> Rob BOWDEN: May mga maramihang mga mode sa Vim,
at may mga buong tutorial sa pag-aaral Vim.
Kaya kung mangyari sa iyo na maging sa insert mode sa pagkakasunud-sunod
-type ng teksto, kung saan maaari kang ipasok na sa iba't ibang mga paraan,
ngunit i ay kung paano mo makakuha sa insert mode.
Sa o mawalan ng anumang mga espesyal na mode na ikaw ay nasa, Escape lamang.
At malakas na palo mo lamang Escape upang makakuha ng out sa anumang Nested mode iyong in.
OK lang, ngayon ako pabalik sa normal na mode.
>> At kaya sa normal na mode, ng tutuldok.
Ang makikita mo itong lumitaw sa ibaba.
At pagkatapos ay q.
Kaya q ay umalis kung nagsagawa ka ng mga pagbabago, kung saan ay mayroon I-- ginawa ko ang mga pagbabago?
Nagawa ko na ang mga pagbabago sa malas.
Kaya kung nagsagawa ka ng mga pagbabago, ipapakita ito sabihin maaari kang maglagay ng isang tandang padamdam.
Pupunta ako sa tumawag ito ng isang putok.
Kaya maaari kang maglagay ng ban sa makatarungan umalis nang hindi ginagawa kahit ano,
o colon wq ay i-save at umalis.
Kaya w sa pangkalahatan ay sumulat.
Kaya isulat ang file.
Maaari kong isulat at umalis.
O maaari mayroon kang lamang qx sumara nang malakas, q putok lamang
upang makakuha ng out ng doon nang walang kinalaman ng anumang mga pagbabago na iyong ginawa.
>> Ang lahat ng mga karapatan, kaya ngayon sabihin go-- maaari naming lumikha ng mga file.
Ng simulan ang pag-aalis ng mga file Hayaan.
At lamang ako makakakita magtapon sa isa mabilis na bagong utos, pindutin ang.
Kaya pindutin ang foo.
Touch bar.
Pindutin baz.
Kung ako l, ngayon nakikita namin na mga file na iyon umiiral.
Ang mga ito ay ganap na walang laman.
Kaya pindutin lamang ang isang madaling paraan ng isa, [hindi marinig].
Dalawang, technically lamang sa estado ito, ina-update ng ito ang mga timestamp.
Kaya ang anumang mga file na iyong nilikha ay timestamp na nauugnay dito.
Kaya baz ay nilikha sa Setyembre 14 sa 16:21.
Ito ay ngayon 16:22, kaya kung Hinawakan ko muli baz, kami
makita na baz naging pinaka -kamakailang binagong sa 16:22.
Ngunit kung hindi man halos Hindi ko kailanman tingnan ang mga timestamp sa mga file.
Kaya touch, dito ako lamang gamit ito upang lumikha ng ilang mabilis na mga file.
>> Ang lahat ng mga karapatan, kaya ngayon Rm ay ang utos na namin na nagmamalasakit sa dito.
At maaari naming Rm lekat.
Sabihin alisin ang regular na walang laman lekat file.
At maaari naming i-type y, at ngayon ito ay inaalis.
Rm baz.
Alisin ang regular na file na walang laman baz at uri n para sa walang.
Ngayon hindi ito naalis.
Kaya bar at Umiiral pa rin ang baz.
Foo ay nawala.
Gabriel: Panatilihin ang pakikipag-usap.
Rob BOWDEN: Mahusay.
Kaya ang nakakainis na mensahe dito, alisin ang regular na empty--
ano ang ginagawa mo down na doon?
Alisin ang regular na file na walang laman.
Kaya kung hindi namin nais na maging bothered sa pamamagitan ng mensaheng iyon,
maaari naming dagdagan ang -f flag, at sa gayon na puwersa.
At ngayon kung Rm ko -f, ito ay hindi pagpunta sa sabihin ang gusto mong alisin ang file na ito.
Ito lang gawin ito.
At l, hindi ko makita ang bar doon ngayon.
>> Ngayon na ang isang potensyal na mapanganib na command.
Ito ay may gawi na hindi masyadong masama.
Susubukan naming bumalik sa isang segundo kung paano Maaari itong makakuha ng talagang mapanganib.
At lumikha ng ilang mga direktoryo temp ipaalam.
mkdir, isa pang command.
Kaya mkdir ay isang command na gumagawa ng directory.
At ngayon sa pamamagitan ng l makita namin ito maganda ang ilaw asul na naka-highlight na direktoryo ng temp.
Maaari ako cd sa temp.
At maaari kong mkdir foo.
cd sa foo. mkdir bar.
cd sa bar.
>> Kaya nakikita natin madali namin sa ilang medyo malalim nesting.
Ngayon paano ko aalisin ang isang direktoryo?
rmdir.
Kaya kung ko lang diretso subukang Rm, tulad ng ginawa namin sa isang regular na file,
Rm bar ay pagpunta sa sabihin ay hindi maaaring alisin ang bar.
Ito ay isang directory.
Mayroong isang espesyal na utos para pag-aalis ng mga direktoryo, uri ng.
Kaya rmdir bar.
Ngayon bar ay nawala.
>> OK, kaya rmdir ko halos hindi kailanman gamitin.
Ang dahilan being-- ngayon sabihin gumawa ng isang regular na file bar in dito.
Kaya rmdir lekat.
rmdir.
Nabigong alisin ang foo.
Direktoryo ng laman.
Kaya hindi ka maaaring gumamit alisin dir sa isang direktoryo na mayroong mga bagay sa loob nito.
>> Kaya mayroon kang ilang mga pagpipilian.
Maaari kang pumunta sa directory na iyon, alisin lahat nang manu-mano, at pagkatapos ay ang
at rmdir direktoryo.
Malinaw na tunog nakakainis.
Paano kung may mga libu-libong ng mga file sa doon?
Well, maaari mong Rm *.
Susubukan naming makipag-usap tungkol sa * sa isang segundo.
Ito talaga ang ibig sabihin ng lahat ng bagay.
Subalit mas mahusay pa, kaya Rm -r.
Kaya Rm -r-- ng maraming konteksto, -r nangangahulugan recursive,
na aming makipag-usap tungkol sa kung ano recursive paraan sa ilang mga linggo.
Ngunit ito talaga ang ibig sabihin halang ang kabuuan ng direktoryong ito
at alisin ang lahat.
>> Kaya Rm -r foo ay pagpunta sa sabihin bumaba sa direktoryo foo?
Oo.
Alisin ang regular na file na walang laman foo / bar?
Oo.
Alisin ang direktoryo ng foo?
Oo.
Kaya ngayon foo at lahat ng bagay sa loob nito ay naalis na.
>> Ngayon na maaaring makuha ang partikular na nakakainis when-- pindutin ang 1, pindutin ang 2, pindutin ang 3 ipaalam.
Ay maaaring magkaroon ng buong bungkos ng mga file.
Kung Nais kong, maaari ba akong lumikha ng libu-libong mga file sa dito.
At Rm -r foo ay pagpunta upang maging medyo nakakainis.
Oo, oo, oo, oo, oo, oo.
Na may maraming higit pang mga file mo mabilis na makita kung gaano karaming beses
Gusto ko i-type ang oo.
Well, nakita lang namin bago paano namin maaari mapupuksa ang nangangailangan na i-type oo, -f.
Kaya mkdir foo cd foo ugnay 1 2 3.
OK, kaya Rm -rf foo ay pagpunta sa nang walang taros alisin foo ganap.
Walang prompt.
Walang kahit ano.
Foo ay nawala.
>> Kaya may posibilidad kong gamitin ito Command sa lahat ng oras.
Dahil dito, ito ay isang Napaka-mapanganib na utos,
dahil kung gagawin ko ang isang bagay tulad ng ito, hindi ito ay prompt ka.
Ito ay nawala.
At medyo madalas na mangyayari, at kahit na sa CS kurso mas mataas na antas.
Minsan namin makita isang bagay na kung saan ang isang tao
sabi ko sinasadyang aming Rm rf-ed ang aking bahay direktoryo at lahat ng aking mga P hanay ay nawala.
At ito ay nagwawasak, ngunit walang basurahan.
May ay walang walang ay para sa iyo upang mabawi.
Lamang ito ay nawala.
Kahit na mas masahol pa ay magiging isang bagay tulad ng Rm -rf /.
Kaya tinalakay namin lamang na root directory.
Taglay nito ang lahat ng mga file sa iyong system.
Ang mga bagay ay may posibilidad na makakuha ng kaakit-akit na walang ayos kapag inalis mo ang mga bagay tulad ng l,
at cd, at lahat ng mga iyon.
>> Madla: Ano ang pagkakaiba sa pagitan ng Rm, rf, at Rm *
Rob BOWDEN: Kaya Rm * -
>> Allison: Tanong ay kung ano ang pagkakaiba sa pagitan ng Rm, rf, at Rm *.
>> Rob BOWDEN: Kaya Rm *.
Bituin sa pangkalahatang paraan ang lahat ng ang mga nilalaman ng direktoryong ito.
Sinusubukang mag-isip ng iba pang mga paraan ng pagpapakita ng bituin.
Well, lagyan ng star ang aktwal na sa pangkalahatan Nangangahulugan tumugma sa anumang mga pattern.
Kaya kung mayroon akong isang file na tinatawag na dog1, pindutin dog2, pindutin cat1, pindutin cat2.
Kaya l * 1 ay pagpunta sa i-print ang cat1 at dog1, dahil maaaring puno ng bituin na
sa with-- kailangan ng isa upang maging doon, ngunit bituin ay maaaring maging alinman sa pusa o aso.
Ito ay isang ligaw na card.
Iyan ang salita Naghahanap ako.
Wild card.
O maaari ba akong l aso *, at Ako kailangan mong makita dog1, dog2.
Kaya iyon ay naglilista ng mga file na tumutugma sa partikular na pattern.
Maaari mong gamitin ang l sa ganitong paraan.
>> L * star tumutugma sa kahit ano.
Kaya ito ay pagpunta sa i-print ang lahat ng ang mga nilalaman ng direktoryong ito
dahil ang lahat ng ito tumutugma.
Hindi ito ng pagpunta sa i-print ang anumang bagay sa direktoryo itaas na antas.
Kung mayroon akong isang sub direktoryo, foo, at pindutin ang 1 2 3-- kaya ngayon kung Rm * bituin,
alisin cat1, cat2, dog1, dog2.
Hindi maalis ang foo.
Ito ay isang directory.
>> Kaya star lumalaki sa lahat ng mga mga file sa direktoryo.
Kaya technically Rm * ay tulad ng sinasabi Rm cat1, cat2, dog1, dog2, foo.
Sapagkat Rm -rf, technically star gagawin makamit kung ano ang gusto namin, ngunit Rm -rf--
kung pumunta ako out sa direktoryo, Rm -rf temp,
na pupuntahan pumunta sa temp at recursively alisin ang lahat.
>> Kaya bituin ay hiwalay sa na na nauunawaan by-- kaya ito bagay
na ako nagpapatakbo in, bagay na ito na nagpo-prompt sa akin para sa command
at pagkatapos ay i-execute at paggawa sa kanila, matawagan ko ang aking shell.
At kaya ito ay shell mismo ng isang programa.
At kung gusto ko, ako maaaring tumakbo sa / bin / malakas na palo.
Shell ay tinatawag humampas na malakas.
At ngayon mapansin namin ang isang bagay ay bahagyang nagbago,
at iyon dahil ang aking mga setting para sa ang shell ay medyo iba.
>> Ngunit ngayon technically ako nagpapatakbo ang shell sa loob ng aking orihinal na shell,
at maaari ba akong lumabas na shell, at ngayon Isa akong bumalik sa aking nangungunang antas shell.
Ang layunin ng sinasabi na is-- ang bituin.
Kaya ang bituin ay isang bagay maintindihan ng malakas na palo.
Kaya Rm -rf, -rf i-flag ang maunawaan ng mga Rm lamang.
Alam nito na kapag magbigay ng -rf na
Gusto ito sa recursively alisin lahat ng mga file nang hindi nagpo-prompt.
Star ang isang bagay na naunawaan sa pamamagitan ng malakas na palo na kapag sinabi mong Rm *,
malakas na palo ay hindi pagpunta sa sabihin hey Rm *, alisin ang star.
Malakas na palo ay pagpunta sa sabihin Rm * alisin cat1, cat2, dog1, dog2.
Awtomatiko itong nangyayari upang palawakin ang lahat ng mga file sa direktoryo.
>> At katulad tilda ay isa pang simbolo na naiintindihan ng malakas na palo.
Kapag sinabi mo ang cd ~, nagpalaki ng malakas na palo na sa iyong home directory.
Iba pang mga tanong sa ngayon?
OK kaya kami ay pagpunta upang simulan ang pagpunta mabilis.
>> Pagkumpleto ng Tab.
Lamang magtapon ng mga ito doon.
Isang maraming mga tao ay hindi Napag-alaman na ito ay umiiral na.
Kaya kung nagta-type ako cd dow, ako gustong pumunta sa mga pag-download.
Hindi ko kailangang i-type nloads.
Maaari ko lang pindutin ang Tab.
Kaya kinikilala nito na dow ay isang prefix na
ay hindi tugma sa anumang bagay tao sa direktoryong ito,
kaya ito ay makumpleto na para sa iyo.
Ngayon ay maaari kong ipasok.
>> Gawin din ko na recursively.
Kaya mkdir foo.
Sabihin pumunta sa foo.
mkdir bar.
Kaya bumalik sa aking home direktoryo, ang maaari kong makita mga pag-download.
Ngayon pagpindot muli tab, Awtomatikong pagpunta sa punan ang foo.
Ito ay ang tanging direktoryo.
Tab ng pagpindot muli, awtomatikong pagpunta upang punan ang mga bar.
Kaya ngayon ako sa (~ Download / foo / bar).
>> Kaya ito pagkumpleto tab, sa tuwing Nakatanggap ako sa oras ng opisina,
at ako nakatayo sa ibabaw balikat ng isang tao,
at sila ay pagpunta Rm D-O-W-N-L-O-A-D-S, ako namamatay.
Tab lang, tab, tab, tab.
Kaya ginamit Siguradong tab.
At katulad up at pababa, ng maraming mga tao
lamang na nangyari sa Hindi kailanman na-hit pataas at pababa.
Ito pumunta sa pamamagitan ng nakaraang command, kaya kung pinatakbo mo lamang ng isang bagay,
at gusto mong patakbuhin itong muli, tumaban lamang hanggang sa makuha mo dito.
OK.
>> Kaya mabilis, ang ilang iba pang mga bagay.
Sabihin bumalik sa temp.
Ay lumikha ng ilang mga file Hayaan.
Kaya sa dito, lang ako pagpunta sa ilista ang ilang mga salita.
aso, pusa, ngiyaw.
Gawin ng aso, isda Hayaan.
Kaya ngayon rep ay isang napaka kapaki-pakinabang na mga utos na
gamitin upang maghanap sa buong file para sa isang partikular na teksto,
at technically na maaari mong gawin talaga kumplikadong expression para dito upang tumugma sa.
>> Kaya dito, kung grep ko, at kung ano ang nais kong hanapin?
Sabihin nating ako naghahanap ng mga pusa, at Gusto kong hanapin ang lahat ng mga file na ito.
Kaya kung paano ang gagawin ko ang lahat ng mga file na ito?
Bituin.
Kaya sa file isa, mayroon akong pusa.
Ako marahil ay maaaring magkaroon ng tinatawag itong mas mahusay ang isang bagay,
dahil na kamukha linya ng mga numero o isang bagay.
Ngunit sa file isa Mayroon akong isang linya gamit ng pusa.
Sa dalawang file ba akong magkaroon ng isang linya gamit ng pusa.
Kaya ngayon maaari kong tumingin sa loob ng file isa at tingnan oh oo, ang file na ginawa may pusa.
Abiso sa file tatlong ay hindi tumugma sa dahil pusa ay wala sa doon.
Maaari ko grep para sa ngiyaw.
-File Tanging dalawang may ngiyaw.
>> Kaya ito maaari mong pagsamahin, muli, may -r, na
tulad ng sinabi ko bago madalas ay nangangahulugan na recursive.
At gayon ang maaari kong makabuo dito, grep -r para sa anumang mga halimbawa sa i-edit ang of-- ipaalam
ang isang ito upang ihagis lamang ng pusa doon.
Kaya grep -r para sa anumang mga pangyayari ng pusa sa buong direktoryong ito.
At habilin recursively maghanap anumang mga subdirectory.
Kaya sa baz, may pusa.
Sa temp / 2, may pusa.
At sa temp / 1 mayroong pusa.
Kaya na naghahanap sa loob ng mga file.
>> Ngayon ay maaari ka ring gumamit ng hanapin.
At sa gayon ay mahanap ang partikular na tungkol sa naghahanap ng mga file sa isang ibinigay na pangalan.
Kaya sabihin gumawa ng ilang higit pa.
Tara sa pag-download.
Pindutin dog1.
Pindutin cat2.
Pindutin cat_dog.
Pindutin catcat.
>> Kaya gusto kong mahanap ang lahat mga file sa mga aso sa pangalan.
Kaya mahanap, at para sa pinakamahabang oras hindi ko naaalalang
kung paano hanapin nagtrabaho, hanggang sa wakas ako basahin ang isang bagay na ginawa ito upang i-clear.
Kaya mahanap, awtomatikong recursive.
Hindi mo na kailangan na magbigay ng -r.
Kaya mahanap ang tuldok.
Hindi pa namin usapan tungkol sa tuldok.
Sapagkat ang tuldok na tuldok na laging Nangangahulugan isang direktoryo up.
Palaging nangangahulugan na tuldok ang kasalukuyang direktoryo.
Kaya maaari akong Rm -r tuldok sa parehong paraan maaari kong Rm -rf *.
Sa huli sila maisagawa ang parehong bagay.
Rm -rf tuldok ay pagpunta sa alisin ang buong kasalukuyang direktoryo.
>> OK, na hindi ko nais upang gawin doon.
Ngunit mahanap tuldok.
Kaya recursively maghanap sa kasalukuyang direktoryo, at ngayon ang lahat ng bagay
pagkatapos na ito ay isang bungkos ng mga flag na gamitin upang ibukod ang mga bagay mula sa pagbabalik.
Kaya mahanap ang tuldok na nagbabalik ng lahat ng bagay na ito Maaari mahanap mula sa kasalukuyang direktoryo.
Iyon ang lahat ng file recursively paghahanap.
Susubukan naming makita ang ilan sa mga nasa isang segundo.
>> Ngunit kung sakaling ka nagtataka kung paano gagawin ko iyon, kaya Command K, sa pinakadulo hindi bababa sa
sa aking terminal sa Mac lilimasin nito.
Control L pangkalahatan ay kini-clear ito para sa anumang uri ng terminal.
Maaari mo ring i-type malinaw.
At kung sakaling makuha mo sa isang kakatwang scenario--
ito ay nangyari sa akin ng ilang time-- kung saan ang mga kulay ng iyong mga senyas
ay messed lahat up, o mo Hindi magawang makita ang anumang bagay
Sini-type kapag nagta-type ka, dahil minsan tulad ng kulay ng background ay naka-set
kapareho ng kulay ng foreground at ngayon ay hindi mo makita ang mga font.
I-reset ay isang bagay na lamang Nire-reset mo sa default na itim na background,
puting harapan, o anumang itinakda mo ang mga ito sa.
>> Kaya kung saan ay namin?
Maghanap ng tuldok.
Kaya ngayon ang lahat ng nakalipas na ito Pinaghihigpitan ng punto ang mga resulta
sa isang bagay na tumutugma sa ibinigay na pattern.
Kaya dito Gusto kong maghanap lahat ng bagay na may pangalan ng pusa.
Ako walang nakuha.
Bakit na ang kaso?
Well, lamang ako naghahanap para sa isang bagay na may eksaktong pangalan ng pusa.
Kung gusto kong isang bagay maghanap na may ilang mga pattern, at cat--
ang mga quote technically ay hindi kinakailangan, ngunit ako masusuka ang mga ito sa doon.
Kaya ngayon nahahanap nito catcat dahil na ang tanging bagay na
ay may ilang di-makatwirang pattern na sinusundan ng pusa.
Maaari ko bang ilagay ang pusa *, at ngayon hanapin catcat, cat_dog, cat2,
dahil iyon ang lahat ng bagay sa pusa sa simula na sinusundan ng kahit ano.
Maaari mong pagsamahin ang mga ito.
Kung nais mong maghanap para sa lahat C file na mayroon ka, maaari mong gawin * .c.
Kami ay blah.c dito.
Kaya na ang isang hanapin mga gawa.
Maaari kang maghanap.
Ito ay may buong bungkos ng mga flag para sa mga karagdagang paghihigpit.
At ang isa sa mga ito, ipaalam sabihin ni -d.
Kaya hindi na ginagamit.
Oh, hindi iyon kung ano ang gusto ko.
Hindi -d.
Uri d.
Kaya mahanap ang tuldok - Uri d.
Kaya kung ano na lang ginawa ay ako naghahanap para sa lahat ng mga file sa kasalukuyang directory
may a-- d ang ibig sabihin ay directory-- uri ng direktoryo.
Nagbalik ito ang lahat ng mga direktoryo sa kasalukuyang direktoryo.
At ang uri ng F ay ang lahat ng regular na mga file, ang lahat ng mga non direktoryo.
Kaya ito lamang ay isang Halimbawa ng iba pang mga paraan sa iyo
Maaari paghigpitan ang paghahanap ng iba pang pa ang pangalan ng file.
>> Naging 30 minuto.
Pagpunta pa rin.
>> Allison: Makikita ko Breeze sa pamamagitan ng.
Ito ay multa.
>> Rob BOWDEN: Kaya ilang iba pang mga bagay.
Ngayon Bang, tandang pananong.
Kaya na pangkalahatang means-- mahusay, sabihin makita ang isang halimbawa.
Kaya! F, ano ang na pagpunta sa gawin?
Well ito tila hindi paulit-ulit na hanapin tuldok -type f.
Paano ang tungkol sa! G?
Iyon grep lamang -r pusa *.
Kaya Bang maaari mong gamitin upang ulitin isang kamakailan-lamang na ginawa ng command.
Kaya kung nagta-type ako! Gre, ito ay pagpunta upang muling patakbuhin ang mga utos na nagsimula sa gre pinaka
kamakailan.
>> At maaari mong makita ang lahat ng mga utos sa kasaysayan.
Kaya kasaysayan.
Ito ang lahat ng command patakbuhin ko na ngayon.
At na rin, hindi literal limitado sa ngayon,
ngunit ako naka-iinom ito lamang appliance sa ngayon.
Ito ay ang iyong kabuuan ng kasaysayan ng iyong malakas na palo shell,
maliban ito ay mapuputol sa ilang mga punto.
Madla: Ano ang mangyayari kung gagawin mo kasaysayan [hindi marinig] na command at isang error
sa resulta ay i-print the-- pa rin
>> Rob BOWDEN: Oo, kung mayroong isang Error sa isa sa mga commands--
kaya sabihin nating, iyon ay isang Hindi nahanap ang command na error.
Lilitaw pa rin sa kasaysayan.
Lahat ng karapatan.
Iba pang mga tanong sa anumang bagay?
Kaya na putok.
>> Ngayon, talagang kapaki-pakinabang na utos, ng tao.
Kaya na nagbibigay sa iyo ng manu-manong para sa isang naibigay na command.
Kaya ipaalam sabihin ng tao l, kaya ito ay nagpapakita sa akin l.
Inililista nito ang mga nilalaman ng direktoryo.
At ito ay kung saan nakikita ko na mayroong ang mga iba't-ibang mga flag na umiiral.
Kaya naming makita na l -l umiiral kung namin na basahin iyon. l -l
ay nagbibigay sa akin ang buong listahan ng mga direktoryo sa kung sino ang nagmamay-ari ng file,
ang laki ng mga file, ang ang nabagong timestamp.
Kaya l -a ay isa pang isa na maaari kang aktwal na medyo madalas gamitin.
-al ang aking pinaka-karaniwang flag na ito nakaraang l.
>> Kaya -a, mapapansin maraming higit pang mga file pa sa l.
l -a.
Ano sa karaniwan sa lahat ng mga file na ito?
Simulan ang mga ito gamit ang dot.
Kaya ito ay isang convention sa Linux na mga file na nagsisimula sa isang tuldok ay nakatago.
Kaya ang ibig sabihin lang nito na ang kapag kami diretso l lamang,
o kami ay naghahanap direktoryong ito gamit ang ang katumbas tagahanap, o Windows
Katumbas Explorer, na aming ayaw mong makita ang mga tuldok na mga file.
Marungisan lang nila ang pagtingin ng mga bagay.
Kaya ang mga ito ay nakatago maliban kung partikular
humiling ang mga ito sa isang bagay tulad ng -a.
Kaya maaari kong cd sa .local, at nakikita ko na iyon ay mismong isang direktoryo na may
isang nakabahaging direktoryo, at application, at blah blah blah.
Kaya tuldok, mga file lang nila itinago.
>> OK, kaya iba pang mga mahalagang mga bago.
Mayroon akong ilang ang maaari kong laktawan.
Sabihin lang tunay na mabilis na mag-usap tungkol sa sa mga bagay na file pag-redirect.
Kaya mayroong isang buong serye ng mga kumplikadong ng mga bagay na maaari mong gawin sa mga ito,
ngunit lamang upang makita ang mga ito, sabihin nating, echo.
Ang isa pang command.
Talagang hindi nakapagsasalita ng command.
Ang lahat ng ginagawa nito ay print kung ano ang sinasabi ko ito sa.
Kaya echo halo.
Echoed Ito lamang si screen.
Kamusta mundo.
Echoes kumusta mundo.
>> Kaya isa na utos o isa simbolo na naiintindihan ng malakas na palo
ay ang mas mataas kaysa sa simbolo, at na ay ang output sa isang simbolo ng file.
Kaya kung ang output ko ito sa foo, mayroong ngayon ng file
na tinatawag na foo, sa loob ng na kung saan ay halo mundo.
Kaya mapansin na kapag echo ko kumusta mundo pipe sa foo,
hindi ito echo kumusta mundo.
Sa halip ito ay ilagay sa file foo.
At isa pang utos lamang magtapon ng mga ito sa iyo, pusa.
Iyon ay isang madaling paraan upang ganap lamang ilista ang mga nilalaman ng file
nang sa gayon ay hindi ako ay may upang buksan isang editor ng teksto upang tingnan ito.
Kaya ang mga nilalaman ng foo file ay halo mundo.
At maaari kong pusa blah.c, ang mga nilalaman ay na ito.
>> Muli, ang mga ito ay mga utos na iyon, ay hindi inaasahan mayroon kang mga ito ang lahat ng kabisado.
Ang ideya ay na iyong nakita ang mga ito.
Siguro nagtatrabaho ka sa isang bagay, at ikaw ay
tulad ng ako ay may sakit sa pagbubukas ng file na ito.
Gusto ko ko lang ang hitsura sa mga nilalaman ng tunay mabilis.
Maaari mong gawin iyon, at pagkatapos ay bumaling at sabihin oh ako
tandaan isang bagay tulad ng na umiiral, at ito ay pusa.
>> Kaya na ay pupunta sa isang file.
Ngayon ay mayroong ay hindi talagang anumang mabuting Halimbawa ng pagbabasa mula sa isang file pa.
Ano ang isang bagay na tumatagal isang bagay mula sa karaniwang in?
Anumang mga simpleng utos sa Linux?
Kapag makuha namin dito, sa loob ng ilang linggo ang lahat ng mga piece-- na rin,
linggong ito mayroon ka ng isang piraso kung saan mo simulan ang pagkuha ng input mula sa user.
At kaya karaniwang nagta-type ka na pag-input sa keyboard.
Sa halip na i-type na pag-input sa keyboard,
sa halip maaari mong pipe sa mula sa isang file upang kapag ginagawa mo Mario, ./mario,
pipe sa mula sa anumang naibigay na file, at na pupuntahan patakbuhin ang programa Mario.
Hindi inaasahan ng pag-input sa ang keyboard, sa halip ito
lamang ng pagpunta sa basahin ang mga linya mula sa foo file.
>> Kaya mas malaki kaysa sa foo naglalagay ito sa ang foo file, at mas mababa sa foo
tumatagal ng mga bagay-bagay mula sa foo file at Gumagamit na ng pag-input sa program na ito.
At lamang upang makita na ito, maaari rin naming echo baz bar foo, at pagkatapos ay sa halip na isa
mas malaki kaysa sa, ni gawin ang dalawang sa foo ipaalam.
Ano ang gagawin?
Ito ay nagkakabit lamang sa ang file.
Kaya sa halip mapansin kung ako Echo blah sa foo at pagkatapos foo pusa, ito ay blah lamang.
Kaya kapag nag-output sa isang file, ito ganap overwrites file na iyon.
Kung gusto mo lang upang isama, double [? greyder. ?]
>> At huling ay pipe.
Pipe ay nakakakuha ng mas kumplikado, kung saan madadala ang output ng isang command na
at feed ito sa susunod na utos.
Kaya ilan sa mga karaniwang bagay, kasaysayan.
Kaya, he, hindi ko nais upang tumingin sa ito.
Ipakita sa akin ang lahat ng mga utos sa aking kasaysayan kung saan ako grep-ed para sa isang bagay.
Hindi, na nakalilito.
Ipakita sa akin ang lahat ng mga utos kung saan ako makahanap.
Lahat mahanap ang mga utos ko kailanman tumakbo.
>> Kaya kasaysayan.
Ngayon ang kasaysayan ng mga output sa screen na ito listahan ng mga command,
ngunit hindi ko nais upang output ito sa screen.
Sa halip Pupunta ako sa pipe ito sa grep.
Kaya ni grep para sa lahat ng mga pagkakataon ng paghahanap ipaalam.
Kaya ngayon sa halip ng pagkuha grep ang input, sa halip of--
grep ay magagawang upang mahawakan ang bilang input-- kami gamit grep bahagyang naiiba dito.
Kaya sa halip na i-type ang listahan ng mga mga bagay na gusto naming maghanap para sa
at sinabi grep ay tumatagal ng pag-input.
Kaya kung ko lang grep mahanap, ito naghihintay para sa akin i-type ang mga bagay.
Kaya pusa kumusta mahanap.
Kamusta.
Hanapin.
Pansinin sa bawat oras na nagta-type ako mahanap Kinikilala nito na ang nai-type ko sa paghahanap.
Kaya sa halip na ito, ay paghahanap ng mga file para sa paghahanap.
>> Kaya kasaysayan ay ngayon pagpunta sa output ng isang listahan ng lahat na utos.
Kami ay paglalagay na output, at kami ay nagpapakain ito sa grep,
at sa gayon umaambon out lahat ng mga pagkakataon ng hanapin.
Ang dahilan dito ay sinabi ko ito gusto nakalilito ay kung I-- ito ay nakalilito pa rin.
Kung grep ko para sa grep.
Pansinin ito ay halos palaging nagpapakita ang command ko lang
Pinatatakbo ng dahil sa command na mismo ay may grep sa loob nito.
>> OK, sa gayon ang anumang mga katanungan sa anumang bagay?
At makikita ko bang ilipat ito sa sa puntong ito.
Sana ito ay isang magandang Pangkalahatang-ideya ng lahat ng mga utos
na hindi mo kailangang magkaroon kabisado, ngunit ang mga bumubuo
isang matatag na 95% ng kung ano ang aking gawin sa linya ng command.
Gayundin panatilihin sa isip na ang command line mismo, malakas na palo ay isang programming language,
at kaya kapag nakakuha ka pababa upang ito, mo Maaaring gusto gawin talaga kumplikadong mga bagay.
At kaya mayroon itong mga bagay tulad ng loop, at ifs, at lahat ng mga
na kayo ay pagpunta sa masanay sa iyong wika programming.
Ngunit iyon ay lagpas sa Saklaw ng seksyong ito.
OK, kaya walang tanong?
Allison: Wala?
Gabriel: Pupunta ka ba to--
Allison: ang maaari kong gawin ito sa mina kung gusto mo.
Maaari naming makita kung ano ang mangyayari.
Rob BOWDEN: Naka-off sa Allison.
Allison: Woo.
Ikaw ay isang matapang na batas upang sundin, Rob.
Gusto mo sa akin upang lumipat sa iyo?
O kaya mo nakuha, OK.
Pupunta ako sa subukan at hindi medyo maging napakahabang doon.
Tingnan natin kung ang kaloobang ito'y Hayaan gumagana ang paraan na gusto ko ito sa.
Siguro?
HaHa!
Oo.
>> Kaya ako lamang ang pagpunta sa masyadong mabilis pumunta sa pamamagitan ng variable, loop, conditionals,
at nang kaunti sa compiler.
Kung mayroon kang mga tanong sa anumang oras, mangyaring ihinto akin.
Ang mga guys ay paalalahanan ako sa ulitin ang iyong tanong kung sakaling makalimutan ko,
ngunit hindi dapat maging masyadong masama.
>> Kaya variable, oo.
Wala kaming isa sa iyong Sa simula piraso dito.
Ako ba na karamihan sa iyo, kung kayo ay nagkaroon ng isang uri ng laro
na iyong nilikha sa simula, nagkaroon ka ng upang subaybayan ang mga bagay tulad ng kalidad,
o oras, o isang bagay tulad na.
Kaya mga maliliwanag na kulay kahel piraso na ating nakikita doon
lamang ang mga scratch paraan ng variable, at magpo na talagang
maging ang paggamit ng mga variable sa kabuuan ng iyong programa.
Kung ikaw ay hindi, hindi ako talaga sigurado kung ano ang iyong ginagawa.
>> Ngunit pa rin, na sisikat, pagtukoy sa mga variable.
Sa C bawat variable ay na magkaroon ng ipinahayag ng uri,
kaya Nagbigay ako sa iyo ng isang napaka pangkalahatang isa sa tuktok.
Kaya magkakaroon ka ng iyong -type at pagkatapos ay anumang
magpasya kang tumawag sa iyong variable.
Kaya sa kasong ito, uri sa iyong listahan ng variable.
>> Mayroon kaming tatlong halimbawa.
Pansamantalang trabaho ng ilang mga grado, ng isang A, na kung ano ang
Ako ba mo ang lahat ng gusto makipag-class na ito.
Maaari mong tukuyin ang maramihang variable sa isang linya
hangga't ang mga ito ay ang lahat ng parehong uri, na kung saan ay ang aming ikalawang halimbawa doon
kung saan mayroon kang tatlong variable, x, y, at z.
Ang mga ito ang lahat ng mga kamay.
At pagkatapos ay maaari ka rin, sa huling Halimbawa may int ng kalidad at bilang
ng koponan, maaari kang initialize ang mga ito doon.
>> Kaya sa gitna halimbawa kung saan kami Mayroon lamang ng float ng x, y, at z,
iyon ay hindi pa nasimulan.
Ang mga ito ay walang halaga.
O kaya mayroon silang mga halaga ng basura.
At kung susubukan mo at gamitin ang mga ito, ang compiler ay sumigaw sa iyo.
Mayroon kang sa parehong ipinahahayag at initialize ang iyong mga variable.
Kaya sa huli, ginagawa namin pareho.
Pagpapahayag namin ang mga variable ng puntos at dami ng mga koponan,
at kami ay Sinisimulan ang mga ito, na nagbibigay sa kanila ang kanilang mga paunang mga halaga ng 7 at 4
ayon sa pagkakabanggit.
Ayos.
Ang bawat tao'y magandang?
Kahanga-hanga.
>> OK, kaya ang ilang mga convention.
Kung guys nabasa sa pamamagitan ng estilo 50, ang mga
lamang ang mga bagay na nais naming para sa mong ipatupad sa iyong estilo.
Kaya makabuluhang mga pangalan.
Kung sinimulan mo ang pagtawag sa mga bagay lang x, y, at z, lalo na
bilang makakuha ka sa lengthier mga programa, ikaw ay
marahil pagpunta sa lituhin ang iyong sarili at maging
tulad ng kung ano ito variable na nagre-refer sa.
Wala akong palagay kung ano ang ibig sabihin nito.
>> Kaya kung ito ay sinadya upang i-hold ng iskor, tawagan ito puntos.
Kung ito ay sinadya upang i-hold ang ilang mga sagot o magresulta, bigyan ito ng isang pangalan tulad na.
Para sa mga loop, na kami ay makakuha sa sa susunod na slide,
solong variable titik ay multa.
Rob BOWDEN: ako, j, at k ay lamang convention para sa para sa loop
na ang lahat na inaasahan ang mga ito na tinatawag na i, j, at k.
Maaari kang tumawag sa them-- nakikita ko hilera hanay o hilera tawag minsan
para sa dalawang Nested mga loop, at na rin uri ng pamantayan.
Ngunit i at j ay ganap na naiintindihan.
>> Allison: Oo, i at j ikaw ay ganap na multa.
Para sa alang-alang ng kalinawan tulad ng sa ilan sa iyong mga set P,
maaari itong magkaroon ng kahulugan upang magkaroon ng higit pa mapaglarawang mga bagay doon lamang
upang subaybayan ang mga ito.
Ngunit sa tingin ko i, j, at k sa palagay ko ang karamihan sa atin ang lahat ng paggamit.
>> Rob BOWDEN: Gamit ang mga balarila, kaya style ay mahalaga.
Ito ay isa sa apat na axes kung saan ka gradong,
at ito ay kaya madaling pumunta lamang sa ibabaw itakda ang iyong mga P sa dulo at tiyaking
na mayroong hindi pangkakanyahan mga pagkakamali.
Kaya tiyaking naka-tabbing tama.
Tiyakin na ang iyong mga variable na pinangalanan.
Mag-iwan ng ilang mga komento.
Ito ay mas madali upang makakuha ng mga puntos.
Hindi mo kailangang isipin ang tungkol sa anumang bagay na nasa pagkakasunud-sunod upang makakuha ng mga puntos.
Hindi mo na kailangang malaman ng anumang bagay out.
Ang lang ginagawang ito hitsura kaakit-akit.
>> Allison: Sa katunayan, namin may istilong 50, na
ay magsasabi sa iyo kung saan ka panggugulo kung ka panggugulo up sa estilo
at sasabihin sa iyo kung ano mismo ang mo kailangan mong ayusin at kung paano kailangan mo upang ayusin ito.
Ito ay din lamang mahusay na banggitin na ito ng patakaran ng kurso
na kung ikaw ay nasa opisina oras at ang iyong code ay isang gulo,
maaari naming tanggihan upang matulungan hanggang sa hitsura nito nicer.
Kaya simulan ang karapatan, panatilihin ang pare-pareho ng estilo,
lang din na iyong pupuntahan upang gawing iyong buhay marami mas madali kapag
na sinusubukan mong pumunta sa pamamagitan ng pag-debug.
Kung sinusubukan mong malaman kung saan may nawawala kang kulot suhay
at ang mga ito sa buong lugar, ikaw ay paggawa ng lamang ang iyong sariling buhay mas mahirap.
Kaya maging pare-pareho sa estilo.
Nangangako ako magkakaroon ito gawing mas madali ang iyong buhay.
Ito gawing mas madali ang ating buhay.
Ang bawat tao'y ay magiging magkano ang mas masaya.
At iyon ang gusto mo.
Gabriel: Ang iyong grade ay magiging mas mataas.
Allison: Oo, at ang iyong mga grado.
Kung ang iyong tf ang tulad mo, ay may gawi na maging kanais-nais.
Ang lahat ng mga karapatan, at pagkatapos lamang ang ikalawang punto dito.
Pare-pareho initializations.
Kaya bilang nakita natin, maaari mong idedeklara at pagsisimula ng mga bagay.
Maramihang mga variable sa parehong linya.
Ang isang bagay na nais naming hindi ka gawin ay ipinahahayag ng ilang mga variable
at hindi simulan ang mga ito sa parehong linya na kayo ay Sinisimulan ang iba.
>> Kaya sa kasong iyon ginawa walang kahulugan kung ano pa man,
mayroon kaming mga halimbawa dito kung saan kami naka-deklarasyon ints
sa mga variable ng quarters dimes at pennies,
ngunit quarters at pennies walang paunang halaga.
Hindi pa namin nasimulan ang mga ito, ngunit karapatan sa gitna doon
nasimulan namin dimes sa 0.
Kaya alinman sa gawin quarters, dimes, pennies.
O gawin quarters kasing-halaga 0.
Dimes katumbas ng 0.
Pennies katumbas ng 0, o anumang mga paunang halaga ay.
>> Malaking bagay na may estilo, maging pare-pareho.
Kapag may pagdududa, maging pare-pareho.
Ngunit sundin masyadong ang aming gabay sa estilo.
Ayos.
Ang bawat tao'y may magandang?
>> Madla: Saan ang gabay sa estilo?
Allison: Ang gabay na estilo ay on-- ano ang website?
>> Gabriel: Sa tingin ko ito manual.cs50.net/--
Allison: Estilo?
>> Gabriel: Estilo.
Oo.
>> Allison: Oo.
Kaya tanong, kung saan ay estilo 50.
manual.cs50.net/style.
Oo?
>> Madla: Kung kami ay pagtukoy variable, ito ang OK
kung ilalagay namin tulad ng [hindi marinig] tulad ng int ng kalidad at pagkatapos ay i-int layunin.
Kaya ang sasabihin mo na ngayon hindi namin Nakakuha na magkasama tukuyin ang mga ito?
>> Allison: Kaya tanong, dapat mayroon kang kalabisan code
kapag ikaw ay pagtukoy variable tulad ng int ng kalidad at
sa susunod na linya laro int?
Rob BOWDEN: May mga tiyak mga kaso kung saan paulit-ulit na code ay masama.
Hindi ko isaalang-alang na kalabisan code.
Ako halos hindi ipinahahayag maramihang variable sa parehong linya kailanman.
At kung mayroon man, ito ay dahil Karaniwang bang mag-iwan ng ilang mga uri ng mga komento
pagpapaliwanag kung ano ang variable ay para sa.
Kaya Sasabihin kong int marka slash slash.
Sinusubaybayan ng anumang.
Sa kabuuan slash slash.
Kaya magkano grosser sa na paraan upang ilagay ang mga ito sa lahat sa parehong linya.
Ko lang ang hindi ilagay ang mga ito sa parehong linya.
>> Allison: tingin ko ito mga personal na kagustuhan sa puntong ito.
>> Madla: ba na pumunta para sa para sa mga loop at bagay-bagay masyadong?
Rob BOWDEN: Tulad ng loob?
Tulad ng int i katumbas ng 0 kuwit ay katumbas ng haba ng isang bagay?
Hindi mo na magkaroon ng isang pagpipilian.
Sa para sa loop ang pagsisimula part-- kaya maaaring mo pa lamang nakita
int katumbas i 0 semicolon i mas sa anumang semicolon i plus plus.
Iyon int i katumbas ng 0, technically maaari ring mo
gawin kung ano ang nakita natin dati gamit ang kuwit syntax.
int ay katumbas ng 0 i kuwit j ay katumbas ng 3 kuwit k ay katumbas ng 5.
Hindi mo na magkaroon ng isang pagpipilian upang hatiin na hanggang sa maramihang mga linya,
at iyon ang pamantayang ito.
Nakakakita ng mga ito doon ay multa.
Allison: Kahanga-hanga.
Well, maginhawang segue sa loop.
Kaya oo, narito mayroon kaming ilang mga halimbawa ng loop na nakita mo guys sa scratch.
At syempre ang lahat ng mga Maaari lang ma-recreated sa C.
At talaga sila daan sa iyo ulitin ang ilang mga seksyon ng code
hanggang sa isang tiyak na kalagayan natugunan, na kami ay
kumuha sa kanan pagkatapos ng pakikipag-usap tungkol sa mga loop na may conditionals.
>> Kaya mayroon kaming tatlong pangunahing uri.
Para sa, habang, at gawin habang, na magpapatuloy kami sa lahat sa pamamagitan ng ngayon.
Kaya una ay para sa mga loop.
Kaya para sa ilang mga kundisyon, isagawa ang bloke ng code.
Mayroon kaming ang cool na maliit diagram dito sa ibaba.
Ngunit isa lamang na mayroon ka sa iyong para sa, na unang linya,
na iyong pupuntahan initialize ang iyong mga variable.
>> Kaya bilang usapan natin ang tungkol sa, i ay katumbas ng 0 o i ay katumbas ng 10.
Anuman ang kailangan mo na variable na ito
pagpunta sa ma-initialize doon, ipinahayag at nasimulan sa ilang mga halaga.
Kaya pagkatapos ay mayroon kaming ilang mga kondisyon na nangyayari
na-check ang aming variable laban sa isang bagay.
Kaya sa kaso ng mga tipikal na kaso kung saan siguro gusto mong seksyong ito ng code
upang maisagawa limang beses.
Kaya gusto naming magkaroon ng int i katumbas ng 0, at kami gusto mo itong maging kapag i ay mas mababa sa 5.
Kaya kondisyon na lamang pagpunta upang suriin ang bawat oras.
Kung kondisyon na sinusuri sa true, ito ay
pagpunta upang patakbuhin ang code, na ay eksaktong kung ano ang maliit na diagram ay nagpapakita.
>> At kaya executes ito dito.
-A-update ito sa isang variable, na kung saan ay kung ano ang nakikita namin
sa huling bahagi ng aming para sa loop pagsisimula doon.
Kaya makikita lamang panatilihin ang paggawa na ito hanggang sa kondisyon na hindi natugunan,
at pagkatapos ay lumabas loop at magpatuloy
paglipat sa gamit ang natitirang bahagi ng iyong programa.
Ang bawat tao'y may magandang?
Ayos.
>> Kaya narito ang isang halimbawa, na halos kapareho sa isang bagay ko usapan lamang tungkol.
Kaya gusto lang namin na mag-print ito ay CS50 10 beses.
Kaya nakikita dito mayroon kaming ang aming para sa, at pagkatapos ay namin
initialize ng variable i upang maging patas sa 0.
Ang aming mga kondisyon ay pagsuri na ito ay mas mababa sa 10.
Kaya suriin sa true noong una naming magsimula, at pagkatapos ay ina-update ang aming mga variable
sa bawat oras na ito aktwal na executes at mga print out ito ay CS50.
At wawakasan makalipas ang 10 ulit.
Ayos.
>> Kaya habang loop hanggang sa susunod.
At tulad ng nakikita mo dito, mayroon kaming lamang ilang habang ito condition-- katanungan?
>> Madla: Paano ko tumalon talagang hindi lamang isang numero,
ngunit dalawang numero [hindi marinig] i plus plus plus?
>> Allison: Kaya ang tanong ay kung paano mo -update ang iyong variable ng higit sa isang
sa isang pagkakataon.
Kaya i plus plus habilin -update sa pamamagitan ng isa sa bawat oras.
Kung nais mong i-update ito sa pamamagitan ng dalawang, maaari mong gawin i plus ay katumbas ng 2.
>> Rob BOWDEN: Nakita mo plus ay katumbas sa lecture pa?
>> Madla: [hindi marinig].
>> Allison: Ito ay epektibo ang parehong bagay bilang ay katumbas ng i i plus 2.
Kaya ito ay pagpunta sa tumagal ito at i-update ito sa pamamagitan ng dalawang sa bawat oras.
Plus Kapantay ay isang bagay lamang tinatawag naming sintaktik asukal.
Rob BOWDEN: Oo, ang mga umiiral para sa halos lahat ng palatuusan operator.
Kaya i beses katumbas ng Gusto double ang numero.
j paghati-hatiin ay katumbas ng 3 ay pareho bilang ay katumbas ng j j hinati sa 3.
>> Allison: O minus katumbas ng 2 gagawin pagbawas i pamamagitan ng dalawang sa bawat oras.
Rob BOWDEN: Kahit mod equals.
Hindi mo pa nakikita bitwise operator, ngunit caret ay katumbas ng at ampersand katumbas,
lahat ng mga umiiral.
>> Allison: Kaya ng maraming beses, lalo na sa iyong unang dalawang sets P,
Makikita marahil ay incrementing sa pamamagitan ng isa, kaya i plus plus, j plus plus
ang lahat ng bagay na iyong pupuntahan sa karaniwang paggamit.
Ngunit na kondisyon update ganap sa loob ng iyong control.
Maaari mo itong i-update sa pamamagitan ng anumang mga palugit o sa anumang paraan nagpasya kang.
Marahil kahit na gusto mo itong maging isang random na numero ng minsan.
Ngunit oo, mayroong napakaraming mga bagay na maaari mong gawin sa mga iyon.
Hindi ka limitado sa i plus plus.
>> Rob BOWDEN: kaya mo lang alam umiiral na ito, mayroon din
Umiiral na sa isa pang form, kasama ang plus i.
Kaya kung sakaling naghahanap ka online at mangyayari upang makita ang plus plus i,
halos ibig sabihin ang parehong bagay.
Allison: Cool.
Magandang?
Kahanga-hanga.
Kaya habang loop.
Na halos kapareho.
Mayroon kang ilang mga kundisyon.
Ang pangunahing bagay na dapat mapansin dito ay sa halip ng pagkakaroon
tatlong iba't ibang bahagi i-set up, mayroon kaming isa.
Mayroon lamang kami ng ilang mga kundisyon na sinusuri.
At sa parehong paraan, hangga't kondisyon na sinusuri sa true,
ang iyong code ay pagpunta upang tumakbo.
At kung ito ay hindi totoo, ito wawakasan, ilipat
papunta sa susunod na bahagi ng iyong programa.
Kaya ito ay uri ng like-- kung ano ang isang magandang halimbawa ng pagsuri
para sa ilang mga normal na kalagayan?
Gabriel: Habang totoo.
Allison: maaari mong gawin habang totoo.
Well, 1 ay katumbas ng 1.
>> Rob BOWDEN: Maaari mong gawin while-- lamang sa halip ng paggamit ng isang para sa loop,
maaari mong laging code ng para sa loop sa isang habang loop,
kaya i mas malaki kaysa sa 0 o habang i mas mababa sa 10.
>> Allison: Kahanga-hanga.
At pagkatapos ay ginagawa namin habang loop, na ay mahusay para sa pagpapatunay ng gumagamit, kung saan
nais mong makakuha ng isang bagay mula sa ang iyong mga user, makita kung ito ay wasto,
at pagkatapos ay magpatuloy mula doon.
Kaya isa sa mga bagay na dapat malaman ay may gawin habang ay tumutulong ito sa pupuntahan nagsagawa,
at pagkatapos ay muling isagawa kung ang kundisyong ito ay natugunan.
>> Kaya marahil ang pinakamahusay na paraan upang gawin ito ay upang makita lamang ang isang halimbawa dito.
Kaya bilang ko lang nabanggit, gumagamit pagpapatunay ay talagang useful--
o gawin panahon ay talagang kapaki-pakinabang sa pagpapatunay ng user.
Kaya ito ay lamang ng pagpunta upang muling i-prompt ng ilang mga gumagamit
hanggang sa magpasok sila ng isang positibong numero, na maaaring maging kapaki-pakinabang para sa iyong P hanay
sa linggong ito.
At kaya sa kasong ito, kung kailan namin una patakbuhin ang program na ito,
ito ay pagpunta sa i-print ipasok ang isang positibong numero.
Ito ay pagpunta upang makakuha ng ilang -input mula sa user,
at pagkatapos ito ay pagpunta sa check na input laban sa mga kondisyon
na iyong itinakda para dito.
>> Kaya sa kasong ito ito ay pagpunta upang suriin.
Ito ay pagpunta sa sabihin, OK, ay ang aming input negatibo,
o ito 0 o negatibong, na kung saan ay hindi wasto.
Kaya pagkatapos ito ay muling i-prompt.
Tanong?
>> Madla: ang parehong ito pagkatapos ba bilang isang habang loop kung nakopya mo lang ang code na iyon
at ilagay ito [hindi marinig] habang loop?
>> Allison: Kaya pinag-uusapan ay gagawin ito ay katulad ng isang habang lamang
loop kung kami ay upang lamang kopyahin ang habang loop sa itaas.
Kaya sa kasong ito, ang iyong habang loop ay pagpunta sa suriin muna ang kundisyon.
Kaya sa kasong ito, kung sinubukan naming na magsulat tulad ng isang habang loop,
Gusto ito sabihin habang -input ay mas mababa kaysa sa isa.
Ngunit hindi namin ay may isang input para dito.
>> Madla: Kung [hindi marinig] habang loop kasama ang code na ito,
ngunit pagkatapos mo coped ang code sa itaas ng habang loop ring.
Nagkaroon ka lamang ang code na ito [Hindi marinig] habang loop.
Allison: Ito ay magiging ang parehong bagay, oo.
Kaya maaari mo lamang write-- sa halip ng pagkakaroon ng do-- yes.
Gabriel: Ngunit iyon lamang ang higit pang mga eleganteng.
Allison: Oo, na mas eleganteng.
Maaari kang makakuha sa disenyo at watnat, ngunit oo, maaari mong ganap na gawin iyon.
Ang anumang iba pang mga tanong?
OK, cool.
>> Kaya usapan natin ng maraming tungkol sa mga kondisyon sa lahat ng mga loop na mayroon kami,
kaya talagang namin nakukuha sa kondisyon sa Boolean expression.
Muli, gamitin mo ito sa C, kaya lang uri ng transition
mula sa higit pang mga graphic interface upang aktwal na coding.
>> Mahusay, kaya malaki isa, kung.
Talaga lamang ay nagbibigay-daan sa amin upang ipakilala ilang logic sa aming programa at check
sys kundisyon.
Kaya sa kasong ito, OK, ay n mas malaki kaysa sa 0?
Oo ito ay, sa gayon maaari mong maisagawa ito.
Lamang ito ng pagsusuri ng ilang kondisyon na ikaw ay
-mano, na sa palagay ko tayong lahat kumportable sa pagsuri kundisyon.
Ayos.
Kaya kung tao ay ang iyong iba pang isa, Maaari mong sabihin OK, kung ito ay totoo,
gawin ito unang bagay.
Kung hindi ko nais mong default at gawin ang isang bagay iba pa.
Tulad ng sa kasong ito, alinman sa kang pumili ng positibong numero o isang negatibong numero.
Mayroon ka lamang ng dalawang mga pagpipilian.
Kailangan mo ito upang maisagawa anuman ng kung ano ang iyong input ng user.
Kaya maaari mong sabihin na rin, ay ito na mas malaki kaysa sa 0?
Ayos.
I-print ng isang positibong numero.
Kung hindi, mag-print ng mga negatibong.
Ang bawat tao'y magandang?
>> At pagkatapos ay isang bagay na makilala ang na kung ang kung ang kondisyon ay nakamit,
ang iba ay hindi rin isagawa.
Ang isa sa mga Tanging habilin isagawa sa isang pagkakataon.
Kaya off ng kalakalan.
Hindi mo na makakuha upang magkaroon ng parehong.
Mong alinman sa magkaroon ng unang kalagayan.
Mong alinman sa magkaroon ng kung o ang ibang tao, hindi pareho.
Na pagkatapos ay maaaring gumawa ng mga bagay kahit na mas komplikado,
dahil ang maaari mong gawin kung, pa ito, at pagkatapos ay iba pa.
Kaya sa kasong ito, kami may tatlong kundisyon.
At muli, isa lamang sa mga ito ay pagpunta sa mga end up na pinaandar.
Kaya maaaring nag-iisip na rin, kung ano kung
May isang bagay na Maaari matugunan ang dalawa sa mga ito.
Siguro kahit anong ka inputting nakakatugon sa pareho ang kundisyon
para sa kung at ang iba kung.
Tanging bagay na nangyayari na tumakbo
>> Allison: Sa sandaling nahahanap nito ng isang bagay na tumutugon ito sa kondisyon para sa
sinusuri sa true, na kung ano ang ito ang nangyayari sa pagtakbo at walang iba pa.
Kaya kung nagkaroon ay ang bilang na ito sa pagitan ng 0 at 5 para sa iyong unang isa,
o ang bilang na ito sa pagitan ng 3 at 5 para sa mga tao kung bahagi,
at kang maglagay ng mga number-- Sinabi ko 0 at 5 and-- 4.
Ito ay pagpunta sa pindutin ang una.
Ito ay pagpunta sa sabihin OK, ito bilang na ito ay sa pagitan ng 0 at 5.
Ipatupad at umalis.
Ay hindi ito pindutin ang pangalawang opsyon.
Cool?
Kahanga-hanga.
>> OK mayroon rin kaming lumipat pahayag kung nais mong makakuha ng mas more-- o paumanhin,
switch ang susunod.
Nakakakuha ako ng mas maaga sa kanilang sarili ko dito.
Muli, maraming kung bloke kung saan bilang ko lang ang sinabi
ay lalong madaling mahanap ka ng isang kondisyon na nakamit at isang kung tao kung tao,
ito ay umalis.
Kung kailangan mong suriin maramihang mga bagay, ikaw ay
pagpunta sa nais na gumamit dahil ito ito ay suriin sa bawat oras dito.
Kaya ito ay tatakbo sa pamamagitan at kung ito ay mas malaki kaysa sa o katumbas ng 90,
ito ay pagpunta sa i-print na.
At ito ay tatakbo sa pamamagitan ng at suriin ang bawat solong isa sa mga ito.
>> Madla: Kaya ito ay magiging higit pa buggy kaysa [hindi marinig].
Gusto ito maging tulad ng [hindi marinig]?
>> Allison: Ang tanong ay magiging ito maraming surot o gawin ito ay kung ano ang gusto mo.
Ito ay talagang depende sa kung ano ang gusto mo mula sa iyong mga programa.
>> Madla: ibig kong sabihin tulad ng kung inilagay mo ang 90 in.
Allison: Kung kang maglagay 90--
Madla: [hindi marinig].
Gabriel: ka ng pagpunta upang makakuha ng dalawang bagay.
Allison: ka ng pagpunta upang makakuha ng dalawang bagay.
Oo, dalawa.
>> Rob BOWDEN: Dalawang?
>> Allison: Hindi.
>> Rob BOWDEN: Four.
Kung inilagay mo sa 90, ito ay pagpunta sa sabihin sa iyo nakakuha ng isang A, na nakuha ng B, mayroon kang C,
Nakakuha ka ng D.
>> Madla: [hindi marinig].
Allison: I-right.
Kaya nakadepende ako sa kung ano ang gusto mula sa iyo programa.
Minsan kailangan mong suriin ang maramihang mga bagay.
Makakakuha ka ng mas malalim sa kung ano ang mahusay na disenyo ay bilang pumunta ka pasulong.
Ang mahalagang bagay na dapat Napagtanto ay na ito
Susuriin ng lahat ng apat na mga kundisyon dito.
Sapagkat kung ito ay isang kung tao kung tao kung tao, ito ay pindutin ang unang kaso,
Gusto ito i-print ka nakakuha ng isang A at gawin.
>> Rob BOWDEN: Kahit na namin nagpasya upang baguhin ito sa kung
at mas malaki kaysa sa o katumbas ng 90, kung at mas malaki kaysa sa o katumbas ng 80,
at mas mababa sa o patas sa 89, kung n mas malaki kaysa sa o katumbas ng 70,
at n mas mababa sa o katumbas ng 79, nang sa gayon ay magiging tama.
Iyon ay gawin kung ano ang gusto namin, ngunit nagsusuri ito pa rin ang bawat solong ito.
>> Kaya samantalang sa unang sitwasyon, kung namin ipasok ang 90 na may lamang kung iba kung iba kung,
at ipasok namin ang 90, pagkatapos ay ito ay pagpunta sa itama.
Ito ay lagyan ng check ang unang isa, i-print mo nakakuha ng isang A,
laktawan ang lahat ng bagay, sapagkat ito na nakita ng isa na gumagana.
Ang lahat ng mga kaso ay sinang eksklusibong batay sa kung tao kung tao kung.
Kaya ito ay maisagawa ang una kapag, pagkatapos ay tapos na ito.
Ito pumunta sa dulo.
>> Sapagkat kung babaguhin namin ito na kung ano ako ay
sinasabi na may mas mababa sa o patas sa 89.
Ito ay pagpunta upang suriin ang una.
Ito print.
Ito suriin ang pangalawang isa.
Hindi ito nangyayari i-print.
Lagyan ng check ang mga third isa.
Hindi pagpunta sa i-print.
Lagyan ng check ang isa ikaapat.
Pagpunta Ngayon upang i-print.
Kaya sa na kaso, ang mga tao kung bersyon, dahil ang mga kasong ito
ay kapwa eksklusibong, ito ay mas mahusay na paggamit kung tao kung tao kung,
dahil na ay pagpunta sa may mas kaunting mga pagsusuri ng mga kondisyon
kaysa sa bersyon na ito.
Allison: Kahanga-hanga.
Kaya isa pang bagay na aming makakaya gawin ay lumipat pahayag.
Isa lamang switch statement tumatagal sa ilang mga variable,
sa kasong ito ito ay n, at Tinutukoy kung aling mga kaso upang maisagawa.
Kaya ito ay din isa kung saan ang iyong kaso Dapat na uri ng kapwa eksklusibong.
Kaya sa kasong ito, kung kami makakuha kami ng isa, ito ay
pagpunta upang tumugma sa anumang na variable-- anuman ang halaga ng n
ay isa sa mga kasong ito, kaya 1, 2, o 3, at i-print ang kaukulang linya.
>> At pagkatapos ay kung napansin mo dito, Mayroon din kami ng isang default,
na maaari mong isipin ng mga bilang iyong iba pa.
Kaya kung pumili ka ng anumang iba pang numero bukod sa 1, 2, at 3 sa kasong ito
lamang ito ng pagpunta sa i-print ang mga di-wastong.
Pagpapasya kapag upang gamitin ifs kumpara kung elses kumpara switch ay pagpunta
upang maging isang bagay na ikaw guys tingnan magdisenyo matalino bilang simulan mo ang pagsulat
higit pang kumplikadong mga programa, at walang mahirap at mabilis na panuntunan ay
kung kailan gagamitin ang mga ito.
Ito ay talagang depende sa iyong konteksto.
>> Rob BOWDEN: At magtapon ng mga ito doon
dahil ito ay mas kumportable na seksyon.
Lilipat, malamang nilang be-- kaya limitado ka
sa bilang ng mga paraan sa iyo Maaaring gamitin ang mga ito, dahil ifs,
ang kondisyon ay maaaring maging kaakit-akit magkano ang anumang nais mo.
Sa Lilipat ng kaso kailangang maging numero,
o technically maaari silang maging char, ngunit char, dahil kakailanganin namin makita, lamang ang numero.
Kaya mayroon sila upang maging mga numero, ngunit switch ay talagang mas mahusay kaysa sa kung ang
tao kung tao kung, dahil kahit na paglalaan ng halimbawa before-- na rin,
sa halimbawa grado mukhang mabuti.
>> Sa halip natin Well sabihin nating dito, ito bilang isang kung tao kung iba kung tagpo.
Kaya kung n ay katumbas ay katumbas ng 1, -print na pinili mo ang isang mababang numero.
Kung ibang tao kung n ay katumbas katumbas ng 2, na pinili mo ang isang medium numero.
Iba Pa kung equals ay katumbas ng 3, mataas.
Iba Pa di-wasto.
>> Kaya sabihin nating na ang aming tagpo.
Kaya sabihin nating ipasok namin 4, kaya inaasahan namin di-wasto.
Ang paraan na kung tao kung tao kung diskarte ay pagpunta sa gumana ay
Sinusuri ng unang kalagayan.
Hindi ito natugunan.
Kaya tingnan natin ang ikalawang kalagayan.
Hindi ito natugunan.
Lagyan ng check ang mga third kondisyon.
Hindi nasiyahan.
Kaya pumunta kami sa ibang tao at mag-print ng di-wastong.
>> Ang paraan gumagana ang switch ito compiles pababa
sa kung ano ang namin ang iyong pupuntahan tumawag sa isang jump table.
Ang pangunahing ideya pagkatao na kapag ipinasok mo 4,
maaari itong agad na pumunta sa default.
Hindi nito kailangang mag-check ng umaga ko kaso 1?
Nope hindi iyon ito.
Case 2?
Nope.
Case 3?
Nope.
Default.
OK, ito ay dapat na kung saan ako gusto, at pagkatapos ay isakatuparan iyon.
Hindi, agad na ito jumps sa default.
O kaya itong ipasok ko 2, ito ay agad pagpunta sa pumunta sa 2
hindi nangangailangan na dumaan sa kaso 1.
>> Kaya sa paraang iyon, realistically ngayong mga araw na ito na
hindi na karami ng isang kahusayan pakinabang.
Karaniwang mga computer ay medyo mabilis, at hindi iyon ang mahusay.
Ngunit ito ang kaso na switch ay mas mabilis.
Kung talagang sinusubukan upang i-optimize, gumamit ng switch.
>> Allison: Cool.
At pagkatapos ay mayroon kaming tatlong bagay operator.
Kaya alam ko nabanggit ko mas maaga ang salitang sintaktik asukal.
Kaya ito ay mga bagay lamang na gumawa mas madaling maintindihan sa iyong code.
Kaya ito ay isa sa mga kasong iyon.
>> Kaya tatlong bagay operator ay tandang pananong tutuldok gaya ng nakikita natin sa linya ng string
s ay katumbas n mas malaki sa 100 tandang pananong mababang mataas colon.
Kaya talaga kung paano ito gumagana ito ang n mas malaki kaysa sa 100 ay isang kalagayan.
Kaya sa palagay ko ay maaari itong magkaroon ng kahulugan.
Ito ay tulad ng pagtatanong sa isang katanungan.
Ang sinasabi ng mga ito oh, ay n mas mataas sa 100.
Sino ang nakakaalam?
At kung ito ay pinag-aaralan upang Totoo, ito ay pagpunta sa magbibigay sa iyo ng
ang unang bagay na nakalista doon, na kung saan ay mataas.
Kung hindi ito ang nangyayari upang bigyan ka ng mababang.
Kaya ito ay isang talagang simple lamang at mahusay na paraan upang gawin tulad ng isang kung iba pa.
Iyon ang lahat ng ito ay.
>> At kung hindi namin na magsulat ito bilang isang kung iba-kondisyon,
magiging kung n ay mas malaki sa 100, bumalik mataas.
Iba Pa, bumalik mababa.
Ito ay lamang ng isang mas madaling maintindihan sa paraan ng pagsusulat ng mga ito.
>> Rob BOWDEN: Kaya sa partikular na halimbawa ay sa tuwing naka-paggawa ng isang bagay
tulad nito, ito ang pattern kung saan ginagamit ko ang tatlong bagay masyadong madalas.
Kaya hindi pa namin usapan tungkol sa saklaw, ngunit ako mapoot na nakakakita ng tuldok string s.
Kung n mas malaki sa 100, ay katumbas ng mga mataas.
Iba Pa, ay katumbas ng mga mababa.
Kaya pattern na, mga limang linya ng code literal na 100% ng panahon
maaaring mailipat sa kung anong ay up doon na may tatlong bagay.
Kaya ang tatlong bagay, isang linya ng code.
Ang kung tao, lima.
Iyon ay isang halimbawa ituro ko ang bawat solong oras.
Ito gagawin magandang lugar para sa isang tatlong bagay operator.
Ito ay upang malinis.
Ngunit ang mga tao ay may posibilidad na hindi kailanman gamitin ito.
>> Allison: Dalhin ito ang layo Gabe.
>> Gabriel: Kaya ngayon mo guys lahat natutunan sa aralin sa linggong ito
na ang lahat sa isang computer ay binary, tama?
Tulad ng lamp dito.
Maaari kang maging alinman sa naka-on at off.
At sa pamamagitan ng lahat ng bagay, ibig kong sabihin Literal na ang lahat.
Ang ilan sa mga numero, at karakter, at mga string, at kahit na ang code na magsulat sa iyo kapag
maipo-pinagsama-sama sa machine code at mga bagay-bagay na tulad nang,
kaya ang lahat ng ito kahulihan babagsak sa 0 at 1 '.
>> At kaya kapag kami ay pakikitungo may integer, na
ay isang bagay na technically napaka simple, dapat namin magagawang gawin mga bagay-bagay
tulad ng pagdaragdag sa kanila, na Malamang na isa sa mga pinakamadaling bagay
Maaari mong gawin ito sa dalawang integer, tama?
Kaya gumagana karagdagan at pagbabawas lamang tulad ito gumagana sa pagtatanda ng decimal,
maliban dito ito ay binary, tama?
Kaya sa base ng dalawa.
Kaya magdagdag ng 1 plus 1.
Na nagbibigay sa 0, at 1 ay nagdadala sa paglipas.
At panatilihin lamang ang paggawa na, Kaya ngayon pagdating ng mas kawili-wiling tanong.
>> Alam namin kung paano upang kumatawan sa lahat positibong integer sa computer,
ngunit ni gawin ang isang pagsasanay na ipaalam.
Magpanggap ikaw ay guys lahat sa 1960 o isang bagay na sinusubukan mong lumikha ng isang computer,
at mayroon kang upang makabuo ng isang paraan ng pag-iimbak ng minus 1,
halimbawa, o binawasan ng anumang integer para sa bagay na ito.
Paano mo gawin iyon?
Ang anumang mga ideya?
Magtapon lang ng kahit ano sa akin.
Oo?
>> Madla: [hindi marinig] magtalaga ng isang espesyal na kung ang iyong [hindi marinig].
>> Gabriel: Maaari kang magtalaga ng isang espesyal na sandali, na kung saan ay 0 o 1.
Hayaan sabihin ng isa kung ito ay positibo at 0 kung ito ay negatibo.
At pagkatapos ay ang natitirang bahagi ng bit ay upang mag-imbak lang ang numero.
Ayos.
Kaya iyon ay isang napaka-magandang ideya.
Mayroon kaming, hindi ko alam, 200.
At kung ang unang bit ay Naka-on, pagkatapos ito ay plus 200.
Kung ito ay naka-off, ito ay minus 200.
Ayos.
>> Mayroon lamang ng isang maliit na problema sa ito,
na kung sinusubukan naming sabihin sa ilang mga bagay.
Kaya isipin mayroon kaming 11,111 dito, at naka-summing namin ito sa 00,100 anumang.
Kung ang mga dalawang mga positibo, na multa.
Ngunit kung ang isa sa ang mga ito ay negatibo, tulad ng
sabihin nating na ito bit dito ay ang isa na responsable
for-- Pupunta ako sa gumawa ng isang separate-- kaya ang isang ito ay nangangahulugan na ang bilang na ito dito
ay positibo.
Isa Nangangahulugan ito na ito numero dito ay negatibo, tama?
>> Ngunit kapag ikaw ay pagpunta sa sabihin sa ilang mga ito, mo
Kailangan ng isang kung pahayag sinasabi oh kung ito ay 0,
pagkatapos ay ang aking kabuuan ay magiging isang bagay na naiiba, tama?
Kaya mayroong isang bahagyang higit pang matalino na paraan upang magawa
na iyon, na kung saan ay tinatawag na dalawang ni pampuno.
Kaya kung ano talaga namin gawin ay tinutukoy namin minus 1
na ang bagay na iyon kung magdagdag ng hanggang naming 1 ay nagbibigay sa amin 0.
Hayaan akong ulitin na.
Kaya sabihin nating na ito dito ay 1.
Ano ang bagay na natural sa positibong integer
naidagdag sa na nagbibigay sa amin ng 0?
Paano kung sinusubukan naming idagdag ito sa numerong ito?
Kami ay pagpunta sa have-- OK, kaya sabihin idagdag.
Kami ay pagpunta sa may 1 plus 1 ay 0, at pagkatapos nito ay nagdadala sa paglipas.
At pagkatapos kami ay pagpunta upang makakuha muli 0.
Nakakakuha ako ng nalito.
At ka ng pagpunta upang makakuha ng 0 at 0 at 0 at 0 at 0 at 0.
Maraming 0 ni.
>> Sa pinakadulo huli, hindi kami pagpunta sa magagawang upang isakatuparan ito sa,
dahil sabihin nating lamang namin ang pakikitungo may isang byte, kaya bits 8 lamang.
Kaya kung ano ang ginagawa sa pamamagitan ng default ang computer lamang forgets tungkol na [hindi marinig],
OK?
Kaya ito ay kung ano ay tinatawag na ang dalawang na pampuno.
Tukuyin lang namin minus 1 upang maging bagay dito na kung mong idagdag na sa 1
ay magbibigay sa iyo 0.
At iyon ang medyo cool dahil hindi namin talaga
Kailangan huli upang ipatupad iba't ibang uri ng halagang
depende sa kung iyon ay isang negatibong o isang positibong numero.
Ay na magkaroon ng kahulugan?
>> Kaya isang bagay na aming ginagawa dito upang i-convert
sa pagitan ng positibo at negatibong integer ay pagkatapos ay i-flip namin ang lahat ng bagay,
at pagkatapos ay idagdag namin ang 1 sa numerong iyon.
Kung susubukan mong gawin ito sa iyong sarili sa isang piraso ng papel,
na iyong pupuntahan upang makita na saysay.
Subalit kung gagawin ko ito bilang dito, ito ay limang.
Kaya kung i-flip ko ang lahat ng bagay dito, kaya 1, 1, 1, 1, 1.
I-flip, i-flip, flip.
At pagkatapos ay idagdag ko 1 dito.
Pupunta ako sa mayroon nang eksakto minus 5.
OK?
>> Ang ganitong uri ng saysay dahil kung subukan mong sabihin sa ilang ito kasama ang numero ng
na namin ay may mga bago, na ni-flip muli ang was-- ipaalam.
Ito ay 101 at maraming mga 0 na.
Kung sinubukan mong idagdag ang mga dalawang numero magkasama,
ka ng pagpunta sa mayroon nang eksakto 0.
OK.
Anumang mga katanungan?
>> Madla: [hindi marinig]
>> Gabriel: Ano ang ibig mong sabihin?
>> Madla: Negatibong sa positibong [hindi marinig].
>> Gabriel: Hindi, i-flip mo at nagdagdag ka ng 1 lagi.
Oo.
OK, kaya character na naka-encode din binary.
Mayroon kaming ASCII table, tulad ng sa iyo Nakita rin sa aralin, tama?
Kaya ito ay isa lamang sa pagma-map ng mga bagay.
At dito ay hindi ako maaaring bigyang-diin ang sapat na na para sa isang computer, isang at 65
ay literal ang parehong bagay.
Kaya kung sumulat ako ng isang bagay tulad ng pansamantalang trabaho c ay katumbas ng, maaari ko nang sabay-sabay
magsulat lamang 65 dito, at ito ay magiging eksaktong pareho, OK?
Walang pagkakaiba kung ano pa man.
>> Karaniwang namin ay may posibilidad upang ilagay mga character sa mga variable ng uri.
Pansamantalang trabaho, hindi dahil ang mga ito ay mahalagang ginawa para sa mga iyon, ngunit dahil
ng convention ng tao.
Ngunit maaari ka lamang makitungo sa integer sa halip ng mga variable ng uri ng pansamantalang trabaho,
at ikaw ay multa.
Ang tanging aktwal na pagkakaiba sa pagitan ng isang pansamantalang trabaho c at isang int i
ay isang int ay may apat na bytes sa karamihan system, habang ang isang pansamantalang trabaho ay may isang byte.
Ang mga ito ay mahalagang parehong bagay sa mga tuntunin ng data.
Kaya kung ano ang i-print dito?
Narito kami sa pag-print ng isang digit na gumagamit ng printf ng plus 1, at tulad lamang ng integer,
char ay maaaring summed, kaya mga character ay maaari ring summed.
Kaya ito ay eksaktong 65.
Kaya may pupuntahan maging 66, at dito mayroon kami
65 plus kaunti ng minus malaki A, na magiging, hindi ko talaga alam.
Ngunit ito ay eksakto ang puwang sa pagitan ng mga malalaking titik
at at ang mga mas maliliit na mga titik, sa gayon kami ay pagpunta upang makakuha ng maliit na isang, i-right?
Oo.
Kaya ito ay pagpunta sa i-print ang isang character na kung saan ay eksakto ang isang ito.
Magandang?
Anumang mga katanungan?
>> Narito mayroon kaming isang bungkos ng iba't ibang uri para sa de-numerong variable.
Na makipag-usap namin tungkol sa int.
Float lamang ang paraan to-- talaga ito nakakatawa, dahil noong una akong natutunan
sa programa pabalik sa araw na Python, ang unang programa ako kailanman
sinubukang magsulat, Nakita ko na nagkaroon ng uri na tinatawag na sa at isang uri ng tinatawag na float.
At ang float ay para sa lahat ng mga tunay na numero.
Kaya pagkatapos Tinanong ko kung bakit dapat Kailanman ko bang gamitin ang isang int pagkatapos?
Dahil kung ang maaari kong gamitin ang lahat tunay na mga numero na may float,
Gusto ko ihinto lamang ang paggamit ng ints, tama?
Dahil ang tunay na mga numero tulad ng higit pang generic.
>> Ito ay lumiliko out na ito ay hindi ito ang kaso sa mga computer
dahil ang mga ito ay mahalagang iba't ibang bagay.
Kaya integer at sa kamay, ang mga operasyon na ginawa mo sa kanila
ay mahalagang iba't ibang mga dahil ng paraan na sila ay naka-imbak, OK?
Kami ay pagpunta sa makipag-usap ng kaunti kaunti pa tungkol sa na sa isang segundo.
>> Kaya double ay lamang ng mas malaking float.
Karaniwan sa karamihan ng mga sistema, ng float ay apat na bytes, tulad ng isang int.
At isang double ay walong bytes.
Ang isang mahaba mahaba ay talagang isang simbolo lamang na isama ka sa isang uri tulad ng int.
Sabihin mo ang haba haba int tulad nito.
Mahabang mahaba ang int x upang gawin itong mas mahaba.
Kaya sa karamihan ng mga sistema, na magbibigay walong bytes sa halip ng karaniwang apat.
At maaari mong talagang i-drop ang in, sa gayon ay maaari lamang ito sabihin mahaba ang haba,
at na gumagana masyadong, OK?
Maaari ka ring gumawa ng iba pang mga bagay tulad ng unsigned int, o muli lamang unsigned
Gusto rin gumagana.
At na gagawing x maging isang variable tulad ng lahat ng bagay ay positibo,
kaya hindi mo talaga magkaroon ng negatibong mga mga numero sa paraan na nakita natin dito.
Kaya sumusunod na kahanga-hangang lumulutang na tuldok at katumpakan.
Iyon ang isa sa mga dahilan kung bakit mo nais na gumamit ng ints sa halip na sa kamay,
dahil ints ay 100% tumpak, tama?
Ito ay eksaktong numerong iyon.
Para sa mga lumulutang na puntos, kung sabihin ay katumbas ng 1 sagot sa paglipas ng 10--
Mangyayari kong magkaroon ng eksaktong ng programa dito, float.c.
Na mga print sa 20 decimal lugar.
1 hinati sa 10, at na Karaniwan ay 0.1, tama?
Ngunit dito kung gumawa kami lumulutang at pagkatapos ay magpatakbo ng namin ito,
nakita namin na hindi ito eksaktong 0.1.
Ito ay .149 ng isang bagay.
>> At kung bakit ay na?
Dahil hindi mo ba talagang maaaring kumatawan sa bawat -iisang tunay na posible numero sa memory
dahil may mga uncountably marami sa kanila.
Kaya hindi namin technically lamang magagawang kumakatawan sa isang tiyak na halaga ng mga ito
may isang tiyak na halaga ng data.
Ngunit ito ay talagang kawili-wiling.
Ngayon ito begs ang tanong ng kung paano mo gagawin
pumunta tungkol kumakatawan sa ito kasama ang mga piraso, i-right?
Kaya kung paano na nakaimbak ay sa kamay?
Sa integer ito ay madaling.
Ngunit sa kamay na nais mong upang i-maximize ang saklaw,
at nais mong magagawang upang kumatawan malaking numero at napaka maliliit na mga numero tulad ng
0.000001 nang sabay-sabay.
Kaya muli, parehong laro.
Sinuman ay may anumang mga ideya kung paano ba dati namin pumunta tungkol kumakatawan sa float sa memory?
Magtapon lang ng kahit ano.
Oo, pakiusap.
>> Madla: [hindi marinig] bilang kung ito ay dalawang ints at isa
pagiging [hindi marinig] at isang pagkatao lahat pagkatapos ng decimal point.
Gabriel: OK, cool.
Kaya ang dalawang magkaibang mga integer.
Maaari kang magkaroon ng 12.45, kaya na 12 at 45.
Nice.
Ano ere ka ng pagpunta sa sabihin?
Ang parehong bagay?
Oo?
>> Madla: [hindi marinig] pagtatanda kung saan ihiwalay mo ang base.
>> Gabriel: pagtatanda na Pang-Agham, oo na karaniwang kung ano ang mangyayari.
Kaya ito ay kung ano ay tinatawag na mantissa.
Iyon ay kung ano ang aktwal na ang numero, at pagkatapos ay ang exponent
lamang kung saan ang kuwit ay, i-right?
Kaya ito ay magiging isang bagay ng form na 1, 2, 3, 4, 5 beses 10
sa minus 4.
Lamang natanto ko that-- oo, eksakto.
At pagkatapos ay ang 10 sa minus 4 ay pagpunta upang tukuyin kung saan ang kuwit ay, ang OK?
Sa Brazil ginagamit namin kuwit.
Narito ang guys gumamit ng isang tuldok.
Kaya isang tuldok.
>> At ito ay cool, dahil pagkatapos ay maaari kang -focus ng maraming ng iyong mga piraso sa tao
dito, sa mantissa, at pagkatapos ay na magiging iyong aktwal na katumpakan.
At maaari mong gawin ito sa alinman sa decimal o sa system na batay sa binary.
Mayroong iba't ibang mga mga paraan upang ipatupad ito.
Mga tanong?
Oo?
Madla: Ilang mga lugar pagkatapos ng decimal [hindi marinig]?
>> Gabriel: Iyon ay isang kumplikadong pinag-uusapan, dahil ito ay hindi talagang 100% tumpak,
dahil tulad ng nakikita mo rito, para sa ang ilang mga numero ito ay 100% tumpak.
Naniniwala akong kung ilalagay namin dito 0.5, ito ay magiging 100% tumpak.
Ito ay magiging .500000.
Kaya sa kasong iyon, ito ay perpekto.
Ngunit sa ibang mga kaso, ito ay higit na mas mababa perpekto.
Sa aking karanasan, tulad ng hanggang sa apat na, limang decimal place ay medyo tumpak.
Kung gumagamit ka ng isang double, ito ay pagpunta sa maging paraan ng mas tumpak kaysa doon, OK?
>> Rob BOWDEN: Kaya lang itapon ilang higit pang konteksto sa kamay,
Natatandaan ko kailanman 100% kung paano ang spec ng kamay talagang gumagana,
ngunit gagawin ko palagi kang matandaan na sa kamay magsisimulang pagkuha ng maraming kalat.
Kaya ang ideya ay na kapag nakakuha ka talaga, Talagang malaking mga numero o talagang, talagang
maliit na numero, sisimulan namin ang pagkuha ng mas masahol pa at mas masahol pa
sa differentiating sa pagitan ng dalawang malapit sa kamay.
>> Kaya kung paano kong isipin ang tungkol ay may mga lumulutang na tuldok imprecision,
may dalawang kamay na kung sinusubukan kong tukuyin ang mga ito
sa C, sa kabila ng katotohanan na ang ang mga ito ay iba't ibang mga numero,
sila ay magiging binigyang-kahulugan bilang ang parehong numero,
dahil hindi namin maaaring iimbak sa ibang paraan ang mga ito.
Kailangan naming gamitin ang parehong piraso.
At kaya kapag makuha namin sa talaga ito, talagang malaking bilang,
pakikipag-usap tulad ng 10 sa 300 o isang bagay na ito, sa puntong iyon
na 10 sa 300 o 5 beses 10 sa 300
Hindi maaaring differentiated mula 7 beses 10 sa 300.
Kaya iyon ay isang magandang malaking pagkakaiba sa pagitan ng dalawang numero.
>> Ngunit kapag nakakuha ka pababa sa normal na mga bagay na saklaw,
ay may posibilidad na maging medyo magandang sa differentiating.
At pagkatapos ay kapag nakakuha pababa mo ba talagang maliit, muli ka nakakakuha rin medyo masama.
Kaya tulad ng isang buong bungkos ng 0.0000, ito ay makakakuha ng medyo masama.
Gabriel: Oo, kaya isang mabilis na tala.
Huwag kailanman gawin ito.
Huwag kailanman subukan upang ihambing sa kamay sa paggamit ng equals katumbas,
dahil kahit na ang mga ito ay halos pareho, sa parehong halos ay hindi ang pareho.
Kaya kung ano ang iyong karaniwang gawin ay mo ibawas mga ito, kumuha ng absolute value ng iyon,
at tingnan kung na mas maliit sa 0.0001 o isang bagay tulad na, OK?
At cool.
Alam ko ng maraming mga tao ay may ilang background sa Java,
lalo na sa mga taong ginawa AP computer science, i-right?
At Java ay isang wika na karamihan ay batay sa C,
mayroon itong ilang napaka-malaking pagkakaiba.
Ngunit para sa mga loop, at ifs, at bagay-bagay tulad ng na iyon, ang mga ito ay ang lahat ng parehong syntax.
Mayroon akong dito ang ilang mga programa upang ipakita ang mga ito.
>> Kaya halimbawa, ang isang simpleng kumusta mundo.
Ito ay halo mundo sa C, kung saan mo guys ay siguradong pamilyar sa,
at ito at ang isang ito ay sa Java.
Kaya sa Java ay mayroon kaming na ito pampublikong klase, kumusta mundo,
at mga pampublikong static na walang bisa pangunahing, at string args.
Ang args string ay pagpunta upang lumitaw sa C napaka ilang sandali.
Ngunit ay hindi pa pumunta doon ipaalam.
Sa ngayon ay may walang bisa namin dito, na nangangahulugang na pangunahing ay hindi gumawa ng anumang mga argumento.
At pagkatapos ay mayroon kaming system.out.println, ang at na
uri ng katumbas para sa printf.
Narito hindi talagang kailangan namin ang backslash n dahil naka-print na ln ginagawa na para sa iyo.
Ito Ikinakabit ang backslash n sa dulo ng linya.
>> Ngunit kung pumunta ka sa isang bagay tulad ng isang para sa, mo
maaaring makita na ang mga ito ay medyo marami ang parehong bagay.
Kaya pagsisimula, at ang kondisyon, at ang pag-update
is-- Naiwan ako ng isang puwang here-- ang mga ito medyo marami ang mga parehong bagay, maliban sa Java
May ng ilang higit pang mga bagay-bagay mataas na antas.
Dito maaari naming gawin plus ko at Awtomatikong Java habilin
gawin ang i dito, na isang integer, sa isang string,
at pagkatapos ay isama ang dalawang mga string ng sama-sama.
Narito sa C kailangan namin upang gawin ang &% d.
Ang linya dito, ang para sa mukhang eksaktong kapareho.
>> At kung tinitingnan namin ang kung, ang ifs tumingin nang eksakto rin ang parehong, tama?
Kaya ang tunay na malaki ang pagkakaiba ay sa mga bagay na iyong nakikita dito.
Pampublikong static, walang bisa, at pagkatapos pampublikong klase kung.
Kaya may Java ano ang na tinatawag na isang virtual machine.
At ito ay napaka-mabigat batay sa kung ano ay tinatawag na bagay na nakatuon sa programming,
kung saan ay isang napaka, napaka-karaniwang tularan para sa programming ngayong mga araw na ito.
At ito klase bagay ay kung ano ang nakikita mo, isang bagay mula sa bagay na oryentasyon,
ay kang lumikha ng isang klase at pagkatapos ay sa iyo Maaari nakukuha ang mga bagay mula sa klase na iyon.
Hindi namin pagpunta sa makipag-usap masyadong magkano ang tungkol na sa CS50,
ngunit na siguradong isang bagay na talagang cool,
lalo na kung gusto mong pumunta sa higit pang mga kumplikadong web development
sa pagtatapos ng kurso, tulad isumite ang iyong huling proyekto
at ilang magandang Framework at bagay-bagay.
>> Kaya isa lamang ang ideya ay na ayaw upang muling ipatupad ang isang bagay,
kaya lumikha ka ng isang bagay na napaka generic, tulad ng hugis,
at pagkatapos ay kang lumikha ng ibang mga hugis mula dito,
at pagkatapos ay mula sa bawat isa sa mga hugis, lumikha ka
ang ilang mga mas tiyak na mga hugis sa tatlong Mga sukat o isang bagay tulad na.
At mayroon silang ito hierarchy nila magmana mula sa iba pang mga, sa gayon
lahat ng mga function at ang lahat ng mga variable na malaking hugis dito ay, ang lahat ng mga
Magiging, at lahat ng mga ito ay pagpunta sa mayroon, at iba pa at iba pa.
Kaya iyon ang pangunahing ideya.
>> C ay walang iyon, ngunit C ++ mayroon na uri ng tampok na ito.
At Java ay mabigat naiimpluwensyahan sa pamamagitan ng object na oryentasyon,
nang sa gayon ay ang dahilan kung bakit nakikita mo klase dito sa lahat ng oras.
At ang iba pang mga bagay ay ang Java virtual machine.
Kaya ito, sa palagay ko, ay isang napaka-matalino ideya.
Kaya kung ano ang mga tao na May ginawang imbento java ay
hindi nila nais na makatipon ng kanilang code nang dalawang beses
kung mayroon sila upang patakbuhin ito sa Windows, o Mac, o Linux, kaya't kung ano ang ginagawa nila
Literal na tumakbo isang bagay tulad ng appliance,
ngunit hindi mo talaga makita ito nangyayari.
Kaya tumakbo sila ng isang virtual machine sa loob ng iyong computer, na
ay isa lamang tulad ng isang mini operating system.
At na operating layunin system sa buhay
ay ang patakbuhin lamang kung ano ay tinatawag na byte code.
>> Kaya sa halip na sa C, tulad ng kung paano namin sumulat ng libro na ito ay gumawa ng kung, at pagkatapos ay magpatakbo ng
./if.
Nakalimutan ko ang backslash sa.
Sa Java, gusto mong gawin muna Java C upang ipunin ito, if.c.
Ito ay hindi na tuldok java C. Ito ay.
At pagkatapos ay mayroon kang upang tumakbo hindi ./.
Makakakuha ka ng bagong file if.class, ngunit hindi mo magagawa talaga
tumakbo if.class ngayon lang tulad ng ginawa namin bago.
Ito ay hindi isang executable.
Mayroon kang upang tumakbo.
Mayroon kang sa feed ito sa isang programa na tinatawag na Java,
at programa na ang mga virtual machine, at pagkatapos ay gawin mo if.class, o kung.
Oo.
At pagkatapos ay ito gumagana.
OK kaya ito ay uri ng virtual machine nangyayari.
C ay walang iyon, kaya kung ako ay upang ilagay ang program na ito sa isang Windows machine,
hindi ito gagana sa C. Sa Java ginagawa nito.
Mga tanong?
Ayos.
Iyon ay kung para sa sobrang seksyon para sa araw na ito.