[Powered by Google Translate] [It-Taqsima 3] [Inqas Komdu]
>> [Nate Hardison] [Università ta 'Harvard]
>> [Dan huwa CS50.] [CS50.TV]
>> Kull dritt, ejja tibda.
Merħba għall-Ġimgħa 4 ta 'CS50.
Jekk inti guys tiftaħ web browser u tiftaħ pset 3,
Ġirja bl CS50, aħna qed tmur biex tibda tmur
permezz tas-sezzjoni ta 'mistoqsijiet hemmhekk.
Eżatt bħal-ġimgħa li għaddiet, aħna ser tkun qed taħdem fil-CS50 Spazji,
jekk inti taf ukoll pull up li kif ukoll,
u jekk inti tmur quddiem u żur din ir-rabta li stajt ltqajna hawn fil-quċċata.
Wasal iż-żmien biex tibda.
Imxejna ltqajna ftit hi tagħna program hawn. Crazy Xejn.
Waħda mill-ewwel affarijiet I trid tagħmel miegħek guys illum huwa jmorru fuq ftit soluzzjonijiet
biex Set Problem 1, it-tip ta 'soluzzjonijiet eżempju,
biss sabiex inti tista 'tikseb jħossu għal liema tipi ta' persunal kodiċi hija l-kitba,
liema tipi ta 'studenti kodiċi oħra qed tikteb,
u jkollhom inti tagħti ħarsa lejn għaliex naf huwa stramb
meta inti tissottometti soluzzjoni għal sett problema u jiksbu kummenti
fuq verżjoni tiegħek, imma xi kultant huwa utli li wieħed jara kif in-nies oħra għamlu dan,
speċjalment dawk li huma sbieħ tfittex.
Għall-parti l-kbira, I kien verament impressjonat bil-soluzzjonijiet li inti guys prodotti.
I għadhom ma bdewx tħares lejn 2s tiegħek Set Problema, imma jekk dawn qed xejn bħall-ewwel,
dan ifisser xejn imma affarijiet tajbin.
>> Jekk inti tħares lejn reviżjonijiet tiegħi, ejja nibdew it-triq kollha stabbiliti fuq Reviżjoni 1,
u aħna qed tmur biex tagħti ħarsa lejn soluzzjoni Mario.
Jekk inti pull dan up, dawn il-programmi li aħna qed tmur biex tippreżenta huma korretti.
Ma kienx hemm kwistjonijiet korrettezza ma 'dawn il-problemi, iżda,
rridu nitkellmu ftit dwar il-kwistjonijiet tad-disinn differenti
li kienu qed jintużaw hawnhekk.
Waħda mill-affarijiet li kien interessanti dwar is-soluzzjoni
hija li hija użat din tibni ġdida msejħa lira jiddefinixxu,
xi kultant imsejħa wkoll bħala hash jiddefinixxu.
Let me zoom fl fuq it here.
A # jiddefinixxu jippermettilek li tagħti l-ismijiet ta 'dawn in-numri fil-programm tiegħek.
F'dan il-każ, l-għoli massimu ta 'piramida fil Mario
kien 23 u minflok ipoġġuh 23 fil tiegħi code-
aħna se jirreferu għal li bħala kodifikazzjoni hard 23 -
minflok dan jagħti l MAX_HEIGHT isem li dak in-numru,
sabiex stabbiliti hawn fil do-waqt loop tiegħi
inti tista 'attwalment tirreferi għall MAX_HEIGHT
minflok ta 'tqegħid-numru 23 pulzieri
[Student] X'inhu l-vantaġġ ta 'kif isir dan?
Li hija mistoqsija kbira.
Wieħed huwa leġibbiltà.
Vantaġġ ta 'użu ta' dan # tiddefinixxi huwa leġibbiltà.
Meta jien taqra dan il-kodiċi, I jista 'jara x'inhu għaddej.
>> I jista 'jara f'din il-kundizzjoni hawn li aħna qed ittestjar
għall-għoli tkun <0, li jista 'jkollna wkoll definiti
li jkun għoli minimu jew għoli min.
Il-vantaġġ ieħor huwa li nista 'mbagħad taqra l-bqija tal-linja biex tara
li aħna wkoll qed verifika biex jiġi żgurat li l-għoli mhuwiex akbar mill-għoli mass,
għaliex aħna qed tmur biex ikomplu filwaqt li l-għoli huwa akbar mill-għoli max.
Il-vantaġġ ieħor huwa ta 'jekk I zoom out ftit hawn' il
jekk I run dan il-programm u I run, ngħidu aħna, ma '23 dritt issa,
se jistampa kollha ringieli 23 biss bħal dik.
Imma ngħid jien ridt li jibdlu l-għoli mass,
u issa nixtieq li jillimita l-għoli massimu ta 'piramidi
li jkun biss jgħidu bniedem, li kien funky.
# Jinkludu , # jiddefinixxi MAX_HEIGHT,
u ejja ngħidu ridna li jiġu stabbiliti ugwali għal 10.
Issa f'dan il-punt, kollha I kellha tagħmel kien jibdlu f'dan il-post wieħed.
I jistgħu recompile l-kodiċi, u issa jekk nipprova u tip 12,
se pront me darb'oħra.
F'dan il-każ, aħna qed biss bl-użu MAX_HEIGHT darba.
Mhuwiex li kbar ta 'battikata li jmorru fl
u l-bidla fil-linja waqt li jekk inti għandek bżonn.
Iżda fil-programmi fejn int referenzar in-numru magic istess
aktar u aktar mill-ġdid, dan il-mekkaniżmu huwa jiddefinixxi # verament handy
għaliex inti biss bidla waħda darba fil-quċċata tal-fajl 'huwa tipikament fejn inti tpoġġi lilhom-
u l-bidla percolates permezz tal-bqija tal-fajl.
>> Affarijiet oħra jien ridt li wieħed jinnota f'dan assenjazzjoni li ħsibt ħares tassew sbieħ,
wieħed kien l-ismijiet tal-varjabbli.
You see hawnhekk li konna ltqajna varjabbli integer imsejħa ringiela u imsejħa għoli.
Spazji, hashes, dan jgħin jagħmlu l-kodiċi ftit aktar tinqara,
jagħmilha ftit aktar jinftiehem dak li attwalment għaddejjin.
Dan huwa b'kuntrast għall-użu, jiġifieri, l-ittri bl-addoċċ
jew biss gobbledygook għal kollox.
A ħaġa finali I ser jiġi rrilevat hija li fl għal linji,
spiss dawn il-varjabbli iterator, dawn counters li tuża fit tiegħek għall-linji,
huwa standard u konvenzjonali biex tibda minnhom ma 'jew i u mbagħad j u mbagħad k
u għaddej minn hemm jekk għandek bżonn varjabbli aktar,
u dan huwa biss konvenzjoni.
Hemm ħafna konvenzjonijiet.
Hija tiddependi fuq il-lingwa ta 'programmar inti qed tuża.
Iżda fis-C, aħna tipikament tibda bil i.
Ma jagħmilx sens li jużaw, ngħidu aħna, jew b
skond is-sitwazzjoni.
Li minnha għal dan wieħed.
Jekk inti issa pull up Reviżjoni 2, tkun taf tara ieħor Mario,
u dan huwa wieħed simili għal dik oħra li aħna biss raw,
iżda ma tip xi ħaġa ta 'kessaħ.
Jekk inħarsu lejn din it-taqsima dritt hawn ġewwa l-ġewwa għall loop,
dawn qed jużaw xi sintassi crazy tfittex hawn dritt f'dan il-linja.
Dan jissejjaħ operatur tenarji.
Huwa dikjarazzjoni jekk inkella kondensat f'waħda linja.
Il-kondizzjoni hija din il-parti fil-parenteżi.
Huwa qisna qed ngħidu jekk j <għoli - i - 1.
U allura dak l-kontenut ta 'dik jekk blokka tkun l-ispazju
u allura l-kontenut ta 'dak l-ieħor ikun huma dan #.
Huwa essenzjalment tassenja spazju għal dan il-varjabbli.
Huwa tqegħid spazju fil-kontenut tal-varjabbli blokk,
jekk din il-kundizzjoni hija sodisfatta, u jekk il-kundizzjoni ma tiġix sodisfatta,
allura l-varjabbli blokk gets dan #.
U allura, ovvjament, minflok bini ta 'sekwenza sħiħa
u l-istampar kollox fl-aħħar din is-soluzzjoni prints out karattru wieħed fi żmien.
Pretty jibred.
>> Ieħor koppja ta 'affarijiet li tħares lejn. Aħna ser ngħaddi biex greedy.
Issa jekk inħarsu lejn greedy, din l-ewwel is-soluzzjoni
juża dawn # jiddefinixxi pjuttost ftit.
Imxejna ltqajna wieħed kostanti definit għal kull wieħed mill-numri differenti f'dan il-programm.
Imxejna ltqajna wieħed għal ċenteżmi għal kull dollaru, waħda għall-kwarti, dimes, nickels, u pennies,
u issa jekk aħna iscroll isfel u aqra l-kodiċi,
nistgħu naraw standard do-waqt li dak kollu istampar loop out.
Tip ta 'l-qofol ta' din il-problema kienet realizzat li
għandek bżonn biex jikkonvertu l-float li taqra fuq il-utent biex integer
li jitkejjel b'mod preċiż jagħmlu l-matematika, u dan huwa minħabba
bin-numri b'punt li jvarja, bħal aħna tkellem dwar fl lecture fil-qosor,
mhuwiex possibbli li jirrappreżentaw eżattament kull valur wieħed fuq il-linja numru
għaliex hemm valuri infinitament ħafna bejn 3 u, jgħidu, 3.1 anke.
Inti jista 'jkollhom 3.01 u 3.001 u 3.0001, u inti tista' żżomm għaddej.
Jirriżulta kull meta inti qed jaħdmu bil-flus, inti spiss tixtieq li jaqilbu
fil-format numru sħiħ sabiex inti ma tkunx qed titlef pennies u li tip ta 'għalf.
Jsir dan u arrotondament kienet importanti.
Din is-soluzzjoni tintuża perfettament ċara, algoritmu kbira,
li decremented-numru ta 'ċenteżmi fadal, l-ewwel minn kwarti,
imbagħad minn dimes, imbagħad minn nickels, imbagħad minn pennies,
u żżid in-numru ta 'muniti kull darba.
>> Soluzzjoni oħra li aħna ser tara kif I zoom out u mur Reviżjoni 4,
kellhom bidu simili ħafna, iżda div minflok tintuża u mod
dritt fuq hawn biex jikkalkulaw in-numru ta 'ċenteżmi.
Dan, in-numru ta 'trimestri huwa ugwali għan-numru ta' ċenteżmi diviż bil 25,
u r-raġuni dan jaħdem huwa għaliex aħna qed tagħmel diviżjoni numru sħiħ,
dan huwa rimi kwalunkwe bqija.
[Student] Do għandna jikkummenta-tfittxija?
Huwa verament jiddependi.
[Student] Inti ma jikkummentaw f'aktar minn kodiċi dritt hawn.
Yeah, u għalhekk hemm mazz ta 'diversi filosofiji dwar dan.
Filosofija personali tiegħi huwa li kodiċi tiegħek huwa verament il-verità,
bħall-kodiċi tiegħek huwa dak li attwalment eżekuzzjoni fuq il-kompjuter,
u għalhekk kodiċi tiegħek għandu jkun li tinqara kemm jista 'jkun ma jeħtieġu bħala ħafna kummenti.
Cela dit, meta inti tagħmel affarijiet li huma tip ta 'delikata matematikament
jew algorithmically, huwa tajjeb li tikkummenta dawk sabiex inti tista '
iżżid dimensjoni oħra, saff ieħor lil min huwa qari kodiċi tiegħek.
F'dawn is-soluzzjonijiet, ħafna drabi huma kkummentaw b'mod aktar qawwi biss minħabba
irridu jkunu kapaċi li jiddistribwixxu lilhom u lin-nies pick up lilhom
u jaqrahom pretty faċilment.
Iżda definittivament, naqbel li dan huwa tqil.
[Student] Imma meta fid-dubju, mur itqal?
Meta fid-dubju, mur itqal.
Xi nies se kultant ngħid 0 ritorn jew xi ħaġa bħal dik.
Naħseb li l-kumment redikoli.
Ovvjament dan huwa dak li qed jiġri.
I m'għandhomx bżonn Ingliż biex tgħidli li.
Kultant nies se jiktbu għalf bħal "kthxbai!"
Dak it-tip ta 'ħelu, iżda wkoll ma'
li mhux tagħmel id-differenza bejn il-punti jikkummenta jew le.
Dawk it-tipi ta 'kummenti huma biss ha, ha.
Kessaħ.
>> Fuq dan il-punt, ejja tibda 'taħdem fuq il-Problema Set 3-sezzjoni ta' mistoqsijiet.
Jekk inti guys pull dan up mill-ġdid,
kif ma 'ġimgħa li għaddiet, aħna ma tkunx qed tmur biex tara l-xorts f'din it-taqsima.
Aħna ser tavżak guys tagħmel dan fil-ħin tiegħek u jitkellmu dwar il-mistoqsijiet.
Imma issa din is-sezzjoni aħna qed tmur biex jqattgħu ftit ħin iktar
jitkellem dwar inqas mill-punti bażiċi ta 'kodifikazzjoni
bħal għamilna aħħar ġimgħa, u minflok, aħna qed tmur biex tiffoka aktar fuq
ftit aktar tat-teorija, hekk jitkellem dwar tfittxija binarja u mbagħad għażla.
Minn dawk minnkom li ġew wara flimkien mal-lecture,
jista xi ħadd jagħti me terġa ta 'x'inhi d-differenza
bejn tiftix binarju u tfittxija lineari?
X'qed jiġri? Sure.
Tfittxijiet lineari tat-tiftix permezz ta 'kull element fil-lista magħżula
wieħed wieħed minn wieħed wieħed wieħed,
u tfittxija binarja taqsam il-lista fis-2 gruppi,
kontrolli jekk il-valur ċwievet li int tiftix għal huwa akbar minn jew inqas mill-valur punt tan-nofs
li inti biss sabu, u jekk huwa inqas minn, din tmur mal-lista t'isfel
u sussegwentement iqassamhom li għal darb'oħra, ma l-istess funzjoni
it-triq kollha isfel sakemm issib il-punt tan-nofs li jkun daqs il-valur innifsu.
Dritt.
>> Għalfejn nagħmlu kura?
Għaliex nitkellmu dwar tfittxija binarja versus tfittxija lineari?
Yeah.
Binarju huwa ħafna aktar malajr, hekk jekk inti doppju tad-daqs tal-problema
li tieħu pass aktar milli darbtejn kif ħafna.
Eżattament.
Li risposta kbira.
Tfittxija lineari huwa ferm verifika element wieħed fi żmien,
u kif rajna fil-jum stess ewwel lecture
meta David marru permezz ta 'eżempju tiegħu ktieb tat-telefon
u misruqa paġna waħda tal-ktieb tat-telefon fi żmien
u miżmuma tagħmel dan aktar u aktar u aktar mill-ġdid,
li għaddej biex tieħu lilu żmien twil verament biex isibu xi ħadd fil-ktieb tat-telefon,
sakemm, naturalment, huwa kien qed ifittex xi ħadd fil-bidu nett tal-alfabett.
Bil tfittxija binarja, inti tista 'tmur ħafna aktar malajr,
u huwa mhux biss darbtejn aktar malajr jew 3 darbiet malajr jew 4 darbiet aktar mgħaġġla.
Iżda l-problema gets iżgħar u iżgħar ħafna aktar mgħaġġla.
Biex nispjegaw dan, aħna ser jibda jitkellem dwar x'inhu għaddej
meta aħna tikteb tfittxija binarja.
Il-problema fil-idejn huwa li jekk għandi firxa ta 'numri,
jiġifieri, 1, 2, 3, 5, 7, 23, 45, 78, 12323,
u mbagħad 9 bil-ton ta '0s wara dan,
irridu nkunu kapaċi biex insemmu verament malajr dak li hu fl-
dan il-firxa ta 'numri.
Naf li dan jidher iblah ftit u ftit artifiċjali,
għaliex id-dritt issa huwa.
Għandna firxa li ma jkollux elementi ħafna ħafna fiha,
u jekk nistaqsi wieħed minnkom biex insemmu jekk jew le
23 huwa fil-firxa, inti tista 'tagħmel dan pjuttost malajr
biss billi glancing fuq dan u javżak me iva jew le.
Il Analog biex tikkunsidra hija timmaġina jekk dan kien, jiġifieri,
Excel spreadsheet bl 10000 ringieli, 20,000 ringieli.
Of course, inti tista 'tagħmel il-F-kmand jew il-kontroll F u tfittex xi ħaġa up.
Tista 'wkoll tuża l-filtri u l-għalf tfittxija,
imma jekk kellek biex tfittex permezz din il-linja fajl mill-linja b'linja,
li se tieħu inti żmien twil li jsibuha.
Huwa tip ta 'bħal fl-eżempju ktieb tat-telefon, wisq, fejn
ħadd jistenna permezz ta 'telefon ktieb paġna waħda kull darba.
Tipikament, dawn ma miftuħa għall-nofs,
jew fil-każ ta 'lott ta' kotba tat-telefon u dizzjunarji fejn
inti fil-fatt li hija keyed fuq l-ewwel ittra,
inti flip għall-imsemmija ittra l-ewwel u jiftaħ u tibda għaddejja hemmhekk.
>> Fakkar me-isem tiegħek mill-ġdid. >> Sam.
Sam.
Bħal Sam qal, dak il-proċess tfittxija lineari se tkun verament bil-mod,
u minflok ma 'tfittxija binarju, il-mod kif taħdem din hija li
kull darba immorru permezz ta 'iterazzjoni ta' algoritmu tfittxija tagħna,
aħna qed tmur biex jaqsam il-lista fl-nofs, essenzjalment,
f'żewġ listi iżgħar.
U mbagħad fuq il-iterazzjoni li jmiss tal-linja, aħna ser jaqsmu mill-ġdid
fis listi oħrajn iżgħar.
Kif tistgħu taraw, il-problema jżomm jkollna iżgħar
għaliex aħna jżommu 1/2 rimi tal-lista kull wieħed ħin.
Kif taħdem din ir-rimi?
Just bħala tfakkira, dak li aħna qed tmur biex tagħmel jekk konna kompjuter
u konna, jiġifieri, it-tiftix għall-numru 5 f'din il-lista
hija li aħna se pick numru fin-nofs.
Fin-nofs ta 'din il-lista, minħabba li hemm 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 numri,
aħna'd pick-numru jew fil-pożizzjoni 4 jew fil-pożizzjoni 5,
u aħna'd sejħa li l-nofs tal-lista tagħna.
Pick numru fil nofs.
Imbagħad, bħal Sam qal, aħna ser test biex tara jekk dak in-numru huwa ugwali
għan-numru li aħna rridu nġibu jew in-numru mixtieq tagħna.
Jekk huwa ugwali, allura aħna ħadthom misjuba dan. We win.
Jekk mhuwiex ugwali, allura hemm koppja ta 'każijiet.
L żewġ każijiet huma jew in-numru għandu jkun akbar min-numru aħna qed tħares lejn,
jew huwa inqas minn.
Jekk huwa akbar, nimxu lejn il-lemin.
U jekk huwa inqas, nimxu lejn ix-xellug.
U allura aħna irrepeti l-proċess kollu mill-ġdid
jew fuq il-nofs tal-lemin jew il-nofs tax-xellug tal-lista.
>> L-ewwel problema fit-taqsima tal-lum huwa biex insemmu
kif nistgħu attwalment jibdew tesprimi din fil-kodiċi C.
Imxejna ltqajna l-pseudocode hawn.
Dak li aħna ser tibda tagħmel hu jien ser pull up marka ġdida ispazju,
jiffrankaw din ir-reviżjoni b'tali mod li għandna dawn in-noti għal aktar tard,
aħna ser tħassar dan kollu, u mbagħad kopja u paste mis-sett problema
din l-informazzjoni fi spazji tagħna, u nisperaw li dan ma tinkisirx.
Perfect.
Jekk inti guys kollha jagħmlu dan, kopja u paste dan il-kodiċi fl-ispazju ġdida tiegħek,
f'waħda vojt.
Ejja nippruvaw Daniel. Jekk inti tiġbor u tmexxi dan il-programm, taħdem?
>> No X'hemm dan qal?
Hija tgħid il-kontroll jilħaq tmiem ta 'mhux null funzjoni.
Yeah, so let me jippruvaw ġestjoni tiegħu.
Have you guys rajt dan qabel? Taf xi tfisser?
Okay, ejja dissect din id-daqsxejn ftit.
Huwa qal li file.c fuq il-linja 9, kolonna 1 għandna żball, bħad inti qal,
u jgħid li huwa li ġejjin mill-iżball ta 'twissija u l-twissija tip ritorn.
Jidher qisu xi ħaġa li qed jiġri mat-tip ritorn, li jagħmel sens.
Imxejna ltqajna funzjoni mhux null, li jfisser li konna ltqajna funzjoni
li ma ritorn null.
Funzjoni null hija waħda li tidher bħal dan:
null foo (), u huwa null għaliex it-tip ritorn hija nulla,
li jfisser li jekk kellna xi ħaġa fil hawn
bħal ritorn 1, aħna'd jiksbu żball kompilatur għal dan.
Madankollu, aħna għandna funzjoni mhux null.
Mhux null funzjoni tagħna f'dan il-każ huwa funzjoni ta 'tfittxija tagħna
minħabba li għandu tip ta 'ritorn ta' bool.
Meta huwa qal li l-kontroll jasal fl-aħħar ta 'funzjoni mhux null,
huwa minħabba search ma jkollux stqarrija ritorn.
Mhuwiex jirritornaw xejn tat-tip bool.
>> Nistgħu jiffissaw dan, u liema do you guys think
Tfittxija għandhom jirritornaw awtomatikament?
X'għandu jkun il-valur tar-ritorn default tat-tfittxija?
Għaliex dan huwa dak li aħna tista 'tpoġġi fl-aħħar.
Charlotte, do għandek xi-?
Veru jew falz? >> Veru jew falz.
Liema wieħed?
Foloz. I do not know.
Falz? Ejja nippruvaw dan.
Għaliex kieku inti tgħid ritorn foloz? Dak intuwizzjoni kbira.
[Charlotte] I do not know.
Aħna ser jirritorna falza f'dan il-każ minħabba li dan se jkun default tagħna
jekk għal xi raġuni l-lista tkun vojta jew il-labra
li aħna qed tfittex ma jeżistix.
Imbagħad fl-aħħar nett, jekk aħna ma jirritornawx veru aktar kmieni din il-funzjoni,
aħna dejjem nafu li din il-funzjoni se ngħid Nope, mhuwiex fil-firxa.
Mhuwiex fil-haystack.
Issa jekk aħna jikkompilaw u run-let me ħlief dan hekk nistgħu pull it up.
Issa jekk aħna tiġbor u tmexxi programm tagħna, hija tibni.
Nikbru fil-pront tagħna ftit.
Jekk I hit 4-UH-oh.
Hija ma jistampa xejn. Jidher qisu kollox intemm okay.
Imxejna ltqajna biex timla din pulzieri
Aħna tkellimna dwar l-algoritmu fil pseudocode ftit ilu.
Let me ara, ħlief dan,
u jien ser pull li algorithm lura mill-ġdid.
Ejja hit dan Guy. Nope.
Hemm huwa.
Kif nistgħu nagħmlu dan?
Liema jkun strateġija tajba għall-bidu off dan il-kodiċi?
Int għandek pick numru fin-nofs.
Kif nistgħu pick numru fin-nofs ta 'firxa?
Xi suġġerimenti?
[Student] Strlen diviż bi 2.
Strlen diviż bi 2. Li l-waħda kbira.
Strlen jaħdem ma 'tipi speċjali ta' arrays.
Liema tipi ta 'arrays?
String arrays, arrays karattru.
Huwa dak istess tip ta 'kunċett li aħna tixtieq tapplika,
imma aħna ma tistax tuża strlen għaliex aħna ma jkollhomx firxa ta 'karattri.
Għandna firxa ta 'ints.
Imma dak ma strlen nikseb għalina?
Taf liema jiġrilha għalina?
[Student] Strlen gets us-tul.
Eżattament, jiġrilha us-tul.
Strlen gets-tul tal-firxa għalina.
>> Kif se nilħqu dak fil-programm tagħna tfittxija binarja?
Kif tikseb it-tul ta 'firxa?
[Student] Strlen?
Tista 'tikseb it-tul ta' firxa sekwenza kif suppost ifformattjat C bl strlen.
Il-problema, għalkemm, hi li aħna ma jkollhom firxa sekwenza.
Jekk inħarsu lura lejn dan il-kodiċi, aħna għandna dan array numru sħiħ.
Kif inkunu nafu kemm żmien huwa?
[Student] Hemm wieħed ekwivalenti għal endpoint, bħal l int jew xi ħaġa?
Jirriżulta hemm attwalment mhuwiex, u għalhekk b'mod, dan huwa
waħda minn dawk l-affarijiet li jinsab biss tajjeb li tkun taf dwar Ċ,
li m'hemm l-ebda mod biex jiksbu t-tul ta 'firxa
jekk kollha I jagħtuk l-firxa.
Ir-raġuni hija taħdem ma 'kordi, ir-raġuni strlen xogħlijiet,
huwa minħabba li jekk string sewwa ifformattjat,
se jkollu li speċjali \ 0 karattru fl-aħħar nett.
>> Tista 'wkoll jimmaġina jekk għandek string indebitament formattjati
u hemm ebda \ 0 karattru hemmhekk, allura l-ħaġa sħiħa ma taħdimx.
[Student] Tista 'żżid il-\ 0?
Nistgħu f'dan il-każ.
Aħna tista 'żżid xi tip ta' \ 0
jew xi tip ta 'li tfisser karattru u mbagħad jużaw dan.
Iżda li mhux pjuttost sejjer jaħdem
minħabba li l-0 \ hija għal tip char,
u hawn konna ltqajna ints.
Il-ħaġa oħra hija jekk konna li jużaw valur speċjali
bħal -1 li jimmarkaw it-tmiem ta 'firxa
allura aħna qatt ma jista 'jaħżen -1 fil arrays numru sħiħ tagħna.
Aħna tixtieq tkun mwaħħla.
Jirriżulta li l-uniku mod biex jiksbu l-tul
ta 'firxa fis-C huwa li attwalment tiftakar
meta inti din tintrama u mbagħad tgħaddih madwar il-firxa
b'tali mod li kull meta I għandhom funzjoni li għaddej biex jagħmlu xi xogħol
fuq firxa ta 'numri interi jew sufruni jew jirdoppja jew dak li int,
I wkoll bżonn tagħti l-funzjoni tul il-firxa, il-
u dan huwa eżattament dak li aħna ghamilt hawn fil-funzjoni ta 'tfittxija.
Jekk inti tħares, dak li aħna ghamilt meta aħna jgħaddu fi array tagħna hawn,
aħna wkoll tgħaddi fit-tul, id-daqs.
Hija biss jiġri li għandna sejjaħ dan il-varjabbli hawn,
dan il-parametru jew argument.
Dan jissejjaħ funzjoni tal-argument lista jew lista parametru,
u dawn huma msejħa wkoll argumenti jew il-parametri.
In-nies jużaw termini differenti f'ħinijiet differenti.
I kultant interskambjali minnhom myself.
Huwa biss hekk jiġri li din il-varjabbli huwa msemmi hawn bl-istess mod
għal dan # tiddefinixxi up here.
Imma dawn mhux qed l-istess ħaġa.
Il-kapitalizzazzjoni ma materja.
>> Jekk inti tħares lejn dak li jiġri hawn, aħna niddikjaraw
firxa int tagħna, li aħna ve imsejħa numri.
Imxejna taha d-daqs tagħna, li jikkorrispondi għal tagħna # tiddefinixxi up fil-quċċata.
Huwa ser tkun 8.
U allura meta aħna mbagħad sejħa funzjoni ta 'tfittxija tagħna stabbiliti hawn taħt,
aħna jgħaddu fin-numru irridu li tfittex, fejn konna wasslu,
gotten mill-utent.
Aħna jgħaddu fil-firxa, dan numri,
u mbagħad irridu wkoll tgħaddi fid-daqs tal-array,
u allura l-valur ta 'daqs 8 gets maħżuna
jew mgħoddija għal dan id-daqs sħiħ imsejħa varjabbli.
Għandna l-daqs tal-array.
Issa jekk immorru lura għal dak li konna nitkellmu qabel,
Naħseb Missy aġġornati l-punt li dak li aħna meħtieġa biex tagħmel hu li tikseb it-tul tal-firxa
u jaqsamha minn 2, u li se tagħtina l-punt tan-nofs.
Ejja naraw.
Jista 'jkolli xi ħadd jikteb dan u ħlief fl-ispazju tagħhom?
Kif dwar Leila?
Jista 'jkolli tikteb dan fil-?
Ikteb l-ewwel linja fejn inti tieħu t-tul tal-firxa u jiksbu l-punt tan-nofs
u jaħżen fil-varjabbli ġdid.
I ser jagħtuk ftit sekondi. Inti lest?
[Student inaudible]
Sure, jista I qatt tikkalkula l-punt tan-nofs
ta 'l-array haystack ġewwa l-funzjoni ta' tfittxija
jużaw it-tul tal-firxa haystack, li huwa l-varjabbli daqs?
Xejn delikata hawn.
[Leila] Just daqs / 2 u just-
U isalvawh, u laqat il-buttuna Save sa hawn fil-quċċata,
u aħna ser pull it up.
Perfect.
Hemm immorru. Tal-biża '.
>> Kif, dan se tiġbor?
[Leila] Nru, jeħtieġ li jkun ogħla.
[Nate] Yeah, iva, liema do we bżonn tagħmel?
[Leila] Bħall punt tan-nofs int jew xi ħaġa.
Tal-biża '. Yeah, ejja tagħmel dan, int punt tan-nofs = daqs.
Dan se jiġbor?
Ejja tħassar dan il-kumment u ġġibu mill-mod.
Dak mhux se jiġbor dwar dan?
Aħna ma tagħmel xejn ma 'numru sħiħ,
għalhekk għandna bżonn biex jistampaw jew xi ħaġa bħal dik.
Yeah, eżattament.
Aħna ser tikseb varjabbli mhux użati.
X'iktar ma jkunx sejjer jaħdem dwar dan?
Naħseb li inti qal xi ħaġa, Sam. Semicolons.
Yeah, jien nieqsa dawk semicolons.
Huwa ser tkun ħaġa kostanti matul il-kors tat-terminu.
Il-ħaġa finali jien ser tagħmel hu li jien ser tpoġġi xi spazju abjad fuq kull naħa
ta 'dan l-operatur hawnhekk, peress li l-tipikament kif nagħmlu dan
skond Gwida tal-Istil tagħna.
Imxejna ltqajna l-punt tan-nofs tal-firxa tagħna.
Issa jekk aħna niftakru lura għall-algoritmu tagħna,
dak li kien it-tieni pass li kellna biex tagħmel darba aħna għandna l-punt tan-nofs?
[Student] Jekk huwa ikbar [inaudible].
Yeah, hekk għandna nagħmlu xi tip ta 'paragun, u dak li aħna tqabbil hawn?
Inti qal jekk din hi aktar minn. X'inhu dak f'dik is-sentenza li jirreferu għall?
In-numru li jitla ', jekk dan huwa akbar mill-punt tan-nofs, imbagħad mur sal-firxa?
Eżattament, sabiex in-numru li jitla 'meta aħna-
Il-labra, hekk aħna qed tqabbel il-labra,
u dak li aħna jqabbel kontra l-labra?
Minħabba li l-labra huwa dak li aħna qed tfittex.
Aħna qed jitqabbel biex jiksbu l-punt tan-nofs.
>> Iżda ma jagħmilx sens li tikkontrolla biex tara
jekk punt tan-nofs tal-labra =?
Does li jagħmel sens?
Jaqblux xi ħadd Does?
Ejja jipprova hu, jekk (== labra punt tan-nofs).
[Student] Do printf inti sabuha.
[Nate] printf ("Sibna li \ n!");
Inkella-I'm se tibda tagħmel xi ħaġa differenti hawn.
Jien ser tibda tqegħid ċingi madwar jekk id-dikjarazzjonijiet il-ħin kollu
biss għaliex jekk aħna żid Jittieħed aktar, allura
aħna ma jiksbu l-kompilaturi.
Yeah, Sam. You ħadthom ltqajna punt.
Il-problema hija li punt fokali tirrappreżenta pożizzjoni fil-firxa,
imma int tista 'tikseb dan li jirrappreżentaw il-valur ta f'dik il-pożizzjoni ta' l-array.
Li l-punt kbir.
Did kulħadd jisma 'dak Sam qal?
Hu qal li punt fokali kif
jirrappreżenta biss pożizzjoni fil-firxa, iżda mhux l-element attwali fil-firxa.
Jekk inti taħseb dwar il-kodiċi kif miktub dritt issa,
jekk inħarsu lejn din il-firxa stabbiliti hawn, li tkun 8 elementi fiha,
dak li huwa l-valur tal-punt tan-nofs se tkun f'din il-funzjoni?
[Student] 4.
[Nate] 4.
Jekk nagħtu ħarsa għall-għadd 4 -
u nistgħu biss run dan il-kodiċi u mqiegħda wiċċ imdejjaq ftit fil hawn
għaliex aħna ma jsibuha-jekk aħna run dan il-kodiċi
kif huwa dritt issa, uploading, bini, let me iscroll,
u jekk inħarsu għan-numru 4,
sibna dan, imma aħna ma jiksbu dan printf iva.
Raġuni waħda hija li aħna ma reġgħux lura minnu,
iżda aħna ma verament issib in-numru 4?
U Sam huwa qal ebda.
What did insibu?
Aħna verament sabu l-punt fokali, li jekk inħarsu lejn il-firxa stabbiliti hawn,
li għaddej biex tkun l-element fil-indiċi 4 li aħna qed tħares lejn,
li huwa 23.
>> Kif nistgħu fil-fatt tikseb dak l-element fil-punt tan-nofs
u mhux biss l-punt fokali innifsu?
[Student] Nixtiequ jidħol char jew xi ħaġa?
X'għandu li tagħmel, biss mill-kurżità?
Tista telabora ftit aktar?
Int għandek tittrasforma l-pożizzjoni fis-numru,
sabiex inti ħadthom ltqajna biex jagħmlu xi konnessjoni-I think it'sa char, iżda jista 'ma jkunx.
Yeah, li l-punt tajjeb.
Imxejna qed tagħmel ħafna ta 'din il-pożizzjonijiet konverżjoni fis Chars, dawn karattri,
fl-ewwel settijiet problema 2.
Jirriżulta li hawn, dan huwa kważi simili għal
aċċess għall-karattru ith fi string, jekk dan jagħmel sens.
Hawnhekk irridu aċċess għall-element punt tan-nofs.
Kif nistgħu nagħmlu dan?
Kevin, do ikollok xi suġġerimenti kif nistgħu nagħmlu dan?
Inti tista 'tagħmel haystack, parentesi miftuħa, nofs, magħluqa parentesi.
Tista 'tikteb li għalina?
Ħlief fil hawn, u aħna ser pull dan up.
Aħna qed tħares lejn din il-linja 9,
u aħna qed jirrealizzaw li aħna ma rridux li tqabbel il-labra mas-punt tan-nofs,
iżda minflok, irridu li jqabblu l-labra
għall-element fil-punt tan-nofs pożizzjoni fi ħdan firxa haystack tagħna.
Kessaħ.
Hemm immorru.
Yeah, li jistenna pretty tajba, jekk (== labra haystack [punt tan-nofs]).
Aħna sabuha.
Issa jekk aħna run-dahar code-we'll sa ftit bit-
hija tiġbor, hija tmur, u issa jekk aħna tfittex 4,
aħna ma jsibuha għax issa aħna qed attwalment jkollna l-għadd 23.
Aħna jkollna l-valur 23, u dan huwa dak li aħna qed tqabbel lill labra tagħna.
Imma li tajjeb. Li pass fid-direzzjoni t-tajba.
>> Dak hu li aħna qed tipprova tagħmel.
Aħna ma tipprova li tqabbel il-labra kontra pożizzjonijiet fil-firxa
iżda kontra l-elementi attwali fil-firxa.
Jekk inħarsu lura issa fil-pass li jmiss fil-algoritmu tagħna,
liema huwa l-pass li jmiss?
Leila diġà msemmi fil-qosor.
[Student] Iċċekkja biex tara jekk huwa akbar minn jew inqas minn u mbagħad jiddeċiedu liema mod biex jimxu.
[Nate] Yeah, hekk kif kieku nagħmlu dan?
Tista jitqiegħdu f'xi I'll 'tiffranka din ir-reviżjoni,
u mbagħad jekk inti tpoġġi fil-linji li se tagħmel dan.
Yeah, Charlotte. >> Ikolli mistoqsija.
Jekk ma jkun punt fokali - 1 minħabba li l-ewwel ħaġa hija
huwa indiċjat 0, hekk jekk npoġġux 4, li mhux attwalment il-karattru aħna qed tfittex?
Iva, u l-problema l-oħra ma 'dak is-
li l-qabda kbira, għaliex dak li se jispiċċaw jiġri possibilment
jekk inżommu jiċċaqilqu u aħna qatt ma jaġġustaw inizjalment?
I raden dak li nistgħu jispiċċaw jagħmlu qed tipprova aċċess
l-element fil-pożizzjoni 8 ta 'l-array,
li f'dan il-każ ma teżistix.
Aħna se tkun trid tagħmel xi tip ta 'kontabilità għall-fatt
li għandna xi indiċjar żero.
[Charlotte] Jiddispjacini, I fisser punt tan-nofs - 1 fil-parentesi kwadri.
Nistgħu nagħmlu dan.
Aħna ser terġa 'lura għal din il-kwistjoni biss daqsxejn.
Ladarba aħna jibdew biex jiksbu l-looping attwali,
li meta aħna ser verament tara dan jidħlu fis-seħħ.
Għalissa, nistgħu nagħmlu dan, imma int totalment id-dritt.
Li indiċjar żero se jkollhom effett li għandna bżonn li jammontaw għal.
Ejja naraw.
>> Kif huwa l-akbar minn u inqas minn-?
[Student] I nikseb kif jagħmlu l-akbar minn u anqas minn parti.
I biss ma kienx ċert x'għandek jistampaw jekk issib li huwa inqas mill-punt tan-nofs haystack jew ikbar minn.
Hawnhekk I jista 'jiffranka dak I've-
[Nate] Yeah, jekk inti tiffranka dak li inti stajt ltqajna, u aħna ser pull it up.
Hemm immorru.
[Student] U nressaq trade marks in kwistjoni għal dak li ma kontx naf.
[Nate] Li jistenna kbira.
Hawnhekk konna ltqajna trade marks in kwistjoni għaliex aħna għadhom ma jafux
dak li aħna qed tmur biex tagħmel pjuttost s'issa.
X'għandu li rridu nagħmlu-oops, konna ltqajna xi ċineg kollha funky fuqna.
Aħna ser jikkoreġu dawn ċineg.
Hemm immorru.
U iva, liema do rridu nagħmlu, skond algoritmu tagħna,
jekk aħna ma jsibu l-labra?
Say fil-każ li l-labra hija inqas minn dak li aħna qed tfittex fuq. Kevin.
Biss tħares lejn in-nofs tax-xellug.
Dritt, hekk aħna ser ipoġġi kumment fil hawn li tgħid "tħares lejn nofs tax-xellug."
U jekk il-labra hija ikbar mill-haystack fil-punt tan-nofs, dak li rridu nagħmlu?
[Student] Imbagħad inti tħares lejn il-nofs tal-lemin.
Ħares lejn il-nofs tal-lemin, "tħares lejn nofs tal-lemin."
Mhux wisq shabby.
Okay, hekk f'dan il-punt, l-affarijiet qegħdin ifittxu pjuttost tajba.
Il-problema bil-kodiċi kif miktub huwa dak?
[Student] Inti ma għandekx endpoints għall-nofsijiet.
Dritt, aħna ma jkollhomx endpoints għall-nofsijiet.
Aħna wkoll huma biss se jmorru permezz ta 'dan darba.
Aħna biss se tħares lejn wieħed punt tan-nofs.
Jew l-element ikun hemm, jew mhuwiex.
Sabiex jitlesta dan, aħna ser bżonn tagħmel xi tip ta 'ripetizzjoni.
Għandna bżonn li jżommu tirrepeti sakemm insibu li
jew l-element huwa fil hemm għaliex konna jiċċekknux u finalment sabet li,
jew mhuwiex fil hemm għaliex aħna ħadthom ħares kollha permezz ta 'l-affarijiet
fil-nofsijiet xierqa ta 'l-array u sabet li xejn huwa fil hemm.
>> Kull meta konna ltqajna dan ripetizzjoni għaddej, liema huma aħna ser tuża?
[Student] A loop.
Xi tip ta 'linja. Iva.
[Student] Nistgħu nagħmlu loop do-waqt u jkollhom tagħmel dan u mbagħad filwaqt li
il-labra ma tkunx daqs-I'm not sure fejn I kien għaddej ma 'dak.
Iżda tip simili tagħmel dan sakemm ma tkunx daqs il-valur li l-input utent.
Yeah, hekk ejja ara, kif jista 'dan jiktbu stess?
Inti qal ejja tuża loop do-waqt.
Fejn ma l-do bidu?
[Student] Dritt wara l-daqs / 2.
[Nate] Okay, u dak li aħna se jagħmlu?
Aħna ser timla l-waqt li aktar tard.
Liema huma aħna se jagħmlu?
[Student] Ma rridu nagħmlu l-għalf li għandna fil-porzjon jekk?
[Nate] Do dan kollu Jittieħed, kbir.
Kopja u paste.
Oh, il-bniedem.
Ejja naraw jekk dan jaħdem, jekk nistgħu tab dan fuq.
Beautiful.
Okay, u aħna ħlief dan sabiex inti guys jkollhom dan.
Kull dritt, u aħna se tagħmel dan filwaqt li l-
dak li kien il-kundizzjoni filwaqt li inti kienu wara?
[Student] Filwaqt li l-labra ma ugwali, hekk bħall-punt exclamation.
Imma jien mhux ċert eżattament dak li hu għadu.
[Nate] Yeah, dan huwa mod wieħed biex tagħmel dan.
Sam, għandek xi kumment?
[Sam] I mfakkar meta I ħares lejn l-videos,
I ħa screenshot ta 'wieħed mill-simili meta għamilna l-pseudocode għal dan,
kien hemm xi relazzjoni bejn max u min.
Naħseb li kienet xi ħaġa simili jekk max huwa qatt inqas minn min.
Ghandek dan.
[Sam] Jew simili jekk max ma jkunx inqas minn min jew xi ħaġa bħal dik,
għaliex dan ikun ifisser li inti stajt mfittxija kollox.
>> Yeah, hekk dak li ma ħoss bħal max u min kienu jirreferu għall?
[Sam] Valuri li-interi li huma se jibdlu
relattiva għal fejn aħna tpoġġi l-punt tan-nofs.
Eżattament.
[Sam] F'dak il-punt, li għaddej biex [inaudible] tikkalkula l max u min.
Punt tan-nofs huwa dan max u l-idea min.
Does li jagħmel sens li folks?
Jekk konna li tibda tħares lejn kif aħna qed tmur biex tagħmel dan iterazzjoni,
int totalment id-dritt li aħna rridu li jużaw xi tip ta 'do-waqt loop.
Imma I raden jekk aħna niftakru dak li għaddej fil-post ta 'din array
u dak li verament jiġri 'I'm ser jikteb hawn fuq-
fl-iterazzjoni ewwel ta 'tiftix binarju, għandna-
Jien ser tuża bu e biex juri l-bidu.
U allura l-aħħar ta 'firxa tagħna.
Aħna nafu li l-bidu jkun ta '4 dritt fuq hawn,
u aħna nafu li l-aħħar huwa fil 108.
Say aħna qed tiftix għal-numru 15.
L-ewwel darba li nagħmlu dan, bħal rajna qabel,
il-punt tan-nofs huwa jew se tkun 16 jew 23
jiddependi fuq kif aħna jikkalkulaw affarijiet out.
Peress indaqs diviż fin-nofs se tagħtina dan l-ispazju
bejn 16 u 23, ma nistgħux indaqs jaqsamha
jew jaqsamha u jiksbu fuq punt tan-nofs veru.
Aħna ser tħares lejn 16.
Aħna ser tirrealizza "ħej, 16> 15 li aħna qed tfittex."
Biex allura tħares lejn in-nofs tax-xellug tal-firxa
dak li aħna ser jispiċċaw jagħmlu huwa rimi
dan il-porzjon ta 'fuq kollu
u qal, "Okay, issa endpoint tagħna se jkun hawn."
L-iterazzjoni li jmiss ta 'linja tagħna, aħna qed issa tħares lejn dan array,
effettivament li tintrema dan il-porzjon għaliex issa
jekk aħna qed tieħu l-punt tan-nofs li jkun id-differenza bejn il-bidu u t-tmiem,
insibu punt tan-nofs tagħna li tkun 8,
li nistgħu mbagħad test 8 biex tara fejn huwa f'relazzjoni man-numru aħna qed tfittex,
15, isibu li 15 hija akbar,
hekk aħna li jimxu lejn il-porzjon dritt tal-lista,
li nafu għaliex aħna qed bnedmin, u nistgħu naraw dan.
Aħna nafu li l-porzjon dritt se tkun fejn aħna jsibuha,
iżda l-kompjuter ma jkunx jaf li, hekk dak li aħna ser nagħmlu huwa aħna ser attwalment
għandhom dan jitla ', u issa l-bidu u t-tmiem
huma l-istess post, sabiex il-punt tan-nofs isir in-numru uniku fil-lista f'dak il-punt,
li hija 15, u konna sabuha.
Does li tefa 'dawl fuq fejn din max kollu u notazzjoni min ikun għaddej,
iżżomm rekord ta 'l-endpoints tal-firxa sabiex insemmu
kif dojoq affarijiet isfel?
>> X'jiġri jekk dan ma kienx ugwali għal 15 issa?
X'jiġri jekk aħna kienu qed ifittxu għall-15 u, minflok, dan in-numru kienu wkoll 16?
Aħna jgħidu, "Oh, huwa ikbar.
Aħna rridu li jmorru lura lejn ix-xellug. "
U aħna d jimxu e tagħna lejn il-lemin,
f'liema punt għandna endpoint li tkun konfliġġenti.
Ma jkunx kapaċi li jfittxu l-elementi kwalunkwe aktar
għaliex issa għandna endpoint tagħna u l-punt bidu tagħna,
max tagħna u min tagħna, issa huma flipped.
Aħna tfittxija permezz tal-firxa sħiħa. Aħna ma tistax issib xi ħaġa.
Dik hija l-punt li fih aħna'd trid tgħid, "Okay, aħna qed tmur biex jitwaqqaf dan algoritmu.
Aħna ma sabu xejn. Aħna nafu mhuwiex fil hawn. "
Kif huwa dan se?
[Student] Kif eżattament ma l-kompjuter jaqleb l-aħħar?
Kif l-aħħar jispiċċaw qabel il-bidu?
It-tarf jispiċċa qabel il-bidu
minħabba l-matematika li aħna qed tmur biex tagħmel kull darba li nagħmlu dan.
Il-mod kif aħna tpartit huwa jekk inti tħares lejn l-ewwel darba nagħmlu dan swap
fejn għandna l-bidu ta '4 u l-aħħar
it-triq kollha stabbiliti fuq 108 u punt tan-nofs tagħna, ngħidu aħna, fil-16 -
Jien ser reset dan lura għall-15-jekk aħna qed infittxu l-15,
aħna kien jaf li dak li għamilna meta aħna ċċekkjati l-16 u raw li kien ikbar
u riedu li jarmi l-porzjon dritt kollu tal-lista,
rajna li dak li ridna tagħmel hu timxi dan e dritt hawn.
Effettivament, il-e ltqajna mċaqilqa għal wieħed qabel il-punt tan-nofs.
Bl-istess mod, meta għamilna dan iterazzjoni ta 'l-algoritmu
u l-punt tan-nofs kien 8,
sibna li 8 <15, hekk ridna li jiċċaqalqu il-b
1 passat il-punt tan-nofs.
Issa, il-bidu u t-tmiem huma t-tnejn flimkien fuq dan 15.
>> Jekk aħna ntlaqgħet jiġri biex tfittex xi valur ieħor, mhux 15,
jew jekk dan kien 15 minflok kien 16,
aħna sabu li le rridu li jimxu wieħed qabel il-punt tan-nofs.
Issa l-e se jkun hemm flipped inqas mill-b.
Ejja jimxu permezz ta 'kif għandna attwalment jispiċċaw kodifikazzjoni dan algoritmu.
Aħna nafu li aħna rridu li jkollhom dan il-kalkolu punt tan-nofs.
Aħna nafu wkoll li aħna rridu li jsegwu l-bidu u t-tmiem ta 'l-array
ta 'firxa attwali tagħna hekk nistgħu insemmu
fejn dan nofs tax-xellug tal-lista u fejn l-nofs tal-lemin tal-lista huwa.
We do dan jew ma jibda u jintemm,
jew nistgħu jsejħulhom min u max.
I ser tuża jibda u jintemm dan iż-żmien.
Meta jibda aħna, jekk inħarsu lura lejn eżempju tagħna stabbiliti hawn,
bidu tagħna kien stabbilit li l-bidu nett ta 'l-array, bħala naturali.
Liema indiċi kien dan? X'għandu tagħna jibdew jiġu?
Daniel.
[Daniel] Haystack [0].
[Nate] Yeah, hekk aħna jistgħu jistabbilixxu li ugwali għal haystack [0].
Il-problema, għalkemm, hi li dan jagħtina mhux l-pożizzjoni ta 'l-ewwel element.
Din tagħtina l-indiċi ta 'l-ewwel element jew il-valur attwali f'dik il-pożizzjoni l-ewwel.
[Student] Li se jaqilbu li 0.20?
[Nate] X'inhu dan se tagħmel huwa 'tajjeb, mhux se jagħmel kwalunkwe jikkonvertu.
Dak li se tagħmel huwa se taħżen 4 fl jibdew,
u mbagħad se jkun diffiċli li tagħmel paraguni kontra jibdew
minħabba Tinbeda se jorganizza l-valur ta '4,
li hija l-bidu ta 'firxa tagħna,
imma irridu li jsegwu l-indiċi fil-firxa
għall-kuntrarju l-valuri.
Aħna ser attwalment jużaw ta '0, bħal dik.
Għall-aħħar ta 'l-array-Charlotte ressqet dan sa ftit qabel.
Dan huwa fejn aħna ser tikkunsidra l-indiċjar żero.
>> Charlotte, x'inhu l-aħħar tal-firxa?
X'inhu l-indiċi ta 'l-aħħar?
[Charlotte] Daqs - 1.
Yeah, u li d-daqs għandhom nużaw?
Jekk nużaw daqs kapital jew id-daqs zghar?
Daqs Kapitali.
F'dan il-każ, aħna jistgħu jużaw daqs tal-kapital.
Jekk ridna din il-funzjoni tkun portabbli
u l-użu din il-funzjoni fil-programmi l-oħra,
nistgħu attwalment jużaw daqs zghar.
Huwa tal-multa wisq.
Iżda Charlotte hija totalment dritt li aħna rridu li jkollhom daqs - 1.
Fuq dan il-punt
[Student] Kif huwa li inti tista 'tuża d-daqs uppercase?
Kif huwa li aħna jistgħu jużaw daqs uppercase?
Jirriżulta li dawn # jiddefinixxi huma tassew,
taħt il-barnuża, li test bħalma hu isibu u jissostitwixxi, jekk dan jagħmel sens.
Meta inti tiġbor kodiċi tiegħek, il-fażi operazzjonijiet ta 'pretrattament
tal-kompilatur tmur permezz tal-fajl,
u huwa jistenna għal kullimkien li inti stajt bil-miktub id-daqs tal-kapital,
u tissostitwixxi dak it-test litteralment ma '8, bħal dik.
F'dan is-sens, din hija differenti ħafna minn varjabbli.
Hija ma tibda xi spazju fil-memorja.
Huwa trick sempliċi jissostitwixxu test.
F'dan il-każ, aħna qed tmur għall-użu daqs.
Minn hawn aħna ma trid tagħmel xi tip ta 'ripetizzjoni,
u aħna qed dwar il-binarju dritt bil do-waqt loop tagħna.
Aħna rridu li tagħmel xi ħaġa sakemm kondizzjoni ma jkollhiex aktar,
u kif rajna qabel, rajna li din il-kundizzjoni
kien tabilħaqq li aħna ma rridux-aħħar
li jkun inqas mill-bidu.
>> Dan huwa kundizzjoni waqfien tagħna.
Jekk dan iseħħ, irridu jieqfu u tiddikjara simili, "ħej, aħna ma sabu xejn."
Li jesprimu dan, aħna ma jridu jużaw xi tip ta 'linja.
F'dan il-każ, ikun loop do-waqt, li għal loop, linja waqt?
Għandna linja do-waqt li hawn.
Do you guys simili li l-approċċ?
Taħseb għandna nippruvaw approċċ differenti?
Kevin, xi ħsibijiet?
Aħna jista 'jkollhom loop filwaqt għaliex aħna nafu massimu
ikun akbar minn min fil-anyways bidu.
Yeah, b'hekk m'hemm l-ebda inizjalizzazzjoni li jeħtieġ li jiġri.
Dawk loops do-waqt li huma kbar meta jkollok biex initialize xi ħaġa
qabel dakinhar ittestjar, filwaqt li hawnhekk
nafu li aħna ma tkunx qed tmur biex iżommu reinitializing kemm jibda u jintemm
kull rawnd tal-linja.
Aħna nafu li aħna rridu li initialize lilhom, imbagħad check kundizzjoni tagħna.
F'dan il-każ, jien ser fil-fatt imorru ma 'linja waqt sempliċi.
Jirriżulta li do-waqt loops huma wżati b'mod ġust mhux frekwenti.
A lott ta 'postijiet ma anki jgħallmu do waqt loops.
Huma qed tajba għall-immaniġġjar input utent, hekk aħna stajt tidher ħafna minnhom s'issa.
Iżda għal normali u filwaqt loops huma ħafna aktar komuni.
Jirriżulta li din il-kundizzjoni kif miktub
mhux se verament jagħmlu us ħafna tajjeb, u għaliex huwa li?
Jien sorry, I do not know-isem tiegħek.
Jien Jerry. >> Jiddispjacini?
Huwa B-O-R-U-I.
Oh, okay.
I ma tara int fuq il-lista tiegħi.
Oh, huwa minħabba-oh, li jagħmel sens.
Għandek xi idea ta 'għaliex dan loop filwaqt li ma jista' jaħdem kif maħsub,
kif miktub bil-kundizzjoni?
[Jerry] You tfisser simili trid li l-għalf wara li fil-'?
Yeah, b'tali mod li wieħed.
Aħna jista 'jkollhom jitqiegħdu kollha ta' dan il-għalf fil-linja waqt, li huwa totalment veru.
Il-ħaġa oħra li l-ftit aktar problematiku, għalkemm, hi li din il-kundizzjoni ma taħdimx.
[Student] Inti għandek bżonn biex flip.
Dritt, hekk din il-kundizzjoni se qatt ma jkun veru inizjalment il-mod aħna tkellem dwar dan.
Aħna rridu li tagħmel xi ħaġa sa <aħħar jibdew,
imma rridu nagħmlu xi ħaġa waqt li
tibda ≤ tmiem.
>> Hemm dik inverżjoni tal-loġika hemmhekk.
Jien ħatja li għamlu dawk l-iżbalji l-ħin kollu.
[Student] Għaliex ma għandhom ikunu inqas minn jew ugwali għal?
Minħabba do you remember-każ li aħna ltqajna biex
fejn kien hemm biss element wieħed, u konna stabbiliti,
u aħna kienu qed ifittxu fil biss l-15 fil array tagħna?
U l-bidu u t-tmiem tagħna tagħna kienu l-istess element.
Irridu niżguraw li aħna jimmaniġġaw il-każ.
Jekk aħna ma dritta inqas minn,
aħna biss tkun kapaċi tikseb stabbiliti għal firxa 2-element.
Ladarba sirna l isfel għall dan l-element l-aħħar, jekk dan kien element tagħna, aħna qatt ma d jsibuha.
Issa hawnhekk, nistgħu nagħmlu eżattament bħall inti kienu jgħidu.
Aħna tista 'tibda plopping għalf dritt fis-nofs ta' linja waqt tagħna.
Nistgħu plop fil punt tan-nofs tagħna.
Nistgħu nkunu kollha ta 'dawn jekk dikjarazzjonijiet,
iġbed lilhom minn dan loop do-waqt,
plop fi,
nadif affarijiet up ftit,
u jien ser jimxi 'l quddiem u jiffrankaw din ir-reviżjoni.
U f'dan il-punt, aħna jkollna pretty qrib.
Sam.
Naħseb li inti wkoll trid li jkollha punt fokali int = daqs - 1/2.
Ghandek dan, id-daqs - 1/2.
Hemm xi ħaġa oħra għandna bżonn għall-bidla dwar dik il-linja?
Dan kien qabda tajba.
>> What do daqs ma? Are we dejjem jinbidlu daqs?
Sabiex iżommu l-linja bħal din, għandna biex jibdlu l-daqs.
Irridu Tibdilx id-daqs kull darba immorru madwar il-linja għal.
Imma ftakar meta konna għaddejjin eżempju tagħna biss ftit aktar kmieni,
u kellna l-bidu ta '4
u t-tarf it-triq kollha fuq medda ta '108?
Kif aħna ma jikkalkulaw l-punt tan-nofs?
Kieku aħna bl-użu d-daqs?
Jew aħna kienu qed jużaw jibda u jintemm minflok?
Huwa d-differenza bejn it-tmiem u l-bidu.
Eżattament, u kif eżattament għandi jiktbu li, Charlotte?
Just aħħar - tibda.
Inti ma tkunx bżonn tagħmel l - 1
minħabba li l-- 1 ġiet inkluża fl-aħħar u l-bidu diġà.
[Nate] Kbir, int totalment id-dritt.
Aħna ma jkollhom jagħmlu l - 1 minħabba li l - 1 ġie inkluż
u ammontaw għal meta aħna initialize-varjabbli aħħar.
>> Hemm xi ħaġa oħra I bżonn tagħmel sintattiku li jkollhom din il-linja jagħmel sens?
[Student] Plus tibda. >> Plus tibda?
[Student] Fl-aħħar.
Għaliex dan huwa biss kkalkolat nofs it-tul.
Ikollok bżonn li jiżdiedu l-tibda.
[Nate] What would dan tikkalkula għalina?
Jekk naħsbu dwar il-għan fuq din iterazzjoni ewwel tal-linja,
tarf se tkun fl-indiċi f'pożizzjoni 7.
Tibda hija fil-pożizzjoni 0.
Ftakar, aħna qed tfittex għal jew
pożizzjoni 3 jew posizzjoni 4.
Jekk inħarsu lejn din matematika, biss li jagħmilha ftit aktar tanġibbli,
tpoġġi xi numri hawn, għandna 7, 0,
hekk 7 - 0 u mbagħad / 2
huwa 3 fid-diviżjoni numru sħiħ, li hu.
Imbagħad għandna bżonn li imbagħad żid lura tagħna tibda?
Aħna ma f'dan il-każ.
Fuq l-ewwel iterazzjoni, se jkun multa minħabba tibda huwa 0.
Imma kif aħna progress, nagħmlu verament kollha biss ħtieġa
aħħar - tibda / 2.
Hemm wieħed trick ieħor hawnhekk, u li hi jiġifieri waħda ta 'preċedenza.
[Student] Għandna bżonn parentesi?
[Nate] Eżattament, u dan għaliex jekk aħna ma tpoġġi dawn parentesi,
allura din il-linja se jiġu interpretati
bħala (tmiem) - (bidu / 2), li aħna żgur ma jridux.
Oqgħod attent għal dawk regoli ta 'preċedenza.
[Student] Għaliex hux tmiem + tibda?
Għaliex hux tmiem + tibda?
[Student] Għaliex huwa ma li?
Għaliex ma jkun +?
Naħseb li int dritt.
[Student] Għaliex dan huwa medja?
[Nate] Tmiem + jibdew, int totalment id-dritt.
Ara naqra, I totalment goofed. Int dritt.
Jekk aħna kienu qed jagħmlu l-minus, aħna rridu li żżid l-tibda lura pulzieri
F'dan il-każ, int ħafna dritt li aħna rridu li jieħdu l-medja tat-tnejn,
hekk aħna tixtieq li jiġu miżduda, għall-kuntrarju naqqas minnhom.
[Istudenti] Ikun ukoll taħdem jekk inti ma aħħar - tibda / 2 + tibda.
Hija kieku nagħmlu-nemmen hekk.
>> Per eżempju, jekk konna tħares lejn jibdew,
u aħna mċaqlaq dan matul hawn
għall-15.
Issa tibda huwa fil-pożizzjoni 2.
Tmiem huwa fil-pożizzjoni 7.
Jekk aħna naqqas minnhom, irridu jiksbu 5.
Iddividi dan bi 2, irridu jiksbu 2.
U allura aħna żid 2 lura fi,
u li gets us għall-pożizzjoni 4,
li huwa dritt hawn, li huwa l-punt fokali.
[Student] Do għandna bżonn biex jieħu kura ta 'tgeżwir?
F'liema sens għandna bżonn biex jieħu kura ta 'tgeżwir?
Jekk is-somma jew id-differenza bejn
jiddependi fuq kif nagħmlu dan mhuwiex anke numru.
Imbagħad il-kompjuter gets konfuż jekk meta huwa 2.5;
inti timxi lejn ix-xellug jew id-dritt li jiddeterminaw liema hija l-punt tan-nofs?
Ghandek dan.
Jirriżulta li ma 'diviżjoni numru sħiħ,
aħna ma qatt tikseb dawn in-numri b'punt li jvarja.
Aħna qatt ma jiksbu l-deċimali.
Huwa totalment jintrema.
Jekk ikollok kompjuter jaqsmu żewġ varjabbli int,
u wieħed huwa 7, u l-oħra 2,
inti ma jkollokx 3.5 bħala riżultat.
Hija se tikseb 3.
Il-bqija se tiġi skartata, dan huwa effettivament ngħata għad-
mhux tond iżda pjuttost l-art, jekk inti guys huma familjari ma 'dak fil-matematika,
fejn inti kompletament tarmi l-deċimali,
u hekk int essenzjalment jqassru l-isfel sa l-eqreb
pożizzjoni kollu, għall-eqreb numru sħiħ.
[Student] Imma allura dak l-problematika għaliex jekk ikollok firxa ta '7 elementi
allura li awtomatikament jieħu l-element 3 mill-punt tan-nofs minflok ta 'l-4.
Kif nittrattaw ma 'dak?
Huwa problematiku għaliex jekk kellna firxa ta '7,
ikun pick-3 minflok il-4.
Tista 'tispjega ftit aktar?
[Student] Għaliex jekk għandek 7 elementi allura l-element 4
ikun il-punt fokali, id-dritt?
Ftakar kumment tiegħek dwar jiġu żero indiċjati, għalkemm.
[Student] Yeah, hekk fil-pożizzjoni 3. Dan ikun il-punt tan-nofs.
Yeah.
Oh, okay. I ara dak li jfisser.
Huwa tip ta 'stramb, kif aħna jidraw din l-idea kollha ta'
jwarrbu deċimali.
Li l-punt kbir.
Ejja finish dan up.
Imxejna kkalkulat punt tan-nofs tagħna.
>> Aħna ittestjar biex tara jekk labra tagħna hija ugwali għall-valur medju.
Aħna istampar li sibna dan, imma verament, dak li rridu nagħmlu f'din is-sitwazzjoni?
Imxejna sabet li, hekk irridu li tikri l-sejjieħ taf li sibna dan.
Imxejna ltqajna funzjoni li l-funzjoni ittajpjat Boolean.
Il-mod kif aħna jagħtu x'jifhem lill-sejjieħ ta 'funzjoni tagħna li aħna lesti li jmorru
huwa ngħidu, "ħej, dan huwa veru."
Kif nagħmlu dan, Kevin?
Inti nodding kap tiegħek. >> [Kevin] Żid ritorn vera.
[Nate] Eżattament, ritorn vera.
Issa, jekk mhuwiex ugwali, kif kieku aħna nħarsu lejn il-nofs tax-xellug?
Xi ideat?
Stella, xi ideat?
Ikollok bżonn li jistabbilixxu pożizzjoni ġdida għall-aħħar.
Yeah.
Allura għandna nagħmlu pożizzjoni tal punt tan-nofs - l-aħħar.
Great.
Għandna bżonn li jitwaqqaf pożizzjoni ġdida għall-aħħar
li tħares lejn l-nofs tax-xellug.
Dan kien dak li tkellimna dwar qabel fejn
I iżommu jmorru lura għal dan l-eżempju.
Għandi l-tibda hawn, u mbagħad għandi l-aħħar it-triq kollha hawn fuq.
>> Għal darb'oħra, jekk aħna qed tfittex għal 15, u punt tan-nofs tagħna hija fil 16,
u aħna realizzata, "Oops, 16 huwa akbar.
Aħna rridu li jimxu lejn l-nofs tax-xellug. "
Aħna mbagħad jimxu l-aħħar għall-15,
u nagħmlu dan permezz ta 'waħda bogħod mill-punt tan-nofs
u l-istabbiliment li bħala għan il-ġdid tagħna.
Bl-istess mod, jekk irridu li nħarsu lejn il-nofs tal-lemin, kif kieku nagħmlu dan?
Għandek xi idea?
[Student] Inti biss sett tibda punt fokali + 1.
[Nate] Gran.
U issa fil-każ li aħna ma jsibu xejn,
ma li tikseb tittieħed kura ta 'għalina?
Daniel, ma li nikseb tittieħed kura ta 'għalina?
[Daniel] No
[Nate] Jekk nagħmlu dan permezz tal-firxa sħiħa u aħna ma jsibu xejn,
fejn ikun dak tittieħed kura ta ', jew għandna jieħu kura ta' dan?
[Daniel] Il-kundizzjoni waqt.
[Nate] Yeah, il-kundizzjoni filwaqt li, eżattament.
Huwa se jieħdu ħsieb ta 'għaddejja mill-firxa kollha jekk aħna ma jsibu xejn.
Dan loop filwaqt se jintemm.
Aħna qatt ma ser ikunu ltaqgħu magħhom din il-kondizzjoni,
u nistgħu ritorn foloz.
Nistgħu wkoll tħalli dan jekk fil hawn bħal dan
għaliex jekk dan jekk id-dikjarazzjoni hija vera,
u l-funzjoni tagħna se terġa 'lura,
u hekk aħna ser essenzjalment abort din il-funzjoni f'dan il-punt
meta nerġgħu lura minnu.
Imma x'jiġri ma 'din l-istruttura hawn?
Se dan ix-xogħol għal kollox, jew hemm xi difett loġiku fil hemmhekk?
>> Hemm xi difett loġiku fil hemm, bil-mod kif huwa stabbilit.
Liema jista 'jkun?
[Student] Għaliex għandek bżonn l - u + 1s?
Li tistabbilixxi firxa tagħna sa jkun nofs tax-xellug ġdida tagħna u nofs tal-lemin.
[Student] Iżda għaliex ma setgħux inti tagħmel dan mingħajr l-- 1s u + 1s?
[Nate] Aħna jistgħu jistabbilixxu li daqs l-punt tan-nofs?
Liema jista 'jkun problematiku dwar dan?
[Student] I raden huwa ineffiċjenti għax int iċċekkjar ta 'valur li li diġà ġew iċċekkjati.
[Nate] Eżattament, għalhekk Sam huwa totalment id-dritt.
Jekk int tkun qed tissettja l-aħħar u l-bidu ugwali għall-punt tan-nofs
minflok - 1 u + 1 reflectively,
f'xi punt fil-futur aħna ser jispiċċaw iċċekkjar tal-punt tan-nofs mill-ġdid.
[Student] bdejt l pset, u mbagħad kelli xi ħaġa bħal dik
fejn I nesa l-1 +, u li ltqajna staġnati loop infinita.
Dritt, minħabba li f'xi punt int qatt ser tikseb jibda u jintemm
li fil-fatt jikkoinċidu.
Kessaħ.
Hemm wieħed aktar difett loġiku, u li hija li dan għandu jkun definittivament
l inkella jekk.
Għaliex jista 'jkun?
>> Ir-raġuni hija jekk mhuwiex xi ħaġa oħra jekk ma 'tara dan, Kevin?
[Kevin] Yeah, għax int jinbidlu l-punt ta 'tmiem.
[Nate] Eżattament.
Aħna qed jinbidlu l-endpoint,
u jekk huwa miktub bħal dan we'll make-ispazji bejn il-
dan ser jiċċekkja dan il-każ.
Dan il-każ, jekk tirnexxi, se abort barra mill-funzjoni.
Imbagħad se tivverifika dan il-każ li jmiss,
u jekk dan jirnexxi, se jaġġustaw il-endpoint,
u mbagħad se tkompli fuq u jiċċekkjaw il-każ.
Iżda f'dan il-punt, aħna ma tridx li tkompli iċċekkjar.
Fortunatament, aħna ma reset l-punt fokali hawnhekk,
u aħna nafu li dan il-każ mhux ser jirnexxi.
Iżda aħna definittivament tixtieq li tqiegħed il inkella jekk ikun hemm
minkejja li dan jista 'f'dan il-każ
peress li aħna mhux qed jaġġusta l-punt tan-nofs, li kieku tagħmel differenza?
Le, għaliex dawn il-każijiet huma kollha esklussivi.
Għal darb'oħra, bad tiegħi.
Aħna ma, I think, bżonn din inkella jekk.
Nistgħu jipprova hu u run u tara x'jiġri.
Bini, żball seħħet.
Huwa probabbilment minħabba I ħallew dawn l-bu-e fil hawn.
Għandi kwalunkwe aktar minn dawk fil-quċċata?
Ma look like.
Aħna zoom out, jibnu,
hemm din tmur, hekk issa jekk aħna tfittxija għal 15,
iva.
Let me zoom pulzieri
15, iva. Aħna tista 'taħdem mill-ġdid.
Uploading source code, il-bini, tmexxija.
Nistgħu tfittxija għal xi ħaġa bħal 13,
u aħna ma jsibux xejn istampar, u għalhekk mhuwiex konstatazzjoni li għalina.
Li l-kbir, għaliex mhuwiex fil-lista tagħna.
>> Aħna issa saru tard.
Li għaddej biex tkun lilha għall din il-ġimgħa.
Grazzi għall jingħaqdu, u ara inti aktar tard.
>> [CS50.TV]