[Powered by Google Translate] [It-Taqsima 4] [Inqas Komdu]
[Nate Hardison] [Università ta 'Harvard]
[Dan huwa CS50.] [CS50.TV]
>> Kull dritt, merħba lura lill-sezzjoni.
Fit-taqsima din il-ġimgħa aħna qed tmur biex tagħmel ftit affarijiet.
Aħna ser terġa 1 Problema Set 2,
li huwa s-sett problema Caesar u Vigenère.
U allura aħna qed tmur biex adsa fis Quiz reviżjoni 0
u jqattgħu ftit ta 'żmien recapping dak li konna tkellimna dwar
f'kull wieħed mill-lectures s'issa, u aħna ser wkoll tagħmel ftit problemi
mis kwizzijiet sena ta 'qabel.
B'dak il-mod inti guys jkollhom mod tajjeb biex jippreparaw għal dan.
>> Biex tibda, stajt Booted up koppja ta 'soluzzjonijiet tajbin
għas-sett problema qabel, Problem Set 2, fis dan l-ispazju.
Jekk inti guys kollha hit din ir-rabta,
u jekk tikklikkja l-isem tiegħi u kklikkja fuq ewwel reviżjoni tiegħi
tkun taf tara caesar.c, li huwa eżattament dak li jien tħares lejn.
Ejja nitkellmu dwar dan verament malajr.
Dan huwa biss soluzzjoni kampjun.
Dan mhuwiex neċessarjament is-soluzzjoni perfetta.
Hemm ħafna modi differenti biex tikteb dan,
imma hemm ftit affarijiet li ridt li jenfasizzaw
li rajt kif kien gradazzjoni, żbalji komuni li naħseb
din is-soluzzjoni ma biċċa xogħol tajba ħafna ta 'tqandil.
>> L-ewwel qed ikollha xi tip ta 'kumment header fil-quċċata.
Fuq linji 1 sa 7 inti tara d-dettalji,
x'inhi eżattament dan il-programm qed tagħmel.
A prattika standard tajjeb meta int bil-miktub kodiċi C
irrispettivament jekk il-programm tiegħek tinsab fi fajl waħdieni jew
jekk huwa jinqasam fuq fajls multipli huwa li jkollu xi tip ta '
jorjentaw kumment fil-quċċata.
Dan huwa wkoll għan-nies li jmorru barra u jikteb il-kodiċi fid-dinja reali.
Dan huwa fejn dawn ser tpoġġi l-informazzjoni awtur.
Hawn taħt huma l-jinkludi #.
Fuq il-linja 16 hemm dan # jiddefinixxu, li aħna ser terga 'lura fil biss daqsxejn.
U allura ladarba l-funzjoni tibda, jibda ladarba prinċipali,
għaliex dan il-programm ġie kollha tinsab funzjoni waħda
l-ewwel ħaġa li jiġri u dan huwa ħafna idjomatiku u tipiku ta 'programm C
li jieħu fil-linja ta 'kmand argumenti' huwa li immedjatament kontrolli
>> għall-għadd argument, argc.
Dritt hawn naraw li dan il-programm qiegħda tistenna 2 argumenti eżattament.
Ftakar hemm dan l-ewwel argument li l-waħda speċjali
li dejjem l-isem tal-programm li l-jiġu run,
l-isem tal-fajl eżekutibbli.
U hekk dak li dan ma huwa timpedixxi l-utent milli titħaddem il-programm
b'argumenti aktar jew inqas.
Ir-raġuni irridu li jikkontrolla għal dan id-dritt bogħod huwa minħabba
ma nistgħux effettivament aċċess din array ARGV dritt hawn affidabbli
sakemm konna kkontrollati biex tara kemm hu kbir huwa.
>> Wieħed mill-iżbalji komuni rajt kien in-nies minnufih imorru fi
u grab ARGV [1].
Theyd grab l-argument ewlieni barra mill-firxa u ma 'l-a biex i jivverifika fuqha,
u mbagħad theyd jagħmel it-test għall-argc kif ukoll it-test li jmiss,
jekk l-ewwel argument kien tabilħaqq integer fl-istess ħin,
u li ma taħdimx minħabba li fil-każ li ma jkunx hemm argumenti fornuti
inti ser tkun ħtif argument li ma jkunx hemm jew jippruvaw grab wieħed li ma jkunx hemm.
>> Il-ħaġa kbira oħra li għandek avviż huwa li
inti dejjem tixtieq li jistampa xi tip ta 'messaġġ ta' żball ta 'għajnuna
lill-utent biex jorjentaw lilhom.
Jien ċert li inti stajt programmi kollha run fejn kollha f'daqqa ġġarrfu,
u ikollok dan dialog ftit redikoli li pops up u jgħid
xi ħaġa horribly cryptic u forsi jagħtik kodiċi żball jew xi ħaġa bħal dik
li jagħmel ebda sens.
Dan huwa fejn inti verament tixtieq li jipprovdi xi ħaġa utli
u mmirati għall-utent hekk li meta run jmorru "Oh," palm wiċċ.
"Naf eżattament x'għandhom jagħmlu. Naf kif jiffissaw dan."
>> Jekk inti ma print messaġġ, allura inti tispiċċa fil-fatt
jħallu lill-utent biex imorru teżamina source code tiegħek
ċifra barra dak li marret ħażin.
Hemm ukoll xi drabi li inti ser tuża kodiċi ta 'żbalji differenti.
Hawnhekk aħna biss użati waħda li jgħidu kien hemm żball,
kien hemm żball, kien hemm żball.
Programmi Akbar, ta 'spiss programmi li huma msejħa minn programmi oħra,
se terġa 'lura xi tip ta' kodiċi ta 'żbalji speċjali xenarji differenti
li programmatically tikkomunika dak li kieku
biss użu messaġġ Ingliż sbieħ għall.
Kessaħ.
Kif naħdmu isfel, tista 'tara għandna iġbed il barra ċavetta.
Aħna test biex tara jekk iċ-ċavetta aċċessjonijiet.
Nikbru messaġġ mill-utent.
Ir-raġuni nagħmlu dan f'din tagħmel filwaqt loop u din hija xi ħaġa li aħna se jkopri
fi ftit ftit 'iżda jirriżulta li jekk inti tip ta' kontroll D
meta ikollok dak GetString pront fuq it-terminal
dak li attwalment ma huwa jibgħat karattru speċjali
għall-programm.
Huwa sejjaħ l-ELF jew it-tmiem ta 'karattru fajl.
U f'dak il-każ, spag messaġġ tagħna se tkun nulla,
għalhekk din ma kinitx xi ħaġa li aħna ċċekkjati fl-problema stabbiliet għaliha nnifisha.
>> Imma kif immorru fuq, issa li aħna ve bdew jitkellmu dwar pointers
u dinamika memorja allokazzjoni fuq il-munzell,
verifika għall null kull meta għandek funzjoni li tista '
ritorn null bħala valur huwa xi ħaġa li tixtieq tkun taf biex tikseb fl-drawwa li jagħmlu.
Dan huwa hawn primarjament għall-illustrazzjoni.
Imma meta inti tagħmel tara GetString fil-futur,
hekk mill Problem Set 4 dwar, tixtieq tkun taf biex iżomm dan f'moħħu.
Għal darb'oħra, din mhix kwistjoni għal Problem Set 3 jew peress li aħna ma kinux koperti encore.
Fl-aħħarnett, irridu jiksbu din il-parti fejn irridu jiksbu l-linja encryption prinċipali,
u hemm koppja ta 'affarijiet għaddejjin hawn.
L-ewwel, aħna ttenni fuq il-sekwenza messaġġ kollu innifsu.
Hawnhekk konna tinżamm is-sejħa strlen fil-kondizzjoni,
li numru minnkom rrilevat mhuwiex mod tajjeb ħafna biex imorru.
Jirriżulta f'dan il-każ huwa wkoll mhux tajjeb ħafna,
parzjalment għaliex aħna qed timmodifika l-kontenut tal-messaġġ innifsu
ġewwa l-għar loop, hekk jekk ikollna messaġġ li l-10 karattri fit-tul,
l-ewwel darba nibdew li għal loop strlen se terġa 'lura dak li?
10.
>> Imma jekk aħna mbagħad timmodifika messaġġ, ngħidu aħna jimmodifikaw il-karattru 5 tagħha,
u aħna tarmi \ 0 karattru fil-pożizzjoni 5,
fuq iterazzjoni sussegwenti strlen (messaġġ) mhux se terġa 'lura dak li għamlet
l-ewwel darba aħna tennew,
iżda minflok se terġa 'lura 5 għaliex aħna threw f'dak terminatur null,
u t-tul tal-sekwenza huwa definit
mill-pożizzjoni ta 'dik \ 0.
F'dan il-każ, dan huwa mod tajjeb ħafna biex imorru għax aħna qed timmodifika fil-post.
Imma tinnota li dan huwa effettivament sorprendentement sempliċi biex kriptaġġ
jekk inti tista 'tikseb l-matematika korrett.
Kollha li meħtieġa hija li tivverifika jekk jew le l-ittra li qed tfittex fi
huwa uppercase jew zghar.
>> Ir-raġuni aħna biss ikollhom jiċċekkjaw għal dan u aħna ma jkollhomx biex jiċċekkja għal
il-każ alpha huwa għaliex
jekk il-karattru huwa uppercase jew jekk huwa zghar
allura huwa definittivament minn karattru alfabetiku,
għaliex aħna ma jkollhomx ċifri uppercase u zghar.
Il-ħaġa oħra li nagħmlu u dan huwa ftit delikata-
huwa konna modifikata l-istandard Caesar cipher formula
li aħna taw fl-ispeċifikazzjoni sett problema.
X'hemm differenti hawnhekk hija li aħna mnaqqsa
fil-każ kapital uppercase A, u allura aħna miżjud kapital A
lura fl-aħħar.
>> Naf ftit inti għamlu dan fil-kodiċi tiegħek.
Did kwalunkwe inti tagħmel dan fis-sottomissjonijiet tiegħek?
Inti ma dan. Tista 'tispjega dak li din ma, Sahb?
Billi jitnaqqas it out, għaliex inti għamilt mod dritt wara dan,
inti għandek tieħu dan jitwettaq, sabiex il-mod ikollok [sogħla] pożizzjoni.
U allura billi żżid lura aktar tard inti qalbu fuq il-wieħed li inti riedu.
Yeah, eżattament.
Liema Sahb qal kienet li meta aħna trid iżżid
messaġġ tagħna u ewlenin tagħna flimkien
u mbagħad mod li, mod li billi NUM_LETTERS,
jekk aħna ma skala messaġġ tagħna fil-xieraq 0-25 firxa ewwel,
allura aħna tista 'tispiċċa jkollna numru verament stramb
minħabba li l-valuri li aħna qed tħares lejn meta nħarsu lejn messagg [i],
meta nħarsu lejn il-karattru ith tal plain-test messaġġ tagħna,
huwa valur x'imkien f'din il-firxa 65-122
ibbażata fuq il-valuri ASCII għal uppercase A permezz z zghar.
U hekk meta aħna mod lilha mill 26 jew minn NUM_LETTERS,
peress li kien tagħna # tiddefinixxi fil-kantuniera up hawn,
li għaddej biex tagħtina valur li fil-medda 0 sa 25,
u għandna bżonn mod biex imbagħad iskala li back up
u ġġibu fil-medda ASCII xierqa.
L-eħfef mod biex tagħmel dan huwa li biss iskala kollox stabbiliti
fil-medda 0 sa 25 sa tibda bil,
u mbagħad bidla kollox lura fl-aħħar.
>> Ieħor żball komuni li rajt nies run fis hija li
jekk inti ma attwalment tagħmel dan skalar dritt bogħod
u inti żid messaġġ u ewlenin flimkien u inti żid minnhom, ngħidu aħna,
fi varjabbli char, il-problema ma 'dan
huwa peress messaġġ [i] huwa numru relattivament kbir biex tibda bil-
ftakar li huwa mill-inqas 65 jekk huwa ta 'uppercase karattru-
jekk għandek ċavetta kbar, ngħidu aħna, xi ħaġa bħal 100,
u inti żid dawk 2 flimkien ġo char iffirmat int ser tikseb overflow.
Int ser tikseb valur li l-akbar minn 127,
li huwa l-akbar valur li varjabbli char tista 'żżomm.
Għal darb'oħra, hu għalhekk li youd tixtieq li tagħmel dan it-tip ta 'ħaġa li tibda bil.
Xi nies ltqajna madwar il-kawża billi tagħmel jekk ieħor u l-ittestjar
biex tara jekk se overflow qabel ma tagħmel dan,
iżda dan il-mod gets madwar dik.
U mbagħad f'din is-soluzzjoni aħna stampata l-sekwenza sħiħa fl-aħħar nett.
Nies oħra stampata karattru fi żmien. Kemm huma tal-biża.
Fuq dan il-punt, do inti guys xi mistoqsijiet, xi kummenti dwar dan?
Affarijiet li tixtieq, affarijiet li inti ma simili?
>> Kelli mistoqsija.
Maybe I qbiżt dan matul spjegazzjoni tiegħek, imma kif ma dan il-programm
aqbeż l-ispazji għall-konnessjoni l-muftieħ għat-tul tat-test?
Dan huwa biss Caesar cipher. >> Oh, sorry, yeah.
Yeah, aħna ser tara li.
Fil-cipher Caesar aħna ltqajna madwar li minħabba li
aħna biss flipped karattri.
Aħna biss mdawwra minnhom bħallikieku kienu uppercase jew zghar.
You guys tħossok pjuttost tajba dwar dan?
Ħossok liberu li kopja din id-dar, teħodha,
titqabbel ma 'dak li inti guys kiteb.
Żgur li tħossok liberu li tibgħat mistoqsijiet dwar dan wisq.
U għal darb'oħra, tirrealizza li l-għan hawnhekk mal-problema tiegħek settijiet
mhuwiex li tikseb inti guys biex jikteb il-kodiċi perfetta għal settijiet problema tiegħek.
Huwa esperjenza ta 'tagħlim. Yeah.
>> Lura għall-do filwaqt loop, jekk tkun ugwali null,
hekk null ifisser biss xejn, huma biss hit jidħol?
Null huwa valur pointer speċjali,
u nużaw null meta rridu ngħidu
għandna varjabbli pointer li tipponta lejn xejn.
U hekk tipikament dan ifisser li dan il-varjabbli, dan il-varjabbli messaġġ
hija vojta, u hawn, għaliex aħna qed tuża l-CS50 tip string speċjali,
dak li huwa t-tip sekwenza CS50?
Have you dehru dak li huwa meta David jinġibed lura l-hood fil lecture?
Huwa funky-it'sa pointer, id-dritt?
Okay, yeah. >> Huwa * char.
U hekk tassew nistgħu jissostitwixxu dan
dritt hawn ma 'messaġġ * char,
u għalhekk il-funzjoni GetString, jekk ma b'suċċess nikseb string mill-utent,
ma jistax parse string, u l-każ wieħed li fih ma jistax parse string
hija jekk l-utent tipi l-aħħar ta 'karattru fajl, il-D-kontroll,
li mhix xi ħaġa inti tipikament do, imma jekk dan jiġri
allura l-funzjoni se terġa 'lura dan il-valur null bħala mod ta' tgħid
"Ħej, I ma jiksbu string."
X'jista 'jiġri jekk aħna ma jitqiegħdu messaġġ = null,
li hija xi ħaġa li aħna ma ġewx tagħmel għadhom?
Għaliex kieku din tkun problema hawn?
Minħabba Naf li tkellimna ftit fil taħdita dwar tnixxijiet memorja.
Yeah, ejja tagħmel dan, u ejja ara dak li jiġri.
>> Kwistjoni Basile kien x'jiġri jekk aħna ma attwalment ikollhom
dan il-messaġġ = null test?
Ejja iscroll sal-quċċata.
You guys jista 'jikkummenta dan.
Fil-fatt, jien ser ħlief fil reviżjoni.
Dan se jkun Reviżjoni 3.
Dak li inti ser ikollok tagħmel biex imexxu dan il-programm huwa li inti ser ikollok ikklikkja din l-ikona tingrana hawn,
u inti ser ikollok iżżid argument miegħu.
Int ser ikollok biex jagħtuh l-argument ewlieni peress li aħna rridu li jgħaddu minn argument linja tal-kmand.
Hawnhekk jien ser jagħtiha n-numru 3. I simili 3.
Issa zooming lura, tmexxija tal-programm.
Huwa running, kumpilazzjoni, bini.
Here we go. Huwa qed jistennew li jiġu mħeġġa.
Jekk I tip fil xi ħaġa simili bonjour 'fejn ma li jmorru?
Oh, il-programm tiegħi ħa wisq żmien jiddekorri. I kien jawing għal ħin twil wisq.
Hawnhekk tmur.
Now I tip bonjour.
Naraw li encrypts xieraq.
Issa x'jiġri jekk nagħmlu GetString pront jirritornaw null?
Ftakar, I qal li aħna ma li billi tagħfas kontroll D fl-istess ħin.
I ser iscroll up here. Aħna ser run mill-ġdid.
Bini. Hemm tmur.
Issa meta I hit kontroll D
Sibt din il-linja li tgħid opt/sandbox50/bin/run.sh, tort Segmentazzjoni.
Have you guys raw li qabel?
>> [Student] Għaliex hemm ebda >> Jiddispjacini?
[Student] Għaliex hemm ebda dump qalba f'dan il-każ?
Il-dump qalba hija l-kwistjoni hija għaliex hemm ebda dump qalba hawn?
Il-kwistjoni hija li jista 'jkun hemm, iżda l-dump qalba hija fajl
li gets maħżuna fuq il-hard drive.
F'dan il-każ aħna ve b'diżabilità miżbliet ewlenin
fuq is-server run hekk li aħna ma għandna nies seg faulting
u tibni l-tunnellati ta 'miżbliet ewlenin.
Iżda int tista 'tikseb wieħed.
Miżbliet Core huma t-tip ta 'ħaġa li inti tista' spiss jiskonnettja,
u xi kultant inti tagħmel.
It-tort segmentazzjoni, iwieġeb il-mistoqsija tiegħek, Basile,
huwa qal li aħna ppruvat taċċessa pointer
li ma kienx stabbilit għall-punt li xejn.
Ftakar Binky fil-video meta Binky tipprova
mur aċċess għal pointer li mhux tipponta lejn xejn?
F'dan il-każ I raden teknikament l-pointer hija li tipponta lejn xi ħaġa.
Huwa tipponta lejn null, li huwa teknikament 0,
iżda li huwa definit li tkun segment li ma jkunx aċċessibbli
mill-programm tiegħek, hekk ikollok tort segmentazzjoni
għax int ma aċċess memorja li fil-segment validu
bħall-segment borġ jew iċ-segment munzell jew il-segment tad-data.
Kessaħ.
Kwalunkwe mistoqsijiet aktar dwar Caesar?
>> Ejja jimxu fuq. Ejja nħarsu lejn Reviżjoni 2 verament malajr.
Li Vigenère.
Hawnhekk fil Vigenère
aħna ser jimxu permezz dan wieħed pjuttost malajr għaliex, għal darb'oħra,
Vigenère u Caesar huma pjuttost simili.
Kumment Header huwa qabel,
# Tiddefinixxi huwa qabel sabiex jevitaw li jużaw dawn in-numri magic.
Il-ħaġa sbieħ hija ngħidu aħna riedu jimxu lejn
alfabett differenti jew xi ħaġa bħal dik.
Pjuttost milli jkollhom imorru manwalment bidla l-26 fil-kodiċi
nistgħu tbiddel dan għal 27 jew qatra l-isfel
jekk aħna kienu jużaw alfabeti differenti, lingwi differenti.
Għal darb'oħra, konna ltqajna dan il-kontroll ta 'l-għadd argument,
u verament inti tista 'kważi tieħu dan bħala mudell.
Pretty ħafna kull programm tikteb għandu jkollu-
jekk tieħu kmand tal-linja argumenti 'xi sekwenza ta' linji
li taqra bħal dan fil-bidu nett.
Dik hija wieħed mit-testijiet sanità ewwel inti trid tagħmel.
>> Hawnhekk dak li aħna ma kien għamilna żgur li
l-keyword kien validu, u li kien il-tieni kontroll li għamilna.
Avviż mill-ġdid li aħna separati dan mill argc u 2.
Innota li f'dan il-każ ħaġa waħda li aħna kellha tagħmel kien minflok
ta 'użu ta li i ridna li jivvalida l-sekwenza sħiħa,
u sabiex tagħmel li inti fil-fatt għandek tmur karattru minn karattru
fuq il-sekwenza.
M'hemm l-ebda mod tajjeb biex sejħa xi ħaġa fuqha
għaliex anki, pereżempju, li i se terġa 'lura 0
jekk ma tkunx tista parse numru sħiħ, b'tali mod li ma anki xogħol.
Għal darb'oħra, il-messaġġ sbieħ javżak l-utent eżattament x'ġara.
Imbagħad hawn, għal darb'oħra, aħna wkoll jimmaniġġjaw il-każ fejn
l-utent tipi fil-karattru D kontroll każwali.
>> U mbagħad Charlotte kellhom mistoqsija preċedenti dwar kif jirnexxielna skip ispazji
fil string tagħna hawn.
Dan kien it-tip ta simili għal dak li għamilna mal-programm Myspace
li għamilna fit-taqsima, u l-mod din maħduma
hija li aħna tracked-numru ta 'ittri li aħna ntlaqgħet jidhru.
Kif aħna mixi fuq il-sekwenza messaġġ, kif aħna mixi 'l quddiem karattru minn karattru,
aħna tracked-indiċi bħala parti mill tagħna għall loop, u allura aħna wkoll ssorveljati
in-numru ta 'ittri, hekk mhux speċjali karattri, mhux numri, mhux abjad ispazju
li aħna ntlaqgħet dehru fil-varjabbli separati.
U allura din is-soluzzjoni jimmodifika l-muftieħ
biex tikseb integer ewlenin attwali, u ma li fuq il-fly,
dritt qabel ma mbagħad tmur għall-kriptaġġ-karattru messaġġ attwali.
Hemm xi soluzzjonijiet li kienu perfettament kbira wisq
li timmodifika l-muftieħ sa meta l-ittestjar għall-validità ċ-ċavetta tal-.
Minbarra li jagħmlu ċert li l-karattru u l-keyword
kienet minn karattru alfabetiku li kien deher ukoll li fis integer
fil-medda 0 sa 25 sa aqbeż jkollhom jagħmlu dan aktar tard f'din għal loop.
Għal darb'oħra, inti ara hawn dan huwa verament l-istess kodiċi eżatt
li aħna użati Caesar f'dan il-punt.
Inti qed tagħmel l-istess ħaġa eżatt, sabiex l-trick reali huwa li jidhru fl
kif iddawwar l-keyword fis integer.
>> Ħaġa waħda li għamilna hawnhekk li hija ftit dens
hija aħna ripetut din il-frażi, I raden inti tista 'sejħa hija,
3 darbiet separati fuq il-linji 58, 59, u 61.
Jista 'xi ħadd jispjega x'inhi eżattament din il-frażi ma?
Huwa aċċess karattru, bħalek qal.
Yeah, huwa [inaudible] karattru fil-keyword,
u għalhekk huwa numru ta 'ittri li dehru għax int biss jimxu tul
l-keyword darba inti stajt tidher l-ittra,
hekk li għaddej biex effettivament skip ispazji u għalf bħal dik.
Yeah, eżattament.
U allura ladarba inti stajt tidher l-vojt keyword inti biss mod sabiex inti timxi lura madwar.
Eżattament. Li spjegazzjoni perfetta.
X'inhu Kevin qal hu li aħna rridu li indiċi fil-keyword.
Aħna rridu li tikseb il-karattru num_letters_seen, jekk inti se,
imma jekk num_letters_seen jaqbeż it-tul ta 'l-keyword,
il-mod irridu jiksbu lura fil-firxa xierqa hija li nużaw l-operatur mod
li effettivament perimetrika.
Per eżempju, bħal fil-qosor, keyword tagħna huwa bacon,
u huwa 5 ittri twal.
Iżda aħna stajt tidher 6 ittri test sempliċi tagħna f'dan il-punt
u encrypted 6.
Aħna se jispiċċaw aċċess għall-num_letters_seen,
li hija 6, mod it-tul ta 'l-keyword, 5,
u hekk aħna ser nikseb 1, u għalhekk dak li aħna ser nagħmlu huwa aħna ser
aċċess għall-ġewwa ewwel karattru ta 'keyword tagħna f'dak il-punt.
>> Kull dritt, xi mistoqsijiet dwar Vigenère
qabel nimxu fuq?
You guys tħossok pjuttost tajba dwar dan?
Kessaħ, kbir.
Irrid li tagħmel ċert li inti guys huma jkollna l-opportunità biex tara kodiċi
li aħna naħsbu jidher tajjeb u jkollhom l-opportunità li jitgħallmu minnha.
Dan se jkun l-aħħar aħna ser tkun qed tuża l-ispazji għalissa,
u aħna qed tmur biex transizzjoni issa, u jien ser imorru għall cs50.net/lectures
hekk nistgħu nagħmlu xi ftit ta 'reviżjoni kwizz.
L-aħjar mod naħseb li jibdew jagħmlu kwizz reviżjoni
huwa li jaslu għal din il-paġna Lectures, cs50.net/lectures,
u taħtha kull waħda mill-intestaturi ġimgħa, hekk jekk I ħarsa hawn f'Ġimgħa 0,
Nara li għandna lista ta 'suġġetti li aħna koperti fil f'Ġimgħa 0.
>> Jekk xi wieħed minn dawn is-suġġetti jidhru familjari għalik
inti ser definittivament tixtieq li tmur lura u scour-noti lecture u possibilment
anki skim permezz tal-lectures, tarahom mill-ġdid jekk inti tixtieq
biex tikseb jħossu għal dak li għaddej ma 'kull wieħed minn dawn is-suġġetti.
I se ngħid addizzjonalment din sena mir-riżorsi jibred konna ltqajna
Huwa dawn xorts li aħna stajt maħluqa, u jekk inti tħares f'Ġimgħa 0,
aħna ma jkollhomx kollha tas-suġġetti koperti, imma konna ltqajna pjuttost ftit minnhom,
uħud mill-delikati, sabiex jaraw dawn xorts darb'oħra
huwa mod tajjeb biex nikseb inti sa veloċità.
B'mod partikolari, jien ser jitqiegħdu fil-plagg għall-3 fil-qiegħ, peress li jien għamilt dawk.
Imma jekk int qed jitħabtu ma 'żewġ fibri, bits, hex, li tip ta' għalf,
binarju huwa post kbir biex tibda.
ASCII huwa wieħed ieħor li tajjeb biex tara wisq.
Tista 'anki tara lili fil-veloċità 1.5x jekk jien ser bil-mod wisq għalik.
Peress reviżjoni huwa, tħossok liberu li tagħmel dan.
>> Just biex tibda verament malajr, aħna qed tmur biex jmorru permezz ta 'koppja ta' dawn il-problemi kwizz
biss biex malajr lenbija permezz ta 'dawn.
Per eżempju, ejja nħarsu lejn il-problema 16 li stajt ltqajna dritt up hawn fuq il-bord.
Imxejna ltqajna dan il-kalkolu li ġej fil-binarju,
u rridu li juru kwalunkwe xogħol.
Okay, jien ser jagħti dan sparatura.
You guys għandhom isegwu flimkien ma 'karta,
u aħna ser nagħmlu dan verament malajr.
Aħna rridu li jagħmel il-kalkoli li ġej fil binarja.
Stajt ltqajna 00110010.
U jien ser iżidu miegħu 00110010.
Għall-matematika geniuses wara flimkien fid-dar,
dan huwa effettivament jiġi mmultiplikat bi 2.
Nibdew.
Aħna ser isegwu l-algoritmu minn hekk istess li nagħmlu
meta aħna żid in-numri deċimali flimkien.
Verament l-unika differenza hawnhekk hija li aħna loop lura madwar
ladarba għandna 1 + 1 minflok ladarba irridu jiksbu sa 10.
>> Jekk nibdew il-lemin, verament malajr, x'inhu l-ewwel ċifra?
[Student] 0. >> [Nate H.] 0.
Kbira, it-tieni ċifra?
[Student] 1.
[Nate H.] Huwa ta '1? 1 + 1 hu?
[Student] 10.
[Nate H.] Eżattament, iva, liema huwa l-ċifri li nikteb dritt taħt dawk 2 miżjuda flimkien?
[Student] 1, 0, jew 0 u mbagħad iwettqu l-1.
[Nate H.] 0 u jwettqu 1, eżattament.
Sussegwentement wieħed up, Basile, int up.
X'hemm-tielet? >> [Basile] 1.
[Nate H.] 1, perfetta. Kevin?
[Kevin] 0. >> [Nate H.] 0, Charlotte?
[Charlotte] 0. >> [Nate H.] Yeah, u x'għandi nagħmel?
[Student] Il-1.
[Nate H.] U x'għandi nagħmel? U mbagħad I carry-1.
Perfect, Sahb? >> [Sahb] Issa għandek 1.
[Nate H.] U nagħmel xejn hawn?
[Sahb] Mbagħad għal dik li jmiss għandek 1 għaliex inti trasferiti 1.
[Nate H.] Kbir, hekk hawn nistgħu finitura it up.
Kessaħ.
[Student] Il 0 + 0 = 0?
0 + 0 = 0.
1 + 1, bħalek qal, huwa 10, jew 1, 0, pjuttost.
10 huwa misnomer għaliex lili 10 tfisser in-numru 10,
u huwa l-quirk ta 'kif aħna qed jirrappreżentaw meta aħna qed tikteb dan.
Aħna jirrappreżentaw in-numru 2 sal-1, 0, u n-numru 10 huwa kemmxejn differenti.
>> X'hemm tip ta 'sbieħ dwar binarju hija li hemm verament mhumiex li ħafna
F'każijiet li għandek bżonn biex jitgħallmu.
Hemm 0 + 0 = 0, 0 + 1 = 1,
1 + 1 huwa 0, u mbagħad iwettqu 1,
u allura inti tista 'tara hawn fuq il-kolonna 3 mid-dritt
kellna dan 1, 1, u 1.
U 1 + 1 + 1 huwa ta '1,
u inti twettaq ieħor 1.
Meta inti qed tagħmel minn hekk binarju, pjuttost sempliċi.
I d jagħmlu aktar koppja ta 'dawn l sanità jiċċekkjaw infuskom
qabel ma tmur fl għaliex dan huwa
probabbilment xi ħaġa li aħna ser tara fuq l-kwizz.
Issa ejja tagħmel dan wieħed li jmiss ukoll.
Ejja nagħmlu problema 17.
Aħna ser jikkonvertu l-għadd binarju li ġejja lill deċimali.
Stajt ltqajna 10100111001.
Ftakar fil-video binarju li għamilt
I mixi permezz ta 'koppja ta' eżempji, u I wera kif
kollox jaħdem meta int tagħmel dan fil deċimali.
Meta inti qed jaħdmu fil-rappreżentazzjoni deċimali I think we qed
f'dan il-punt fil-ħajja tagħna tant fluwenti fiha li
huwa pjuttost faċli li tleqqija fuq il-mekkaniżmi ta 'kif attwalment xogħlijiet.
>> Iżda biex tagħmel terġa 'malajr, jekk għandi l-għadd 137
dan verament ifisser u għal darb'oħra, dan huwa fil-deċimali rappreżentazzjoni-
in-numru 137 fi deċimali ifisser li għandi 1 x 100 + 3 x 10 + 7 x 1.
Dan huwa joqogħdu fuq l-iskrin.
U mbagħad jekk inti tħares lejn dawn in-numri dritt hawn,
100, 10 u 1, tara li dawn qed attwalment poteri kollha ta '10.
Għandi 10 ², 10 ¹, u 10 tal-żero.
Għandna tip simili ta 'ħaġa fil-binarju,
ħlief li l-bażi tagħna, kif aħna sejħa hija, huwa 2 minflok 10.
Dawn 10s li I kiteb stabbiliti hawn fil-qiegħ,
dan ² 10, 10 ¹, 10 għall-żero, 10 huwa bażi tagħna,
u l-esponent, 0, 1, jew 2,
huwa implikat mill-pożizzjoni ta 'l-ċifra fin-numru li aħna jiktbu.
1, jekk inħarsu lejn din, dan 1 hija fil-pożizzjoni 2.
Il-3 huwa fil-pożizzjoni 1, u l-7 huwa fil-pożizzjoni 0.
Li kif aħna jiksbu l-esponenti varji hawn taħt għal bażijiet tagħna.
>> Wara dan kollu we'll-fatt, inti taf liema?
Aħna ser do-fejn ma jneħħu buttuna tiegħi tmur?
Hemm tmur.
I love dan jħoll ħaġa.
Wara din naħseb għalija l-inqas
l-eħfef mod biex tibda konverżjoni ta 'numru binarju
jew numru hexadeċimali fejn il-bażi huwa 16
u mhux 10 jew 2 huwa li jimxi 'l quddiem u jiktbu
il-bażijiet u l-esponenti għall kollha tal-numri fil numru binarju tiegħi fil-quċċata.
Jekk nibdew mix-xellug għal-lemin mill-ġdid,
li huwa tip ta counterintuitive,
I ser bidla lura għall-iswed hawn, aħna għandna l-2 għall-pożizzjoni 0,
u allura għandna 2 ¹, 2 ²,
u mbagħad 2 għall-3, 2 għall-4, 2 għall-5, 6,
7, 8, 9, u 10.
Dawn in-numri Stajt bil-miktub huma kollha l-esponenti.
I biss kiteb l-bażijiet hawn fl-ewwel 3 biss għall-ispazju.
>> Fuq dan il-punt jien ser jimxi 'l quddiem u jien fil-fatt se iħassar
l-għalf li għamilna fil deċimali, jekk dan huwa okay.
You ħadthom kollha ltqajna dak.
Dawk minnkom jaraw online Jien ċert ser ikunu jistgħu kontrina lili jekk inti tixtieq.
Qlib lura għall-pinna.
Issa, dak li nistgħu nagħmlu-jekk inti guys mhumiex totalment sa veloċità fuq poteri tiegħek ta '2,
li l-totalment jibred.
Dan jiġri. Nifhem.
I ladarba kellhom intervista tax-xogħol fejn I kien qal I għandhom ikunu jafu l-poteri kollha ta '2
up permezz 2 għall-30.
Ma kienx xogħol sibt.
Xorta waħda, inti guys tista 'tmur quddiem u jagħmlu l-matematika hawn,
iżda ma binarja ma verament jagħmel sens,
u lanqas ma jagħmlu sens bl deċimali jew hexadeċimali jew,
biex jagħmlu l-matematika taf fejn għandek żerijiet.
Tista 'tara Għandi 0 hawn, ta' 0 hawn, 0 hawn, 0 hawn, 0 hawn, 0 hawn.
Għaliex jista 'ma jagħmilx sens li jagħmlu l-matematika reali
biex tikkalkula l-qawwa xierqa ta '2 għal dik il-pożizzjoni?
Eżattament, bħal Charlotte qal, se jkun 0.
Tista 'ukoll ħlief lilek innifsek il-ħin jekk kalkolu setgħat ta' 2 mhuwiex suit qawwija tiegħek.
F'dan il-każ aħna biss bżonn biex tiġi kkalkulata għal 2 lill-0 li hija '?
[Student] 1.
[Nate H.] 1, 2 għall-3 li hu-?
[Student] 8. >> [Nate H.] 8.
2 għall-4?
[Student] 2. Jien sorry, 1.
[Nate H.] 2 għall-4 huwa 16, eżattament.
2 għall-5, Kevin? >> 32.
[Nate H.] 32, 2 għall-8?
[Student] 32 x 8, 256.
[Nate H.] Perfect.
U 2 għall-10?
[Student] 1024.
[Nate H.] Yeah, 1024.
>> Ladarba konna ltqajna dawn in-numri nistgħu qosor lilhom kollha up.
U dan huwa fejn huwa verament importanti li jagħmlu ftit affarijiet.
Wieħed huwa jmur bil-mod u jiċċekkjaw x-xogħol tiegħek.
Tista 'tgħid li hemm 1 fl-aħħar ta' dan in-numru,
so I għandhom definittivament tikseb numru fard bħala riżultat tiegħi,
minħabba l-oħrajn ser ikunu saħansitra numri
peress li huwa numru binarju.
Il-ħaġa oħra li tagħmel hija jekk ikollok biex dan il-punt fuq it-test
u inti stajt bil-miktub dan jitwettaq s'hawn
u int taħdem barra ta 'żmien
tħares lejn in-numru ta 'punti li din il-problema min.
Din il-problema, kif tista 'tara' jekk I flip lura għall-laptop tiegħi verament malajr '
din il-problema ta 'min 2 punti, għalhekk dan mhux il-tip ta' żieda
inti għandek tkun għaddejja jekk int verament ippressat għall-ħin.
Iżda aħna ser jaqilbu lura għall-iPad, u aħna ser jgħaddu minnha verament malajr.
>> I bħall tagħmel in-numri żgħar 1
minħabba I isibu li faċli.
I simili 32 u 8 għaliex dawn imorru flimkien pretty faċilment, u nikbru 50.
16 u 1 gets 17.
Hemm nikbru 57,
u allura nistgħu nagħmlu l-bqija ta 'dan, sabiex inkunu nistgħu nagħmlu 57, 156.
Come fuq.
Man, ukoll, ejja ara.
Kellna 57, 256, u 1024.
Fuq dan il-punt, I d pjuttost biss jgħaddu.
Għandi l-ebda clue. I kjarament jeħtieġu li taqra fuq dan.
7, 6, u 4, ikollok 17.
1, 5, 5, 2, 13.
Imbagħad irridu jiksbu 3, u allura aħna nikseb 1.
1337.
Għid tal-bajd, xi ħadd?
Kulmin jirrikonoxxu dan in-numru?
Chris jirrikonoxxi n-numru. Xi jfisser, Chris?
[Chris] Leet.
Leet, hekk jekk inti tħares lejn din, jidher qisu Leet.
Jittieħed Hacker. Oqgħod attent għal dak it-tip ta 'għalf fuq l-nofs it-term jew il-kwizz, pjuttost.
Jekk tara li tip ta 'għalf u int mintix "Huh,"
li jista 'effettivament tfisser xi ħaġa.
I do not know. David jħobb tqegħid pulzieri
Huwa mod tajjeb biex sanità check.
Bħal okay, I jista 'jara x'inhu għaddej.
>> Dak Ġimgħa 0/Week 1 Jittieħed.
Jekk aħna jaqilbu lura għall-laptop tagħna issa,
zoom out, u l-koppja ta 'affarijiet oħra.
Hemm ASCII, li aħna kont qed tagħmel ħafna ta 'l-settijiet problema.
Dan il-kunċett tal-kapital A. X'inhu li verament?
Jafu huwa l-eqreb numru sħiħ deċimali.
65 huwa dak li huwa fassal biex fit-tabella ASCII,
u li l għalhekk kif il-kompjuter jikteb dan,
u li l-mod kif aħna kont qed jkollna bogħod ma attwalment miktub
il-kapital karattru A u l-karattru zghar ta '
f'xi wħud minn dawn is-soluzzjonijiet u settijiet problema li inti kont qed tagħmel.
Koppja ta 'affarijiet oħra.
Imxejna ltqajna dikjarazzjonijiet, espressjonijiet Boolean, kondizzjonijiet, loops, varjabbli u ħjut.
>> Dawk kollha jidhru li jagħmlu sens għall-parti l-aktar?
Xi wħud minn dan it-terminoloġija hija funky ftit f'ħinijiet.
Inħobb naħseb ta 'dikjarazzjoni dwar l-xi ħaġa aktar parti li jispiċċa b' punto virgola.
Dikjarazzjonijiet bħal x = 7, li tistabbilixxi varjabbli,
preżumibbilment imsejħa x = 7.
Preżumibbilment x hija wkoll tip li jista 'jaħżen in-numru 7,
hekk huwa ta 'int jew possibilment float jew qasir jew char,
xi ħaġa bħal dik.
A espressjoni Boolean qed tuża dawn doppju ugwali
u l-bang huwa ugwali jew il ugwali le, inqas minn, akbar minn,
inqas minn jew ugwali għal, dak kollu li tip ta 'għalf.
Kundizzjonijiet allura huma stqarrijiet jekk ieħor.
Nixtieq ftakar li inti ma jistax ikollu ieħor mingħajr korrispondenti jekk.
Bl-istess mod, ma jistax ikollok xi ħaġa oħra jekk mingħajr korrispondenti jekk.
Loops, tfakkar it-tipi 3 ta 'loops aħna kont qed tismir fis inti
għall-aħħar ftit sezzjonijiet u settijiet problema.
Bl-użu do filwaqt li meta int jkollna input utent,
użu waqt loops sakemm kondizzjoni partikolari huwa veru,
u mbagħad tuża dawk għall-linji jekk inti għandek bżonn
jafu liema iterazzjoni tal-linja int bħalissa fuq huwa kif I taħseb dwarha.
Jew jekk int tagħmel għal kull karattru string I trid tagħmel xi ħaġa,
għal kull element fil-firxa I trid tagħmel xi ħaġa biex dan l-element.
>> Threads u avvenimenti.
Dawn aħna mhux koperti hekk espliċitament fl-C,
iżda tiftakar dan mill Scratch.
Dan huwa l-kunċett ta 'wara skripts differenti.
Dan huwa wkoll dan il-kunċett ta 'xandir ta' avveniment.
Xi nies ma użatx xandir fil-proġetti tagħhom fil-bidu,
li huwa totalment jibred,
iżda dawn huma 2 modi differenti tat-tqandil din il-kwistjoni akbar imsejħa concurrency,
li hija kif tista 'tikseb programmi li tesegwixxi
jew apparentement tesegwixxi fl-istess ħin?
Kompiti differenti running waqt ħidmiet oħra għaddejin ukoll.
Din hija kif is-sistema operattiva tiegħek jidher li qed jaħdem.
Dan huwa għaliex anke jekk, per eżempju,
Stajt ltqajna browser tiegħi running, I tista 'wkoll jdur fuq Spotify u play kanzunetta.
Li l-aktar ta 'ħaġa kunċettwali biex wieħed jifhem.
Nixtieq tagħti ħarsa lejn il-ħjut qosra
jekk inti tixtieq titgħallem aktar dwar dan.
>> Ejja ara, nemmen li hemm seta 'kien
problema fuq dan f'wieħed minn dawn.
Għal darb'oħra, I think ħjut u avvenimenti mhumiex xi ħaġa li aħna se jkopri C
sempliċiment għaliex dan huwa ferm aktar diffiċli milli fil Scratch.
Inti m'għandekx għalfejn tinkwieta dwar dan hemmhekk, iżda ċert jifhmu l-kunċetti,
jifhmu x'inhu għaddej.
Qabel nimxu fuq, xi mistoqsijiet dwar f'Ġimgħa 0 materjal?
Kulħadd tħossok pjuttost tajba?
Varjabbli Fehim u dak varjabbli hi?
>> Nimxu fuq. Ġimgħa 1.
Koppja ta 'affarijiet hawn li ma kinux partikolarment koperti
fir-reviżjoni kwizz neċessarjament u wkoll huma affarijiet aktar kunċettwali li wieħed jaħseb dwar.
L-ewwel huwa dan il-kunċett ta 'dak li source code, kompilaturi u kodiċi oġġett huma.
Kulmin? Basile.
Huwa oġġett kodiċi li jfisser I source code huwa dak li inti tpoġġi fis clang,
u l-kodiċi oġġett huwa dak li clang tpoġġi l sabiex il-kompjuter tiegħek tista 'taqra l-programm.
Eżattament.
Kodiċi tas-sors huwa l-kodiċi Ċ li inti fil-fatt tip up.
Kodiċi ta 'oġġett huwa dak li inti toħroġ clang.
Hu l-0s u 1s fil dak il-format binarju.
Imbagħad dak li jiġri huwa meta għandek mazz ta 'fajls oġġett,
jgħidu int kumpilazzjoni ta 'proġett jew ta' programm li juża fajls multipli source code,
li skond il-konvenzjoni huma mogħtija l-. estensjoni fajl c.
C'est pourquoi għandna caesar.c, vigenère.c.
Jekk int bil-miktub programmi Java inti tagħtihom l-estensjoni. Java.
Programmi Python jkollu l-estensjoni. PY spiss.
>> Ladarba inti tkun fajls multipli. C, inti jikkompilawha.
Clang spits out dan kollu junk binarja.
Imbagħad għaliex inti biss tixtieq 1 programm
inti għandek il-link linker kollha ta 'dawn oġġett fajls flimkien
fil-fajl eżekutibbli 1.
Dan huwa wkoll dak li jiġri meta inti tuża l-librerija CS50, per eżempju.
Il-librerija CS50 huwa kemm dik. Fajl tal-header h
li inti taqra, li # includecs50.h.
U allura huwa wkoll fajl speċjali librerija binarju
li kien miġbura li huwa 0s u 1s,
u li-l-bandiera, hekk jekk immorru lura għall-Ispazji tagħna u nistennew verament malajr
lejn dak li għaddej hawn meta aħna nħarsu lejn kmand clang tagħna,
dak li konna ltqajna huwa dan huwa fajl tagħna source code dritt hawn.
Dawn huma mazz ta 'bnadar kompilatur.
U mbagħad fl-aħħar nett, dawn-l-link bnadar fil
il-fajls binarji attwali għal dawn l-libreriji 2, il-librerija CS50 u allura l-librerija matematika.
>> Fehim kull tip ta 'skop fajls "
fil-proċess kumpilazzjoni hija xi ħaġa li tixtieq tkun taf biex tkun tista '
tagħti mill-inqas ħarsa ġenerali f'livell għoli ta '.
Kodiċi tas-sors taqa pulzieri kodiċi Għan toħroġ.
Fajls kodiċi Għan jgħaqqad flimkien, u ikollok sbieħ, fajl eżekutibbli.
Kessaħ.
Dan huwa wkoll fejn tista 'tikseb l-iżbalji fil-punti multipli
fil-proċess kumpilazzjoni.
Dan huwa fejn, per eżempju, jekk inti tieħu din il-bandiera li jgħaqqdu,
l-bandiera CS50, u inti tonqos fil Spazji jew meta int running kodiċi tiegħek,
dan huwa fejn inti ser tingħata żball fil-fażi li jgħaqqdu,
u l-linker se ngħid, "ħej, inti imsejħa GetString funzjoni
li fil-librerija CS50. "
"Inti told me kien fil-librerija CS50, u jien ma tistax issib l-kodiċi għal dan."
Li fejn inti għandek rabta fil, u li separati
minn żball kompilatur minħabba li l-kumpilatur qed tħares lejn sintassi u dak it-tip ta 'għalf.
Huwa tajjeb li tkun taf x'inhu għaddej meta.
>> Affarijiet oħra li jkunu jafu dwar.
Jien ngħid li inti definittivament tixtieq li tagħti ħarsa lejn l-qasir fuq typecasting magħmul mill-Ġordan
biex jifhem dak ints huma taħt il-barnuża,
liema Chars huma taħt il-barnuża.
Meta nitkellmu dwar ASCII u għandna attwalment tħares lejn il-mejda ASCII,
dak li qed jagħmel qed tagħtina taħt il-ħarsa barnuża
lejn kif il-kompjuter effettivament jirrappreżenta kapital A u is-7 ċifri
u virgola u marka kwistjoni.
Il-kompjuter għandu wkoll modi speċjali biex jirrappreżentaw
in-numru 7 bħala numru sħiħ.
Hija għandha b'mod speċjali biex jirrappreżentaw in-numru 7 bħala numru b'punt li jvarja,
u dawk li huma differenti ħafna.
Typecasting huwa kif inti tgħid il-kompjuter "ħej, nixtieq li jikkonvertu
minn rappreżentazzjoni għall-ieħor rappreżentazzjoni. "
Għaliex ma we tagħti ħarsa lejn dak.
>> Nixtieq ukoll tagħti ħarsa lejn l-qasir fuq il-libreriji u l-qasir fuq kompilaturi.
Dawk jitkellmu dwar il-proċess ta 'kumpilazzjoni,
dak librerija hi, u jmorru fuq xi wħud minn dawn il-mistoqsijiet li inti tista 'tikseb mitlub.
Mistoqsijiet dwar 1 Ġimgħa materjal?
Hemm xi suġġetti fil hawn li jidhru intimidanti tixtieq li tkopri?
Jien jippruvaw li blow permezz ta 'maġġoranza ta' dawn is-suġġetti preċedenti sabiex inkunu jistgħu jiksbu
pointers u jagħmlu xi ftit ta 'recursion.
Ħsibijiet?
Xejn biex tkopri?
Ħin għal xi ċikkulata forsi?
You guys qed jaħdmu permezz ta 'dan.
Jien ser iżommu jixorbu fuq kafè tiegħi.
Ġimgħa 2.
Sejħa tajba, sejħa tajba.
Fl Ġimgħa 2 tkellimna ftit aktar dwar il-funzjonijiet.
>> Fl-ewwel settijiet problema ftit aħna ma verament jiktbu xi funzjonijiet fil-livelli kollha
minbarra li l-funzjoni?
[Student] Main. >> Main, eżattament.
U hekk aħna stajt tidher l-kostumi differenti li jilbes prinċipali.
Hemm dak li fih hija tieħu ebda argumenti,
u aħna biss jgħidu vojt fl bejn il-parentesi,
u allura hemm l-ieħor fejn aħna ma jridux jieħdu l-argumenti kmand tal-linja,
u kif rajna, li fejn għandek argc int u spag firxa ARGV
jew issa li aħna ħadthom attwalment esposti string li jkun il-* char li huwa
aħna qed tmur biex tibda bil-miktub bħala char * ARGV u mbagħad parentesi.
Fil Set Problem 3, inti guys raw mazz ta 'funzjonijiet,
u inti implimentata mazz ta 'funzjonijiet, tfassal, tfittex up, ġirja.
Il-prototipi kienu kollha miktuba hemm għalik.
>> Dak li ridt li nitkellmu dwar hawn ma 'funzjonijiet verament malajr
hija li hemm 3 partijiet għalihom kull meta inti jiktbu funzjoni.
Int għandek tispeċifika t-tip ritorn tal-funzjoni.
Int għandek tispeċifika l-isem għall-funzjoni, u mbagħad għandek tispeċifika
il-lista argument jew il-lista parametru.
Per eżempju, jekk kienu I li jiktbu funzjoni li tagħlaq mazz ta 'numri interi
u mbagħad jirritornaw lili-somma dak li jkun tip ritorn tiegħi
jekk jien ridt li qosor interi u mbagħad jirritorna l-ammont?
Imbagħad l-isem tal-funzjoni.
Jekk I jimxi 'l quddiem u jiktbu fl-aħdar, din il-parti hija t-tip ritorn.
Din il-parti huwa l-isem.
U mbagħad fl bejn parentesi
huwa fejn I jagħtu l-argumenti,
spiss abbrevjata bħala args, xi kultant imsejħa params għall-parametri.
U jekk għandek wieħed, inti biss tispeċifika l-wieħed.
Jekk għandek multipli inti separati kull wieħed bil-virgola.
U għal kull argument inti tagħti 2 affarijiet li huma 'Kevin?
[Kevin] Int għandek tagħti t-tip u allura l-isem.
U allura l-isem, u l-isem huwa l-isem li int ser tuża
li jirreferu għal dan l-argument fil-funzjoni somma,
fi ħdan il-funzjoni li int bħalissa bil-miktub.
>> Inti ma għandekx biex per eżempju, jekk jien ser qosor,
jiġifieri, firxa ta 'numri interi-we'll do firxa int,
u jien ser jagħtu myself xi ċineg kaboċċi hemm '
allura meta I jgħaddu l-firxa għall-funzjoni somma
I tgħaddiha fl-ewwel pożizzjoni tal-lista argument.
Iżda l-firxa li I jgħaddu ma għandhomx għalfejn ikollhom il-arr isem.
Arr se tkun kif Nirreferi għall dan l-argument fil-korp tal-funzjoni.
Il-ħaġa oħra li għandna bżonn li jittieħed kont,
u dan huwa kemmxejn differenti minn funzjonijiet, imma naħseb li huwa punt importanti,
hija li fil Ċ meta jien bil-miktub funzjoni bħal din
kif inkun naf kemm elementi huma f'dan il-firxa?
Din hija kemmxejn ta 'mistoqsija trick.
Aħna tkellimna dwar dan ftit fit-taqsima ġimgħa li għaddiet.
Kif inkun naf l-għadd ta 'elementi ġewwa l-firxa fis-C?
Hemm xi mod?
>> Jirriżulta li hemm ebda mod li tkun taf.
Inti għandek li jgħaddi bi separatament.
Hemm trick li inti tista 'tagħmel
jekk int fil-istess funzjoni li fih il-firxa tkun ġiet iddikjarata,
u int taħdem ma 'firxa munzell.
Iżda dan jaħdem biss jekk int fil-istess funzjoni.
Ladarba inti tgħaddi l-firxa għall-ieħor il-funzjoni jew jekk tkun ħadthom ddikjarat firxa
u inti tpoġġi li firxa fuq il-munzell, inti stajt użati malloc
u dak it-tip ta 'għalf, allura l-imħatri huma off.
Imbagħad inti attwalment ikollhom jgħaddu madwar
argument speċjali jew parametru ieħor
tghidlek kemm hu kbir il-firxa hija.
F'dan il-każ, I d tixtieq li tuża comma-I'm sorry, li għaddej off l-iskrin hawn '
u I d jgħaddu argument ieħor
u sejħa hija len int għat-tul.
>> Ħaġa waħda li tista 'toħroġ fuq l-kwizz
huwa inti titlob li tikteb jew jimplimentaw funzjoni partikolari msejħa xi ħaġa.
Jekk aħna ma jagħtuk l-prototip, sabiex dan ħaġa sħiħa hawn,
dan mess sħiħ huwa msejjaħ id-dikjarazzjoni funzjoni jew il-prototip funzjoni,
dan huwa wieħed mill-ewwel affarijiet li tixtieq tkun taf biex dwiefer fl jekk ma jkunx mogħti
lilek dritt bogħod fuq il-kwizz.
Il-trick oħra stajt tgħallmu hija li
ngħidu nagħmlu jagħtuk prototip għal funzjoni, u nistgħu ngħidu, "ħej, inti stajt ltqajna biex tiktibha."
Ġewwa l-braces kaboċċi li għandek fuq il-kwizz
jekk tinnota li hemm tip ta 'ritorn u tinnota li t-tip ritorn
hija xi ħaġa oħra għajr null, li jfisser li l-funzjoni ma ritorn xejn,
allura wieħed ħaġa inti definittivament trid tagħmel hu li tikteb
xi tip ta 'stqarrija ritorn fl-aħħar nett tal-funzjoni.
Ritorn, u f'dan il-każ, aħna ser ipoġġi vojt għaliex irridu li timla l-vojt.
Iżda dan gets inti taħseb bl-aħjar mod dwar kif am I se approċċ din il-problema?
U jfakkar inti int ser jkollhom jirritornaw valur
għall-sejjieħ tal-funzjoni.
>> Yeah. >> [Student] Does stil japplikaw meta aħna qed tikteb kodiċi fuq il-kwizz?
Bħal indentazzjoni u dak it-tip ta 'għalf? >> [Student] Yeah.
Le, mhux daqstant.
Naħseb ħafna ta '' din hija xi ħaġa aħna ser tiċċara fuq il-kwizz fil-jum tal-
imma tipikament jinkwetaw dwar # jinkludi u dak it-tip ta 'għalf, huwa tip ta' barra.
[Student] Għandek bżonn biex jikkummentaw kodiċi miktuba bl-idejn tiegħek?
Għandek bżonn biex jikkummentaw kodiċi miktuba bl-idejn tiegħek?
F'kumment huwa dejjem tajjeb jekk int inkwetat dwar kreditu parzjali
jew tixtieq li jikkomunikaw l-intenzjoni tiegħek għall-grader.
Imma I, għal darb'oħra, se tiċċara fuq il-kwizz stess u fil-jum kwizz,
imma jien ma nemminx li inti ser tkun meħtieġa li jiktbu l-kummenti, l-ebda.
Tipikament le, imma hija definittivament l-tip ta 'ħaġa fejn
inti tista 'tikkomunika l-intenzjoni tiegħek, bħal "ħej, dan huwa fejn jien jmorru ma' dan."
U xi kultant li jistgħu jgħinu bil-kreditu parzjali.
Kessaħ.
>> Basile.
[Basile] X'hemm differenza bejn tiddikjara, ngħidu aħna, int lang
fl-argumenti jew il-parametri versus tiddikjara varjabbli fi ħdan il-funzjoni?
Ara naqra, kafè niżlet il-windpipe.
[Basile] Bħall fejn l-affarijiet li rridu li jitqiegħdu fl-argumenti.
Yeah, li hija mistoqsija kbira.
Kif taħseb li jagħżlu liema affarijiet inti tixtieq li jitqiegħdu fl-argumenti
versus dak affarijiet li għandek tagħmel ġewwa tal-funzjoni?
F'dan il-każ aħna inklużi dawn iż-żewġ argumenti kif
għaliex qed xi ħaġa li kull min se tuża l-funzjoni somma
jeħtieġ li jiġu speċifikati dawk l-affarijiet.
>> Il-funzjoni somma, bħal tkellimna dwar, m'għandha l-ebda mod sabiex tkun taf
kemm hu kbir il-firxa hija jiġrilha minn sejjieħ tagħha jew min ikun qiegħed juża l-funzjoni somma.
Hija għandha l-ebda mod sabiex tkun taf kemm hu kbir dan array huwa.
Ir-raġuni aħna jgħaddu f'dan it-tul dritt hawn bħala argument
huwa minħabba li xi ħaġa li aħna qed bażikament javżak l-sejjieħ tal-funzjoni,
min se tuża l-funzjoni somma, "ħej, mhux biss do ikollok tagħtina firxa
ta 'ints, inti ukoll għandek biex tgħidilna kemm hu kbir il-firxa li inti stajt tatna huwa. "
[Basile] Dawk kemm se jkun hemm argumenti kmand tal-linja?
Le, dawn huma argumenti attwali li inti tgħaddi għall-funzjoni.
>> Let me do paġna ġdida hawn.
[Basile] Bħall-isem se jgħaddi '
[Nate H.] Jekk ikolli int prinċipali (vojt),
u jien ser tpoġġi fil-0-ritorn tiegħi stabbiliti hawn fil-qiegħ,
u jgħidu Irrid li jsejħu l-funzjoni somma.
Irrid ngħid int x = somma ();
Biex tuża l-funzjoni somma I għandhom jgħaddu kemm fil-firxa li nixtieq li qosor
u t-tul ta 'l-array, għalhekk dan huwa fejn
jekk wieħed jassumi I kellha firxa ta 'ints,
say I kellha int numbaz [] = 1, 2, 3,
tip ta 'użu li Hacked up sintassi hemm dritt,
allura dak li nixtieq nagħmel hija somma nixtieq jgħaddu fil
kemm numbaz u n-numru 3
li tgħid il-funzjoni somma "Okay, hawnhekk l-firxa Nixtieq li somma."
"Hawn daqs tagħha."
Does li jagħmel sens? Does li iwieġeb il-mistoqsija tiegħek?
>> F'ħafna modi li ma parallel dak li aħna qed tagħmel ma prinċipali
meta jkollna l-argumenti linja tal-kmand.
A program bħal Caesar cipher, per eżempju, li hemm bżonn
argumenti kmand tal-linja ma tkunx tista 'tagħmel xejn.
Ma jkunux jafu kif jagħmlu encryption jekk inti ma għid liema ċavetta għall-użu
jew jekk inti ma għid liema string int riedu kriptaġġ.
Wassal għall-input, dan huwa fejn konna ltqajna 2 mekkaniżmi differenti
għat-teħid input mix-utent, għat-teħid informazzjoni mill-utent.
Għal Problema Set 1 rajna dan GetInt, GetString, b'mod GetFloat
li tinkoraġġixxi għall-input, u li sejjaħ tuża l-fluss ta 'input standard.
Huwa kemmxejn differenti.
Hija xi ħaġa li inti tista 'tagħmel fi żmien wieħed għall-kuntrarju
meta inti jinvokaw il-programm, meta tibda l-programm korrenti.
L-argumenti kmand tal-linja kollha huma speċifikati meta tibda t-tmexxija tal-programm.
Imxejna ġiet taħlit it-tnejn minn dawn.
Meta nużaw argumenti li funzjoni, huwa ferm simili argumenti kmand tal-linja għall-prinċipali.
Huwa meta inti jinvoka l-funzjoni li għandek bżonn li tgħid dan
eżattament dak li jeħtieġ sabiex iwettaq dmirijietu.
Ħaġa oħra tajba li tħares lejn 'u jien ser tavżak tħares lejn din fil-ħin liberu tiegħek,
u kien kopert fil-kwizz-kien dan il-kunċett ta 'ambitu
u varjabbli lokali versus varjabbli globali.
Do jagħtu attenzjoni għal dan.
>> Issa li aħna jkollna fuq dan il-għalf ieħor,
fil-Ġimgħa 3 bdejna nitkellmu dwar it-tiftix u l-għażla.
Tiftix u issortjar, għall-inqas fil CS50,
huwa ferm introduzzjoni għal xi wħud mill-partijiet aktar teoretiċi ta 'xjenza tal-kompjuter.
Il-problema ta 'tiftix, il-problema ta' l-għażla
huma kbar, problemi canonical.
Kif issib numru partikolari fil-firxa ta 'biljuni ta' numri interi?
Kif issib isem partikolari ġewwa ktieb tat-telefon
li l-maħżuna fuq laptop tiegħek?
U hekk aħna jintroduċu dan il-kunċett ta 'drabi run asintotika
li verament tikkwantifika kemm żmien, kif iebes dawn problema huma,
kemm dawn jieħdu biex isolvu.
Fil, nemmen, kwizz 2011 tal hemm problema li naħseb merti
li jkopru malajr ħafna, li huwa dan wieħed, il-problema 12.
O ebda, huwa Omega.
>> Hawnhekk aħna qed jitkellem dwar il-ħin run aktar mgħaġġla possibbli
għal algoritmu partikolari u allura l-ħin ta 'tħaddim iżgħar rata possibbli.
Dan Omega u O huma verament ftit shortcuts.
Huma qed shortcuts notazzjoni biex tgħid
kif fast fil-każ aħjar possibbli se run algoritmu tagħna,
u kif bil-mod fl-agħar każ possibbli se algoritmu tagħna jimxu?
Ejja nagħmlu koppja ta 'dawn, u dawn kienu wkoll koperti
fil-qasir fuq notazzjoni asintotiku, li I jirrakkomanda ħafna.
Jackson ma biċċa xogħol tassew tajba.
Bil tfittxija binarja, nitkellmu dwar tfittxija binarja bħala algoritmu,
u aħna normalment jitkellmu dwar dan f'termini ta 'O. big tagħha
X'inhu l-big O?
X'inhu l-ħin ta 'tħaddim iżgħar rata possibbli ta' tfittxija binarja?
[Student] N ²?
Agħlaq, I raden simili għal dak.
Huwa ħafna aktar mgħaġġla minn dik.
[Student] Binarju? >> Yeah, tfittxija binarja.
[Istudenti] Huwa log n.
Log n, sabiex dak ma log n jfisser?
Hija nofsijiet dan kull iterazzjoni.
Eżattament, hekk fil-każ iżgħar rata possibbli,
jgħidu jekk għandek firxa magħżula
ta 'xi interi miljun u n-numru li qed tfittex
huwa jew l-element ewwel fil-firxa jew l-element ħafna aħħar fil-firxa.
Ftakar, l-algoritmu tfittxija binarja jaħdem billi tħares lejn l-element tan-nofs,
jaraw jekk dan huwa l-logħba li inti qed tfittex.
Jekk huwa, allura kbira, inti sabuha.
>> Fil-każ aħjar possibbli, kif fast ma run tfittxija binarja?
[Studenti] 1.
1, wasal iż-żmien kostanti, big O ta '1. Yeah.
[Student] ikolli mistoqsija. Meta inti tgħidli log ta 'n, inti tfisser rigward bażi 2, id-dritt?
Iva, b'tali mod li l-ħaġa oħra.
Aħna ngħidu n log, u I raden I meta kien fl-iskola għolja
Jien dejjem jassumi li log kien bażi 10.
Yeah, hekk iva, log 2-bażi tipikament huwa dak li nużaw.
Għal darb'oħra, li tmur lura għall-tiftix binarju, jekk int tiftix għal jew
l-element fit-tmiem ħafna jew l-element fil-bidu nett,
għaliex tibda fin-nofs u mbagħad inti jarmi
liema minnhom 1/2 ma jissodisfax il-kriterji li inti qed tfittex,
u inti tmur għall-nofs li jmiss u nofs li jmiss u nofs li jmiss.
Jekk jien tiftix għal l-ikbar element fil-firxa numru sħiħ miljun
Jien ser tnaqqas bin-nofs dan fil log-aktar ta '1 miljun darba
qabel I finalment test u ara li l-element jien infittxu
huwa fl-akbar jew fl-indiċi ogħla tal-firxa,
u li se tieħu log ta 'ln, log ta '1 miljun darba.
>> Sort Bubble.
Do you guys jiftakru l-algoritmu tip bużżieqa?
Kevin, inti tista 'tagħti me terġa' malajr ta 'dak li ġara fil-algoritmu tip bużżieqa?
[Kevin] Bażikament din tmur permezz kollox fil-lista.
Hija tħares lejn l-ewwel tnejn.
Jekk l-ewwel waħda hija akbar mill-tieni waħda hija tpartit minnhom.
Imbagħad jikkompara 2 u 3, l-istess ħaġa, swaps,
3 u 4, it-triq kollha.
Numri Akbar se jsegwi sa l-aħħar.
U wara loops madankollu ħafna inti qed isir.
Eżattament, iva, liema Kevin qal hu li aħna ser tara numri akbar
bużżieqa sa l-aħħar tal-firxa.
Per eżempju, inti mind mixi magħna permezz ta dan l-eżempju jekk dan huwa firxa tagħna?
[Kevin] Int ser ikollok tieħu 2 u 3.
3 hija akbar minn 2, u allura inti tpartit lilhom.
[Nate H.] Dritt, hekk aħna tpartit dawn, u għalhekk irridu jiksbu 2, 3, 6, 4, u 9.
[Kevin] Imbagħad inti tqabbel il-3 u 6.
3 huwa iżgħar minn 6, sabiex inti jħallu lilhom,
u 6 u 4, youd tpartit minnhom minħabba 4 huwa iżgħar minn 6.
[Nate H.] Dritt, so I nikseb 2, 3, 4, 6, 9.
[Kevin] U 9 huwa akbar minn 6, sabiex inti jitilqu minnu.
U youd tmur lura permezz ta 'dan mill-ġdid.
>> [Nate H.] Am I għamlu f'dan il-punt? >> [Kevin] No
U għaliex jien ma jsir f'dan il-punt?
Minħabba li jidher qisu firxa tiegħi huwa magħżul. Jien tħares lejn dan.
[Kevin] Jgħaddu mill-ġdid u kun żgur li hemm tpartit mhux aktar
qabel ma inti tista 'kollox tieqaf.
Eżattament, sabiex inti bżonn li jżommu għaddejjin u kun żgur li ma jkunx hemm tpartit
inti tista 'tagħmel f'dan il-punt.
Kien verament ftit xxurtjati, bħalek qal, li aħna spiċċajna
biss ma jkollhom jagħmlu 1 jgħaddu u aħna qed magħżula.
Iżda biex tagħmel dan fil-każ ġenerali aħna ser fil-fatt ikollhom jagħmlu dan aktar u aktar mill-ġdid.
U fil-fatt, dan kien eżempju ta 'l-aħjar każ possibbli,
bħal rajna fil-problema.
Rajna li l-każ aħjar possibbli ġiet n.
Aħna marru permezz tal-firxa 1 ħin.
X'inhu l-agħar każ possibbli għal dan algoritmu?
[Kevin] N ².
U dak li ma tfittex simili? X'għandu ħarsa firxa bħal dik se jieħu żmien ² n?
[Kevin] [inaudible] magħżula.
Eżattament, hekk jekk kelli l-firxa 9, 7, 6, 5, 2,
1-9 kieku bużżieqa it-triq kollha up.
Wara l-1 iterazzjoni għandna d jkollhom 7, 6, 5, 2, 9.
Imbagħad il-7 kieku bużżieqa up, 6, 5, 2, 7, 9, u hekk u ibqa 'sejjer hekk.
>> Għandna d jkollhom jgħaddu mill-firxa sħiħa n darbiet,
u inti tista 'attwalment tikseb xi ftit aktar preċiża minn din
minħabba li ladarba konna mċaqalqa l-9-triq kollha sa fil-pożizzjoni possibbli tagħha aħħar
nafu li aħna qatt ma jkollhom biex iqabblu kontra dan l-element ġdid.
Ladarba nibdew tbaqbieq-7 sa
nafu li nistgħu tieqaf ladarba l-7 hija dritt qabel l-9
peress li aħna stajt diġà qabblet l-9 lilha.
Jekk inti tagħmel dan b'mod intelliġenti mhuwiex verament, I raden, li ħafna ħin.
Int mhux ser tqabbel l-possibbiltà [inaudible] kombinazzjonijiet
kull wieħed ħin li inti tmur permezz ta 'kull iterazzjoni.
Iżda xorta, meta nitkellmu dwar dan bound ta 'fuq nistgħu ngħidu li
inti tħares lejn n ² paraguni it-triq kollha permezz.
>> Ejja ħa mmorru lura, u peress li aħna qed jibdew jiksbu ftit qasir fil-ħin
Jien ngħid li inti għandek definittivament tmur permezz tal-bqija ta 'din it-tabella,
imla dan kollu.
Think ta 'eżempji. Think ta 'eżempji konkreti.
Li verament handy u utli li jagħmlu.
Iġbed it out.
Dan huwa t-tip ta 'tabella li kif tmur permezz fix-xjenza tal-kompjuter
inti għandek verament tibda tkun taf dawn tal-qalb minn.
Dawn huma t-tipi ta 'mistoqsijiet li inti tikseb fil-intervisti.
Dawn huma tipi ta 'affarijiet li huma tajba li tkun taf,
u jaħsbu dwar dawk il-każijiet tarf, verament jidhru kif jaħsbu dwar
jafu li għal bużżieqa issolvi l-array agħar possibbli
sort ma 'dan huwa wieħed li fl-ordni invers.
>> Pointers. Ejja nitkellmu ftit dwar pointers.
Fil-minuti aħħar ftit li għandna hawnhekk
Naf li dan huwa xi ħaġa flimkien mal-fajl I / O li hija pjuttost ġdida.
Meta nitkellmu dwar indikaturi ir-raġuni li rridu nitkellmu dwar pointers
għaliex, wieħed, meta aħna qed jaħdmu fis-C
aħna verament f'livell pjuttost baxx meta mqabbel ma lingwi ta 'programmar aktar moderni.
Aħna qed attwalment kapaċi li jimmanipulaw l-varjabbli fil-memorja,
figura fejn dawn qed attwalment jinsabu fi ħdan RAM tagħna.
Ladarba inti ħadthom marret fuq biex jieħdu sistema klassijiet operattivi tkun taf tara
li dan huwa, għal darb'oħra, it-tip ta 'estrazzjoni.
Li mhux verament il-każ.
Imxejna ltqajna memorja virtwali li l-ħabi dawk id-dettalji minna.
>> Iżda għal issa inti tista 'tassumi li meta inti jkollhom programm,
per eżempju, meta tibda taħdem program-tiegħek cipher Caesar
I ser jaqilbu lura għall iPad tiegħi verament malajr '
li fil-programm tiegħek bidu nett, jekk għandek, jiġifieri,
4 gigabytes ta 'RAM fuq laptop tiegħek,
ikollok imwarrba din blokki, u aħna ser sejħa dan RAM.
U tibda fil-post aħna qed tmur biex sejħa 0,
u dan jintemm f'post li aħna ser sejħa 4 gigabytes.
I really ma tistax tikteb. Man, li huwa Hacked.
Meta program tiegħek tesegwixxi
is-sistema operattiva carves up RAM,
u tispeċifika segmenti differenti għal partijiet differenti tal-programm tiegħek biex wieħed jgħix fih
Down hawnhekk il-qasam huwa tip ta 'art ebda raġel.
Meta tmur sa ftit farther hawn
inti stajt ltqajna fil-fatt il-post fejn
il-kodiċi għall-ħajja tal-programm tiegħek.
Dik il-kodiċi binarju attwali, dan il-fajl eżekutibbli attwalment gets mgħobbija fil-memorja
meta inti tmexxi programm, u li jgħix fis-segment kodiċi.
U kif program tiegħek tesegwixxi l-proċessur tħares lejn dan is-segment kodiċi
ċifra barra dak li huwa l-istruzzjoni li jmiss?
X'inhu l-linja li jmiss tal-kodiċi għandi bżonn biex tesegwixxi?
>> Hemm ukoll segment tad-data, u dan huwa fejn dawk kostanti string
nikseb maħżuna li inti kont qed tuża.
U mbagħad farther up hemm dan il-post imsejjaħ il-borġ.
Aħna jkollhom aċċess memorja fil hemm bl-użu malloc,
u mbagħad lejn il-quċċata tal-programm tiegħek
hemm il-munzell,
u li fejn aħna ħadthom ġiet playing għal ħafna mill-bidu.
Dan ma iskala jew xejn.
A lott ta 'dan huwa dipendenti magna ħafna,
sistema operattiva dipendenti, iżda dan huwa relattivament kif l-affarijiet nikseb chunked up.
Meta inti tmexxi programm u inti tiddikjara varjabbli msejħa x-
Jien ser tiġbed ieħor kaxxa stabbiliti hawn taħt, u dan se jkun RAM ukoll.
U jien ser tħares.
Aħna ser tfassal linji jagged li jindika li din hija biss sezzjoni żgħira ta 'RAM
u mhux kollha ta 'dan kif aħna tiġbed fil-quċċata.
>> Jekk Niddikjara varjabbli integer imsejħa x,
allura dak I attwalment nikseb huwa mapping
li hija maħżuna fit-tabella simbolu tal-programm tiegħi
li jgħaqqad l-x-isem għal dan ir-reġjun ta 'memorja li stajt mfassla
dritt hawn bejn il-vireg vertikali.
Jekk ikolli linja tal-kodiċi fil-programm tiegħi li tgħid x = 7
il-proċessur ikun jaf "Oh, okay, naf li x ħajjiet fuq dan il-post fil-memorja."
"Jien ser jimxi 'l quddiem u jiktbu 7 hemmhekk."
Kif ma jafu liema post dan huwa fil-memorja?
Ukoll, li kollu jsir fil-ħin jikkompilaw.
Il-kompilatur jieħu ħsieb ta 'allokazzjoni fejn kull wieħed mill-varjabbli huma se jmorru
u l-ħolqien ta 'mapping speċjali jew pjuttost jgħaqqdu l-tikek
bejn simbolu u fejn huwa għaddej, l-isem varjabbli tal-
u fejn huwa għaddej biex jgħixu fil-memorja.
Iżda jirriżulta li nistgħu ngħidu aċċess għaliha fil-programmi kif ukoll tagħna.
Dan gets importanti meta nibdew nitkellmu dwar xi wħud mill-istrutturi tad-data,
li huwa kunċett li aħna qed tmur biex jintroduċu aktar tard.
>> Iżda għal issa, dak li inti tista 'taf hija li I tista' toħloq pointer għal dan il-post, x.
Per eżempju, I tista 'toħloq varjabbli pointer.
Meta aħna joħolqu varjabbli pointer aħna nużaw l-notazzjoni istilla.
F'dan il-każ, dan jgħid jien ser toħloq pointer għal int.
Huwa tip eżatt bħal kull prodott ieħor.
Aħna tagħtiha varjabbli bħal y,
u allura aħna waqqafna din ugwali għall-indirizz, l-indirizz.
F'dan il-każ, nistgħu stabbilit y għall-punt li x
billi l-indirizz ta 'x, li nagħmlu ma' dan ampersand,
u allura aħna waqqafna y għall-punt lilha.
X'inhu dan essenzjalment ma huwa jekk inħarsu lejn RAM tagħna
dan joħloq varjabbli separat.
Huwa ser sejħa hija y,
u meta din il-linja tal-kodiċi tesegwixxi
huwa fil-fatt se toħloq werrej ftit li aħna tipikament jiġbed bħala vleġġa,
u jiffissa y għall-punt li x.
Iva.
[Student] Jekk x diġà huwa pointer, kieku inti biss tagħmel
int * y = x minflok li l-ampersand?
Iva.
Jekk x diġà huwa pointer, allura inti tista 'tissettja 2 pointers ugwali għal xulxin,
f'liema każ y ma punt għal x,
iżda jiġbed għal dak kollu li x hija li tipponta lejn.
Sfortunatament, aħna qed out ta 'żmien.
>> What I ngħid f'dan il-punt, nistgħu nitkellmu dwar dan offline,
imma jien ngħid tibda taħdem permezz din il-problema, # 14.
Tista 'tara hemm diġà xi ftit mimlija għalik hawn.
Tista 'tara li meta aħna jiddikjaraw 2 pointers, int * x * u y,
u jinnota li tipponta-* jmiss għall-varjabbli kienet xi ħaġa li kien sar is-sena li għaddiet.
Jirriżulta li dan huwa simili għal dak li aħna qed tagħmel din is-sena.
Ma jimpurtax fejn inti tikteb l-* meta int tiddikjara l-pointer.
Imma għandna bil-miktub l-li jmiss * għat-tip
minħabba li jagħmilha ċara ħafna li int tiddikjara varjabbli pointer.
Tista 'tara li tiddikjara l-pointers 2 tagħtina 2 kaxxi.
Hawnhekk meta aħna waqqafna x ugwali għal malloc
dak li dan huwa qal hu twarrib memorja fil-borġ.
Din il-kaxxa ftit dritt hawn, dan iċ-ċirku, tinsab fuq il-borġ.
X hija li tipponta lejn dan.
Innota li y għadu mhux tipponta lejn xejn.
Biex tikseb memorja biex taħżen il-numru 42 fi x
aħna se jużaw dak notazzjoni?
[Student] * x = 42.
Eżattament, * x = 42.
Dan ifisser isegwu l-vleġġa u tarmi 42 fil hemmhekk.
Hawnhekk fejn aħna waqqafna yu x għandna y tipponta lejn x.
Għal darb'oħra, dan huwa biss bħal dak Kevin qal fejn aħna waqqafna y ugwali għal x.
Y mhux tipponta lejn x.
Pjuttost, huwa tipponta lejn dak li x hija li tipponta lejn kif ukoll.
>> U mbagħad finalment f'din il-kaxxa l-aħħar hemm 2 affarijiet possibbli li nistgħu nagħmlu.
Wieħed huwa nistgħu ngħidu * x = 13.
Il-ħaġa oħra hija nistgħu ngħidu 'Alex, inti taf dak li stajna nagħmlu hawnhekk?
Tista 'tgħid * x = 13 jew'
[Student] Tista 'tgħid xi int.
[Nate H.] Jekk din kienu msemmija bħala varjabbli int stajna nagħmlu dan.
Nistgħu wkoll ngħidu * y = 13 għaliex qed tnejn li tipponta lejn l-istess post,
hekk aħna jistgħu jużaw jew varjabbli biex naslu s'hemm.
Yeah. >> [Student] What would look like jekk aħna biss jgħidu x int huwa 13?
Dan ikun tiddikjara varjabbli ġdid imsejjaħ x, li ma tkunx taħdem.
Għandna d jkollhom xi ħabta għaliex aħna iddikjarata x tkun pointer up here.
[Student] Jekk aħna biss kellhom tali dikjarazzjoni minnu stess dak li look like f'termini tal-ċirku?
Jekk kellna x = 13 imbagħad aħna'd jkollhom kaxxa, u aktar milli jkollhom vleġġa
ġejjin mill-kaxxa aħna'd tiġbed biss bħala 13.
[Student] Fil-kaxxa. Okay.
>> Grazzi għall-ħars, u Xorti tajba fuq Quiz 0.
[CS50.TV]